timotimo i'm quite glad that spesh is going to be very good at these pseudo-getter-setters we have all ove rnqp 00:22
and they should also easily be inlinable most of the time 00:23
which is even nicer :)
moarvm gets a segfault in scan_registes on a few spectests with my nqp and rakudo branches for lazy evaluated hashes 00:51
oh, i was on the inline branch 00:59
amazing that it lasted until the spectests :) 01:00
02:33 btyler joined
dalek arVM/moar-jit: fde55e3 | (Bart Wiegmans)++ | src/jit/jit.c:
Use malloc/free for dasm globals

This will hopefully fix the build for windows. Note that I windows calling conventions are different from Linux or any other system, so I'll need to modify emit_call_c for it to work.
05:48
nwc10 jnthn: works on "my" apart from t/spec/S02-lexical-conventions/comments.rakudo.moar t/spec/S02-names/identifier.t t/spec/S04-statements/do.rakudo.moar t/spec/S05-metasyntax/litvar.t t/spec/S05-transliteration/trans.rakudo.moar t/spec/S17-lowlevel/lock.rakudo.moar t/spec/integration/advent2010-day21.t t/spec/integration/advent2012-day10.t 05:55
I think one of those isn't an inlining error
jnthn: paste.scsys.co.uk/393986 is output from ASAN 05:57
nwc10 hasn't been paying attention - it has gained stack backtraces
06:21 lizmat joined 06:28 woolfy joined 06:51 woolfy left 07:07 zakharyas joined
nwc10 no, GOD is real unless declared integer. Er, all of the above are real (new) regressions, apart from t/spec/S17-lowlevel/lock.rakudo.moar 07:07
07:24 woosley left, FROGGS joined 07:53 brrt joined
jnthn nwc10: Thanks for the output 08:14
nwc10 valgrind output coming soon 08:15
brrt \o #moarvm 08:16
jnthn - had a chance to test moar-jit on windows again by any chance?
crashes, right :-) 08:17
jnthn Not yet :)
Was just trying to figure out why half my attempts to connect to anything hit timeouts or DNS res fails... 08:18
brrt hmm
maybe somebody is ddos'ing your isp 08:19
jnthn Well, it's been going on since yesterday
nwc10 jnthn: much valgrind output: paste.scsys.co.uk/394048
Have only skimmed it, but 2 or 3 bugs reoccur 08:20
jnthn I was thinking it was somewhere ISP-wards, until I got a couple of timeouts looking at my router's info page. Which suggested it was more local ;)
08:20 lizmat joined
nwc10 jnthn: I'd have strong words with your sysadmin :-) 08:20
jnthn Restarting that rather overheated box sat under my desk seems to have helped :)
brrt nice :-)
maybe not put it under your desk
nwc10 jnthn: not sure why my firefox thinks that this line: 08:21
ok 11 - embedded comment with #`įš›įšœ
jnthn Hmm
nwc10 deseved a Unicode replacement character
jnthn brrt: Well, it's got a decent bit of airflow down there...
brrt fair enough, i don't know your setup :-) 08:22
brrt is a bit crossed with the whole windows-x64 vs at&t-x64 affair
jnthn brrt: Now jit.c compiles
brrt awesome
jnthn mmap.c 08:23
src\platform\win32\mmap.c(21) : error C2065: 'MVM_PAGE_NOACCESS' : undeclared identifier
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\amd64\cl.EXE"' : return code '0x2'
Stop.
brrt what
oh
i see
it should be just PAGE_NOACCESS, i'm fixing it :-) 08:25
dalek arVM/moar-jit: c63bb87 | (Bart Wiegmans)++ | src/platform/win32/mmap.c:
Constant name typo for win32
08:26
brrt should look up cross compilation for win64
mingw64 ought to be able to do it? or is that the other way arround 08:28
or maybe a vm 08:30
jnthn I'd go for a VM 08:34
Yes, that patch helped
brrt \o/ 08:35
does it crash? :-D
nwc10 does it blend? :-)
brrt i dunno
:-p
officially i have a license for win8 on this machine, so all i have to do is get it off the HDD 08:36
jnthn brrt: You got that script that I can use to test it?
jnthn has to rebuild NQP 08:37
brrt its called foo.nqp and it ought to be checked in
yes, or i have to merge master, whichever is easier
jnthn SEGV 08:42
Last line wsa "Emit constant arg 0" 08:43
brrt hmmmm
thats not necessarily what i'd expect
oh, no, that is what i expect
all is well
:-)
hmmm 08:44
or maybe not
i think you should see 'loop iteration 14' before that
if not, there is a bug in jit.c
if so, there is a bug - but a known one - in argument-passing in x86_64.dasc 08:45
jnthn No, don't see that.
brrt which i'll be renaming to emit_x86_64.dasc
ok, i'd be very happy with debug output of any sorts :-)
jnthn should just have done a debug build in the first place...
Eww, heavy rain. 08:46
brrt rain in sweden? 08:48
jnthn Apparently :) 08:49
It wasn't exactly forecast...
brrt it's still sunny here
jnthn Wow. It's really hammering down. 08:50
brrt well, think of the weather when it will be over, fresh air, wet grass
jnthn Well;, bother... :( 08:58
The build with debug symbols works o.O
brrt what
nwc10 debugging builds cause all variables to be initialised to 0?
brrt :-o
it still shouldn't work
jnthn Return value: 4 08:59
Loop nr: 99
OH HAI
Return value: 4
Loop nr: 100
OH HAI
Return value: 4
That's how it ends
brrt oh 09:00
hmmm
then the jit compiler doesn't run at all
jnthn oh
yeah, I didn't compile with --enable-jit when I did the debug build
duh!
brrt because the jit compiler can't process say() just yet
jnthn Take 3... :) 09:01
brrt defiicits-as-features ftw :-D
good luck :-)
jnthn yeah, crashes :) 09:03
brrt ok, last line? 09:05
:-)
brrt should be able to make a vhd from his hdd but hopes he doesn't have to re-install the hdd to do so 09:06
jnthn brrt: It's a null pointer access on the line dasm_encode(&state, memory);
brrt ok... that means its probably an issue with memory 09:07
because if the &state was null it'd crash earlier
jnthn yeah, that's my guess
verifying; need to get it to d a non-optimized or it can't tell me what's in memory.
yeah, memroy is NULL 09:08
no pochemu...
I'm guessing we're misusing VirtualAlloc somehow. 09:09
brrt hmmm 09:10
i think so too, but no idea why 09:11
msdn.microsoft.com/en-us/library/wi...85%29.aspx says this should be ok 09:12
lizmat the documentation is always right :-)
jnthn ERROR_INVALID_PARAMETER 09:13
brrt hmmmm
page mode is wrong?
dalek arVM/moar-jit: d85aa31 | jnthn++ | src/platform/win32/mmap.c:
Panic if VirtualAlloc fails.

So the error doesn't end up with a NULL pointer use elsewhere.
jnthn That's my guess 09:14
brrt oh, i see 09:15
page_mode arg should be prot_mode
can you see if that helps?
jnthn oh, duh 09:16
yeah, jsut saw that
yeah, helps 09:18
now:
Return value: 4
Loop nr: 14
Return value: 0
Loop nr: 15
And my debugger is very confused
I'm guessing the stack got corrupted ;)
At least, I'm pretty sure "4" isn't a valid stack frame location :) 09:19
brrt no
but i expect so
good
jnthn ok :)
dalek arVM/moar-jit: 0bdfcc5 | jnthn++ | src/platform/win32/mmap.c:
Use correct variable for protection flags.
09:20
brrt is working on the remapping of registers for win64 sensitivity
jnthn Let me know if you want moar testing again at some point :)
brrt i will
dalek arVM/inline: 8752a80 | jnthn++ | src/spesh/inline.c:
Try to avoid looking at uninitialized memory.

Hopefully fixes a Valgrind error reported by nwc10++.
09:27
09:28 FROGGS joined
nwc10 MOAR testing... 09:29
brrt nwc10++ for all the testing 09:30
jnthn That's only one of them. Also I should do some $dayjob things and tonight we have an open evening I should go along to. :) So I may not get to the others until rather later, or if there's enough free beer at $event then tomorrow. :) 09:32
nwc10 is event's free beer likely to be good?
jnthn Um
Not sure
I know there's something good in the office fridge... :) 09:33
nwc10 there's something good in *our* office fridge, but it's for this evening, elsewhere
jnthn Office admin: "What beer should we get for the evening team meetup?" Us: "IPAs...imperial stouts..." :) 09:34
And we didn't drink all the things. So I think there's some nice stuff left from then :)
nwc10 www.westons-cider.co.uk/products/wyld-wood/
jnthn hasn't really had cider in quite a while...
nwc10 jnthn: is "what sort of beer do you like?" one of the pre-interviewing screening questions? 09:35
the Austrians don't really seem to understand cider (yet), despite growing apples
09:35 donaldh joined
nwc10 and no-one in Frankfurt has figured out that you can ship apfelwein here and flog it 09:35
brrt 's favorite beer: www.latrappetrappist.com/en-en/trap...-trappist/ 09:36
nwc10 and it seems that outside of the UK, Carlsberg think that it's just fine to produce Somersby in that well known cider making country, Croatia. 09:37
:-(
jnthn brrt: ooh, not bad...I prefer the La Trappe Tripel, though... :)
huh, there's a la trappe oak aged?! 09:38
brrt it seems so
jnthn Where can I buy this stuff :D
xiaomiao prefers Rochefort 09:39
but good beer is good, so I'm not going to complain :)
jnthn xiaomiao: ooh, which Rochefort?
jnthn likes 10 best :)
xiaomiao jnthn: depends on my mood, the 10 is sometimes a bit heavy
limits me to two beers an evening
the 6 is a lot more social-compatible ;) 09:40
jnthn True :)
brrt i have no idea, 'witte trappist' can't be bought in most dutch shops at all :-(
jnthn Yeah. I can get the quadrupel la trappe ordered at systemet here in Sweden, it seems, but no sign of the oak aged
ooh, I can order witte trappist too :) 09:41
xiaomiao I'm a bit sad that the Cantillon is no longer distributed by the local distributors
that's a weird Kriek :)
jnthn Gee, they sell a 750ml bottle of the La Trappe Quadrupel. That's either a long evening, or for sharing. :) 09:42
brrt its a nice, light white beer, and if you're having it then i'm having it
sharing :-)
jnthn :) 09:44
jnthn figures he should stop looking at the beer shop site and hack on scary thing instead.
nwc10 only until the tests start running... 09:45
jnthn Oh, by scary thing I menat my little $dayjob project :)
brrt would have wanted scary $dayjob project when he had a $dayjob 09:46
anyway, can i ask one more thing?
jnthn Sure 09:47
.oO( So long as it's not, "so what the heck are you doing with IQbservable<T> at $dayjob anyway"... :) )
09:48
brrt it turns out that there are no less than 6 general-purpose callee-saved registers in both windows and SysV x64 call conventions 09:49
(and that i've been overwriting them unwittingly)
anyway, i think it'd be a good idea to move special-purpose moarvm variables (like, register work base pointer, register arg base pointer) to those registers 09:50
jnthn Yeah, makes sense.
brrt totally unscientifically i also know that most compilers most of the time do not use the r12-15 registers
jnthn If we've a load of free registers, then spesh_slots is worth having in one too 09:51
At least, if you see an instruction where we'll look at it.
brrt hmmm 09:52
6 slots
but i do have to save 'm on stack on entry
jnthn Yeah
That's why I said "where we'll look at it" :)
Oh, though...
Anything that's in a spesh slot and in gen2 doesn't need looking up
Can just shove the static memory address right into the machine code. 09:53
brrt yes
although i'm ambiguous between static memory addresses in machine code and a possible 'data' segment in the output 09:54
if the latter would be possible, it might save some instructions
or not
i don't know
jnthn :)
brrt anyway, its a bit of puzzle work but i'll get there :-) 09:56
nwc10 jnthn: for later, ASAN results: 8752a809d7083b5b7 09:58
er
paste.scsys.co.uk/394090
brrt &lunch, i'll be offline this evening, too 10:10
this afternoon, i mean
10:11 brrt left 10:34 donaldh joined
nwc10 jnthn: for later, valgrind results: 8752a809d7083b5b7 10:42
bother.
paste.scsys.co.uk/394108
do you think I can do that a third time? :-)
12:01 cognominal joined 12:21 jnap joined 13:19 woolfy joined
timotimo it seems like the lazy hashes for qast nodes thing reduced the speed of core setting compilation by about half a second 13:37
lizmat that feels like noise to me, fwiw 13:44
nwc10 are you able to measure a difference in memory use?
timotimo i took three before and three after measurements
yes, 11 mb less
out of ~760mb
nwc10 so that's not noise :-)
timotimo that part isn't, no.
there's still things that break; i'll have to look closer at that 13:45
lizmat and CPU usage, was that down?
or up?
timotimo didn't look at that
and i rebooted to get new kernel and gpu drivers 13:48
and i didn't save the stuff
FROGGS timotimo: you removed the 'method hash is associative_delegate' or what it is called? 13:57
timotimo has %!annotations is associative_delegate 13:58
yes, i removed that
FROGGS ahh, yes
timotimo++
14:04 btyler joined
timotimo hold you ++es for a moment; nqp currently only builds on moar :) 14:11
and p5 regexes are bust, too
FROGGS who needs p5 regexes anyway :P 14:14
and you mix in a role where we need to store informations?
timotimo yes 14:17
and the "hash" method seems to not be used at all so far
so i could just kick that
i don't understand why parrot gets a NPMCA in get_bool in this particular method 14:19
FROGGS can you paste your diff and the backtrace?
timotimo and the jvm has a NullPointerException 14:20
the branches are called "qast_lazy_annotations" in nqp
gist.github.com/timo/3a9cf0472c0f84642dac 14:21
the line numbers are probably bogus, though
- $ast := $ast.ann('sink') if nqp::defined($ast.ann('sink')); 14:22
+ $ast := $ast.ann('sink') if $ast.has_ann('sink');
this is the only local patch i have and it doesn't change the problem
FROGGS and that $ast has that method has_ann? 14:23
ohh 14:24
now I see how you do it :o)
timotimo aye :) 14:25
the only thing that's not straightforard in this branch is finding where $foo<...> refers to an annotation rather than to an actual hash
FROGGS *nod* 14:28
14:34 lizmat_ joined
timotimo will you try to reproduce an fix? :) 14:34
FROGGS I don't see why it NPEsses...
can do that in at bit... 14:35
a* 14:36
14:37 brrt joined
timotimo that'd be swell! :) 14:44
FROGGS spiffy! 14:47
lizmat FROGGS:: are you still working on the CompUnitRepo::Local stuff, or can I do there whatever I want!
:-)
FROGGS hehe 14:48
I'm not sure you can do whatever you want... but no, I am not working on that bit atm
dalek arVM/moar-jit: f533b40 | (Bart Wiegmans)++ | src/ (5 files):
Use abstracted registers for variable access.

This will allow us to work more easily with the ABI differences between Win64 and the rest of the world. Also using callee-save registers for special interpreter variables such as our work register base. This makes entry and exit somewhat more expensive but callouts from JIT to C are cheaper.
14:50
brrt now i'll have to figure out how luajit passes arguments to dynasm 14:52
FROGGS and then? celebrate? :o) 14:53
lizmat FROGGS: ok, I will take care of the CURLies then :-) 14:54
brrt i.e. the luajit sources use if/else statements to discriminate between win64 / x86 / rest 14:55
and i need to figure out how they do that
and yes, then celebrate
FROGGS yeah, I'm taking care of fetching MIRRORED.BY and p6dists.json.gz... the CUR's are working good enough for me atm
:o) 14:56
brrt btw, have i said sufficient nasty things about the whole register-argument-passing things yet? 14:57
i know /one/ good thing about it
which is that the threadcontext argument passed to all functions doesn't actually have to be copied
timotimo that's helpful 14:58
brrt i.e. it can - in principle - stay in rdi / rcx
FOREVER
timotimo dun dun DUUUUUUUUN
brrt as long as nobody else wants that argument, that is
timotimo i don't want to haev that argument with you 14:59
brrt (that means it is probably more efficient to pass it to every function than to have functions that don't take it as an argument)
not that sort of argument
i mean parameter
:-) 15:00
ugh, minor isssue, dynasm will build different things for windows and linux 15:14
which is annoying
because
i want the output c file to be checked in
so that regular folks don't have to have lua installed
or 15:15
FROGGS well, then check several in, and Configure.pl picks the correct one and copies it
brrt i may have a solution
thats my solution :-)
FROGGS :o)
gorram it... perl6-p is so annoyingly slow 15:18
timotimo if only we hadn't started work on moarvm, we wouldn't be complaining about perl6-p and -j being too slow :P 15:19
FROGGS *g*
true
brrt they'd be complaining that perl6 is slow, per se :-p 15:20
timotimo heh.
brrt as they did, in fact
hmm
timotimo except after we started focusing on performance more, people started saying "how can you be working on performance if 6.0.0 isn't even finished?" 15:21
and before that they said "this is unusably slow!"
FROGGS they always have excuses for not using it :o)
timotimo more than just "not using", though 15:22
FROGGS or just for ranting
brrt nobody uses any language before anybody makes any money with it
i.e. who used ruby before 37 signals got rich?
timotimo still wondering if maybe i should build a json parser that is faster than grammar-based by doing dirty tricks?
brrt 'enthusiasts'. exactl
that, or speed up grammars :o)
timotimo well, having the inlining work will be very good for that purpose 15:23
brrt anyway, i'm pondering the 'correct' route for the dasm generation a bit more, because i don't want to bubble the polymorphism up too far
timotimo i don't know how to interpret that statement 15:24
brrt i need to hack the makefile to have dynasm output the correct .c file for both supported architectures 15:25
basically, i have one file, foo.dasc, and i want to output foo-win64.dasc and foo-posix.dasc, or something like that 15:26
thats possible right? but with hardcoding 15:27
i have 'm softcoded now
maybe 'this is easy with hardcoding' is the right answer, anyway 15:28
timotimo that seems doable; the configure.pl knows what to do, no?
brrt yes
i'll get there, dinner first :-)
15:28 brrt left 16:19 FROGGS joined 16:22 woolfy left 17:24 mann joined
mann I'm new to IRC, is this the channel i should be in for RVM help? 17:30
17:30 jnap1 joined
btyler mann: this is moarvm, a virtual machine for perl6. are you looking for R(uby) V(ersion) M(anager) in #rvm? 17:32
mann I am. When i try and join that channel though it spits back to me that I'm not identified with services. 17:33
i only get that message with #rvm not with this moarvm channel or ruby-lang channel. 17:34
not sure what i'm doing incorrectly
FROGGS mann, I can join #rvm without problems 17:35
but... perhaps they allow only ppl who have registered their nickname? 17:36
(I have)
mann frogg, i followed the instrctions to register my name and it seemed to work. butnot sure why it not being accepted for #rvm. I'll go back and try again. thanks for the guidance frogg and btyler 17:38
FROGGS you're welcome 17:40
mann frogg, here is the specific message i get..#rvm :Cannot join channel (+r) - you need to be identified with services
FROGGS mann: see freenode.net/faq.shtml#plusr 17:41
mann FROGGS, will do. thanks.
FROGGS, that helped me realize that IRC sends an email to email address that i need to then paste a snippet into the irc client to finish the registration. now i can get into #rvm. kudos. 17:46
FROGGS :o) 17:47
japhb_ Only on a perl6-community channel would I see someone so kindly help a newbie attempting to go somehwere else ... 17:50
FROGGS++
18:02 mann left
[Coke] *++ 18:18
18:54 krunen joined
rurban_ do you know something about unicode whitespace changes lately? parrot with icu 5.2 cannot parse some character names anymore: github.com/rurban/roast/commit/f4b...649e1de52e 19:05
"LINE FEED (LF)"
"CARRIAGE RETURN (CR)"
"NULL"
"NEXT LINE (NEL)"
"CHARACTER TABULATION"
FROGGS MoarVM/UNIDATA/UnicodeData.txt:11:000A;<control>;Cc;0;B;;;;;N;LINE FEED (LF);;;; 19:07
that is Unicode 6.3 btw
so, MoarVM looks up that name there also, icu perhaps does not
(or we have to query it differently) 19:08
rurban_ unicode-search.net/unicode-namesear...mit=Submit says "LINE FEED (LF)" is deprecated 19:09
But it doesn't tell me the canonical name for it 19:10
Yes, I've got the same in my perl5 UnicodeData.txt line. A parrot problem 19:14
20:00 cognominal__ joined
dalek arVM/moar-jit: 700c96b | (Bart Wiegmans)++ | / (6 files):
Add support for win32-x64 ABI

This means some hardcoding, but the building part seems to wok. I don't know if the changes to the actually work, that would require actual testing :-)
21:01
jnthn evening, #moarvm 21:09
timotimo hi there jnthn 21:10
FROGGS hi jnthn
jnthn 2 year we're-at-this-office party actually had nice beer \o/ 21:11
FROGGS \o/
[Coke] cannot remember the last time he had officebier 21:14
23:06 FROGGS joined 23:49 oetiker joined