Welcome to the main channel on the development of MoarVM, a virtual machine for NQP and Rakudo (moarvm.org). This channel is being logged for historical purposes.
Set by lizmat on 24 May 2021.
04:04 nebuchadnezzar left 07:35 nebuchadnezzar joined 08:46 vrurg left 10:00 sena_kun joined
lizmat I wonder, could there be a way to create a nqp::op that would return an int for the currently active thread ? 14:02
14:16 vrurg joined
jnthn $ raku -e 'use nqp; say nqp::threadid(nqp::currentthread())' 15:08
$ raku -e 'use nqp; await start { say nqp::threadid(nqp::currentthread()) }' 15:09
lizmat: Like ^^ ?
[Coke] jnthn++ # Hi! 15:19
japhb \o/ Worth(ington) waiting for 15:47
lizmat jnthn: question: is that cheap or not? 15:53
reason I'm asking is thinking how feasably it would be to make $/ an array under the hood, and use the threadid as an index into it 15:54
probably a bad idea... but still :-)
alternately, being able to insert a "my $/" into a clone of a block at runtime
16:34 [Coke] left 17:58 Voldenet_ joined 17:59 Voldenet left, Voldenet_ is now known as Voldenet 18:07 [Coke] joined 18:12 Voldenet left, Voldenet_ joined, Voldenet_ is now known as Voldenet 18:40 [Coke] left 18:42 [Coke] joined
MasterDuke those are pretty cheap. `my int $a; my int $i := 0; my int $s := nqp::time(); $a := nqp::threadid(nqp::currentthread()) while $i++ < 100_000_000; say(nqp::time() - $s); say($a)` is only about 3.5x longer than `my int $a; my int $i := 0; my int $s := nqp::time(); $a := $i while $i++ < 100_000_000; say(nqp::time() - $s); say($a)` 19:23
ugexe is thread.id safe to reuse like that? i thought it had to be more like nqp::objectid($*THREAD) 20:06
i don't remember why i think that though 20:08
vrurg Best is $*STACK-ID. A thread may change, but that is guaranteed to be unique per call stack. 20:46
ugexe i think the question is if $*THREAD.id can be relied on to always identify the same thread 20:50
vrurg I don't think it makes sense to have $/ bound to a thread because then same callstack could end up using different $/ in the same frame. 20:52
23:22 sena_kun left
lizmat yeah, that's probably a bad idea 23:35
now: inserting a 'my $/' into a cloned block at runtime 23:36