00:04 jaguart joined 00:08 jaguart left
tbrowder don't know 00:09
but raku has lot's of routines that others ddo 00:10
don't
it would be a cleaner version of splice 00:13
which makes no sense to me 00:14
lizmat says that came from perl, but it's a swiss army knife 00:15
00:16 Guest57 joined, Guest57 left 00:26 gabiruh left 00:32 gabiruh joined 00:35 gabiruh left
antononcube @tbrowder Like this one? 00:40
cdn.discordapp.com/attachments/633...7d518&
Or more like this: 00:43
cdn.discordapp.com/attachments/633...ca0ea&
00:56 oodani left, oodani joined
SmokeMachine Hi there! I haven't started the Slang work yet and I'm still far from ending the non-slang part... but I'm playing on adding event pattern recognition to Raku's Supplies. I tried to make it look like a grammar (as I said, I haven't started the slang yet). Could someone take a look and critic it, please? github.com/FCO/EventExpressionLang...write.raku 00:59
That's an example of usage... that code seems to be working... 01:00
tbrowder antononcube: closer to the latter, but have you had your robot making movies yet? 01:19
01:19 bdju left
tbrowder those are neat pics! 01:20
01:22 kylese left 01:23 kylese joined 01:29 bdju joined
antononcube I am trying to get access to Grock (xAI / Elon Musk), which can make movies. I also for 6 months used Mage, which can make short movies. (Probably longer now.) 01:35
01:36 gabiruh joined
I saw the first Swiss knife image in the presentation of @codesections at last year’s Taku conference… 01:36
01:49 oodani left 01:50 oodani joined 02:15 kylese left, kylese joined 02:49 Aedil joined 03:10 teatime left, teatime joined
ab5tract splice has a lot of options indeed 04:18
But pop(5) seems unnecessary given pop xx 5
Lots of “unnecessary” stuff in core though, so it’s not necessarily a strong argument against 04:19
It’s definitely not a replacement for splice,, though 04:26
05:47 silug left 05:50 silug joined, bd3i left, corwin left, sivoais left 06:00 sivoais joined 06:02 corwin joined, bd3i joined 06:04 jaguart joined 06:09 jaguart left 06:23 pierrot left 07:40 sena_kun joined 08:04 dakkar joined 08:11 sena_kun left 08:43 jaguart joined 09:10 jaamer joined 09:11 jaguart left
lizmat bisectable6: "foobar".chop(3) 09:26
bisectable6 lizmat, Will bisect the whole range automagically because no endpoints were provided, hang tight
lizmat, ¦6c (83 commits): «» 09:27
lizmat, Nothing to bisect!
lizmat hmmmm
09:37 Sgeo left 09:44 synthmeat left 09:45 synthmeat joined, izel joined
izel hi, is it only me not being able to build Rakudo? i get a "RAKU_SPECS(6): whitespace is missing" at NQP/Config.pm 09:54
what i did and the output paste.debian.net/1328167/
same result if i do `rakubrew build moar master`
lizmat feels like a problem with perl? what does perl -V say? 09:56
izel yeah i was about to post that; 5.30
i guess they are at 40 now; should i upgrade and retry? 09:57
lizmat my system's perl is at 5.34.1 and that has no problems building
so that's definitely something to try? 09:58
izel ok thanks will try
ab5tract If it’s this NQP/Config.pm, it explicitly uses 5.10 — github.com/Raku/nqp-configure/blob.../Config.pm 10:11
Though I don’t see RAKU_SPECS in there 10:14
That whole dependency has away felt far more confusing than necessary 10:18
Supposed the error emerges from NQP::Config::Rakudo 10:19
Well, where pray tell is this module?
izel ab5tract: i think it's here: github.com/rakudo/rakudo/blob/main.../Rakudo.pm 10:31
also `use v5.10` is like not exactly requiring this but >= this. 5.10 specifically enables some features like `say`, `state` etc. 10:32
ab5tract Ah yea, there it is 10:34
I haven’t used that pragma style in a while but my understanding is that it will run in later version s with only 5.10 features enabled 10:40
My point being that there shouldn’t be anything between 5.30 and 5.34 that would affect ode which uses thjs pragma 10:41
10:41 Maylay left
izel oh i see, yeah not sure why 30 didn't work 10:42
perlbrewing 34 but still didnt finish
ab5tract This is the only commit < 2y — github.com/rakudo/rakudo/commit/34...efd6a4d9a7 10:43
izel: you could try building a recent release instead and see if you get a similar error 10:59
While you are waiting for 5.34
izel yeah i) `rakubrew download 2024.08` installed fine 11:05
ii) 5.34 gave the exact same error...
i think this is the line it's complaining about: github.com/rakudo/rakudo/blob/main...U_SPECS#L6 11:06
but i hand-traced the code in github.com/rakudo/rakudo/blob/main...do.pm#L181
and it shouldn't even get into that while loop because `$line` is "1" and it's emptied out with `$line =~ s/^\h*(?<default>\*)?(?<number>\d+)\b//` 11:07
anyway, sorry for the noise here probably it's something about my system but idk why 11:08
ab5tract Does download just download a prebuilt archive? I’ve never used that feature 11:10
rakubrew download I mean
It doesn’t seem to have cropped up before, and this specific part of the toolchain doesn’t change very often.. 11:11
izel yes `rakubrew download` fetches a prebuilt binary 11:16
`rakubrew build` attempts to build from source 11:17
ab5tract I was suggesting to check whether this issue was also a problem building from a recent release
izel oh i see, sorry i misunderstood
ab5tract But I’m very glad that at least you are able to get a working Raku ! 11:18
izel thanks
let me build 2024.07 with rakubrew
same error...
exactly the same error 11:19
actually i'm going to try print-based debugging because i'm really curious what is `$line` that is missing that whitespace 11:21
ab5tract izel++ 11:28
11:44 xinming left, xinming joined 11:54 jaamer left 11:57 acidsys left 11:59 acidsys joined 12:08 izel22 joined, izel22 left 12:09 izel left
SmokeMachine Hi all! 12:18
patrickb My suspicion is that the rakubrew build error has something to do with the environment. Like home folder name or some env var. 12:20
did you manage to reproduce when calling Configure.pl directly? 12:21
SmokeMachine I'm trying to write a events pattern recognition "grammar" for raku... I didn't touch the Slang part, so I commented how the code should look like and added the equivalent using meta... does anyone have any suggestion to me? github.com/FCO/EventExpressionLang...write.raku
lizmat weekly: github.com/FCO/EventExpressionLang...write.raku 12:22
notable6 lizmat, Noted! (weekly)
SmokeMachine lizmat: thanks... any suggestion? 12:23
lizmat not yet
SmokeMachine please, let me know if any...
if anyone is going to take a look at other files, please note it's on rewrite branch... 12:27
12:33 izel joined
SmokeMachine I don't really know how grammar/regexes work, but I tried to adapt what I think I know to events... 12:36
izel patrickb: yes same error when done manually too 12:39
upon print-debugging, i realized `chomp` wasn't really chomping; the lines are ending "\r\n", it only chomps "\n"
added `local $/ = "\r\n"`; to NQP/Config/Rakudo.pm and error is gone and NQP built fine 12:40
but then MoarVM failed; looking at the error, same stuff again, so i applied this to /nqp/MoarVM/tools/lib/oplist.pm too and that was gone too 12:41
timo is it fetching with git?
izel yes
timo there may be a system-wide git setting you have set that does some newline translation stuff? 12:42
i don't know how perl5 decides whether to handle windows-style newlines or not 12:45
izel that's probably it yes, thank you... 12:48
let me try with core.autocrlf=input...
timo it surprises me that you seem to be the first one to run into this issue. when you use `rakubrew build` for an older release, does it fail the same way? like 2024.01?
izel yeah it's the same exact error for 2024.01, too 12:49
timo in any case, the error message is clearly LTA and can be much improved, the question is how and where exactly
izel i'm now going to try with autocrlf changed 12:50
timo and then if we detect windows newlines, why aren't we able to just handle them properly already? 12:51
izel thank you timo! NQP built fine, waiting for MoarVM... 12:55
i think the building process is not blame but me: that autocrlf thing was messing it up...
i'm trying on WSL by the way
it's already weird to begin with, in some sense...
timo i think it would be good to at least point someone in the right direction when we detect something strange like that 12:56
ab5tract timo: agreed. but the NQP::Config stuff is a bit of a winding dungeon 13:01
patrickb Is it true that `map`ing over a Seq might not do anything because of lazyness or some such? 13:03
ab5tract a bit surprised that perl doesn't even seem to have a quick feature flag or pragma to set chomp to handled CLRF transparently
lizmat patrickb: indeed, something must do a pull
usually that's the sink process
patrickb What's the canonical way to force processing?
{ 13:04
lizmat .eager ?
patrickb { $<q-quote-opener>.trim-leading.comb.map: { $*quote-mode.closer ~= %standalone-quote-pairs{$_} } }
This in a regex bit me.
Because that code does not run. 13:05
lizmat and ...map({...}).eager ?
.map just returns a Seq
patrickb OK. What's the trigger you typically look out for that tells you something like that is necessary? In most cases sink context saves the day, right? 13:06
lizmat right, but in a regex it's not in a sink context 13:07
patrickb Putting a `; True;` after it makes it work. 13:08
Yeah. I think I get it.
That makes me wonder, what happens to the value of a `{}` block in a regex if it's not simply sunk? 13:09
lizmat what happens to the True you returned :-) 13:10
m: my $a := (^10).map(* + 1); say $a.^name; .say for $a # the return value of a .map is a Seq:D 13:11
camelia Seq
1
2
3
4
5
6
7
8
9
10
patrickb I don't know. I originally had a `say $*quote-mode.closer` there for debugging purposes. Everything worked and I was happy. Then I removed the debug cruft. :-P
I guess I just ++ed by raku skills... (I learned something about Seqs and sink context) 13:13
lizmat well, the last statement in a block is not in sink context 13:14
patrickb ... and the surrounding regex doesn't sink the block. 13:15
ab5tract using a `for` heard would work too, if I'm not mitaken 13:18
lizmat it just boolifies the return value, and decides to continue if it's true
m: my $a := (^10).map(* + 1); say $a.^name if $a 13:19
camelia Seq
lizmat Seq.Bool checks concreteness afaik
13:23 jaguart joined
librasteve FWIW the way I see it almost all raku "list operators" (ie routines that take and return lists) produce (lazy) Seqs ... I don't know lisp, but I imagine that this - a simple, standard way to pass list of intermediate results around - is the bedrock of list processing languages (and is a key part of using pipes and functional coding). I hear that very few languages have taken deep laziness into production, and I think that this is an 13:35
underappreciated major core strength of raku. It's certainly a rite of passage for learning raku and I have been thinking about blogging (or even elaborating the docs already very good docs.raku.org/language/list reference). It's one of the reasons that I encourage newbies to use @ sigils and [] Arrays and = assignment since that tends to side step some surprising aspects of raku (such as the single argument rule). [I know that others
prefer to promote List over Array and Map over Hash, but imvho until performance or immutability becomes a concern, use of $ and := with 'many things' is a premature optimisation]. Here endeth the rant.
13:36 MasterDuke joined
m6locks clojure for sure does lazy lists 14:01
timo lizmat: that's only for <{ }> though not { } right? 14:08
lizmat m: say "foo" ~~ / o { False } /
camelia 「o」
lizmat m: say "foo" ~~ / o <{ False }> / 14:09
camelia Nil
lizmat yup, you're right :-)
m: say "foo" ~~ / o <{ True }> /
camelia Nil
lizmat ?
timo oh wait it's actually <?{ }> isn't it? 14:11
and <{ }> is for when you want to match something literally, or maybe regex-syntaxed?
m: say "foobar" ~~ / o <{ "[ob]+" }> / 14:12
camelia 「oob」
timo m: say "foobar" ~~ / o <?{ "[ob]+" }> /
camelia 「o」
timo there it is, <{ }> is for regex syntax interpolation
m: say "fooFalsebar" ~~ / o <{ False }> /
camelia 「oFalse」
antononcube @librasteve I would say the Seq-centric design of Raku is the reason it would never become popular. 14:13
Not with the typical data scientist, data analysts, or engineers. 14:14
librasteve ok - Haskell Scala, Clojure and Racket then - sorry I shouldn't believe everyhting I hear 14:15
I would say that to the large majority of data scientists, etc (who come from mainly Python with a tidge of R and Julia) that sigils and curlies and other vile forms of line noise are also a turn off ... tbh despite this being a massive and no doubt heterogenous group, I don't think that raku will be an easy sell except for the (tiny) fraction who already feel that they want to graduate to a more hard core (aka unixy) programming 14:19
language
and semicolons on every line! 14:21
14:22 xinming left
SmokeMachine Not on the last one of each block… not on my code at least… :) 14:23
14:24 xinming joined 14:30 Maylay joined
tbrowder FYI, i'm working on a prog to produce graph paper I can't find anywhere. it's for US letter but easily can be made for A4 (or other paper size) if it would be useful for anyone here. 14:43
output is pdf 14:44
lizmat and yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2024/09/02/2024-36-on-top/ 14:47
ab5tract tbrowder: I'm interested. It's been a minute since I've drawn an RPG map by hand :)
antononcube @tbrowder Please consider using configurable squares, rectangles, and hexagons.
cdn.discordapp.com/attachments/633...04db7& 14:51
@tbrowder Here is another example: 14:54
cdn.discordapp.com/attachments/633...78c87&
@tbrowder Also, I would be interested to see graph paper with rotation: 14:59
cdn.discordapp.com/attachments/633...5e5dc&
15:01 izel left
librasteve lol --- I need non euclidean graph paper for my general relativity work 15:04
antononcube @librasteve When @trbrowder makes an MVP of his Raku package on GitHub/GitLab/Bitbucket/etc. we can file issues. 15:08
tbrowder i'm a simple man, but much is possible with Raku and friendly Rakuuns. (racoons can be construed as a hateful pejorative in parts of US) 15:11
timo m: sub tester($ where / <hi=.ident> \s+ <bye=.ident> /) { say "got:"; say $<hi>; say "and"; say $<bye>; }; tester "hello goodbye" 15:15
camelia got:
「hello」
and
「goodbye」
timo i had never thought of this, that is pretty damn cool
SmokeMachine timo: what? 15:18
timo you can regex-match in a signature, and then the $/ will have your results in it inside the body of the method 15:19
SmokeMachine Oh! Yes, interesting!
lizmat feels like some side-effect, but it also works in RakuAST 15:20
SmokeMachine This is one thing I keep asking my self about my “event’s grammar” thing… if I should or shouldn’t populate $/…
Another question is if it should accept actions and if it should, should I emit the .ast/.made instead of the Match object in case of a match? 15:22
antononcube @SmokeMachine What the "sentences" of that "event's grammar" ? Can they be natural language statements, like: > On August 7, the temperature in Atlanta was 25°C 15:23
timo for parallelism with regular grammar matches, i'd say emit the match object in case of a match, so the user can get the .ast or .made if they need that, or the $/
since you can't always go from a .made back to the Match object it was installed on 15:24
SmokeMachine antononcube: it’s copied from regexes: github.com/FCO/EventExpressionLang...write.raku 15:25
timo you have a type in that file :D it says "patterm" 15:26
SmokeMachine Another example not working yet (and needing some review): github.com/FCO/EventExpressionLang...sk.rakumod
timo, that makes sense! I hadn’t thought on that 15:27
timo ah, incidentally i was wondering how you were going to handle things like "you don't know if a match is complete if there's a + or * quantified atom at the end", so i'm guessing the 5min there is related to that problem in a general way
SmokeMachine The 5min will help to invalidate the “rule” after some time, but I plan that if you have something like: `pattern TOP { <event(:type<heartbit>)>+ }` to match/emit on every event with type equals to heartbit and each emit it will increase the $<event> with the last event… 15:32
15:34 Maylay left, sivoais left, Altreus left, swaggboi left, dustinm` left, avar left, camelia left, jjatria left, hvxgr left, andinus left, tailgate left 15:35 tib is now known as 073AAAKOU, Maylay joined, sivoais joined, Altreus joined, swaggboi joined, dustinm` joined, avar joined, camelia joined, jjatria joined, hvxgr joined, andinus joined, tailgate joined
SmokeMachine <event> ** 2..4 # will match on the 2nd, 3rd and 4th events… 15:35
timo: make sense? 15:36
And where you see $<hot><event><area>, it will probably be something like $<hot><event>.data<area> 15:39
timo i'm not sure i fully understand 15:45
SmokeMachine What mart I haven’t explained well enough? 15:46
timo what exactly is the meaning of "<event(...)>"? does "event" belong to your module or the data that is sent into the grammar?
antononcube @SmokeMachine It seem that you have particular event specs / formats in mind for the "event's grammar." Are those from log files? 15:47
SmokeMachine <event> is a built in rule that can receive named parameters to be used to match the received events
librasteve SmokeMachine: it is easy to get burnt poking things into the $/ I strongly recommend make / made for that kind of thing
SmokeMachine antononcube: from supplies
antononcube If yes, then, maybe it is better to make grammars / parsers for different log-file-formats from different systems, and then make a "master" grammar. 15:48
librasteve can someone invite me to join lobste.rs please (if you think I am suitable material) 15:49
SmokeMachine antononcube: that keep “listening” to a Supply and if it finds a specific patttern happening on that supply, it emit a match object 15:50
timo is there much else that you can match besides <event(...)> in such a rule?
maybe this is just for until you compile the patterns yourself. otherwise i would say "leave event out if it otherwise goes on every line" 15:51
SmokeMachine timo: you can match different values, <event(:type<temperature>, :value(“>” => 40)> will match hashes that have the value for type equal to “temperature” and the value for value > 40… 15:53
I’m thinking on making <event> to be generic anything, but also have <hash> and <object>…
timo random semi-related: i want to build a user-facing pattern matching thingie to look for complex patterns in spesh log output, so i will want to be able to express things like "a BB with set $<a> $<b> followed linerly by a BB with set $<c> $<a> followed linearly by unbox_i . $<c>" or something 15:56
for that i want the backtracking and capturing of grammars, but not on text input but on something more structured
SmokeMachine But you can also do something like: <event(…)> { say $<event>.data } <{ code }>
15:57 izel joined
SmokeMachine timo: sorry, what do you mean by BB? 15:58
timo oh, that's a thing in the spesh logs, a Basic Block
that's terminology that comes from like Control Flow Graphs and Data Flow Graphs 15:59
for now though i'm not even parsing the lines yet so i don't have a prototype or anything yet 16:00
SmokeMachine Your “followers linearly” reminds me to explain that `pattern` accepts events between the described events, but I plan to create other “method like thing” that doesn’t… and maybe another one that won’t accept events in between if something is true on that… 16:02
timo: if you want to parse each line and send it to a supply, maybe you could use this thing… 16:05
timo ugh, summer storm is giving us lightning. so no more internet for today i guess
16:07 izel left
lizmat timo: why? 16:31
timo lizmat: lightning strikes take out our internet connection regularly 16:39
[Coke] be safe
timo i'm safe don't worry :) 16:40
because of the intense rain i decided to go check in the basement, and it turned out that in the half of the basement where we don't have our room there was water running on the floor. alerted $responsible-person who then went looking for the neighbour whose part it was where water was coming out, and the one where water was going into 16:41
16:41 xinming left, xinming joined 16:48 dakkar left
[Coke] Yikes 16:50
17:34 xinming left, xinming joined 18:01 sena_kun joined
tbrowder librasteve: if you look at my PDF::Document modu" 18:09
module in my GitHub repo you will see some pte 18:10
*pretty fancy graphics. David Warring's PDF modules enabled me to create phases of the moon with perfect ellipses. if yoy 18:12
*you can define the transformations you need, a graph on the xy plane of paper can be done fairly easily. 18:13
the full power of Bezier curves are in the package 18:14
18:21 pierrot joined
tbrowder to be clear, they are vector drawings, 19:48
librasteve tbrowder: thanks ... I read David Warnock's Postscript book once upon a time ... sort of "Bezier Centric" I think (which is v. cool if you want to model curves on 2d paper) 20:13
20:19 lizmat_ joined 20:21 hulk joined, notable6__ joined 20:22 evalable6__ joined, jcallen_ joined, unicodable6__ joined, bloatable6__ joined, greppable6__ joined 20:23 simcop2387_ joined, drakonis1 joined 20:24 tonyo1 joined 20:25 notable6 left, evalable6 left, kylese left, unicodable6 left, bloatable6 left, greppable6 left, tonyo left, drakonis left, lizmat left, jcallen left, simcop2387 left, simcop2387_ is now known as simcop2387 20:26 cm left, cm_ joined, cm_ is now known as cm
tbrowder 👍 20:41
antononcube Related to the Bezier topic -- B-Spline basis implementation is in my TODO list. I am mostly not sure where to "put it." Making a package "Math::Polynomial::BSpline" seemed excessive. But now I am thinking to put Spline, BSpline, and Bezier in one package. 20:51
21:19 MasterDuke left 21:26 Sgeo joined 21:33 jaguart left, sena_kun left 21:34 drakonis1 is now known as drakonis 21:49 lizmat_ left, lizmat joined 22:23 kaskal joined 22:24 kaskal left
Geth docker: m-dango++ created pull request #67:
Bump to 2024.08
22:51