🦋 Welcome to Raku! raku.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: colabti.org/irclogger/irclogger_log/raku
Set by ChanServ on 14 October 2019.
elcaro guifa: the WordNet DB has words grouped by adj, adv, noun, verb. 00:12
it's also available in other languages, but given the size of the DB, you might be better off creating a 'random-name' web-service than a module 00:13
i use the english db on my blog: 0racle.info/ if you have JS enable, I use eventsource to change the header every few seconds to a random "Adjective Noun" 00:14
timotimo but does snow fall in the winter? 00:15
holyghost libc based dictionary is in racul, so we should access it from it's scheme API 00:42
I also added support for cc65 based systems e.g. the NES
these things have a small memory footprint though
s/should/can or might 00:43
holyghost ok, got 340 lines done in 17 hours, not too bad. 04:24
holyghost is oing to bed
*going
Geth advent: ab5tract++ created pull request #49:
Claim RFC#43
08:05
Geth advent: bd564240f2 | ab5tract++ (committed using GitHub Web editor) | 20th/README.md
Claim RFC#43
08:13
advent: 173a19a61f | Altai-man++ (committed using GitHub Web editor) | 20th/README.md
Merge pull request #49 from ab5tract/master

Claim RFC#43
ab5tract m: say my $⍺ = "alpha" 08:42
camelia 5===SORRY!5=== Error while compiling <tmp>
Name must begin with alphabetic character
at <tmp>:1
------> 3say my $7⏏5⍺ = "alpha"
expecting any of:
constraint
infix
infix stopper
postfix
ab5tract Ah, that's a much nicer error than what I have locally..
m: my $⍺ = "alpha"
camelia 5===SORRY!5=== Error while compiling <tmp>
Name must begin with alphabetic character
at <tmp>:1
------> 3my $7⏏5⍺ = "alpha"
expecting any of:
constraint
infix
infix stopper
postfix
ab5tract that's a bit of a bummer :( 08:43
moritz m: my \α = 'alpha'; say α 08:44
camelia alpha
ab5tract moritz that's super curious. My original attempt was to do exactly that! 08:45
moritz ab5tract: I took a different alpha character 08:46
ab5tract ahh
moritz I used the greek letter
yours is U+0237A - APL FUNCTIONAL SYMBOL ALPHA
ab5tract I wonder if we might use NFG matching on this or at least special case the APL stuff :/
because wouldn't they fit in under the noun rule that we use to sort out which ideograms to allow in names? 08:47
or is this noun rule something I'm horribly misremembering/misapplying/misunderstanding/something that never existed
moritz there are two different things 08:48
what's a noun, and what's allowed in an identifier
m: sub term:<⍺>() { 42 }; say ⍺
camelia 42
moritz this works. You can define terms / nouns with non-identifiers 08:48
but for identifiers, we stick to Unicode category :Letter iirc, and the APL symbols don't fall into that 08:49
ab5tract fair
This opens the door to creating a routine that references the `@_` of the parent scope and indexes for `@_[1]` (in the case of `⍺`) 08:50
better yet, as a macro 08:51
ab5tract Thanks for the clarification once again, moritz! 08:52
JJMerelo And thanks for submitting the second entry for the 20th aniversary calendar, ab5tract
ab5tract While you are here, I don't suppose you have an answer as to whether an "instance meta-op" like `Z+` can be passed by reference?
ab5tract JJMerelo it's a great idea! I wonder if the 20 blog posts before 1 August might cause a bit of a strain on the overall quality of the posts (in the case not enough people join and the ones involve have to sprint) 08:53
JJMerelo ab5tract well, we'll have to do with what we've got. If they arrive later, no big deal. 08:54
moritz m: say &[Z+] 08:55
camelia -> +lol { #`(Block|57453384) ... }
moritz m: my &blah = &[Z+]; blah (1, 2, 3, 4), (10, 10, 10, 10) 08:56
camelia ( no output )
moritz m: my &blah = &[Z+]; say blah (1, 2, 3, 4), (10, 10, 10, 10)
camelia (11 12 13 14)
ab5tract wwow, I was really overcomplicating that before :/ 08:57
m: &Z{ &<+> } .say
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared name:
Z used at line 1
08:58
ab5tract yeah I was doing dumb stuff like that
moritz++
lizmat clickbaits rakudoweekly.blog/2020/07/27/2020-...t-on-time/ 09:18
[ptc] lizmat++ 09:19
ab5tract m: sub term:<⍺> { CALLER::<@args>[0] }; sub foo(*@args) { say ⍺ }; foo(5,6) 09:27
camelia Cannot access '@args' through CALLER, because it is not declared as dynamic
in sub term:<⍺> at <tmp> line 1
in sub foo at <tmp> line 1
in block <unit> at <tmp> line 1
ab5tract ahh
is this a use case for a dynamic variable?
m: sub term:<⍺> { CALLER::<$*ARGS>[0] }; sub foo(*@args) { my $*ARGS = @args; say ⍺ }; foo(5,6) 09:30
camelia 5
ab5tract indeed it is :) . not sure if i've ever encountered a case where I was creating a dynamic variable that I was certain was required to be a dynamic variable. Kind of cool 09:31
I think I will put off this layer of refactoring until after a RakuAST lands though. 09:32
moritz I classical use case for dynamic variable is this:
you want to to create a syntax like 09:33
my $x = routes { get '/', { ... }; post '/logout', { ... } };
then sub routes sets up my $ROUTES-REPOSITORY = ...;
and sub get and sub post look up $*ROUTES-REPOSITORY and add the current route to it 09:34
(sorry, should be my $*ROUTES-REPOSITORY in the declaration)
ab5tract gotcha 09:38
I think I've only ever explored them in a "I wonder if they apply here" kind of way. The above might be approach makes a lot of sense. 09:39
lizmat ab5tract: if you get how $*OUT and $*ERR work in the core, you'd get a better appreciation for dynamic variables :-) 09:45
ab5tract I'm sure I would :)
I've got a sense of how to use the core dynamic variables and why they are the way they are
In this case the compiler told me I had to create one. Most other times I create one I'm never quite certain if it's necessary, if that makes sense 09:46
[ptc] ab5tract++ great blog post; I really enjoyed it! 10:19
ab5tract [ptc]: thanks for the feedback, glad you enjoyed it! :D 11:06
Geth advent: 6ae548e63c | (JJ Merelo)++ | 20th/articles/rfc1.md
Starting the article
11:20
advent: 5f33772222 | (JJ Merelo)++ | 2 files
Adds first draft of article
advent: 2f70438676 | (JJ Merelo)++ | 20th/README.md
Links to README.md
advent: be0ded3c4a | Altai-man++ (committed using GitHub Web editor) | 20th/README.md
Update README.md
11:22
Geth advent: 34db548102 | (JJ Merelo)++ | 20th/README.md
Provides example article, closes #48
11:25
advent: e541785bdf | (JJ Merelo)++ | 20th/README.md
I mean, really
11:27
JJMerelo The first Raku RFC, threads and Warnock's dilemma in the first installment of the 20th aniversary calendar github.com/Raku/advent/blob/master...es/rfc1.md 11:28
This will eventually go to the blog, but is provided there as a (probably bad) example. We're still looking for writers for the 20th aniversary calendar, add yourself here github.com/Raku/advent/tree/master/20th 11:29
moritz I'll try to do something with regexes, but it depends on me finding the time 11:32
timotimo i'm right here! oh you wrote time never mind 11:38
sena_kun JJMerelo, calendar starts on 1st August? 11:40
JJMerelo sena_kun correct.
moritz please do, and thanks.
timotimo :-) you will write something also, right?
timotimo you want to start publishing in august? 11:41
"in august" will be difficult due to moving to a new apartment 11:42
timotimo on the rfc archive, blue-highlighted links on darkblue background are exceedingly hard to read 11:45
JJMerelo Yep they are. 11:46
timotimo opens problem-solving ticket for that 11:47
JJMerelo But you can look it up using a search engine, in case you're curious about some specific thing. I didn't arrive at mine (#1) that way anyway
JJMerelo goes AFK now
Cheers!
Kaiepi m: say ("", |blob8.new(0xFE).decode("utf8-c8").comb.map(*.ords)).reduce({ $^a ~ @^b.head == 0x10FFFD ?? "%" ~ @^b[2..3].map(*.chr).join !! @^b.map(*.chr).join }) 12:02
camelia %FE
Kaiepi are there shorter ways i can match utf8-c8 synthetics? 12:03
timotimo hm i assume so
m: blob8.new(0xFE).decode("utf8-c8").ord.say
camelia 1114109
timotimo m: blob8.new(0xFE).decode("utf8-c8").ord.base(16).say
camelia 10FFFD
Kaiepi m: say blob8.new(0xFE).decode("utf8-c8") ~~ / \x[10FFFD] x <( <[ 0..9 A..F ]> )> / 12:04
camelia Nil
timotimo yeah because it's one character
would have to decode it to utf8 and back first
m: say blob8.new(0xFE).decode("utf8-c8").encode("utf8").decode("utf8") ~~ / \x[10FFFD] x <( <[ 0..9 A..F ]> )> / 12:05
camelia 「F」
timotimo m: say blob8.new(0xFE).decode("utf8-c8").encode("utf8").decode("utf8") ~~ / \x[10FFFD] x <( <[ 0..9 A..F ]>+ )> /
camelia 「FE」
codesections Is there a performance reason to prefer an Array to a cached Seq or the reverse? 13:56
Geth advent: rypervenche++ created pull request #50:
Fix typos
13:56
demostanis I just started Raku since some days and I already am struggling over a problem: parsing a simple .ini file, with support for multi-line and comments... 14:27
demostanis I firstly remove every comment using grep and s///, then I use a grammar to parse user input 14:28
codesections Makes sense so far :) 14:29
demostanis Though, I'm a bit lost, my regexes aren't working: <(<-[\\]>*)> [\\ <?before \n>]? tries to match anything before an optional \ if this one precedes a newline \n. 14:30
But it doesn't seem to work
[Coke] demostanis: would github.com/tadzik/perl6-Config-INI avoid your issue? 14:31
demostanis Config::INI doesn't support multiline, and I've had weird issues using it 14:32
rypervenche I wonder if using TOML instead of INI might fix this. 14:33
codesections I don't think that's necessary
demostanis I'd like to try to make my own parser, it also helps me learning...
codesections Raku has good support for parsing with Grammars and it shouldn't be any problem to parse ini files 14:34
rypervenche Yeah, I was just saying that would likely be a quick solution. But yeah, good learning experience this way.
demostanis So far my regex matches "hello world" in "hello world \\\n text" (even if I would like it to match hello world text", but it will however match "hello world text" in "hello world \n text" as one match only (instead of two) 14:36
demostanis Any idea? 14:39
moritz demostanis: it would be way easier for us if you pasted the example text and the regex/grammar into a gist on github 14:41
codesections I am new to Raku myself, but – as I understand it – there isn't a way to get "hello world text" as a *single* match result from the input "hello world \\\n text". You could get it as two matches, though
timotimo yeah, can only have it as multiple captures inside one match 14:42
moritz that's correct. Either you get the whole thing as one match, or parts of it as separate matches. You could also write an action method that extracts the text as you want it as $/.made to the match object
tadzik demostanis: I can related to writing your own parser – that's the reason why I wrote Config::INI all those years ago :) 14:45
moritz <plug>all explain in depth and in gory detail in www.apress.com/us/book/97814842322...;/plug>
*explained
guifa2 . o O ( it's a shame that regexen are only allowed a single <( and )>, you could do some cool stuff if multiple alternating ones were allowed ) 14:45
guifa2 adds to TODO list for binex/objex
demostanis But I don't know whetever I should match what's after "hello world \\\n" or do something else in case the input has multiple lines (such as "hello world\\\n text\\\n other line") 14:46
And I sadly don't have $20 for the book..
And I am currently commenting my code to then make a paste 14:47
moritz demostanis: I'd take this approach (more to come):
* define a regex normal_content { <-[\n\\]> }
codesections I'd be tempted to factor out `line` as a separate regex/token/rule 14:48
moritz this matches just normal values of an ini file, without escapes, newlines etc 14:48
then define other things that could be part of an ini file value, for example
token escaped_backslash { '\\' '\\' } 14:49
token escaped_newline { '\\' \n }
and then it becomes pretty clear what an ini value can look like:
Geth advent: c80aef0df5 | (Perry Thompson)++ | 20th/articles/rfc1.md
Fix typos
14:50
advent: d308869b1c | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | 20th/articles/rfc1.md
Merge pull request #50 from rypervenche/master

Fix typos
moritz token ini_value { [<normal_content>+ | <escaped_backslash> | <escaped_newline> ] * }
(maybe move the + to the inside of normal_content, that makes the captures a bit clearer) 14:51
demostanis: sounds like a good approach?
codesections moritz: that is an impressively clean approach. Dagnabbit, I really ought to read your book :D 14:52
demostanis If I understand well, your method checks if: 1. a value is either anything but a newline or a backslash, 2. or if it is a backslash 3. or if it is a newline? Or don't I understands correctly? 14:53
moritz demostanis: escaped_backslash actually checks for two backslashes (assuming that you'd use that to get a single backslash in the result) 14:54
demostanis: but yes, that's that general approach
demostanis I'm going to try out that, thanks for the help 14:55
guifa2 speaking of regexen and grammars … 15:01
guifa2 TFW you realize some config files generally use tabs, but occasionally use spaces even though some elements can contain spaces because why not 15:02
[ptc] I just spotted whateverable.6lang.org in a script and wondered if that should be whateverable.raku.org. Unfortunately, whateverable.raku.org doesn't exist. Should that be redirected?
i.e. shouldn't it be possible to do `wget whateverable.raku.org/HEAD.tar.gz`? 15:04
codesections re: TFW – yeah, I really don't understand why so many people feel the need to roll their own config format 15:12
[Coke] gets hit with a power outage, presumably due to everyone running their AC today
guifa2 codesections: this is the tz database, not a small config file at all either 15:13
timotimo the temperature over here will also soon neccessitate running an AC
guifa2 granted, it was done as a labor of love by one guy for ages, and no one wants to retool for something that works 15:14
guifa2 although for some countries that means extra work (because while summer time is predictable in Morocco, for instance, it's based on the Islamic calendar which can't be easily defined in a Gregorian-based config file, so every year gets its own configuration) 15:15
[ptc] .tell JJMerelo just wondering: is the docs repo still being built on travis?
AlexDaniel` [ptc]: it can be changed, but whateverable is 100% on my servers/domains, so unless we want to move everything it doesn't matter as much
tellable6 [ptc], I'll pass your message to JJMerelo
AlexDaniel` [ptc]: as for moving it, it's a bit harder than it sounds :) 15:16
[ptc] AlexDaniel`: ah, ok
AlexDaniel` but if anybody volunteers then I'd do my best to help
[ptc] AlexDaniel`: yeah, after reading your comment I guessed that :-)
guifa2 (and also, the comments in the config files are awesome. Total old school reminiscence, random musings, observations, etc. Reminds me of a different era of computing)
[ptc] I'd noticed that 6lang.org points to raku.org and then wondered if the subdomain should do that as well
codesections ha, that does sound great. And time is hard, so… 15:17
AlexDaniel` [ptc]: hm, it probably redirects to perl6.org first, and that is then redirected to raku.org :D
demostanis moritz: What can I do if the .ini file's value contains a \ which isn't at end? e.g. "hello \ world"
[ptc] AlexDaniel`: :-D 15:17
patrickb m: enum ( B => "Builder" ); say "{B}"; say "a{B}c";
camelia B
aBuilderc
tellable6 2020-07-27T18:32:24Z #raku-dev <vrurg> patrickb github.com/Raku/roast/issues/657#i...-664565613
rba Anyone knows the content of 15:18
whateverable.6lang.org ?
patrickb Is the above a bug?
AlexDaniel` rba: there's no content, it's just a redirect
shareable: HEAD 15:19
shareable6 AlexDaniel`, whateverable.6lang.org/HEAD
rba What was the content?
AlexDaniel` you can use it for stuff like this though
there was no content :)
AlexDaniel` the domain is used to share builds created for whateverable 15:19
AlexDaniel` these are used by Blin too 15:20
and that's it
rba Aha.
moritz demostanis: you can do something \\ <!before \n>
*something like
or evne
guifa2 codesections: I'm expecting to probably spend a solid month trying to get this timezone stuff down pat and that'll just be to an alpha version. Thankfully I've already figured out how I'm going to hax0r DateTime to enable proper timezones everywhere
moritz \\ <!before <[ \n \\ ]> > 15:21
guifa2 m: enum ( B => "Builder" ); say "{B}"; say "a{B}"; say "{B}c"
camelia B
aBuilder
Builderc
codesections wow, so Raku will have good Unicode support *and* good timezone handling? Truly a global language!
demostanis Oh yeah, that's what I was doing at the beginning... Thanks
guifa2 codesections: Timezones are *triccccky* (and not stable). I kind of get why they weren't included in core, you really shouldn't use them unless you're working with current time, or you know what you're doing 15:22
patrickb guifa2: Did you see github.com/raku-community-modules/...6-timezone ?
AlexDaniel` yeah, timezones are timezones :(
no breakthrough there
codesections agreed 15:23
guifa2 patrickb: yes. I'm going to use some of their calculations to speed along development (the only have offset available, but that's all I need) 15:26
I'm going to use a very different approach in terms of interfacing though
patrickb guifa2++ (I really enjoy your minimal boilerplate approach.)
guifa2 I'm trying to keep Intl::* to have as low of an overhead as possible, because it's easy to massively balloon things and it's not like Raku is known for low memory usage :-) 15:27
TZ entries can be compiled down to a handle of bytes (!) and I'm going to see if I can pull that off too :-) 15:28
Geth doc/pr/build-on-whateverable-again: fdc0fb9979 | (Paul Cochrane)++ | .travis.yml
Test building on whateverable
doc/pr/build-on-whateverable-again: d659c9c51d | (Paul Cochrane)++ | 2 files
Use the `raku` command instead of `perl6`
guifa2 goal will be to be able to say "use Intl::DateTime" (or similar), and then when you say "$foo = DateTime.new(now)", it will be able to either detect your timezone correctly, or, failing that, use the offset to put you into Etc/GMT+X, with all other functions passing through 15:29
[ptc] .tell JJMerelo sorry for the noise, yes it is. Just couldn't find it in my list of repos on travis... 15:30
tellable6 [ptc], I'll pass your message to JJMerelo
JJMerelo [ptc] No problem :-)
tellable6 2020-07-28T15:15:32Z #raku <[ptc]> JJMerelo just wondering: is the docs repo still being built on travis?
JJMerelo [ptc] the thing is that it's in travis-ci.org, not .com 15:31
guifa2 patrickb: imgflip.com/i/49oi4k 15:33
[ptc] JJMerelo: yup, that's where I looked. However it seems that I only have @perl6 in my list of organisations
patrickb :-D
JJMerelo [ptc] you were maybe not moved to the new one? You want privs?
[ptc] JJMerelo: ... rather than @raku. So there's something that hasn't been updated in a while
JJMerelo [ptc] so you're going to try and use whateverable again for tests, right? We stopped when the generated binary couldn't be used in Travis, as you probably know. 15:34
[ptc] JJMerelo: possibly not moved, yeah. Maybe I just need read privs, at least at the beginning, I'm still coming up to speed
patrickb bisectable6: enum ( B => "Builder" ); say "{B}"; say "a{B}"; say "{B}c"
bisectable6 patrickb, Will bisect the whole range automagically because no endpoints were provided, hang tight
[ptc] JJMerelo: nah, didn't know that! :-)
guifa2 patrickb: I spend probably 90% of my time trying to make my code instantly understandable. And the other 10% of the time apologizing in comments for when it's not immediately evident what's going on.
bisectable6 patrickb, Output on all releases: gist.github.com/381c4f9a0efbac4219...0ae495c8bd
patrickb, Bisecting by output (old=2018.02.1 new=2018.03) because on both starting points the exit code is 0
JJMerelo [ptc] let me check. 15:35
[ptc] JJMerelo: should I attack that? Or is it not worth it?
bisectable6 patrickb, bisect log: gist.github.com/ca936fdc95af560d33...8db5ea14ca
patrickb, (2018-02-27) github.com/rakudo/rakudo/commit/3a...3fb254ad1b
patrickb, Output on all releases and bisected commits: gist.github.com/4a6cfafc54acdb7e84...91b327679c
[ptc] JJMerelo: and unfortunately, I pushed to the main repo instead of my fork. Doh
JJMerelo [ptc] well, that was always "canary testing" in the sense that it was something that was updated almost daily, and could tell if there was something wrong with HEAD 15:36
holyghost ok, I have a small part of the dispatching and processing of symbols for raku, it has a low memory footprint
*racul
[ptc] JJMerelo: that's probably a good idea to get going again then. I'll see what I can come up with
JJMerelo [ptc] but the problem was that the binary was generated specifically for Ubuntu 19? So it couldn't possibly run in the ubuntu 18 that Travis uses, since it's got a different libc version 15:37
[ptc] so basically cross-compilation, or something like that, was needed. Now that patrickb is compiling using many different versions, I don't know if that would be used for Whateverable 15:38
[ptc] JJMerelo: doesn't travis also have pre-release Ubuntu versions available? That used to be a thing 15:39
JJMerelo I see anyway that the problem is still there... travis-ci.org/github/Raku/doc/builds/712606910
[ptc] yup, that's what I ran up against and was interested in seeing if I could fix the problem
JJMerelo [ptc] maybe, but the problem is that it's compiled for a non-LTS version, which are not supported by Travis
[ptc] hrm 15:40
JJMerelo [ptc] only way out, if we are to use the self same binary, is to create a docker container with the precise version that's needed and use that for test.
[ptc] true 15:41
JJMerelo [ptc] or use the openCompile infrastructure (or open... something, don't remember) to generate a binary for 18.04 and use it in Travis
[ptc] JJMerelo: yup, I'd thought of using the GCC compile farm or something similar 15:42
JJMerelo [ptc] also, welcome back (<-- take this with a grain of salt, because you might have been around in the precise moments I was not. Glad to see you're around again, anyway)
[ptc] let me see if I find that stuff...
[ptc] it'd be a good idea to use that infrastructure to build moar, nqp and raku on different architectures
JJMerelo: thanks :-) Nice to be here :-) 15:43
JJMerelo [ptc] right, OpenBuild build.opensuse.org/repositories/de...ages:perl6 15:43
[ptc] JJMerelo: ah, there. Yes, I'd forgotten the OpenSUSE stuff. 15:45
JJMerelo: also a good idea. I can feel the todo list getting longer. And here I was just wanting to submit a small patch.
patrickb [ptc] Do you have concrete plans wrt OBS (Open Build Service, the OpenSUSE build farm)? 15:46
[ptc] dives down the rabbit hole again
patrickb: nope, not yet
patrickb I ask because the next big proejct I plan to work on is creating a CI that couples Github and OBS. I'd hate to duplicate work. 15:46
[ptc] good point
AlexDaniel` niner: ↑ 15:47
[ptc] probably better if I contribute to that project rather than creating my own .... because tuits 15:47
AlexDaniel` btw I love deleting code from whateverable, so if you find a way to generate and share builds for every rakudo commit then I'd switch to that immediately 15:49
AlexDaniel` whateverable also creates builds for all branches, btw, and in the future maybe some extra ones for nqp/moarvm bumps 15:50
but you don't have to do that, I can always start with “try to fetch it first, if there's no build then make it yourself”
patrickb AlexDaniel: My plan is to have a program that polls github for PRs and commits, downloads sources via git, creates archives of the sources and pushes those to OBS and Azure. Keeping track of the process and push shiny status thingies to GitHub. Will probably also need to poll OBS and Azure to look for build results. 15:53
patrickb Build results would lie around on OBS and Azure. If I get that far downloading the build results and putting them somewhere shouldn't be a big deal anymore. 15:54
AlexDaniel` patrickb: polling is fine, but please trigger polling with a webhook too 15:55
that's something I need to do for whateverable, otherwise you end up waiting a few minutes before it actually starts building :(
patrickb AlexDaniel: I favor polling over push semantics in this case because of robustness. Also listening to a webhook should be doable. 15:56
AlexDaniel` yeah I agree with that, which is why I did the same for whateverable :)
holyghost JJ and co. : I like the RFC idea, just saying 15:57
demostanis With this piece of code: token value { [<normal-content>+ | <escaped-backslash> | <escaped-newline> ]* }, I add | <!header> (to check if it does not match) after <escaped-newline> (I'm not sure if it really is the right way) but Raku hangs, without error... Is this normal? 15:59
guifa2 moritz: one thing that even Raku can't help regex wise :-( : nested optionals. [y[m[d[h[m[s]]]]]]
JJMerelo holyghost thanks 16:00
holyghost np
guifa2 demostanis it's easy to do infinite looping with non-matches, but I'd need to see the source text too 16:02
AlexDaniel` m: say 42 + 42; sub infix:<+>(42, 42) { 43 } 16:10
camelia 43
guifa2 AlexDaniel`: you're evil 16:12
Voldenet m: say 43 + 42; sub infix:<+>(42, 42) { 43 } 16:16
camelia Constraint type check failed in binding to parameter '<anon>'; expected 42 but got 43
in sub infix:<+> at <tmp> line 1
in block <unit> at <tmp> line 1
Voldenet there's only one correct variant :P
guifa2 Voldenet: only because he didn't multi it 16:18
say 43 + 42; say 42+42; multi sub infix:<+>(42, 42) { 43 }
evalable6 85
43
Voldenet that's more evil, thanks - i'll use it in my codebase 16:20
guifa2 }:-) 16:22
it's a neat way of putting in easter eggs, I suppose
moritz guifa2: there's a conjectural feature for that, <*foo> is supposed to match as much of foo as it can, while always succeeding, Don't think that's implemented though 16:36
timotimo gasp
moritz m: grammar A { token foo { 'abc' }; token TOP { <*foo> } }; say A.parse('ab')
camelia 5===SORRY!5===
Unrecognized regex metacharacter < (must be quoted to match literally)
at <tmp>:1
------> 3r A { token foo { 'abc' }; token TOP { <7⏏5*foo> } }; say A.parse('ab')
Unrecognized regex metacharacter * (must be quoted to m…
guifa2 moritz: interesting. I bet one could write that as a specialized token fairly easily though 16:43
guifa2 makes module
<i-can-haz: <year>, <month>, <day>> 16:44
although because the tokens there are in codespace, it'd have to be
<i-can-haz: &year, &month, &day> or <i-can-haz: /<year>/, /<month>/, /<day>/> 16:45
guifa2 . o O ( in all seriousness, the fact that one can write tokens that can handle things however they want is a seriously underlooked feature ) 16:46
codesections "tokens that can handle things however they want" Is that related to the `term<>` feature? (docs.raku.org/routine/term:%3C%3E) 16:49
guifa2 codesections: no, here I'm talking regex tokens 16:50
normally, they just stand in for other regex expressions 16:51
guifa2 but they don't *have* to. All they have to do is return a match object (that says, effectively, "i matched from here to here"), which means you're free to do whatever you want, so long as you adhere to that 16:52
codesections Oh, ok. So how would you go from that to a module? Is that where you end up implementing a slang? 16:53
guifa2 You're thinking code-space tokens again :-) 17:05
In regex, a token is just found between <arrows>
m: say "abc" ~~ /<alpha>+/ 17:07
camelia 「abc」
alpha => 「a」
alpha => 「b」
alpha => 「c」
guifa2 sometimes they're technically regex in the background, but some of the built ins are actually secretly built in methods that can use code to run much faster 17:08
codesections Makes sense (I think :) ) 17:09
guifa2 selfplugs: rakuadventcalendar.wordpress.com/2...ch-eggnog/ 17:10
Geth advent: alabamenhu++ created pull request #51:
Update 20th anniversary calendar
17:29
Geth advent: 174f973b42 | L'Alabameñu++ (committed using GitHub Web editor) | 20th/README.md
Update 20th anniversary calendar

Signing myself up for talking about junctions
18:05
advent: 03bbba84ba | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | 20th/README.md
Merge pull request #51 from alabamenhu/patch-2

Update 20th anniversary calendar
AlexDaniel` guifa2: evil? :) 18:14
ah, I see
[ptc] .tell JJMerelo having dug a bit further, I've found that the whateverable Travis build uses htmlify in the test section, which no longer exists 19:31
tellable6 [ptc], I'll pass your message to JJMerelo
[ptc] .tell JJMerelo should therefore the whateverable part of the build be removed? I mean, it doesn't work atm anyway... Maybe better to get rid of dead code?
tellable6 [ptc], I'll pass your message to JJMerelo
Geth advent/day2: 53cec909eb | Altai-man++ | 20th/articles/rfc1.md
Remove trailing white space
20:22
advent/day2: efa4fdccba | Altai-man++ | 20th/articles/day2.md
Add day 2 article
Geth advent: Altai-man++ created pull request #52:
Day 2 article
20:23
advent/day2: 2bb9cbb322 | Altai-man++ | 20th/README.md
Match actual content with one in README
20:24
Geth advent: 7f43f83427 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | 20th/README.md
Add one for lizmat
21:11
Geth doc: c3a2332fff | Coke++ | doc/Type/Metamodel/DefiniteHOW.pod6
Don't test this fragment

Once we run this code, every test file after this point fails.
Closes #3391
21:34
linkable6 Link: docs.raku.org/type/Metamodel::DefiniteHOW
DOC#3391 [closed]: github.com/Raku/doc/issues/3391 [xt] xt/examples-compilation.t
[Coke] is Build.raku supported, or just Build.pm6 yet? 21:40
Geth doc: bc40d6e061 | Coke++ | 9 files
convert appropriate .pm6 instances to .rakumod

Closes #3379
21:50
doc: c585d0a143 | Coke++ | doc/Type/Backtrace.pod6
Track file rename in rakudo src dir
linkable6 DOC#3379 [closed]: github.com/Raku/doc/issues/3379 [docs] some use of .pm6 suffix
Link: docs.raku.org/type/Backtrace
[Coke] looking at the comments here: github.com/Raku/doc/issues/3373 - looks like it was decided it should go to the Rakudo repository -can someone with rights move it? 21:55
(or do we have to close and reopen to do that?)
Geth doc: 46464895f5 | Coke++ | doc/Type/independent-routines.pod6
Fix sprintf links

Closes #3127
22:01
linkable6 Link: docs.raku.org/type/independent-routines
DOC#3127 [closed]: github.com/Raku/doc/issues/3127 [bug][site] Broken link in docs.raku.org/routine/printf
patrickb .tell tony-o I commented on gist.github.com/tony-o/07fdf8b3a0f...4131ac224b 22:07
tellable6 patrickb, I'll pass your message to tony-o
Geth doc: e19f5ab6cd | Coke++ | README.md
Pull the "easy way to do it" to the top of the section
22:12
doc: 9e8c74eee5 | Coke++ | README.md
Point to new rakudoc, remove install note

  ( The install has been broken for some time, and doing a force
didn't fix the issue, just installed a broken setup.)
22:15