Archived messages from: gitter.im/red/sandbox from year: 2021

planetsizecpu
11:15Cool @toomasv 👌

gltewalt:matrix.org
23:39Docs converted to html via asciidoctor look ok on the rendered side. Source is ugly.
23:39[draw.html](https://gitter.ems.host/_matrix/media/v1/download/matrix.org/crzPvAevGLbKNveykZWRoozk)

gltewalt
00:11Vscode to gist pasting is giving me issues? Anyone else have this problem?
00:13Been slowly building this small experiment:

https://gist.github.com/gltewalt/d3c2afc8ab011a09fc4ce62f409f5730
greggirwin
02:53Nice work @gltewalt !
02:55Nice experiment too. The output fields get cut off vertically for me, but I eventually got a green light.
02:56[![image.png](https://files.gitter.im/57f22e43d73408ce4f2b38c1/aUiL/thumb/image.png)](https://files.gitter.im/57f22e43d73408ce4f2b38c1/aUiL/image.png)
gltewalt
02:56I edited it a bit. It's still shaky, but little by little, I suppose
greggirwin
02:57That's how work gets done. Coincidentally, I'm working on something (very) vaguely similar. At least it has input and rule aspects.
gltewalt
02:57The output, or results, can be fixed up to something much better than text.
greggirwin
02:57It's a good example of live coding.
gltewalt
02:58And I should? probably use react eventually. I have to start crude and basic and chip away - more like sculpting than designing I guess
03:00The index is interesting to me - showing the index of the next section to match. And to, thru are returning the same index
03:00Yeah, if you'd release your expirement, everyone would be happy and good to go. (I still like to tinker though)
greggirwin
03:07Mine isn't for parse, so doesn't overlap there. Still some things to work out for it. I chip away as well. Took me a while just to decide what to try, and now I'm on try number 3.
03:07That is, how to present what I want to present.
gltewalt:matrix.org
03:083rd try is the charm?
greggirwin
03:08We'll see. I'm sure others will judge and provide feedback.
gltewalt:matrix.org
03:11Do we get a hint?
greggirwin
03:13Have I *whetted* your appetite? You know what a *cut up* I am.
gltewalt:matrix.org
03:14Hmmm
03:18linter?
03:19wet is the opposite of DRY
greggirwin
03:21But *whet* isn't the same as *wet*.
03:22And I do have a habit of *repeating* myself.
gltewalt:matrix.org
03:36Sharpening something
03:37Cut/Paste..
03:37Editor?
greggirwin
03:37Warmer, then colder. But I've said too much already. ;^)
zentrog:matrix.org
04:54I’m thinking ‘split’?
greggirwin
06:38Well, now the pressure is on. ;^)
rebolek
06:39@gltewalt:matrix.org
> Vscode to gist pasting is giving me issues? Anyone else have this problem?

You can upload to Gist directly from Red console with GitHub API.
GiuseppeChillemi
07:03@rebolek how?
zentrog:matrix.org
07:15😄🔪
rebolek
07:50@GiuseppeChillemi It seems that Github finally killed basic authentication so I need to update Github API to use tokens. So sorry, it’s currently not possible :-D
GiuseppeChillemi
10:05Please, remember I cannot use networking because of https://github.com/red/red/issues/4791
hiiamboris
11:50@rebolek Gitlab gives me this error lately and asks for a password every time:
Unhandled Exception: System.TypeLoadException: Method 'ConfigureAsync' in type 'Microsoft.AzureRepos.AzureReposHostProvider' from assembly 'Microsoft.AzureRepos, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.
   at Microsoft.Git.CredentialManager.Program.Main(String[] args)

Tried google-fu, but to no avail. Maybe you have any idea?
rebolek
15:11@hiiamboris Gitlab or Github?
hiiamboris
15:12Gitlab!
rebolek
15:13I was confused by the Microsoft mentions :)
hiiamboris
15:13Yeah looks like they host on Azure ;)
rebolek
15:14However I still have Gitlab only in queue and haven’t tried doing their API yet, so sorry, I’m not sure.
gltewalt
17:21Why do people use gitlab?
rebolek
17:22Gitlab has (had? maybe Github offers then also now) some better free plans, you can install it locally and it isn’t owned by Microsoft :-)
hiiamboris
17:25Gitlab does not try to force their audience to switch to Chredge browser, for one.
gltewalt:matrix.org
17:25Never noticed

gltewalt
18:35https://github.com/gltewalt/tppt
18:36I know... pink is probably not the coolest, but it was easy on my eyeballs.
If you feel like hammering on the script, I'd be happy to hear suggestions.
Binaries in the bin folder if you're trusting.
hiiamboris
18:39Uh.. Pink Parse Panther
gltewalt
18:42If I use Panther... legal troubles?
18:42Chances are low, but I have good luck
hiiamboris
18:42Probably ;)
gltewalt
18:44Couple things I need to look up. How to keep console from running when I use the compiled version. Keep all the error messages from filling up console if in interpreted mode. (It reports a bunch because it's constantly checking the parse rul as you type)
hiiamboris
18:45![](https://i.gyazo.com/47258633822fb6e1360d93f4a9b461c6.png)
I had to use parens for init code
gltewalt
18:48Yep, looks like it
18:53c: (charset " abcd") some c
18:53should work
18:53same as my console
18:56You're using GUI console for win? Button looks wonky in your pic
hiiamboris
19:08W10 yes

gltewalt
20:15Revamp
20:15https://imgur.com/a/zaQ4uJt
21:40https://github.com/gltewalt/parse-caddy
23:33Updated to make Windows happy, and a boris line

gltewalt
03:50@greggirwin When is your similar thing coming out?
greggirwin
04:05I wish I could say. A good foundation is in place, but progress is slow because I can't shut the rest of the world off.
gltewalt
04:5524 hours?
greggirwin
16:05Maybe next week.
Oldes
21:42I was playing with icon file on Windows 10 and found interesting thing... even when I have icon which has sizes 16, 24, 32, 48 and 128 pixels (each image with number, so I can see, which one is used), Windows is everywhere using just scaled version with size 48.
21:43And it does not matter if I have system with scaling 100, 150 or 200%
21:47Ah.. I found used version 24 in file explorer in list view
greggirwin
21:51Interesting. That may be related to why UPXd exes have trouble with the desktop icon for shortcuts.
21:51I wonder where the higher res versions are used.
21:53I found that 128x128 caused the ICO size to balloon but 256x256 and 512x512 didn't. At least with the icon editor I use (Axialis IconWorkshop).
hiiamboris
22:19According to Reshacker you're using PNG only for 256 and 512. Any reason?
22:19It's not that we wanna stay win98-compatible here.
Oldes
22:20Size 512 is only for Microsoft store
22:21never mind... now I have icon with sizes 16, 20, 24, 30, 32, 36, 40, 48, 60, 64, 72, 80, 96, 128 and 256, but still see used only 24 and 48... maybe it's in some cache:/
greggirwin
22:22@hiiamboris I'd have to see what the icon app controls are for those options.
hiiamboris
22:22maybe explorer limits the size to limit the size of the icon cache, @Oldes ?
greggirwin
22:23Thanks @Oldes. They didn't add much size, so I thought they *must* be used for something to make it look better. :^\
Oldes
22:25I should also use icon version made from BMP images, and not PNGs as I have now.. will check later, if the cache will be updated with reboot
22:30Hm... now I see version 256 as a extra large icons view... even without reboot, and 72 in Tiles view
hiiamboris
22:32I think you have to nuke the cache to update it
Oldes
22:32so... so far I've seen used only sizes 24, 48, 72 and 256
22:37and now I see also 32 when I have 100% resolution (very tiny everything on my display)
22:49ok.. and version 16 seems to be used in Window title now... :) interesting experiment.. will keep the testing icon for a while to see where is used what:)
greggirwin
22:49Thanks @Oldes. Good info. Sounds like many of them will be used, maybe given enough different environments.
Oldes
22:50It's new for me, how important is the size 72.. I can see it quite a lot in many resolutions.
22:51And it looks that Windows must have many different icon caches... because it is changing quite unexpectedly :)
greggirwin
22:56Somehow I'm not surprised.

gltewalt
02:36Bug...
02:37It grabs the word i which points to a field. It will grab other words.
hmmm
02:37https://imgur.com/a/UeciJPa
02:54compose/deep?
ne1uno
03:09that is useful, can load words in rule tab. probably should rename simple words in use by the script.
gltewalt
03:52Yeah, renaming simple words is kind of a way, but no guarantee that non-simple words won't be typed in by a user
03:54The only other thing I can think of is some kind of protect function that would do nothing if one of the protected words was typed in after insert or change
04:42Grabs Red words, too. insert ask will put ?function? in the input field
04:46But that's parse/trace, or parse-trace
>> parse-trace [one] [thru word! copy x insert input]
 -->
   match: [thru word! copy x insert input] 
   input: [one]   
   -->
     ==> matched
   <--
   match: [copy x insert input] 
   input: []   
   -->
   <--
 <--
return: true
== true
>> x
== [func ["Wait for console user input"][ask ""]]
04:51Seems like I didn't have these issues earlier on. Oh well...
05:52:cat:
toomasv
08:24
x: func ["Wait for console user input"][ask ""]
parse input: [one] [thru word! (answer: x) insert (answer)] input
08:40Ah, better just
parse input: [one] [thru word! insert (x)] input

gltewalt
00:19@greggirwin How do you do a Change Log, like you did for Diagrammar?
greggirwin
00:38I make @toomasv do it. :^) It's a manual process, because we obviously don't want every commit to be in there.
gltewalt
01:24Oh, manually slogging through
01:39make a tool :-)
greggirwin
01:46Of course, but then we have to figure out how it should work. :^)

gltewalt
02:28What do you think about 'predicate' functions?
02:28
true?: function [
	"Returns true if the value is not false or none"
	value [any-type!]
][
	either :value [true][false]
]

false?: function [
	"Returns false if the value is false or none"
	value [any-type!]
][
	either not :value [true][false]
]
greggirwin
02:44They come up from time to time, but are a tough sell. First, it hides the detail of what truthy values are a bit. More importantly, those words are only 2 of the names for logic that we use in Red. Should they get special treatment, or do we have [true? false? on? off? yes? no?] for consistency? What we need are some examples where we all agree they make things clearer, but I don't think that's happened in the past. Subjectivity rules. :^)

Here's how R2 does it:
true?: func [
    {Returns true if an expression can be used as true.} 
    value [any-type!]
][
    not not :value
]
9214
02:46@gltewalt, true?: :to-logic, false?: :not.
gltewalt
02:46Could possibly build them all automagically. Nenad does something like it (building funcs) somewhere in the source - that I looked at in the past
02:47There we go, even simpler
greggirwin
02:51Oh man, very nice @9214.
02:52The point is not that they're hard to build. On the contrary, they're so easy that what's the point? :^) The question is whether they add value.
gltewalt
02:53The same point as url?. That's also easy to check without url?
greggirwin
02:54One catch with the quick alias approach is that you can't use them with unset!.
gltewalt
02:54Good, I hate unset!
greggirwin
02:55Totally different than type checking IMO @gltewalt. It's more like one? two? three? .... But what you need to do is make the case for them; show their value.
gltewalt
02:56well, hate is a strong word, and they say it's bad for the health
02:56Personal value is that it reads 'better'.
02:59I couldn't say what the value would be, objectively, to Red users
03:00Good to see you around @9214
9214
03:01Gee, thanks @gltewalt!
greggirwin
03:02I was going to say that too but, as usual, he keeps beating me both in time and with better answers. <grrrr>. ;^)

hiiamboris
18:07Runtime [profiling](https://gitlab.com/hiiamboris/red-mezz-warehouse/-/raw/master/profiling.red) of code scattered anywhere across the project:
![](https://i.gyazo.com/70605ed966ab4f5ddb72019b5b80c0f7.gif)
toomasv
19:29Amazing! :clap:
pekr
20:13Looks good :-)
greggirwin
22:30:+1:
GiuseppeChillemi
23:04Great!

planetsizecpu
19:43Good job!

TimeSlip
01:40@hiiamboris Nice work on red-spaces.
01:41@pekr Thank you for posting that announcement on FB.
greggirwin
03:08Yes, thanks @pekr !

rebolek
11:57@GiuseppeChillemi I believe this may be interesting to you:
>> do %mysql-client.red
#{85A6EF01}
== [
    print "mysql client"
    client: open tcp://192.168.45.162:3306
>> do start
mysql client
epoll_ctl fd: 6 op: 1 evts: -2147483644
events: 1 1
val: 0
=== Client event: connect
connect
socket/recv -1 state: 1028
epoll_ctl fd: 6 op: 3 evts: -2147483643
events: 1 1
events: 1 1
read-io in wait fd: 00000006
read-io in wait: 93
=== Client event: read
read
"client read done"
#{
590000000A352E352E352D31302E322E33312D4D61726961444200AC2F01004F
40327B3534454000FEF72D0200BF8115000000000000070000004E485F263D41
6E277331375F006D7973716C5F6E61746976655F70617373776F726400
}
---
Y....5.5.5-10.2.31-MariaDB.¬/..O@2{54E@.þ÷-..¿...........NH_&=An's17_.mysql_native_password.
---
FLAGS: #{7261332E}
FLAGS: #{81BFF7FE}
make object! [
    length: 89
    seq-id: 0
    type: 'handshake
    payload: make object! [
        server-version: "5.5.5-10.2.31-MariaDB"
        version: 10
        thread-id: 77740
        auth-plugin-data: "O@2{54E@NH_&=An's17_"
        capability-flags: [
            found-rows
            long-flag
            connect-with-db
            no-schema
            compress
            odbc
            local-files
            ignore-space
            protocol-41
            interactive
            ignore-sigpipe
            transactions
            reserved
            reserved2
            multi-statements
            multi-results
            ps-multi-results
            plugin-auth
            connect-attrs
            plugin-auth-lenenc-client-data
            session-track
            deprecate-eof
            remember-options
        ]
        character-set: #{2D}
        status-flags: #{0200}
        auth-plugin-name: "mysql_native_password"
    ]
]
--write--
#{
5000000185A6EF01FFFF00002D00000000000000000000000000000000000000
00000000726F6F740014F9D395DFB289EB584C1217F0C08CEF0400DADDF56D79
73716C5F6E61746976655F70617373776F726400
}
6 00000405 84
iocp/post: 4
queue/push: 1
insert#1
events: 1 1
queue/take: 0
=== Client event: wrote
wrote
socket/recv -1 state: 1029
events: 1 1
read-io in wait fd: 00000006
read-io in wait: 11
=== Client event: read
read
"client read done"
#{0700000200000002000000}
---
...........
---
make object! [
    length: 7
    seq-id: 2
    type: 'ok
    payload: make object! [
        affected-rows: #{}
        last-insert-id: #{}
        status-flags: [
            status-autocommit
        ]
        warnings: 0
        info: none
        session-state-info: none
    ]
]
GiuseppeChillemi
12:39@rebolek Would you marry me?
rebolek
12:51No, I’m happy with my wife :)
12:52now with prompt!
12:52
mysql> ping
#{010000000E}
6 00000405 5
iocp/post: 4
queue/push: 1
events: 1 1
queue/take: 0
=== Client event: wrote
wrote
socket/recv -1 state: 1029
events: 1 1
read-io in wait fd: 00000006
read-io in wait: 11
=== Client event: read
read
"client read done"
#{0700000100000002000000}
---
...........
---
make object! [
    length: 7
    seq-id: 1
    type: 'ok
    payload: make object! [
        affected-rows: #{}
        last-insert-id: #{}
        status-flags: [
            status-autocommit
        ]
        warnings: 0
        info: none
        session-state-info: none
    ]
]
epoll_ctl fd: 6 op: 2 evts: 1029

*** Runtime Error 1: access violation
*** at: 080D7AE7h
hiiamboris
12:57epic ending :)
GiuseppeChillemi
12:59I am currently working on SQL-Server via munge, and I am building some high level objects to work with different DBMS using a coherent interface. You work and mine will soon converge.
rebolek
13:01@hiiamboris :) That’s actually intended. It’s probably IO bug (caused by closing the client in the read event) but it helps me to stop the docker container without some unnecessary effort.
hiiamboris
13:02Haha nice :)
rebolek
13:02But now that I have a prompt I probably can get rid of it and stop it from prompt.
13:03And report the bug :-D
Respectech
17:43@rebolek Awesome!
rebolek
20:48@Respectech thanks!

hiiamboris
18:11https://i.gyazo.com/d2bb4c569b7b796fe77bc5f572570dde.png
flow layouts ☺
18:15actually I wish this was the direction taken by VID, layout function being separate from the face creation, so faces could be laid out again at any time (e.g. after resize)

greggirwin
20:00Nice work @rebolek. :+1:
20:02Also *really* nice @hiiamboris. What if we create an arrange function that operates on faces? At least to experiment.
hiiamboris
20:15Good name. I'll add that to my 400 todos list.
greggirwin
20:18You're catching up to me! ;^)

rebolek
10:39I’ve been doing some HTTP requests from Red and looking at them with Wireshark and I noticed some funny things:

* if you do read http://www.google.com, User-Agent is set to Mozilla/5.0 (Windows NT 6.1; Win64; x64) (I am on Mac)
* if you do write/binary http://www.google.com [GET []], User-Agent is set to Go-http-client/1.1

If you set your own User-Agent the above values are replaced. I’m not sure what’s going on here :) Can someone confirm it?
10:58btw, cookie handling added to send-request
greggirwin
18:12Maybe @qtxie can say.

gltewalt
23:33User-Agent on read is the same on Linux Mint.
23:43I seem to have a foggy memory that it's a default when it can't identify the User-Agent. But... it could be a false memory :)

rebolek
04:38@gltewalt I now know the answer, it's comming from libcurl
gltewalt:matrix.org
04:39Ah, ok.
I was WRONNNNNG
rebolek
04:44the second one. The first one is default set by qtxie :)

greggirwin
00:01For @Respectech and others who mess with hardware.

https://eighty-twenty.org/2020/09/10/booting-samsung-galaxy-s7-modem
Respectech
18:57Yes, that is pretty standard with cell modems nowadays. Most cell modems actually are a closed system that run a proprietary minimal Linux OS. The Quectel modem in the PinePhone was recently reverse engineered by the open source community to run an open OS firmware as that was the last bit of the phone to be a "binary blob".
18:57BTW @greggirwin - Have you received your PinePhones yet? If so, have you gotten Red/GTK to run on them yet?
greggirwin
19:06I did get the Pine phones, then life got crazy and there they sit. Waiting. Maybe I'll hand one off to @gltewalt:matrix.org to play with. Give me a reason to meet him for coffee. :^)
gltewalt
23:21That could be pretty fun setting one of those up. , or very "hair-pully", depending

greggirwin
02:49I'm in town for a couple meetings tomorrow @gltewalt. Let me know if you're free before 4:30 or after 7:30. I can do a quick exchange around 6:00 as well.

You have @Respectech on hand, and can then provide more feedback for them too. Good for everyone.
gltewalt:matrix.org
03:17Most likely free at some block of time before 4🕓
Respectech
16:40I'm going to be driving to Wyoming and then Montana and back to California later this month. Boise is a bit out of the way depending on the route we take home from Montana, but it would be fun to meet up if I could work it into the schedule.
16:41I'll be using the PinePhone as my mobile 4G router on the trip. I'll probably use my Pinebook Pro as my main laptop on the trip as it doesn't download stuff without you allowing it to (unlike Windows).
greggirwin
16:42Let me know timing and your route when the time comes. Would be great to see you.
Respectech
16:50Looks like it is 45 hours of road time if we bypass Boise, and 46 hours if we go through Boise. I'll see if I can sell Rosemary on the idea of an extra hour on the road. ;-p
greggirwin
16:54I can come to you as well, if it's not too far. We can talk more privately.
gltewalt:matrix.org
18:00Tell her it's too far without nice services If you cut across to end up in Eastern Idaho
18:02Or it's better to cut down from boise area and go through Reno
18:02You always wanted to race down Donner pass
greggirwin
18:26Everybody should see Winnemucca at least once. Or is it at most once?
Respectech
18:31Well, none of that will work with her. She's been all over multiple times. We've been to Winnemucca (and most other Nevada cities, especially on Hwy 50 and I-80) dozens of times. I joke and tell her she should be a long-haul trucker because of how much she drives, and how good she is at doing long stretches.
gltewalt:matrix.org
18:31They used to have a great breakfast place along the business route. But it had been 11 years
Respectech
18:31But that also works in our favor, because she doesn't mind an extra hour on the road if it fits in the schedule.
gltewalt:matrix.org
19:54@greggirwin I have between right now and four something.
Maybe another block after 7
pinephone:matrix.org
23:12pine phone, but it might be awhile to figure out Red android

Respectech
00:04PinePhone runs Linux, not Android.
00:04Well, it CAN run Android, but that's not the target.
00:05So PinePhone will run Linux ARM, like Mobian, Ubuntu Touch, Nemo, Sailfish, etc.
00:06PinePhone can also run Anbox on Linux, so some Android apps are also available through that compatibility layer.
gltewalt:matrix.org
00:19Yeah not sure why I typed android
Respectech
00:22BTW, I'll probably be coming through Idaho on July 26th.
gltewalt
01:00manjaro
gltewalt:matrix.org
01:56Might be a challenge with manjaro on the phone
Respectech
17:42Be forewarned that the PinePhone has a very low-end quad-core processor, so it will be a good opportunity to work on code optimization. :-)
rebolek
18:15quad-core? I'm using Red on rPi zero, so quad-core is like Cray compared to it :-)
greggirwin
18:20One of my thoughts is that playing with gestures, cameras, and a phone environment will help flush out issues we can address sooner, so they're solved for Android when we do that update.
gltewalt:matrix.org
18:22First issue, manjaro arm has no 32bit stuff. (That I can tell)

*goes to see if there's an ARM branch*
Respectech
18:52Yes, the PinePhone is quite a bit more powerful than the Pi Zero.
18:54The 32-bit thing could be a challenge. I was finally able to get Red to run on my Garuda 64-bit Intel Arch Linux system - which was more of a challenge than I thought. I am running some encapped Rebol2 programs on Garuda as well, but I'm doing that through Wine. That works surprisingly well.
gltewalt:matrix.org
19:52It came with this dongle that has USB, hdmi and ethernet. I can use a keyboard to type in the terminal out of the box.
Can I install a different distribution from USB or does it have to be a flash via SD card?
pinephone:matrix.org
20:20🐑
greggirwin
20:54I don't know what the sheep means, but that's very cool about using a keyboard so easily.
gltewalt:matrix.org
21:01Yes I was surprised, but it picks it up right out of the box
Respectech
21:44I believe you have to use a microSD to boot into a different distro. But you don't have to flash that image to the eMMC, so it makes it really easy to try different distros.
21:45Regarding 32-bit/64-bit, Box86 / Box64 may be useful as they are made for ARM Linux distros: https://box86.org/

TimeSlip
17:25@greggirwin "so they're solved for Android when we do that update." A major teaser, you are!

gltewalt
20:31Vaporware?

https://imgur.com/a/ROBd2Jm
greggirwin
21:30I still like this one: https://www.youtube.com/watch?v=y3RIHnK0_NE

TimeSlip
05:37@greggirwin Great.

planetsizecpu
13:12Amazing @greggirwin 😄

gltewalt
17:36@hiiamboris Which glob of docs did you like to use? I forget.
(link)
hiiamboris
18:13Glob of docs?
gltewalt:matrix.org
18:16The docs for red that you prefer to reference
hiiamboris
18:19I don't use any tools if that's what you mean
gltewalt:matrix.org
18:20No I mean the docs with the sidebar menu
hiiamboris
18:22I guess your question points so far out of my cache, that I still have no idea what you're asking about ☻
gltewalt:matrix.org
18:24You were using an alternate website that had at least some of the official red docs on it. Weren't you?
hiiamboris
18:43http://w.red-lang.org/ ?
18:44It's probably the official site now that the other one is down.
gltewalt:matrix.org
18:46That's it. Couldn't remember it for the life of me.
hiiamboris
18:46Right :) So many disparate resources...
greggirwin
19:54Which other one is down?
hiiamboris
20:42doc.red-lang.org

greggirwin
01:43Ah, right. I've been back to direct github viewing for so long I forgot.

toomasv
09:12I played with idea Oldes presented in /red room :point_up: [September 22, 2021 9:11 PM](https://gitter.im/red/red?at=614b71d15b92082de1b754ee):
make-block: function [data /all /with selection [word! block!]][
	if word? selection [selection: to-block selection]
	either any [
		accessors: select system/catalog/accessors type?/word data 
		system/words/all [
			url? data 
			data: decode-url data 
			accessors: words-of data
		]
	][
		either selection [
			if not empty? weird: exclude selection accessors [
				cause-error 'user 'message rejoin ["make-block: Unknown accessor" pick [": " "s: "] single? weird weird]
			]
		][
			selection: accessors
		]
		collect [
			foreach sel selection [
				if all [keep to set-word! sel] 
				keep switch/default type?/word d: data/:sel [
					word! [to-lit-word d] 
					path! [to-lit-path d]
				][d]
			]
		]
	][
		if any [all with][
			cause-error 'user 'message rejoin ["make-block: Data of type `" mold type? data "` does not have accessors!"]
		]
		append copy [] data
	]
]

It helps to work with data that have accessors (date, email, event, image, pair, time, money) + url, including also the idea of query/mode. For other data it just en-blocks it.
E.g.:
make-block 3x2
;== [3 2]
make-block/all tom@est.ee
;== [user: "tom" host: "est.ee"]
make-block/all url: https://tom@www.est.ee?q=me
;== [scheme: 'https user-info: "tom" host: "www.est.ee" port: none path: none target: none query: "q=...
vars: [query user-info host]
;== [query user-info host]
reduce make-block/with/all url vars    ;Careful -- modifies global query
;== ["q=me" "tom" "www.est.ee"]
reduce vars
;== ["q=me" "tom" "www.est.ee"]
make-block "hi"
;== ["hi"]
to-block "hi"
;== [hi]

Might also add accessors for other types, e.g. file, into either any [...] block:
system/words/all [
	file? data
	accessors: [path name suffix modified]
	data: object [
		path: 
		name: none
		set [path name] split-path data
		suffix: suffix? data
		modified: query data
	]
]

E.g.:
make-block %abc/def.red
;== [%abc/ %def.red %.red none]
make-block/all %entities.red
;== [path: %./ name: %entities.red suffix: %.red modified: 19-Dec-2018/21:08:35.815]
greggirwin
17:11:+1:

toomasv
09:24@hiiamboris Any idea why closing mark of

is eaten here:
print rejoin morph read %morph.md do %md.scan [<h1> 'h1 </h1> lf (<h2> 'h2 </h2> lf ...)]
<h1[MORPH DSL - A dialect for efficient local series conversion](morph.red)</h1>
<h2>Status</h2>
<h2>Goals</h2>
<h2>Origins</h2>
<h2>Examples</h2>
<h2>Data model</h2>
<h2>How it works</h2>
<h2>Scanner type rules</h2>
<h2>Emitter type rules</h2>
<h2>Default rule dictionaries</h2>
<h2>Partial update logic</h2>
<h2>Further considerations</h2>

with md.scan as
Red []
context [
	line: [not lf skip ...] 
	return [
	  "# " h1: line 
	| "## " h2: line 
	| sub: [not "## " [line lf] ...] 
	| skip ...
	]
]

hiiamboris
09:30what do you mean by 'eaten'?
toomasv
hiiamboris
09:35
>> rejoin [<h1> {x} </h1>]
== <h1x</h1>>
09:35I guess you need to add "" to rejoin
09:36or morph/into ... ""
toomasv
09:40Ah, ok, thanks!

hiiamboris
10:59@toomasv of note, morph is now tested to be able to convert files from one format into another: https://gitlab.com/hiiamboris/icu
toomasv
11:07Great, thanks! I'll have to study it...

rebolek
12:25cool profiler https://github.com/csurfer/pyheatmagic
pekr
13:57Aren't we getting some kind of profiler with the upcoming Interpret events branch?
greggirwin
15:25@pekr, yes.
GaryMiller
18:37What is the interpret events branch?
greggirwin
18:38Instrumentation added to the interpreter for profiling, debugging, and more. Info coming soon.
GaryMiller
20:12Sounds Good!
20:13It will help with those missing ] that are so hard to find sometimes!
hiiamboris
20:14https://gitlab.com/hiiamboris/red-cli/-/tree/master/mockups/bmatch @GaryMiller