Parrot 3.4.0 released | parrot.org | Log: irclog.perlgeek.de/parrot/today
Set by moderator on 17 May 2011.
00:02 lucian_ left
dukeleto ENOLAURELS 00:07
00:13 jevin joined
dukeleto jevin: welcome 00:15
kid51 Are there any branches that will need testing over the next four days? 00:26
whiteknight none that I know of 00:29
maybe bacek's gc_tuning branch
but I don't know the status of thta
00:33 kid51 is now known as kid51_at_dinner 00:34 kid51_at_dinner is now known as kid51
whiteknight valgrind. takes. forever. 00:34
nopaste "kid51" at 192.168.1.3 pasted "Two new failures on master on linux/i386." (158 lines) at nopaste.snit.ch/46344 00:35
00:35 kid51 is now known as kid51_at_dinner
bacek_at_work whiteknight, not yet. I know that branch is kind of broken. 00:42
whiteknight okay, I wasn't sure 00:43
you need more eyes on it?
bacek_at_work more eyes are always welcome :) 00:45
whiteknight I've got three or four in my closet 00:48
cotto_work starts singing Harvester of Eyes 00:50
bacek_at_work whiteknight, wanna something useful for gc_tune branch? 01:03
whiteknight bacek_at_work: sure. I like pretending to be useful
pmichaud I'm currently testing kiwi with ~3GB memory 01:04
(and orange with somewhat more than that)
bacek_at_work There is gc_gms_sweep_pools function. And is has 2 POINTER_ARRAY_ITER instances. If you can extract bodies of this iterators into static functions it will help with debug.
whiteknight ko 01:08
ok
Valgrind is still running, so I cant' do anything yet
cotto ~~ 01:29
01:37 kid51_at_dinner is now known as kid51
kid51 Does anyone know at which commit those failures started? 01:38
(The fact that we no longer have a git commit number available at end of configuration has screwed up my local test scripts.)
01:44 theory left
kid51 At commit b7811d7ec, 'make' was not completing successfully. 01:46
whiteknight alester was doing some headerizer stuff earlier today that was causing breakages 01:48
kid51 The commit just cited was actually in the middle of various commits.
commits by alester. 01:49
cotto master is working fine for me
kid51 commit d8520877: make completes and those two tests PASS
not for me
See trac.parrot.org/parrot/ticket/2115#comment:1
dalek TT #2115 created by jkeenan++: t/tools/dump_pbc.t and pbc_disassemble.t: new test failures 01:54
TT #2115: trac.parrot.org/parrot/ticket/2115
01:55 whiteknight left
cotto no luck duplicating on my laptop. attempting on my ppc mv 01:57
*vm
somehow Configure.pl segfaulted qemu 02:00
impressive
kid51 According to taptinder, early today there were 3 consecutive commits that were causing build failures on all machines *except* Win32. tt.taptinder.org/buildstatus/parrot/master 02:02
Reconfirm that at HEAD (commit a115d7cd) 'make' completes but I get the two test failures cited. 02:03
cotto Awesome. After 30m of running core.pm under valgrind, it segfaults. 02:11
er, building core.pm 02:12
kid51 dukeleto, you want TT #2115? (I just reassigned to petdance before I saw you had taken it.) 02:13
cotto seems to be quite segfaulty
kid51 I'll give it back to dukeleto and cc petdance. 02:14
02:21 NotFound_b joined 02:25 kid51 left
NotFound_b No one ever read the gcc warnings? 02:33
pmichaud I read them and thought "gee, look at the pretty warnings"
I didn't think they were serious. :-) :-)
NotFound_b It's telling now the exact cause of the problem. 02:34
cotto and that's why we want to eliminate the superfluous ones 02:36
NotFound_b To hide the problems? 02:37
cotto NotFound_b, yup. If we ignore them, they can't effect us. 02:38
pmichaud if we ignore them... it's like they don't exist. :-)
"if we ignore our customers long enough, pretty soon they'll start leaving us alone." 02:39
:-)
(was just reminded of the despair.com poster, that's all)
NotFound_b You worked for sco? 02:40
pmichaud no, but sco didn't ignore their customers
in fact, they made sure their customers knew that they were save from any IP violations
*safe
they wanted to turn every other linux user into a customer :)
dalek rrot: 610bb7a | NotFound++ | / (2 files):
don't declare as non-null parameter which we are calling with explicit NULL
02:41
NotFound_b That will probably fix TT #2115 02:42
cotto looks like my ppc vm can reproduce the failures kid51 say
*saw
stupid core.pm build keeps segfaulting 02:43
NotFound_b Looking at the code, it should be failing in all system in non optimized builds.
pmichaud please tell me the failures are post-3.4.0 02:44
*all post-3.4.0
NotFound_b No idea, but I think the changes in signatures are from today or yesterday
cotto pmichaud, I'm pretty sure gerd would have said something. I don't remember seeing the failures earlier this week. 02:45
pmichaud yeah, the ticket reports 0004e42 as being the culprit, and that was after the release 02:46
NotFound_b Looks like recent gcc are finally capable of doing something useful with that nonnull decorations.
I'm using 4.5.2 here 02:47
cotto NotFound_b, nice. 02:48
NotFound_b I already located the problem before seeing the warning, but still... ;) 02:49
pmichaud afk, kids to bed and stuff like that 02:52
NotFound_b The NCI changes are not so bad, I've been able to use a mysql connection utf8 encoded working fine... but with libffi, without it the needed signatures aren't available.
BTW the last parameter of mysql_real_connect is wrong, should be long, not int. 02:53
unsigned long
It works in most system with i, but... 02:54
dukeleto NotFound_b: the demons await to tickle that bug 02:55
dalek rrot/m0-prototype: b6959a7 | cotto++ | src/m0/m0_interp.pl:
remove some unneeded constants from the m0 interp
03:01
rrot/m0-prototype: 7e1c13f | cotto++ | src/m0/m0_interp.pl:
make m0 interp debugging output optional
03:04 arnsholt joined, arnsholt_ left
dalek rrot: adb2073 | NotFound++ | t (2 files):
add a --help option to create_language and unTODO the related tests
03:34
03:35 benabik joined, mtk left 03:44 mtk joined 04:24 theory joined 04:25 theory_ joined, theory left, theory_ is now known as theory
dalek website: soh_cah_toa++ | I Think It's Time for a Break 04:40
website: www.parrot.org/content/i-think-its-time-break
dukeleto ~~ 04:48
NotFound_b: i knew if i wrote those tests, someone would fix it someday :)
soh_cah_toa++ # nice blog post 04:49
NotFound_b dukeleto: good trick ;) 04:50
cotto dukeleto, does that mean that some day the M0 interpreter tests will pass? 04:51
The word "debuggee" isn't used nearly enough these days. 04:52
tadzik debuggee, as in calee or trainee? 04:54
05:07 theory left 05:14 NotFound_b left 05:39 davidfetter left
pmichaud github.com/pmichaud/rpbench-result...182219.txt # latest benchmarks for orange 05:40
cotto pmichaud, from a Rakudo perspective, is the tied-cstring branch still worth pursuing? 05:53
NotFound Now that I think about it, there is a simple way to simplify passing char*: add a vtable get_pointer a ByteBuffer, and modify set_string_native to add a zero terminator (or use a method specific). 06:03
That way the memory will be easily garbage collected.
bacek_at_work NotFound, ByteBuffer store bytes in words :) 06:04
NotFound bacek_at_work: ATTR unsigned char *content; 06:05
bacek_at_work NotFound, ah, sorry... My mistake
NotFound I wrote it, I should know ;)
dalek tracwiki: v34 | cotto++ | CottoTasklist 06:19
tracwiki: trac.parrot.org/parrot/wiki/CottoTa...ction=diff
tracwiki: v35 | cotto++ | CottoTasklist
tracwiki: trac.parrot.org/parrot/wiki/CottoTa...ction=diff
06:23 soh_cah_toa left
cotto msg whiteknight I'm thinking that one improvement to the profiling runcore would be to treat it as a separate frontend with its own arguments on top of what the parrot executable already knows about. Thoughts? 06:32
aloha OK. I'll deliver the message.
sorear -0.5 06:33
a lot of our stuff is dependant on pbc2exe
cotto sorear, this would be in addition to what we have now. 06:34
I should clarify that. 06:35
msg whiteknight To clarify, I'm think about profiling as a separate frontend in addition to keeping -Rprofiling et al.
aloha OK. I'll deliver the message.
cotto sleeps 06:45
06:50 UltraDM joined 07:00 ShaneC joined
mikehh got a failure in t/tools/dev/headerizer/01_functions.t - Failed test: 51 - at the end of fulltest :-{ 07:09
never looked at that test before
07:12 fperrad joined 07:25 mj41 joined 07:50 rurban_ joined 07:52 rurban left, rurban_ is now known as rurban 08:52 dod joined 08:59 contingencyplan left 09:19 jjore left 09:22 jjore joined 09:50 ShaneC left 09:55 ShaneC joined 10:11 bacek joined
mikehh seems the change in the re on line 455 of lib/Parrot/Headerizer/Functions.pm is responsible for the error in perl build/tools/build_html.pl 10:14
bah wrong paste - s{t/tools/dev/headerizer/01_functions.t}{perl build/tools/build_html.pl} 10:15
mikehh was building Modern Perl Book in another window :-} 10:16
anyway t/tools/dev/headerizer/01_functions.t gets 'PARROT_ASSERT_ARG(( _abcDEF123 )' wants 'PARROT_ASSERT_ARG(_abcDEF123)' from 'ARGFREE_NOTNULL(( _abcDEF123 )())' 10:21
line 460, fails line 471 of t/tools/dev/headerizer/01_functions.t 10:23
s wrong way round :-} 10:24
10:32 whiteknight joined 10:34 whiteknight left 10:39 whiteknight joined
dalek rrot: d3c36f1 | fperrad++ | t/tools/mk_language_shell.t:
[t] fix on Windows
10:43
whiteknight good morning, #parrot 10:55
mikehh hi whiteknight 11:00
bacek aloha, whiteknight
whiteknight hello mikehh, bacek 11:02
11:02 Psyche^ joined 11:05 jsut_ joined 11:07 Patterner left, Psyche^ is now known as Patterner 11:10 jsut left 11:25 mtk left, lucian joined 11:31 mtk joined
dalek rrot/gc_tuning: 0df0d56 | bacek++ | src/gc/gc_gms.c:
Factor put sweep_pmc and sweep_string functions to simplify debug
12:01
whiteknight has to run valgrind again. last night I forgot --tool=callgrind
that makes me a sad panda 12:02
moritz churns through 2.6GB of profiling data generated by Devel::NYTProf 12:06
12:18 theory joined 12:19 davidfetter joined 12:33 theory left 12:38 lucian left 12:40 davidfetter left 12:44 bubaflub joined 13:02 davidfetter joined 13:11 theory joined
dalek rrot: 806568b | (Gerd Pokorra)++ | / (4 files):
remove pkg-config rests, which is now longer supported, see TT #1853
13:33
13:33 plobsing left, plobsing joined 13:37 contingencyplan joined
whiteknight cotto ping 14:17
Tene ping 14:18
14:29 UltraDM left 14:43 hercynium joined
whiteknight NotFound: ping 14:52
moritz whiteknight: tring ping -b :-)
whiteknight :)
bubaflub ~~ 14:53
NotFound whiteknight: pong 14:59
whiteknight NotFound: has that namespace lookup logic made it into the installable version yet? 15:00
NotFound whiteknight: yeah
The revision titled ".... cross your fingers" ;) 15:01
whiteknight ok
I just cleaned and installed with plumage, and I'm not sure if I have it
or maybe I don't understand it
I need to read more :) 15:02
NotFound whiteknight: is not reasy, that is the reason for the complicated test.
Is something like C++... except when is not. 15:03
whiteknight: just ask any doubt 15:04
pmichaud good morning, #parrot 15:18
dukeleto bubaflub: mornin' 15:22
bubaflub morning dukeleto 15:24
whiteknight yay! callgrind finally completd 15:31
several hours later
core.pm generates 73.47 million PMC headers 15:33
Sub.invoke is called 22 million times 15:34
github.com/Whiteknight/data 15:37
atrodo Yep, that nearly locked firefox up 15:38
pmichaud those numbers seem to not fit 15:40
whiteknight yeah, best not to look at it in the browser
pmichaud: what do you mean?
15:40 mj41 left
pmichaud how many pmcs get created per sub invocation? 15:40
unless "PMC header" != "PMC" 15:41
whiteknight 2ish?
3-4 if we have slurpy params, more if we have autoboxing
pmichaud right
it seems like 22 million Sub.invoke would result in a lot of PMCs... perhaps more than the 73m figure 15:42
atrodo hopefully that's m for million, not m for thousands 15:43
whiteknight the fixed-size allocator is used a whopping 130m times
that's one per PMC, for attribute stores, plus whatever 6model uses, plus other locations like register sets 15:44
pmichaud we aren't running on 6model yet
whiteknight oh
so that's just vanilla parrot using it that much
pmichaud yes 15:45
whiteknight numbers I saw showed the fixed-sized allocator was about 20% faster than malloc for normal loads, so that's a good thing
whether that still holds or not, I have no idea. I can only imagine malloc would be worse 15:47
15:50 rurban_ joined 15:52 rurban left, rurban_ is now known as rurban
dukeleto bubaflub: how was graduation? 15:56
bubaflub dukeleto: great. 15:57
dukeleto: both parents came into town so spent some time with them
dukeleto bubaflub: good to hear 16:00
whiteknight CallContext.destroy takes up 2.10% of execution time. CallContext.push_pmc takes up another ~2% 16:02
all things considered, CallContext.push_pmc looks pretty smart. 16:06
dukeleto bubaflub: so are you still recovering from graduation-induced libations, or are you ready to dig into some code?
cotto ~~ 16:08
whiteknight, poing
whiteknight cotto: I like the idea about a separate frontend for profiling, what do you think it should do?
cotto whiteknight, I'm thinking it's basically the same as parrot (the executable), except that it runs the profiling runcore by default and knows about profiling-specific options. Apart from making parrot reusable, it shouldn't be that much code. 16:09
whiteknight oaky 16:10
okay
so profiling runcore plus some options, minus some other options?
cotto s/, minus.*// 16:11
whiteknight not remove any options? 16:14
cotto I don't see any reason to, and it'd probably simplify the code.
any thoughts on how to make the code in frontend/parrot amenable to reuse? 16:15
dukeleto cotto: have you read www.parrot.org/content/i-think-its-time-break yet ?
whiteknight cotto: my big future-looking idea is to write much of the frontend code in PIR eventually and bootstrap 16:16
that would be extremely amenable to reuse
dukeleto bubaflub: also, eagerly awaiting your bonding period blog post :)
cotto dukeleto, yes. I'm not sure if I have a good approach, but I'll be re-reading, writing down questions/answers and thinking. 16:17
whiteknight, shiny
whiteknight, it sounds like that'd slow down the transition though. What about making the C code reusable? 16:19
16:21 mj41 joined
bubaflub dukeleto: that'll be forth-coming tonight 16:22
16:24 dodathome joined
cotto goes to job 16:25
dukeleto cotto++ # adding hand-assembled m0b 16:29
16:30 theory left 16:31 JimmyZ joined 16:40 whiteknight left
cotto_work ~~ 16:48
dukeleto: I guess that makes me the prototype M0 assembler. 16:59
17:02 JimmyZ left
Tene whiteknight: pong 17:09
dukeleto cotto_work: i will probably move it to a different filename, since where you put it, it will get overridden by my tests 17:20
cotto_work: do we want some type of special behavior in the assembler if a m0b file already exists, or should it always just overwrite it ? 17:21
cotto_work dukeleto: that's probably not optimal.
good idea
dukeleto: I'm fine with clobbering any existing file.
17:21 theory joined, theory left 17:22 theory joined
cotto_work dukeleto: In the typical case, m0b will be much more ephemeral than it is now and clobbering it won't be a big deal. 17:22
Nobody gets sad when a .o object file gets clobbered.
dukeleto cotto_work: yep, just figured I should ask. It is very much like an .o file 17:23
17:28 theory left
cotto_work there goes that theory 17:28
dalek TT #2116 created by dukeleto++: t/library/nciutils.t fails on a plain parrot 17:34
TT #2116: trac.parrot.org/parrot/ticket/2116
TT #2117 created by dukeleto++: t/pmc/nci.t fails when extra nci thunks are disabled
TT #2117: trac.parrot.org/parrot/ticket/2117
TT #2118 created by dukeleto++: t/src/checkdepend.t fails when extra nci tthunks are disabled
TT #2118: trac.parrot.org/parrot/ticket/2118
17:37 theory joined
pmichaud trac won't let me log in 17:42
it accepts my password, but doesn't actually log me in 17:43
(if I put in an incorrect password, it tells me I have an incorrect password -- so the password isn't the issue)
dukeleto pmichaud: interesting 17:45
pmichaud: what happens? do you have access to firebug?
pmichaud what is firebug?
cotto_work pmichaud: I can't duplicate that. Is it possible there's some kind of wacky caching proxy in the way?
pmichaud oh, caching proxy is possible from here
(medical center with diabolical firewall and access policies) 17:46
I'll wait until I get home and try it again.
dukeleto pmichaud: github.com/apenwarr/sshuttle
pmichaud: that is an easy way to get around that
pmichaud: it basically makes a VPN through ssh for you to a remote host, so all your TCP traffic goes through ssh 17:47
pmichaud I do dns tunneling for a lot of my other stuff, but haven't tried it for web yet. hasn't really been an issue until now 17:48
does trac support https: connections?
looks like "no"
that would've solved it also :)
dukeleto trac--
dukeleto goes on a 2 digit TT warpath
PerlJam Um ... I just had a student worker install trac on one of our systems and it uses https 17:49
pmichaud I meant trac.parrot.org, specifically
not the software, necessarily
when I use trac.parrot.org, it's forwarding me to the non-https url
huh, the login is https:/
maybe there's a cache that has grabbed the trac.parrot.org login page and keeps serving it back 17:50
dalek TT #2040 closed by dukeleto++: load_ bytecode with a unicode string fails
TT #2040: trac.parrot.org/parrot/ticket/2040
TT #13 closed by dukeleto++: set up documentation translation infrastructure
TT #13: trac.parrot.org/parrot/ticket/13
18:00 mj41 left 18:04 hercynium left 18:05 hercynium joined 18:39 dmalcolm joined 18:48 theory left, ShaneC left 18:49 bubaflub left 18:51 alester joined 19:04 ShaneC joined 19:13 mtk left, mtk joined 19:24 bubaflub joined 19:37 silug joined 19:39 ambs joined 20:02 lucian joined 20:07 davidfetter left 20:08 davidfetter joined 20:15 tewk_ joined, tewk left 20:21 tewk joined, tewk_ left 20:24 theory joined 20:34 theory left 20:44 theory joined, dodathome left 21:06 soh_cah_toa joined
soh_cah_toa so i've been looking at some nqp code and i was wondering...what are these really ugly statements like pir::getinterp__P() and pir::defined__IP()? 21:16
benabik soh_cah_toa: Those are parrot opcodes.
soh_cah_toa right, i know that
benabik soh_cah_toa: NQP lets you use PIR more or less directly. The __P and __IP are type information.
soh_cah_toa yeah, that's what i mean 21:17
the __*
benabik You need type information to use an opcode. getinterp__P takes nothing and returns a PMC and defined__IP takes a PMC and returns an int
soh_cah_toa so the first letter indicates the return type and the rest are the argument types? 21:18
benabik soh_cah_toa: Basically.
soh_cah_toa hmm...alright
benabik I think there are more types, but the basic four are I N S P for Int, Num, String, and PMC 21:19
soh_cah_toa right 21:20
that's a really weird notation. i'll get used to it i suppose... 21:21
another thing...i can't seem to figure out what the // operator does 21:22
benabik NQP is fairly loosely typed, so the additional information is needed. Not the prettiest, but it does work.
It's like ||, but is based on being defined instead of true.
cotto_work soh_cah_toa: another gotcha is that numbers are N, not I.
benabik So $b // 5 evaluates to 5 if $b is undefined.
soh_cah_toa alright 21:23
benabik Whereas $0 || 5 evaluates to 5 if $b is 0 or false or undefined.
21:23 ambs left
soh_cah_toa ok, what's the advantage of using // over || though? is it true that you could place || anywhere you see //? 21:24
cotto_work: right 21:25
21:25 ShaneC left
benabik soh_cah_toa: $b // 5 only uses 5 if $b is undefined. $b || 5 uses 5 if $b is false in some way, either boolean false, numeric 0, empty string (IIRC), or undefined. // is useful for when you want one of those "false" values to be a possible result. 21:26
benabik actually isn't sure there is a boolean false separate from 0. 21:27
/ is also really handy for confusing C++ programmers.
cotto_work It's nice to have a language that knows that the semipredicate problem is a thing.
soh_cah_toa benabik: yeah, no kidding :)
21:28 theory left 21:29 dmalcolm left
soh_cah_toa so '$foo // $bar' is like 'defined $foo || defined $bar'? 21:30
benabik More like: defined $foo ?? $foo :: $bar 21:31
Tene soh_cah_toa: no, it's: (defined($foo) ? $foo : $bar)
21:32 theory joined
benabik Having written a lot of Java code that uses (objA != null ? objA : default), I really appreciate //. 21:32
soh_cah_toa so it actually evaluates to one of the values being tested, not a boolean value
benabik Exactly.
soh_cah_toa interesting...
i suppose it would make those nested ternary tests a whole lot cleaner looking 21:33
21:34 davidfetter left
soh_cah_toa wow, i was looking up more info on the short-circuit default operator and i found this bad boy: 21:36
glyphic.s3.amazonaws.com/ozone/mark...300dpi.jpg
benabik I showed that to my compiler teacher and he sputtered a bit.
soh_cah_toa ha
22:01 fperrad left
bacek_at_work ~~ 22:08
soh_cah_toa, (various __* suffixes) you can get full list from compilers/pct/src/PAST/Compiler.pir 22:12
22:30 alester left 22:33 bubaflub left 22:38 theory left 22:44 kid51 joined 22:45 theory joined 22:52 theory left 22:55 hercynium left 22:56 bubaflub joined
kid51 backscrolls 23:00
msg pmichaud We eventually recovered Trac passwords lost around May 5, so if you reset your password then, try the password you originally had. (Or bite bullet and request new password.) 23:01
aloha OK. I'll deliver the message.
cotto_work kid51: it's more likely that a caching proxy is to blame 23:05
23:16 janus left, janus joined
dalek TT #2115 closed by jkeenan++: t/tools/dump_pbc.t and pbc_disassemble.t: new test failures 23:20
TT #2115: trac.parrot.org/parrot/ticket/2115
23:50 rurban_ joined 23:52 rurban left 23:53 rurban_ is now known as rurban 23:59 hercynium joined