»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend! Set by moritz on 22 December 2015. |
|||
00:03
BenGoldberg left
00:08
BenGoldberg joined,
mr-foobar left,
scovit left
00:09
ChoHag left
00:12
Kyo91_ left,
Cabanossi left
00:14
Cabanossi joined
00:20
mr-foobar joined
00:36
mr-foobar left
00:45
espadrine left
|
|||
AlexDaniel | trying to sign up on gitlab, username already taken. I look at the profile and it's actually me. OK. But it's not in my password manager. I click “Forgot your password?”, it asks for my email. I type in my email, it says “If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes.”. Sorry, but I didn't get it, can't it tell me my email please? | 00:46 | |
doesn't accept the username in that field | 00:47 | ||
oooooooooh. I was registered with my github account. Interesting. | |||
00:48
margeas left
00:49
mr-foobar joined
00:52
Rawriful left
00:55
troys_ is now known as troys
01:06
leont left,
robertle left
01:07
khw joined,
mr-foobar left
01:12
geekosaur left
01:20
geekosaur joined
01:21
mr-foobar joined
01:24
ruoso___ left
01:37
mr-foobar left
01:39
mr-foobar joined
01:46
ilbot3 left
01:54
ilbot3 joined,
ChanServ sets mode: +v ilbot3
01:58
Cabanossi left
01:59
Cabanossi joined
02:08
ohmyfish joined
02:09
mr-foobar left,
ohmyfish is now known as ohmysummer
02:10
zakame left
02:13
raschipi joined
02:15
noganex_ joined
02:17
noganex left
02:18
zakame joined
02:19
pilne joined
02:21
mr-foobar joined
02:27
Cabanossi left
02:29
Cabanossi joined
02:34
ash_gti joined
02:36
troys is now known as troys_
02:41
jeromelanteri joined
02:51
aborazmeh joined,
aborazmeh left,
aborazmeh joined
02:52
raschipi left
03:08
dogbert2 left
03:17
ash_gti left
03:27
Cabanossi left
03:29
Cabanossi joined
03:39
mr-foobar left
03:40
mr-foobar joined
03:43
Cabanossi left,
Cabanoss- joined,
Cabanoss- is now known as Cabanossi
03:52
_28_ria left
03:53
kaare__ left,
_28_ria joined
04:02
kaare__ joined
04:07
ash_gti joined
04:09
mr-foobar left
04:13
ash_gti left
04:14
ash_gti joined
04:17
mr-foobar joined
04:20
aborazmeh left
04:25
ohmysummer left
04:26
Cabanossi left
04:28
Cabanossi joined
04:29
jeromelanteri left
04:32
eliasr left
04:34
skids joined
04:39
mr-foobar left
04:43
khw left
04:45
kaare_ joined,
kaare__ left
04:50
mr-foobar joined
04:56
pilne left
04:57
Cabanossi left
04:58
Cabanossi joined
05:08
mr-foobar left
05:13
mr-foobar joined
05:20
ChoHag joined
05:22
wamba joined
05:39
mr-foobar left
05:40
xtreak joined,
kaare_ left,
mr-foobar joined
05:41
nadim joined
05:54
BenGoldberg left
05:57
xtreak left,
ash_gti left
05:58
troys_ is now known as troys
06:01
troys left
06:04
aborazmeh joined,
aborazmeh left,
aborazmeh joined
06:10
mr-foobar left
06:13
piojo joined
|
|||
piojo | Is it a known issue that blocks cause backtracking to fail in some regexes like: [ {}<a> | {}<b> | {}<c> ] | 06:16 | |
I can't reproduce with something simple like what I just typed, but with a more complex example, the failure seems pretty clear. | 06:17 | ||
all three blocks are empty, so they shouldn't be changing the longest-match tiebreaking | |||
And with the blocks, switching the order of <a>, <b> and <c> will cause the rule to match the correct branch--with the blocks, it matches <a> which is empty | 06:18 | ||
The text matched is empty, I mean. It's supposed to match <b>. Does that sound like a known bug, or should I try to work my code into a smaller test case to prove it? | 06:19 | ||
06:22
mr-foobar joined
|
|||
u-ou | hi | 06:25 | |
I love perl 6 | |||
06:26
_28_ria left
06:27
_28_ria joined
|
|||
masak | u-ou: Perl 6 loves you <3 | 06:39 | |
u-ou | yay <3 | ||
06:39
mr-foobar left
|
|||
piojo | m: say 'ab' ~~ / ^:ratchet [ . | .. ] $ / | 06:42 | |
camelia | 「ab」 | ||
piojo | say 'ab' ~~ / ^:ratchet [ {}. | {}.. ] $ / | ||
evalable6 | Nil | 06:43 | |
piojo | ha! | ||
It almost looks the same as this, but I'm not sure it is: rt.perl.org/Public/Bug/Display.html?id=123934 | |||
Can I submit a bug and PR a failing test for this, or do we not commit tests until rakudo passes them? | 06:45 | ||
06:49
darutoko joined
06:50
mr-foobar joined
06:59
aborazmeh left
07:01
kaare_ joined
07:04
skids left
07:09
mr-foobar left
07:14
mr-foobar joined
|
|||
lizmat | piojo: please add a test: make it a todo'd test, or else a skipped test, and mention the RT number with it | 07:24 | |
07:27
Cabanossi left
07:28
Cabanossi joined
|
|||
piojo | lizmat: thanks, I'll do that | 07:29 | |
07:29
setty1 joined
07:38
mr-fooba_ joined
07:40
mr-foobar left
07:58
domidumont joined
08:02
domidumont left
08:03
domidumont joined,
hobbs left
08:09
hobbs joined,
hobbs left,
hobbs joined
08:31
smls joined
|
|||
smls | `say` is supposed to be thread-safe, right? | 08:32 | |
Because this now hangs on most runs: | |||
for ^10000 { start say $_ } | |||
It starts printing elements, but then stops (usually somewhere between index 100 to 900) and hangs indefinitely. | 08:34 | ||
Note that there isn't even an `await` in there. | |||
Uses 100% of one(!) CPU core while hanging. | 08:35 | ||
Hm, looks like it might be RT #132042. | 08:40 | ||
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=132042 | ||
08:40
Cabanossi left
08:43
Cabanossi joined
08:47
wamba left
|
|||
lizmat | smls: fwiw, this doesn't hang for me once after 20+ runs (MBP on MacOS) | 08:50 | |
08:52
leont joined
|
|||
smls | According to the RT, it's been fixed by a MoarVM commit - but Rakudo nom still uses an older MoarVM. | 08:56 | |
How can I build Rakudo with MoarVM master? | |||
09:04
domidumont left
|
|||
lizmat | smls: This is Rakudo version 2017.08-103-g4de858a built on MoarVM version 2017.08.1-128-gde6dced is what I use | 09:06 | |
smls | Hm. Maybe a Linux-only issue then? | ||
09:07
setty1 left
|
|||
lizmat | smls: you can specify a location for Moar in configure, but it's been a while since I did that myself | 09:07 | |
09:10
mr-fooba_ left
|
|||
smls | \o/ | 09:13 | |
I managed to build Rakudo with MoarVM master, and now that one-liner no longer hangs! | |||
09:14
mr-foobar joined,
piojo left,
piojo joined
|
|||
lizmat | :-) | 09:16 | |
09:25
|oLa| joined
09:27
Cabanossi left,
|oLa|1 left
09:28
Cabanossi joined
|
|||
smls | bisectable6: my @a; @a.splice: 0, 0, ("a",); say @a[0].VAR.^name; | 09:28 | |
bisectable6 | smls, On both starting points (old=2015.12 new=76f1d89) the exit code is 0 and the output is identical as well | ||
smls, Output on both points: «Str» | |||
leont | Is there an associative that can store Nil? | 09:30 | |
09:30
nadim left
09:32
nadim joined
|
|||
Geth | ecosystem: scovit++ created pull request #364: Add NativeHelpers::CBuffer to ecosystem |
09:32 | |
ecosystem: 6bdf9cc60d | (Vittore F. Scolari)++ | META.list Add NativeHelpers::CBuffer to ecosystem See github.com/scovit/NativeHelpers-CBuffer |
09:34 | ||
ecosystem: ce3b0f15f9 | lizmat++ (committed using GitHub Web editor) | META.list Merge pull request #364 from scovit/master Add NativeHelpers::CBuffer to ecosystem |
|||
09:34
andrzejku joined
|
|||
09:34
piojo left
|
|||
smls | leont: Pair :) | 09:34 | |
09:34
piojo joined
|
|||
lizmat | m: my %h is default(Nil) = a,Nil; dd %h | 09:35 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: a used at line 1 |
||
lizmat | m: my %h is default(Nil) = "a",Nil; dd %h | ||
camelia | Hash %h = {:a(Nil)} | ||
lizmat | leon: ^^^ | ||
leont rather ^^^ | |||
09:36
scovit joined
|
|||
leont | And the default behavior is only triggered by Nil? | 09:37 | |
smls | m: my %h is default(Nil); say %h<a><b> = 42; | 09:39 | |
camelia | Attempted to ASSIGN-KEY to Nil. in block <unit> at <tmp> line 1 |
||
09:39
andrzejku left
|
|||
smls | lizmat, leont: ^^ Beware that `is default` breaks autovovofication (which is implemented via Any) | 09:40 | |
m: dd Hash[Nil, Nil].new( (Nil) => Nil ).kv; | 09:41 | ||
camelia | (Nil, Any).Seq | ||
smls | ^^ Also interesting... | ||
09:41
mr-foobar left
09:42
andrzejku joined
|
|||
smls | leont: Well, the default if of course also triggered when accessing non-existing elements: | 09:42 | |
m: my %h is default(Nil); say %h<a>; | |||
camelia | Nil | ||
smls | Don't know if there's anything else that triggers it. | 09:43 | |
09:44
ohmysummer joined
09:46
mr-foobar joined
09:52
ohmysummer left
|
|||
piojo | m: my \foo = Nil; my %hsh = (1, \foo); dd %hsh | 09:55 | |
camelia | Hash %hsh = {"1" => \(Nil)} | ||
09:57
Cabanossi left
09:59
Cabanossi joined
10:08
margeas joined
10:11
mr-foobar left
10:15
mr-foobar joined
10:20
ohmysummer joined
|
|||
samcv | wooo i merged my collation stuff into moarvm. so soon it should be in rakudo bleed | 10:23 | |
and we can all be cool and sort 'fi' with 'fi' and æ with ae and sort diacritics and accents after their base letters | 10:24 | ||
zakame | nice! | ||
samcv | yes! i'm excited :3 | ||
was a lot of work. almost can't believe it's done | |||
but it is :) | |||
well it was done a month ago but i still had to do work to get it ready for merge and fully automate the creation of certain code and such, so it will be fully future portible | 10:25 | ||
its best innovation is probably the ring buffer i use. so it reads codepoints from the strings to be compared. the ring buffer is only the size of the longest codepoint sequence, since some sequences of codepoints have their own collation value | 10:26 | ||
10:26
ShalokShalom_ joined
|
|||
samcv | so it iterates into the ring buffer until it finds two nonmatching codepoints, and then once it does that it then pushes collation arrays for those to the stack then compares their primary levels, and if needed pulls further codepoints, so it does minimal work | 10:27 | |
pretty proud of it | |||
some (maybe) interesting technical details here github.com/MoarVM/MoarVM/commit/86...5284cfcd03 i'll probably adapt that into some moarvm documentation | 10:28 | ||
10:29
ShalokShalom left
|
|||
samcv | pretty happy how the grant turned out. got a lot more done that i thought i would. i mean i didn't fully replace the unicode database like i wanted. but i think i more than made up for it in implemented knuthmorris pratt string search and a whole ton of string indexing speed improvements and concatenation fixes/speedups | 10:30 | |
10:31
llfourn left
|
|||
MasterDuke | samcv++ | 10:31 | |
zakame | buggable: pizza samcv | 10:33 | |
buggable | samcv, enjoy this slice of Hawaiian pizza, my friend! Yummy 🍕 | ||
samcv | huggable, hug me | ||
huggable hugs samcv | |||
samcv | \o/ | ||
10:38
TEttinger left
10:41
mr-foobar left
10:45
Aaronepower left,
SCHAPiE left
10:46
SCHAPiE joined
10:47
SCHAPiE left
|
|||
timotimo | piojo: a code block will terminate what LTM considers the "declarative prefix" which is all that matters in deciding what branches of an LTM alteration to try | 10:48 | |
10:49
Ptolemarch left,
smls left,
Ptolemarch joined
10:50
smls joined
|
|||
smls | samcv: Cool! | 10:52 | |
10:52
SCHAPiE joined
10:54
mr-foobar joined
|
|||
moritz | \o | 10:54 | |
smls | samcv: This could replace the custom `latin1_decompose` in rosettacode.org/wiki/Natural_sorting#Perl_6, right? | ||
samcv | yep | 10:55 | |
plus even better :3 | |||
10:55
Aaronepower joined
|
|||
samcv | interesting hadn't seen that before. so i guess it decomposes it or what? | 10:55 | |
also in the future we may let you ignore spaces and punctuation and such | 10:56 | ||
if implemented it will even ignore the punctuation from ① | |||
i think. or some set of numbers that have extra collation elements due to how they are | 10:57 | ||
smls, and you can reverse the sort order for diacritics as well, or reverse the case sorting only but otherwis ehave it sort the same (that you can do right now) | 10:58 | ||
timotimo | smls: the current code uses .lc to sort case insensitively; that's not correct, though | ||
smls | timotimo: It should use .fc, right? | 11:02 | |
timotimo | yep. or it should use coll instead of sort ;) | 11:03 | |
smls | Yeah, probably best to rewrite the whole example with .coll once it's in an officially released Rakudo. | 11:04 | |
11:06
ohmysummer left
|
|||
timotimo | well, it already is, you just have to "use experimental" for it :) :) | 11:08 | |
11:09
Skarsnik joined
11:12
mr-foobar left
11:20
Aaronepower left,
scovit left
11:24
mr-foobar joined
|
|||
samcv | m: use experimental :collation; dd <Bubble Buße Bust ss sp spell start test zest finish finish>.collate | 11:26 | |
camelia | ("Bubble", "Buße", "Bust", "finish", "finish", "sp", "spell", "ss", "start", "test", "zest").Seq | ||
11:26
Cabanossi left
|
|||
samcv | m: use experimental :collation; dd <Bubble Buße Bust ss sp spell start test zest finish finish start Start START>.collate | 11:26 | |
camelia | ("Bubble", "Buße", "Bust", "finish", "finish", "sp", "spell", "ss", "start", "start", "Start", "START", "test", "zest").Seq | ||
samcv | m: use experimental :collation; dd <ſ s ß st st ss u ú á a ū sv>.collate | 11:27 | |
camelia | ("a", "á", "s", "ſ", "ss", "ß", "st", "st", "sv", "u", "ú", "ū").Seq | ||
11:28
Cabanossi joined
|
|||
samcv | m: use experimental :collation; say <① 1 9 ② 8 one hi>.collate | 11:29 | |
camelia | (1 ① ② 8 9 hi one) | ||
samcv | :)) | ||
11:29
rindolf joined,
andrzejku left
|
|||
samcv | m: dd <ſ s ß st st ss u ú á a ū sv>.sort | 11:30 | |
camelia | ("a", "s", "ss", "st", "sv", "u", "ß", "á", "ú", "ū", "ſ", "st").Seq | ||
11:30
Aaronepower joined
|
|||
samcv | or to see the old sorting ^ | 11:30 | |
11:30
andrzejku joined
|
|||
Geth | doc: gfldex++ created pull request #1547: Better example for IO::Socket::Async, closes #1546 |
11:31 | |
11:37
piojo left,
espadrine joined
11:39
kaare_ left
11:41
kaare_ joined,
mr-foobar left
11:42
margeas left
11:44
vendethiel- joined
11:45
Ven`` left
11:49
ohmysummer joined
11:52
mr-foobar joined
11:54
ohmysummer left
|
|||
Geth | doc: gfldex++ created pull request #1549: doc Failure.new |
11:58 | |
12:03
emeric joined
12:05
Aaronepower left,
Aaronepower joined
12:12
Aaronepower left,
mr-foobar left,
Aaronepower joined
12:19
mr-foobar joined
12:21
Aaronepower left,
Lac123 joined
12:22
Aaronepower joined
12:26
Cabanossi left
12:27
Aaronepower left,
rightfold left
12:28
Aaronepower joined,
Lac123 left,
Cabanossi joined
12:40
Aaronepower left
12:42
mr-foobar left
12:43
Aaronepower joined
12:46
ohmysummer joined
12:50
mr-foobar joined
|
|||
Geth | doc: 31d27f05ee | MasterDuke17++ (committed using GitHub Web editor) | doc/Language/performance.pod6 Fix table name in SQL profile example |
12:54 | |
12:55
pecastro left
12:57
mr-foobar left,
pecastro joined
|
|||
gfldex | m: my &now = { constant &now = BEGIN &now; now.DateTime.hh-mm-ss() }; say now | 12:58 | |
camelia | Cannot invoke this object (REPR: Uninstantiable; Callable) in block <unit> at <tmp> line 1 |
||
gfldex | m: my &now = { constant &now = &now; now.DateTime.hh-mm-ss() }; say now | ||
camelia | Cannot invoke this object (REPR: Uninstantiable; Callable) in block <unit> at <tmp> line 1 |
||
gfldex | m: my &now = { state &now = BEGIN &now; }; say now | 12:59 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Cannot use variable &now in declaration to initialize itself at <tmp>:1 ------> 3my &now = { state &now = BEGIN &7⏏5now; }; say now expecting any of: term |
||
13:02
dogbert2 joined
13:04
pecastro left
13:05
wamba joined
13:14
mr-foobar joined
13:17
ShalokShalom_ is now known as ShalokShalom
|
|||
moritz | m: my &now = { state & = BEGIN &now; }; say now | 13:19 | |
camelia | (Callable) | ||
moritz | m: my &now = { state & = BEGIN &OUTER::now; }; say now | ||
camelia | (Callable) | ||
moritz | m: my &now = { state & = BEGIN &OUTER::now; }; say now() | 13:20 | |
camelia | (Callable) | ||
13:20
pmurias joined
|
|||
moritz | m: my &now = { state & = BEGIN &OUTER::OUTER::now; }; say now() | 13:20 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> An exception occurred while evaluating a BEGIN at <tmp>:1 Exception details: 5===SORRY!5=== Error while compiling ctxlexpad needs an MVMContext at : |
||
moritz | m: my &now = { state & = BEGIN &CORE::now; }; say now() | ||
camelia | (Callable) | ||
moritz | m: my &now = { state & = BEGIN &CORE::now; }; say &now.^name | ||
camelia | Block | ||
moritz | m: my &now = { state & = BEGIN &CORE::now; }; say &now | 13:21 | |
camelia | -> ;; $_? is raw { #`(Block|62372456) ... } | ||
moritz | m: my &now = { state & = BEGIN &CORE::now; }; say &now() | ||
camelia | (Callable) | ||
moritz | m: my &now = { state & = BEGIN &CORE::now; }; say &now()() | ||
camelia | Cannot invoke this object (REPR: Uninstantiable; Callable) in block <unit> at <tmp> line 1 |
||
13:22
rindolf left
13:24
Aaronepower left
13:26
Aaronepower joined
13:27
|oLa| left,
Aaronepower left
13:29
|oLa| joined,
setty1 joined
13:34
pmurias left
|
|||
moritz | oh | 13:34 | |
m: say CORE::term<now>() | |||
camelia | Cannot find method 'Nil' on object of type List in block <unit> at <tmp> line 1 |
||
moritz | m: say CORE::term<now> | ||
camelia | Nil | ||
moritz | m: say &CORE::term<now> | ||
camelia | Nil | ||
13:35
rindolf joined,
Aaronepower joined
|
|||
moritz | m: say &term<now> | 13:35 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: term used at line 1 |
||
moritz | m: say &CORE::term:<now> | ||
camelia | sub term:<now> () { #`(Sub|63325576) ... } | ||
moritz | m: my &now = { BEGIN &CORE::term:<now>() }; say now() | 13:36 | |
camelia | Instant:1505050622.150288 | ||
moritz | m: my &now = { BEGIN &CORE::term:<now>() }; say now(); sleep 1; say now() | ||
camelia | Instant:1505050632.637153 Instant:1505050632.637153 |
||
13:36
Aaronepower left
|
|||
moritz | gfldex: ^^ | 13:36 | |
m: sub term:<now>() { BEGIN &CORE::term:<now>() }; say now; sleep 1; say now | 13:37 | ||
camelia | Instant:1505050672.066354 Instant:1505050672.066354 |
||
13:38
pecastro joined
13:41
Aaronepower joined,
Cabanossi left
13:43
Cabanossi joined
13:44
Aaronepower left
13:49
smls left,
smls joined
13:53
pyrimidi_ left,
pyrimidine joined
13:57
mr-foobar left
13:59
Aaronepower joined
14:00
mr-foobar joined
14:03
Aaronepower left
14:08
Aaronepower joined
14:11
margeas joined,
pmurias joined,
Aaronepower left
14:15
Aaronepower joined
14:21
robertle joined
14:24
Aaronepower left
14:26
Cabanossi left
14:28
Cabanossi joined
14:29
mr-foobar left
14:30
mr-foobar joined
14:31
albongo joined
14:35
pyrimidine left,
pyrimidi_ joined
14:39
mscha left
14:43
mr-foobar left
14:44
|oLa|1 joined,
|oLa| left
14:47
mr-foobar joined
14:48
pilne joined
|
|||
timotimo | modeling data transfer objects for the heapanalyzer's result types is less simple than expected ... | 14:52 | |
15:04
Rawriful joined
15:06
zakharyas joined,
llfourn joined
|
|||
timotimo super glad to see Christian Bartolomaeus go through RTs again | 15:08 | ||
15:19
niceperl joined
15:21
buggable left,
huggable left
15:27
pmurias left
15:35
pmurias joined
15:37
pyrimidi_ left
15:38
pyrimidine joined
15:42
mr-foobar left
15:45
rindolf left
15:47
mr-foobar joined
15:54
zakharyas left
15:56
zakharyas joined
16:03
ohmysummer left
16:04
skids joined
|
|||
tyil | I'm making a bot with IRC::Client, which seems to run fine with gnu+linux, but dies when using freebsd | 16:09 | |
termbin.com/efur | 16:10 | ||
this is the class I think is responsible: github.com/scriptkitties/musashi/b...Github.pm6 | |||
using a perl6 built with rakudobrew an hour or 2 ago | 16:11 | ||
moritz finds the use of Thread.start a bit unusual | 16:12 | ||
timotimo | tyil: can you see what happens when you use start instead of Thread.start? | ||
tyil | start used at line 15. Did you mean 'sort', 'spurt', 'sqrt'? | 16:13 | |
timotimo | um, what | ||
moritz | tyil: what does perl6 --version say? | ||
timotimo | are you sure you're running an up-to-date rakudo? | ||
tyil | This is Rakudo version 2017.08-105-g9b42484a5 built on MoarVM version 2017.08.1-150-g0b81969d | ||
moritz | oh, might not be allowed to have parenthesis | ||
timotimo | ah, yes | ||
m: start { say "hi" } | 16:14 | ||
camelia | ( no output ) | ||
timotimo | m: start({ say "hi" }) | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: start used at line 1. Did you mean 'sort', 'spurt', 'sqrt'? |
||
moritz | so start { ... } instead of start({ ... }) | ||
tyil | ok, lemme try | ||
timotimo | we could probably have a better error message for that? | ||
tyil | heh | ||
that seems to work | |||
why would it work with just start { ... } | |||
and can I still do something like my $thread = start { ... } | 16:15 | ||
timotimo | yeah, start gives you a promise object that gets kept or broken when the block returns a value or throws an exception | 16:16 | |
tyil | hmm | ||
it doesnt seem to start Bailador now though :< | |||
timotimo | hm, i imagine a cro plugin for irc could be written | ||
tyil | with the start { ... } block | 16:17 | |
timotimo | ok, take the result of the start block and call .then({ .say }) on it | ||
m: my $a = start { "oh hi" }; $a.then({ .say }); sleep 1 | |||
camelia | Promise.new(scheduler => ThreadPoolScheduler.new(initial_threads => 0, max_threads => 16, uncaught_handler => Callable), status => PromiseStatus::Kept) | ||
tyil | but it's not supposed to return a result, it's supposed to keep a Bailador running | ||
timotimo | oh, more interesting would be the .result of it | 16:18 | |
so .result.say | |||
start returns the promise immediately | |||
m: start { die "oh no!" }; sleep 1 | |||
camelia | ( no output ) | ||
timotimo | ^- when an exception is thrown, it'll be put into the promise's result, so you won't see it unless you look | ||
m: my $promise = start { die "oh no!" }; $promise.then({ .result.say }); sleep 1 | 16:19 | ||
camelia | ( no output ) | ||
timotimo | oh? | ||
tyil | hmm | ||
timotimo | m: my $promise = start { die "oh no!" }; await $promise.then({ .result.say }); | ||
camelia | Tried to get the result of a broken Promise in block <unit> at <tmp> line 1 Original exception: Tried to get the result of a broken Promise in block at <tmp> line 1 Original exception: oh no! in bloc… |
||
timotimo | (which is now the same as await $promise) | 16:20 | |
tyil | it seems Bailador is giving me troubles too now 3: | ||
16:20
MasterDuke left
|
|||
timotimo | mhm | 16:20 | |
well, it wasn't able to start up before, either | 16:21 | ||
is bailador threadsafe at all? | |||
tyil | it was able to start up before on gnu+linux though | ||
timotimo | OK, the plot thickens :) | ||
tyil | the Thread.start({}) thing worked on my laptop | 16:22 | |
the plot doesn't really thicken, its the first thing I said :p | |||
18:09 <tyil> I'm making a bot with IRC::Client, which seems to run fine with gnu+linux, but dies when using freebsd | |||
timotimo | well, that it still fails that way (or a different way?) with start instead of Thread.start | 16:23 | |
tyil | Thread.start resulted in the error I posted above | 16:24 | |
even though it works as expected on gnu+linux (runs Bailador from inside the bot) | |||
timotimo | how does the problem look now? bailador just not answering on http? | 16:25 | |
tyil | now its just a Bailador error, failing to start up: termbin.com/0xlc | 16:26 | |
using `baile(8000)` | |||
timotimo | i must admit it has been a long, long while since i saw AUTOGEN show up anywhere | 16:28 | |
i don't even remember what it's for | |||
16:28
mr-foobar left
|
|||
tyil | neither do I :< | 16:28 | |
16:29
tokomer joined
|
|||
timotimo | ok here's an idea | 16:30 | |
call app() right before the start {} block | |||
moritz | it's related to auto-generated protos for multi methods | ||
timotimo | it could be the multi in question is the "app" multi | ||
tyil | adding `app();` before start {... } doesn't seem to change the situation | 16:31 | |
16:31
mr-foobar joined
|
|||
timotimo | hm, maybe a different multi is at fault | 16:36 | |
but i'm not sure why the error happens in this situation at all | 16:37 | ||
16:37
emeric left
|
|||
tyil | me neither | 16:37 | |
stmuk_ | tyil: 2017.08 had test failures on roast I noticed ... 2017.07 was ok | ||
on FreeBSD I mean | |||
tyil | hmm | ||
I can try getting a different perl | |||
16:39
domidumont joined
|
|||
tyil | building a .07 | 16:39 | |
timotimo | in my whole time logging irc for the two perl6 channels i only saw AUTOG*N on 26 lines | ||
16:42
xiaomiao left
16:43
zakame left
16:45
xiaomiao joined
16:49
zakame joined
16:52
yqt joined
|
|||
teatime | I wrote some Ruby today. It made me pine for Perl6. | 16:52 | |
timotimo | i read a bit of python the other day. same. | 16:55 | |
zakame | same same | 16:56 | |
timotimo | we're doomed to never like programming again except when we're allowed perl6 ;) | ||
tyil | stmuk_: same error on 2017.07 | 16:58 | |
teatime | hehe | ||
16:59
mr-foobar left
|
|||
timotimo | .o( who will write the Like, Perl6 slang? ) | 16:59 | |
stmuk_ | odd | ||
17:00
mr-foobar joined
17:04
zakharyas left
|
|||
smls | bisectable6: say '123' ~~ / :my $a=2; <{ '$a' }> /; | 17:04 | |
bisectable6 | smls, On both starting points (old=2015.12 new=9b42484) the exit code is 0 and the output is identical as well | ||
smls, Output on both points: «「2」» | |||
AlexDaniel | smls: FWIW you may like “c: releases …” or “mch: …”. The last one is m: on *C*hristmas on *H*EAD | 17:08 | |
mch: say '123' ~~ / :my $a=2; <{ '$a' }> /; | |||
committable6 | AlexDaniel, ¦2015.12,HEAD(9b42484): «「2」» | ||
AlexDaniel | and* | 17:09 | |
smls | AlexDaniel: I'm looking at the RT tickets that haven't been updated the longest. No surprise that some of those bugs have been fixed further back than bisectable goes... :) | 17:11 | |
17:11
okl joined
|
|||
AlexDaniel | smls: bisectable goes back to 2014.01 but defaults to dwim-ish old=2015.12 | 17:11 | |
17:11
ash_gti joined
|
|||
AlexDaniel | for example | 17:11 | |
c: all say '123' ~~ / :my $a=2; <{ '$a' }> /; | 17:12 | ||
17:12
mr-foobar left
|
|||
committable6 | AlexDaniel, gist.github.com/1df76358c748688653...ad60b13d1f | 17:12 | |
AlexDaniel | and we can see when it changed | ||
bisect: old=2014.01 all say '123' ~~ / :my $a=2; <{ '$a' }> /; | |||
bisectable6 | AlexDaniel, Bisecting by exit code (old=2014.01 new=9b42484). Old exit code: 1 | ||
AlexDaniel | oops | ||
extra “all” in there :) | |||
bisectable6 | AlexDaniel, bisect log: gist.github.com/de26d0b969772d8668...799f2c017a | 17:13 | |
AlexDaniel, (2015-08-13) github.com/rakudo/rakudo/commit/2f...8f6605e628 | |||
AlexDaniel | bisect: old=2014.01 say '123' ~~ / :my $a=2; <{ '$a' }> /; | ||
bisectable6 | AlexDaniel, Bisecting by exit code (old=2014.01 new=9b42484). Old exit code: 1 | ||
AlexDaniel, bisect log: gist.github.com/3bfbdd10905aafbb93...68297bc96b | 17:14 | ||
AlexDaniel, (2015-08-13) github.com/rakudo/rakudo/commit/2f...8f6605e628 | |||
bartolin | smls++ # work on RT tickets | ||
AlexDaniel | oh… ok so this suffers from stuff changing multiple times in the given range | 17:15 | |
(which is why it defaults to 2015.12 so that we skip all the GLR hell) | |||
smls | :) | ||
AlexDaniel | but that's ok, we just have to set new= | ||
bisect: old=2014.01 new=2015.05 say '123' ~~ / :my $a=2; <{ '$a' }> /; | |||
bisectable6 | AlexDaniel, Bisecting by exit code (old=2014.01 new=2015.05). Old exit code: 1 | ||
AlexDaniel | in fact, I could've used a tighter range, but it will probably work | 17:16 | |
bisectable6 | AlexDaniel, bisect log: gist.github.com/f5e8656490812f45ae...5cd7388f4f | ||
AlexDaniel, (2015-05-11) github.com/rakudo/rakudo/commit/f0...b916f3ecde | |||
AlexDaniel | alright, and we can double check | ||
commit: f0e142b3a2^,f0e142b3a2 say '123' ~~ / :my $a=2; <{ '$a' }> /; | |||
committable6 | AlexDaniel, ¦f0e142b3a2^: «04===SORRY!04=== Error while compiling EVAL_0Variable '$a' is not declaredat EVAL_0:1------> 03anon regex { 08⏏04$a} «exit code = 1»» ¦f0e142b: «「2」» | ||
AlexDaniel | yep | 17:17 | |
smls | AlexDaniel: Ah, that one sound about right from the commit title. | ||
AlexDaniel | smls: sorry for this intervention, but honestly I'm already forgetting what these bots can do so I try to use any chance to pass the knowledge :) | ||
17:18
andrzejku left
17:19
andrzejku joined,
niceperl left
|
|||
AlexDaniel | smls: also, it takes quite a bit of messages back and forth to get what you really need, so perhaps consider joining #whateverable or #zofbot so that you don't have to botspam here :) | 17:20 | |
smls | AlexDaniel: Ah, I didn't know about those channels! I did try private-messaging the bot, but it refused. | ||
17:20
ash_gti left
|
|||
AlexDaniel | smls++ # for doing this awesome work | 17:23 | |
smls: also, consider participating in the next SQUASHathon as I guess we will be doing similar work :) | |||
squashable6: status | 17:24 | ||
squashable6 | AlexDaniel, Next SQUASHathon in 25 days and ≈16 hours (2017-10-07 UTC-12⌁UTC+14) | ||
AlexDaniel | github.com/rakudo/rakudo/wiki/Mont...Squash-Day | ||
17:24
ash_gti joined
17:25
tokomer left
|
|||
smls | Yes, hopefully I can participate. | 17:26 | |
AlexDaniel | \o/ 🍕 | 17:28 | |
smls | AlexDaniel: In case you're looking for themes for future SQUASHathons: The TESTNEEDED queue could be viewed separately, because those are essentially bugs for roast rather than Rakudo. | ||
fail.rakudo.party/t/TESTNEEDED | |||
AlexDaniel | smls: also, if you come across a ticket that feels easier than others, mark it as LHF freely | 17:29 | |
smls: hm. That's an interesting idea. | |||
17:32
raschipi joined
|
|||
raschipi | m: use experimental :collation; <fi fi æ ae á a>.collate | 17:37 | |
camelia | ( no output ) | ||
raschipi | m: use experimental :collation; <fi fi æ ae á a>.collate.say | 17:38 | |
camelia | (a á ae æ fi fi) | ||
raschipi | samcv++ | ||
leont | Nice | 17:39 | |
Can it do other collations as well? | 17:40 | ||
17:41
Cabanossi left,
samb1 left
|
|||
raschipi | m: use experimental :collation; dd <Bubble Buße Bust ss sp spell start test zest finish finish>.collate | 17:41 | |
camelia | ("Bubble", "Buße", "Bust", "finish", "finish", "sp", "spell", "ss", "start", "test", "zest").Seq | ||
raschipi | m: use experimental :collation; dd <ſ s ß st st ss u ú á a ū sv>.collate | 17:42 | |
camelia | ("a", "á", "s", "ſ", "ss", "ß", "st", "st", "sv", "u", "ú", "ū").Seq | ||
raschipi | Full implementation of the Unicode collation spec | ||
17:43
Cabanossi joined
|
|||
raschipi | Well, except for regional variations... | 17:43 | |
17:45
BenGoldberg joined
17:46
ash_gti left
|
|||
leont | Can't the accessor from one role satisfy a required method from another role? | 17:47 | |
leont is confused by the error he's getting | |||
moritz | m: role R1 { method x() { ... } }; role R2 { has $.x }; class A does R1 does R2 { } | 17:48 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Method 'x' must be implemented by A because it is required by roles: R1. at <tmp>:1 |
||
moritz | seems like "no" | ||
which looks like a bug to me | |||
raschipi | m: use experimental :collation; say <① 1 9 ② 8 one hi>.collate | 17:49 | |
camelia | (1 ① ② 8 9 hi one) | ||
moritz | I think the code that generates accessors looks if a method of that name exists | ||
and if it does, no accessor method is generated | |||
I guess it needs to be taught to ignore stub methods | 17:50 | ||
18:03
Actualeyes left
|
|||
BenGoldberg | Also, if this isn't already done, testing whether or not stubs from roles are implemented in a class should be deferred until after all the roles have been mixed in. | 18:17 | |
18:20
setty1 left
18:21
ash_gti joined
18:30
nadim left
18:31
niceperl joined
|
|||
moritz | that works already | 18:34 | |
18:38
ash_gti left
18:43
ash_gti joined
18:47
okl left,
|oLa|1 left,
nadim joined,
ash_gti left
18:48
|oLa| joined
|
|||
Geth | perl6.org: 8edb7074bd | raiph++ (committed using GitHub Web editor) | source/index.html Update squashathon date |
18:48 | |
18:50
zakame left
18:52
census joined
18:59
domidumont left
19:02
eliasr joined
19:05
smls left
19:07
rindolf joined
19:08
rindolf left
19:09
rindolf joined
19:10
nadim left
|
|||
gfldex | lolibloggedalittle: gfldex.wordpress.com/2017/09/10/golfing-httpd/ | 19:12 | |
19:12
yqt left
|
|||
moritz | lolItweetedabitaboutit :-) | 19:15 | |
APic | :-) | 19:16 | |
19:28
nadim joined
19:33
Aaronepower joined
19:35
Aaronepower left
|
|||
Geth | doc: fe93648c31 | (Philippe Bruhat (BooK))++ | doc/Language/functions.pod6 Add a missing newline before a code block |
19:36 | |
tbrowder | hi, #perl6 | 19:44 | |
19:46
darutoko left
|
|||
skids | o/ | 19:46 | |
tbrowder | i'm having trouble tracking down an "cannot unbox...opaque" error. i have tried Grammar::Tracer, trace pragma, --ll-exception so far. i will try the CLI debugger next but wonder if there are any other clues or tricks to find the problem? | 19:48 | |
hi, skids! | |||
i will also try to simplify, but i haven't gone thet route yet. | 19:49 | ||
s/thet/that/ | 19:50 | ||
timotimo | tbrowder: the type it has in the error message can be interesting, too ... but it's probably just Scalar? | ||
pilne | is rakudo's jvm backend being paused until truffle/graal get stable (it would make sense to me if that was the case, was just curious) | 19:51 | |
timotimo | i think it's just a matter of not enough people being able to invest time in it | ||
pilne | that's fair too | ||
i wish i had more time and knowledge to really be able to dig in | 19:52 | ||
i just barely find the time to sleep these days it feels like, but i'm still super excited about perl6 and thankful to those that are making it work better every day (: | |||
skids | bartolin was trying to get rakudo-j into building condition a day or so ago. | 19:53 | |
tbrowder | no, it's a string...got to go...back later | 19:54 | |
Geth | doc: 5ae26188d8 | (Philippe Bruhat (BooK))++ | 5 files Use "than" for comparisons (instead of "then") |
19:56 | |
lizmat | BooK++ :-) | 19:57 | |
BooK | was I fixing Dutchisms? | ||
lizmat | not sure | ||
19:57
setty1 joined
|
|||
lizmat | the difference between then and than was hammered into my head quite severely by my english teacher :-) | 19:58 | |
BooK | than you forgot | ||
I'm not sure this is the best way for me to read the entire docs | |||
because when I found the first "then" I following by grepping for more | 19:59 | ||
btw, doc.perl6.org is super useful as a reference, but is there a recommended reading order for the more high level parts? | 20:00 | ||
20:01
Aaronepower joined
|
|||
moritz | BooK: it's rather weak on the introductory part yet; that's where some of the books come in | 20:02 | |
the goal of doc.perl6.org is to provide that as well, but we're not there yet | 20:03 | ||
and that is something that is (IMHO) done better by a single author than by a committee | |||
20:04
dogbert2 left
20:13
Xliff joined
|
|||
Xliff | \o | 20:13 | |
Xliff mutters "st0opid redskins" | |||
:( | |||
m: class A {}; my $a = A.new; say $a.elems; | |||
camelia | 1 | ||
lizmat | m: my $a; say $a.elems | 20:14 | |
camelia | 1 | ||
lizmat | Xliff: ^^ nothing to do with objects or classes | ||
as scalar is a list with 1 element | |||
Xliff | m: use NativeCal; class A is repr('CStruct') { has int32 $.a; has int32 $.b }; my $a = A.new; say $a.elems; | ||
camelia | ===SORRY!=== Could not find NativeCal at line 1 in: /home/camelia/.perl6 /home/camelia/rakudo-m-inst-1/share/perl6/site /home/camelia/rakudo-m-inst-1/share/perl6/vendor /home/camelia/rakudo-m-inst-1/share/perl6 CompUnit::R… |
||
lizmat | m: my $a = 42 but role { method elems { 42 } }; say $a.elems | 20:15 | |
camelia | 42 | ||
Xliff | m: use NativeCall; class A is repr('CStruct') { has int32 $.a; has int32 $.b }; my $a = A.new; say $a.elems; | ||
camelia | 1 | ||
lizmat | Xliff: unless you override that | ||
Xliff | Yeah, but I am trying to find out why I get a MoarVM panic when I am using NativeCall. | ||
Skarsnik | interesting x) | ||
Xliff | I thought it might be some weird memory issue, however it was the .elems call that was the culprit. | 20:16 | |
Skarsnik | what is your code? | ||
Xliff | It's a large NativeCall project. There is no golf for this. | ||
I am trying to see if I can make one. :/ | |||
But if you want the actual code, here it is: github.com/Xliff/p6-XML-LibXML/blo...html.t#L17 | 20:17 | ||
$doc is an xmlDoc which is defined here: github.com/Xliff/p6-XML-LibXML/blo...cts.pm#L89 | 20:18 | ||
20:19
robertle left,
robertle joined
|
|||
Xliff | I think XML::LibXML might need some touchups. It's been a while since I've looked at this code. | 20:21 | |
Skarsnik | you return libxml2 class? | ||
Xliff | Yes. | ||
Skarsnik | why not returning Perl6 XML stuff? | ||
Xliff | I just noticed that. :P | 20:22 | |
Skarsnik | I started generate the whole binding for the libxml2 it's like a 8000 line file | ||
Xliff | Besides, these test cases all worked a year ago. I'm only just getting back to it and rakudo has seriously changed since then. | ||
Yeah, well FROGGS started this. I started helping him out by trying to port over most features from P5's XML::LibXML | 20:23 | ||
It's more than just lib bindings you have to deal with. | |||
P5 had tons of XS code to handle this. | 20:24 | ||
Skarsnik | I don't see the need x) | ||
Xliff | See the need for what? | ||
Skarsnik | Well depend what you want to do with it | 20:25 | |
Xliff | Well, make an API that's less complicated than libxml2, of course! :) | ||
Skarsnik | if you just want to parse xml file it's not lot of work | 20:26 | |
Xliff | It's not just parsing, it also handles DOM modification. | ||
You are correct, there are much easier ways to parse XML. | |||
There is also the performance boost from using the lib. | 20:27 | ||
Skarsnik | I mean what you want to expose in your module | ||
20:27
robertle_ joined,
robertle left
|
|||
Xliff | Skarsnik: This is more making it easier for Perl6 coders to use a Perl6 interface to libxml. Not just calls to the raw, unmanaged code. | 20:28 | |
You have the 8000 line file. You should see what I mean. :P | |||
There's more to libxml2 than parsing. | |||
Skarsnik | but your test make moar panic? | 20:29 | |
Xliff | Yes | ||
I'm assuming that it's something to do with not properly handing libxml2 structs. | 20:30 | ||
But again, this code was working a year ago, so I need to figure out what changed and how to fix. | 20:31 | ||
20:31
zakharyas joined
|
|||
Xliff | 6 months ago, nothing worked. >_< | 20:31 | |
Skarsnik | you could rewrite your binding (the C->NC part) with gptrixie if you don't want to do it manually x) | ||
Xliff | I know of the trixie. The trixie can't handle something this big. | 20:32 | |
Skarsnik | I actually need it to speed up the xml parsing part of gptrixie | ||
Xliff | Oh, are you actively working on gptrixie? | ||
There was a size limit when I last used it. | |||
gfldex | lolibloggedagain: gfldex.wordpress.com/2017/09/10/we...iege-moar/ | ||
Xliff | It would b0rk after processing a header chain of a certain size. | 20:33 | |
Smaller projects worked. Something like libxml2 wouldn't. | |||
moritz just finished the bulk of the manuscript for the Perl 6 Regex book. ToDos remaining are some small edits I've queued up so far, and lots of proof-reading/copy-editing | |||
Skarsnik | I kinda stopped because I wanted to have each header defined in his own file but I run into Perl 6 does not handling circular dependancy | ||
Xliff | Solved that here. | ||
We use base classes to represent the raw structs. | 20:34 | ||
Then descendant classes to do the real work. | |||
Skarsnik | but yeah you should try it should be able to give you everything | 20:35 | |
Xliff | Thanks, but we have that part done at this point. | 20:36 | |
Most of CStructs.pm and Subs.pm is what we'd get from trixie. | |||
weabot | is it just me or does the duckduckgo api not work? | 20:38 | |
20:39
lancew joined
|
|||
Xliff | m: class A {}; class B is A { method new(A $a) { $a } }; my $a = A.new; my $b = B.new($a); say $b.^name; | 20:39 | |
camelia | A | ||
Xliff | m: class A {}; class B is A { method new(A $a) { self.bless: $a } }; my $a = A.new; my $b = B.new($a); say $b.^name; | 20:40 | |
camelia | Too many positionals passed; expected 1 argument but got 2 in method new at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
20:41
robertle_ left
|
|||
Xliff | m: class A {}; class B is A { method new(A $a) { self.bless($a) } }; my $a = A.new; my $b = B.new($a); say $b.^name; | 20:41 | |
camelia | Too many positionals passed; expected 1 argument but got 2 in method new at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
BooK | in fact, there are like three possible syntax errors in Engligh: it/it's, your/you're and then/than | 20:42 | |
grepping for it'?s now :-) | |||
Skarsnik | Xliff, how it panic btw? x) | 20:44 | |
skids | bless only takes nameds. | 20:48 | |
Geth | perl6.org: 16ac8764e3 | raiph++ (committed using GitHub Web editor) | source/index.html fix (my) typo |
||
20:50
nadim left
|
|||
Xliff | skids: So how do I init a subclass from a superclass and have rakudo report the subclass as the type? | 20:50 | |
skids | Depends on whether you want a copy, or a runtie mixin. | 20:51 | |
Xliff | Copy. | 20:52 | |
20:52
silug left
20:54
andrzejku left
|
|||
Geth | doc: d4f98ca41e | (Philippe Bruhat (BooK))++ | 3 files Use "its" for possessives (instead of "it's") |
20:54 | |
doc: 513db3e243 | (Philippe Bruhat (BooK))++ | doc/Language/io-guide.pod6 Use "it's" for "it is" (instead of "its") |
|||
skids | Xliff: you'd have to enumerate the attributes into a ist of pairs. Never tried to find an easy syntax for that. Maybe there's a metamethod. | 20:56 | |
20:58
lancew left
20:59
TEttinger joined
21:00
Skarsnik left
|
|||
Xliff | OK. That's a pain in the but, though. | 21:04 | |
But what if the subclass has no attributes, but more methods than the superclass? | 21:05 | ||
albongo | Hi, I'm trying to get zef going on openbsd and it doesn't seem to work: w1r3.net/gjEBTn.txt (/var/cyberman being my home directory) | 21:06 | |
Xliff | OK, I would still have to copy super's attributes to the sub. *sigh* | ||
21:06
zakharyas left
|
|||
albongo | i don't really know the first thing about perl6 yet so any help debugging this would be appreciated | 21:07 | |
21:07
silug joined
|
|||
albongo | it's Rakudo 2017.02 on OpenBSD 6.1 | 21:08 | |
(using the package shipped by openbsd) | |||
skids | Xliff: doubtles there's a trick or two to be had in the meta api. | ||
21:11
Cabanossi left
|
|||
timotimo | albongo: that rakudo is too old for the version of zef you have | 21:12 | |
you could try checking out a commit of zef from around february and see if that works | |||
albongo | timotimo: ah, right. thanks. I'm trying to avoid building rakudo since I don't have good hardware to do it on | ||
timotimo | though it'd of course be better if you had an up to date rakudo, for example the last rakudo star | ||
ah, i see. yeah, it requires more than a gig of ram, sadly | 21:13 | ||
albongo | are there openbsd binaries anywhere? | ||
21:13
Cabanossi joined
|
|||
timotimo | i don't know about openbsd :( | 21:14 | |
github.com/nxadm/rakudo-pkg/releases - we have these, but they are all linux | |||
albongo | openbsd 6.2 should be around the corner, and hopefully that'll have a new rakudo | 21:15 | |
maybe I'll install openbsd on a physical machine and produce some | |||
moritz | can you run Docker containers on OpenBSD? | ||
timotimo | ideally they'd ship a rakudo star instead of just rakudo, because that would have zef at the right version, for example | ||
Xliff | skids: Maybe some way to force a type change via nqp? | 21:16 | |
I will look into it. Thanks. | |||
albongo | moritz: if you fancy doing crazy things, yes: medium.com/@dave_voutila/docker-on...20513b8110 | ||
moritz | albongo: then you can use the alpine-perl6 docker container; iirc it comes with zef out of the box | ||
albongo | that sounds like a crazy solution to this problem though | 21:17 | |
if I wanted to run alpine linux I could just install it | |||
timotimo | don't think you'd want that :) | 21:18 | |
not only because you can't have spesh in 2017.08 on alpine because of too harsh stack size restrictions | |||
albongo | I could run virtualbox in docker and use that to run windows and just run my perl6 applications there | 21:19 | |
timotimo | that sounds terrible d) | 21:22 | |
:) | |||
albongo | timotimo: this zef seems like it's (slowly) working, thanks! | 21:25 | |
oh dear, "No extracting backend available" | |||
skids | Xliff: line 716 of Mu.pm is the default clone method... could be adapted. | ||
albongo | what does it want? I've got tar on the machine | ||
timotimo | i wonder ... | 21:26 | |
you should try the debugging related env vars that zef takes | |||
like ZEF_PLUGIN_DEBUG though maybe what you actually want is --verbose or --debug | 21:27 | ||
maybe all you actually need is --/cpan so it doesn't try to download distributions and instead does git clones | 21:28 | ||
actually, i don't think a february zef even has the cpan stuff yet | 21:29 | ||
Xliff | skids: Will look. Thanks! | 21:30 | |
Skids: 716? Don't you mean 622? | 21:31 | ||
skids | not in my checkout... | 21:32 | |
Xliff | github.com/rakudo/rakudo/blob/b597...Mu.pm#L622 ?? | ||
albongo | timotimo: I think I have found the problem: github.com/briandfoy/perl6-PrettyD...META6.json doesn't have a .git on the end of `source-url`, and this old zef doesn't like that | ||
timotimo | ah, i see | ||
were you actually trying to install that particular module or is it collateral damage from just being in there? | 21:33 | ||
Xliff | skids: Ah. Wrong place. Got the right one. | ||
albongo | I'm trying to install this module because it provides Test which a million different things depend on | ||
timotimo | what?! | ||
albongo | uh, i dunno | 21:34 | |
it's what zef told me to do :( | |||
timotimo | Test is shipped by rakudo, if your rakudo tells me you don't have Test, something is going very wrong :( | ||
albongo | oh dear | ||
timotimo | so perl6 -e 'use Test' gives you an error? | ||
albongo | yeah, I get a ===SORRY!=== | 21:35 | |
there's no Test in /usr/local/share/perl6 either | |||
timotimo | PrettyDump's Test is a fork of core Test, and i have no idea in what way it is changed from what we have | ||
on june 1st brian d foy committed that | |||
Xliff | skids: OK. Just out of curiosity, how would I do a runtime mixin? | 21:36 | |
I would then need a Role, right? | |||
albongo | timotimo: I think OpenBSD's rakudo is just shit | ||
skids | Right. | ||
Xliff | Crap. | ||
timotimo | could be :( :( | ||
Xliff | I may need to rethink this. | 21:37 | |
That actually might be the only way I can get this to work. | |||
albongo | timotimo: that's a right shame, I don't really want to rewrite this shiny async server in perl 5 | ||
Xliff | I think what I really want is a way to turn an instance of class A into class B. | ||
If in C++ or Java this would be a cast. | 21:38 | ||
So "B b = (B)a" | |||
timotimo | what challenges would building rakudo on your openbsd give you? | ||
albongo | I only have about 300M free ram and the cpu is extremely slow | ||
BenGoldberg | If B were a role, then you could write: B $b = $a but B; | 21:39 | |
albongo | I'll see if I can get a friend to build it with rakudobrew | ||
timotimo | since you only have to build it once, the slow cpu should be acceptable, and surely you can just create a file and turn it into swap space for the time being? | ||
Xliff | BenGoldberg: Yeah. That's what I am starting to realize. | ||
timotimo | if you build it with rakudobrew it'd probably be a good idea to use a tagged version like 2017.08 instead of whatever's latest in our git | 21:40 | |
albongo | timotimo: uh, well, it's a live web server and I don't really want everything to slow down | ||
Xliff | But then when typed, it would be "xmlDoc+{XML::LibXML::Document}" | ||
Which might not be that bad since it will still smartmatch to XML::LibXML::Document, correct? | |||
timotimo | that's a good reason | 21:41 | |
BenGoldberg | There also exists Metamodel::Primitives.rebless, but it's a *very* hackish thing to use. | ||
21:42
Cabanossi left
|
|||
albongo | timotimo: how much RAM would a whole build use? | 21:42 | |
timotimo | not sure, haven't measured in a while | ||
albongo | right, thanks | ||
I've been thinking about putting openbsd on an old PC for a while, this is a good reason for it anyway :) | |||
Xliff | m: class A {}; role B { }; my $b = A.new but b; say $b.^name; | 21:43 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: b used at line 1 |
||
Xliff | m: class A {}; role B { }; my $b = A.new but B; say $b.^name; | ||
camelia | A+{B} | ||
Xliff | m: class A {}; role B { }; my $b = A.new but B; say $b.^name; say $b ~~ B; | ||
camelia | A+{B} True |
||
21:43
Cabanossi joined
|
|||
timotimo | albongo: i wish you the best of luck :) | 21:44 | |
Xliff | m: use NativeCall; class A { has Pointer $.P } is repr('CStruct'); role B { }; my $b = A.new but B; say $b.^name; say $b ~~ B; | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Strange text after block (missing semicolon or comma?) at <tmp>:1 ------> 3 NativeCall; class A { has Pointer $.P }7⏏5 is repr('CStruct'); role B { }; my $b = expecting any of: in… |
||
Xliff | m: use NativeCall; class A { has Pointer $.P; } is repr('CStruct'); role B { }; my $b = A.new but B; say $b.^name; say $b ~~ B; | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Strange text after block (missing semicolon or comma?) at <tmp>:1 ------> 3NativeCall; class A { has Pointer $.P; }7⏏5 is repr('CStruct'); role B { }; my $b = expecting any of: in… |
||
albongo | timotimo: thanks for your advice, I'll see about getting a half-decent rakudo port in the future (after I've finished sorting out the voidlinux package which somehow ships panda instead of zef :P) | 21:45 | |
Xliff | m: use NativeCall; class A is repr('CStruct') { has Pointer $.P; }; role B { }; my $b = A.new but B; say $b.^name; say $b ~~ B; | ||
camelia | cloning a CStruct is NYI in block <unit> at <tmp> line 1 |
||
Xliff | ^^ rut roh | ||
m: use NativeCall; class A is repr('CStruct') { has Pointer $.P; }; role B { }; my $b := A.new but B; say $b.^name; say $b ~~ B; | 21:46 | ||
camelia | cloning a CStruct is NYI in block <unit> at <tmp> line 1 |
||
geekosaur | albongo, sounds like that is out of date too; panda was what older distributions used, but it hasn't kept up with rakudo | ||
skids | Are both A and B CStruct? | ||
Xliff | B is a Role | ||
skids | No I mean before you decided to try using a role. | 21:47 | |
Xliff | Yes. | ||
skids | Then just nativecast. | ||
albongo | geekosaur: actual rakudo is ANCIENT too. I'll try and get it all updated :) | ||
Xliff | LOL! | ||
And here I was thinking that there *had* to be a better way. | |||
skids: That was the original solution, but it doesn't seem to be working. Still reporting the superclass, not the casted class. | 21:48 | ||
skids | huh... I know I must do that in my xcb module... | 21:49 | |
timotimo | switched the arguments to nativecast around? | ||
so i thought i could use the heap snapshot profiler to figure out skarsnik's program's memory usage pattern | 21:50 | ||
it tries to parse an xml file a hundred times | |||
before it finished the first run it already ate about 8 gigs for the heap snapshot file %) | |||
Xliff | Yikes! | ||
ugexe | when will they learn xml needs to be parsed 101 times? | 21:52 | |
Xliff | m: use NativeCall; class A is repr('CStruct') { has Pointer $.P; }; class B is repr('CStruct'){ has Pointer $.P; }; my $a = A.new; my $b = nativecast(B, $a); say $b.^name; | ||
camelia | B | ||
skids | Xliff: be aware of RT#130792 | 21:53 | |
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=130792 | ||
21:55
ChoHag left
21:57
pmurias left
21:58
dogbert2 joined
22:03
niceperl left
|
|||
timotimo | damn it, tmpfs - even though i have lots of zram - won't let me write more than ~7.9 gigs onto /tmp | 22:04 | |
at least this heap snapshot format compresses very well | 22:06 | ||
Xliff | skids: Good point, but I think a lot of these are going to have to be explicitly_managed() due to libxml2 | 22:10 | |
22:13
setty1 left
|
|||
ugexe | m: keep() | 22:14 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: keep used at line 1. Did you mean 'KEEP'? |
||
ugexe | m: KEEP() | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared name: KEEP used at line 1 |
||
timotimo | m: KEEP { } | ||
camelia | ( no output ) | ||
ugexe | if i was calling a routine, shouldnt it recommend routines? | 22:15 | |
albongo | timotimo: what are you doing that requires 8g of tmpfs | ||
timotimo | albongo: i'm making a heap snapshot profile of a program that apparently creates a big amount of objects | 22:16 | |
and since the heap snapshot profiler takes one snapshot every time the GC runs ... yeah, it makes a lot of those | |||
albongo | Blimey | 22:17 | |
timotimo | now i'm writing the heap snapshot to stderr now and am piping that through gzip | ||
22:17
Xal joined
|
|||
albongo | tmpfs has always been 0.5*RAM for me, but I don't have any computer with 8G ram :shrug: | 22:17 | |
ugexe | m: say -> @_ [$, *@] { }() | 22:18 | |
camelia | Too few positionals passed to ''; expected 1 argument but got 0 in block <unit> at <tmp> line 1 |
||
timotimo | the format is optimized for simple reading, and it wastes quite a lot of space with zeroes | ||
which makes it rather compressible | 22:19 | ||
albongo | yeah but not very useful | ||
because it will explode if you try and decompress it | 22:20 | ||
timotimo | true, ideally i'd implement the mode that can read the format without seeking at all | ||
at the moment i have an index at the end of the file | |||
that mode is desirable anyway because that way you can process files from crashed processes | 22:25 | ||
now the compressed snapshot collection is at 1.3 gigs :) | 22:42 | ||
albongo | Your dump of some program data is bigger than your entire genome | 22:46 | |
(Uncompressed, that is) | |||
(Might not be actually. but who cares? it's useless pop science) | 22:48 | ||
timotimo | the genome isn't filled with consecutive T bases :P | 22:50 | |
22:52
Rawriful left
22:53
pecastro left
|
|||
timotimo | but this has alerted me an important tuning knob the hapsnapshot profiler wants to have: only take snapshots after major collections | 22:55 | |
22:57
leont left
23:00
pecastro joined
23:01
cpage left,
cpage joined
23:02
bisectable6 left,
benchable6 left,
bisectable6 joined,
benchable6 joined
23:04
cpage_ left,
cpage__ joined
23:05
pyrimidine left,
pyrimidi_ joined
23:17
MasterDuke joined
|
|||
timotimo | it looks like it finished while i was moving from laptop to desktop, which meant i stopped the ssh session ... now i'm not sure if it shut down orderly or b0rked … | 23:23 | |
MasterDuke | isn't the new format resilient to non-clean shutdowns? | 23:27 | |
timotimo | it is. the parser doesn't handle it yet :) | ||
MasterDuke | ah | 23:28 | |
Xliff | What signature would I use if I only want a method to accept a 1 or a 0 | 23:35 | |
Does where take compound conditionals? | 23:36 | ||
AlexDaniel | m: sub foo($ where 1 | 0) { say ‘hello’ }; foo(0) # maybe this? | ||
camelia | hello | ||
23:37
awwaiid left
|
|||
Xliff | AlexDaniel++ | 23:37 | |
23:38
pyrimidi_ left,
pyrimidine joined
23:48
margeas left
23:54
raschipi left,
espadrine left
|