š¦ Welcome to the MAIN() IRC channel of the Raku Programming Language (raku.org). Log available at irclogs.raku.org/raku/live.html . If you're a beginner, you can also check out the #raku-beginner channel! Set by lizmat on 6 September 2022. |
|||
lizmat | guifa_ the Block is a HLL concept, the Blockoid is the actual thing that is the Block, is my understanding | 00:00 | |
00:00
reportable6 left
|
|||
Nemokosch | > Both. Block is a first class language construct while Blockoid is more a unit of organization in the AST. | 00:00 | |
nine, 9th january | |||
lizmat | afk& | 00:01 | |
Nemokosch | "both" was for "what would be represented by { } among RakuAST concepts" or something similar | ||
00:02
freeside left,
reportable6 joined
|
|||
I'm kinda afraid by the time the RakuAST architecture manifests in some usable form, it will be the same kind of mess Perl6 World was | 00:04 | ||
no doubt it can be implemented but it seems to be a huge problem that at the moment it's all up to the creativity and discipline of people who probably had little say and consideration in the fundamental design | 00:06 | ||
guifa_ | I think the main thing RakuAST needs is some better error messages and stuff will be infinitely more usable. SOMe of the blow ups probably will have some easy catches (like calling RakuAST::IntLiteral(42) without the .new ) | 00:10 | |
As I play with it more I'm learning what certain errors tend to imply | |||
Nemokosch | you could check around in # raku-dev some time, lately there have been some activity | 00:12 | |
I also tried to fix something with the metamodel (local &variables, yeee) but it kept flopping so much that I have basically given up trying to understand whether it works actually or not... | 00:13 | ||
guifa_ | Yeah, I just haven't had enough time to jump far into helping add error messages and such (and they might be unwelcome this early on) | ||
OTOH, I did finally get Intl::Format::Number to now feature match (and then some!) the old version of the module | |||
I need to update tests and triple check some stuff, but I at least have rudimentary negative number formatting, and percent/permille formatting will be very easy I think. Still need to get exponential numbers but the foundation has been laid for it | 00:14 | ||
Nemokosch | it could be that I'm missing something... but it really seems like there is very little material on the whole architecture of RakuAST | 00:15 | |
and nine basically also said that symbol resolution (and the when of it) might be the biggest challenge, so yeah, I shouldn't feel that bad about that floppy &var maybe? lol | |||
to be honest, Jonathan could have left some proper notes behind at the very least | 00:16 | ||
Life would be a LOT easier with a coherent picture of how things are supposed to work | 00:17 | ||
00:19
freeside joined
00:25
ab5tract left
00:42
QhpAptyj9hj0RQwM left
00:47
thundergnat left
00:56
energizer_ is now known as energizer
01:03
derpydoo joined
01:08
melezhik joined
|
|||
melezhik | .tell [Coke] , I am trying to play with SparrowCI and some Raku/doc CI tests and get this error - wrong input t/ - ci.sparrowhub.io/report/3050 , not sure what I do wrong and why prove6 complains. ... | 01:09 | |
tellable6 | melezhik, I'll pass your message to [Coke] | ||
rf | What's the best way to compare a list? | ||
Ideally most performant | 01:10 | ||
01:10
melezhik left
|
|||
lucs | Has Jonathan stopped working on this? | 01:10 | |
01:10
ProperNoun left
01:12
melezhik joined
|
|||
melezhik | . | 01:12 | |
guifa_ | rf simplest way is eqv or ~~Ā , not sure on performant, depends on the type of comparison probably | ||
rf | I'll benchmark both, thanks | 01:13 | |
[Coke] | melezhik: Not familiar with why you're using docker there. | 01:15 | |
I don't use prove6 locally, not sure if that's related. | 01:16 | ||
I would run make test typically, which is: | |||
if [ "${TEST_JOBS}" != "" ]; then prove -j ${TEST_JOBS} -e raku t; else prove -e raku t; fi | |||
01:16
melezhik left
|
|||
[Coke] | based on github.com/Leont/app-prove6, that seems reasonable, though. | 01:18 | |
01:19
freeside left
|
|||
leont | Both prove and prove6 will pick up HARNESS_OPTIONS=j<number> by themselves, using that may be easier | 01:20 | |
01:23
xinming left
01:25
xinming joined
01:26
freeside joined
01:30
freeside left
|
|||
tonyo | i have the same question as lucs, did jonathan /quit? | 01:32 | |
tellable6 | 2023-02-12T19:56:34Z #raku <rf> tonyo Another weird thing I found, the test it generates appends 2 spaces to the left of everything for some reaso | ||
2023-02-12T19:59:18Z #raku <rf> tonyo Also, test files should be .rakutest not .t anymore iircs | |||
tonyo | rf: will fix in the ante meridiem, ty for taking such an in depth look | ||
rf | My pleasure, overall its great changes so far | 01:33 | |
Which Jonathan? | 01:36 | ||
lucs | Worthington. | ||
I sure hope he'll still be around. | 01:38 | ||
rf | He's active about a month ago, people get busy. | ||
[Coke] | leont: I (maybe?) wrote that make target like 20 years ago for parrot I think, it could stand to be updated, sure. ;) | 01:41 | |
01:41
freeside joined
|
|||
leont | rf: how dare people have a life outside of open source! /s | 01:42 | |
[Coke] | m: dd uniprop(1234) | ||
camelia | "Lu" | ||
tonyo | oh, it was more the comment about "he could've at least documented" | ||
[Coke] | m: dd uniprop(1234,"Alphabetic") | ||
camelia | Bool::True | ||
[Coke] | ^^ How can I get a list of supported properties from raku? Cheat and read the unicode data in the source? | 01:43 | |
tonyo | m: class A { has $.x; }; say A.^attributes; | ||
camelia | (Mu $!x) | ||
tonyo | there's a caret for it | ||
[Coke] | m: dd uniprop(1234,'cc') | 01:44 | |
camelia | "Lu" | ||
[Coke] | m: dd uniprop(1234,'madeup') | ||
camelia | 0 | ||
[Coke] | tonyo: for what? | 01:46 | |
not attributes, unicode properties. | |||
tooling++ - using rakubrew to install zef in my local raku build from outside of zef, bumped into the master/main issue, did a self-upgrade and now it's fine. | 01:49 | ||
*from outside of rakubrew* | 01:50 | ||
... I wanted to install Terminal::LineEditor to do something... can't remember what now | 01:51 | ||
rf | rakubrew is a godsend | 01:52 | |
[Coke] | Properties - ok, section 3.5 of the standard has a table, will use that. | 01:55 | |
guifa_ | jnthn gets quite busy with $day-job sometimes and obv that takes priority to all things Raku (although sometimes there is wonderful overlap, like Spreadsheet::XLSX ) | 02:08 | |
02:12
pingu left
|
|||
tonyo | much better than it sounded | 02:50 | |
02:50
melezhik joined
|
|||
melezhik | .tell [Coke] I am using docker to run raku/doc tests because this requirement in github.com/Raku/doc/issues/4194 , I sm just trying to do the same using SparrowCI. I am not sure why GH actions for the same setup succeeds without errors ... | 02:52 | |
tellable6 | melezhik, I'll pass your message to [Coke] | ||
guifa_ | github.com/alabamenhu/IntlFormatNumber <-- don't look behind the curtain, I'm still debating the best ways to format/organize RakuAST code haha | 02:55 | |
The main thing is, it works! Hopefully this week I can figure out exponential numbers and percentages | 02:57 | ||
03:01
melezhik left
|
|||
Anton Antonov | @guifa Can you make that function format-number to take language-number pairs? E.g. format-number(es=>1_002_323) or format-number([es=>32322131, en=>323.23211]). | 03:07 | |
@guifa Feel free not to like that design. | |||
03:07
GreaseMonkey left
03:09
greaser|q joined
|
|||
lucs | @Nemokosch I golfed down my exception message problem: it was indeed an array. The example I showed you guys was not my exact code (I mean, who has messages that say "My message"), but in trimming it down to show you, I neglected to observe that the message method was indeed (accidentally) returning two elements. š„ŗ | 03:14 | |
03:17
greaser|q left,
greaser|q joined,
greaser|q is now known as GreaseMonkey
|
|||
Anton Antonov | @guifa Basically, with the packages "Lingua::NumericWordForms" and "Intl::Format::Number" I want to make pipelines like this: from-numeric-word-form('three thousand and seventy four', :p) ==> format-number . | 03:19 | |
rf | Aha, I'm beating JSON::Fast now by about 0.89% on avg :^) | ||
Anton Antonov | @rf Pictures, or it never happened. | 03:20 | |
rf | 0m0.043s <-- SIMD | ||
Anton Antonov | @rf Extraordinary claims require extraordinary evidence. | ||
lucs | ( @Nemokosch It happened because I originally had mistakenly written something like ļ½¢method message { say "The error is ", $.error }ļ½£, and when I realized the "say" did not belong there, I removed it, and that resulted in the same output, but with the parentheses. sigh ) | 03:21 | |
rf | 0m0.056s <-- JSON::Fast | ||
That's for 1000 iterations of an 1mb json file | 03:22 | ||
MasterDuke | rf: i'm kind of surprised you're not faster. have you profiled to see where you're slow? though maybe there's a large difference on bigger files | 03:23 | |
*larger difference | |||
Anton Antonov | @rf 1000 iterations -- good. Also, maybe, you should generate a few dozen/hundred random JSON files and measure those timings. | ||
rf | Well, I have to do some real ugliness because I'm not sure of a way to return Raku types via C (nested types that is) | 03:24 | |
Basically we have to build a tree and assemble it using function pointers instead of just returning the data | |||
I'm sure if I could build a Raku hash in C it would be about 50% faster than it is now. | 03:28 | ||
[Coke] | with raku-uni, if I run raku -I. bin/uni -n '/"rev".*"pilcr"/' - it's VERY slow. if I instead run raku -I. bin/uni -n rev '/"rev".*"pilcr"/' it'zs immediate - the second version does a "contains" pass first and then only has to regexp on whatever is left. Is there any way to speed this up without cheating? | 03:29 | |
tellable6 | hey [Coke], you have a message: gist.github.com/cef5233d1172f7d608...e86d5e65d0 | ||
[Coke] | I could split up the text of that regex and do the contains on rev and pilcr first, but I'd have to be careful to not cheat badly. | 03:30 | |
MasterDuke | rf: i'd suggest asking nine directly if that can be done. Xliff has also done a lot of nativecall | ||
[Coke] | would love a way to extract top level literal strings. | 03:33 | |
rf | Goodnight folks | 03:34 | |
03:34
rf left
|
|||
MasterDuke | [Coke]: i don't believe there's any way to do that (extract literals from regexes) at the Raku level | 03:49 | |
03:52
razetime joined
|
|||
[Coke] | ok. I think I'll do a horrible cheat job then | 03:57 | |
github.com/coke/raku-uni/blob/mast...akumod#L25 | 04:01 | ||
04:52
linkable6 left,
evalable6 left
04:53
linkable6 joined
04:55
evalable6 joined
05:22
razetime left
05:31
razetime joined
05:37
razetime left
05:54
kjp left
05:56
kjp joined
06:00
reportable6 left
06:01
reportable6 joined,
freeside left
06:27
derpydoo left
06:28
freeside joined
07:06
Tirifto left
07:07
Tirifto joined
08:03
Sgeo left
|
|||
Nemokosch | I guess Jonathan didn't officially stop working on Rakudo stuff but the thing is, if "we" were to wait on him to make progress with RakuAST stuff, it couldn't be finished for another two years | 08:36 | |
If you "get busy" for a whole year straight while being two years deep in some work that only you know properly, chances are you really wanted to give something to others so that they can take it up in a sensible manner | 08:38 | ||
08:52
jpn joined
08:57
jpn left
08:58
sena_kun joined
09:03
frost joined
09:08
patterner_____ left,
skaji left,
skaji joined,
pjlsergeant__ left,
kawaii left,
PotatoGim left
09:09
dakkar joined,
GreaseMonkey left,
mtj left
09:10
greaser|q joined,
kawaii joined,
pjlsergeant__ joined
09:11
ab5tract joined
09:12
PotatoGim joined
09:14
frost left
09:18
frost joined
09:19
frost left
09:21
mtj_ joined
09:22
patterner_____ joined
10:22
linkable6 left,
evalable6 left
10:24
linkable6 joined,
evalable6 joined
10:25
QhpAptyj9hj0RQwM joined
10:31
ab5tract left
10:36
perlbot left,
simcop2387 left
10:37
simcop2387 joined
10:38
perlbot joined
10:48
ab5tract joined
10:52
freeside left
|
|||
guifa_ | AntonAntonov: I think you could make a utility sub for that pretty easily: `sub format-number(*%vals) {Ā use Intl::Format::Number; format-number .value, :language(.key) for %vals }` | 10:52 | |
start up will be a bit of a pain initially because of CLDR access, but then will be smooth sailing from there. I might make a Lite version later that will be slightly faster start up, but will require updates when CLDR data is updated | 10:54 | ||
10:57
jpn joined,
thundergnat joined
|
|||
thundergnat | .tell [Coke]: I wonder if rosettacode.org/wiki/Character_codes#Raku might have some useful stuff for you? | 10:58 | |
tellable6 | thundergnat, I'll pass your message to [Coke] | ||
10:58
thundergnat left
11:09
ab5tract left
11:11
QhpAptyj9hj0RQwM left
11:18
jpn left
11:28
QhpAptyj9hj0RQwM joined
11:33
QhpAptyj9hj0RQwM left
11:46
jpn joined
12:00
reportable6 left
12:02
reportable6 joined
|
|||
Anton Antonov | @guifa Ok, sounds good. | 12:03 | |
12:12
jpn left
12:20
ab5tract joined
12:24
jpn joined
12:25
frost joined
12:26
frost left,
frost joined
12:30
jpn left
12:33
ab5tract left
12:35
frost left
12:42
jpn joined
12:43
frost joined
12:46
frost left
12:48
jpn left
12:51
skyheights joined
12:52
skyheights left
12:53
frost joined
12:54
freeside joined
13:03
ab5tract joined
13:10
jpn joined
|
|||
Nemokosch | lizmat: github.com/lizmat/HTML-Entities-Fast/issues/1 FYI | 13:13 | |
13:19
ab5tract left
13:21
jpn left
|
|||
lizmat | noted | 13:25 | |
tonyo | rf: are you parsing in C ? | ||
tellable6 | tonyo, I'll pass your message to rf | ||
lizmat clickbaits rakudoweekly.blog/2023/02/13/2023-...ore-class/ | 13:26 | ||
13:27
derpydoo joined
13:29
ab5tract joined
13:35
jpn joined,
ab5tract left
13:36
ab5tract joined
13:38
freeside left
13:51
jpn left
14:04
frost left
14:07
ab5tract left
14:08
razetime joined
14:14
jpn joined
14:21
QhpAptyj9hj0RQwM joined
14:26
freeside joined
|
|||
[Coke] | .tell thundergnat - Yup, that's very close to what I need. | 14:30 | |
tellable6 | [Coke], I'll pass your message to thundergnat | ||
14:37
jgaz joined
|
|||
[Coke] | getting alerts on jquery versions in raku/mu et al. | 14:37 | |
tellable6 | 2023-02-14T10:58:10Z #raku <thundergnat> [Coke]: I wonder if rosettacode.org/wiki/Character_codes#Raku might have some useful stuff for you? | ||
tbrowder | howdy. just beowsing around this morning and, for the second time, hit on the "cucumber" project (github.com/cucumber) and wonder if we might want to get on board with a raku version | ||
*browsing | 14:39 | ||
lizmat | the late Robert Lemmen worked on raku.land/cpan:ROBERTLE/CucumisSextus | 14:41 | |
[Coke] | tbrowder: we just adopted the .net version for integration testing at $dayjob, so I have some interest. | ||
14:41
ProperNoun joined
|
|||
[Coke] | If I work on it, will have to call it "rakucumber", of course. | 14:42 | |
lizmat: we should add something to the CREDITS file to indicate when we know someone is late. :| | 14:43 | ||
Anton Antonov | I have never heard of Cucumber Open before. I was proposing similar solution to a company based on my Raku DSLs. Using a Cucumber Open Raku package might be really useful. | 14:44 | |
Call it "Cucumis Rakunis" | 14:45 | ||
[Coke] | I don't have time to lead such a thing, but would be happy to work on it. | ||
Anton Antonov | Should we first (re-)evaluate "CucumisSextus" ? | 14:47 | |
[Coke] | I would recommend someone eval it to avoid useless rework. | 14:52 | |
*potentially useless* | 14:53 | ||
good call | |||
lizmat | the code basically dates from 2017 with some minor (meta) tweaks in 2018 and 2020 | 14:54 | |
judging from the commits, there's basically about 1 person-month of work in it | 14:55 | ||
Anton Antonov | So, it is potentially, "Cucumis Putridum". | 14:56 | |
15:14
QhpAptyj9hj0RQwM left
15:39
Sgeo joined
|
|||
patrickb | 1 Person month is a lot of time. | 15:51 | |
lizmat | yeah, so I think it's worth while to evaluate... by someone with some Cucumber experience | 15:52 | |
16:09
QhpAptyj9hj0RQwM joined
16:19
QhpAptyj9hj0RQwM left
16:20
QhpAptyj9hj0RQwM joined
16:21
jpn left
16:27
jpn joined
|
|||
Anton Antonov | Any Cucumber introductions anyone would recommend? | 16:42 | |
16:48
QhpAptyj9hj0RQwM left
16:51
QhpAptyj9hj0RQwM joined,
patterner_____ left
16:52
patterner_____ joined,
mtj_ left,
greaser|q left
16:53
greaser|q joined
16:54
mtj joined
|
|||
tonyo | m: '/tmp/alink'.IO.link('reowiaeruyioaweurioaewurioewuroiaw') or die; dd '/tmp/alink'.IO.resolve.absolute; | 16:54 | |
camelia | Died in block <unit> at <tmp> line 1 |
||
tonyo | m: '/tmp/alink'.IO.link('reowiaeruyioaweurioaewurioewuroiaw'); dd '/tmp/alink'.IO.resolve.absolute; | ||
camelia | Failed to create link called '/home/camelia/reowiaeruyioaweurioaewurioewuroiaw' on target '/tmp/alink': Failed to link file: no such file or directory in block <unit> at <tmp> line 1 |
||
tonyo | m: '/tmp/wontexist'.IO.spurt: ''; '/tmp/alink'.IO.link('/tmp/wontexist'); '/tmp/wontexist'.IO.unlink; dd '/tmp/alink'.IO.resolve.absolute; | ||
camelia | Failed to create link called '/tmp/wontexist' on target '/tmp/alink': Failed to link file: no such file or directory in block <unit> at <tmp> line 1 |
||
tonyo | hmm | 16:55 | |
dangling symlinks seem to not `.resolve` to the dangling path and instead just to the file name | 16:58 | ||
m: qx`ln -s /tmp/b /tmp/a`; dd '/tmp/a'.IO.l; dd '/tmp/a'.IO.resolve; | 16:59 | ||
camelia | Bool::True IO::Path.new("/tmp/a", :SPEC(IO::Spec::Unix), :CWD("/")) |
||
tonyo | m: qx`ln -s /tmp/b /tmp/a`; dd '/tmp/a'.IO.l; dd '/tmp/a'.IO.resolve.absolute; | ||
camelia | ln: failed to create symbolic link '/tmp/a': File exists Bool::True "/tmp/a" |
||
17:01
jpn left
17:04
razetime left
17:10
QhpAptyj9hj0RQwM left
17:19
Spouffey joined
17:20
Spouffey left
17:21
Sgeo_ joined
17:25
Sgeo left
|
|||
[Coke] | What sort of unicode properties would folks want 'uni -v <char>' to report out on? there are some basics like script/block/added version, but they rapidly become less interesting in the general case. | 17:38 | |
17:39
dakkar left
17:43
QhpAptyj9hj0RQwM joined
|
|||
coleman | width? byte count? | 17:47 | |
[Coke] | byte code in which representation? Each of them? | 17:49 | |
coleman | I'm at the limit of my unicode knowledge. I just know they can be bigger than a byte. :D | 17:54 | |
[Coke] | the sample on rosetta code was showing the actual bytes for utf8, 16le, 16be | 17:58 | |
18:00
reportable6 left
18:02
reportable6 joined
18:14
greaser|q left,
greaser|q joined,
greaser|q is now known as GreaseMonkey
19:12
nort joined
20:12
benchable6 left,
tellable6 left,
quotable6 left,
squashable6 left,
releasable6 left,
statisfiable6 left,
notable6 left,
committable6 left,
coverable6 left,
sourceable6 left,
nativecallable6 left,
greppable6 left,
evalable6 left,
unicodable6 left,
bisectable6 left,
reportable6 left,
shareable6 left,
linkable6 left,
bloatable6 left,
squashable6 joined
20:13
quotable6 joined,
nativecallable6 joined,
evalable6 joined,
bisectable6 joined,
notable6 joined,
benchable6 joined,
greppable6 joined,
bloatable6 joined
20:14
releasable6 joined,
linkable6 joined,
unicodable6 joined,
tellable6 joined,
statisfiable6 joined,
shareable6 joined,
sourceable6 joined
20:15
reportable6 joined,
committable6 joined,
coverable6 joined
20:46
ab5tract joined
21:10
QhpAptyj9hj0RQwM left
21:16
codesections left
21:39
QhpAptyj9hj0RQwM joined
|
|||
leont | I was surprised a module like DateTime::Grammar didn't exist before, but am happy it does because it makes for a great example/combination with Getopt::Long | 21:58 | |
Nemokosch | š§ | 22:00 | |
jdv | [Coke]: you saw that bit about a bad test in App::Uni failing on head? | 22:01 | |
blin style | |||
22:08
jgaz left
|
|||
Nemokosch | www.youtube.com/watch?v=cztkJRVnKS0 One for Valentine's day š¤£ | 22:14 | |
22:21
linkable6 left
22:22
linkable6 joined
22:43
jpn joined
22:47
QhpAptyj9hj0RQwM left
23:13
sena_kun left
|
|||
Anton Antonov | @leont Same here, should have existed beforeā¦ I am using āDateTime:Grammarā all the time now. Well, since it was published. | 23:29 | |
23:53
jpn left
23:56
ab5tract left
|