[00:00] *** lizmat joined [00:04] *** lizmat left [05:31] *** domidumont joined [05:38] *** domidumont left [05:39] *** domidumont joined [06:31] *** domidumont left [06:56] *** robertle joined [07:10] *** lizmat joined [07:13] *** ggoebel left [07:26] *** ggoebel joined [07:48] *** domidumont joined [07:53] *** brrt joined [07:53] ryu as source code repo: https://github.com/ulfjack/ryu [07:54] MasterDuke++, nice rabbit hole to fall into [08:16] *** robertle left [08:37] *** scovit left [09:13] *** lizmat left [09:14] *** lizmat joined [09:42] *** brrt left [09:53] *** zakharyas joined [09:54] *** robertle joined [11:44] *** brrt joined [11:47] *** zakharyas left [12:03] *** brrt left [12:21] *** zakharyas joined [13:18] *** lizmat left [13:27] *** zakharyas left [13:27] *** zakharyas joined [13:28] *** brrt joined [13:28] *** brrt left [13:55] *** lizmat joined [14:16] *** AlexDaniel left [14:16] *** AlexDaniel joined [14:17] *** zakharyas left [14:22] *** ChanServ sets mode: +o AlexDaniel [14:22] *** AlexDaniel changes topic to: https://github.com/moarvm/moarvm | IRC logs at http://colabti.org/irclogger/irclogger_logs/moarvm [14:22] *** ChanServ sets mode: -o AlexDaniel [14:29] *** scovit joined [14:35] m: my $a; $a = $a // 0; say $a [14:35] 2 Jun 2018 11:41Z scovit: a way to customize the error message from where constraints: class A { method c {} }; class B { method d {} }; my $e = A.new(); my $f = B.new(); sub ciao($g where so $g.^can("c") || die "Can't do c") {}; ciao($f);' [14:35] rakudo-moar bdbfee55f: OUTPUT: «0␤» [14:35] m: $ = $ // 0; say $ [14:35] rakudo-moar bdbfee55f: OUTPUT: «(Any)␤» [14:36] Do you know why? [14:38] m: for ^5 { say $++ ~ ' and ' ~ $++ } [14:38] rakudo-moar bdbfee55f: OUTPUT: «0 and 0␤1 and 1␤2 and 2␤3 and 3␤4 and 4␤» [14:38] Each anonymous variable is distinct [14:38] So you're talking about 3 different anonymous variablese [14:38] *variables [14:41] Ah thanks, I didn't get this. I thought that for convenience a $ was defined in each scope.. Instead $ is something different [14:42] .oO( we're all $ ) [14:44] :) it is also a good obfuscated way to define state variables [14:44] m: sub foo() { my $a := $; $a++; say $a; }; foo(); foo(); [14:44] rakudo-moar bdbfee55f: OUTPUT: «1␤2␤» [14:55] *** geekosaur left [15:08] *** geekosaur joined [15:25] *** ggoebel left [15:40] *** ggoebel joined [15:48] *** domidumont left [16:08] *** AlexDaniel`` left [16:08] *** wictory[m] left [16:08] *** ilmari[m] left [16:11] *** evalable6 left [16:11] *** camelia left [16:11] *** greppable6 joined [16:11] *** evalable6 joined [16:14] *** MasterDuke left [16:15] *** camelia joined [16:23] *** robertle left [16:37] *** wictory[m] joined [16:44] *** domidumont joined [16:51] *** domidumont left [17:08] *** shareable6 joined [17:09] *** undersightable6 joined [17:18] *** AlexDaniel`` joined [17:18] *** ilmari[m] joined [17:46] *** AlexDani` joined [17:46] *** AlexDaniel left [17:50] *** lizmat left [17:52] *** AlexDani` is now known as AlexDaniel [18:51] ¦ MoarVM: 213f32324a | (Jeremy Studer)++ | 3 files [18:51] ¦ MoarVM: Change getsignals output from hash to array [18:51] ¦ MoarVM: [18:51] ¦ MoarVM: Changed the output of getsignals from a hash to an array with signal [18:51] ¦ MoarVM: names interleaved with signal values. [18:51] ¦ MoarVM: [18:51] ¦ MoarVM: The purpose of this is to allow for a more consistent ordering of [18:51] ¦ MoarVM: signals when exposed to the HLL. [18:51] ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/213f32324a [18:51] ¦ MoarVM: 943980b3de | (Jeremy Studer)++ | 2 files [18:51] ¦ MoarVM: JIT compile getsignals [18:51] ¦ MoarVM: [18:51] ¦ MoarVM: Although this probably isn't likely to be part of any hot code path, [18:51] ¦ MoarVM: adding JIT support for the getsignals op. [18:51] ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/943980b3de [18:51] ¦ MoarVM: 6302ca74ee | (Aleks-Daniel Jakimenko-Aleksejev)++ (committed using GitHub Web editor) | 5 files [18:51] ¦ MoarVM: Merge pull request #870 from jstuder-gh/sig_hash_to_arr [18:51] ¦ MoarVM: [18:51] ¦ MoarVM: Change getsignals output from hash to array [18:51] ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/6302ca74ee [19:00] *** japhb joined [19:08] *** Ven`` joined [19:10] *** Ven`` left [19:10] *** Ven`` joined [19:11] *** Ven`` left [19:11] *** Ven`` joined [19:13] *** Ven`` left [19:14] *** Ven`` joined [19:16] *** Ven`` left [19:16] *** Ven`` joined [19:18] *** Ven`` left [19:19] *** Ven`` joined [19:26] *** Ven`` left [19:27] *** Ven`` joined [19:31] *** Ven`` left [19:32] *** Ven`` joined [19:33] *** Ven` joined [19:36] *** Ven`` left [19:37] *** lizmat joined [19:38] *** Ven` left [19:40] *** Ven`` joined [19:41] *** Ven`` left [19:50] *** zakharyas joined [19:56] *** japhb left [20:37] *** zakharyas left [20:48] *** brrt joined [20:49] *** AlexDaniel`` left [20:49] *** wictory[m] left [20:49] *** ilmari[m] left [20:50] \o [20:51] *** reportable6 left [20:52] *** japhb joined [20:52] *** coverable6 joined [20:52] *** quotable6 joined [20:52] *** reportable6 joined [20:52] *** shareable6 left [20:59] brrt: o/ [20:59] https://perlmonks.org/?node_id=1216491 # segfaulting Perl 6 [21:02] :'-( [21:02] i'll see what i can do [21:02] well, it's basically the known issue that adding keys to a hash is not threadsafe [21:02] and racy [21:04] hmmmmmm [21:04] i'm not fully convinced we want to pay the price of a concurrent hashmap for all cases [21:05] well, it's bad that it segfaults / crashes [21:05] being able to trivially do that, is sorta bad PR [21:05] yeah, i understand [21:05] but I think jnthn had ideas about that for the future [21:06] I *think* it only happens when two threads attempt to add a key at the same time [21:06] there's things you can do to make it never crash (but still racy and quite possibly memory-leaking) [21:08] I think I can live with leaking and racy, and not crashy :-) [21:10] Well, exception crashy is acceptable, segv not [21:10] *** wictory[m] joined [21:11] ok, exception would be fine by me as well :-) [21:11] Well, you won't be getting a reliable exception, data loss will be equally likely. :) [21:11] (Basically, I figure we can detect concurrent resize attempts) [21:11] the thing is that I don't know how to make that exception crashy *without* some form of atomic-cas or locking [21:11] well, as long as something can be caught [21:12] jnthn: having not looked at uthash at all, are concurrent resize attempts our biggest problem? [21:12] i imagine that if uthash is linked there can be some dragons there [21:13] brrt: The scheme I was figuring on is that we allocate a blob of memory, make sure to never leave its bounds, and then 1) free it using the FSA on resize/growth, and 2) throw if we see the pointer change (which you could do as an atomic op) [21:13] also, maybe (probably?) the VM should expose a concurrent hash map [21:13] No, we're not putting more data structures in at VM level. [21:14] Hashes are really darn useful as a VM/HLL interface so I'll live with that :) [21:14] And arrays you kinda have to [21:14] As for uthash - yes, it's a linked thing, which is why it can't really stay in the long run :) [21:15] Also it's not really memory efficient [21:15] I've been thinking of a hash table design that enables us to do links + big-blob allocations [21:16] as in, preallocated slots with links (and a tiny table) [21:17] Yeah, there's plenty we can do :) [21:20] *** robertle joined [21:58] https://perlmonks.org/?node_id=1216507 # my reply [22:07] hmm. I kind of wish you *hadn't* written the first bit though :-) [22:08] because that idiom does not at all dwym [22:09] indeed, but that was the point :-) [22:09] it runs to completion and *still* gives the wrong answer :-) [22:09] what jnthn was saying in his blog post: https://6guts.wordpress.com/2014/04/17/racing-to-writeness-to-wrongness-leads/ [22:09] over 4 years ago already [22:10] afk& [22:12] *** MasterDuke joined [22:27] I like how I put the words in the post title in an somewhat broken word order as a kind of meta-pun :P [22:28] *** robertle left [22:33] i didn't know that was considered wrong [22:34] It's not wrong so much as awkwarder :) [22:37] i'd have called it "poetic" [22:37] :) [22:40] *** brrt left [22:41] same [22:41] or rhetorical, since prose [22:47] *** lizmat left [22:50] *** yoleaux joined [22:53] *** lizmat joined [23:16] *** wictory[m] left [23:37] *** wictory[m] joined [23:41] *** Kaiepi left