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 |