Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2014-01-10

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

All times shown according to UTC.

Time Nick Message
00:08 FROGGS cool, that unicode stuff seems to do something
00:12 jnthn :))
00:12 * jnthn not having much fun finding this exception reporting regression
00:21 FROGGS gnight
00:22 jnthn Got it...
00:22 jnthn 'night, FROGGS
00:24 timotimo \o/
00:32 FROGGS[mobile] joined #moarvm
01:08 jnthn Pushed the various bits I've done.
01:09 jnthn Got my cleanest spectest run yet
01:09 jnthn Didn't hang anywhere \o/
01:09 timotimo that's darn cool! :)
01:09 jnthn If anybody wants something to look into: wordcase seems busted, affecting a couple of test files. S32-str/capitalize.rakudo.moar is probably the best one to see
01:26 jnthn Time for some rest; night o/
01:27 timotimo gnite!
02:23 FROGGS joined #moarvm
03:26 diakopter hi
04:13 cognominal__ joined #moarvm
05:40 brother joined #moarvm
05:54 moritz S32-str/lc.t has an interesting failure
05:54 moritz not ok 13 - lower-casing of greek Sigma respects word-final special case
05:54 moritz #      got: 'σσσ'
05:54 moritz # expected: 'σσς'
05:54 moritz is 'ΣΣΣ'.lc, 'σσς', 'lower-casing of greek Sigma respects word-final special case';
05:55 moritz who decided that implementing Unicode things without a library in moarvm was a good idea? :-)
06:41 FROGGS[mobile] joined #moarvm
07:30 arnsholt moritz: At least we have tests that tell us that things broke =)
07:43 FROGGS joined #moarvm
08:11 lizmat joined #moarvm
08:33 odc joined #moarvm
09:09 nwc10 jnthn: I attempted to make an öl pun on the shopping list a few weeks ago
09:29 FROGGS[mobile] joined #moarvm
09:33 nwc10 slow thing is still slow
09:33 nwc10 7977 nicholas  30  10  285m 262m  14m R 99.6  0.3   1444:05 moar
09:39 JimmyZ jnthn: re https://github.com/MoarVM/MoarVM/commit/c1ab28dd1a, I thought MVM_gc_root_add_permanent is not needed after MVM_gc_allocate_gen2_default_set?
09:43 FROGGS[mobile] joined #moarvm
10:14 FROGGS ENODALEK
10:15 nwc10 write a new one in Perl 6?
10:16 FROGGS :/
10:16 FROGGS ETOOMUCHTODO
10:34 jnthn JimmyZ: They do orthogonal things.
11:10 jnthn eeks, the code-gen wasn't doing anything with void context really
11:10 jnthn Checking for it in various places, but not passing it on.
11:14 jnthn omgz
11:15 jnthn Fixing that seems to have meant we generate sufficiently better code that CORE.setting compilation goes measurably faster
11:15 jnthn Aww, darn. Didn't get me sink context, though...
11:18 jnthn Ah...I see...I think.
11:25 FROGGS :o)
11:37 jnthn Clears up various failures.
11:39 nwc10 questhub.io seems to be for things one proposed to do oneself
11:39 nwc10 is there anything for "SEP projects"? :-)
11:40 jnthn "Somebody Else Please..."?
11:41 nwc10 that's somewhat politer than what I was really meaning
11:41 nwc10 http://hitchhikers.wikia.com/wiki/Somebody_Else%27s_Problem_field
11:42 nwc10 also, for some reason I've been comparing various things to "lemon-soaked paper napkins" recently -- http://hitchhikers.wikia.com/wiki/Frogstar_World_B
11:44 timotimo hah
11:44 timotimo on questhub you can create a quest and "drop out" and say "someone else can do it"
11:52 jnthn perl6-m -e "say Bool.roll(30)"
11:52 jnthn True True True True True True True True True True True True True True True True True True True True True True True True True True True True True True
11:52 jnthn ...unlikely :P
11:53 jnthn The roll tests on various types fail.
11:53 timotimo i could look into that for a little bit
11:53 timotimo need to build current things first, though
11:54 timotimo did the void context thing make a drastic difference?
11:55 jnthn Seems it fixed a range of things
11:55 timotimo ah, test fixes
11:55 jnthn And stage parse fell to 68s here
11:55 timotimo that's good, too
11:55 jnthn Was around 78s before
11:55 nwc10 is that a MoarVM only improvement? Or all backends?
11:55 timotimo oh that's not bad :D
11:55 timotimo moarvm only
11:55 jnthn nwc10: MoarVM only. The other backends are already doing sink context right...otherwise we'd know about it :)
11:56 nwc10 ah OK
11:57 nwc10 slow thing is still somewhere in stage parse, after about 27 hours
11:57 jnthn r: say 2.rand for 1..10
11:57 camelia rakudo-parrot f614e5: OUTPUT«0.365268836910161␤0.564055266866738␤1.92259827227635␤0.438273427333264␤1.58254501732878␤0.272373119642616␤1.36210254308587␤1.01151375424235␤1.94483478239408␤0.506384388110369␤»
11:57 camelia ..rakudo-jvm f614e5: OUTPUT«1.0080365396270556␤0.29770801268032865␤1.6501561681619104␤1.9817874191804223␤1.8108484226410284␤0.7550679563410723␤0.8563296906474187␤1.9931871459625206␤1.1211630444843945␤1.656239266223772␤»
11:57 jnthn On MoarVM, those all come out between 0 and 1 :)
11:57 jnthn Uh, < 1
11:57 nwc10 so, unscaled
11:58 jnthn nqp-m: say(nqp::rand_n(2)) while 1
11:58 camelia nqp-moarvm: OUTPUT«(signal XFSZ)0.406725␤0.878274␤0.947417␤0.207722␤0.03578␤0.900015␤0.675006␤0.574342␤0.845325␤0.645564␤0.128721␤0.357287␤0.668499␤0.265478␤0.664169␤0.446007␤0.102744␤0.772941␤0.677871␤0.035837␤0.231929␤0.737316␤0.69049␤…»
11:58 jnthn Ah, there we are
11:59 timotimo /home/timo/build/rakudo/install/bin/nqp-m --target=mbc --output=blib/Perl6/BOOTSTRAP.moarvm --encoding=utf8 \ --vmlibs=dynext/libperl6_ops_moar.so=Rakudo_ops_init src/gen/m-BOOTSTRAP.nqp
11:59 timotimo Segmentation fault (core dumped)
11:59 timotimo well, that's not good :\
11:59 jnthn :/
12:01 jnthn Oh, darn...the MoarVM rand op doesn't actually scale at all
12:01 jnthn As in, doesn't even take an arg
12:03 timotimo %)
12:04 timotimo this is a --optimize=3 moarvm
12:04 timotimo so i don't actually have any debug symbols >_>
12:04 jnthn Ah, maybe that's the issue...
12:04 * jnthn heard some other mumbling about "bust on -O3" recently...
12:05 timotimo i'll try -O1 instead
12:06 timotimo well, that immediately helped
12:07 nwc10 aliasing?
12:07 nwc10 does -O3 enable aliasing based optimisations on gcc?
12:07 timotimo don't know
12:08 timotimo Stage parse      :  75.045  - oh well :\
12:08 timotimo oh wait, you meant the compile time for stage mast, didn't you?
12:09 jnthn timotimo: No, it was stage parse that shrunk here
12:09 timotimo Stage mast       :  69.475  -  i remember it being this slow before as well :\
12:09 timotimo OK
12:09 jnthn timotimo: You did build latest NQP?
12:09 timotimo yeah
12:09 jnthn hm
12:09 timotimo wait, maybe i didn't give it the right prefix
12:09 jnthn Well, if your resulting perl6-m doesn't sink, you know you missed my fix :)
12:15 timotimo hm. i built moarvm -o3 again and it segfaulted at the same point again :|
12:15 timotimo -O2 dies, too
12:15 jnthn Could be aliasing based opts...I'm quite sure we're not safe in that regard.
12:16 timotimo OK
12:16 timotimo i'm not sure how you would have to treat C code to make sure those opts are safe
12:18 timotimo Stage parse      :  78.873 - hum
12:20 * timotimo is not fully awake yet and not sure how to try to sink something
12:21 jnthn r: 42 but role { method sink() { say 'sunk' } }; say 42
12:21 camelia rakudo-parrot f614e5, rakudo-jvm f614e5: OUTPUT«sunk␤42␤»
12:21 jnthn If it doesn't say "sunk", you're missing the fix
12:22 timotimo sunk
12:22 timotimo 42
12:22 timotimo i got the fix, but no happy performance yet
12:22 timotimo there'll be plenty performance improvements in the future, though :)
12:23 jnthn bah, all the reduce tests we fail are involving &&
12:23 jnthn uh
12:23 jnthn ^^
12:23 jnthn not ok 324 - |"10"| reduce [^^] true string variable test #8
12:23 jnthn not ok 325 - |"10"| reduce [^^] true string variable test #9
12:23 jnthn etc
12:23 timotimo so maybe it's our ^^ and not our reduce that's busted?
12:23 timotimo did i ask this already? should i look into making rand scale on moar?
12:23 jnthn r: say ([^^] 0, 42)
12:23 camelia rakudo-parrot f614e5, rakudo-jvm f614e5: OUTPUT«42␤»
12:24 timotimo it's not much more than multiplying the result with the scale, right?
12:24 jnthn timotimo: I already fixed rand scaling :)
12:24 timotimo oh! :)
12:24 jnthn damm, miss dalek...
12:24 jnthn timotimo: Yes, I'm very sure it's our &&
12:24 jnthn dammit
12:24 jnthn ^^
12:24 timotimo :)
12:25 jnthn Yeah, we get Nil
12:26 jnthn oh...it's a silly one
12:26 * timotimo is looking forward to the diff :)
12:27 jnthn yeah
12:27 jnthn It just doesn't decont for testing for truth in the code-gen.
12:27 jnthn So it ends up checking if the Scalar itself, which is true by virtue of not being a type object.
12:27 timotimo hehe :)
12:43 jnthn yeah, 'twas that
12:44 timotimo i may not ever have the necessary intuition to figure out when a thing we get needs to get decont'd or not
12:47 jnthn Well, when you use nqp::ops they largely do the right thing for you
12:48 timotimo right. but if i *implement* nqp::ops, i have to do the right thing for them :)
13:07 jnthn timotimo: I'll be heading out soon, but if you want something to look at that probably clears up a couple of other tests too: S32-num\rounders.t
13:11 jnthn Down to around 90 test files that need attention in my latest run.
13:13 timotimo wow :)
13:13 timotimo i can have a quick look, sure
13:19 jnthn oh, also that spectest run happened in 1261s, while last night's took 1568s...
13:34 timotimo \o/
13:34 timotimo now i can have a look at those tests
13:38 timotimo ... except i'm still struggling to get randscale_n up and running >_<
13:38 jnthn bbl &
13:48 timotimo now it works and i can look at the tests
13:53 * [Coke] slept instead of doing a night time moar run. daily run will kick off shortly anyway.
13:54 timotimo i think the rounding trouble has to do with Rats
13:56 timotimo this could be due to div behaving like parrot
13:56 timotimo -9 div 10 is 0 on moar
13:57 timotimo AIUI that's wrong
13:57 moritz yes
13:57 timotimo i'll fix it in moar if i can.
13:57 moritz parrot has the same bug, it seems
13:57 timotimo yes
13:58 timotimo see also src/core/Rational.pm where it explicitly complains about parrot's div being wrong
13:58 timotimo though trying to work around it in the rational implementation of floor rather than special-casing negative div on parrot feels iffy to me
13:58 FROGGS[mobile] joined #moarvm
14:00 timotimo moar just implements that as result = operand_1 / operand_2
14:00 timotimo so i suppose that should be (operand_2 < 0 ? operand_2 - 1 : operand_2)?
14:02 timotimo how big do i need to go to get a big int? above 64 bits i think?
14:02 timotimo r: say (2 ** 70)
14:02 camelia rakudo-parrot f614e5, rakudo-jvm f614e5: OUTPUT«1180591620717411303424␤»
14:02 timotimo r: say (2 ** 70 - 1) div (2 ** 70)
14:02 camelia rakudo-parrot f614e5, rakudo-jvm f614e5: OUTPUT«0␤»
14:02 timotimo maybe that's already correct, due to being implemented by libtommath?
14:04 timotimo hm. just subtracting 1 may go wrong if the number is right at the edge of becoming a big integer
14:07 timotimo oops, i need to check if the *numerator* is < 0, not the denominator
14:07 timotimo silly me
14:34 timotimo still getting some Not OKs, huh
14:37 FROGGS[mobile] joined #moarvm
14:37 timotimo that test above was bogus, aha!
14:37 timotimo r: say (-(2 ** 70)) div (2 ** 70 - 1)
14:37 camelia rakudo-jvm f614e5: OUTPUT«-2␤»
14:37 camelia ..rakudo-parrot f614e5: OUTPUT«-1␤»
14:38 timotimo r: say (-(2 ** 70)) div ((2 ** 70) - 1)
14:38 camelia rakudo-jvm f614e5: OUTPUT«-2␤»
14:38 camelia ..rakudo-parrot f614e5: OUTPUT«-1␤»
14:38 timotimo ... huh
14:40 timotimo i suppose i could MVM_bigint_cmp the numerator to 0 and if it comes up negative (-1, that is) i need to subtract one with MVM_bigint_sub?
14:40 timotimo ah, there's MP_EQ and such
14:45 timotimo Cannot call 'Real'; none of these signatures match:
14:45 timotimo :(Mu:U \v: Mu *%_)
14:45 timotimo wow, i must have done some pretty impressive mistake
14:56 diakopter moritz: jnthn did, but I agreed. yep need to add that special case if it's part of Unicode
14:57 diakopter otherwise shoukd be in hll
14:58 timotimo i made -0.5 not work any more >_<
15:00 timotimo ah, maybe because i didn't change div_In
15:02 timotimo ... nope
15:10 timotimo i need to take a nap. if somebody would like to investigate the negative_integer_division branch of MoarVM against t/spec/S32-num/rounders.t, be my guest
15:37 grondilu joined #moarvm
15:43 * FROGGS holds his breath while rakudo compiles
15:44 * moritz tickles FROGGS
15:45 FROGGS (>.<)
15:50 FROGGS damn, I made it worse...
15:50 * FROGGS tries again
16:47 FROGGS[mobile] joined #moarvm
16:50 [Coke] http://feather.perl6.nl/~coke/moar.out updated with today's run.
16:51 [Coke] r: say 26962 / 28454
16:51 camelia rakudo-parrot f614e5, rakudo-jvm f614e5: OUTPUT«0.947564␤»
16:52 [Coke] r: say 28454*.95-26962
16:52 camelia rakudo-parrot f614e5, rakudo-jvm f614e5: OUTPUT«69.3␤»
16:55 diakopter heh.
16:56 diakopter again, as jnthn pointed out, I did un-skip some in properties-derived, so that'll skew the vs-parrot numbers some
16:58 [Coke] diakopter: you keep saying that, but you unskipped them for -moar-. if anything, moar should be doing better.
16:58 diakopter FROGGS[mobile]++ FROGGS++ reading my baby Perl code in ucd2c.pl
16:59 [Coke] (and today it was. doesn't explain the weird drop eysterday)
16:59 FROGGS diakopter: one test file only fails three tests now (>100 before), but the others fail more...
16:59 diakopter [Coke]: right, but jnthn meant it skews the vs-parrot numbers if we're wanting to track progress toward matching parrot
17:01 diakopter haha {"Ancient_Greek_Numbers",6},{"AncientGreekNumbers",6},{"ancientgreeknumbers",6}, {"Ancient_Greek_Numbers",6},{"AncientGreekNumbers",6},{"ancientgreeknumbers",6}
17:01 diakopter FROGGS: seems you need some de-duping
17:02 [Coke] https://gist.github.com/coke/8250608 updated.
17:02 [Coke] we have a segfault again.
17:02 [Coke] no timeouts, though!
17:02 diakopter halting problem solved!
17:03 [Coke] biggest source of moar failures is now S05-mass/*
17:04 diakopter everyone marvel at the beautiful generated binary search algorithm in MVM_codepoint_to_row_index  in  https://raw2.github.com/MoarVM/MoarVM/00981442757ae5f5a22bd76ad2cb89c16c2d4a9f/src/strings/unicode_db.c
17:05 [Coke] r: say 720/1176 # %age of failures in S05 total.
17:05 camelia rakudo-parrot f614e5, rakudo-jvm f614e5: OUTPUT«0.612245␤»
17:05 diakopter ouch
17:06 FROGGS I am working on that and hope that I can push in a few hours
17:06 [Coke] FROGGS++
17:07 [Coke] r: say (26962+720)/28454 # if FROGGS++ fixes all the s05 bugs:
17:07 camelia rakudo-parrot f614e5, rakudo-jvm f614e5: OUTPUT«0.972868␤»
17:07 [Coke] I wish I had time to actually fix bugs rather than cheer from the sides here. :)
17:07 [Coke] diakopter: there's actual code in that file? ... oh, there it is.
17:08 diakopter [Coke]: yeah lots of recursively generated code
17:09 [Coke] all I see is a giant set of data, then about 40 lines at the end.
17:09 diakopter well, a few hundred
17:09 [Coke] oh, there's more above that.
17:10 diakopter manually bit-packed columns
17:16 [Coke] that segfault seems dodgy. I was golfing it down, and it's vanished. (even where it was segfaulting before)
17:21 [Coke] ooh, and then I got: Internal error: Unwound entire stack and missed handler
17:34 FROGGS [Coke]: you are a great help though
17:49 FROGGS I have a problem... ASCIIHexDigit has a property_code of 25, but it fails to resolve the property_value_code
17:50 FROGGS and later, when it gets the value code of the code point to compare it against the property_value_code, the value code is 1 so the cmp fails
17:50 FROGGS :/
18:00 FROGGS it can resolve the property_value_code of ASCII though
18:03 FROGGS hmmm, so ASCIIHexDigit is just missing in unicode_property_value_keypairs?
18:04 FROGGS I guess that is another place where we need to care about aliases...
18:04 FROGGS /home/froggs/dev/MoarVM/UNIDATA/PropertyAliases.txt:130:AHex                     ; ASCII_Hex_Digit
18:04 FROGGS /home/froggs/dev/MoarVM/UNIDATA/PropertyValueAliases.txt:57:# ASCII_Hex_Digit (AHex)
18:37 FROGGS okay, I think I understand, though, need more brane to fix it
18:38 * diakopter throws you three brane
18:43 * grondilu notices that perl6-m returns creates Blob wih negative values:
18:43 grondilu ./perl6-m -e 'say Blob.new: (^256).roll: 5;'
18:43 grondilu Buf:0x<-3a 73 -1 -14 -33>
18:47 benabik grondilu: Well, that makes sense if Buf is full of signed 8bit values.
18:50 jnthn I think it just doesn't handle uint8 righ tyet
18:50 jnthn Just an NYI
18:50 grondilu ok
18:51 jnthn We've a handful of those still :)
19:11 ssutch joined #moarvm
19:11 FROGGS that is my diff btw, with debug output, but one should see how it looks up blocks like in <:InArabic>
19:11 FROGGS https://gist.github.com/FROGGS/b39bb6ed35370d763c91
19:12 FROGGS though, <:Digit> drives me nuts atm
19:12 FROGGS bbiab
19:12 diakopter FROGGS: yeah, I kinda deferred much of Digit iirc
19:13 diakopter er
19:13 diakopter maybe I didn't
19:27 FROGGS[mobile] the problem seems to be that the property value code for Digit is resolved as the one of Numeric
19:27 FROGGS[mobile] but Digit is just a part of Numeric
19:56 jnap joined #moarvm
20:10 dalek joined #moarvm
20:23 jnap left #moarvm
20:27 timotimo no one had a look at my integer division code? i bet it's easy to figure out if you've seen the multiprecision arithmetic code a few times before :|
20:31 FROGGS[mobile] joined #moarvm
20:44 jnap joined #moarvm
20:56 FROGGS[mobile] joined #moarvm
21:38 * jnthn eliminates 2 more of the errors from the [Coke] gist
21:49 [Coke] \o/
21:50 [Coke] FROGGS: any luck with unicode?
21:52 jnthn btw, I probably won't have many tuits at all during the next 5-6 days.
21:53 jnthn (But tuit supply looks good again after that.)
21:55 FROGGS[mobile] joined #moarvm
22:04 timotimo jnthn: if you have just a moment, want to check out my integer division branch?
22:05 timotimo it makes code like -0.5 fail :(
22:09 * timotimo gotta run
22:22 [Coke] moar: 94.76%
22:29 jnthn timotimo: Will take a look
22:29 jnthn wait, which repo?
22:29 timotimo i hope the mistake is simple and silly
22:29 timotimo mvm
22:29 jnap left #moarvm
22:31 jnthn mp_sub_d(ib, 1, ib);
22:31 jnthn Here you are mutating the original (supposedly immutable) Int
22:33 jnthn Need to put the ib - 1 into another temporary, use it in the calc, then clear it
22:34 timotimo oh!
22:34 timotimo i canbfix that inbabout half an hour
22:34 timotimo got enough code in the vicinity to cargo-cult
23:23 FROGGS[mobile] joined #moarvm
23:23 timotimo meh. after that change i still get Cannot call 'Real'; none of these signatures match:
23:27 timotimo oh, wait. i'm not even using temp_b for the calculation %)

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