š¦ 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. |
|||
moon-child | wrong | 00:00 | |
00:03
mojca left,
jmchael left,
__jrjsmrtn__ left,
imcsk8 left,
kvw_5 left,
bdju left,
simcop2387 left,
vrurg left,
maggotbrain left,
hvxgr left,
timlegge left,
sortiz left,
parabolize left,
thdrmz left,
Maylay left,
webstrand left,
pounce left,
Kaiepi left,
jmcgnh left,
eseyman left,
jast left,
cxreg left,
BuildTheRobots left,
jcallen_ left,
kini left
00:04
pierrot left,
Altreus left,
dylanwh left,
mrsolo left,
esh left,
kiti_nomad[m] left,
ThaEwat left,
tadzik left,
UukGoblin left,
pounce joined
00:05
BuildTheRobots joined,
jcallen_ joined,
kini joined,
peteretep joined,
kentnl joined,
pierrot joined,
broquaint joined,
benaiah joined,
mtj_ joined,
Altreus joined,
dylanwh joined,
mrsolo joined,
esh joined
00:06
kiti_nomad[m] joined,
no-n joined,
isacl___ joined,
tadzik joined,
UukGoblin joined,
mojca joined,
sortiz joined,
parabolize joined,
thdrmz joined,
jmchael joined,
__jrjsmrtn__ joined,
imcsk8 joined,
kvw_5 joined,
Maylay joined,
webstrand joined,
Kaiepi joined,
bdju joined,
simcop2387 joined,
vrurg joined,
jmcgnh joined,
maggotbrain joined,
eseyman joined,
hvxgr joined,
jast joined,
timlegge joined,
cxreg joined,
fvox joined,
lnx joined
00:07
kiti_nomad[m] left,
CIAvash left,
unclechu left,
matiaslina left,
AlexDaniel` left,
BuildTheRobots left,
bigdata left,
MitarashiDango[m left,
MitarashiDango[4 left
00:08
JJAtria[m] left,
isacl___ left
00:09
no-n left,
Kaeipi joined,
isacl___ joined,
jargan joined
00:10
jast left,
Kaiepi left,
no-n joined,
jargan is now known as jast,
bigdata joined,
PotatoGim joined
00:11
PotatoGim left,
PotatoGim joined
00:12
marcusr joined,
BuildTheRobots joined
00:14
lnx left
00:19
Kaeipi left,
Kaeipi joined
00:26
pecastro left
00:27
abraxxa joined
|
|||
gfldex | moon-child: this might be helpful: raw.githubusercontent.com/gfldex/b...u-test-all | 00:28 | |
00:36
bigdata left
00:39
matiaslina joined
00:40
unclechu joined,
CIAvash joined,
AlexDaniel` joined
00:44
JJAtria[m] joined
00:51
matiaslina left,
unclechu left,
CIAvash left,
AlexDaniel` left
00:52
JJAtria[m] left
00:55
jmchael left
00:59
CIAvash joined
01:06
AlexDaniel` joined,
MitarashiDango[m joined,
unclechu joined,
ThaEwat joined,
JJAtria[m] joined,
matiaslina joined,
kiti_nomad[m] joined,
MitarashiDango[4 joined
01:10
lnx joined
01:23
xinming joined
01:25
berber44 joined
01:30
guifa left
01:39
berber44 left
|
|||
AlexDaniel` | > A bit trickier. What if to match a range against another range? | 01:47 | |
the course is weird :) | |||
I don't know why it suggests to try something that in real life you're really unlikely to use | |||
but even when not taking strings into account: | 01:48 | ||
m: say 1..^3 ~~ 1..2 | |||
camelia | False | ||
AlexDaniel` | okay so maybe you'd consider this right | ||
m: say 100..-100 ~~ 1..2 | 01:49 | ||
camelia | True | ||
AlexDaniel` | but this? | ||
and then it goes to show a bare `unless` block | 01:52 | ||
āprogramming in alternate realityā it should've been called | |||
using while, using until, using repeat | 01:54 | ||
sure, the most common types of loops | |||
01:55
JRaspass left
02:05
frost13 joined,
frost13 is now known as frost-lab
02:06
frost-lab is now known as hungrydonkey
|
|||
hungrydonkey | m: say 1..2 ~~ 100..-100 | 02:07 | |
camelia | False | ||
hungrydonkey | m: say 100..98 ~~ 1..2 | 02:10 | |
camelia | False | ||
hungrydonkey | m: say 100..1 ~~ 1..2 | 02:11 | |
camelia | True | ||
sortiz | hungrydonkey: "Ranges always go from small to larger elements; if the start point is bigger than the end point, the range is considered empty." | ||
hungrydonkey | but how to explain `100..1 ~~ 1..2` is True and `100..98 ~~ 1..2` is False? | 02:12 | |
put 100..1, 100..98 | 02:13 | ||
evalable6 | |||
hungrydonkey | so wired | 02:14 | |
sortiz | Indeed, the second case surprises me | ||
02:15
mowcat left
|
|||
hungrydonkey | sorry, s/wired/weird/ :) | 02:16 | |
sortiz Um, maybe generate Empty for unordered Ranges at creation time can simplify the code. | 02:23 | ||
02:23
lucasb left
02:30
melezhik joined
|
|||
melezhik | . | 02:30 | |
02:37
kvw_5_ joined
02:41
kvw_5 left
02:55
RaycatWhoDat joined
|
|||
RaycatWhoDat | Hey, all. Was wondering about the Raku ecosystem. | 02:58 | |
tony-o | lizmat: i stand corrected, apparently i did this article: deathbyperl6.com/zef-ecosystem/ | ||
RaycatWhoDat | Which packages are considered the ironclad, battle-tested packages? | 02:59 | |
Also, apologies if I've asked this before. | |||
tony-o | a year ago : ) | ||
what type of package RaycatWhoDat | 03:22 | ||
03:26
melezhik left
03:39
notagoodidea left
04:05
Garbanzo left
04:06
Garbanzo joined
04:18
guifa joined
|
|||
guifa | Wow, someone had a very bad day | 04:19 | |
Did yāall see this hot mess? www.reddit.com/r/rakulang/comments...ggin_slow/ | |||
tony-o | he's not terribly off base regarding speed. C is also slow when compared to assembly, op is not not very precise. python3 is awfully slow and, compared to raku, is featureless - so that kind of post generally depends on the background of the person imo | 04:39 | |
samebchase- | well personally speaking, I use Raku because it saves me hours of developer time, as opposed to seconds of computer time | 04:40 | |
guifa | I just want to know why heād want a Map with Int keys | 04:41 | |
isnāt that called ā¦Ā gasp, an Array? | |||
samebchase- | guifa: hah | ||
tony-o | only if it's not too sparse an array | 04:43 | |
if performance was a major concern i wouldn't venture too much above C so it seems like kind of a moot complaint | 04:45 | ||
moon-child | assembly is not generally much faster than c. (THough in some pathological cases it will be much faster) | ||
python pretty fast with pypy or graalpython | |||
tony-o | python3 is terribly slow | ||
guifa | I think what he fails to get is that if you think a default class runs slow or does something you donāt like, you can always write a new one | 04:46 | |
04:49
rindolf joined
05:05
xelxebar left
05:09
xelxebar joined
05:41
brtastic joined
05:47
hungrydonkey left
05:54
frost60 joined
05:55
aindilis left
05:56
frost60 left,
aindilis joined
05:59
nevore joined
06:02
nevore left
06:06
jmerelo joined
06:26
Garbanzo left
06:27
wamba joined
06:48
ensamvarg3 joined
|
|||
notandinus | so zef fails with `No candidate found for 'zef'.` | 06:50 | |
what might be causing this? | |||
06:59
aluaces joined
|
|||
notandinus | also, do i just run ./bin/rstar fectch && install again to upgrade my rakudo star distribution? | 07:15 | |
07:17
jmerelo left
07:29
sjm_uk joined
07:32
Sgeo left
07:39
patrickb joined
07:45
parabolize left
07:54
stoned75 joined
07:55
abraxxa left
07:56
abraxxa joined
08:08
ufobat joined
08:09
Manifest0 left,
Manifest0 joined
08:32
aluaces left
08:40
Manifest0 left
08:41
Manifest0 joined
08:47
sena_kun joined
09:19
domidumont joined
09:24
JRaspass joined,
pecastro joined
09:36
patrickb left
09:38
patrickb joined
10:38
evalable6 left,
moony left,
evalable6 joined
10:39
moony joined
10:45
sno left
10:57
wamba left
11:00
tejr left,
asymptotically left,
xelxebar left
11:03
xelxebar joined,
asymptotically joined
11:05
tejr joined
11:09
notagoodidea joined
11:21
ufobat_ joined
11:22
ufobat left,
sortiz left
11:25
patrickb left,
patrickb joined
11:30
Altai-man joined,
Black_Ribbon left
11:32
sena_kun left
11:37
jmchael joined
11:42
kini left,
kini joined
11:43
aindilis` joined
11:44
aindilis left
12:01
wamba joined
12:06
sno joined
12:15
natrys joined
12:32
notagoodidea left
12:37
abraxxa left
12:47
patrickb left
12:49
patrickb joined
12:52
cog joined
12:54
cog_ left
13:21
wamba left
13:51
notagoodidea joined
|
|||
xinming | SmokeMachine: I'm not sure wether it's caused by optimizer, but now, I'm busy dev'ing something, and I found a lot of headache when doing complex grep condition, so I wish to disable it and make job done first. | 14:00 | |
SmokeMachine | xinming: Iāll make it possible to do `use Red <no-optimization>` when possible | 14:03 | |
notandinus | ttm.sh/d1B -- it runs in 5.661s (real) on tio.run but takes 42s on mine, i'll test it on another openbsd machine soon to see if thats the issue. for some reason raku runs really slow on my machine | ||
is `raku -e ""` taking 0.9s (real) normal? | 14:04 | ||
moritz | no | 14:05 | |
more like 0.35s for me, with cold caches | 14:06 | ||
(but SSD) | |||
and 0.14, 0.15s with warm caches | |||
notandinus | i see, slurp loads the whole file to memory at once right? | 14:08 | |
i'll test how much time loading that file takes | |||
slurp for that file takes 2.7s(real) | 14:10 | ||
oh wait, i'll also profile it | |||
moritz | right, slurp reads everything at once into memory | 14:11 | |
notandinus | how do i interpret this call graph? ttm.sh/dX2.png | 14:15 | |
that yellow call on bottom mid is "word-search" its what searches the grid for specific words | 14:16 | ||
ttm.sh/dXu.png -- red (interpreted) frames are just ~7%, and 165 GC calls were made | 14:18 | ||
also, is there a good resource on reading profiler report ? | 14:19 | ||
raku-bridge | <ionsolo> Hey!! I have recently switched from 'mx linux' to 'popOS' and I noticed that parallel functions in raku doesn't work anymore (in mx Linux arithmetic operation over a list run on several cores now not) I'm not a systems person but I tried what I'm capable of: 1.- Repo versions are 2020.6 (doesn't work .race . hyper and promises in parallel) 2.- Same with the most recently rakudo version precompiled Anyone knows how to check if the system | 14:21 | |
is blocking rakudo from this features? | |||
moritz | the call graph is called an "icicle" graph/plot, like a buttom-up flamegraph | ||
14:28
lucasb joined
|
|||
notandinus | i see | 14:29 | |
perry | Wait, that's what upside-down flamegraphs are called? | ||
That's awesome | 14:30 | ||
notandinus | and i have 1244950 scalar allocations, all are green so it's not causing slowdown right? | ||
on the other hand the boothash thing is all red: 933093 | |||
timotimo | the color indicates if the allocation happened in a piece of code that has been optimized or not | 14:37 | |
notandinus | ah yes, that was dumb question, more allocations will mean more work | 14:38 | |
timotimo | there's nuance to that | 14:39 | |
notandinus | perry: upside-down flamegraph is just flamegraph, bottom up flamegraph is icicle | ||
perry | Ah right | ||
timotimo | objects that are very quickly discarded are relatively cheap, hashes that never get anything assigned to them will also not allocate a block for its actual data | ||
notandinus | perry: wait | 14:40 | |
it's the opposite it seems: Icicle charts are flame graphs upside down. | |||
bottom up = upside down maybe | |||
perry | ĀÆ\_(ć)_/ĀÆ | ||
notandinus | www.brendangregg.com/flamegraphs.html -- says this here: under Variations heading | 14:41 | |
timotimo: i see | |||
14:42
mhinz joined
|
|||
notandinus | Deoptimizations causes slow down right? | 14:42 | |
profile says it was deoptimized 179797 times in line 94 | |||
timotimo | the impact can be very different depending on the situation | 14:43 | |
notandinus | github.com/andinus/octans/blob/mas...ctans.raku == this is the code | ||
14:43
ensamvarg3 left
|
|||
timotimo | frames of code can be deoptimized at any point in their execution, so an early deopt will have you run most of the code in an unoptimized state, whereas a deopt near the end will not have such a big impact necessarily | 14:43 | |
14:44
squashable6 left
|
|||
notandinus | i see, and what does "Exclusive & Inclusive" time in Routines section mean? | 14:45 | |
14:46
mhinz left,
mhinz joined
|
|||
timotimo | whether subs called by the given sub are counted or not | 14:46 | |
14:47
squashable6 joined
|
|||
notandinus | say the thing is sub foo() { notfoo() } sub notfoo() {} | 14:47 | |
timotimo | plus/minus something for self-recursion, whether directly or indirectly | ||
notandinus | then sub foos | ||
foo's inclisive time will include time for notfoo() and exclusive time will exclude that right? | 14:48 | ||
timotimo | correct | ||
14:49
MasterDuke left
|
|||
SmokeMachine | is there a way of having `&[&&] | 14:52 | |
is there a way of having `&[&&]` get the string "&&"? | |||
m: say &[&&].name # something like this, but without the infix: part? | |||
camelia | infix:<&&> | ||
xinming | SmokeMachine: I don't think so, maybe Red should add some customized infix. | 14:55 | |
notandinus | timotimo: thanks | 14:56 | |
SmokeMachine | xinming: sorry, that wasn't for Red... but why do you think that? | ||
14:59
parabolize joined,
Sgeo joined
|
|||
xinming | SmokeMachine: alright, I thought you were trying to do some funny thing for Red with && :-) | 15:00 | |
ignore me. | |||
SmokeMachine | xinming: I've tried at the beginning... and then I've gone to try to understand what was happening inside blocks... | 15:03 | |
notandinus | i have a list of sorted words and want to find the words that start with say "t", what's the best way to do this? | 15:10 | |
[Coke] | .grep(*.starts-with('t')) ? | 15:11 | |
timotimo | if it's extremely large, binary search to find the start, otherwise just grep :) | ||
SmokeMachine | m: say <bla pla tla ble bli blo plo blu>.grep: *.starts-with: "t" | ||
camelia | (tla) | ||
notandinus | i see, it's around 235,971 words | ||
oh wait | |||
i could directly run .starts-with on an array? | |||
i was looping over this file and then running .starts-with on each word | 15:12 | ||
timotimo | yes but that would not do what you want here | ||
[Coke] | grep will run it against each element. | ||
notandinus | i see | ||
[Coke] | grep has an implicit loop | ||
SmokeMachine | m: lines.grep: *.starts-with: "t" | ||
camelia | ( no output ) | ||
[Coke] | m: lines[0].say | 15:13 | |
camelia | Ā»Wann treffen wir drei wieder zusamm?Ā« | ||
SmokeMachine | m: words.grep: *.starts-with: "t" | ||
camelia | ( no output ) | ||
notandinus | so what do i do? how would i use binary search? isn't it to search a single element? | ||
[Coke] | you need to output it | ||
SmokeMachine | m: say words.grep: *.starts-with: "t" | ||
camelia | (treffen tritt trotz tut treffen) | ||
SmokeMachine | (what language was that?) | 15:14 | |
notandinus | m: .say for lines | ||
camelia | Ā»Wann treffen wir drei wieder zusamm?Ā« Ā»Um die siebente Stundā, am BrĆ¼ckendamm.Ā« Ā»Am Mittelpfeiler.Ā« Ā»Ich lƶsche die Flamm.Ā« Ā»Ich mitĀ« Ā»Ich komme vom Norden her.Ā« Ā»Und ich vom SĆ¼den.ā¦ |
||
[Coke] | notandinus: yes, you'd have to use multiple searches to find the start point and end point. | ||
I'd do a timing with .grep; if it's fast enough, no worries, if not, then you can dig deeper into how to find the endpoints. | 15:15 | ||
SmokeMachine | notandinus: are those words sorted? | ||
[Coke] | SmokeMachine: nope | 15:16 | |
It's German prose. | |||
15:16
wamba joined
|
|||
notandinus | SmokeMachine: yeah, words are from the dictionary file, sorted | 15:16 | |
i think they asked about the file i'm going to use | |||
[Coke]: i'll test with .grep, thanks | 15:17 | ||
[Coke] | ... whoops, thought you mean ^^ those words! :) | ||
SmokeMachine | notandinus: if you are going to use that multiple times, that could become a Set... | ||
m: my $words = words.Set; say $words<Fernando>; say $words<Flamm> | 15:18 | ||
camelia | False False |
||
notandinus | Hmm, .grep is very fast, i just ran time raku -e '"/usr/share/dict/words".IO.lines.grep(*.starts-with("t")) | ||
SmokeMachine | oh, sorry... starts with... | ||
notandinus | SmokeMachine: i see, i dunno about set, i'll check it out | 15:19 | |
maybe my code is slow because i'm using .lines, i'll try .slurp and grepping it at once | |||
SmokeMachine | notandinus: sorry... for some reason I thought you were going to test if the word existed... and not if that started with t... | ||
but you could use a trie... | 15:20 | ||
notandinus | i see, i encountered trie yesterday, i'll check it out, thanks | ||
i'm only going to use the list once though | |||
SmokeMachine | (not suggesting this one... just an example) github.com/FCO/Trie | ||
[Coke] | if you slurp, you have a single string; you'll have to break it up on whitespace anyway to get the list. | 15:21 | |
codesections | tries are the data structure everyone *wants* to find a use for (they're fun!), but that rarely is the right choice | ||
[Coke] | m: .slurp.^name.say; .lines.^name.say; | 15:22 | |
camelia | No such method 'slurp' for invocant of type 'Any'. Did you mean 'Slip'? in block <unit> at <tmp> line 1 |
||
[Coke] | m: slurp.^name.say; lines.^name.say; | ||
SmokeMachine | [Coke]: why not using `words` for that? | ||
camelia | Str Seq |
||
guifa | codesections: ha! Iām actually writing one right one for Intl::Emoji | ||
SmokeMachine | yes, or lines... | ||
codesections | :) | ||
[Coke] | words or lines as appropriate for your data set. if each line is a word, I'd expect lines to be marginally faster. | ||
guifa | (for an emoji like š¦, the idea is to have it selectable by typing in āiceā or ācreā or ācreamā, etc. Like how you get in an IME on your phone. Debating whether I should allow for substrings too, Google doesnāt seem to think it helps based on Androidās IME though so not sure I want to go that far) | 15:24 | |
notandinus | ok so it takes 10s (real) to do that | 15:26 | |
is there a way to use an array with .start-with() | 15:27 | ||
something like: .grep: *.start-with(@starting-points) | |||
[Coke] | you mean, enforce that elements in the array must start with? | ||
codesections | guifa: ok, that is admittedly the perfect use-case for a trie. Especially because the total number of emoji isn't *huge* (by computer standards, anyway) | ||
[Coke] | oh. | ||
notandinus: I think : *.starts-with(any(@foo)) will work | |||
notandinus | yeah i actually have a list of characters that the words can start with | ||
m: .say for lines | 15:28 | ||
camelia | Ā»Wann treffen wir drei wieder zusamm?Ā« Ā»Um die siebente Stundā, am BrĆ¼ckendamm.Ā« Ā»Am Mittelpfeiler.Ā« Ā»Ich lƶsche die Flamm.Ā« Ā»Ich mitĀ« Ā»Ich komme vom Norden her.Ā« Ā»Und ich vom SĆ¼den.ā¦ |
||
guifa | Also back when I was doing spell check engine writing | ||
notandinus | m: .grep: *.starts-with(any(<a t>)) | ||
camelia | No such method 'starts-with' for invocant of type 'Any' in block <unit> at <tmp> line 1 |
||
[Coke] | you can also use regexes: : grep(/^^ @choices) | ||
(er, but close the regex) | |||
m: say lines..grep: *.starts-with(any(<a t>)) | 15:29 | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Calling grep() will never work with signature of the proto (Mu, |) at <tmp>:1 ------> 3say lines..7ā5grep: *.starts-with(any(<a t>)) |
||
[Coke] | m: say lines.grep: *.starts-with(any(<a t>)) | ||
camelia | () | ||
[Coke] | m: say lines.grep: *.starts-with(any(<a t W>)) | ||
camelia | (Wir kriegen es unter, das Element. Wie manche liebe Christfestnacht) | ||
guifa | Iād use a trie to get the root word, and a flipped-word trie to get at the suffixes and (simplifying it) progressed until they met in the middle | ||
notandinus | m: say words.grep: *.starts-with(any(<a t w>)) | ||
camelia | (treffen wir wieder am tritt aus, warten, trotz anderen weg will was am alles an wie will war was tut wir wieās auch an all all alten aus, wĆ¼tender wurde als wieder treffen wir wieder am am) | ||
notandinus | ah yeah it works | ||
15:31
sena_kun joined
|
|||
[Coke] | so, starts-with with a literal is going to be fastests. junctions *should* compile to a conditional, but more complicated junctions will probably get slower; regexes may start slower than a simple junction, but a more complicated regex may perform better than a complication junction | 15:32 | |
*fastest | |||
15:32
Altai-man left
15:33
patrickb left
|
|||
codesections | guifa: interesting. I'd be curious to see how the performance of the trie for the root word compares to a hash. My understanding was that they typically don't come out ahead with current hardware for large dictionary sizes, but I haven't implemented it myself | 15:33 | |
notandinus | [Coke]: say i only have 2 characters to check for with start-with, that would be faster than regex right? | 15:34 | |
codesections | (obviously the trie will be better if your main constrain is space rather than time) | 15:35 | |
s/constrain/constraint/ | |||
SmokeMachine | for doing several queries, I'd use a trie... | 15:36 | |
codesections | notandinus: right now, yeah - regexes are currently slower than they should/will be | ||
[Coke] | notandinus: aye. You could also do *.grep({$_.starts-with('a') or $_.starts-with('b')}) more explicitly. | 15:38 | |
the * gives you a whatevercode block, but you can explicitly write the block if you want. | |||
(or make a sub call, or...) | |||
15:38
patrickb joined
15:41
patrickb left
|
|||
notandinus | it's interesting to see it stop at a specific word for some time and then go fast again | 15:41 | |
it always stops at that specific word | |||
guifa | codesections: at least for my implementation, it was a lot easier to use a trie because it was super easy to load in a binary blob and do operations on that. | 15:43 | |
Doing that for a hashmap would mean writing my own hash algorithm for consistent results andā¦Ā yeah I wasnāt in the mood for that lol | |||
codesections | guifa: ah, yeah, that makes sense. My first instinct would have been to serialize the hash to JSON or something, but that's just because I tend to reach for text-based tools by habit. Sounds like your implementation was better (unsurprisingly, since you presumably gave it some thought :D) | 15:47 | |
guifa | Yeah, fast loading was imperative on Android | 15:49 | |
I guess I could have spun stuff off into other threads and all but doing that in Java is ā¦Ā not fun lol | |||
codesections | having not really written any, my casual impression is that doing *anything* in Java is not fun :D | 15:51 | |
I take it that this was pre-Kotlin? | |||
guifa | Yeah, this was probably about 5 years ago now | 15:53 | |
guifa hates boiler plate | |||
Java is boilerplate with a sprinkling of code | 15:54 | ||
notandinus | oof, can it be that the program exits the for loop but then again enters it magically? | ||
there is something weird going on, i'll paste the code | |||
ok so this is the thing: paste.debian.net/hidden/ddfc8897/ | 16:00 | ||
after the `say "lol false"` at line 76 it should return False and exit the sub word-search right? | 16:01 | ||
but the thing is not exiting the sub and somehow reentering the for loop before it | |||
look at the output, it should print "attrited False" after "lol false" right? | 16:02 | ||
16:03
aindilis` left
16:04
aindilis joined
|
|||
notandinus | oh wait, nvm it's clear now, i made a logical error | 16:15 | |
16:22
_jrjsmrtn joined
16:24
__jrjsmrtn__ left
16:32
notagoodidea left
16:39
notagoodidea joined
16:52
ctilmes joined
|
|||
ctilmes | As of newly released alpine 3.13, rakudo now part of alpine community channel. | 16:54 | |
tellable6 | 2020-11-29T15:40:15Z #raku <patrickb> ctilmes: OK. I guess nasa is out then. | ||
2020-11-29T15:40:30Z #raku <patrickb> ctilmes: Thanks for the info though! | |||
ctilmes | You can run this, e.g. docker run --rm -it --entrypoint=/bin/sh alpine -c "apk add -U rakudo && raku -v" | ||
zef is in there too, so you can "apk add zef" to get that. | 16:56 | ||
17:01
notagoodidea left
17:10
mowcat joined
|
|||
jdv79 | did that take work from us or did they just pick it up? | 17:28 | |
17:31
brtastic left
17:32
domidumont left
|
|||
ctilmes | I did the work | 17:42 | |
I guess whether I was working for "them" or "us" is open.. | |||
I think it benefits both them and us | 17:43 | ||
18:02
natrys left
18:03
patrickb joined
18:04
natrys joined
18:08
JRaspass left
|
|||
guifa | .tell jmerelo are you just doing voiceover for your FOSDEM presentation or are you recording video of yourself talking as youāre giving it | 18:11 | |
tellable6 | guifa, I'll pass your message to jmerelo | ||
guifa | lizmat: ^^ same Q | ||
18:23
stoned75 left
18:25
stoned75 joined
|
|||
patrickb | There currently is no way to access the real ARGV[0] from within a raku executable, correct? | 18:27 | |
*raku script | |||
18:28
cpage joined
|
|||
notandinus | patrickb: ARGV[0] is the first argument right? or is it the binary name? | 18:32 | |
patrickb | binary name | ||
notandinus | docs.raku.org/language/5to6-perlvar | ||
patrickb | I'm asking about the C main() argv[0] | 18:33 | |
notandinus | patrickb: does $*PROGRAM-NAME do what you want? | ||
patrickb | Sadly not, that's set to the script being executed, not the actual argv0 | 18:34 | |
notandinus | also, $*EXECUTABLE-NAME | ||
^ does executable name work? | |||
patrickb | hm.... might actually work... | ||
notandinus | i see, go through that page, there might be something more that i didn't spot | 18:36 | |
patrickb | EXECUTABLE-NAME also doesn't do it. | 18:37 | |
looked through that page already :-( | |||
I'd be fine with a way to do it in sh as well, but sh suffers the same problem. It has a `$0`, but that's set to the script name. | 18:38 | ||
notandinus | patrickb: does docs.raku.org/language/variables#i...-$*PROGRAM work? | 18:39 | |
$*PROGRAM | |||
patrickb | no, that's the script name | ||
notandinus | Contains the location (in the form of an IO::Path object) of the Raku program being executed.) | 18:40 | |
^ $*PROGRAM | |||
patrickb: script name was $*PROGRAM-NAME | |||
also see $*EXECUTABLE | |||
docs.raku.org/language/variables#$*EXECUTABLE | 18:41 | ||
18:41
vike left
|
|||
patrickb | PROGRAM and PROGRAM-NAME are both the scripts name, either as a Str or an IO::Path. EXECUTABLE is technically the raku executable that's running, but it's the full path of the executable running. I need the real argv0 as it was passed to the executable. | 18:42 | |
By now I'm pretty sure there is no way to get at that value. | 18:43 | ||
notandinus | i see, i might have misunderstood the problem | ||
[Coke] | m: say use nqp; say nqp::execname() | 18:45 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Could not find nqp::execname, did you forget 'use nqp;' ? at <tmp>:1 ------> 3say use nqp; say nqp::execname()7ā5<EOL> |
||
[Coke] | m: use nqp; say nqp::execname() | ||
camelia | /home/camelia/rakudo-m-inst-1/bin/perl6-m | ||
[Coke] | based on the docs for nqp::execname, I think that might be the right thing | 18:46 | |
(and execname is used as part of $*EXECUTABLE) | |||
18:48
brtastic joined
18:59
dataangel left
|
|||
[Coke] | github.com/Raku/doc/issues/3782 is some easy doc maintenance if anyone wants it | 19:02 | |
19:05
Garbanzo joined,
vike joined
19:08
dataangel joined
|
|||
[Coke] | .seen codesections | 19:09 | |
tellable6 | [Coke], I saw codesections 2021-01-15T15:51:48Z in #raku: <codesections> I take it that this was pre-Kotlin? | ||
[Coke] doesn't know what Kotlin is. | |||
codesections: any thoughts on hitting Raku's runtime for method information rather than the source? | 19:10 | ||
19:12
JRaspass joined
|
|||
guifa | [Coke]: Kotlin is basically TypeScript but for Java | 19:13 | |
19:17
JRaspass left
|
|||
patrickb | If I start a process and hand it a fake arg0 (raku can't yet do that, but I have the impl ready), what should Proc.command() return? the real program that was called, or the fake one? | 19:18 | |
moritz | the real one, IMHO | 19:21 | |
tony-o | agree with moritz | 19:22 | |
patrickb | I tend to agree as well. | ||
19:27
ufobat_ left
19:30
Altai-man joined
19:32
sena_kun left
19:46
sortiz joined
|
|||
Geth | doc: patrickbkr++ created pull request #3784: Document new Proc(::Async) arg `arg0` |
19:47 | |
sortiz | m: for "/proc/$*PID/cmdline".IO.slurp.split("\0") { .say } | ||
camelia | /home/camelia/rakudo-m-inst/bin/perl6-m --setting=RESTRICTED <tmp> |
||
patrickb | moritz, tony-o, <[Coke]>: PRs for implementation, test and roast are up. Geth kindly provided links. Review welcome :-) | 19:48 | |
19:50
clarjon1 joined
|
|||
patrickb | I'm off for today. o/ | 20:00 | |
20:00
patrickb left
20:04
JRaspass joined
20:05
MasterDuke joined
20:09
b2gills left
20:13
stoned75 left
20:21
MasterDuke left
20:24
stoned75 joined
20:32
b2gills joined
20:36
lancew left,
lancew joined
20:42
stoned75 left
20:47
stoned75 joined
20:51
wamba left
20:57
natrys left,
Altai-man left
20:58
wamba joined
21:09
MasterDuke joined
|
|||
[Coke] | patrickb++ | 21:10 | |
21:21
lancew left,
lancew joined
|
|||
cog | m: say %<a>.raku # %<a> was a typo. I don't know what it means | 21:24 | |
camelia | {} | ||
cog | m: say %(<a>).raku | ||
camelia | Odd number of elements found where hash initializer expected: Only saw: "a" in block <unit> at <tmp> line 1 |
||
tobs | cog: it has something to do with matching. $<a> is short of $/<a> or $/.<a>, accessing the last match variable $/. I don't know how to read %<a> properly, but it seems to have something to do with it: | 21:29 | |
m: say %<a>.raku; "X" ~~ /$<a>=./; say %<a>.raku | |||
camelia | {} Map.new |
||
21:41
JRaspass left
21:44
JRaspass joined
|
|||
cog | tobs: Indeed, now I come to think of it, I sometimes use @<a> to state the sub match is an array. | 21:45 | |
21:47
Manifest0 left
21:48
Manifest0 joined
|
|||
cog | On a related thought, I think it is a feature on a defined $/ for $/<a> not to bark when there is no 'a' sub match. It is a misfeature not to bark when $/ is Nil | 21:49 | |
m: Nil<a> | |||
camelia | ( no output ) | ||
cog | m: say Nil<a> | ||
camelia | Nil | ||
cog | m: say Nil[0] | 21:50 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Any cannot be parameterized at <tmp>:1 ------> 3say Nil[0]7ā5<EOL> |
||
22:11
brtastic left
22:20
sno left
|
|||
lucasb | Hello, cog. It's my understanding that Nil has this 'propagating' effect. From the docs: "Any method call on Nil of a method that does not exist, and consequently, any subscripting operation, will succeed and return Nil." docs.raku.org/type/Nil | 22:22 | |
m: dd Nil.foo, Nil.[0] | 22:23 | ||
camelia | Nil Nil |
||
lucasb | so, IOW, it's by design, whether (we) like it or not | ||
cog | I did not notice the error message on Nil[0] which means it is not an array access but a parametrisation attempt | 22:27 | |
m: say Match<a> | 22:28 | ||
camelia | (Any) | ||
cog | m: say Int<a> | 22:29 | |
camelia | (Any) | ||
22:30
wamba left
22:33
stoned75 left
22:40
MitarashiDango[4 left
22:46
jess left
22:54
MitarashiDango[4 joined
22:57
zostay joined
22:58
skaji_ joined
22:59
Grinnz joined
23:00
JJAtria[m] left,
MitarashiDango[m left
23:01
isacl___ left
23:03
isacl___ joined,
matiaslina left,
rypervenche left
23:05
rypervenche joined
23:07
vike left
23:10
albino joined
23:11
stoned75 joined,
daxim joined
23:12
MitarashiDango[m joined
23:13
vike joined,
aindilis left
23:16
JJAtria[m] joined
23:17
stoned75 left
23:19
tonyo joined
23:20
moon-child left
23:21
pel joined,
a3r0 joined,
Grrrr joined,
tyilanmenyn joined
23:22
sjm_uk left,
moon-child joined,
earnestly joined
23:23
matiaslina joined
23:25
tonyo left
23:26
gfldex joined,
tonyo joined
23:31
tonyo is now known as tony-o
23:51
tejr left,
tejr joined
23:59
aindilis joined
|