% barney has joined #parrot % iblechbot has joined #parrot % IllvilJa has left IllvilJa!~jilves@emea-netcache1.oracle.co.uk r27178 | bernhard++ | trunk: : Remove trailing whitespace. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27178 r27179 | bernhard++ | trunk: : Beautifications in config/gen/crypto.pm diff: http://www.parrotvm.org/svn/parrot/revision?rev=27179 % cognominal has left cognominal!~cognomina@82.67.232.89 r27180 | bernhard++ | trunk: : Clean up src/dynpmc/Makefile with -$(MAKE) src/dynpmc realclean : The main 'realclean' does not depend on languages 'realclean' diff: http://www.parrotvm.org/svn/parrot/revision?rev=27180 r27181 | bernhard++ | trunk: : [dynpmc] : Clean up generated *.pmc file. : No need to clean up 'build.pl'. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27181 % Ademan has joined #parrot r27182 | bernhard++ | trunk: : [Eclectus] : Add stub for driver_nqp.pir. : Use string=? for switching between implementations. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27182 % turrepurre has left turrepurre!~chatzilla@90-229-128-103-no52.tbcn.telia.com r27183 | bernhard++ | trunk: : [Eclectus] : coding std for driver_nqp.pir diff: http://www.parrotvm.org/svn/parrot/revision?rev=27183 * barney going out for a walk, enjoying the sun % jan has left jan!~chatzilla@90-229-128-103-no52.tbcn.telia.com % Ademan has left Ademan!~dan@h-67-101-42-224.snfccasy.dynamic.covad.net % Ademan has joined #parrot i wonder if it's possible to somehow get the string representation of a C in rakudo. on the pir level, that is. % ambs has joined #parrot % AndyA has joined #parrot % Ivatar has joined #parrot % ambs has left ambs!~ambs@255.92.54.77.rev.vodafone.pt % rdice has joined #parrot % turrepurre has joined #parrot r27184 | fperrad++ | trunk: : [docs] : - add language Squaak diff: http://www.parrotvm.org/svn/parrot/revision?rev=27184 r27185 | fperrad++ | trunk: : [install] : - add language Squaak diff: http://www.parrotvm.org/svn/parrot/revision?rev=27185 % kid51 has joined #parrot % ambs has joined #parrot % ambs has left ambs!~ambs@255.92.54.77.rev.vodafone.pt % Senaka has joined #parrot ping Coke I can't find Coke in the DNS. Coke: ping purl: hey Senaka: i'm not following you... seen Coke Coke was last seen on #parrot 11 hours and 55 minutes ago, saying: latter Coke: good to see the issues in fixing the warnings there are a lot of them msg Coke good to see the issues in fixing the warnings. there are a lot of them Message for coke stored. % Senaka has left #parrot % mire has joined #parrot % gryphon has joined #parrot % jan has joined #parrot % ruoso has joined #parrot rafl: (string representation of closure in rakudo) you mean you want the PIR source? pmichaud: no. I have a Closure object (the condition attribute of an Subset object) and want a string that describes it. similar to B::Deparse::coderef2text. rafl: no, we don't have anything like that in Rakudo yet. Don't know when/if we will. :-) pmichaud: i wanted to improve the typecheck error messages. do you think i should commit that even if it can't tell anything useful if subtypes are involved? might check with jonathan about it Hm, I've got a free hour... any parrot-related requests? Yes. I have a NQP reuest. Trailing comma in sub calls. Like: eleven( 'dummy', ); * Tene grabs an editor and springs into action! % guru has joined #parrot Looking a rule 'signature' in nqp/src/Grammar.pg I expected trailing commas to be allowed barney: signature is for defining a sub, not calling it. "make distclean" removes "languages/eclectus/driver_nqp.pir" which is in the MANIFEST and Configure.pl complains bitterly... barney: the rule you want to look at is arglist, which just contains a single EXPR Tene: Yes, I saw that too now, so it's Which is an optable The commas come from infix:, It would be possible to just add a \,? to arglist, but that's awkward enough that I'd want to ping pmichaud about it first. kid51: ping Pattener: I'll look into that % Coke has left Coke!~coke@cpe-72-228-52-192.nycap.res.rr.com * Tene pings pmichaud I'd look at how it currently parses pmichaud: the ,s are infix:<,> inside of EXPR tene yes, but is there an empty node at the end? iirc, the optable is supposed to be able to handle that with trailing , it gives: statement not properly terminated okay, that tells me a bunch I _think_ that it can be fixed by just adding a 'is nullterm' trait to infix:<,> I'll try it. seems to work. "is nullterm" means that the last term in an infix operator is optional make test passes. probably need a test for it, too :-) Hm. > say('test',); No result object So it doesn't seem to work, actually. * Tene digs. I'm curious about how it parses in that case * Tene will nopaste hmmm 'test', is creatting a null operand "tene" at 166.70.38.237 pasted ", parse" (61 lines) at http://nopaste.snit.ch/12829 r27186 | bernhard++ | trunk: : [Eclectus] : Do not clean up 'driver_nqp.pir', it's in the repos. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27186 r27187 | jkeenan++ | trunk: : Specify exact number of tests in plan. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27187 yeah, [1] => PMC 'NQP::Grammar' => "" @ 6 that looks like an OPTable bug I'm also curious how STD.pm handles it r27188 | bernhard++ | trunk: : [Eclectus] : Emit slightly saner NQP-code for setting up PAST. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27188 I don't know if STD.pm handles it yet but it looks like an OPTable bug in PGE to me japhb: pong what is NQP? NQP is not quite perl (6) heh. good afternoon moin PerlJam pm: Are you in San Angelo? purl, NQP is also http://svn.perl.org/parrot/trunk/compilers/nqp okay, pmichaud. pj: yes, in San Angelo now pj: why aren't you here?!? :-) r27189 | jkeenan++ | trunk: : Eliminate one test repeated from this step's '-01' test file. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27189 % tetragon has left tetragon!~seneca@gw-312-705.somanetworks.com pm: I almost went, but kids and wife want me here more :) pj: I brought my wife with me :-) I could've brought the whole clan except Jazmine (she had a chior performance today) But, she's not quite old enough to drive herself around or take care of herself :) time for lunch here kid51: sorry, got pulled away ... and now getting pulled away again. Will try again later. See your comment. I actually did mean 'wordspace', not 'whitespace' -- because I don't know how tabs would work. Would 'single whitespace' be clearer? Hmm... OPTable.pir:463 "pmichaud" at 72.18.170.67 pasted "tene: try this patch for infix:<,>" (25 lines) at http://nopaste.snit.ch/12830 % tetragon has joined #parrot lunchtime, gone ## we have an unbalanced open, so error. remove the ## incomplete circumfixed term, and for circumfix: opers ## put a failed nullterm onto the termstack pmichaud: works % davidfetter has left davidfetter!~davidfett@start.fetter.org % davidfetter has joined #parrot % guru has left guru!~guru@bas3-toronto02-1279723558.dsl.bell.ca r27190 | jkeenan++ | trunk: : Eliminate one test repeated from this step's '-01' test file. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27190 % cognominal has joined #parrot r27191 | bernhard++ | trunk: : [Eclectus] : Delete outdated comments. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27191 Hm. https://svn.perl.org/account won't load for me, so I can't get my svn password Works for me Almost, till I want to see my password know where the password is stored on disk? I could dig it out of the cache on my old laptop % schmalbe has joined #parrot * schmalbe was barney know where the password is stored on disk? i already had it that way, Tene. I found ~/.subversion/auth ahh, .subversion, not .svn. The only place in all of svn where "subversion" is used. % kid51 has left kid51!~jkeen@pool-68-237-17-150.ny325.east.verizon.net I wonder if this fix should be ported to rakudo too. % barney has left barney!~bernhard@dslb-084-058-123-179.pools.arcor-ip.net r27192 | tene++ | trunk: : Allow trailing commas in lists for NQP. : barney++ diff: http://www.parrotvm.org/svn/parrot/revision?rev=27192 r27193 | bernhard++ | trunk: : [nqp] : Add test for trailing comma in sub call. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27193 schmalbe: Thanks. I was just about to ask you to do that. I'm just about to leave. tene++ pmichaud++ leaving too % schmalbe has left schmalbe!~bernhard@dslb-084-058-173-137.pools.arcor-ip.net r27194 | fperrad++ | trunk: : [inno] : now, use Parrot::Config diff: http://www.parrotvm.org/svn/parrot/revision?rev=27194 um, how does one debug nqp? I'm getting: method 'get_scalar' not found for invocant of calls 'Undef' er, class 'Undef' which is fine, but it would be nice to know which class is Undef'd 'print' doesn't seem to work % skids has left skids!~bri@c-71-233-204-100.hsd1.ma.comcast.net % skids has joined #parrot % Theory has joined #parrot % Coke has joined #parrot rillian: can you nopaste the source? (yes, rakudo and much of parrot needs better error reporting) note that in NQP all function calls (including 'print') require the parens. ah. print() compiles, but I get 'Null PMC in invoke()' % AndyA has left AndyA!~andy@82.152.157.85 http://rafb.net/p/QgppfF73.html part three of the squaak tutorial on parrotblog.org squaak? squaak is, like, languages/squaak or the language in kj's tutorial at parrotblog.org or http://svn.perl.org/parrot/trunk/languages/squaak/ % AndyA has joined #parrot oh, NQP doesn't have a 'print' try say("..."); pmichaud, what's NQP? NQP == "Not Quit Perl" er "Not Quite Perl" what is it for? http://svn.perl.org/parrot/trunk/compilers/nqp/README.pod pmichaud: ok thanks. need to revert an svn update first... oh, I see. pmichaud: ok, thanks. what does ~$/ do? r27195 | chromatic++ | trunk: : [src] Added slice-handling code to key_integer(), which fetches the integer : index from a Key or Slice PMC. This cleans up a warning (RT #53356, Will : Coleda) and implements a TODO. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27195 ah, coerces to a string r27196 | infinoid++ | trunk: : [t] Fix sysinfo to check against sizeof(INTVAL), not against sizeof(int). diff: http://www.parrotvm.org/svn/parrot/revision?rev=27196 ah, I also get a stack trace if I don't run interactively. that helps % Theory has left Theory!~Theory@c-24-21-175-208.hsd1.mn.comcast.net % donaldh has joined #parrot r27197 | infinoid++ | pdd13pbc: : [merge] Merge changes from trunk (-r27012:27196) into pdd13pbc branch. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27197 dalek++ # that sooo would have killed svnbotl % paco has left paco!~chatzilla@139.Red-80-36-122.staticIP.rima-tde.net % donaldh has left donaldh!~chatzilla@host213-123-171-12.in-addr.btopenworld.com % guru has joined #parrot % tetragon has left tetragon!~seneca@69-196-138-185.dsl.teksavvy.com % paco has joined #parrot r27198 | pmichaud++ | trunk: : [nqp]: : * Clarify that perl6 === Rakudo in README.pod . diff: http://www.parrotvm.org/svn/parrot/revision?rev=27198 % mire has left mire!~Frodo@189-172-222-85.adsl.verat.net % ambs has joined #parrot % mire has joined #parrot % tetragon has joined #parrot % kid51 has joined #parrot % mire has left mire!~Frodo@229-171-222-85.adsl.verat.net % guru has left guru!~guru@67-208-9-120.ip.tor.radiant.net % mire has joined #parrot % mire has left mire!~Frodo@188-175-222-85.adsl.verat.net % mire has joined #parrot I took a quick look at the backtrace code used by parrot when it crashes. I get all the symbols if I uncomment "#define BACKTRACE_VERBOSE" in exceptions.c And how do I retrieve messages from purl? tetragon: /purl messages tetragon: er, /msg purl messages and also /msg purl messages help pmichaud: I've retreived them. Purl didn't like my phrasing when I asked how to retrieve them I find I get better results with this, called from #parrot: /q purl messages That opens a private room to have a chat with purl And then in that window you can say: messages erase "tetragon" at 69.196.138.185 pasted "Nifty backtrace with BACKTRACE_VERBOSE defined" (15 lines) at http://nopaste.snit.ch/12832 Hrm... Looks like the existing backtrace code relies upon glibc formatting of the trace % Zaba_ has joined #parrot % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru I now have it displaying the symbol names on OS X 10.5, but the code my change is a bit fragile looking % ambs has left ambs!~ambs@255.92.54.77.rev.vodafone.pt % slightlyoff has joined #parrot % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru % Zaba has joined #parrot "tetragon" at 69.196.138.185 pasted "Nifty backtrace with symbols and OS X 10.5 patch" (33 lines) at http://nopaste.snit.ch/12833 oh, my, that does look fragile Yes, I did count the characters in Apple's fixed-width format to get 50 tetragon: you should replace 50 with MAGIC_APPLE :) "Magic is stored in native byteorder." -- parrotbyte.pod comforting, huh PerlJam: I don't have a 64-bit box at home, and I think the offset would be different on them probably Really? Probably? Are you Certain it's not certain? Are you sure it's unsure? I think you need to look harder. might be better to search for 0x and then the next space... or it might be better to just let the OS tell it what it wants, and pass it directly to the user, for both glibc and OSX. And that works until someone with a sick sense of humour creates the symbol foo_0x000_bar Or we could just add a configure test tetragon: search for " 0x" and then the following space hacks upon hacks :) I'm thinking of column counting, instead are you sure it's always going to be the fourth column? I have yet to see a counterexample The issue is that backtrace_symbols goes for human-readable, not machine-parsable machines can parse anything given sufficiently smart humans to write the parser :) May be simpler to just ignore backtrace_symbols and use dladdr (machine-readable approach)++ % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru PerlJam: the problem is, the humans available in 2008 aren't smart enough to anticipate weird things Apple (or GNU) will throw at it in 2012 I don't really have a problem with taking the human-readable output given by backtrace_symbols() and reporting that to the user directly, in its entirety % Zaba has joined #parrot You get that if you define BACKTRACE_VERBOSE ...but if we do want a reliable way to get the function name, dladdr() is a far more sane approach than parsing backtrace_symbols() is I'm confused. I'm trying to learn the .pbc file format as it exists in parrot today, but docs/pdds/pdd13_bytecode.pod isn't it. and surprisingly, docs/parrotbyte.pod doesn't seem to be it, either. I'm just getting started on this, but so far judging from the output of hexdump, the specs have more in common with eachother than either has in common with reality on glibc, half of the backtrace entries are missing the symbol name anyway, so your output looks better than mine the undefined ones look like this: /work/parrot-dev/parrot-trunk/blib/lib/libparrot.so.0.6.1 [0x2b91c6cb2fcc] normal ones look like this: /work/parrot-dev/parrot-trunk/blib/lib/libparrot.so.0.6.1(Parrot_confess+0x41) [0x2b91c6cb2fa1] % Psyche^ has joined #parrot % Patterner has left Patterner!~Psyche@e177225008.adsl.alicedsl.de % Psyche^ is now known as Patterner % iblechbot has left iblechbot!~iblechbot@133.16-dial.augustakom.net Manifest errors in configure: Checking MANIFEST...No such file: languages/squaak/examples/life.sq No such file: languages/squaak/MAINTAINER No such file: languages/squaak/t/01-math.t (fresh pull from head a couple minutes ago) Is someone working on squaak right now? IIRC I saw someone working on squaak yesterday or today. Ah good, you're here. I want to add a new gen:: config step. Any special things you want me to do to make you happy (well happier) with the patch? for a few minutes more What would it do? Instead of using a static call_list.txt, concatenate it from snippets; that way, a Parrot not containing something humongous (like say OpenGL) need not generate stubs for the 250 NCI signatures it won't ever use. Plus, I'm going to be generating those ~250 sigs from system headers, so I would have to merge them into call_list.txt somehow, might as well generalize the process. thoughts? i like cheese purl, go to sleep japhb: excuse me? I actually haven't done very much work in the 'gen' step classes. If you looked at the corresponding t/steps/gen_*.t tests, you'd see they're mostly stubs. So in turns of keeping *me* happy, all you'd have to do is include a stub test file. But this is a case where I recommend filing an RT so that others can evaluate what would be the pluses and minuses of adding this step. I was planning to. I just don't like to wake up in the morning and find out that someone has added a new config step without discussing it on list first. well all right then. :-) But I don't have fixed opinions as to what should be in or not in the config system. My own objective is more modest: that what's in it should have well tested Perl 5. So that if we move to different ways of running the config system, we'll have tests to remind us of all we've broken ;-) Other than the whitespace/wordspace thing, are you satisfied with _add_to_libs()? gotta go now % kid51 has left kid51!~jkeen@pool-68-237-17-150.ny325.east.verizon.net % slightlyoff has left slightlyoff!~slightlyo@204.14.154.209 % teknomunk has joined #parrot msg kid51 yes, you said all tests passed, the structure looks good, and the triangle still spins for me, so the _add_to_libs patch is +1 from me. Message for kid51 stored. % cognominal has left cognominal!~cognomina@82.67.232.89 % Ivatar has left Ivatar!~graham@tu055.demon.co.uk % guru has joined #parrot % cognominal has joined #parrot % Theory has joined #parrot % shamu has joined #parrot % Limbic_Region has joined #parrot % Theory has left Theory!~Theory@71-220-216-36.eugn.qwest.net % rdice has left rdice!~richard_d@CPE001ff33cb98b-CM00159a01d44c.cpe.net.cable.rogers.com % Limbic_Region has left Limbic_Region!~Limbic_Re@c-68-49-236-220.hsd1.md.comcast.net % Theory has joined #parrot % gryphon has left gryphon!~gryphon@dsl-209-221-185-54.zipcon.net % Theory has left Theory!~Theory@71-220-216-36.eugn.qwest.net % mire has left mire!~Frodo@188-175-222-85.adsl.verat.net Got the backtrace working with dladdr on OS X I'm having some difficulty in getting Linux to play nice with my (non-parrot) test code for it. % Andy has joined #parrot "tetragon" at 69.196.138.185 pasted "Nifty backtrace patch that uses dladdr. Not tested on non-OS X 10.5" (46 lines) at http://nopaste.snit.ch/12834 * Debolaz watches perl6.pmc and his nifty little test script make parrot crash and burn What's perl6.pmc ? s/pmc/pbc/ When I encounter such things, where do I send the information and what exactly do I include in the report aside from the test script? Debolaz: it's polite to also send the output, a backtrace if you can get it, all the information you can get. purl: parrotbug i think parrotbug is mailto:parrotbug@parrotcode.org or http://svn.perl.org/parrot/trunk/docs/submissions.pod r27199 | infinoid++ | trunk: : [src] Add autogenerated file glut_callbacks.c to svn:ignore. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27199 % guru has left guru!~guru@bas3-toronto02-1279723558.dsl.bell.ca tetragon: works fine on linux/amd64/ no warnings, output is about the same as the parse-backtrace_symbols() version Oh good Some of my Linux i386 tests were crashing without additional checks I'll stick them in and retest/repost only difference in output is the unknown symbols have transformed from "(unknown)" to "(null)" we're going to need to probe for dladdr() tho... I bet win32 doesn't have it. r27200 | chromatic++ | trunk: I think that may be a difference between glibcs/platforms : [GC] Fixed PMC_EXT allocation/deallocation. : PMC_EXT structures are *not* isomorphic with the PObj structure. Treating it : as such was an unnecessary hack that is now gone. There is one smaller hack in : the revised version, but it's part of the free list pointer hack that's already : in the code, and it's much better than the troublesome casting and : bit-twiddling necessary to treat PMC_EXT headers and PObj headers somewhat : interchangeably. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27200 I've encountered differences in behaviour in standard functions between i386 and amd64 before I can test on linux/i686 if needed actually, the readability of stack backtraces will vary depending on compiler version and options, too I think the amd64 one adds in (null) as my i386 tests just segfault if I don't explicitly test first no, that's a feature of later glibc versions, it does that when you try to printf("%s") a NULL pointer I've seen it on x86 too Hrm Well, my i386 test box doesn't have that behaviour So I'm adding in an explicit test please do :) its nice to have, but you can't rely on it "tetragon" at 69.196.138.185 pasted "Now with an added NULL pointer check" (46 lines) at http://nopaste.snit.ch/12835 now they're (unknown)s again diff looks great, but we definitely will need to probe for dladdr(), dlfcn.h and the Dl_info typedef All OS X versions that have backtrace have everything I added (easy to say when there's only one version with backtrace(3)) yeah, OS X does a fairly good job of having the normal POSIXish features to be honest, it's win32 I'm worried about. I don't have access to that platform I do. I'm going to test on mingw as soon as this silly box reboots again One difference between OS X and Linux/glibc for this is that glibc requires that _GNU_SOURCE be defined before dlfcn.h is imported. OS X lacks that requirement why, is dladdr considered a GNU extension, or something? The typedef and dladdr are only defined in that case According to the manpage on Linux, it is * Infinoid holds his skull painfully Since it worked for you, _GNU_SOURCE is probably defined somewhere its in CFLAGS in the toplevel Makefile And it was that requirement that was causing me so much grief when it came to a simple test on Linux % Andy has left Andy!~Andy@64.81.227.163 added by config/init/hints/linux.pm it didn't get added on your linux box? or were you compiling something by hand? Simple test by hand ok The thing that gets to me is how much shorter the dladdr version of the function is when compared against the backtrace_symbols parsing variant all right! I finally figured out how to download a URL from a command prompt wget? well, wget is http/ftp file retrieval client or a good way to download stuff or `echo "robots=off" >> ~/.wgetrc` or web 3.0 wget didn't exist, GET didn't exist, but lwp-download.bat does so now I get to remember where the weird port of the patch command is... * tetragon tries to remember enough edlin to see if an ed diff is close enough to work if I did this more often, I'd get better at it. building now no, failing to configure. *sigh* ok, I won't be able to test this until monday (gcc can't create executables after windows explorer has crashed, and I can't do a hard reboot remotely) I've stuck the patch into the ticket (#53402) cool. in theory, this shouldn't break anything. win32 should fail to detect backtrace(), which means all this code should be disabled anyway And all systems I know of with backtrace() have dladdr in dlfcn.h a lucky coincidence :) And dladdr came to OS X and glibc from Solaris/SunOS * tetragon wonders if they have backtrace(3) http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/head/execinfo.h?r=3988 Looks like it may have been recently added Infinoid's url is at http://xrl.us/bju78 http://ko.opensolaris.org/os/community/arc/caselog/2007/162/;jsessionid=411C86D492AF988809AAA0E8B8B33E8F tetragon's url is at http://xrl.us/bju8a % Andy has joined #parrot opensolaris is moving at surprising speed, considering % Andy has left Andy!~Andy@64.81.227.163 r27201 | chromatic++ | trunk: : [GC] Fixed some casts from r27200. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27201 % Zaba_ has joined #parrot % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % tetragon has left tetragon!~seneca@69-196-138-185.dsl.teksavvy.com % teknomunk has left teknomunk!~teknomunk@ubuntubob.residential.okstate.edu % teknomunk has joined #parrot % Psyche^ has joined #parrot % Patterner has left Patterner!~Psyche@e177225169.adsl.alicedsl.de % Psyche^ is now known as Patterner % tetragon has joined #parrot Hey, test 6 of t/dynoplibs/myops.t stopped passing due to the recent GC changes? or... The last two output lines are in the wrong order any chance of finding out why? :) (I'm unable to reproduce on linux) Hrm... That ordering issue hasn't repeated in the last few times I've run the code ah, intermittant * Infinoid runs 100 of them in a shell loop I've only seen that behaviour once this "three alarms" thingy is sounding vaguely familiar to me, I think I've seen it a few times too % slightlyoff has joined #parrot Try running the process niced down as far as you can go while building perl6 (Or something else to load up your CPU) I can reproduce similar issues in that case (More first couple lines than last pair) I've just gotten a string of 2-1-3 to come out instead of 1-2-3 And I just got a 1-3-2 It seems like CPU load can cause the test to fall over tetragon: I was seeing intermittant "three alarms" failures on MSVC/win32 on May 14, 2007 And I'm triggering fairly consistent failures on OS X if your failures have the same cause, its an *old* bug I don't know the win32 cause, but my one seems related to CPU load possibly causing the "sleep 1" to last longer than it should I think I had patched this at some point to try to spread out the events a little more, but it doesn't look like that ever got committed 50 passes in a row on amd64, 25 passes in a row on i686 so far * Infinoid spawns some forkbombs to see if he can trigger it that did it. got a 2-1-3 on linux-i686 with a loadavg of 15. I think the most likely explanation for my first failure would be system load absolutely. it's very consistent when loadavg=15 My box would have still been dealing with the crash reporter due to the test 3 crash, and the crash reporter is somewhat CPU intense the test is too timing-dependent. if there's a way to detect directly whether alarm events have fired, we should do that instead I'm thinking the three callback functions should add 4, 2, and 1 to a global variable or something It looks like it may also be possible to trigger a test 5 failure using the same technique But it doesn't look likely in practice that's a much closer shave For that I'd probably have to drop a prebuilt parrot tree onto my Pentium 100 And try the test while loading the system down 10 years ago, it would have amused me to think of a P100 as a pathological case Well, I don't have any of my older gear anymore And the P100 performs much better than my P3-based laptop And I don't have a cross-compiler to get my router thrashing (although, I think the router is more powerful than the P100) yeah, most embedded stuff is faster than that these days slowest machines I have around here are some 266MHz ppc boxes and 533MHz ARM boards My actual slowest is probably the Compaq handheld with WinCE I can't figure out how to declare a global variable in pir Are there general purpose registers that you could poke? Actually, it looks like there are instructions in docs/imcc/imcfaq.pod I think PIR is reallocating registers internally to prevent subroutines from clobbering eachother (which is exactly what I want, in this case) I'm more used to dealing with real hardware than vms me too r27202 | chromatic++ | trunk: : [GC] Prevented freed contexts from appearing on the free context list multiple : times. This works around a double-free error during global destruction exposed : by the Rakudo fakecutable. I suspect the real problem is the interaction of : context sharing between certain PMCs (continuations, return continuations, and : closures) and forced context recycling. For now, we avoid the crash, until we : debug and fix the wider problem. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27202 ooh, I've got it figured out r27203 | chromatic++ | trunk: : [src] Removed unnecessary keyword "struct" from Parrot_Context in declarations. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27203 "Infinoid" at 75.32.77.88 pasted "This should make the test a lot faster, and more stable under load." (68 lines) at http://nopaste.snit.ch/12836 seems rock solid here for loadavg=0 and loadavg=15 (loadavg=15 takes 20 seconds to execute, but it still prints the right number.) % Zaba has joined #parrot % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru r27204 | chromatic++ | trunk: : [include] Reverted the broken part of r27203. Oops. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27204 in fact, I'm going to check this in and see if anyone complains. % contingencyplan has left contingencyplan!~contingen@cpe-76-186-27-146.tx.res.rr.com r27205 | infinoid++ | trunk: : [t] Fix an intermittant failure that's been around forever. : The "three alarms" test in t/dynoplibs/myops.t has a race condition. : When run on a machine with a high loadavg (I used loadavg=15 for my : tests), the "main" subroutine doesn't even get around to queueing the : later alarms before the former ones have already fired. This results in : the output statements occurring out of order, which fails the test. : Since the order of these things' execution is not guaranteed, : particularly under high load when there are significant delays just : queueing the things, the test shouldn't depend on their order. Fix : the test so that each callback sets 1 bit of a "flags" integer, all we : care about is that the callbacks were actually called. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27205 % teknomunk has left teknomunk!~teknomunk@ubuntubob.residential.okstate.edu tetragon++ # thanks for testing and discussion goodnight. % teknomunk has joined #parrot % slightlyoff has left slightlyoff!~slightlyo@204.14.154.209