Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2017-09-10

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:08 BenGoldberg joined #perl6
00:14 Cabanossi joined #perl6
00:20 mr-foobar joined #perl6
00:46 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:47 AlexDaniel doesn't accept the username in that field
00:47 AlexDaniel oooooooooh. I was registered with my github account. Interesting.
00:49 mr-foobar joined #perl6
01:07 khw joined #perl6
01:20 geekosaur joined #perl6
01:21 mr-foobar joined #perl6
01:39 mr-foobar joined #perl6
01:54 ilbot3 joined #perl6
01:54 Topic for #perl6 is now »ö« Welcome to Perl 6! | https://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:,  or /msg camelia p6: ... | irclog: http://irc.perl6.org or http://colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
01:59 Cabanossi joined #perl6
02:08 ohmyfish joined #perl6
02:13 raschipi joined #perl6
02:15 noganex_ joined #perl6
02:18 zakame joined #perl6
02:19 pilne joined #perl6
02:21 mr-foobar joined #perl6
02:29 Cabanossi joined #perl6
02:34 ash_gti joined #perl6
02:41 jeromelanteri joined #perl6
02:51 aborazmeh joined #perl6
02:51 aborazmeh joined #perl6
03:29 Cabanossi joined #perl6
03:40 mr-foobar joined #perl6
03:43 Cabanoss- joined #perl6
03:53 _28_ria joined #perl6
04:02 kaare__ joined #perl6
04:07 ash_gti joined #perl6
04:14 ash_gti joined #perl6
04:17 mr-foobar joined #perl6
04:28 Cabanossi joined #perl6
04:34 skids joined #perl6
04:45 kaare_ joined #perl6
04:50 mr-foobar joined #perl6
04:58 Cabanossi joined #perl6
05:13 mr-foobar joined #perl6
05:20 ChoHag joined #perl6
05:22 wamba joined #perl6
05:40 xtreak joined #perl6
05:40 mr-foobar joined #perl6
05:41 nadim joined #perl6
06:04 aborazmeh joined #perl6
06:04 aborazmeh joined #perl6
06:13 piojo joined #perl6
06:16 piojo Is it a known issue that blocks cause backtracking to fail in some regexes like: [ {}<a> | {}<b> | {}<c> ]
06:17 piojo 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 piojo all three blocks are empty, so they shouldn't be changing the longest-match tiebreaking
06:18 piojo 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:19 piojo 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:22 mr-foobar joined #perl6
06:25 u-ou hi
06:25 u-ou I love perl 6
06:27 _28_ria joined #perl6
06:39 masak u-ou: Perl 6 loves you <3
06:39 u-ou yay <3
06:42 piojo m: say 'ab' ~~ / ^:ratchet [ . | .. ] $ /
06:42 camelia rakudo-moar 4de858: OUTPUT: «「ab」␤»
06:42 piojo say 'ab' ~~ / ^:ratchet [ {}. | {}.. ] $ /
06:43 evalable6 piojo, rakudo-moar 4de858a55: OUTPUT: «Nil»
06:43 piojo ha!
06:43 piojo It almost looks the same as this, but I'm not sure it is: https://rt.perl.org/Public/Bug/Display.html?id=123934
06:45 piojo Can I submit a bug and PR a failing test for this, or do we not commit tests until rakudo passes them?
06:49 darutoko joined #perl6
06:50 mr-foobar joined #perl6
07:01 kaare_ joined #perl6
07:14 mr-foobar joined #perl6
07:24 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:28 Cabanossi joined #perl6
07:29 piojo lizmat: thanks, I'll do that
07:29 setty1 joined #perl6
07:38 mr-fooba_ joined #perl6
07:58 domidumont joined #perl6
08:03 domidumont joined #perl6
08:09 hobbs joined #perl6
08:09 hobbs joined #perl6
08:31 smls joined #perl6
08:32 smls `say` is supposed to be thread-safe, right?
08:32 smls Because this now hangs on most runs:
08:32 smls for ^10000 { start say $_ }
08:34 smls It starts printing elements, but then stops (usually somewhere between index 100 to 900) and hangs indefinitely.
08:34 smls Note that there isn't even an `await` in there.
08:35 smls Uses 100% of one(!) CPU core while hanging.
08:40 smls Hm, looks like it might be RT #132042.
08:40 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=132042
08:43 Cabanossi joined #perl6
08:50 lizmat smls: fwiw, this doesn't hang for me once after 20+ runs (MBP on MacOS)
08:52 leont joined #perl6
08:56 smls According to the RT, it's been fixed by a MoarVM commit - but Rakudo nom still uses an older MoarVM.
08:56 smls How can I build Rakudo with MoarVM master?
09:06 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 lizmat smls: you can specify a location for Moar in configure, but it's been a while since I did that myself
09:13 smls \o/
09:13 smls I managed to build Rakudo with MoarVM master, and now that one-liner no longer hangs!
09:14 mr-foobar joined #perl6
09:14 piojo joined #perl6
09:16 lizmat :-)
09:25 |oLa| joined #perl6
09:28 Cabanossi joined #perl6
09:28 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
09:28 bisectable6 smls, Output on both points: «Str»
09:30 leont Is there an associative that can store Nil?
09:32 nadim joined #perl6
09:32 Geth ¦ ecosystem: scovit++ created pull request #364: Add NativeHelpers::CBuffer to ecosystem
09:32 Geth ¦ ecosystem: review: https://github.com/perl6/ecosystem/pull/364
09:34 Geth ¦ ecosystem: 6bdf9cc60d | (Vittore F. Scolari)++ | META.list
09:34 Geth ¦ ecosystem: Add NativeHelpers::CBuffer to ecosystem
09:34 Geth ¦ ecosystem:
09:34 Geth ¦ ecosystem: See https://github.com/scovit/NativeHelpers-CBuffer
09:34 Geth ¦ ecosystem: review: https://github.com/perl6/ecosystem/commit/6bdf9cc60d
09:34 Geth ¦ ecosystem: ce3b0f15f9 | lizmat++ (committed using GitHub Web editor) | META.list
09:34 Geth ¦ ecosystem: Merge pull request #364 from scovit/master
09:34 Geth ¦ ecosystem:
09:34 andrzejku joined #perl6
09:34 Geth ¦ ecosystem: Add NativeHelpers::CBuffer to ecosystem
09:34 Geth ¦ ecosystem: review: https://github.com/perl6/ecosystem/commit/ce3b0f15f9
09:34 smls leont: Pair :)
09:34 piojo joined #perl6
09:35 lizmat m: my %h is default(Nil) = a,Nil; dd %h
09:35 camelia rakudo-moar 76f1d8: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤    a used at line 1␤␤»
09:35 lizmat m: my %h is default(Nil) = "a",Nil; dd %h
09:35 camelia rakudo-moar 76f1d8: OUTPUT: «Hash %h = {:a(Nil)}␤»
09:35 lizmat leon: ^^^
09:35 lizmat leont rather ^^^
09:36 scovit joined #perl6
09:37 leont And the default behavior is only triggered by Nil?
09:39 smls m: my %h is default(Nil); say %h<a><b> = 42;
09:39 camelia rakudo-moar 76f1d8: OUTPUT: «Attempted to ASSIGN-KEY to Nil.␤  in block <unit> at <tmp> line 1␤␤»
09:40 smls lizmat, leont: ^^ Beware that `is default` breaks autovovofication (which is implemented via Any)
09:41 smls m: dd Hash[Nil, Nil].new( (Nil) => Nil ).kv;
09:41 camelia rakudo-moar 76f1d8: OUTPUT: «(Nil, Any).Seq␤»
09:41 smls ^^ Also interesting...
09:42 andrzejku joined #perl6
09:42 smls leont: Well, the default if of course also triggered when accessing non-existing elements:
09:42 smls m: my %h is default(Nil); say %h<a>;
09:42 camelia rakudo-moar 76f1d8: OUTPUT: «Nil␤»
09:43 smls Don't know if there's anything else that triggers it.
09:44 ohmysummer joined #perl6
09:46 mr-foobar joined #perl6
09:55 piojo m: my \foo = Nil; my %hsh = (1, \foo); dd %hsh
09:55 camelia rakudo-moar 76f1d8: OUTPUT: «Hash %hsh = {"1" => \(Nil)}␤»
09:59 Cabanossi joined #perl6
10:08 margeas joined #perl6
10:15 mr-foobar joined #perl6
10:20 ohmysummer joined #perl6
10:23 samcv wooo i merged my collation stuff into moarvm. so soon it should be in rakudo bleed
10:24 zakame nice!
10:24 samcv 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 samcv yes! i'm excited :3
10:24 samcv was a lot of work. almost can't believe it's done
10:24 samcv but it is :)
10:25 samcv 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:26 samcv 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 ShalokShalom_ joined #perl6
10:27 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 samcv pretty proud of it
10:28 samcv some (maybe) interesting technical details here https://github.com/MoarVM/MoarVM/commit/866623d933246563a4ccc7d4001a3e5284cfcd03 i'll probably adapt that into some moarvm documentation
10:30 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:31 MasterDuke samcv++
10:33 zakame buggable: pizza samcv
10:33 buggable samcv, enjoy this slice of Hawaiian pizza, my friend! Yummy ?
10:33 samcv huggable, hug me
10:33 * huggable hugs samcv
10:33 samcv \o/
10:46 SCHAPiE joined #perl6
10:48 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:49 Ptolemarch joined #perl6
10:50 smls joined #perl6
10:52 smls samcv: Cool!
10:52 SCHAPiE joined #perl6
10:54 mr-foobar joined #perl6
10:54 moritz \o
10:54 smls samcv: This could replace the custom `latin1_decompose` in https://rosettacode.org/wiki/Natural_sorting#Perl_6, right?
10:55 samcv yep
10:55 samcv plus even better :3
10:55 Aaronepower joined #perl6
10:55 samcv interesting hadn't seen that before. so i guess it decomposes it or what?
10:56 samcv also in the future we may let you ignore spaces and punctuation and such
10:56 samcv if implemented it will even ignore the punctuation from ①
10:57 samcv i think. or some set of numbers that have extra collation elements due to how they are
10:58 samcv 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
11:02 smls timotimo: It should use .fc, right?
11:03 timotimo yep. or it should use coll instead of sort ;)
11:04 smls Yeah, probably best to rewrite the whole example with .coll once it's in an officially released Rakudo.
11:08 timotimo well, it already is, you just have to "use experimental" for it :) :)
11:09 Skarsnik joined #perl6
11:24 mr-foobar joined #perl6
11:26 samcv m: use experimental :collation; dd <Bubble Buße Bust ss sp spell start test zest finish finish>.collate
11:26 camelia rakudo-moar 9b4248: OUTPUT: «("Bubble", "Buße", "Bust", "finish", "finish", "sp", "spell", "ss", "start", "test", "zest").Seq␤»
11:26 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 rakudo-moar 9b4248: OUTPUT: «("Bubble", "Buße", "Bust", "finish", "finish", "sp", "spell", "ss", "start", "start", "Start", "START", "test", "zest").Seq␤»
11:27 samcv m: use experimental :collation; dd <ſ s ß st st ss u ú á a ū sv>.collate
11:27 camelia rakudo-moar 9b4248: OUTPUT: «("a", "á", "s", "ſ", "ss", "ß", "st", "st", "sv", "u", "ú", "ū").Seq␤»
11:28 Cabanossi joined #perl6
11:29 samcv m: use experimental :collation; say <① 1 9 ② 8 one hi>.collate
11:29 camelia rakudo-moar 9b4248: OUTPUT: «(1 ① ② 8 9 hi one)␤»
11:29 samcv :))
11:29 rindolf joined #perl6
11:30 samcv m: dd <ſ s ß st st ss u ú á a ū sv>.sort
11:30 camelia rakudo-moar 9b4248: OUTPUT: «("a", "s", "ss", "st", "sv", "u", "ß", "á", "ú", "ū", "ſ", "st").Seq␤»
11:30 Aaronepower joined #perl6
11:30 samcv or to see the old sorting ^
11:30 andrzejku joined #perl6
11:31 Geth ¦ doc: gfldex++ created pull request #1547: Better example for IO::Socket::Async, closes #1546
11:31 Geth ¦ doc: review: https://github.com/perl6/doc/pull/1547
11:37 espadrine joined #perl6
11:41 kaare_ joined #perl6
11:44 vendethiel- joined #perl6
11:49 ohmysummer joined #perl6
11:52 mr-foobar joined #perl6
11:58 Geth ¦ doc: gfldex++ created pull request #1549: doc Failure.new
11:58 Geth ¦ doc: review: https://github.com/perl6/doc/pull/1549
12:03 emeric joined #perl6
12:05 Aaronepower joined #perl6
12:12 Aaronepower joined #perl6
12:19 mr-foobar joined #perl6
12:21 Lac123 joined #perl6
12:22 Aaronepower joined #perl6
12:27 rightfold left #perl6
12:28 Aaronepower joined #perl6
12:28 Cabanossi joined #perl6
12:43 Aaronepower joined #perl6
12:46 ohmysummer joined #perl6
12:50 mr-foobar joined #perl6
12:54 Geth ¦ doc: 31d27f05ee | MasterDuke17++ (committed using GitHub Web editor) | doc/Language/performance.pod6
12:54 Geth ¦ doc: Fix table name in SQL profile example
12:54 Geth ¦ doc: review: https://github.com/perl6/doc/commit/31d27f05ee
12:57 pecastro joined #perl6
12:58 gfldex m: my &now = { constant &now = BEGIN &now; now.DateTime.hh-mm-ss() }; say now
12:58 camelia rakudo-moar 9b4248: OUTPUT: «Cannot invoke this object (REPR: Uninstantiable; Callable)␤  in block <unit> at <tmp> line 1␤␤»
12:58 gfldex m: my &now = { constant &now = &now; now.DateTime.hh-mm-ss() }; say now
12:58 camelia rakudo-moar 9b4248: OUTPUT: «Cannot invoke this object (REPR: Uninstantiable; Callable)␤  in block <unit> at <tmp> line 1␤␤»
12:59 gfldex m: my &now = { state &now = BEGIN &now; }; say now
12:59 camelia rakudo-moar 9b4248: OUTPUT: «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 #perl6
13:05 wamba joined #perl6
13:14 mr-foobar joined #perl6
13:19 moritz m: my &now = { state & = BEGIN &now; }; say now
13:19 camelia rakudo-moar 9b4248: OUTPUT: «(Callable)␤»
13:19 moritz m: my &now = { state & = BEGIN &OUTER::now; }; say now
13:19 camelia rakudo-moar 9b4248: OUTPUT: «(Callable)␤»
13:20 moritz m: my &now = { state & = BEGIN &OUTER::now; }; say now()
13:20 camelia rakudo-moar 9b4248: OUTPUT: «(Callable)␤»
13:20 pmurias joined #perl6
13:20 moritz m: my &now = { state & = BEGIN &OUTER::OUTER::now; }; say now()
13:20 camelia rakudo-moar 9b4248: OUTPUT: «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 :␤»
13:20 moritz m: my &now = { state & = BEGIN &CORE::now; }; say now()
13:20 camelia rakudo-moar 9b4248: OUTPUT: «(Callable)␤»
13:20 moritz m: my &now = { state & = BEGIN &CORE::now; }; say &now.^name
13:20 camelia rakudo-moar 9b4248: OUTPUT: «Block␤»
13:21 moritz m: my &now = { state & = BEGIN &CORE::now; }; say &now
13:21 camelia rakudo-moar 9b4248: OUTPUT: «-> ;; $_? is raw { #`(Block|62372456) ... }␤»
13:21 moritz m: my &now = { state & = BEGIN &CORE::now; }; say &now()
13:21 camelia rakudo-moar 9b4248: OUTPUT: «(Callable)␤»
13:21 moritz m: my &now = { state & = BEGIN &CORE::now; }; say &now()()
13:21 camelia rakudo-moar 9b4248: OUTPUT: «Cannot invoke this object (REPR: Uninstantiable; Callable)␤  in block <unit> at <tmp> line 1␤␤»
13:26 Aaronepower joined #perl6
13:29 |oLa| joined #perl6
13:29 setty1 joined #perl6
13:34 moritz oh
13:34 moritz m: say CORE::term<now>()
13:34 camelia rakudo-moar 9b4248: OUTPUT: «Cannot find method 'Nil' on object of type List␤  in block <unit> at <tmp> line 1␤␤»
13:34 moritz m: say CORE::term<now>
13:34 camelia rakudo-moar 9b4248: OUTPUT: «Nil␤»
13:34 moritz m: say &CORE::term<now>
13:34 camelia rakudo-moar 9b4248: OUTPUT: «Nil␤»
13:35 rindolf joined #perl6
13:35 Aaronepower joined #perl6
13:35 moritz m: say &term<now>
13:35 camelia rakudo-moar 9b4248: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤    term used at line 1␤␤»
13:35 moritz m: say &CORE::term:<now>
13:35 camelia rakudo-moar 9b4248: OUTPUT: «sub term:<now> () { #`(Sub|63325576) ... }␤»
13:36 moritz m: my &now = { BEGIN &CORE::term:<now>() }; say now()
13:36 camelia rakudo-moar 9b4248: OUTPUT: «Instant:1505050622.150288␤»
13:36 moritz m: my &now = { BEGIN &CORE::term:<now>() }; say now(); sleep 1; say now()
13:36 camelia rakudo-moar 9b4248: OUTPUT: «Instant:1505050632.637153␤Instant:1505050632.637153␤»
13:36 moritz gfldex: ^^
13:37 moritz m: sub term:<now>() { BEGIN &CORE::term:<now>() }; say now; sleep 1; say now
13:37 camelia rakudo-moar 9b4248: OUTPUT: «Instant:1505050672.066354␤Instant:1505050672.066354␤»
13:38 pecastro joined #perl6
13:41 Aaronepower joined #perl6
13:43 Cabanossi joined #perl6
13:49 smls joined #perl6
13:53 pyrimidine joined #perl6
13:59 Aaronepower joined #perl6
14:00 mr-foobar joined #perl6
14:08 Aaronepower joined #perl6
14:11 margeas joined #perl6
14:11 pmurias joined #perl6
14:15 Aaronepower joined #perl6
14:21 robertle joined #perl6
14:28 Cabanossi joined #perl6
14:30 mr-foobar joined #perl6
14:31 albongo joined #perl6
14:35 pyrimidi_ joined #perl6
14:44 |oLa|1 joined #perl6
14:47 mr-foobar joined #perl6
14:48 pilne joined #perl6
14:52 timotimo modeling data transfer objects for the heapanalyzer's result types is less simple than expected ...
15:04 Rawriful joined #perl6
15:06 zakharyas joined #perl6
15:06 llfourn joined #perl6
15:08 * timotimo super glad to see Christian Bartolomaeus go through RTs again
15:19 niceperl joined #perl6
15:35 pmurias joined #perl6
15:38 pyrimidine joined #perl6
15:47 mr-foobar joined #perl6
15:56 zakharyas joined #perl6
16:04 skids joined #perl6
16:09 tyil I'm making a bot with IRC::Client, which seems to run fine with gnu+linux, but dies when using freebsd
16:10 tyil http://termbin.com/efur
16:10 tyil this is the class I think is responsible: https://github.com/scriptkitties/musashi/blob/github-notifications/lib/Musashi/Github.pm6
16:11 tyil using a perl6 built with rakudobrew an hour or 2 ago
16:12 * 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?
16:13 tyil start used at line 15. Did you mean 'sort', 'spurt', 'sqrt'?
16:13 timotimo um, what
16:13 moritz tyil: what does perl6 --version say?
16:13 timotimo are you sure you're running an up-to-date rakudo?
16:13 tyil This is Rakudo version 2017.08-105-g9b42484a5 built on MoarVM version 2017.08.1-150-g0b81969d
16:13 moritz oh, might not be allowed to have parenthesis
16:13 timotimo ah, yes
16:14 timotimo m: start { say "hi" }
16:14 camelia rakudo-moar 9b4248: ( no output )
16:14 timotimo m: start({ say "hi" })
16:14 camelia rakudo-moar 9b4248: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤    start used at line 1. Did you mean 'sort', 'spurt', 'sqrt'?␤␤»
16:14 moritz so start { ... } instead of start({ ... })
16:14 tyil ok, lemme try
16:14 timotimo we could probably have a better error message for that?
16:14 tyil heh
16:14 tyil that seems to work
16:14 tyil why would it work with just start { ... }
16:15 tyil and can I still do something like my $thread = start { ... }
16:16 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
16:16 tyil it doesnt seem to start Bailador now though :<
16:16 timotimo hm, i imagine a cro plugin for irc could be written
16:17 tyil with the start { ... } block
16:17 timotimo ok, take the result of the start block and call .then({ .say }) on it
16:17 timotimo m: my $a = start { "oh hi" }; $a.then({ .say }); sleep 1
16:17 camelia rakudo-moar 9b4248: OUTPUT: «Promise.new(scheduler => ThreadPoolScheduler.new(initial_threads => 0, max_threads => 16, uncaught_handler => Callable), status => PromiseStatus::Kept)␤»
16:17 tyil but it's not supposed to return a result, it's supposed to keep a Bailador running
16:18 timotimo oh, more interesting would be the .result of it
16:18 timotimo so .result.say
16:18 timotimo start returns the promise immediately
16:18 timotimo m: start { die "oh no!" }; sleep 1
16:18 camelia rakudo-moar 9b4248: ( no output )
16:18 timotimo ^- when an exception is thrown, it'll be put into the promise's result, so you won't see it unless you look
16:19 timotimo m: my $promise = start { die "oh no!" }; $promise.then({ .result.say }); sleep 1
16:19 camelia rakudo-moar 9b4248: ( no output )
16:19 timotimo oh?
16:19 tyil hmm
16:19 timotimo m: my $promise = start { die "oh no!" }; await $promise.then({ .result.say });
16:19 camelia rakudo-moar 9b4248: OUTPUT: «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…»
16:20 timotimo (which is now the same as await $promise)
16:20 tyil it seems Bailador is giving me troubles too now 3:
16:20 timotimo mhm
16:21 timotimo well, it wasn't able to start up before, either
16:21 timotimo is bailador threadsafe at all?
16:21 tyil it was able to start up before on gnu+linux though
16:21 timotimo OK, the plot thickens :)
16:22 tyil the Thread.start({}) thing worked on my laptop
16:22 tyil the plot doesn't really thicken, its the first thing I said :p
16:22 tyil 18:09 <tyil> I'm making a bot with IRC::Client, which seems to run fine with gnu+linux, but dies when using freebsd
16:23 timotimo well, that it still fails that way (or a different way?) with start instead of Thread.start
16:24 tyil Thread.start resulted in the error I posted above
16:24 tyil even though it works as expected on gnu+linux (runs Bailador from inside the bot)
16:25 timotimo how does the problem look now? bailador just not answering on http?
16:26 tyil now its just a Bailador error, failing to start up: http://termbin.com/0xlc
16:26 tyil using `baile(8000)`
16:28 timotimo i must admit it has been a long, long while since i saw AUTOGEN show up anywhere
16:28 timotimo i don't even remember what it's for
16:28 tyil neither do I :<
16:29 tokomer joined #perl6
16:30 timotimo ok here's an idea
16:30 timotimo call app() right before the start {} block
16:30 moritz it's related to auto-generated protos for multi methods
16:30 timotimo it could be the multi in question is the "app" multi
16:31 tyil adding `app();` before start {... } doesn't seem to change the situation
16:31 mr-foobar joined #perl6
16:36 timotimo hm, maybe a different multi is at fault
16:37 timotimo but i'm not sure why the error happens in this situation at all
16:37 tyil me neither
16:37 stmuk_ tyil: 2017.08 had test failures on roast I noticed ... 2017.07 was ok
16:37 stmuk_ on FreeBSD I mean
16:37 tyil hmm
16:37 tyil I can try getting a different perl
16:39 domidumont joined #perl6
16:39 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:45 xiaomiao joined #perl6
16:49 zakame joined #perl6
16:52 yqt joined #perl6
16:52 teatime I wrote some Ruby today.  It made me pine for Perl6.
16:55 timotimo i read a bit of python the other day. same.
16:56 zakame same same
16:56 timotimo we're doomed to never like programming again except when we're allowed perl6 ;)
16:58 tyil stmuk_: same error on 2017.07
16:58 teatime hehe
16:59 timotimo .o( who will write the Like, Perl6 slang? )
16:59 stmuk_ odd
17:00 mr-foobar joined #perl6
17:04 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
17:04 bisectable6 smls, Output on both points: «「2」»
17:08 AlexDaniel smls: FWIW you may like “c: releases …” or “mch: …”. The last one is m: on *C*hristmas on *H*EAD
17:08 AlexDaniel mch: say '123' ~~ / :my $a=2; <{ '$a' }> /;
17:08 committable6 AlexDaniel, ¦2015.12,HEAD(9b42484): «「2」»
17:09 AlexDaniel and*
17:11 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 okl joined #perl6
17:11 AlexDaniel smls: bisectable goes back to 2014.01 but defaults to dwim-ish old=2015.12
17:11 ash_gti joined #perl6
17:11 AlexDaniel for example
17:12 AlexDaniel c: all say '123' ~~ / :my $a=2; <{ '$a' }> /;
17:12 committable6 AlexDaniel, https://gist.github.com/1df76358c7486886538f9ead60b13d1f
17:12 AlexDaniel and we can see when it changed
17:12 AlexDaniel bisect: old=2014.01 all say '123' ~~ / :my $a=2; <{ '$a' }> /;
17:12 bisectable6 AlexDaniel, Bisecting by exit code (old=2014.01 new=9b42484). Old exit code: 1
17:12 AlexDaniel oops
17:12 AlexDaniel extra “all” in there :)
17:13 bisectable6 AlexDaniel, bisect log: https://gist.github.com/de26d0b969772d86681088799f2c017a
17:13 bisectable6 AlexDaniel, (2015-08-13) https://github.com/rakudo/rakudo/commit/2f4291587b79135479ae0477295a5e8f6605e628
17:13 AlexDaniel bisect: old=2014.01 say '123' ~~ / :my $a=2; <{ '$a' }> /;
17:13 bisectable6 AlexDaniel, Bisecting by exit code (old=2014.01 new=9b42484). Old exit code: 1
17:14 bisectable6 AlexDaniel, bisect log: https://gist.github.com/3bfbdd10905aafbb93b7a468297bc96b
17:14 bisectable6 AlexDaniel, (2015-08-13) https://github.com/rakudo/rakudo/commit/2f4291587b79135479ae0477295a5e8f6605e628
17:14 bartolin smls++ # work on RT tickets
17:15 AlexDaniel oh… ok so this suffers from stuff changing multiple times in the given range
17:15 AlexDaniel (which is why it defaults to 2015.12 so that we skip all the GLR hell)
17:15 smls :)
17:15 AlexDaniel but that's ok, we just have to set new=
17:15 AlexDaniel bisect: old=2014.01 new=2015.05 say '123' ~~ / :my $a=2; <{ '$a' }> /;
17:15 bisectable6 AlexDaniel, Bisecting by exit code (old=2014.01 new=2015.05). Old exit code: 1
17:16 AlexDaniel in fact, I could've used a tighter range, but it will probably work
17:16 bisectable6 AlexDaniel, bisect log: https://gist.github.com/f5e8656490812f45aea6f75cd7388f4f
17:16 bisectable6 AlexDaniel, (2015-05-11) https://github.com/rakudo/rakudo/commit/f0e142b3a24e60f4bdde145286d508b916f3ecde
17:16 AlexDaniel alright, and we can double check
17:16 AlexDaniel commit: f0e142b3a2^,f0e142b3a2 say '123' ~~ / :my $a=2; <{ '$a' }> /;
17:16 committable6 AlexDaniel, ¦f0e142b3a2^: «===SORRY!=== Error while compiling EVAL_0␤Variable '$a' is not declared␤at EVAL_0:1␤------> anon regex { ⏏$a} «exit code = 1»» ¦f0e142b: «「2」»
17:17 AlexDaniel yep
17:17 smls AlexDaniel: Ah, that one sound about right from the commit title.
17:17 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:19 andrzejku joined #perl6
17:20 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:23 AlexDaniel smls++ # for doing this awesome work
17:23 AlexDaniel smls: also, consider participating in the next SQUASHathon as I guess we will be doing similar work :)
17:24 AlexDaniel squashable6: status
17:24 squashable6 AlexDaniel, Next SQUASHathon in 25 days and ≈16 hours (2017-10-07 UTC-12⌁UTC+14)
17:24 AlexDaniel https://github.com/rakudo/rakudo/wiki/Monthly-Bug-Squash-Day
17:24 ash_gti joined #perl6
17:26 smls Yes, hopefully I can participate.
17:28 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.
17:28 smls https://fail.rakudo.party/t/TESTNEEDED
17:29 AlexDaniel smls: also, if you come across a ticket that feels easier than others, mark it as LHF freely
17:29 AlexDaniel smls: hm. That's an interesting idea.
17:32 raschipi joined #perl6
17:37 raschipi m: use experimental :collation; <fi fi æ ae á a>.collate
17:37 camelia rakudo-moar 9b4248: ( no output )
17:38 raschipi m: use experimental :collation; <fi fi æ ae á a>.collate.say
17:38 camelia rakudo-moar 9b4248: OUTPUT: «(a á ae æ fi fi)␤»
17:38 raschipi samcv++
17:39 leont Nice
17:40 leont Can it do other collations as well?
17:41 samb1 left #perl6
17:41 raschipi m: use experimental :collation; dd <Bubble Buße Bust ss sp spell start test zest finish finish>.collate
17:41 camelia rakudo-moar 9b4248: OUTPUT: «("Bubble", "Buße", "Bust", "finish", "finish", "sp", "spell", "ss", "start", "test", "zest").Seq␤»
17:42 raschipi m: use experimental :collation; dd <ſ s ß st st ss u ú á a ū sv>.collate
17:42 camelia rakudo-moar 9b4248: OUTPUT: «("a", "á", "s", "ſ", "ss", "ß", "st", "st", "sv", "u", "ú", "ū").Seq␤»
17:42 raschipi Full implementation of the Unicode collation spec
17:43 Cabanossi joined #perl6
17:43 raschipi Well, except for regional variations...
17:45 BenGoldberg joined #perl6
17:47 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
17:48 moritz m: role R1 { method x() { ... } }; role R2 { has $.x }; class A does R1 does R2 { }
17:48 camelia rakudo-moar 9b4248: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Method 'x' must be implemented by A because it is required by roles: R1.␤at <tmp>:1␤»
17:48 moritz seems like "no"
17:48 moritz which looks like a bug to me
17:49 raschipi m: use experimental :collation; say <① 1 9 ② 8 one hi>.collate
17:49 camelia rakudo-moar 9b4248: OUTPUT: «(1 ① ② 8 9 hi one)␤»
17:49 moritz I think the code that generates accessors looks if a method of that name exists
17:49 moritz and if it does, no accessor method is generated
17:50 moritz I guess it needs to be taught to ignore stub methods
18:03 Actualeyes left #perl6
18:17 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:21 ash_gti joined #perl6
18:31 niceperl joined #perl6
18:34 moritz that works already
18:43 ash_gti joined #perl6
18:47 nadim joined #perl6
18:48 |oLa| joined #perl6
18:48 Geth ¦ perl6.org: 8edb7074bd | raiph++ (committed using GitHub Web editor) | source/index.html
18:48 Geth ¦ perl6.org: Update squashathon date
18:48 Geth ¦ perl6.org: review: https://github.com/perl6/perl6.org/commit/8edb7074bd
18:52 census joined #perl6
19:02 eliasr joined #perl6
19:07 rindolf joined #perl6
19:09 rindolf joined #perl6
19:12 gfldex lolibloggedalittle: https://gfldex.wordpress.com/2017/09/10/golfing-httpd/
19:15 moritz lolItweetedabitaboutit :-)
19:16 APic :-)
19:28 nadim joined #perl6
19:33 Aaronepower joined #perl6
19:36 Geth ¦ doc: fe93648c31 | (Philippe Bruhat (BooK))++ | doc/Language/functions.pod6
19:36 Geth ¦ doc: Add a missing newline before a code block
19:36 Geth ¦ doc: review: https://github.com/perl6/doc/commit/fe93648c31
19:44 tbrowder hi, #perl6
19:46 skids o/
19:48 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 tbrowder hi, skids!
19:49 tbrowder i will also try to simplify, but i haven't gone thet route yet.
19:50 tbrowder 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?
19:51 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
19:51 pilne that's fair too
19:52 pilne i wish i had more time and knowledge to really be able to dig in
19:52 pilne 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 (:
19:53 skids bartolin was trying to get rakudo-j into building condition a day or so ago.
19:54 tbrowder no, it's a string...got to go...back later
19:56 Geth ¦ doc: 5ae26188d8 | (Philippe Bruhat (BooK))++ | 5 files
19:56 Geth ¦ doc: Use "than" for comparisons (instead of "then")
19:56 Geth ¦ doc: review: https://github.com/perl6/doc/commit/5ae26188d8
19:57 lizmat BooK++  :-)
19:57 BooK was I fixing Dutchisms?
19:57 lizmat not sure
19:57 setty1 joined #perl6
19:58 lizmat the difference between then and than was hammered into my head quite severely by my english teacher  :-)
19:58 BooK than you forgot
19:58 BooK I'm not sure this is the best way for me to read the entire docs
19:59 BooK because when I found the first "then" I following by grepping for more
20:00 BooK btw, doc.perl6.org is super useful as a reference, but is there a recommended reading order for the more high level parts?
20:01 Aaronepower joined #perl6
20:02 moritz BooK: it's rather weak on the introductory part yet; that's where some of the books come in
20:03 moritz the goal of doc.perl6.org is to provide that as well, but we're not there yet
20:03 moritz and that is something that is (IMHO) done better by a single author than by a committee
20:13 Xliff joined #perl6
20:13 Xliff \o
20:13 * Xliff mutters "st0opid redskins"
20:13 Xliff :(
20:13 Xliff m: class A {}; my $a = A.new; say $a.elems;
20:13 camelia rakudo-moar 9b4248: OUTPUT: «1␤»
20:14 lizmat m: my $a; say $a.elems
20:14 camelia rakudo-moar 9b4248: OUTPUT: «1␤»
20:14 lizmat Xliff:  ^^  nothing to do with objects or classes
20:14 lizmat as scalar is a list with 1 element
20:14 Xliff m: use NativeCal; class A is repr('CStruct') { has int32 $.a; has int32 $.b }; my $a = A.new; say $a.elems;
20:14 camelia rakudo-moar 9b4248: OUTPUT: «===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…»
20:15 lizmat m: my $a = 42 but role { method elems { 42 } }; say $a.elems
20:15 camelia rakudo-moar 9b4248: OUTPUT: «42␤»
20:15 Xliff m: use NativeCall; class A is repr('CStruct') { has int32 $.a; has int32 $.b }; my $a = A.new; say $a.elems;
20:15 camelia rakudo-moar 9b4248: OUTPUT: «1␤»
20:15 lizmat Xliff: unless you override that
20:15 Xliff Yeah, but I am trying to find out why I get a MoarVM panic when I am using NativeCall.
20:15 Skarsnik interesting x)
20:16 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?
20:16 Xliff It's a large NativeCall project. There is no golf for this.
20:16 Xliff I am trying to see if I can make one. :/
20:17 Xliff But if you want the actual code, here it is: https://github.com/Xliff/p6-XML-LibXML/blob/master/t/01-html.t#L17
20:18 Xliff $doc is an xmlDoc which is defined here: https://github.com/Xliff/p6-XML-LibXML/blob/master/lib/XML/LibXML/CStructs.pm#L89
20:19 robertle joined #perl6
20:21 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?
20:21 Xliff Yes.
20:21 Skarsnik why not returning Perl6 XML stuff?
20:22 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
20:22 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.
20:23 Xliff Yeah, well FROGGS started this. I started helping him out by trying to port over most features from P5's XML::LibXML
20:23 Xliff It's more than just lib bindings you have to deal with.
20:24 Xliff P5 had tons of XS code to handle this.
20:24 Skarsnik I don't see the need x)
20:24 Xliff See the need for what?
20:25 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! :)
20:26 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.
20:26 Xliff You are correct, there are much easier ways to parse XML.
20:27 Xliff 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 #perl6
20:28 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 Xliff You have the 8000 line file. You should see what I mean. :P
20:28 Xliff There's more to libxml2 than parsing.
20:29 Skarsnik but your test make moar panic?
20:29 Xliff Yes
20:30 Xliff I'm assuming that it's something to do with not properly handing libxml2 structs.
20:31 Xliff But again, this code was working a year ago, so I need to figure out what changed and how to fix.
20:31 zakharyas joined #perl6
20:31 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)
20:32 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
20:32 Xliff Oh, are you actively working on gptrixie?
20:32 Xliff There was a size limit when I last used it.
20:32 gfldex lolibloggedagain: https://gfldex.wordpress.com/2017/09/10/we-need-to-siege-moar/
20:33 Xliff It would b0rk after processing a header chain of a certain size.
20:33 Xliff Smaller projects worked. Something like libxml2 wouldn't.
20:33 * 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
20:33 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
20:33 Xliff Solved that here.
20:34 Xliff We use base classes to represent the raw structs.
20:34 Xliff Then descendant classes to do the real work.
20:35 Skarsnik but yeah you should try it should be able to give you everything
20:36 Xliff Thanks, but we have that part done at this point.
20:36 Xliff Most of CStructs.pm and Subs.pm is what we'd get from trixie.
20:38 weabot is it just me or does the duckduckgo api not work?
20:39 lancew joined #perl6
20:39 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 rakudo-moar 7da0c2: OUTPUT: «A␤»
20:40 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 rakudo-moar 7da0c2: OUTPUT: «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 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 rakudo-moar 7da0c2: OUTPUT: «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:42 BooK in fact, there are like three possible syntax errors in Engligh: it/it's, your/you're and then/than
20:42 BooK grepping for it'?s now :-)
20:44 Skarsnik Xliff, how it panic btw? x)
20:48 skids bless only takes nameds.
20:48 Geth ¦ perl6.org: 16ac8764e3 | raiph++ (committed using GitHub Web editor) | source/index.html
20:48 Geth ¦ perl6.org: fix (my) typo
20:48 Geth ¦ perl6.org: review: https://github.com/perl6/perl6.org/commit/16ac8764e3
20:50 Xliff skids: So how do I init a subclass from a superclass and have rakudo report the subclass as the type?
20:51 skids Depends on whether you want a copy, or a runtie mixin.
20:52 Xliff Copy.
20:54 Geth ¦ doc: d4f98ca41e | (Philippe Bruhat (BooK))++ | 3 files
20:54 Geth ¦ doc: Use "its" for possessives (instead of "it's")
20:54 Geth ¦ doc: review: https://github.com/perl6/doc/commit/d4f98ca41e
20:54 Geth ¦ doc: 513db3e243 | (Philippe Bruhat (BooK))++ | doc/Language/io-guide.pod6
20:54 Geth ¦ doc: Use "it's" for "it is" (instead of "its")
20:54 Geth ¦ doc: review: https://github.com/perl6/doc/commit/513db3e243
20:56 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:59 TEttinger joined #perl6
21:04 Xliff OK. That's a pain in the but, though.
21:05 Xliff But what if the subclass has no attributes, but more methods than the superclass?
21:06 albongo Hi, I'm trying to get zef going on openbsd and it doesn't seem to work: https://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:07 albongo i don't really know the first thing about perl6 yet so any help debugging this would be appreciated
21:07 silug joined #perl6
21:08 albongo it's Rakudo 2017.02 on OpenBSD 6.1
21:08 albongo (using the package shipped by openbsd)
21:08 skids Xliff: doubtles there's a trick or two to be had in the meta api.
21:12 timotimo albongo: that rakudo is too old for the version of zef you have
21:12 timotimo you could try checking out a commit of zef from around february and see if that works
21:12 albongo timotimo: ah, right. thanks. I'm trying to avoid building rakudo since I don't have good hardware to do it on
21:12 timotimo though it'd of course be better if you had an up to date rakudo, for example the last rakudo star
21:13 timotimo 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 #perl6
21:14 timotimo i don't know about openbsd :(
21:14 timotimo https://github.com/nxadm/rakudo-pkg/releases - we have these, but they are all linux
21:14 albongo openbsd 6.2 should be around the corner, and hopefully that'll have a new rakudo
21:15 albongo maybe I'll install openbsd on a physical machine and produce some
21:15 moritz can you run Docker containers on OpenBSD?
21:15 timotimo ideally they'd ship a rakudo star instead of just rakudo, because that would have zef at the right version, for example
21:16 Xliff skids: Maybe some way to force a type change via nqp?
21:16 Xliff I will look into it. Thanks.
21:16 albongo moritz: if you fancy doing crazy things, yes: https://medium.com/@dave_voutila/docker-on-openbsd-6-1-current-c620513b8110
21:16 moritz albongo: then you can use the alpine-perl6 docker container; iirc it comes with zef out of the box
21:17 albongo that sounds like a crazy solution to this problem though
21:17 albongo if I wanted to run alpine linux I could just install it
21:18 timotimo don't think you'd want that :)
21:18 timotimo not only because you can't have spesh in 2017.08 on alpine because of too harsh stack size restrictions
21:19 albongo I could run virtualbox in docker and use that to run windows and just run my perl6 applications there
21:22 timotimo that sounds terrible d)
21:22 timotimo :)
21:25 albongo timotimo: this zef seems like it's (slowly) working, thanks!
21:25 albongo oh dear, "No extracting backend available"
21:25 skids Xliff: line 716 of Mu.pm is the default clone method... could be adapted.
21:25 albongo what does it want? I've got tar on the machine
21:26 timotimo i wonder ...
21:26 timotimo you should try the debugging related env vars that zef takes
21:27 timotimo like ZEF_PLUGIN_DEBUG though maybe what you actually want is --verbose or --debug
21:28 timotimo maybe all you actually need is --/cpan so it doesn't try to download distributions and instead does git clones
21:29 timotimo actually, i don't think a february zef even has the cpan stuff yet
21:30 Xliff skids: Will look. Thanks!
21:31 Xliff Skids: 716? Don't you mean 622?
21:32 skids not in my checkout...
21:32 Xliff https://github.com/rakudo/rakudo/blob/b597b7cd814ec19e57f8e34ace36be9811d72ba8/src/core/Mu.pm#L622 ??
21:32 albongo timotimo: I think I have found the problem: https://github.com/briandfoy/perl6-PrettyDump/blob/master/META6.json doesn't have a .git on the end of `source-url`, and this old zef doesn't like that
21:32 timotimo ah, i see
21:33 timotimo 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.
21:33 albongo I'm trying to install this module because it provides Test which a million different things depend on
21:33 timotimo what?!
21:34 albongo uh, i dunno
21:34 albongo it's what zef told me to do :(
21:34 timotimo Test is shipped by rakudo, if your rakudo tells me you don't have Test, something is going very wrong :(
21:34 albongo oh dear
21:34 timotimo so perl6 -e 'use Test' gives you an error?
21:35 albongo yeah, I get a ===SORRY!===
21:35 albongo there's no Test in /usr/local/share/perl6 either
21:35 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
21:35 timotimo on june 1st brian d foy committed that
21:36 Xliff skids: OK. Just out of curiosity, how would I do a runtime mixin?
21:36 Xliff I would then need a Role, right?
21:36 albongo timotimo: I think OpenBSD's rakudo is just shit
21:36 skids Right.
21:36 Xliff Crap.
21:36 timotimo could be :( :(
21:37 Xliff I may need to rethink this.
21:37 Xliff That actually might be the only way I can get this to work.
21:37 albongo timotimo: that's a right shame, I don't really want to rewrite this shiny async server in perl 5
21:37 Xliff I think what I really want is a way to turn an instance of class A into class B.
21:38 Xliff If in C++ or Java this would be a cast.
21:38 Xliff So "B b = (B)a"
21:38 timotimo what challenges would building rakudo on your openbsd give you?
21:38 albongo I only have about 300M free ram and the cpu is extremely slow
21:39 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
21:39 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?
21:39 Xliff BenGoldberg: Yeah. That's what I am starting to realize.
21:40 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
21:40 Xliff But then when typed, it would be "xmlDoc+{XML::LibXML::Document}"
21:40 Xliff Which might not be that bad since it will still smartmatch to XML::LibXML::Document, correct?
21:41 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 albongo timotimo: how much RAM would a whole build use?
21:42 timotimo not sure, haven't measured in a while
21:42 albongo right, thanks
21:42 albongo I've been thinking about putting openbsd on an old PC for a while, this is a good reason for it anyway :)
21:43 Xliff m: class A {}; role B { }; my $b = A.new but b; say $b.^name;
21:43 camelia rakudo-moar 7da0c2: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤    b used at line 1␤␤»
21:43 Xliff m: class A {}; role B { }; my $b = A.new but B; say $b.^name;
21:43 camelia rakudo-moar 7da0c2: OUTPUT: «A+{B}␤»
21:43 Xliff m: class A {}; role B { }; my $b = A.new but B; say $b.^name; say $b ~~ B;
21:43 camelia rakudo-moar 7da0c2: OUTPUT: «A+{B}␤True␤»
21:43 Cabanossi joined #perl6
21:44 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;
21:44 camelia rakudo-moar 7da0c2: OUTPUT: «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…»
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;
21:44 camelia rakudo-moar 7da0c2: OUTPUT: «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…»
21:45 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;
21:45 camelia rakudo-moar 7da0c2: OUTPUT: «cloning a CStruct is NYI␤  in block <unit> at <tmp> line 1␤␤»
21:45 Xliff ^^ rut roh
21:46 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;
21:46 camelia rakudo-moar 7da0c2: OUTPUT: «cloning a CStruct is NYI␤  in block <unit> at <tmp> line 1␤␤»
21:46 geekosaur albongo, sounds like that is out of date too; panda was what older distributions used, but it hasn't kept up with rakudo
21:46 skids Are both A and B CStruct?
21:46 Xliff B is a Role
21:47 skids No I mean before you decided to try using a role.
21:47 Xliff Yes.
21:47 albongo geekosaur: actual rakudo is ANCIENT too. I'll try and get it all updated :)
21:47 skids Then just nativecast.
21:47 Xliff LOL!
21:47 Xliff And here I was thinking that there *had* to be a better way.
21:48 Xliff skids: That was the original solution, but it doesn't seem to be working. Still reporting the superclass, not the casted class.
21:49 skids huh... I know I must do that in my xcb module...
21:49 timotimo switched the arguments to nativecast around?
21:50 timotimo so i thought i could use the heap snapshot profiler to figure out skarsnik's program's memory usage pattern
21:50 timotimo it tries to parse an xml file a hundred times
21:50 timotimo before it finished the first run it already ate about 8 gigs for the heap snapshot file %)
21:50 Xliff Yikes!
21:52 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;
21:52 camelia rakudo-moar 7da0c2: OUTPUT: «B␤»
21:53 skids Xliff: be aware of RT#130792
21:53 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=130792
21:58 dogbert2 joined #perl6
22:04 timotimo damn it, tmpfs - even though i have lots of zram - won't let me write more than ~7.9 gigs onto /tmp
22:06 timotimo at least this heap snapshot format compresses very well
22:10 Xliff skids: Good point, but I think a lot of these are going to have to be explicitly_managed() due to libxml2
22:14 ugexe m: keep()
22:14 camelia rakudo-moar 7da0c2: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤    keep used at line 1. Did you mean 'KEEP'?␤␤»
22:14 ugexe m: KEEP()
22:14 camelia rakudo-moar 7da0c2: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Undeclared name:␤    KEEP used at line 1␤␤»
22:14 timotimo m: KEEP { }
22:14 camelia rakudo-moar 7da0c2: ( no output )
22:15 ugexe if i was calling a routine, shouldnt it recommend routines?
22:15 albongo timotimo: what are you doing that requires 8g of tmpfs
22:16 timotimo albongo: i'm making a heap snapshot profile of a program that apparently creates a big amount of objects
22:16 timotimo and since the heap snapshot profiler takes one snapshot every time the GC runs ... yeah, it makes a lot of those
22:17 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 #perl6
22:17 albongo tmpfs has always been 0.5*RAM for me, but I don't have any computer with 8G ram :shrug:
22:18 ugexe m: say -> @_ [$, *@] { }()
22:18 camelia rakudo-moar 7da0c2: OUTPUT: «Too few positionals passed to ''; expected 1 argument but got 0␤  in block <unit> at <tmp> line 1␤␤»
22:18 timotimo the format is optimized for simple reading, and it wastes quite a lot of space with zeroes
22:19 timotimo which makes it rather compressible
22:19 albongo yeah but not very useful
22:20 albongo 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
22:20 timotimo at the moment i have an index at the end of the file
22:25 timotimo that mode is desirable anyway because that way you can process files from crashed processes
22:42 timotimo now the compressed snapshot collection is at 1.3 gigs :)
22:46 albongo Your dump of some program data is bigger than your entire genome
22:46 albongo (Uncompressed, that is)
22:48 albongo (Might not be actually. but who cares? it's useless pop science)
22:50 timotimo the genome isn't filled with consecutive T bases :P
22:55 timotimo but this has alerted me an important tuning knob the hapsnapshot profiler wants to have: only take snapshots after major collections
23:00 pecastro joined #perl6
23:01 cpage joined #perl6
23:02 bisectable6 joined #perl6
23:02 benchable6 joined #perl6
23:04 cpage__ joined #perl6
23:05 pyrimidi_ joined #perl6
23:17 MasterDuke joined #perl6
23:23 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:27 MasterDuke isn't the new format resilient to non-clean shutdowns?
23:27 timotimo it is. the parser doesn't handle it yet :)
23:28 MasterDuke ah
23:35 Xliff What signature would I use if I only want a method to accept a 1 or a 0
23:36 Xliff Does where take compound conditionals?
23:36 AlexDaniel m: sub foo($ where 1 | 0) { say ‘hello’ }; foo(0) # maybe this?
23:36 camelia rakudo-moar 7da0c2: OUTPUT: «hello␤»
23:37 Xliff AlexDaniel++
23:38 pyrimidine joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo