01:12 BinGOs_ joined 01:23 ilmari joined, JimmyZ joined 01:26 BinGOs joined 01:28 tbrowder joined 02:46 dalek joined, JimmyZ joined 02:51 ilbot3 joined 02:54 tbrowder joined 03:32 stmuk_ joined 07:23 domidumont joined 07:28 domidumont joined
dalek arVM/even-moar-jit: 1a17d75 | brrt++ | src/jit/ (3 files):
PHI node resolution just works, apparently

In a surprise plot twist, merging live ranges seems to just work, even though it includes destructive merging of linked lists.
07:57
yoleaux2 8 Jan 2017 21:04Z <AlexDaniel> dalek: We like dogfood. Change the webhook to geth.perl6.party/?chan=#perl6-dev (or #moarvm for moarvm), Content-type: application/json and "Send me everything."
08:17 zakharyas joined 08:22 brrt joined
brrt good * #moarvm 08:22
samcv .ask jnthn do you think having defined synthetic graphemes for emoji ZWJ sequences would be feasible? would be good to be able to do "\c[zwj name here]" or do .uniname for zwj 09:25
yoleaux2 samcv: I'll pass your message to jnthn.
samcv "\c[man student: medium-light skin tone]" for example 09:26
brrt ohai samcv 09:56
contrary to my surprise PHI node handling Just Worked
this despite depending on a destructive merge algorithm
samcv brrt, PHI? 10:11
brrt it's terminology for 'special' fake nodes in a single-static-assignment graph to allow a value to 'derive' from multiple definitions 10:12
e.g. in the following code:
my $a; if (rand() > 0.5) { $a = 5; } else { $a = 42; } say $a; 10:13
the value of $a could come from the first block of the IF or the second
in SSA form, a value is defined only once
so to allow for the different flow control possibilities, after the if/else blocks, $a is 'replaced' by a value with a PHI node that includes both 10:14
better to put it this way
the code below is transformed to:
my ($a1, $a2, $a3); if (rand() < 0.5) { $a1 = 5; } else { $a2 = 42; } $a3 = PHI($a1,$a2); say $a3 10:15
the PHI function/node 'resolves' to whichever of $a1, $a2 that was actually taken 10:16
hence, it's virtual
what it means is that - depending on the implementation an requirements - the register allocator might need to insert a copy instruction
otherwise, it needs to make sure that both $a1 and $a2 are assigned to the same register (or storage location) 10:17
makes sense? 10:18
jnthn oh wtf, MSVC doesn't support 0b10101011 notation in C? :/ 11:02
yoleaux2 09:25Z <samcv> jnthn: do you think having defined synthetic graphemes for emoji ZWJ sequences would be feasible? would be good to be able to do "\c[zwj name here]" or do .uniname for zwj
samcv morning jnthn
jnthn morning o/
Well, nearly afternoon here by now :)
nwc10 good *, jnthn 11:09
dalek arVM: 5441e8f | jnthn++ | src/strings/utf8_c8.c:
Fix MSVC build.

It doesn't support the 0b syntax for binary numbers.
11:17
jnthn That was not the problem I expected when looking into porting $dayjob code to run on Windows too :P 11:18
samcv jnthn, i'm about to go to bed. any idea on what i said 11:25
<yoleaux2> 09:25Z <samcv> jnthn: do you think having defined synthetic graphemes for emoji ZWJ sequences would be feasible? would be good to be able to do "\c[zwj name here]" or do .uniname for zwj
jnthn samcv: I'm not sure about predefining them. I think the .uniname case is easy enough to generate on-demand (and cache). The other direction is more interesting... Does the Unicode spec define an algorithm for generating/parsing such names? 11:27
samcv uhm 11:28
well they have names
in the emoji zwj file
jnthn They gave names to sequences of codepoints?
samcv yes
jnthn o.O
samcv aye
jnthn Why didn't they just define new codepoints argh :P
samcv uhm cause then there'd be like so many
jnthn Oh, it's a combinatoric thing? :)
samcv yeah 11:29
www.unicode.org/Public/emoji/5.0//e...uences.txt
also uhm
there's more names too. not in the zwj file of multiple codepoints
jnthn heh
samcv www.unicode.org/Public/emoji/5.0/em...uences.txt 11:30
they don't have ZWJ in them tho
but they are still sequences
gems such as Mrs. Claus: light skin tone
what else would we do without such an emoji?
brrt MSVCā€” :-( 11:31
jnthn Not get our Christmas pressies, I guess... :P
I'm not keen on us pre-generating synthetics for these, but I'm fine with us supporting this stuff...somehow. Is uniname and \c[...] an OK interface for this, or will we risk conflicts?
samcv no conflicts 11:32
i'm pretty sure. also emoji are all defined with lowercase names
jnthn I guess if we are asked for the name of a synthetic, then we can go and locate the appropraite name in the table and cache the MVMString * of it in the synthetic 11:33
If it exists
Oh but
This won't work out
uniname/uninames is defined as a codepoint-level operation
So it works at NFC level, not char level
samcv at least now it is :P
heh
jnthn Yes, but we've explicitly documented it that way. :)
samcv for perl 6? or what? 11:34
mvm?
jnthn Yes.
For Pelr 6
*Perl 6
samcv well that is somewhat shortsighted though cause in 100 years
there will probably be more than just emoji with their own names
for multi codepoints
heh
jnthn I'm not saying we shouldn't have a character names mechanism, just that uninames can't do both at once. 11:35
samcv uhm
but....
lizmat unichar() anyone :-)
samcv uninames doesn't go by codepoint though
jnthn We've pretty much reserved the "uni" for codepoint level things
It does
samcv it goes by graphemes does it not?
hm
m: "šŸ’ā€ā™€ļø".uninames.say 11:36
camelia rakudo-moar fbbe44: OUTPUTĀ«(INFORMATION DESK PERSON ZERO WIDTH JOINER FEMALE SIGN VARIATION SELECTOR-16)ā¤Ā»
samcv ah so it does
jnthn Yeah
samcv m: "šŸ’ā€ā™€ļø".chars.say
camelia rakudo-moar fbbe44: OUTPUTĀ«1ā¤Ā»
samcv ye
jnthn Which is useful.
It just depends what you want :)
I kinda like that uninmaes is codepoint level though...it goes nicely together with the Uni type being codepoint level
samcv yeah true
but also limiting 11:37
codenames would be more precise
jnthn Well, nothing stops us introducing charnames to mean the other thing.
samcv true
jnthn Modulo filtering it through TimToady++ for a name check :) 11:38
samcv heh
jnthn Interestingly, \c[...] for the other direction doesn't have this problem, it seems :)
samcv se we could easily add that in?
jnthn Though I do very slightly fear the Unicode folks introducing conflicts in the future.
samcv of names?
well we already have conflicts :P
jnthn Between codepoint names and these sequence names, yes. 11:39
Yes, I know, that's why I'm rather keen for us to avoid more of them :P
samcv since we use unicode 1 and unicode names
which is sad
but i don't see unicode introducing conflicts between names
since they explicitly do not do that
which is why unicode 1 names are shitty
jnthn OK, if they've said they won't... :) 11:40
samcv not sure about emoji though. but otherwise
they *probably* won't with emoji names either
jnthn If we're not sure, we could always pick \g[...] (for grapheme) or something
samcv that seems like just it would totally go against everything they stand for
i will do more research 11:41
or maybe email them
jnthn Or make \c[...] do codepoints and sequences, and then \u[...] is explicitly codepoints and \g[...] explicitly grapheme sequences or something...
samcv if they don't specify it. at least to get their intention
jnthn *nod*
Yeah, sounds good
samcv ok sleep time :-D 11:43
lizmat good night, samcv 11:44
brrt good night yes 11:46
note to self
usually live ranges expire just prior to their last use (which allows registers to be reused, usually useful) 11:47
however, with ARGLIST references, that isn't really what you want, because we want to be able to 'push' register assignment 'backwards' 11:48
ohā€¦ wait a minute
that is not going to be safe
because it may be that if i push a register requirement 'backwards' in time, that i inadvertantly create a conflic with a past live range that has already expired 11:49
so either i assign a register requirement earlier. or i insert a copy after
hmmmpf
brrt must consider that for a bit
jnthn 'night, samcv 11:52
13:03 brrt joined 14:13 brrt joined 14:21 Geth joined 14:30 Geth joined 14:34 Geth joined 14:37 Geth joined 14:38 Geth joined 14:40 Geth joined 15:06 FROGGS joined 16:20 geekosaur joined
dalek arVM/even-moar-jit: fb2f6e1 | brrt++ | docs/jit/plan.org:
Update plan

ARGLIST handling needs some planning before it will work properly.
16:35
17:35 stmuk joined 17:36 FROGGS joined 17:39 pyrimidine joined 17:41 zakharyas joined
TimToady for the record, I'm fine with ".charnames" 18:18
yoleaux2 2 Jan 2017 15:34Z <notviki> TimToady: is Pod supposed to allow arbitrary code to be run? For example, right now I can stuff a BEGIN block into table :config and run anything I want. Is that the idea or should it be just quoted text? RT#130477
6 Jan 2017 18:45Z <MasterDuke> TimToady: what do you think about github.com/rakudo/rakudo/pull/990? irclog.perlgeek.de/perl6-dev/2017-...i_13865466 and irclog.perlgeek.de/perl6-dev/2017-...i_13871168 for some background
notviki hehe
Any time TimToady says something, he gets bot attacked :) 18:19
TimToady that'll teach me not to take vacations...
the question with Pod is whether the surprise factor rises to the level of a security issue, about which I have no opinion yet 18:22
it kinda depends on how the dox are actually distributed to the end user, who might expect a degree of staticness that Pod doesn't have 18:24
if we translate to html and give that to users, that seems fine
18:25 domidumont joined
TimToady if we expect users to run arbitrary Pod from across the network, that's a bit more problematical 18:25
jnthn Perhaps the issue is that users won't really thinking of Pod as something they run, but rather as something that is rendered for them to view. 18:40
That is, they expect Pod is operated on, not operating.
*be thinking 18:41
And yes, there's a ton of precedent for documents that run stuff. doc.perl6.org runs JavaScript, PostScript is a Turing Complete language. 18:43
TimToady that's what I was saying
it's not that it's bad, but that it can be used badly :)
jnthn Aye
19:19 pyrimidi_ joined 19:32 pyrimidine joined 19:52 pyrimidine joined 20:02 pyrimidine joined 20:21 pyrimidine joined 22:36 pyrimidine joined 23:05 pyrimidine joined