|
00:30
ilbot3 joined
02:15
tokuhiro_ joined
02:33
tokuhirom joined
02:40
tokuhirom joined
02:47
ilbot3 joined
03:16
tokuhiro_ joined
05:21
vendethiel joined
07:05
FROGGS joined
08:00
TimToady joined
09:07
KDr2_ joined
09:13
zakharyas joined
09:32
tokuhiro_ joined
09:36
kjs_ joined
09:45
brrt joined
|
|||
| brrt | good * #moarvm | 09:45 | |
| what, a SEGV in moar, that isn't sensistive to either spesh or jit | 09:47 | ||
| :-o | |||
| that is remarkable | |||
| lizmat | brrt: you mean the one I rakudobugged yesterday ? | 09:59 | |
| timotimo | used to be much easier to do before we put more and more MVM_isnull checks into interp.c :) | 10:00 | |
| brrt | i dunno lizmat, maybe that one | 10:02 | |
| lizmat | m: use nqp; class A { has str $!a; method BUILD() { nqp::chars($!a) } }; A.new | 10:03 | |
| camelia | rakudo-moar 2856ed: OUTPUT«(signal SEGV)» | ||
| brrt | no, that's a different one | 10:05 | |
| oh, that looks bad | 10:06 | ||
| although that's probably just a NPE? | |||
| timotimo | isn't that just another point where we ought to check MVM_isnull? | ||
| m: use nqp; nqp::chars(nqp::null); | |||
| camelia | rakudo-moar 2856ed: OUTPUT«Cannot unbox a type object in block <unit> at /tmp/BJPfhs5uuV:1» | ||
| timotimo | that potentially gets hllmap'd? | ||
| lizmat | I think it's a missing initialization for native str on attributes | 10:07 | |
| timotimo | mhm | ||
| lizmat | m: use nqp; my str $a; say nqp::chars($a) # no problem here | ||
| camelia | rakudo-moar 2856ed: OUTPUT«0» | ||
| timotimo | mhm | ||
| jnthn | m: use nqp; nqp::chars(nqp::null_s) | 10:09 | |
| camelia | rakudo-moar 2856ed: OUTPUT«(signal SEGV)» | ||
| jnthn | ah, that | ||
| brrt | :-) | ||
| timotimo | haha, i thought about using null_s, but i expected that *that* wouldn't be problematic, compared to nqp::null | ||
| jnthn | m: use nqp; nqp::codes(nqp::null_s) | 10:39 | |
| camelia | rakudo-moar 2856ed: OUTPUT«===SORRY!===No registered operation handler for 'codes'» | ||
| dalek | arVM: fa03d65 | jnthn++ | src/strings/ops. (2 files): Fix SEGV on nqp::chars on a null string. |
10:41 | |
| jnthn | lizmat: ^^ should fix the SEGV | 10:42 | |
| Though prolly not the attr init issue | |||
| jnthn assumes there's a ticket tracking it | 10:43 | ||
| lizmat | #126492 | 10:44 | |
| synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=126492 | ||
| jnthn | Cool | ||
| ah, eek | 10:46 | ||
| The test I've busted in nqp is the one for nqp::readlinefh, which doesn't understand the \r\n synthetic... | 10:47 | ||
|
10:49
kjs_ joined
|
|||
| jnthn | Ah, and that's why the Rakduo build is busted | 10:54 | |
| Gee, \r\n is quite the can of worms | 11:14 | ||
| So far it's basically brought up 2 other issues that I really need to deal with. | |||
| (That were known, and one of them is on the xmas list too) | |||
| lizmat | I guess the \r\n synthetic is troublesome because it need to be part of nqp::const::CCLASS_WHITESPACE ? | 11:27 | |
| *needs | |||
| perhaps fixable by making it always synthetic -1 ? | 11:28 | ||
| jnthn: ^^^ | 11:29 | ||
| jnthn | lizmat: Actually that bit is already fine | ||
| lizmat: 'cus graphemes take the properties of the base char | 11:30 | ||
| And \r is whitespace | |||
| lizmat | ah, ok :-) | ||
| jnthn | That's one of the few problems we don't have :) | ||
| lizmat | :-) | ||
.oO( looking for problems in all the wrong places ) |
|||
| jnthn | The one I'm dealing with now is mostly 'cus I just put off dealing with RT #122971 | ||
| synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=122971 | ||
| jnthn | That is, separator handling for reading line by line has always been a "quick thing that'll work for hacky reasons" | 11:31 | |
| lizmat | ok, then maybe also consider putting in :chomp at the MvM or nqp level ? | ||
| jnthn | Yeah, that's in The Plans | 11:32 | |
| lizmat | fwiw, we have a working IO::Handle.split that takes regexes | ||
| jnthn | Though I was planning to work on I/O things *next* week, not this one :) | ||
| lizmat | so, if we have a :nl that is a regex, we can refer to that at the rakudo level | ||
| jnthn | aha | 11:33 | |
| But for non-regex ones, best to leave it to the guts | |||
| lizmat | yeah, because IO::Handle.split("\n") currently performs better than .lines, because of the :chomp at rakudo level | ||
| jnthn | Wow :) | 11:35 | |
| The thing is | |||
| the .chomp doesn't actually work | |||
| The moment you pick a separator that isn't \n | |||
| So it's gotta go anyway | |||
| lizmat | $ 6 'my @a = "words".IO.open.split("\n")' | 11:36 | |
| real0m0.651s | |||
| $ 6 'my @a = "words".IO.open.lines' | |||
| real0m1.230s | |||
| jnthn: indeed :-) | |||
|
11:48
tokuhiro_ joined
12:10
kjs_ joined
|
|||
| dalek | arVM: 65bcb12 | jnthn++ | src/ (11 files): Start refactoring I/O handling of line separators. Introduce a new data structure that can hold multiple multi-grapheme separators. Update the decoders themselves to know about it. No semantic changes so far; this is just an enabling refactor. |
12:16 | |
| arVM: 81fb7c1 | jnthn++ | src/ (7 files): Refactor handles for new separator data structure. Again, no intended semantics changes in this patch. However, we do now preserve the full set of graphemes in multi-grapheme separators, to later enable full handling of this case (for now, only the handling of multiple separators is going to be used, as part of the \r\n grapheme change). |
12:29 | ||
| arVM: d87a5a0 | jnthn++ | src/moar.c: Set up NFG subsystem before I/O handles. So we'll be able to compute the \r\n synthetic when setting up the default separators on the standard handles. |
12:41 | ||
|
12:59
tokuhiro_ joined
13:12
tokuhirom_h joined
|
|||
| dalek | arVM: a5f1971 | jnthn++ | src/io/syncfile.c: Set default separator on syncfile handle. |
13:40 | |
| arVM: 47bb37e | jnthn++ | src/strings/decode_stream.c: Include \r\n synthetic in default separators. |
|||
| [Coke] wonders if this is going to screw up rj at all. | 13:42 | ||
| jnthn | [Coke]: I'm doing my best to not do so | ||
|
13:43
kjs_ joined
|
|||
| jnthn | (e.g. write code in NQP/Rakudo that is open to either case) | 13:43 | |
| [Coke] | jnthn++ I figured you were, just wasn't sure if we would soon hit the "jvm must now implement NFG etc." stage. :) | 13:45 | |
| psch | tangentially related, in how far is NFG involved with unicode properties? e.g. Lr as a composite property isn't on jvm 1.7 at least, not sure about 1.8 | 13:46 | |
| jnthn | psch: The synthetics inherit their properties from the base grapheme, so far. | 13:47 | |
| psch | jnthn: so we could be fine with building e.g. Lr from Ll, Lu and Lt manually? | 13:48 | |
| that's S05-mass/properties-general.t, for reference | 13:49 | ||
| jnthn | psch: Well, one option is to steal MoarVM's Unicode database script, hack it to spit out Java instead, and ship our own Unicode database. | ||
| psch | i suppose something like that had happened in the past. at least i hope no one wrote the 114 lines of static initialization in Ops.java manually... | 13:52 | |
| jnthn | I don't think I'd have had the patience ;) | ||
| Phew, I've got a Rakudo built using the \r\n -> 1 grapheme | 13:53 | ||
| psch | anyway, yeah, i think not having to rely on oracle doing what we'd like to be right wrt unicode is probably saner | 13:54 | |
| nwc10 | you mentioned re-bootstrap - is that likely within the next day or two? | ||
| [Coke] | m: say ?"\r\n".chars == 1 | 13:55 | |
| camelia | rakudo-moar ba7027: OUTPUT«True» | ||
| [Coke] | m: say "\r\n".chars == 1 | ||
| camelia | rakudo-moar ba7027: OUTPUT«False» | ||
| [Coke] | <archer>Precedence!</archer> | ||
| jnthn | m: say "\r\n".chars | ||
| camelia | rakudo-moar ba7027: OUTPUT«2» | ||
| jnthn | That's 1 locally :) | ||
| nwc10 | are we also going to have NFT (Normalisation Form Twitter), which means that absoluately any Perl 6 program can fit into a single Tweet? :-) | 13:56 | |
| jnthn | nwc10: Not sure; I need to look at $other-thing for a bit this evening and then it'll be weekend and I should probably rest more than hack. And I can see that there's some amount of Rakudo tweaks needed. | 13:57 | |
| nwc10 | 140 completely arbirary synthetics | ||
| jnthn | And other encoding. :) | ||
| Heh, NFT :D | |||
| Yeah but getting it to Twitter would be tricky :) | |||
| 'cus you'd have to encode it, and NFG vanishes at encoding time | 13:58 | ||
| nwc10 | that's a bother. | ||
| jnthn | Anyway, rebootstrap probably not until Monday | ||
| 'cus I need to teach Rakudo's I/O that no, \n is not a sufficient separator default | 13:59 | ||
| And that may well be an API change | 14:00 | ||
| Not to mention we need an API to tell the VM about multiple separators | |||
| nwc10 | I see what you meant about the little rabbit hole opening up onto a view of a field of yaks, awaiting your razor | 14:01 | |
| lots of stuff that can't be put off any more | |||
| jnthn | Aye | 14:02 | |
| Well, there's an xmas RT about sorting out the line seps stuff too | |||
| So this was already on the horizon. | |||
| nwc10 | good job we never promised which Christma - oh wait :-) | 14:03 | |
| jnthn | :-) | ||
| Yes, a bit bothersome there are 66 xmas RTs and that's more than one per day to reach xmas | 14:04 | ||
| otoh there are some that'll probably boil down to "no, we're not doing this before 6.c" or "the current behavior is fine" | |||
|
14:05
tokuhirom_h joined
|
|||
| jnthn | Anyway, time for $other-task | 14:17 | |
|
14:42
synbot6 joined
15:03
colomon joined
15:21
tokuhirom joined
16:45
synbot6 joined
17:01
vendethiel joined
17:22
tokuhirom joined
19:00
kjs_ joined
19:36
tokuhirom_h joined
20:18
tokuhirom joined
21:35
leont joined
22:25
tokuhirom joined
23:03
kjs_ joined
|
|||