Camelia, the Perl 6 bug

IRC log for #parrot, 2008-04-08

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:02 paco joined #parrot
00:11 * Coke pongs whoever that was.
00:12 particle lazy bum
00:25 Coke floss?
00:25 purl floss is probably Free/Libre and Open Source Software :  http://en.wikipedia.org/wiki/FLOSS or useless to a toothless bot
00:26 diakopter cpan is not installing Test::TAP::HTMLMatrix on x86 solaris 10.  grrr.  test failures in Petal.
00:32 Coke oh, duh. "make -j realclean"
00:32 Coke (damn that's faster.)
00:44 Coke what is t/library/mt19937ar.t ??
00:48 diakopter well, Petal installed using the system perl.  the system perl it is.
00:54 cotto_work that was committed earlier today: http://www.parrotvm.org/svn​/parrot/revision/?rev=26843
00:55 Coke test is failing.
00:55 * Coke sees why.
00:59 dalek r26849 | coke++ | trunk:
00:59 dalek : [build]
00:59 dalek : Generate PBCs for two recently added library PIR files: This allows
00:59 dalek : the newly minted test for mt19937ar a chance to pass.
00:59 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26849
01:00 * diakopter finishes setting up the x86 solaris autosmoker
01:10 diakopter http://tinyurl.com/3ujukq
01:15 * skids would like to smoke on hp-parisc debian but still alignment problems as of last night's cvs.
01:15 skids won't even build.
01:16 * diakopter takes a vote: netbsd or freebsd for the next autosmoker.  or both?
01:17 diakopter i'll take that as a both.
01:32 Infinoid both++
01:32 Infinoid skids: what alignment is hp-parisc, anyway?  and what are the problems?
01:33 Infinoid ok, you know you've been playing too much D&D when you think "alignment" in the "good or evil" sense, and automatically turn that into "big and little endian", without realizing alignment is something else.
01:35 skids I think it's probably the same issue as i86 32bit-on-64-bit would have.  Hold on let me grep for the IRC log
01:38 particle you can perl Configure.pl -m=32 or something like that
01:38 particle that will build 32bit on a 64bit arch
01:39 particle --m=32               Build 32bit executable on 64-bit architecture.
01:39 particle memory++
01:40 Infinoid let me try that
01:40 particle leo used to do it all the time on amd64-linux
01:40 Infinoid but, uh... if amd64 running x86 code has different alignment constraints, that doesn't sound like very good x86 emulation
01:40 Infinoid so it surprises me.
01:41 particle diakopter: you may find the smoke cycle is faster with rm -rf * && svn extract rather than make realclean && svn up
01:41 particle yeah, i don't expect different alignment constraints
01:42 Infinoid all right, more -j bugs
01:42 Infinoid src/pmc/parrotio.c:17:35: error: pmc_fixedintegerarray.h: No such file or directory
01:43 Infinoid src/pmc/parrotinterpreter.c:17:35: error: pmc_fixedintegerarray.h: No such file or directory
01:43 particle hrmm
01:43 particle i wonder if that's fallout from recent FIA changes
01:44 particle probably not
01:44 Infinoid Coke seemed to have a master plan regarding automatic dependency generation, which sounded like a good idea
01:44 Infinoid maybe it missed this.  or maybe there's something we need to update
01:45 skids Infinoid: http://nopaste.snit.ch/12492
01:45 skids Oops I guess maybe that expired.
01:45 * Infinoid needs a libicuuc
01:45 Infinoid (a 32 bit one, that is)
01:46 tetragon ICU4C?
01:46 Infinoid that might be a Configure.pl bug.  Could it have detected the 64 bit one by accident?
01:46 Infinoid tetragon: huh?
01:46 tetragon libicu is from ICU4C
01:47 Infinoid [...]/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-linux-g​nu/4.2.3/../../../libicuuc.so when searching for -licuuc
01:47 Infinoid [...]/ld: cannot find -licuuc
01:47 tetragon It's ICU4C
01:48 Infinoid thanks.  unfortunately, gentoo tends to group 32-bit emulation libs into emulation packages, and I'd rather just find a way to disable ICU in Configure.pl
01:48 Infinoid (gentoo's system makes it hard to find which package to install)
01:48 nopaste "skids" at 71.233.204.100 pasted "parrot build warnings and failure on PA-RISC linux" (70 lines) at http://nopaste.snit.ch/12643
01:49 tetragon --without-icu?
01:49 skids http://nopaste.snit.ch/12643 <<-- is from older svn co but many of the same warning and same failure when I checked yesterday.
01:49 Infinoid oh.  pointers have alignment constraints?
01:49 Infinoid tetragon: thanks, trying that now
01:50 Infinoid skids: is there a way we can tell gcc to apply those constraints to the integers (or whatever) that are being casted?  can we wrap it up into a PARROT_STRICT_ALIGN macro somehow?
01:50 skids Yeah in some environments various things are aligned differently and pointers have more bits if they are char * or point to code vs data.
01:51 Infinoid wonderful.  no wonder ia64/pa-risc has the most linker code of any architecture.
01:51 skids Well, if I were a C99 expert I could answer that :-)  As it is I can just know vaguely what the problem is.
01:51 Infinoid sooo... is there an __attribute__((align=picky)) or somesuch? :)
01:53 skids A lot of the code chunks are copying to a local var anyway, and if the macros can rearrange into memcpy that would work... see the URL in the nopaste for a BSD hacker's take on the matter.
01:54 Infinoid I don't see a URL
01:54 particle luckily, that platform isn't required for parrot 1.0
01:54 Infinoid thanks for helping me to understand this btw :)
01:54 particle it'd be nice to have, but we can march forward without it
01:55 skids Well you know -- 64bit -- with it you have huge ass pointers that choke your memory bus.  Without it you have crummy memory paging tricks.
01:55 skids What's a guy to do?
01:55 Infinoid we'll see how painful it is to fix up... if we can macroize it into something that gets declared along with variables that get involved with pointer casting, it probably won't be too bad.
01:55 * particle really wants amd64/win32 fixed up
01:56 Infinoid skids: run out of memory, just like I do on amd64 :)
01:56 Infinoid I used to think 2 gigs was big.  Heh.
01:56 tetragon Infinoid: I grew used to running out of address space on my 32-bit processes
01:57 Infinoid tetragon: yeah, that's a problem too.  but my current one is, amd64 process memory footprints are twice as big as x86 ones, so 2GB of RAM just doesn't cut it
01:58 Infinoid for years I was thinking we should formally introduce RAM as a form of currency.  But the inflation rate is horrid.
01:58 tetragon Infinoid: I'm more used to Power/PPC64 than amd64
01:58 skids yeah well ram is cheap, bandwidth is the real problem.
01:59 Infinoid skids: any chance you can dig up that BSD hacker's URL?
02:00 Infinoid particle: what's the issue with amd64/win32?  does it run?  does parrot build?
02:00 particle doesn't config
02:01 particle oh wait
02:01 particle it builds, but everything's all funky
02:01 particle it basically always segfaults because sizeof int and sizeof ptr are different
02:02 particle the backtraces are fun. the interp is at a different location in every stack frame
02:02 skids http://mail-index.netbsd.org/t​ech-kern/2003/08/11/0001.html
02:02 skids sorry i thought it was in there
02:02 tetragon What's so strange about LP64 platforms?
02:04 Infinoid hmm
02:04 Infinoid particle: what's so different about amd64/linux and amd64/win then?  coz it all works here.
02:05 Infinoid JIT is disabled by default... otherwise things are looking pretty good.
02:05 particle it's windows that has the size differences
02:05 particle translating from function to data pointers and vice versa
02:06 * Infinoid blinks
02:06 Infinoid both of my pointer types are 64 bit
02:06 particle there are incorrect assumptions in the parrot source that sizeof int == sizeof ptr
02:06 Infinoid I've fixed all of those that I've come across
02:07 Infinoid are your data pointers and function pointers really different sizes?  wow.
02:07 particle i'm updating my 64bit wc, i'll try to rebuild
02:07 tetragon http://msdn2.microsoft.com/en-u​s/library/aa384264(VS.85).aspx
02:07 particle yep
02:07 Infinoid that sounds painful to fix
02:09 particle which is pretty much why it isn't fixed yet
02:09 Infinoid all pointers are 64-bit, here.  I'm in shock :)
02:12 particle i've gotta eat. perhaps we can take it up later, or tomorrow.
02:12 particle tetragon++ for the nice link
02:12 * particle runs configure & make and walks away
02:14 skids (and will return to figure out he was not in the cwd he thought he was :-) )
02:23 kid51 joined #parrot
02:25 skids re freeze/thaw what's it used for?  Because for complex structures you can spend extra cpu time making them dense for low-bandwidth network transmission, or not if they are just being packed for relocation or something.
02:48 Coke are we still having those new make -j failures? I can't see where the pmcs you refer to actually include those files they were complaining about.
02:52 Coke (and the automatic dependency checker for PMCs is already checked in...)
02:53 Infinoid I'll try to reproduce it, I think the delay from not using ccache helped
02:53 Infinoid it occurred while I was doing a Configure.pl -m=32 on amd64, so there may have been other weirdnesses occurring
02:53 Coke ah. I can duplicate it.
02:54 Coke (with a clean, and then "make src/pmc/parrio.o"
02:58 Coke (will have this fixed shortly)
03:00 purl joined #parrot
03:13 Coke Infinoid: fixed.
03:13 dalek r26850 | coke++ | trunk:
03:13 dalek : [build]
03:13 dalek : Improve dependencies-
03:13 dalek : * some static .h files depend on autogenerated .h files, be explicit.
03:13 dalek : * using METHOD requires FIA.
03:13 dalek : This fixes the broken deps for src/pmc/parrot{interpreter,io}.o
03:13 dalek : Infinoid++ for finding the bug.
03:13 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26850
03:17 particle joined #parrot
03:20 * Coke writes a quick script to check the deps on all the other pmc files.
03:21 Infinoid Coke++
03:23 Coke ooh, found one.
03:39 Coke odd, I can't duplicate that one. =-)
03:49 Coke make -j 666 world works.
03:50 Infinoid there isn't enough parallelization in the build tree to allow that many processes
03:50 Infinoid otherwise, make -j without a count would hose systems
03:50 Infinoid which one was failing?
04:09 Coke fixedintegerarray.pmc failed for me once, but I was unable to duplicate it on a retry; I had thought it was because I had added it as another dep of itself, but it seems ok.
04:29 * Coke finds a bogus op.
05:00 dalek r26851 | coke++ | trunk:
05:00 dalek : Resolve ticket #46479 (Remove rt.saved.search from tools/util/release.json?)
05:00 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26851
05:10 dalek r26852 | coke++ | trunk:
05:10 dalek : Resolve ticket #46911 ([TODO] [Perl] Investigate todo item within tools/dev/install_files.pl)
05:10 dalek : Remove old TODO comment that didn't tell us what to do.
05:10 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26852
05:15 Dave joined #parrot
06:15 uniejo joined #parrot
07:02 iblechbot joined #parrot
07:30 dalek r26853 | fperrad++ | trunk:
07:30 dalek : [docs]
07:30 dalek : since r26756, list_unjitted.pl moved in tools/dev
07:30 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26853
08:33 IllvilJa joined #parrot
08:34 Senaka joined #parrot
08:34 Senaka purl: seen infinoid
08:34 purl infinoid was last seen on #parrot 4 hours and 44 minutes ago, saying: which one was failing?
08:35 Senaka hi all... when is the #parrot-sketch meeting? in GMT?
08:36 cosimo_ joined #parrot
08:36 cosimo joined #parrot
08:37 Senaka ok got it
08:37 Senaka purl: parrotsketch
08:37 purl i think parrotsketch is 18:30 UTC, Tuesdays or a weekly status meeting for parrot design team
08:55 ruoso joined #parrot
08:58 Debolaz_ joined #parrot
09:01 Maddingu1 joined #parrot
09:01 skids joined #parrot
09:08 particle joined #parrot
09:13 ruz joined #parrot
09:16 Khisanth joined #parrot
09:24 AndyA joined #parrot
09:35 tetragon joined #parrot
09:35 skids joined #parrot
10:15 ambs joined #parrot
10:24 rotty how do the lib/Parrot/Test/<Language.pm> files relate to the test harness?
10:28 AndyA_ joined #parrot
11:36 AndyA joined #parrot
11:48 paco joined #parrot
11:56 AndyA_ joined #parrot
11:58 Daveman joined #parrot
12:00 Ademan_ joined #parrot
12:02 iblechbot joined #parrot
12:15 ambs joined #parrot
12:16 rotty seen barney?
12:16 purl barney was last seen on #parrot 15 hours and 22 minutes ago, saying: calling it a day, looking forward to rotty's patches
12:19 ambs seen merlyn?
12:19 purl merlyn was last seen on #moose 18 days and 14 hours ago, saying: ... http://methodsandmessages.vox.com/lib​rary/post/the-year-of-smalltalk.html  [Mar 20 15:09:20 2008]
12:19 ambs :-S
12:50 Daveman joined #parrot
12:58 kj joined #parrot
13:01 dalek r26854 | fperrad++ | trunk:
13:01 dalek : [Lua]
13:01 dalek : - fix table.sort()
13:01 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26854
13:05 wknight8111 joined #parrot
13:22 skids joined #parrot
13:37 wknight8111 anybody else try to build this morning on r26854?
13:39 pmichaud I was just about to do so :-)
13:39 pmichaud takes about 2 min
13:40 * ambs svnups
13:41 pmichaud seems to work fine here
13:41 pmichaud at least, I was able to build okay
13:43 paco making
13:43 ambs builds ok
13:44 diakopter I just smoked r26843 on several platforms
13:44 diakopter oops r26853
13:44 ambs this is not smoking yet, but with the heat it should smoke soon O:-)
13:44 wknight8111 I ran it just now on the latest, and make is complaining about a cyclic dependency
13:44 pmichaud wknight8111: what platform?  have you recently done a 'make realclean'?
13:45 wknight8111 i did nmake realclean, configure, nmake.
13:45 wknight8111 #52596
13:46 wknight8111 did it twice, actually. same result both times
13:46 particle nopaste?
13:46 purl i think nopaste is at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://rafb.net/paste or http://paste.husk.org/ or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or don't bother me while I'm eating
13:49 nopaste "ambs" at 77.54.92.255 pasted "Test Summary Report - Mac OS 10.5.2" (10 lines) at http://nopaste.snit.ch/12647
13:50 ambs 1 test failing
13:51 paco on linux  make smoke ok
13:53 nopaste "wknight8111" at 71.230.33.251 pasted "Build error on r26854" (56 lines) at http://nopaste.snit.ch/12648
13:53 Coke wknight8111: bah. that's my fault: gmake apparently says 'oh, that's a circular dep, I'll drop it.'
13:53 Coke hang on.
13:53 purl i guess hang on. is this from the command prompt, or from within the ide?
13:54 wknight8111 okay, thanks
13:54 rotty why does the test harness execute this: [perl -le '... some code...'] ?
13:55 Theory joined #parrot
13:56 AndyA joined #parrot
13:56 Coke wknight8111: is it possible to get nmake to *tell* us what the circular dep is?
13:58 rdice joined #parrot
13:58 iblechbot joined #parrot
13:58 pmichaud coke:   http://nopaste.snit.ch/12648
13:59 pmichaud says it's src\pmc\pmc_fixedintegeraray.h
13:59 Coke ... that tells us one node in the cycle. =-)
13:59 pmichaud ah
14:03 Coke wknight8111: can you try removing the dep of src/pmc/pmc_fixedintegerarray.h from src/pmc/pmc_fixedintegerarray.dump and rebuild?
14:05 Coke ah, I can at least get the error message with 'make src/pmc/fixedintegerarray.o'
14:07 ambs me too
14:08 diakopter Coke: in languages-smoke on linux, it was hanging up on tcl/t/cmd_expr.t for a very long time
14:08 Ademan_ joined #parrot
14:10 Coke diakopter: yes, it's slow.
14:12 wknight8111 I dont think nmake can be more verbose, I'll check the options
14:13 wknight8111 no, it doesnt have a more verbose error reporting mode
14:13 Coke wknight8111: fixed, I think.
14:14 Coke sadly, I had a patch very similar to that which i threw out yesterday because it didn't seem to be needed on my box. Thanks for the report.
14:14 dalek r26855 | coke++ | trunk:
14:14 dalek : [build]
14:14 dalek : Avoid circular dependency for fixedintegerarray: while it's used for METHODs,
14:14 dalek : we can't have it require it to be built before it's built.
14:14 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26855
14:14 wknight8111 let me try updating to that and see if it fixes my problem
14:15 ambs seems to build ok
14:16 * ambs makes real clean and tries from scratch
14:16 Coke you'd need a reconfig at least.
14:21 AndyA_ joined #parrot
14:22 ambs ccache++
14:23 Coke ... make -j ++ ++ ++
14:23 ambs Coke: does parrot compile with -j already?
14:24 Coke yes.
14:24 Coke if it doesn't, tell me.
14:24 ambs nice
14:24 paco I can compile with -j
14:24 particle can we config with -j ;)
14:24 ambs nice
14:25 Coke particle: we could if we switched our config to a makefile.
14:25 Coke config dep management.
14:26 particle P::FM could be used
14:26 Infinoid make -f Configure.mk -j
14:26 Infinoid make -j
14:26 particle but, really, || test is where we need to go
14:26 Infinoid make test -j
14:31 nopaste "particle" at 24.19.3.148 pasted "infinoid: that stack trace i promised you" (37 lines) at http://nopaste.snit.ch/12650
14:32 * particle has a mexican jumping interp
14:32 particle libparrot.dll!runops_slow_core(parrot_interp_t * interp=0x0000000000000000, ...
14:32 particle whee!
14:33 cognominal scary
14:33 Infinoid stack smash?
14:34 particle this is life with parrot on x86_64-msvc
14:34 Infinoid that almost looks like a buggy stack dumper.
14:34 Infinoid thanks for the paste
14:35 particle if i step through a program, i can watch the interp move around
14:35 particle it's not the dumper that's buggy
14:36 AndyA joined #parrot
14:44 wknight8111 yeah, build worked this time! Thanks Coke++
14:48 AndyA joined #parrot
15:20 contingencyplan joined #parrot
15:27 ask_ joined #parrot
15:31 peeps[work] joined #parrot
15:35 cognominal joined #parrot
15:39 grim_fandango joined #parrot
15:39 contingencyplan joined #parrot
15:48 Theory joined #parrot
15:49 Coke wknight8111: heh. break the build, fix teh build, get karma. =-)
15:49 rotty karma rotty?
15:49 purl rotty has neutral karma
15:50 particle rotty++
15:50 particle ...and it begins.
15:50 rotty karma rotty?
15:50 purl rotty has karma of 1
15:50 rotty :)
15:50 rotty thanks
15:50 particle karma particle
15:50 purl particle has karma of 1277
15:50 nopaste joined #parrot
15:51 * particle waits for 1337
15:51 particle karma coke
15:51 purl coke has karma of 1837
15:51 particle karma must be age-based :P
15:51 purl must be age-based :p has neutral karma
15:52 particle purl is so stupid.
15:52 cotto_work purl, purl?
15:52 purl i heard i was going alone. or almost an anagram of Donaudampfschiffahrtskapitaensmuetzenkordel or a perv or an auto-triage bot or a she or so stupid or a smartass or the sixth beatle. or http://www.infobot.org or dumb or a butt sniffer
15:56 sjansen joined #parrot
16:00 wknight8111 purl is definitely a butt sniffer
16:01 wknight8111 purl, purl?
16:01 purl i am going alone. or almost an anagram of Donaudampfschiffahrtskapitaensmuetzenkordel or a perv or an auto-triage bot or a she or so stupid or a smartass or the sixth beatle. or http://www.infobot.org or dumb or a butt sniffer
16:02 wknight8111 it's the small things in life
16:04 contingencyplan joined #parrot
16:32 kj joined #parrot
16:32 kj left #parrot
16:46 particle Tests=11110
16:47 particle yay! parrot has thirty tests now.
16:47 Tene hehe
16:49 wknight8111 how often is the documentation on parrotcode.org updated to reflect the current file documentation?
16:57 particle every hour or so iirc
16:57 particle or maybe it's daily. coke would know
16:58 wknight8111 oh, i didn't realize it was so frequent. I was under the impression that some of the files were a little out-of-date
17:03 particl1 joined #parrot
17:04 particle opbots, names
17:20 ambs joined #parrot
17:23 jonathan particle: I can't make parrotsketch, will you be there? If so, I can paste you my report in /msg
17:25 particle paste it to #parrotsketch
17:25 particle it's logged, after all :)
17:25 jonathan oh, good idea ;-)
17:25 jonathan well, mention I left it there :)
17:25 particle sure
17:25 jonathan don't want to look like I'm slacking ;-)
17:26 jonathan ok, done
17:26 jonathan gotta go - dinner with $DAYJOB folks
17:27 particle ~~
17:29 * Infinoid gets back from the dentist with half his face numb
17:29 particle ...as long as it's not the top half...
17:29 pmichaud I always noticed that major portions of my wallet were missing... :)
17:29 Coke docs on the website are cached for 24 hours usually.
17:30 * particle welcomes our viewers who have just returned from scrollbackland
17:32 * Coke fires up his UTC clock.
17:33 pmichaud 17:33 here
17:33 Coke hai.
17:33 ambs 18:33 here
17:33 pmichaud ambs, your UTC clock is an hour off :-)
17:33 Coke PS in about an hour, or your parrot is free.
17:33 Coke it's 18:33 in london. =-)
17:33 ambs Coke: and portugal
17:33 purl portugal is .pt
17:33 * Coke is guessing they just went to DST or something.
17:33 ambs yes
17:34 pmichaud 18:33 in london, yes.  but it's still 17:33 (now 17:34) UTC
17:34 ambs for one week or two. Can't remember
17:34 Coke ambs;OH. you meant here==where you are, not here==utc from your standpoint. =-)
17:34 ambs pmichaud: true
17:34 pmichaud utc is the same everywhere
17:34 Coke english is hard.
17:35 Coke wknight8111: don't respond to the autoreply, respond to the ticket. =-)
17:37 wknight8111 man, I'm bad at this whole system
17:37 wknight8111 I need to be banned from all this
17:39 Coke nbd. just that no one else has your original autoreply, so it shows as two threads now. =-)
17:47 rotty why does the test harness evaluate "perl -le "print join qq[\n], @INC" ?
17:48 Infinoid are you asking what it does?
17:48 rotty what it does and why it's there
17:49 Infinoid it's grabbing perl's module search-path
17:49 avar if it's screwing with your non-p5 harness_perl you might be interested in the hack I used in kp6 to get around that
17:49 rotty Infinoid: it does that even when the "exec" parameter to the harness is set to something different from perl, which will not work
17:50 rotty avar: kp6?
17:50 purl somebody said kp6 was mean as an infrastrucure to implement STD
17:50 Infinoid rotty: where?  having trouble grepping for that
17:50 avar kindaperl6
17:51 rotty avar: where is the kp6 code? it's neither under languages nor compilers...
17:51 pmichaud kp6 is in the pugs repo
17:51 rotty Infinoid: don't know, I also could not find the causing place...
17:51 Infinoid hmm.
17:52 pmichaud who (if anyone) is working on parrot's test harness at the moment?
17:52 avar I basically did exit 0 if "@ARGV" =~ /perl -le "print ... /
17:52 avar in the kp6 executable, there may be a better way around it
17:52 Infinoid rotty: oh, it looks like test harness boilerplate.  its in Test::Harness::Straps (that's /usr/lib/perl5/5.10.0/Test/Harness/Straps.pm on my system)
17:53 Coke kp6 is also "kinda perl 6"
17:53 purl okay, Coke.
17:54 rotty can someone fix the Parrot harness to not invoke that boilerplate if exec is not perl?
17:54 * rotty is a Perl noob
17:55 Coke how are you running the parrot harness if your exec is not perl?
17:55 Infinoid its a side effect of using the normal perl Test::Harness, which was written with perl in mind.  I'm not sure what's the best way to tackle that
17:56 * avar suggests his way of doing it:)
17:56 avar or write a shellscript wrapper around your program
17:56 rotty Coke: use Parrot::Test::Harness language => 'eclectus', exec => [ 'petite', '--script' ],
17:56 Coke ah.
17:59 rotty Infinoid: can't one somehow override that behaviour in Parrot::Test::Harness ?
18:02 Infinoid rotty: considering your command line is straight from the Parrot::Test::Harness SYNOPSIS, it would probably be a good idea to make it work *somehow* :)
18:02 pmichaud rotty:  what problem are you looking at/trying to address?
18:03 pmichaud (high level)
18:03 rotty pmichaud: running tests with an interpreter that is not perl
18:03 pmichaud rotty:  languages/perl6 does it
18:03 pmichaud as does languages/abc
18:05 rotty pmichaud: these use `compiler => ...', not `exec => ...'
18:06 pmichaud so, you need it to run tests with an interpreter that is neither perl nor parrot
18:06 rotty pmichaud: exactly
18:06 pmichaud and exec => doesn't work?
18:07 rotty pmichaud: it sorta does, but there is an spurious invocation of the interpreter with args only suited for Perl
18:09 pmichaud rotty:  okay.  I think I remember seeing a problem like that somewhere before.
18:09 pmichaud I'm of the opinion that we should re-do parrot's test harness from scratch
18:11 particle starting... now.
18:12 pmichaud I was going to ask questions about it during #ps today
18:12 pmichaud should we stick to Test::Harness, or move to TAP::Harness?
18:12 Infinoid if you're going to design a new one from scratch, please *please* design it with parallel execution in mind
18:12 pmichaud we still need Test::TAP::HTMLMatrix?  What dependencies do we have?
18:12 Coke ... isn't ewilhelm already on this?
18:13 particle ewilhelm or AndyA can tell us a bit about how TAP::Harness fairs on the platforms we care about
18:13 Coke we only need tth for our existing smoke setup, which we've already discussed dumping.
18:13 particle or whether they think it's ready to support our needs. i'm fairly certain the answer is "yes"
18:13 pmichaud Coke: perhaps, but my impression is that ewilhelm is more interested in helping someone else build the parrot harness as opposed to building it himself
18:13 particle the folks in oslo were working on the yaml diagnostics for tap
18:14 particle i don't know how long until we have a framework built around it that we can use for smoke
18:14 pmichaud well, my reason for wanting to support tth is so that we can get a public "here's what passes" display for rakudo
18:15 kj joined #parrot
18:15 Infinoid can we do that on the server side?
18:15 Infinoid one less dependency that way :)
18:15 pmichaud Infinoid: can we do... what? ... on the server side?
18:16 Infinoid the public "here's what passes" display
18:16 pmichaud so, the local make smoke passes the test results to a server which then formats it into html?
18:17 pmichaud in other words, we just need a tap => html tool or something?
18:17 Infinoid maybe I'm confused.  how does yaml tie into this?
18:18 pmichaud I don't understand that part either :-)
18:18 Infinoid if you guys want to support yaml, you can.  it can be converted to html later if needed
18:19 particle Infinoid: the tap infrastructure is destined to support yaml
18:19 particle so the output would be yaml already
18:19 particle then it's a matter of writing something that merges the yaml streams and converts to html
18:20 pmichaud does it need to be yaml?  why not just parse the tap output?
18:20 Coke "why not just use something that already exists". =-)
18:20 pmichaud coke:  what do we have that exists and works?
18:20 Coke smolder?
18:20 purl smolder is http://sourceforge.net/projects/smolder or web-based smoke test aggregator used by developers and testers to upload (automated or manually) and view smoke/regression tests using the Test Anything Protocol (TAP).
18:22 AndyA_ joined #parrot
18:26 pmichaud smolder looks promising
18:28 chromatic joined #parrot
18:29 particle smolder++
18:30 ambs seen merlyn
18:30 purl merlyn was last seen on #moose 18 days and 20 hours ago, saying: ... http://methodsandmessages.vox.com/lib​rary/post/the-year-of-smalltalk.html  [Mar 20 15:09:20 2008]
18:30 chromatic #ps time
18:30 particle merlyn doesn't hang out gere
18:30 particle here
18:30 rotty Infinoid++
18:31 ambs particle: I know, but purl stands on #perl
18:31 ambs O:-)
18:31 Infinoid rotty: what did I do?
18:33 rotty you told me about Test::Harness::Straps :)
19:03 Senaka joined #parrot
19:06 Senaka joined #parrot
19:06 Senaka left #parrot
19:06 rdice_ joined #parrot
19:11 dalek r26856 | fperrad++ | trunk:
19:11 dalek : [Lua]
19:11 dalek : - fix random library
19:11 dalek : - add tests
19:11 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26856
19:12 nopaste "particle" at 24.19.3.148 pasted "sizes" (10 lines) at http://nopaste.snit.ch/12652
19:12 mj41 smolder or my TapTinder .... http://mj41.cz/wiki/TapTinder :-)
19:20 particle hrmm... taptinder.
19:24 nopaste "chromatic" at 63.105.17.30 pasted "Does This Fix 64-bit Pointer Size Problems in UnManagedStruct?" (282 lines) at http://nopaste.snit.ch/12653
19:28 Coke chromatic++ # managing PS.
19:29 chromatic The src/mmd.c assertion checks for four-byte pointer alignment, I think.
19:29 chromatic I'm trying to decide if it has endian problems.  I don't think so.
19:30 chromatic I don't know a portable way to check if a pointer is properly aligned though.  I suspect the compiler won't let you make one that isn't.
19:30 chromatic (or it's a bad compiler)
19:30 Coke chromatic: you have a few tickets assigned to you that may be leftovers. Can you ditch anything that's assigned to you that you don't want?
19:30 chromatic ditch or fix?
19:31 Coke well, fix would be best, but if they're ones you're not going to get to them soon, ditching them is probably better.
19:32 particle Figuring out how to pack() Parrot's types...Configure.pl:  Unable to find an integer type that fits a pointer.
19:33 Infinoid particle: how is your perl built?
19:33 * particle tees his configure and make output for 64bit
19:33 particle Infinoid: it's activestate's 64bit build
19:33 particle i can get details. do you want -V ?
19:34 Infinoid no thanks, pack() should have something, we're just detecting it wrong
19:34 nopaste "particle" at 24.19.3.148 pasted "perl -V" (93 lines) at http://nopaste.snit.ch/12654
19:34 particle well, there it is anyway
19:35 Infinoid twist my arm a little harder. :)
19:35 particle nopaste.pl++
19:36 Theory joined #parrot
19:37 Infinoid wait, what?
19:37 purl wait, is -L "follow link" or "gimme information about the link proper"...
19:37 Infinoid intsize=4, longsize=4, ptrsize=8, doublesize=8, byteorder=12345678
19:37 Infinoid your sizeof(long) isn't sizeof(void*)
19:37 nopaste "particle" at 24.19.3.148 pasted "configure output" (86 lines) at http://nopaste.snit.ch/12655
19:37 particle that's correct.
19:38 chromatic There's one problem then.
19:38 particle it's how the platform's designed. don't blame me
19:39 particle gotta love that long long isn't c89
19:39 Infinoid purl, forget wait,
19:39 purl Infinoid: I forgot wait,
19:39 particle so there's no way to fully support c89 on this platform
19:40 spinclad there's no uint64 or such?
19:40 particle http://msdn2.microsoft.com/en-u​s/library/aa384264(VS.85).aspx
19:41 rotty seen barney?
19:41 purl barney was last seen on #parrot 22 hours and 47 minutes ago, saying: calling it a day, looking forward to rotty's patches
19:41 ambs joined #parrot
19:42 Infinoid weird that activestate 64bit is built with use64bitint=define, yet intsize and longsize are both 4
19:43 particle oh, god, no. trying to install parrot 0.4.12?
19:43 * Coke is replying.
19:43 Coke btw, someone forgot to update parrothist.pod
19:43 Infinoid particle: perl -e 'my $var = pack("q", 1); print(length($var), "\n")'
19:43 Infinoid does that print 8?
19:43 Coke ... or, I'm an idiot.
19:43 * Coke checks.
19:43 Coke idiot. check.
19:44 Infinoid t/codingstd/idiot.t..... ok (idiot detected)
19:44 particle Infinoid: 8
19:44 Psyche^ joined #parrot
19:44 allison joined #parrot
19:45 Infinoid ok, that's the packtype we need, now to get it detected properly
19:45 particle t/project/architect.t...ok (allison detected)
19:46 confound haha
19:46 allison hi particle
19:47 allison I was able to get my driver's license and vehicle registration changed, fingers crossed that the license will arrive in the mail before I leave the country next Wednesday
19:48 particle one step forward....
19:51 Coke what's the new VM for perl6? Chuck Norris. One punch and your code will run in half the time.
19:51 allison :)
19:52 pmichaud is that going to be the name of the next release?  ;-)
19:52 pmichaud s/the next/a future/
19:53 * Infinoid suggests "and boy are its arms tired"
19:53 allison 0.6.1 codename "Chuck Norris"
19:53 cotto_work shouldn't that name be saved for a more mature release?
19:54 Infinoid hah
19:54 allison 62.99.99
19:54 ambs lol
19:56 chromatic Re: pa-risc, I vote for removing the lines 1974-1976 in src/mmd.c
19:57 allison those were bad years anyway ;)
19:58 ambs lololol
19:58 * ambs wasn't around yet
19:58 particle that's why they were so bad
19:58 pmichaud (1974-76)  I agree.  I was quite pleased when the 80s finally rolled around
19:59 chromatic ITYM "Morning in America"
20:00 chromatic Oh hey, here's the problem.
20:00 chromatic include/parrot/parrot.h:142-153
20:00 chromatic If pointers and intvals are the same size, hooray!
20:01 chromatic Otherwise if pointers and longs are the same size, hooray!
20:01 particle egad.
20:01 chromatic Otherwise, pointers and unsigned ints are the same size!  They must be!  What else might they be?
20:01 confound heh
20:01 Infinoid I think win64 needs to use hugeintval here
20:02 chromatic I think something needs to use "IT'S NOT AN INT OKAY?" there.
20:02 particle why not check to see if INT64 is defined?
20:02 pmichaud argggh, I've been reading perl too long.  At first I thought all those lines were comments.  :-|
20:02 ambs lololol
20:02 particle let's set up a trigger to prevent pmichaud from committing c code
20:02 Coke sachmet?
20:04 confound Coke: not here
20:07 nopaste "Infinoid" at 96.238.213.50 pasted "particle: so... does "long long" work? (possible_win64_fix.diff)" (86 lines) at http://nopaste.snit.ch/12656
20:08 Infinoid particle: I'm looking at the "Figuring out how to pack() Parrot's types...Configure.pl:  Unable to find an integer type that fits a pointer." line from your Configure.pl output.
20:10 Coke confound: I was asking purl.
20:10 confound oh, sorry.
20:10 Coke np. =-)
20:10 nopaste "particle" at 24.19.3.148 pasted "configure output, post patch" (85 lines) at http://nopaste.snit.ch/12657
20:11 Infinoid you know, I'm not sure the "ptrconst" value probed for is ever actually used
20:11 Infinoid but I guess that fixed it.  thanks for testing, particle
20:12 particle i'm rebuilding now
20:13 particle lots of conversion and pointer truncation warnings still remain
20:13 Infinoid "ack -a" only reports the detection, testsuite, and generated config output.  ptrconst isn't ever used, that I can see
20:13 * Infinoid fixed something worthless!  o/
20:13 particle priceless.
20:14 ambs hehehe
20:14 Coke if it's never used can we rip it out now?
20:15 nopaste "chromatic" at 63.105.17.30 pasted "Avoid (Some) Pointer Cast Truncations" (15 lines) at http://nopaste.snit.ch/12658
20:15 chromatic Does this help, particle?
20:15 Infinoid Coke: might as well, and see what breaks.
20:16 Coke ... is there an easy way for me to get a list of every generated file in the repo?
20:16 Infinoid MANIFEST.generated ?
20:16 purl it has been said that MANIFEST.generated is wrong.
20:16 Coke ... hurm. svn st, mebbe.
20:17 rotty barney has commit acess right?
20:17 chromatic right
20:17 Infinoid svn st --no-ignore | cut -c 8-
20:17 Infinoid (that will also include local modifications.)
20:18 * rotty anticipates barneys review of his patches
20:18 * rotty notes that StGit rocks for managing a patch series
20:18 particle chromatic: perhaps some, but still src\ops\experimental.ops(51) : warning C4312: 'type cast' : conversion from 'opcode_t' to 'FLOATVAL *' of greater size
20:19 particle zillions of opcode_t and size_t warnings
20:19 * ambs makes test one more time, as he does not know enough about parrot atm.
20:20 chromatic opcode_t is Parrot_Opcode which is a typdef'd long for me.
20:20 chromatic Hm.
20:21 chromatic Maybe I need to fire up the 64-bit box in the other room and cajole it.
20:21 Infinoid and long is 4 bytes on win64
20:22 nopaste "particle" at 24.19.3.148 pasted "partial nmake output after patches" (1400 lines) at http://nopaste.snit.ch/12659
20:24 Coke Infinoid: I'm taking that list and running the same dependency checker that I used on the PMC .o files.
20:24 Coke hopefully this will rule out any non-race-condition based deps.
20:24 wknight8111 is there a way in nqp to initialize an array at once? like @array := (1, 2, 3);?
20:25 particle wknight8111: no
20:25 wknight8111 that's what I figured.
20:25 wknight8111 thanks
20:25 particle no list context
20:25 pmichaud that might actually change a bit in a future pct revision
20:25 pmichaud i.e., @array := (1, 2, 3);  might work
20:26 pmichaud but not much else will -- i.e., hash initialization will still require individual elements
20:26 wknight8111 I'm trying to write up a simple example of an octal-bin converter, as an intro to PGE. I'm using a lookup table for the conversion
20:26 wknight8111 I was just hoping for an easy way to do it
20:27 pmichaud I tend to use strings for that sort of stuff. :-)
20:27 particle that's what i was thinking
20:27 wknight8111 oh you're right. I could do that, couldn't I?
20:27 * wknight8111 isn't too bright
20:27 particle you'll fit right in.
20:29 ambs Files=565, Tests=11150, 333 wallclock secs (224.10 cusr + 49.19 csys = 273.29 CPU)
20:29 ambs :D
20:32 * Coke finds some missing deps. whee!
20:32 particle coke++
20:35 ruoso joined #parrot
20:36 * Coke will let this run and fix them later.
20:37 wknight8111 is there a way to turn PAST off? I'm writing a little program that parses input, but doesnt form a tree or anything
20:38 pmichaud could just use --target=parse
20:38 pmichaud depends on what you mean by "turn PAST off", I guess.
20:39 chromatic Try to move in after the first date, for another option.
20:39 wknight8111 well, I dont want to make any PAST nodes, but when I run the program I get the rror "Unable to obtain PAST from program::Grammar"
20:39 pmichaud the program is written in nqp?
20:39 wknight8111 So i've been including an empty "make PAST::Stmts.new()" line
20:39 wknight8111 yes
20:40 pmichaud did you try it with --target=parse?
20:40 wknight8111 I'm trying to demonstrate PGE, so I have a grammar, and a little NQP that prints out if the input is valid or not
20:41 wknight8111 --target==parse prints out the whole parse tree, which I dont want either
20:41 particle languages\perl6\src\utils\perl6doc\actions.pm
20:41 AndyA joined #parrot
20:42 iblechbot joined #parrot
20:44 wknight8111 this is such a stupid little program. I'm going to forget about it for a while. thanks
20:44 particle wknight8111: the file i pointed you to will show you how to print from PAST
20:44 particle that's what perl6doc does now
20:45 Coke I am interested in consolidating Makefiles.
20:46 Coke (do we really need a separate Makefile for compilers/*, e.g.)
20:46 * particle thinks the root Makefile is way to long
20:46 pmichaud I find the separate makefiles easier to manage
20:47 * particle used to work on projects where every directory had a makefile
20:47 Coke you can have separate *input* makefiles, that's fine.
20:48 pmichaud do you mean to consolidate multiple *.in files into a single Makefile?
20:48 Coke yes.
20:49 pmichaud I don't like it -- too much potential for action-at-a-distance
20:49 pmichaud unless we have a really well defined set of macros and things that we know exist in the root makefile
20:49 pmichaud (and that other makefiles don't touch)
20:49 particle .include is your friend
20:50 Infinoid does nmake understand .include?
20:51 particle it has an include syntax.
20:51 particle !INCLUDE
20:53 Coke ... action at a distance??
20:53 pmichaud if I'm modifying pge.in, the rules I add coule affect other .in files in the master Makefile
20:53 pmichaud s/coule/could/
20:55 Coke the separate makefiles we have now prevent using -j on the various subdirectories, and prevent having an understanding of all the dependencies.
20:55 Infinoid I dislike having included Makefiles - wherever the included makefile is in a different directory, all the relative paths are wrong.
20:55 rotty what would be the advantage of compiling to NQP instead of PAST?
20:56 Infinoid however, I dislike having separate "make" invocations even more, because as Coke says, it breaks -j.
20:56 Coke Infinoid: we could fix that if we did the includes at compile time.
20:56 Coke er...
20:56 Coke at *configure* time.
20:56 Coke when we're already massaging the heck of the .in files.
20:56 Infinoid that works for me
20:56 pmichaud I'm not sure that having a single makefile means we understand all of the dependencies, but I'll pass on that
20:56 pmichaud personally, -j doesn't seem all that important to me
20:56 pmichaud but that doesn't mean it's unimportant to others, I guess
20:57 pmichaud rotty:  (compiling to NQP versus PAST)  -- I'm not sure I understand the question?
20:59 particle || test is more important than || make, becausue test takes way longer
20:59 Infinoid t/codingstd/linelengths.tap: t/codingstd/linelengths.t $(PARROT)
21:00 Infinoid it doesn't get much uglier than that. :)
21:01 * pmichaud misses the ugliness
21:01 particle times 623 is the ugliness, i think he means
21:01 Infinoid yeah, what I just proposed is horrid
21:01 pmichaud yes, I'd accept that as being ugly :-)
21:02 pmichaud .t.tap seems better :-)
21:02 * Infinoid looks forward to a rewritten harness
21:02 particle of course we won't use make to manage || test
21:02 rotty pmichaud: barney said the next step for eclectus would be to compile to NQP instead of PAST, and I'm not sure that this will be an advantage
21:02 Infinoid at least make wouldn't have blatant perly assumptions about the language of a test script
21:02 particle nqp instead of pir? or past?
21:02 rotty nqp instead of PAST
21:03 pmichaud rotty:  I agree -- but I would guess (and this is just a guess) that he meant to use NQP to create PAST instead of some other transformation
21:03 rotty pmichaud: no, as the compiler is implemented in Scheme ;)
21:03 particle yeah, that's what i think barney meant, too
21:03 particle barney likes playing with multiple back-end implementations
21:04 pmichaud rotty:  then perhaps he means to use nqp instead of scheme
21:04 pmichaud rotty:  but you know his statement better than I do
21:05 pmichaud I'm not sure compiling to nqp would be better... but it might not be bad either
21:06 rotty pmichaud: I doubt that (switching to NQP), as (AFAIU) the eclectus language is about a compiler implemented in Scheme
21:06 rotty well, I'll ask barney when he turns up
21:06 pmichaud rotty:  yes, we'd have to ask barney then
21:12 Coke looking at the makefile for PGE... the rules for PGE.pbc seem overly complicated.
21:13 pmichaud first we remove any existing PGE.pbc
21:13 Coke ... why?
21:13 pmichaud because if a later step in the build fails, we don't want the old copy sitting around where someone thinks it passed
21:13 Coke if you have properly spec'd dependencies, make should handle all of this for you.
21:13 Coke no?
21:13 purl well, maybe.
21:13 pmichaud no.
21:14 Coke aside from "the build failed." which should be a pretty big clue. =-)
21:14 pmichaud except that it's all too easy to overlook
21:14 pmichaud I kept overlooking it, which is why I put the rm in there
21:14 Coke ok. why do you build PGE twice?
21:14 Coke and RM it twice?
21:15 pmichaud it's a staged library (more)
21:15 pmichaud the 'name' rule is written as a perl6 rule (from PGE/builtins.pg)
21:15 pmichaud so in order to compile it, we have to have a working copy of PGE
21:16 Infinoid miniPGE?
21:16 pmichaud so we build a copy of PGE with no builtins, then use that copy of PGE to compile the builtin rules, then recompile PGE with the builtin rules
21:17 Infinoid we can serialize that nicely, if we can call the two versions different filenames
21:17 Coke ja.
21:17 chromatic You should port PGE to JavaScript, then use it to build itself with no rules, then use it to build itself with rules, and then use it to remove PGE.pbc.
21:17 chromatic I think a Perl 6 compiler magically falls out of there around step 7.
21:17 pmichaud except that the program that compiles the builtins (Perl6Grammar.pir) expects to load PGE.pbc
21:17 pmichaud so if we have a miniPGE, we also need a miniPerl6Grammar.pir
21:18 Coke we can tweak it to take a param.
21:18 pmichaud and this is all important.... why?
21:18 chromatic Is it worth it to take a param though?
21:18 Coke pmichaud: because we need someone other than you to be able to maintain the makefile. =-)
21:18 pmichaud I can add comments into the makefile
21:18 Coke that would be most helpful.
21:19 pmichaud but creating a separate minipge seems to me to be more maintenance hassle than what exists now
21:19 Tene pmichaud: can you write a makefile to add the comments for you?
21:19 Coke *thwap*
21:19 pmichaud and what exists now is fairly robust in that it doesn't leave partially-built pge.pbc files around that might get used
21:19 Coke neither would Infinoid's version.
21:19 pmichaud yes, it would
21:19 pmichaud at least it would on my system
21:19 pmichaud because   if building PGE.pbc fails, the makefile doesn't automatically remove $(PARROT_LIBRARY)/PGE.pbc
21:20 Coke not if you spec'd the dependencies properly and didnt' reuse the same name.
21:20 Infinoid when all else fails, output to PGE.pbc.tmp and rename it into place
21:20 Tene Oh!  We should differentiate based on case!  PGE.pbe and pge.pbc.
21:20 Infinoid Tene: yeah!  and you could have one letter per stage... so it looks like its inflating
21:20 Infinoid pge.pbc
21:20 Infinoid Pge.pbc
21:20 Infinoid PGe.pbc
21:20 pmichaud Makefiles don't automatically remove their targets if they fail to build
21:20 Tene Best idea ever.
21:20 chromatic Parrot writes out unfinished PBC files if they fail to build?
21:20 chromatic Or am I misunderstanding?
21:21 pmichaud parrot doesn't destroy existing pbc files
21:21 Coke I think pmichaud is targetting the case where you've already built once.
21:21 pmichaud which may have come from a previous build
21:21 Infinoid which is fine, unless something has changed, in which you should depend on something
21:21 * pmichaud points to the dependency in the rule above
21:22 chromatic Okay, I thought it might be that.
21:22 pmichaud I have a dependency in place for $(PARROT_LIBRARY)/PGE.pbc
21:22 Coke but if the build fails, it *fails*.
21:22 pmichaud but if one of the sources changes, I'm not guaranteed that PARROT_LIBRARY/PGE.pbc isn't the old version
21:23 Coke pmichaud: if the make succeeds, you should be.
21:23 pmichaud (if the make fails)
21:23 Coke then the make *fails*.
21:23 Infinoid and PGE.pbc's timestamp isn't bumped
21:23 pmichaud right but the old library is stilla round
21:23 Tene Coke: he said earlier that he kept failing to notice that the make failed.
21:23 particle have all depend on clean
21:23 Infinoid heh
21:23 Infinoid by the way, if pmichaud's caution is warranted, it's probably necessary for more than just PGE.pbc.
21:24 pmichaud this is only weird because we have two separate places for PGE.pbc to live
21:24 Coke which we shouldn't.
21:24 Coke (which is another issue.)
21:24 pmichaud so, you think PGE should be in runtime/parrot/library ?
21:24 Infinoid fixing one thing at a time sounds easier
21:24 Coke if that's where we're running it from, yes.
21:25 Coke what does the compile in compilers do?
21:25 pmichaud nqp and past also?
21:25 Coke er..
21:25 Coke the 'copy'
21:25 purl the 'copy' is, like, named 'clone'
21:25 Coke If these are core components of parrot, they should be in a core location.
21:25 Coke library seems reasonable to me, yes.
21:26 pmichaud tge?
21:26 purl i think tge is slooooow. or the tree grammar engine or how you transform a PGE Match Hierarchy into PIR code.
21:26 Coke anything in compilers, yes.
21:26 pmichaud imcc?
21:26 purl rumour has it imcc is the c of parrot or the problem or the intermediate code compiler
21:26 Coke does imcc have any generated PBC files?
21:26 pmichaud it's obviously core
21:26 pmichaud so it belongs in.... src?
21:26 Coke let me stop you from enumerating: "everything in compilers/ that generates a PBC should probably generate that PBC into the library."
21:27 pmichaud and their makefiles should be part of root.in?
21:27 Coke that's a separate issue, but yes, I think os.
21:27 Coke "so"
21:28 pmichaud what if PGE simply compiled direct to $(PARROT_LIBRARY)/PGE.pbc ?
21:28 pmichaud and didn't create the copy in compilers/pge/  ?
21:28 Coke I'm not entirely sure why it's not already doing that.
21:28 Coke +1
21:28 purl 1
21:28 * Coke smacks uprl.
21:28 Coke I am having definite transposition issues today. :(
21:28 particle uprl yours!
21:29 chromatic If PGE put its finished PBC in $(PARROT_LIBRARY), it could build the stage 1 PBC in the local directory and use that for the stage 2 build.
21:30 chromatic ... provided we can convince Parrot to prefer that PBC over the one in $(PARROT_LIBRARY).
21:30 pmichaud right
21:30 chromatic ... which eventually we should be able to do anyway.
21:30 pmichaud that's the issue I came up with
21:30 particle is there a reason to keep stage 1 around?
21:30 particle if stage 2 builds, remove stage 1
21:30 pmichaud as it is now stage 1 isn't kept around
21:30 Infinoid doing that keeps it less confusing
21:31 Coke it's an intermediate build file. we keep a lot of those around.
21:31 Coke (src/pmc/string.c)
21:31 particle no reason to keep those
21:31 Infinoid make might try to rebuild if it discovers the intermediate file isn't there
21:31 particle except for debugging
21:31 particle but .c is a text file
21:31 pmichaud correct, if the intermediate isn't present, make will rebuild the target
21:32 particle only if the source is newer than the target
21:32 * Infinoid isn't convinced, and goes off to test that.
21:32 Coke I need to head out. Regards.
21:33 pmichaud well, this would presume that the target lists the intermediate as a dependency
21:33 pmichaud so if the intermediate is gone, then make treats it as being out of date and rebuilds it, then uses it to rebuild the target
21:33 pmichaud try it with a .o file sometime -- remove the .o, and make will rebuild it and then rebuild the target
21:35 Infinoid just tested, GNU make rebuilds a toplevel target if an intermediate target it depends on is removed
21:35 pmichaud yes
21:35 pmichaud this is exactly how make is supposed to work
21:35 pmichaud (see my .o example)
21:35 Infinoid yeah
21:36 Infinoid so... keep the intermediate around.  if it's too confusing to have two PGE.pbc files in two directories with different attributes, call the intermediate miniPGE.pbc
21:36 pmichaud that doesn't work
21:36 pmichaud because Perl6Grammar.pir expects to find PGE.pbc
21:36 Infinoid so we live with the confusion?  or overwrite the original?
21:37 pmichaud if it's a major pain I'll rework the makefile so that there's only one PGE.pbc (in library)
21:37 Infinoid I doubt it matters, as long as library is where parrot looks first
21:37 pmichaud however, keep in mind that if PGE fails to build at some point (and it's often hard to notice because it's in the middle of the long root build), then you end up with an incomplete PGE.pbc and things start failing
21:38 chromatic I'm still not sure what the point of rejigging the makefile is at this particular moment.
21:38 pmichaud me neither
21:38 wknight8111 http://aegis.sourceforge.net/auug97.pdf
21:38 chromatic ... but I can imagine a couple of ways where it's possible.
21:38 wknight8111 link contains lots of good information about make
21:38 Limbic_Region joined #parrot
21:38 particle coke's aiming to make make -j make faster
21:38 Infinoid pmichaud: how would you feel about removing it upon failure, rather than removing it upon rebuild?
21:39 pmichaud hmmm?
21:39 Infinoid something along the lines of: $(CC) -o PGE.pbc <stuff> || (rm PGE.pbc; exit 1)
21:39 pmichaud if we can be certain that they remove on failure, sure
21:39 Infinoid if that can be made portable
21:39 Infinoid heh.  s/CC/PARROT/
21:40 pmichaud and make sure that Parrot's exit codes always make sense for -o
21:40 Infinoid which it probably should anyway
21:40 pmichaud it should, but I'm not sure that it does
21:40 Infinoid do we test that yet?  sounds useful.
21:40 pmichaud thus I kept overlooking that the PGE build was failing
21:40 Infinoid understandable
21:41 Infinoid in that case, make would overlook it too
21:41 pmichaud well, make was overlooking it, so I did
21:41 Infinoid all right.  tonight I'll write a test
21:43 pmichaud I should also note that in the case of PGE, having -j isn't going to help much because it's a sequential process anyway
21:43 pmichaud even if we list the dependencies "right"
21:43 pmichaud there's no opportunity for parallel build in PGE
21:44 pmichaud the Makefile is essentially a build script that is in the form of a Makefile, with one target.
21:44 pmichaud increasing the number of targets isn't going to suddenly discover parallelism where it doesn't exist (in PGE's case)
21:45 Infinoid right, but that doesn't mean a single all-knowing make couldn't build non-PGE things at the same time
21:46 pmichaud ahhh, having sub-makefiles prevents -j from working?
21:46 pmichaud I figured it just meant those sub-makefiles couldn't participate in being likewise ||
21:46 Infinoid having sub-makefiles makes it more difficult
21:46 Infinoid one moment, let me dig up a svn rev number
21:48 Infinoid ok, sorry, that wasn't as relevant as I had hoped
21:48 pmichaud also, I have trouble seeing what might build in parallel with PGE that can't already do so with the present Makefile
21:49 Infinoid the whole compilers/PGE directory is currently treated as a single big dependency, which isn't really that far from the truth
21:49 pmichaud exactly
21:49 pmichaud and tge depends on pge
21:49 pmichaud nqp depends on pct and pge
21:49 pmichaud json depends on pge
21:50 Infinoid so... once pge is done, pct and tge could be built in parallel, and then nqp and json could be built in parallel?
21:51 pmichaud actually, I think that pct and pge can be in parallel, then tge and json and nqp
21:51 Infinoid currently, the compilers.dummy rule of the Makefile will build those 5 in serial.
21:51 pmichaud right
21:51 pmichaud I'd change it to be
21:52 pmichaud compilers: compilers.pge compilers.pct compilers.tge compilers.json compilers.nqp
21:52 pmichaud then have separate $(MAKE) for each of those
21:52 pmichaud compilers.pge:  $(MAKE) compilers/pge
21:52 pmichaud compilers.tge: compilers.pge   \n  $(MAKE) compilers/tge
21:52 pmichaud etc.
21:53 Infinoid yeah, something along those lines
21:53 Infinoid also, I had to fix a faulty dependency in this area, a week or two ago.  the dependencies implied libparrot could be built in parallel with pge, rather than libparrot being a dependency of pge
21:53 Infinoid see the latter half of http://www.parrotvm.org/svn​/parrot/revision?rev=26643
21:54 pmichaud oh, that looks like a total pain
21:54 pmichaud because GEN_LIBRARY includes components that depend on PGE.... well, maybe not to build
21:55 pmichaud it seems weird that we would build $(LIBRARY_DIR)/PGE/Util.pbc prior to building PGE itself :-)
21:56 Infinoid see, whenever I see something like that, my makefile-rewriting finger starts itching.
21:56 pmichaud a n y w a y
21:56 pmichaud if you all want to refactor the makefiles, I have no problem with it as long as everything works
21:56 Infinoid that's a reasonable goal :)
21:56 chromatic PGE depends on libparrot though.
21:56 pmichaud building PGE also depends on Parrot/HLLCompiler.pbc
21:56 pmichaud (for now)
21:58 pmichaud I do have a problem with increasing the options or number of source code files that are needed to build PGE
21:58 pmichaud i.e., if I have to maintain separate Perl6Grammar.pir files or various option switches, that seems like a Net Lose.
21:59 pmichaud I could also eliminate the 2-stage PGE build by simply hand-coding the builtins.pg file as PIR rules
21:59 pmichaud (there's only one rule in there at the moment)
22:00 pmichaud but if we ever decide we want a library of standard rules to be part of PGE and that those are coded using regexes as source, we'd need a multi-stage build again
22:00 Infinoid if we have to move or copy stuff around to maintain atomicity, it should still all come from one source file... anything else is a DRY fail.
22:00 pmichaud I think that adding options that are only used for building is also some sort of fail
22:01 chromatic Definitely agreed.
22:01 * Infinoid starts adding things to t/run/exit.t
22:02 pmichaud afk, dinner
22:02 Infinoid thanks for the discussion, pm
22:06 dalek r26857 | bernhard++ | trunk:
22:06 dalek : Regenerate MANIFEST.SKIP
22:06 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26857
22:08 barney joined #parrot
22:15 dalek r26858 | bernhard++ | trunk:
22:15 dalek : #52556: [PATCH] Eclectus: simplify PAST generation a bit
22:15 dalek : Courtesy of Andreas Rottmann
22:15 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26858
22:15 rotty hey! :)
22:16 rotty hello barney
22:17 barney Hi, just coming home from Frankfurt.pm meeting
22:18 rotty barney: just as an aside: please apply my patches verbatim or reject them (I'm managing them with StGit)
22:19 kid51 joined #parrot
22:20 skids joined #parrot
22:22 * jonathan yawns after a long day's work negotiating
22:23 jonathan Four hour flight and airport boringness tomorrow. May get some more Rakudo hacking in.
22:23 barney rotty: Yes, applying the patches is easier when they are in form as mentioned in submissions.pod
22:25 skids jonathan: suggestion, if it's easy -- An error message of "Type blah refuses to be assigned type blah " maybe with a "due to where statement" tacked on for refinements -- would be much more useful than "Type check failed".
22:26 rotty barney: what did I do wrong? I did have a look at submissions.pod...
22:26 Infinoid git patches need to be applied with patch -p1, not patch -p0
22:27 barney the usual 'patch' does not know about the 'a' and 'b' dirs
22:27 rotty yes, I did not deem this important
22:27 Infinoid its a git-ism.  I guess I'm used to it.
22:28 rotty (as you can just use -p1)
22:28 barney I just tried that. perhaps I mistyped
22:29 Infinoid it should work... -p1 tells it to strip the a/ and b/
22:29 jonathan skids: Completely agree, the first two parts are maybe easy, though for anonymous refinement types it's a tad harder.
22:30 jonathan But yeah, needs better error message.
22:30 jonathan I'll see what I can do.
22:30 jonathan Thanks for the feedback. :-)
22:30 iblechbot joined #parrot
22:30 skids thanks for the types ;-)
22:31 particle jonathan: you can use "<anon>" for anonymous types until we have something better
22:32 dalek r26859 | bernhard++ | trunk:
22:32 dalek : #52588: [PATCH] Eclectus: refactor Perl test wrappers
22:32 dalek : Courtesy of Andreas Rottmann.
22:32 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26859
22:33 jonathan particle: Sure, good idea.
22:35 barney rotty: yes 'patch -p1' works fine
22:35 rotty :-)
22:35 particle that'd be a nice detail to document somewhere
22:35 jonathan particle: actions.pm is getting kinda...big. What would you think to trying to refactor some of the larger actions a bit to use various subs, and putting those into a separate .pm file or files? It's just that it takes a little while to compile.
22:36 jonathan By "what would you think to", I'm not asking you to do it - just asking what you think of the idea. :-)
22:36 particle jonathan: i'm not against the idea, as long as they're well-factored
22:36 jonathan Sure
22:36 jonathan Well, actions.pm is close to hitting the minute mark to compile on this laptop.
22:36 jonathan And yes, I know that really means I need a new laptop...
22:36 dalek r26860 | bernhard++ | trunk:
22:36 dalek : #52592: [PATCH] Eclectus: Replace brackets with parens
22:36 dalek : Courtesy of Andreas Rottmann.
22:36 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26860
22:38 rotty barney: what reason do you want to switch to generating NQP instead of PAST for?
22:38 * particle heads out for a bike ride &
22:39 barney I want to keep the PAST, just change the PAST-generation code from PIR to NQP.
22:40 barney Just because the syntax is nicer, not so many temporary variables
22:40 rotty ah, I see
22:41 barney The PAST generating code can be one big nested constructor
22:41 rotty btw, what do you think about using riaxpander to do the macro expansion stuff for us?
22:42 rotty riaxpander is http://mumble.net/~campbell/darcs/riaxpander/
22:42 rotty s/is/is at/
22:43 rotty btw, there is a good overview of Scheme macro systems at http://lists.gnu.org/archive/html/c​hicken-users/2008-04/msg00013.html
22:43 shorten rotty's url is at http://xrl.us/bi4y6
22:47 schmalbe joined #parrot
22:47 schmalbe rotty: I'll take a look at it tomorrow.
22:47 rotty barney: are you ok with a subdirectory for each Scheme we support for bootstrapping, or should that be layed out differently?
22:48 rotty schmalbe: ok
22:48 schmalbe subdirs seem sane.  Have you checked with Ikarus?
22:49 rotty schmalbe: Ikarus doesn't run on my main machine (it needs SSE2 or something)
22:49 rotty (so, no)
22:51 dalek r26861 | bernhard++ | trunk:
22:51 dalek : #52600: [PATCH] Eclectus: now works also with Guile
22:51 dalek : Courtesy of Andreas Rottmann.
22:51 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26861
22:55 rotty schmalbe: we should probably select a few (maybe 3) implementations for bootstrapping, to keep the overhead low
22:55 dalek r26862 | bernhard++ | trunk:
22:55 dalek : [Eclectus]
22:55 dalek : Set SVN properties for newly added files.
22:55 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26862
22:56 rotty I'm very much for dumping Petite chez, its command-line interface is *very* limited
22:58 schmalbe Do you recommend Guile ?
22:58 rotty schmalbe: Guile has some problems with macros and modules; Gauche is better in that respect
22:58 dalek r26863 | bernhard++ | trunk:
22:58 dalek : Give credit to Andreas Rottmann.
22:58 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26863
22:59 rotty (I'm not sure this matters for our purposes, but if we want to use riaxpander, it might)
22:59 * schmalbe deprecates Petite Chez Scheme for Eclectus
23:00 rotty dalek: are you aware of the harness "-le" problem?
23:00 rotty oh, that should have been schmalbe: ...
23:01 schmalbe rotty: Are you on IRC tomorrow?
23:01 rotty the current eclectus codebase is not very much suited for compilers because of the way the test harness works, btw
23:01 rotty schmalbe: yes
23:03 schmalbe Can we do some planning this evening? (Barney realizes it's past midnight)
23:03 rotty schmalbe: sure
23:04 * schmalbe calls it a day
23:04 schmalbe Cool
23:04 rotty :-)
23:10 TonyC joined #parrot
23:20 nopaste joined #parrot
23:21 rdice joined #parrot
23:43 Infinoid kid51: (re: Perl::Critic disappearing) you could always try the brute force method
23:43 nopaste "Infinoid" at 96.238.213.50 pasted "make perlcritic.t dump @INC to stderr" (12 lines) at http://nopaste.snit.ch/12660
23:45 Infinoid if there's anything weird like the search path being truncated, or another rev of perl being invoked, it'll show up there.

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

Parrot | source cross referenced