02:03 cognominal joined 02:09 cognominal joined 02:19 BinGOs joined 06:45 lue joined 07:25 FROGGS joined 07:57 wsri_ joined 07:59 wsri_ joined 08:46 odc joined 09:05 ssutch joined 09:39 V_S_C joined
V_S_C @Froggs: Last 2 lines output while attempting to rakudo moar-support nmake install 09:43
perl -MExtUtils::Command -e cp perl6-m C:\rakudo/bin
perl -MExtUtils::Command -e chmod 755 C:\rakudo/bin/perl6-m
Cannot chmod 755 C:\rakudo/bin/perl6-m:No such file or directory at C:/Perl64/li
b/ExtUtils/Command.pm line 274. 09:44
NMAKE : fatal error U1077: 'C:\Perl64\bin\perl.EXE' : return code '0x2'
Stop.
jnthn Hm, that's lost its .bat...
V_S_C @jnthn k, thnx. I'll finish up the install then share some alterations I made. 09:47
FROGGS ohh, diakopter++ reported that too
I thought it got fixed 09:48
jnthn One other task needed before the Jan Rakudo release: get a MoarVM release process in place.
FROGGS true 09:49
V_S_C There's setup.pm in build directory 09:53
Line # 338
Replace WIN32 AO_ASSUME_WINDOWS98 by WIN64 09:54
Then in the 3rdparty\dyncall directory 09:57
FROGGS V_S_C: can you send a pull request? 09:58
V_S_C Configure.bat file
line # 29 09:59
Appended 64
that's it! :)
FROGGS :o) 10:00
V_S_C 2Froggs, I'm a git novice
FROGGS hmmm
V_S_C that's it & now I've ogt rakudo perl6 running on moarvm, many thanks to jnthn 10:01
FROGGS 1) go to the repository you want to change
2) click on fork
V_S_C thats alrite 10:02
FROGGS 3) clone that fork locally
4) make your changes
5) do: git commit -m "changed XYZ because of ZYX" file1 file2
6) git push
the go to your fork on github, and press the "compare and pull request" button 10:03
that is it, and then you will show up as an contributor :o)
10:05 V_S_C_ joined
V_S_C_ sorry, got dced from irc.. 10:06
I guess pull request got me the source
FROGGS see irclog.perlgeek.de/moarvm/today 10:07
V_S_C_ the changes I reported are crude hacks..
saw it already
FROGGS k
a pull request is like sending a patch to us, so we can test and merge it right away
nwc10 Slow thing is slow... 10:08
This finished:
20881 nicholas 30 10 274m 251m 8408 R 97.9 0.3 1028:52 moar
and now we're into the setting
Stage start : 0.005
V_S_C_ yes but I simply disrupted the win32 build to make win64 one
nwc10 I'll update you all tomorrow :-)
jnthn nwc10: This is torture?
FROGGS .oO( or the day after that :o) ) 10:09
V_S_C_ patch mustn't disrupt, so I just reported
nwc10 jnthn: yes. For me as well
it did strike me that if it takes a week to do this, one can run more than one, staggered starts
to verify that nothing regressed 10:10
but we shall see
jnthn nwc10: Does this mean the rest of the Rakudo build survived the torture test?
nwc10 that far, yes
jnthn wow :)
nwc10 I'm not sure if your blog estimate of "12" is actually a bit high 10:11
the code is really bloody robust already.
jnthn Yeah, I was trying to remember how many...didn't have energy to go and count :) 10:12
OK, gotta to do some stuff...back late afternoon &
diakopter FROGGS: you fixed the create directory; this is another thing 11:18
FROGGS: maybe you didn't push it?
FROGGS diakopter: I have nothing to push here... 11:22
tadzik fun fact: nqp's --prefix expects bin/moar to exist, but moar's make install doesn't install to bin 11:24
creating bin/moar as a symlink to moar seems to work
diakopter tadzik: it does install there for me
tadzik huh, weird 11:25
diakopter gist.github.com/diakopter/a3d891db93a1bef7c6d7 11:26
tadzik oh, it's in install
duh, silly me
[Coke] did a moar run over night. moar progress since official run yesterday. keep it up! 13:09
(less than 1500 tests left to tie parrot) 13:10
nwc10 gosh 13:11
[Coke] 185 tests left to hit 95% of jvm.
(1323 for 99%)
14:09 _ilbot joined
FROGGS [Coke]: only 184 (or 1322) tests left :o) 14:52
[Coke] FROGGS++ 15:19
diakopter [Coke]++ FROGGS++ timotimo++ nwc10++ JimmyZ++ jnthn++ 15:20
FROGGS and not_gerd++
and you++, err diakopter++ 15:21
diakopter I wish someone could contact not_gerd; no one's heard from him in months
FROGGS yeah :/
I hope he is well
jnthn back 15:30
FROGGS o/ 15:31
jnthn That was a better day than expected. :)
diakopter I'm quite sure you/we left someone out of that ++ parade
jnthn: you got a new mouth or whole head or what
jnthn <dentist> Beer is good for teeth!
diakopter heh
FROGGS why do I imagine jnthn ripping off his shirt on an deserted street at a rainy night when he says "back"? 15:32
jnthn No, today wasn't anything major. Just maint. :) 15:33
And potentially depressing afternoon task actually was quite optimistic and productive in the end. :)
diakopter \o/
jnthn 184 to go for 95%? Woo!
I can probably find those this evening. 15:34
FROGGS jnthn: $*VM.perl might give us a few :o) 15:35
jnthn 2 or 3 :P 15:37
FROGGS I guess more
jnthn Oh, maybe
That works but just crazy slow, right?
FROGGS because that thing hangs, and I can imagine that its cause causes more hangs
ohh, it does?
I am trying to debug this right now: perl6-m -e 'my @a = <a b c o>; say @a.perl; say "foobar" ~~ /[|@a]+/' 15:38
jnthn Yeah...it's slow everywhere
And due to the slow-path'd binder, horrifically slow on Moar
FROGGS it hangs because it loops over @a endlessly
nqp-m: say(nqp::islt_i(2,3)) 15:39
camelia nqp-moarvm: OUTPUTĀ«1ā¤Ā»
FROGGS nqp-m: say(nqp::islt_i(3,3))
camelia nqp-moarvm: OUTPUTĀ«0ā¤Ā»
[Coke] yah, my "infiloops" are least partially "oh, that's just reaaaaaly slow." 15:40
I am trying to be slightly more forgiving on future runs. 15:41
15:42 jnap joined
jnthn FROGGS: Where is it looping? 15:42
FROGGS: Is it the regex engine doing the thing again and again?
FROGGS: Of is it inside INTERPOLATE?
FROGGS it seems to call INTERPOLATE over and over again
but, $topic at around line 140 is an empty string, when it should be "a", "b", ... 15:43
jnthn 140 in...whcih file? :) 15:44
FROGGS and $count at line 100 is zero
jnthn ah, Cursor
FROGGS wait
right
so, I'd say it loops all over INTERPOLATE because that does not fail, but match an empty string instead 15:46
either the else branch before "# Now run the NFA" is wrongish, or the bit afterwards 15:47
it is nice that stage parse does not take 465s anymore ;o)
timotimo \o/ 15:48
jnthn FROGGS: Yeah, adding a { say 'here' } after the @a repeats it again and again 15:50
FROGGS but if the nfa ops would be broken we would already know it, no? 15:51
timotimo not if the only thing wrong in it is interpolated, flattened arrays :)
jnthn FROGGS: Hm, yeah, it's weird... 15:52
FROGGS timotimo: that happens in Cursor.pm, it just creates an nfa of literals from the array to interpolate 15:54
timotimo hm, OK
FROGGS and "foobar" ~~ /[|@a]+/ hangs, while "foobar" ~~ /[|@a]+/ does not 15:55
err
and "foobar" ~~ /[|@a]+/ hangs, while "foobar" ~~ /[||@a]+/ does not
timotimo ah, that's interesting 15:56
let me look at the nfa generation, i've done that sort of thing before once
FROGGS ohh
I think I see it
timotimo oh, cool :) 15:57
FROGGS in the first run, $tgt is "foobar", but in the second run it is "3"
timotimo so it interprets the + after the group as a prefix:<+> and turns the array into a number? :P 15:58
FROGGS so something like running that freshly created nfa writes to our string
no
foobar is the string we watch to match against
timotimo this is !INTERPOLATE in QRegex/Cursor.nqp?
i don't think i'm in the right place 15:59
FROGGS rakudo/src/core/Cursor.pm
timotimo ah
oh!
FROGGS nqp does not have array interpolation
is it possible that we are missing something to root here? MoarVM/src/6model/reprs/NFA.c:474:MVMObject * MVM_nfa_run_proto 16:01
ahh, no 16:02
timotimo the changelog for january's rakudo star release will look pretty bleak :P 16:03
we should write a sentence about how we've been advancing the moarvm port with great success into the announcement
so that people don't claim perl6 is dead
diakopter [Coke]: there's a bunch more
dalek?
does dalek not report for roast anymore? 16:04
timotimo it should 16:05
FROGGS dalek did not report my commit either 16:07
that was a bit more than an hour ago
jnthn timotimo: Well, we'll be able to put "Added support for MoarVM" in the changelog :P 16:09
diakopter github.com/perl6/roast/commit/e6ea...9bb9fd21db 16:10
FROGGS diakopter++ 16:11
timotimo OK, that's for the rakudo compiler release. what about rakudo star? :P 16:12
diakopter FROGGS: your last commit doesn't work on msvc 16:13
and i don't know how to fix it
FROGGS >.<
diakopter src\io\fileops.c(429) : error C2059: syntax error : 'bad suffix on number'
FROGGS damn
diakopter src\io\fileops.c(429) : error C2146: syntax error : missing ')' before identifier 'b110'
FROGGS ohh
I'll fix
16:14 ssutch joined
diakopter anyone want to improve the fudge script to add test numbers? it's maddening to try to find which ones failed by the test description sometimes 16:15
16:15 jnap joined
timotimo i would like that, too 16:15
FROGGS pushed
timotimo maybe line numbers would be good
diakopter timotimo: ah yes, even better
FROGGS: thanks 16:16
timotimo diakopter: let's emit a vim-quickfix-compatible output at the end, too :P 16:17
diakopter what's vim
FROGGS *g*
timotimo :D 16:19
emacs ought to have something compatible, too 16:20
diakopter what's emacs 16:22
arnsholt timotimo: Yeah, it's called evil-mode ;)
FROGGS jnthn: I added a die() near the "# Now run the NFA" but INTERPOLATE is still called twice... 16:23
is it possible that it gets called once by an NFA to check if that route might be valid, and then again afterwards? 16:24
now the $tgt is 6 in the second run btw, instead of "foobar"
jnthn FROGGS: Odd, I don't get the "empty string" problem with $topic... 16:27
FROGGS hmm 16:28
can you print $tgt right at the top?
jnthn FROGGS: Moment... 16:31
FROGGS: It seems that it doesn't scan its way through the string 16:35
FROGGS: So it always calls with $!pos in the cursor being 0
FROGGS: Oh, wtf... 16:44
FROGGS: It does get an empty string in the next iteration
FROGGS I got a "3" and now a "6", but yeah 16:45
jnthn This'll be inteeresting to get to the bottom of :) 16:50
FROGGS yeah
I think I'd need to buy alcohol for that :o)
waaait 16:52
now I removed most of my debug print statements and now I get "foobar" every invocation?
bug: I don't like you
at least I can limit the output :o) 16:54
perl6-m -e 'my @a = <a b c o>; say "foobar".match(/:my $i; [@a <?{ $i++ < 10 }>]+/)'
brb
16:55 FROGGS[mobile] joined
jnthn r: my $foo := nqp::list(); for $foo -> $topic { say $topic.^name } 16:58
camelia ( no output )
jnthn aha!
On Moar that gives Parcel.
And that is the problem.
When fates don't match and $order is empty, we do a loop with a single Parcel instance, which stringifies to the empty string. 16:59
So, the bug golfs to the above. Phew. :)
r: for nqp::list() -> $topic { say $topic.^name } # or this
camelia ( no output )
jnthn Also says Parcel on Moar. 17:00
r: &infix:<,>(nqp::list()).map({ say 'oops' }).eager 17:02
camelia ( no output )
jnthn r: say &infix:<,>(nqp::list()).perl
camelia rakudo-parrot f614e5, rakudo-jvm f614e5: OUTPUTĀ«((),)ā¤Ā»
jnthn On Moar, that gives "Cannot find method 'perl': no method cache and no .^find_method" 17:03
benabik So we're not iterating over parcels correctly?
jnthn ohhh 17:05
p6argvmarray
On Parrot and JVM, that calls hllize on each thing
On Moar it does not
timotimo gefahr erkannt -> gefahr gebannt 17:09
17:15 FROGGS joined, ssutch joined
[Coke] moar up to 26806 in today's run. 17:16
FROGGS percent??
wow!
[Coke] r: say 26806/28454 #jvm doesn't move 17:17
camelia rakudo-parrot f614e5, rakudo-jvm f614e5: OUTPUTĀ«0.942082ā¤Ā»
[Coke] r: say 28454*.95-26806
camelia rakudo-parrot f614e5, rakudo-jvm f614e5: OUTPUTĀ«225.3ā¤Ā»
FROGGS waits eagerly for jnthn++'s commit
[Coke] that's worse than the overnight run. huh. 17:18
perhaps I screwed up some maths.
jnthn 94.2% :)
diakopter [Coke]: well, as jnthn pointed out to me, I did de-skip some in roast earlier today that will distort the vs-parrot number somewhat 17:19
I LIKE TRAMS 17:20
17:39 benabik joined
jnthn FROGGS: Yeah, got a patch 17:42
FROGGS: Which test was this from? 17:43
ooh, these two no longer hang: 17:46
S05-interpolation/regex-in-variable.rakudo.moar
S05-metasyntax/litvar.t
timotimo yay :) 17:47
jnthn Pushed a patch 17:48
nom & 17:56
FROGGS litvar, yes 17:57
jnthn++
:o)
timotimo long live litvars! 18:23
(but not longer than necessary)
FROGGS I have almost done spectesting and had to kill not a single test file :o) 18:38
timotimo \o/
19:06 benabik joined
jnthn yay :) 19:10
r: say tan(-Inf) 19:15
camelia rakudo-parrot f614e5, rakudo-jvm f614e5: OUTPUTĀ«NaNā¤Ā»
jnthn Can somebody please try 19:17
say Inf
say -Inf
say NaN
On Moar?
On non-Windows.
[Coke] REPL is segfaulting on host06, btw. 19:19
benabik I don't have a r-m built, is nqp-m good enough? I get '', '-0', '' there
FROGGS jnthn: works well
[Coke] the version with the daily run says Inf, -Inf, and NaN, respectively.
jnthn benabik: No, needs r-m, but [Coke]'s answers are helpful :) 19:20
On Windows I get 0, -0, 0 :/
FROGGS well then, grab for an #ifdef :o) 19:21
moritz I get the same results as [Coke]++
[Coke] getting REPL working should also happen before mergeback to nom. 19:23
jnthn How about
say(+'Inf')
in nqp-m? 19:24
moritz 0
jnthn Hmm...
jnthn is trying to figure out why his Inf/-Inf/NaN are 0... 19:25
...and apparently they are not off Windows.
FROGGS nqp-m -e 'say(+"Inf")'
Inf
moritz oh sorry, I didn't see the quotes :( 19:26
yes, that gives me Inf too
jnthn Aha! 19:27
FROGGS I guess this TODO is still valid too: github.com/MoarVM/MoarVM/commit/091a2369e 19:28
jnthn yeah 19:31
FROGGS k, so I'll leave that browser tab open
timotimo / diakopter: what is the approach to add a unicode property name to moar? like InAlphabeticPresentationForms 19:32
jnthn yay, that fixes a bunch of numerics tests for me :) 19:35
FROGGS cool 19:36
diakopter FROGGS: need to add an override to the ucd2c.pl script, which will make your eyes explode
FROGGS k
diakopter (sorry about that)(
) 19:37
FROGGS :o)
that is.... interesting 19:40
[Coke] why is there a .pl and a .p6?
jnthn It's in our Unicode database as Alphabetic_Presentation_Forms 19:41
FROGGS indeed
jnthn So really it's a canonicalization issue 19:42
I had all kinds of fun with this will doing the JVM port: github.com/perl6/nqp/blob/master/s...java#L3440 19:44
FROGGS hmmm, using Alphabetic_Presentation_Forms in a match does not work either 19:45
diakopter typo?
(or quite possibly I skipped/overlooked that property/projection)
jnthn Well, it shows up in unicode_db.c 19:46
diakopter oh
FROGGS right, and I copy+pasted that into my regex
jnthn It's in the static const MVMUnicodeNamedValue unicode_property_value_keypairs[2115] = {
FROGGS and MVM_unicode_name_to_property_code(tc, "Alphabetic_Presentation_Forms") gives zero 19:47
and I guess it should not
jnthn Well, MVM_unicode_name_to_property_value_code knows how to find it though, it seems... 19:49
FROGGS not for me 19:50
jnthn Oh, hmm
I thought it may as the alphabetic presentation forms entry is not in unicode_property_keypairs, but rather in unicode_property_value_keypairs 19:51
FROGGS it looks like it is shoveled into unicode_property_values_hashes 19:53
under property_code 6 19:54
jnthn op('const_s', $pname, sval($node[0])),
op('unipropcode', $pcode, $pname),
op('unipvalcode', $pvcode, $pcode, $pname),
op('hasuniprop', $i0, %*REG<tgt>, %*REG<pos>, $pcode, $pvcode),
diakopter jnthn: oh yeah. 19:55
I never did the fallback thing which I was going to do
which was to look in the values as well when the key is not specified
so needs another hash of all the terms
(keys and values) 19:56
wait, ISTR working on that
hrm
FROGGS diakopter++
diakopter FROGGS: ur, wut? :P 19:57
FROGGS I dunno
jnthn ++diskopter # I hope he works on it ;-) 19:58
uh, diakopter
FROGGS diakopter: if you are not, can you outline instructions for me?
jnthn keys right next to each other... :P
FROGGS jnthn: that is why it is called key*board* 19:59
:P
it is full of 'em
jnthn timotimo: I think something may be up with sort... 20:00
timotimo oh no! :( 20:01
it'll be my fault :(
i probably didn't decont enough
diakopter timotimo-- # preemptive decrement ;)
jnthn timotimo: t\spec\integration\99problems-21-to-30.rakudo.moar fails one test,
timotimo only one? that's not that bad :)
should i look into it later?
i've got all kinds of things on all of my hands 20:02
jnthn timotimo: No hurry, just that you understand the sorting code best at this point ;)
timotimo oh it's not that complicated :P
nwc10 jnthn: for Darwin, I did this: paste.scsys.co.uk/290427 20:12
it's less than awesome, because as you can just about see from the context of the diff, it repeats the name "libmoar.dylib" 20:13
and worse, it has to hardcode 'more', which dll => 'lib%s.dylib', had tried hard to avoid
jnthn And removes ldrpath? 20:14
Hm
nwc10 rpath just doesn't seem to work
jnthn But it's better than "can't build on OSX"...
nwc10 it's a straight copy of what Perl 5 does for OS X
for MoarVM it is definately only certified to the "works on my machine" level
but Perl 5 has a bit more testing than that 20:15
well, we hope
OS X is dylib, not ld.so
That commit message is less than awesome too, because it doesn't acknowledge the less-than-awesomeness 20:17
jnthn nwc10: Added a note to the commit message 20:19
Applied, thanks.
lee__ i'll try it on my mac, i was having issues with dylib not being found
jnthn lee__: Thanks! 20:20
[Coke] is there a sample .moarvm file included in the distro? 20:22
or a way to create one? 20:23
nwc10 1..1
ok 1 # Hello world
[Coke] or do I need to use nqp for that? 20:24
... I can build moarvm on os x and install it, but I have no idea if iit's doing anything.
diakopter o_O 20:25
nwc10 built NQP with it
jnthn [Coke]: Trying to then use it to build an NQP is the only sane way to know
diakopter has other ways
nwc10 it would be nice if it shipped with a minimal MoarVM file, maybe to print out the 2 lines I suggested
jnthn My idea is to have a bunch of .moarvm files shipped with it to give us a standalone "make test" target 20:26
[Coke] jnthn: should I build it first, then nqp, or is it ok to let nqp build it?
jnthn And those are generated by some NQP script or two
[Coke]: Should be fine to let NQP do it, but force master
Gonna work on enforcing type checks on assignment. 20:31
[Coke] nqp's make is rebuilding stuff every time I type "make" 20:32
baaaad nqp'
I can grab nqp, use it build nqp-m, install it, then cd to tmp and run it from the install dir on os x. 20:33
diakopter [Coke]: what's it rebuilding 20:34
lee__ nwc10: jnthn: nqp seems to build but rakudo blows up with this gist.github.com/leedo/539b4b7245156d228ebb
which i was seeing before when i used --static 20:35
benabik Huh. nqp-m segfaults when trying to get to a REPL.
lee__ this time i clobbered my entire rakudo dir to be sure
benabik strlen(NULL) inside strdup() inside uv_fs_lstat() inside MVM_file_eof() 20:36
FROGGS >.< 20:37
benabik: seems to be my fault...
it tries to stat your STDIN I guess 20:38
benabik That's a problem.
jnthn oops
nwc10 lee__: "oh, great"
I'm not sure. I built with gcc
benabik Does libuv not provide a feof()? 20:39
FROGGS benabik: I am fixing this in a bit 20:40
no idea about feof
[Coke] diakopter: I already closed that window, sorry. 20:41
(nqpm-segf repl) so does rakudo, btw.
jnthn Rakudo and NQP repl share impl code, so not surprising :) 20:44
timotimo [Coke]: was that lisp code? 20:47
jnthn Looks like a valid sexpr to me... :P
nwc10 jnthn: another one I found, but not sure about the right fix: paste.scsys.co.uk/290438
and paste.scsys.co.uk/290439 but all the use of static it that file made me uncomfortable. Seems to be *both* a race condition within an instance, and not safe in the future if anyone instanstiates a second instance 20:49
and I think that TimToady is right - needs a better name. "world" was the least terrible thing I could think of, but it's not that good 20:50
jnthn And overloads with something else in NQP/Rakudo 20:51
Agree with paste.scsys.co.uk/290438 20:52
I think ti's the right way.
nwc10 OK
I think that the only other root I need to report back is paste.scsys.co.uk/290440
again, not sure if it shouldn't be gen2 direct as it's the top level compilation unit 20:53
jnthn paste.scsys.co.uk/290439 - makes sense to do gen2 direct in this one 20:54
nwc10 good point. The only one of the 3 that I didn't suggest that for :-) 20:56
but if you look futher after the code changed in paste.scsys.co.uk/290438
MVM_gc_root_add_permanent(tc, (MVMCollectable **)&entry->name); 20:57
so doesn't that mean that name should be gen2?
jnthn Well, there's no "should be" about it really 21:01
nwc10: As it, you don't break an invariant if you don't make it that way.
nwc10 I think you're more awake than me. Could you restate that with fewer negatives :-)
jnthn nwc10: But it's gonna live forever...mostly just depends if it's worth cluttering the code with the "force gen 2"
nwc10: If you MVM_gc_root_add_permanent a nursery object, things will work. 21:02
nwc10 is it more clutter than a temp root?
jnthn Well, more importantly is that temp roots do something sane wrt exceptions
And MVM_dll_find_symbol can throw 21:03
nwc10 OK, that's 2 things that I didn't know.
jnthn If you throw an exception from C code, it knows that it should clear the temp roots stack before long-jumping back to the interp.
If MVM_string_ascii_decode_nt throws, we've issues :) 21:04
OK, first two you reported dealt with...first by applying patch as is, second by gen2 alloc. 21:06
Now for the third...
21:06 FROGGS[mobile] joined
nwc10 and I mailed the forth to the list in follup to my previous message 21:07
21:09 FROGGS[mobile] joined
nwc10 followup. naughty fingers 21:09
21:10 dagurval joined
jnthn Took paste.scsys.co.uk/290440 as is 21:11
nwc10 OK. 21:12
thanks for the explainations of why my suggestions weren't ideal
jnthn studies the mutex move patch carefully 21:15
nwc10 yes, please do
jnthn Well, I'm just a tiny bit worried about races involving the code we moved outside the mutex 21:16
nwc10 yes, you're more likely to know about those
jnthn I'm pretty sure that scb->sc = sc; wants to be done while we're holding the mutex. 21:20
Oh...maybe not
The mutex is actually protecting the weak hash...
By name at least.
diakopter oh, that code region was written carefully 21:21
jnthn oh, yeah
It is wrong with the mutex released earlyer.
If you release it, then somebody else grabs it, then you race on the scb->sc = sc; lines
nwc10 OK, bother. Because if you hold it, you can deadlock the GC 21:22
jnthn MVM_repr_init(tc, (MVMObject *)sc); allocates, yes?
Well, if we force it to do it in gen2...it never triggers a GC run...
Bit icky but better than a race condition (with the patch) or GC deadlock (without it)... 21:23
nwc10 jnthn: yes, backtrace in the e-mail as generated by hellgrind shows that it allocates 21:24
agree, icky but at least correct 21:25
could you comment tha tbit about scb->sc = sc; needing the mutex protection. I missed that completely
please add "please" and "?" to that sentance in the right places
jnthn nwc10: Replied to list 21:34
nwc10: Hope the comment is good enough :) 21:36
nwc10 I think that it is
thanks
jnthn Thanks for finding it, and the proposed patch.
nwc10 Slow thing is still slow: 21:41
7977 nicholas 30 10 230m 206m 14m R 99.3 0.2 733:44.79 moar
(stage parse, not yet finished)
jnthn You can at least use memory used so far as a % complete indicator :)
nwc10 true. But I don't know what it peaks at 21:42
over 12 hours
I hope that it's less than 24
diakopter nwc10: you don't actually need to run the entire gc each run.. you just need to run the marking phase 21:43
(as long as you run the whole gc every so often) 21:44
nwc10 I'm confused - why so? I was doing a GC run and purposefully moving things in the nursery, to try to make unrooted pointers go stale 21:45
jnthn diakopter: ...marking phase?
diakopter er, I know it's interleaved, ish
jnthn Nursery objects aren't marked so much as copied.
diakopter nwc10: right, but if you move them on every allocation they'll get into the 2nd gen far sooner than naturally, so their pointers may be righter than they otherwise would be 21:46
21:48 ssutch joined
nwc10 yes, but I also hacked the code locally so that they stayed in the nursery for a lot longer 21:48
compile time configurable, but running with 256 moves within the nursery before they get to gen2 21:49
sorry, wasn't clear about that. 21:50
jnthn Hm, what happened to dalek? 22:06
FROGGS he's mad since the github crash yesterday 22:07
jnthn Ah well, shaved a yak to help me look at the containers thingy... 22:09
diakopter nwc10: ohhhhh
FROGGS diakopter: is that correct that <:InArabic> should search for "Arabic" in UNIDATA/Blocks.txt and that we're not looking there at all atm? 22:21
at least that is how I read our implementation on parrot 22:22
if (strncmp(cstr, "In", 2) == 0) { 22:23
strwhich = u_getPropertyValueEnum(UCHAR_BLOCK, cstr+2);
btw, did the REPL even work before? 22:36
jnthn Well, I think it entered at least... 22:37
diakopter FROGGS: dunno 22:44
FROGGS k 22:45
diakopter FROGGS: probably try adding in the same thing from parrot's? except need to check for Capital letter in the 3rd position
and check the length first
FROGGS yes, will do that
parrot delegates the shortened name to libuv, and I will grep in hashes or so 22:46
diakopter grep in hashes?
FROGGS I mean, i have to map files like Blocks.txt first 22:47
diakopter why 22:48
FROGGS to search for blocks?
if (strncmp(cstr, "Bidi", 4) == 0) {
strwhich = u_getPropertyValueEnum(UCHAR_BIDI_CLASS, cstr+4);
this would depend on a BidiClass.txt or something like that 22:49
diakopter I don't understand 22:59
I thought my script was automating all of that
FROGGS I don't see that we are using Blocks.txt when we hit something with "In...", that is all 23:02
so, a "InArabic" will never be found
diakopter right, I was saying the infrastructure is already there to look it up the same way parrot is looking it up 23:12
jnthn FROGGS: Were you saying the other day something is really messed up with smartmatch?
FROGGS jnthn: yes, lemme grab a snippet 23:13
jnthn yeah, I'm seeing examples of such fail in various places...
FROGGS try:
perl6-m -e 'say -> $a, $b { $a, $b }.(1~~2, 0)'
jnthn Might ta en ƶl and try to hunt it...
FROGGS perl6-m -e 'say -> $a, $b { $a, $b }.(1~~2, 1)'
ƶl? 23:14
jnthn oh, hah...that's oil in German, ain't it... :)
beer in Swedish :)
FROGGS ahh, beer++ then :o)
diakopter: parrot is not looking it up, it just queries libuv 23:15
err, libicu
diakopter that's what I mean by looking it up
FROGGS k
diakopter querying libicu
the same sort of interface is there in moar's unicode
FROGGS I don't think so 23:16
diakopter why not
FROGGS how do I look up something by block or bidi class names? 23:17
diakopter you look up the property key code
then the value key code
jnthn FROGGS: eeks, yeah, that's messed
FROGGS diakopter: how do I look up the property key code for a block? 23:18
diakopter I don't remember, the codegen codegen is codegenned
FROGGS right, and I think we don't even care about blocks right now
or maybe... 23:19
damn, this is so confusing
diakopter if this line is in ucd2c.pl, then I know it's emitting bidirectional markers
Bidi_Class => $bidi_classes->{enum}->{$bidiclass},
FROGGS jnthn: btw, I think the REPL is messed up because MVM_file_get_stdstream still keeps a pointer to an obj's body... 23:22
that messes up the file descriptor for me under -O3, and then ftell() fails
diakopter FROGGS: and if this line is in ucd2c.pl, I know it's emitting the block info enumerated_property('Blocks', 'Block', { No_Block => 0 }, 1, 1);
jnthn 00065 prepargs Callsite_2 23:27
00066 arg_o 0, loc_10_obj
00067 arg_o 1, loc_10_obj
00068 invoke_o loc_10_obj, loc_8_obj
...oops :)
diakopter looking at dumps?
FROGGS aha!
:o)
diakopter FROGGS: you derived the api? :) 23:28
FROGGS: I should've told you to look at how the P6Regex compiler emits the property lookup
if my head were on straight today 23:29
FROGGS it looks like an omelette
diakopter my head?
FROGGS hehe
no
the dump
I've seen what the P6Regex compiler does, so no worries
jnthn FROGGS: yay, think I nailed it with my first fix attempt :) 23:47
FROGGS cool! 23:48
will see the patch :o)
want to*
jnthn yeah, seems to help a good bit 23:49
set.t is clean now 23:50
Doing a spectest run on it and the other assignment typecheck fix I ahve. 23:51
[Coke] once jnthn++ is done for the night, I'll do an intraday run and generate the list of test aborts.
jnthn Unfortunately, I seem to have busted error reporting... 23:55
FROGGS :o( 23:56