Camelia, the Perl 6 bug

IRC log for #parrot, 2009-09-17

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:04 mattp joined #parrot
00:16 patspam joined #parrot
00:16 rhr joined #parrot
00:18 dalek rakudo: fed7b0e | pmichaud++ | build/Makefile.in:
00:18 dalek rakudo: Add Mapping.pm to setting (missing from b29506b commit).
00:18 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​ed7b0ebbe10e1bd6e58b89acbaed5096214fb0f
00:21 mattp joined #parrot
00:22 theory joined #parrot
00:23 sri joined #parrot
00:25 kyle left #parrot
00:30 clubs joined #parrot
00:34 clubs cotto: Haiku doesn't have a /usr/, there is /boot/develop/headers/posix/time.h which may help
00:36 cotto_work clubs, is there anything that mentions CLOCK_REALTIME or other similar #defines there?
00:37 cotto_work I looked through what I got from svn and didn't find anything useful, but I don't really know what I was looking at.
00:44 dukeleto joined #parrot
00:45 dukeleto 'ello
00:45 cotto_work 'i
00:46 * cotto_work is looking forward to talk like a pirate day this Saturday.
00:51 szbalint ooh
00:51 szbalint I mean
00:51 szbalint Yarrr
00:53 clubs cotto: Can't seem to find anything with that in it and grep isn't turning up anything helpful
00:53 kid51 joined #parrot
00:54 dalek rakudo: c52c780 | pmichaud++ | perl6.pir:
00:54 dalek rakudo: Work around inferior loop problem causing segfault on exit.
00:54 dalek rakudo: (Based on information from Whiteknight++)
00:54 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​52c780cf945aa6a55ab51530cfe694be61a6d10
00:55 kyle_l5l joined #parrot
00:55 darbelo left #parrot
00:59 TiMBuS joined #parrot
01:01 jrtayloriv joined #parrot
01:03 cotto_work clubs, it sounds like falling back to gettimeofday might be necessary
01:06 zak_ joined #parrot
01:12 clubs cotto: so it won't be too difficult to fix?
01:13 * chromatic idly wonders if he can convince fakecutables to run all :init and :load subs in the frozen PBC but delay execution until the C driver starts it.
01:16 chromatic Hm, if I do something before calling Parrot_runcode()... maybe...
01:17 * Coke stares at this last apply bug.
01:18 cotto_work clubs, nope.  It'll probably require some modifications to the configure system to allow for haiku-specific stuff, but it'll be easy after that.
01:20 cotto_work it'd be great to have Parrot running on Haiku before Haiku's official release
01:22 cotto_work it appears to run perl 5 fine, so Parrot shouldn't be much of a stretch
01:25 * cotto_work decommutes
01:27 jrtayloriv Note: Do not pick your nose after dicing Habenero peppers.
01:29 hachi_ joined #parrot
01:30 Austin joined #parrot
01:30 Austin NotFound, WhiteKnight: ping
01:30 chromatic Hm, 7.82% of the time spent running "Hello, world!" in Rakudo is the time spent *running* the program.  The rest is Parrot and (mostly) Rakudo startup.
01:30 kyle_l5l jrtayloriv, probably the only safe thing to do is just cut off your hands.
01:31 Austin Well, I'm sure you'll be able to eke out another 0.18% or so...
01:31 clubs cotto: Okay, cool :)
01:31 jrtayloriv kyle_l5l, Note: Do not cut off your hands.
01:31 jrtayloriv :)
01:31 chromatic A persistent Rakudo could give the spectests an order of magnitude performance improvement.
01:31 Austin No self-dismemberment in the main channel.
01:32 chromatic More likely, four to five times improvement.
01:32 zak_ joined #parrot
01:33 pmichaud we could potentially also improve things by making better use of :immediate subs
01:34 pmichaud unfortunately, those have their own issues (as noted in other conversations on this channel :)
01:34 chromatic Fakecutables could stop before *running* the code, then listen on a pipe or a socket for incoming command lines, then fork() off kids to run those command lines.
01:35 chromatic I mean "Run Rakudo with those command lines".
01:35 pmichaud yes, that would work.  but it feels unclean somehow.
01:35 chromatic Unclean?
01:35 purl Unclean is a rule which matches malformed packets, i.e. XMAS packets, and the like
01:36 snarkyboojum_ joined #parrot
01:36 chromatic http://search.cpan.org/~msergeant/PPerl-0.25/
01:36 pmichaud ideally I think we want Parrot HLLs to be able to run quick without a persistent model
01:36 szbalint it would probably cause weird things because tests usually rely/assume a clean state, I don't think you want to see one part of the suite causing problems in another
01:37 szbalint ah, fork
01:37 szbalint never mind :)
01:37 szbalint I should know better than to blabber at 3am :S
01:38 snarkyboojum__ joined #parrot
01:40 rhr joined #parrot
01:43 cotto hi
01:44 chromatic I'd like to see a faster HLL without a persistent model, but if we can quadruple the speed right now....
01:45 cotto it'd make the spectest scream
01:58 Austin Where is VTABLE_get_pointer defined?
01:59 Austin $PARROT/include/parrot/vtable.h - nevermind
02:00 cotto there
02:02 Austin Hmm. There's not a lot of room for error in that macro. :(
02:04 Austin Cotto, are you any good with parrot stack dumps?
02:05 dukeleto austin: what are you dealing with?
02:05 Austin I've got a segfault that doesn't seem to be inferior-runcore related.
02:05 Austin It's dismayingly consistent in 1.6.
02:06 Austin http://nopaste.org/p/a1QSCmLPqb
02:07 Austin I'm curious about #13 - the gobbledegook in the args - is that normal?
02:10 dukeleto Austin: i haven't seen anything like that before
02:10 Austin Neither have I. :)
02:11 Austin What are you talking about, though? #13 in particular, or a segfault in the Capture/Hash PMCs?
02:11 dukeleto austin: the odd crap in #13
02:11 Austin Okay.
02:11 dukeleto Austin: perhaps memory corruption?
02:11 Austin So that's not a string of opcodes or something?
02:12 Austin There can't be memory corruption. Parrot is a virtual machine. C'est impossible!
02:17 Austin Does parrot use the upper bits of pointers for anything?
02:17 dukeleto Austin: i can't tell what irony level you are operating on ;)
02:17 Austin :)
02:18 Austin Take a look at this: http://nopaste.org/p/aWTsPzhFgb
02:19 Austin IT's a "full" backtrace.
02:19 Austin Notice that all the function addresses are 0xb7...., while most of the data seems to be at 0x8....
02:20 Austin But in #1, #2, #3, and #4, the pmc parameter is 0xb7...
02:21 * Coke fixes [apply], mostly.
02:26 Austin When in doubt, svn update.
02:27 Coke gah, all that for only 13 more spec tests.
02:29 dukeleto Austin: or git svn rebase :)
02:36 zak_ joined #parrot
02:48 janus joined #parrot
02:50 dalek partcl: r737 | coke++ | trunk/runtime/builtin/proc.pir:
02:50 dalek partcl: cleanup PIR
02:50 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=737
02:53 dukeleto joined #parrot
02:53 rg1 joined #parrot
02:53 cotto (12*140)/15
02:53 purl 112
02:54 cotto Austin, how do you trigger that?
02:54 Austin Trigger what?
02:54 purl Trigger is cool
02:54 Austin The segfault? I compile some code.
02:55 dalek partcl: r738 | coke++ | trunk/src/macros.pir:
02:55 dalek partcl: add shortcut macro for creating a TclDict
02:55 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=738
02:55 dalek partcl: r739 | coke++ | trunk/runtime/builtin/proc.pir:
02:55 dalek partcl: more PIR cleanup
02:55 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=739
02:55 dalek partcl: r740 | coke++ | trunk/ (5 files):
02:55 dalek partcl: allow anonymous tclprocs, enable [apply]
02:55 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=740
02:56 cotto Austin, like any code?
02:56 Austin I won't guarantee that, but it's pretty short - I'll nopaste it to you.
02:56 cotto please do
02:57 Austin This works: http://nopaste.org/p/aUbG62ARZ
02:57 cotto and by "works" you mean "doesn't work"?
02:57 cotto ;)
02:57 Austin Yep
02:58 Austin Here's the circumstance:
02:59 Austin The parser runs to completion, and the outermost target does a "make $past" on a tree of PAST nodes that get passed into the PAST->POST compilation step.
02:59 cotto It's been forever since I've built Close.
03:00 Austin I have a function that "fakes" an identical tree -- at least identical according to the output of the DUMP function. When I replace the "built" PAST tree with the "fake" PAST tree, the segfault goes away.
03:01 cotto it explodes nicely
03:01 Austin So I'm pretty convinced that some of the shenanigans I do inside the parser -- adding and removing nodes, cross-linking things, copying, whatever -- are dorking up the innards of some function.
03:01 cotto actually, it gives a pir-level error
03:01 cotto too few arguments passed (0) - 2 params expected
03:02 cotto (plus pir backtrace)
03:02 Austin I just bumped to 106. Try updating.
03:03 cotto btw, it's nice to see make -jn working
03:03 Austin What's make -jn?
03:04 Austin Ahh. paralle.
03:04 Coke like -j, but as many as possible.
03:04 Austin l
03:04 Coke er, no.
03:04 Coke "like -j, but with only n" =-)
03:04 cotto btw, make realclean is a little too clean.  It clobbered the test file I was using.
03:04 Austin Rofl. What were you using?
03:05 cotto crashy.c
03:05 dalek close: r106 | Austin++ | trunk/ (10 files):
03:05 dalek close: Checkpoint: segfault problems
03:05 dalek close: review: http://code.google.com/p/close/source/detail?r=106
03:05 Austin Hmm. That's probably a built-in. I don't think I set it up to delete .c files.
03:05 cotto Austin, Lexical '@dest' not found
03:05 Austin Yips.
03:05 Austin Yipes.
03:06 cotto you're building with the 1.6.0 release, aren't you?
03:06 Austin Yes, with 41308, as of a couple minutes ago.
03:06 Austin Let me rebuild, see what I get.
03:06 Austin No such problem.
03:07 Austin Is this during the make of the compiler, or when trying to compile the test code?
03:08 Austin Did you rebuild the makefile?
03:08 cotto yup
03:09 cotto make realclean && perl Configure.pl
03:09 Austin Okay. Is this a building-the-compiler error, or a running-the-compiler error?
03:09 dalek parrot: r41311 | jkeenan++ | trunk/t/compilers/imcc/syn/macro.t:
03:09 dalek parrot: NotFound++ solved the problem, so am un-TODO-ing the test.  Cf.:
03:09 dalek parrot: �http://rt.perl.org/rt3/Ticket/Update.html?id=60926.
03:09 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41311/
03:10 cotto bbs; phone
03:10 Coke IWBNI if your config option was --parrot-config instead of --parrot_config
03:12 kid51 Smolder down ... again!
03:13 Coke I can build close on feather, but make test is sloooow.
03:13 * kid51 must sleep
03:13 purl $kid51->sleep(8 * 3600);
03:13 Austin Coke: also, it doesn't even work a little bit.
03:14 Coke should I expect 'make test' to pass anything?
03:14 Austin I'm rewriting things underneath, and pretty much none of the tests run. (And everything is sloooooow.)
03:14 Coke k.
03:14 Coke I can at least report it builds, then. =-)
03:14 Austin :)
03:14 Austin There's that bright side we were looking for.
03:16 cotto back
03:17 pmichaud cla?
03:17 purl i think cla is Contributor License Agreement or http://www.perlfoundation.org/​contributor_license_agreement or http://www.parrot.org/foundation/legal or http://www.parrot.org/files/parrot_cla.pdf
03:18 cotto Austin, part of BUILD_CLEANUPS is *.c
03:18 cotto any reason for that?
03:18 Coke anyone with makefile fu, I could use a hand with http://code.google.com/p/p​artcl/issues/detail?id=111
03:19 Austin Cotto: Okay. I think that was provided by "create_language.pl"
03:20 Austin It looks like the current version does PMC_DIR/*.c instead.
03:20 Austin (current version of create_language, that is.)
03:20 dalek rakudo: 2eca8b3 | pmichaud++ | docs/announce/2009-09:
03:20 dalek rakudo: More announcement updates for the release.
03:21 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​eca8b3e16567a6478bbab68046c95698e8fd19d
03:21 dalek rakudo: ea6448f | pmichaud++ | docs/ChangeLog:
03:21 dalek rakudo: More ChangeLog updates.
03:21 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​a6448f6be457b81b318589557153deb13fe5f9c
03:21 Austin I'll take it out, since I don't do anything with .c/.o files.
03:21 cotto my crashy.c file thanks you
03:21 Austin Call it crashy.c= instead - you won't have the problem then.
03:22 Austin :)
03:22 dalek partcl: r741 | coke++ | trunk/config/makefiles/root.in:
03:22 dalek partcl: remove crufty warning.
03:22 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=741
03:23 cotto my installed parrot is behind the times
03:23 cotto time to get the new awesome
03:24 dalek close: r107 | Austin++ | trunk/ (3 files):
03:24 dalek close: Removed .c and .o files from BUILD_CLEANUPS - cotto++
03:24 dalek close: review: http://code.google.com/p/close/source/detail?r=107
03:28 dukeleto the git-svn history tarball that is linked to on https://trac.parrot.org/pa​rrot/wiki/git-svn-tutorial is in an odd state
03:28 dukeleto it is in bisecting mode with a bunch of files added to the index
03:29 dukeleto i am going to add a tarball that is mirrored once a day
03:37 cotto Austin, I'm not getting any segfaulty goodness.
03:37 Austin Really? Wanna switch computers?
03:37 jjore joined #parrot
03:38 dalek tracwiki: v18 | dukeleto++ | git-svn-tutorial
03:38 dalek tracwiki: https://trac.parrot.org/parrot/wiki/git-​svn-tutorial?version=18&action=diff
03:38 Austin Cotto: You're running 1.6.0?
03:38 cotto svn latest
03:38 Austin 'k
03:38 cotto I get a complaint about @dest not being defined
03:39 cotto Lexical '@dest' not found
03:39 Austin Hmm.
03:39 Austin Do a "find -name Array.pm"
03:39 Austin on whatever dir you've got the source in
03:39 cotto ./library/close/Compiler/Array.pm
03:39 Austin Okay.
03:39 Austin That's the only place there's an @dest
03:40 cotto I'll see if the problem goes away with a serial build
03:40 Austin Have a look at the generated .pir file.
03:41 cotto looks generated alright
03:42 Austin That's when you're trying to compile crashy.c, right?
03:43 cotto Hmmm.  with the non-parallel build it seems to spend a lot of time doing nothing
03:43 cotto parrot close.pbc crashy.c
03:44 cotto is that how I should be running it?
03:45 Austin Should work.
03:45 Austin But is that when you get the @dest message?
03:46 cotto now it segfaults.  i was getting the @dest message when Close was built with make -jn
03:46 cotto n == 9 iirc
03:46 Austin Woo-hoo! Segfaults rule.
03:47 cotto sounds like the makefile dependencies need some work
03:49 Austin 41166 doesn't segfault.
03:49 cotto that produces a boatload of output
03:49 Austin Yeah.
03:49 Austin Also, it's hella slow.
03:50 Austin (Because of the backtrace checking everywhere.)
03:58 * dukeleto is messing around with blizkost
04:10 dukeleto seen jnthn
04:10 purl I haven't seen 'jnthn', dukeleto
04:10 dukeleto seen jonathan
04:10 purl jonathan was last seen on #parrot 1 days, 12 hours, 46 minutes and 46 seconds ago, saying: moritz: ^^  [Sep 15 15:16:31 2009]
04:11 Austin seen vowels?
04:11 purl I haven't seen 'vowels', Austin
04:12 cotto seen ()
04:12 purl I haven't seen '()', cotto
04:12 cotto seen me
04:12 purl me was last seen on #perl 1 years, 131 days, 12 hours, 16 minutes and 21 seconds ago, saying: purl, karma me  [May  8 15:48:29 2008]
04:12 dukeleto msg jonathan shall we use Test::More for blizkost or something more fancy ? :)
04:12 purl Message for jonathan stored.
04:31 dalek parrot: r41312 | darbelo++ | branches/kill_jit (10 files):
04:31 dalek parrot: JIT is dead, except for the bit necessary to sustain JIT frames in x86.
04:31 dalek parrot: The bits in src/frame_builder.c and src/frame_builder.h are DISTILLED EVIL and nead to be cleaned up.
04:31 dalek parrot: Linux x86 passes make test.
04:31 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41312/
04:32 dukeleto how does an HLL get spiffy irc-updates on dalek? i would like to add blizkost
04:33 Coke something running on another VM on feather. I Think infinoid has the keys.
04:33 dukeleto Coke: cool
04:34 dukeleto msg Infinoid i would like the add blizkost to dalek, so we get irc updates. pleez halp!
04:34 purl Message for infinoid stored.
04:34 dukeleto blizkost just passed its first test about 5 minutes ago
04:35 cotto dukeleto, if you can send him an rss feed, he'll probably be able to get it done on the quickfast
04:36 dukeleto cotto: i see, said the blind man
04:36 Coke is it googlecode or github?
04:36 dukeleto coke: github
04:36 dukeleto so it should be easy
04:36 Coke easy peasy, then.
04:36 Austin Well, this is so stupefyingly cool that I can't stand it. segfault in malloc().
04:37 Coke if it's any consolation, partcl made gdb segfault a few weeks ago.
04:37 dukeleto Austin: here is a nice gold watch :)
04:37 Austin Sweet. A gold watch.
04:38 Austin When 1.7 comes out, nobody tell me. I don't even want to hear about it.
04:38 dukeleto Austin: why so?
04:39 Austin Because every time I try to update, there's this freaking tax.
04:39 dukeleto msg Infinoid http://github.com/feeds/jnt​hn/commits/blizkost/master is a feed of commits to master
04:39 purl Message for infinoid stored.
04:39 Austin And apparently because we've got Democrats in all the branches of government, the tax is getting higher and higher.
04:39 dukeleto Austin: what are you working on?
04:39 Austin Close.
04:39 Austin A HLL.
04:39 Austin Written with NQP and a little PIR.
04:39 Austin NO C AT ALL.
04:39 dukeleto Austin: whoa.
04:40 Austin And still I get segfaults in malloc()?
04:40 Austin Grrrrrr.
04:40 purl grrrrrr is there a command to test ipf rules
04:40 dukeleto Austin: that is no fun. The whole point of not using C is not dealing with fucking malloc()
04:41 Austin Maybe if I was dealing with malloc I wouldn't have these problems.
04:41 Austin I dunno.
04:42 Coke how much memory are you using, OOC, when that happens?
04:42 Coke edge condition that results in segfault instead of PANIC?
04:42 Austin What's OOC?
04:42 purl somebody said OOC was Out of curiosity. or out of commission or out of control or out of cocaine or out of context or Out of Character
04:42 Austin Ah
04:42 Austin I dunno.
04:43 dukeleto Austin: i can try to help with PIR issues, but I am not much help with NQP. Are your tests at least deterministically failing in the same places?
04:43 dukeleto Austin: where is your repo?
04:44 Austin Duke: The problem occurs after my compiler generates as PAST tree and hands off to PCT for the follow-on stages.
04:45 Coke is there a better way to figure out my caller depth than by calling interp['lexpad';N] until it throws an error?
04:45 Austin Right now I'm crossing revisions with a fairly simple parse, but it looks very much like there's some kind of memory corruption happening.
04:46 Austin Coke: In my code I configure in a "starting point", and search the call chain until I find that sub name, then call that level 0.
04:47 Austin But my code knows that the compiler is at the top of the chain. Unless your runtime library has a starting point, it may not work for you.
04:50 Austin See http://code.google.com/p/close/source/brow​se/trunk/library/close/Compiler/Dumper.pm (line 171)
04:52 Coke Austin: I think that will not work for x-HLL invocations.
04:52 Austin True.
04:53 nopaste "coke" at 193.200.132.135 pasted "get_depth" (40 lines) at http://nopaste.snit.ch/17976
04:53 dukeleto Austin: do you know when this issues started for you? what is the last known good parrot rev for close?
04:55 Austin Coke: http://nopaste.org/p/a3Sdb1jNdb
04:56 Austin That is the code that chases up the chain. (parrotinterpreter.pmc) There doesn't seem to be a handy integer laying around with the number you want contained in it. :(
04:57 Austin dukeleto: No. My development converged with 1.6 to produce the problem, but when I go back to 41166, a similar-but-not-identical problem exists. (Segfault in malloc vs. segfault in hash_clone, but still a segfault.)
05:06 dukeleto blizkost passes most of the perl 5 base test suite. sweet!
05:07 Coke if I poke up in my call chain for a lexpad that doesn't exist, how can I retroactively put one in?
05:10 Coke (cannot create a LexPad without an initializer)
05:15 Coke must I change all my .subs that could possibly have lex to say ":lex" ?
05:16 Austin you mean put it in while its on the stack?
05:16 Austin I doubt that's possible.
05:16 Austin Maybe you should just create a "fake" lex in each sub, in case.
05:17 Austin .lex "$___never_used__ignore"
05:17 jrtayloriv joined #parrot
05:18 Coke Ew. I'll that.
05:19 Coke (try)
05:21 dukeleto cognominal: ping!
05:21 dalek partcl: r742 | coke++ | trunk/docs/spectest- (2 files):
05:21 dalek partcl: update spectest run for [apply]
05:21 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=742
05:25 Austin msg whiteknight Hey, whiteknight, here's some sad news: http://nopaste.org/p/alGXnz4Md - seg fault in malloc(). Methinks this pretty much guarantees a GC bug, but maybe there's something else?
05:25 purl Message for whiteknight stored.
05:28 Coke ok, using :lex on subs makes them have lexpads, whee.
05:28 Coke now how do I create a variable in a particular lexpad?
05:28 Coke (say, one call frame up)
05:29 Coke if I just do lexpad = interp['lexpad';1]  \n lexpad['$foo'] = 'bar', I get an exception.
05:29 Coke (per the lexpad docs, that seems like it should work.)
05:31 nathanmccauley joined #parrot
05:31 Coke hurm. perhaps that's not the error I think it is. *handwave*
05:32 Austin What exception?
05:32 purl exception is probably from Email.pm not that code
05:32 Austin no, exception is A reasonable response to an unreasonable situation.
05:32 purl okay, Austin.
05:32 Austin What exception?
05:32 purl it has been said that exception is A reasonable response to an unreasonable situation.
05:34 Coke Lexical '$foo' not found.
05:34 Coke hurm. now I'm getting it again. I think.
05:34 treed Why the cap A?
05:35 Coke except 'bar' is an 'Undef' PMC, and '$foo' is really '$Dir'
05:35 TiMBuS do i still have to email rakudo bugs in :/
05:36 Coke as I recall, rt never allowed web-submittal.
05:37 Coke hurm. I don't even really want lexicals, I think.
05:37 Coke (though if I don't use find_lex and create_lex, I guess it doesn't matter.)
05:41 theory joined #parrot
05:42 Coke ah. I want DynLexPad, and that I can create by itself, I think. (and add things to on the fly)
05:42 Austin Coke: the lexpad.pmc does not support creating new symbol names, despite the blatant lie in the docs.
05:44 Coke right, but dynlexpad does.
05:45 Austin Indeed it does. So you just need to hll-map the lexpad to dynlexpad, no?
05:45 Coke If :lex respects that, sure.
05:47 Austin dukeleto: You still awake?
05:48 dukeleto Austin: indubitably
05:48 Austin Can you run this NQP?
05:48 Austin http://nopaste.org/p/awKWmwXDQ
05:49 Coke bah. tried "new 'DynLexPad'" where I find a null one, and that also complains that you can't create it that way.
05:49 Coke (so I have to try :lex and hll map and cross my fingers.)
05:49 Austin dukeleto: Obviously, you'll have to call it from something. You could just add "bsu(); " to the bottom, I guess.
05:51 dukeleto Austin: which command line args do you want? and any particular parrot rev/version?
05:51 uniejo joined #parrot
05:51 Austin I assert that running bsu() will do something horrible - for me it's a segfault. Whatever current-ish version you have (1.5, 1.6) should be fine.
05:53 Coke Austin: holy crap, it kind of works.
05:53 Austin coke: What works?
05:53 Austin The DynLexPad? Or the blow s*** up function?
05:55 Util Does Parrot's IO system support string IO, also called "in-memory files"? Perl5 example: open($fh, '>', \$variable);
05:58 dukeleto Austion: it segfaults on both darwin and linux. do you want some backtraces? or are you up to your ears in those ?
05:58 dukeleto Austin: with parrot 1.6
05:58 Austin Dukeleto: No, thanks. That is my "here is a reproduction of the problem" code for the TT.
05:58 purl okay, Austin.
05:59 Austin Confirming it on a real linux (tm) and Darwin is gravy.
06:00 Coke Austin: dynlexpad.
06:00 purl dynlexpad is gone :-)
06:00 Coke no, dynlexpad is still there!
06:00 purl okay, Coke.
06:00 Austin Coke: Congrats. Does that mean you have [upvar] now?
06:00 Coke Austin: I already /had/ upvar.
06:00 Austin Really?
06:00 Austin Then what is this about?
06:01 Coke switching from a handrolled call chain to using parrots.
06:01 Austin Ahh.
06:01 Coke (i had a hidden global called "call_chain" that I manually fiddled with every time I entered/left a tcl proc.)
06:06 Austin Well, this ought to get you some mips back, then.
06:11 Austin msg cotto: Thanks for your help earlier. My segfault issue is now TT#1015.
06:11 purl Message for cotto stored.
06:12 dalek TT #1015 created by Austin_Hastings++: clone_p_p segfaults with self-referential Hash pmc.
06:14 Austin Dukeleto: Thanks very much for your help tonight.
06:15 Coke the docs for get_name on namespace seem to be wrong about how join works. patches welcome.
06:15 dukeleto Austin: no problem
06:16 dukeleto Coke: are there any tests for it?
06:16 dukeleto Coke: example?
06:22 Coke dukeleto: join doesn't prepend a :: at the beginning.
06:22 Coke (unless that's returning an empty first element or something...)
06:33 Austin Woot! Now I have trivial, inefficient code! Yesssss.
06:35 cotto That's great!  Most of us have to settle for non-trivial inefficient code.
06:36 Austin Well, I was getting segfaults. This is a big step up. (Check your messages.)
06:36 cotto yup
06:37 zak_ joined #parrot
06:38 * Coke gives up for the night.
06:39 Coke something isn't being stored or found properly now that I'm using lexicals, but I can't find the bug.)
06:44 cotto night all
06:49 fperrad joined #parrot
06:56 dalek rakudo: 73a3952 | pmichaud++ | docs/spectest-progress.csv:
06:56 dalek rakudo: spectest-progress.csv update: 436 files, 15497 (71.5% of 21671) pass, 0 fail
06:56 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​3a3952d0a858cc9e27a2afc402005b5a04bbc95
06:56 dalek rakudo: 8effbb7 | pmichaud++ | docs/announce/2009-09:
06:56 dalek rakudo: Update announcement with spectest results.
06:56 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​effbb76af85f1dff0173f7290a16a0a2fb79387
06:59 iblechbot joined #parrot
07:25 donaldh joined #parrot
07:25 * jrtayloriv .sleep()
07:29 HG` joined #parrot
07:29 kyle_l5l left #parrot
07:33 dalek lua: 51f44d9 | fperrad++ | doc/running.pod:
07:33 dalek lua: tips for lua-TestMore (git submodule)
07:34 dalek lua: review: http://github.com/fperrad/lua/commit/51​f44d927bf100aa5d52fff541f9d59089184cee
07:35 Hunger joined #parrot
07:46 mberends joined #parrot
07:47 dalek lua: 7e18de2 | fperrad++ | doc/running.pod:
07:47 dalek lua: now uses lua-TestMore
07:47 dalek lua: add items : Smoking,  Installing
07:47 dalek lua: review: http://github.com/fperrad/lua/commit/7e​18de2d7ea2ee955bfa132da10aa53bfa9eef7a
07:48 bacek joined #parrot
07:49 bacek o hai
07:53 dukeleto bacek: hola
07:53 purl what's up, dukeleto.
07:55 bacek dukeleto: aloha
08:04 moritz o hai
08:04 moritz mberends reported an issue on win32 with mingw
08:04 moritz basically config_lib.pasm contains set P0["make"], "make"
08:05 mberends line 242
08:05 moritz even though no 'make' is available, just 'mingw32-make'
08:05 moritz mberends: the line number is different here
08:05 mberends ok
08:05 moritz is there an easy fix for that?
08:12 moritz mberends: does your `perl -V` mention mingw32-make?
08:12 mberends moritz, I wrote a sub in rakudo/build/gen_parrot.pl that searches for various make commands in all PATH dirs, and then patches the config_lib.pasm output, but it does look like a band-aid
08:13 * mberends walks to the problem machine...
08:14 moritz aye, that's the job of parrot's Configure.pl
08:15 moritz config/inter/make.pm seems to consider mingw32-make
08:17 mberends on the Strawberry installation, perl -V is does not mention make at all
08:18 mberends nor does the Linux one :(
08:19 moritz inter::make -         Is make installed...................................yes.
08:19 moritz that's what my Configure.pl says
08:20 moritz but it doesn't mentioin which make
08:21 * mberends running parrot's perl Configure.pl
08:22 mberends same output: Is make installed...............yes
08:25 mberends at the end: "You can now use `mingw32-make` to build your Parrot." This works, but not when called from Rakudo's Configure.pl --gen-parrot.
08:26 mberends the Strawberry libs do not seem to include icu :-(
08:27 moritz mberends: it looks like a bug to me that it still writes 'make' into config_lib.pasm - could you open a ticket for that?
08:27 mberends yes, no prob
08:35 moritz any idea how I can reach a TPF webmaster?
08:37 dalek parrot: r41313 | bacek++ | trunk/src/pmc/sub.pmc:
08:37 szbalint noc.perl.org ?
08:37 dalek parrot: [core] Implement Sub.init_pmc
08:37 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41313/
08:37 dalek parrot: r41314 | bacek++ | trunk (2 files):
08:37 dalek parrot: [core][t] Implement Sub.start_offs and end_offs accessors. Add limited test for Sub.init_pmc
08:37 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41314/
09:06 dalek parrot: r41315 | bacek++ | trunk (2 files):
09:06 dalek parrot: [core] Implement initialisation of n_regs_used in Sub.init_pmc.
09:06 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41315/
09:06 dalek parrot: r41316 | bacek++ | trunk (2 files):
09:06 dalek parrot: [core] Implement initialisation of Sub.arg_info in Sub.init_pmc
09:06 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41316/
09:21 mokurai left #parrot
09:23 masak joined #parrot
09:30 dalek parrot: r41317 | mikehh++ | trunk/src/pmc/sub.pmc:
09:30 dalek parrot: codetest fix - no trailing whitespace
09:30 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41317/
09:41 dalek TT #7 closed by bacek++: remove 'infix' and 'n_infix' opcodes
09:43 bacek Yay! No more unresolved single-digit tickets! :)
09:50 mikehh All tests PASS (pre/post-config, smoke, nqp_test, fulltest) at r41317 - Ubuntu 9.04 amd64
09:55 ilbot2 joined #parrot
09:55 Topic for #parrotis now  http://www.parrot.org | Parrot 1.6.0 "half-pie" released: feel free to tear out the JIT! | Testing priorities: Exception and MultiSub
10:02 bacek joined #parrot
10:10 quek joined #parrot
10:16 MoC joined #parrot
10:27 dalek lua: a803ba4 | fperrad++ |  (2 files):
10:27 dalek lua: add a target spectest
10:27 dalek lua: work with lua-TestMore
10:27 dalek lua: review: http://github.com/fperrad/lua/commit/a8​03ba4370c2687db716d18884bc555d470e7a78
10:40 dalek lua: 7b762f8 | fperrad++ | config/makefiles/root.in:
10:40 dalek lua: fix smoke
10:40 dalek lua: review: http://github.com/fperrad/lua/commit/7b​762f8e395495d2461a1766cfe159dda1974c63
10:41 riffraff joined #parrot
10:43 mikehh rakudo (8effbb7) builds on parrot r41317 - make test PASS / make spectest (up to 28270) FAIL - Ubuntu 9.04 amd64
10:43 mikehh rakudo - t/spec/S05-capture/caps.t - Non-zero wait status: 11 - Parse errors: Bad plan.  You planned 21 tests but ran 19
10:45 mikehh rakudo - it passes ./perl6 t/spec/S05-capture/caps.t however - also
10:46 mikehh rakudo (8effbb7) builds on parrot r41312 - make test / make spectest (up to 28270) PASS - Ubuntu 9.04 amd64
10:50 ajia joined #parrot
10:51 payload joined #parrot
10:55 mikehh rakudo - make t/spec/S05-capture/caps.t fails with the same error (ran both at least 3 times)
10:58 cognominal dukeleto: pong!
10:58 ajia_ joined #parrot
10:59 ajia_ hello, everyone
11:00 moritz hello ajia_
11:01 ajia I want write python code inline perl
11:03 moritz I don't know how far the pyhton compiler is, and if supports cross-language operations yet
11:03 moritz allison should now (but she's not online right now, it seems)
11:04 ajia oh
11:05 ajia recently, I am writing a test architecture,but test case are multi-language implemented,so I want to write framework to support multi-lauguage test case
11:07 ajia I want to know parrot if is a best road
11:07 ajia thanks everyone
11:07 moritz well, parrot does support cross-language loading
11:07 moritz for example you can load ruby classes in Perl 6 (as far as Perl 6 and ruby are implemented on cardinal)
11:08 ajia can you give me good suggestion?
11:08 moritz but that's the culprit - only a handful of languages are mostly or fully implemented
11:08 moritz lua for example
11:09 ajia what dose mean about 'lua'?
11:09 ajia I don't understand
11:09 moritz there's a mostly complete lua compiler for parrot
11:09 ajia I know
11:10 ajia all right,I search gain, thank you very much
11:12 moritz you're welcome
11:13 cognominal dukeleto: the point of my question is that 02-eval.t is  Perl 6 code while the rest of the tests are Perl 5 code.
11:17 donaldh joined #parrot
11:20 fperrad_ joined #parrot
11:34 mikehh going to do some i386 testing - bbl
11:39 kid51 joined #parrot
11:41 mikehh joined #parrot
11:58 dalek rakudo: 4de8215 | (Martin Berends)++ | src/builtins/globals.pir:
11:58 dalek rakudo: [builtins/globals.pir] for ~/.perl6/lib use $HOMEDRIVE$HOMEPATH if $HOME does
11:58 dalek rakudo: not exist (on Windows)
11:58 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​de8215e2ac7c8699c791f983aa55eb28f7cda4a
11:59 Wolong joined #parrot
11:59 dalek parrot: r41318 | coke++ | trunk/src/pmc/sub.pmc:
11:59 dalek parrot: Fix cut and pasteo in the docs.
11:59 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41318/
12:07 Phurl joined #parrot
12:08 Phurl hi all
12:10 dalek parrot: r41319 | fperrad++ | trunk/t/op/string.t:
12:10 dalek parrot: add a test that demonstrates TT #1007 in PIR
12:10 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41319/
12:15 tetragon joined #parrot
12:26 whiteknight joined #parrot
12:27 bluescreen joined #parrot
12:38 whiteknight good morning #parrot
12:43 dalek tracwiki: v14 | whiteknight++ | JITRewrite
12:43 dalek tracwiki: +link from fperrad++
12:43 dalek tracwiki: https://trac.parrot.org/parrot/wiki/J​ITRewrite?version=14&action=diff
12:47 bluescreen joined #parrot
12:48 Phurl hi all
12:50 moritz good localtime()
12:55 whiteknight good localtime() moritz
12:56 whiteknight hello Phurl
12:58 whiteknight I love waking up in the morning to see emails about segfaults
12:58 whiteknight of course, clone_p_p is pretty naive and doesn't detect cycles, so it's to be expected
12:58 whiteknight I'm actually surprised we didn't see any problems from here before
13:02 iblechbot joined #parrot
13:04 ash_ joined #parrot
13:11 Tene moritz: pynie does not support HLL interop.
13:11 Tene in either direction.
13:12 hercynium joined #parrot
13:29 ash_ is pynie still under active development? (thats the python one right?)
13:32 moritz http://code.google.com/p/pynie/updates/list says yes
13:34 ash_ thats cool, would be interesting if at some point in the future there is a way to pull stuff from one to another, i think there is already, but still
13:51 parrot-poke joined #parrot
13:53 ruoso joined #parrot
13:56 NotFound fperrad: ping
13:57 payload joined #parrot
14:00 whiteknight joined #parrot
14:17 smash joined #parrot
14:17 smash hello everyone
14:24 theory joined #parrot
14:26 fperrad NotFound, pong
14:27 NotFound fperrad: What's the rationale for TT #1007? I don't see in string docs any reference on what to do with negative offsets.
14:31 Coke i had assumeed that parrot internals were using string[-1] expecting it to work.
14:32 Coke and that they should be updated to go from 0 instead.
14:32 Coke (which is what his patch does.)
14:33 Coke (the bug isn't in str_substr)
14:34 NotFound Coke: the test added isn't about that.
14:34 Coke ah.
14:35 Coke looks like fperrad expect it to work, but acks that it doesn't in the meantime.
14:35 fperrad My problem is with load_language,
14:35 fperrad I think (wrong) that substr deals with negative index
14:35 Coke I would say leave str_substr alone and don't add that test.
14:35 Coke (but still apply the patch to load_language)
14:36 NotFound I think we already discussed a proposal for str_substr about that, and been rejected
14:36 fperrad I wrote a test PIR because it's easier then in C
14:37 Coke fperrad: do you have any docs that suggest that substr /should/ take negative indices?
14:37 NotFound Coke: You mean the patch that says "Just a workaround" ?
14:38 Coke NotFound: yes. I'm not sure why the test was committed and the workaround not, when the workaround is the fix, and the test seems to be for something that isn't true. checking docs.
14:39 fperrad Coke, no doc
14:39 Coke then I'd ditch the test and apply the workaround^Wfix.
14:41 NotFound Did we have some tests for load_language?
14:42 Psyche^ joined #parrot
14:43 Tene NotFound: probably not.  if you want to write them, you should be able to load_language 'parrot'.
14:43 NotFound And 'squaak' ?
14:44 Tene is squaak part of the repository?
14:44 NotFound examples/laguages/squaak
14:44 NotFound (n)
14:44 Tene It doesn't get installed to the language search path, so there's no way that the load_language opcode could find it.
14:44 Tene So, no.
14:48 Coke add that to "list of things to test post-install"
14:49 Coke pmichaud: is 51850 still todo ?
14:49 Coke (RT)
14:49 Tene Coke: nothing in examples/ ever gets installed, afaict
14:49 pmichaud checking.
14:50 pmichaud yes, still todo
14:59 whiteknight pmichaud: so you are getting those segfaults on exit again?
15:00 dalek TT #1016 created by coke++: PIR line number wrong in stacktrace.
15:00 whiteknight Coke: you could have just said "IMCC does something wrong like always
15:00 whiteknight "
15:00 pmichaud whiteknight: I added the "exit 0" to rakudo and the segfaults disappeared.
15:00 whiteknight Yay! I'm not crazy!
15:01 whiteknight I'm not happy with that solution, but I'm not crazy to think that it would work
15:01 pmichaud well, it is obviously just a workaround
15:02 dalek parrot: r41320 | coke++ | trunk/t/compilers/imcc/syn/regressions.t:
15:02 dalek parrot: Ticket moved from RT to trac.
15:02 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41320/
15:02 Andy joined #parrot
15:03 Coke whiteknight: that ticket has a special place in my heart. :|
15:04 Coke pmichaud: that's the same workaround I needed to work around the inferior runloop problem I had for several years.
15:05 whiteknight Good news: we are planning for a comprehensive fix. Bad news: it will take a while and a lot of effort to do this stuff right
15:05 whiteknight oh, and exception handlers are probably going to change in a significant backwards-incompatible way.
15:07 dalek TT #1017 created by coke++: recognize the  form of alternation
15:08 mikehh_ joined #parrot
15:13 NotFound pmichaud: partcl is using the same workaround, maybe that makes you feel better ;)
15:18 dalek TT #1018 created by coke++: pir compiler must be reentrant
15:24 dalek parrot: r41321 | coke++ | trunk/compilers/imcc/optimizer.c:
15:24 dalek parrot: remove wontdo todo comment.
15:24 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41321/
15:24 dalek parrot: r41322 | coke++ | trunk/DEPRECATED.pod:
15:24 dalek parrot: update ticket reference for migrated ticket
15:24 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41322/
15:27 ash_ Coke: do you have icu version 4.0 installed? your make is looking for that version for whatever reason, (this is john from the mailing list)
15:34 Coke ash_: hi john.
15:34 dalek parrot: r41323 | coke++ | trunk/runtime/parrot/include/hllmacros.pir:
15:34 dalek parrot: Ticket has migrated from RT to TT
15:34 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41323/
15:34 Coke yes.
15:35 Coke $ icu-config --version
15:35 Coke 4.2.1
15:35 Coke er, 4.x
15:35 Coke not 4.0
15:35 Coke (that's the version that the config icu settings are pointing to.)
15:36 ash_ your error message /usr/bin/ld: warning can't open dynamic library:
15:36 ash_ > /opt/local/lib/libicudata.40.dylib implies its looking for 4.0 not 4.2, try reconfiguring it?
15:40 Coke if it's pulling 4.0, it's doing so and then lying about what version it's trying to use. =-)
15:40 smash Coke: run make realclean
15:41 smash if you updated icu
15:41 Coke i haven't updated icu.
15:41 Coke I run realclean pretty much whenever I update. (inc. this time.)
15:43 ash_ do a ls /opt/local/lib/libicu* and see if it lists 40 in there
15:43 Coke no, just 42.
15:44 ash_ so when you make it you do get   /usr/bin/ld: warning can't open dynamic library: /opt/local/lib/libicudata.40.dylib   right? well it would seem that file doesn't exist...
15:44 Coke right. why is it even trying to use that file?
15:45 ash_ beats me
15:45 Coke otool -arch all -l parrot shows libicuuc.42.dylib
15:46 ash_ sounds like something is configuring itself wrong somewhere, i mean why would it like to that that lib unless somewhere something is calling for that lib
15:46 Coke (note that it's installable_parrot that has the wrong attempted linkage, not parrot)
15:47 Coke build line is:
15:47 Coke c++ -o installable_parrot \ src/main.o src/install_config.o \ -L/Users/coke/bird/lib -L/Users/coke/research/parrot/blib/lib -lparrot -lpth
15:47 Coke read -lm   -L/opt/local/lib  -licuuc -licudata  -lpthread -lm    -lm -lgmp -lrea
15:47 Coke dline -lintl -undefined dynamic_lookup -L/opt/local/lib
15:48 Coke ->
15:50 mikehh joined #parrot
15:50 flh joined #parrot
15:51 dukeleto cognominal: jonathan said that PIR-based tests are probably best, but tests in any language are better than no tests
15:52 whiteknight Tests in pure PIR should run faster then tests in Perl5+PIR too
15:53 NotFound Also, tests in pir are syntax checked even if TODOed
15:54 NotFound That prevent bitrottened TODOs
15:54 nopaste joined #parrot
15:54 flh I have a question about Test;More: currently, the first argument of ok() is an int, which implies that when we do ok($P0), we call get_integer in $P0 instead of get_bool
15:55 dukeleto flh: interesting
15:55 flh shouldn't Test;More use a PMC argument instead, and call "istrue" on it?
15:56 dukeleto flh: maybe a multisub. if the first arg is a PMC, call istrue. if not, treat it like a bool ?
15:57 flh without multisub, an integer would be automatically boxed to a PMC which has the same truth value
15:58 flh what would be the benefit of a multisub then?
15:58 cognominal dukeleto, ok.
15:58 allison joined #parrot
15:59 pmichaud it should take a pmc as an argument and be done with it
16:00 pmichaud taking an integer as an argument is a false optimization
16:00 dukeleto what pmichaud said.
16:01 dukeleto cognominal: do the eval test pass and run on your system?
16:01 dukeleto flh: adding some tests about this to t/library/test_more.t is probably a good idea
16:01 cognominal note that my tests are in Perl 6. I don't understand the BEGIN {} stuff you added.
16:02 flh dukeleto, ok, I'll do that and send the patch on trac
16:03 cognominal dukeleto,  before your modifs, they were ok when I runned the file thru rakudo  perl 6
16:03 cognominal I still don't know how to run that thru harness
16:03 dukeleto cognominal: i saw the "use v6", so I thought you your tests were using v6.pm. but now I realize that is how perl 6 identifies itself. So maybe we should just put all tests we write in perl 6 in t/perl6 or something, then I can selectively add them in the harness if a perl6 binary is found to run the tests. The harness is perl 5
16:04 dukeleto cognominal: it probably needs a shebang line like #!perl6
16:04 cognominal that would be nice
16:05 dukeleto cognominal: ok, sounds like a plan.
16:06 cognominal also, on my mac, I got   t/spec/base/term.t .... 1/7 sh: - : invalid option
16:07 dukeleto cognominal: yes, but the test still passes, right? it is TODOed
16:10 cognominal when I remove the BEGIN {} stuff, yes it does
16:10 cognominal perl6  t/02-eval.t  # when I call it like this
16:11 cognominal afk&
16:18 dalek TT #1019 created by flh++: Make Test;More;ok and nok use a PMC argument
16:26 Austin joined #parrot
16:41 iblechbot joined #parrot
16:42 darbelo joined #parrot
16:44 mokurai joined #parrot
16:47 cotto_work ohai
16:55 davidfetter hai
17:01 cognomore joined #parrot
17:02 zostay joined #parrot
17:02 einstein joined #parrot
17:03 desertm4x joined #parrot
17:03 moritz Coke: your comment on RT #39714 is self-referential instead of pointing to trac
17:03 pmichaud whiteknight: ping (phone)
17:03 purl I can't find (phone) in the DNS.
17:07 pmichaud whiteknight: ping
17:09 gaz joined #parrot
17:17 Coke moritz++
17:19 Coke NotFound: it doesn't really prevent bitrotted todos. failure is failure.
17:24 jrtayloriv joined #parrot
17:47 dalek lua: b7e876d | fperrad++ | config/makefiles/root.in:
17:47 dalek lua: set LUA_INIT
17:47 dalek lua: review: http://github.com/fperrad/lua/commit/b7​e876dba6409c8fd8f62d44b11a5a331cfd9ec5
17:47 dalek lua: 46ca7e1 | fperrad++ | config/makefiles/root.in:
17:47 dalek lua: minor
17:47 dalek lua: review: http://github.com/fperrad/lua/commit/46​ca7e1950e82377b61e4d2f276c40faadaf59cd
17:53 joeri joined #parrot
18:00 chromatic joined #parrot
18:08 nopaste "coke" at 193.200.132.135 pasted "why would this segfault?" (59 lines) at http://nopaste.snit.ch/17980
18:10 Coke Do registers in PASM map directly to "physical" registers still?
18:12 chromatic I don't think they do.
18:14 Coke i left a comment on that ticket that they don't, but Iunno.
18:19 Coke the segfault dies with a context showing:
18:19 Coke n_regs_used = {134950472
18:19 Coke so it looks like they still are directly mapped.
18:22 chromatic n_regs_used is a pointer.
18:23 Coke ah
18:23 Coke I thought it meant "number of registers used". =-)
18:24 * Coke ... someone already wrote these tests. damnit.
18:24 Coke how do I remove a change that has been 'git commit'd but not 'git svn dcommit'd  ?
18:24 Coke (it's only one, so I can't do it via interactive rebase.
18:25 moritz git reset --hard HEAD^
18:25 moritz HEAD^ is the commit one before HEAD
18:25 Coke danke.
18:29 cotto_work The more I look into git, the more I want Parrot to switch to it.
18:29 Austin Cotto: why is that?
18:40 mikehh All tests PASS (pre/post-config, smoke, nqp_test, fulltest) at r41323 - Ubuntu 9.04 i386
18:40 tewk joined #parrot
18:41 tewk ping pmichaud
18:41 purl I can't find pmichaud in the DNS.
18:41 pmichaud pong
18:41 pmichaud (purl:  hint, pmichaud is in Texas, not in the DNS)
18:42 tewk How would you compare and contrast Perl6 Grammars with PEG parsing?
18:42 pmichaud I don't know PEG parsing
18:42 diakopter lengthily
18:42 tewk Also are you aware of Regular-expression derivatives?
18:43 pmichaud nope
18:43 diakopter Perl6 Grammars aren't necessarily scannerless, while PEG is, unless you just do it in two phases... Perl6 Grammars backtrack, whereas PEGs do not backtrack past a single alternation.
18:44 diakopter most PEGs don't have parametric patterns/rules, though the one I implemented did.
18:44 tewk http://www.ccs.neu.edu/home/turon/re-deriv.pdf - Derivate regular expressions
18:49 tewk I would call PGE scannerless though.
18:50 diakopter sure; I'm referring to the distinction between token and rule
18:50 pmichaud perhaps you mean regex and token?
18:50 diakopter yea, that :D
18:50 diakopter I'm a few years behind
18:51 diakopter or something.
18:51 tewk So did "rule" get banished? I'm out of it too.
18:51 pmichaud the difference between token and rule is handling of metasyntactic whitespace
18:51 diakopter maybe not.  sry for the noise :/
18:51 pmichaud the difference between regex and token is that tokens have backtracking disabled by default
18:52 Austin Boy, I hate it when I compute the correct value for an attribute, but neglect to store the attribute on the node, and then spend an hour debugging that.
18:53 * diakopter makes notes
18:53 diakopter my brain breaks for weeks with each read of S05.
18:56 jrtayloriv diakopter, Basically rule is token with :sigspace added (I think)
18:58 jrtayloriv i.e. token --> regex :ratchet {} and rule --> regex :ratchet :sigspace {}
19:00 cotto_work Austin, less painful merges would be reason enough, but I also really like the idea that all history and branches are local, that I can stash changes and that it's easy to work on several branches at the same time.
19:00 mikehh rakudo (3de8215) builds on parrot r41323 - make test / make spectest (up to 28274) PASS - Ubuntu 9.04 i386
19:01 Austin cotto_work: thanks
19:01 cotto_work I get to dig into it for work (shouldn't say more) and I'm really liking it.
19:01 whiteknight cotto_work: I don't like the "less painful mergers" argument. I rarely find SVN mergers to be difficult at all, especially if you follow a few best practices
19:02 pmichaud having switched rakudo over from using svn to git earlier this year, I can say that I'm very satisfied with the switch (and glad we're not on svn)
19:02 cotto_work whiteknight, the speed of merges is a major benefit.  It's way too slow with svn, even without conflicts.
19:02 whiteknight I'm certainly not arguing against git, I would be happy to switch I think. I'm just saying that one particular argument isn't so moving
19:03 whiteknight cotto_work: Ah! that's a different thing. Speed of merger is different from ease of merger
19:03 cotto_work faster == easier in my book (less mental activation energy to overcome)
19:03 donaldh joined #parrot
19:04 chromatic The last branch merge I did in Parrot SVN took two hours.
19:04 chromatic That was not a complex merge.
19:04 pmichaud there's also the side that "follow a few best practices" (with svn) also implies some restrictions and extra steps in branch management
19:04 pmichaud that don't seem to be issues with git
19:05 whiteknight pmichaud: a little bit of discipline and best practices is never bad to have
19:06 whiteknight it's not a good argument that we want git because we are too lazy to do things "right"
19:06 pmichaud I'm not saying that git allows a lack of discipline
19:06 pmichaud nor am I saying that git allows you to do things wrong
19:06 pmichaud I'm saying that with svn there are lots of ways to do it wrong, and only one way to do it right
19:07 pmichaud s/only one/very few/
19:07 pmichaud git provides a few more flexible work patterns, that require less effort in order to do the right thing
19:07 pmichaud *less effort* is the key.
19:07 pmichaud git still has best practices
19:08 pmichaud git still requires some discipline
19:08 pmichaud but those best practices and discipline are less onerous than the svn versions of the same.
19:08 whiteknight I want to make sure that we're making good, influential arguments to migrate to git.
19:08 whiteknight Allison has clearly not been swayed by some of the arguments she's heard thus far
19:08 pmichaud fair enough.  Here's the one that clinched it for me (more)
19:09 Austin The one where Linus tells you that if you don't use Git, you're stupid and ugly and smell bad?
19:09 pmichaud When rakudo needed to switch repositories earlier in the year, I put out a call to see whether people thought we should stick with svn versus moving to git
19:09 pmichaud I got a lot of feedback
19:09 pmichaud however, the clinching argument is that *nobody* argued in favor of svn based on its merits of being easier to use or having superior technology
19:10 mikehh partcl r742 builds on parrot r41323 - make test PASS - Ubuntu 9.04 i386
19:10 pmichaud the only reason that anyone had with staying with svn was because that was what we had been using previously
19:11 pmichaud so if it comes down to "influential arguments" as to making one choice versus another, I'd like to see informed reasons for staying with svn.  We clearly have a lot of Parrot developers who can give informed reasons for moving to git.
19:12 pmichaud "stay with svn because that's what we've always used" is a valid reason
19:12 pmichaud but I'm not sure it stacks up against the other ones
19:12 darbelo You can make git dress up as svn if that's your kink.
19:12 pmichaud and yes, that is what many of us do with rakudo.
19:13 diakopter "slower/older n00bs " (like me) "haven't yet learned git"
19:13 pmichaud when someone as smart as chromatic says "The last branch merge I did in Parrot SVN took two hours", that says something (more)
19:14 pmichaud last time I did a major branch merge for Rakudo, and it was _significant_, it took me 10 minutes (more)
19:14 pmichaud it took 10 seconds to do the merge, and then 9 minutes 50 seconds to convince myself that the merge actually worked even though "it's not possible for git to have merged a branch that big so cleanly."
19:15 diakopter perhaps chromatic wasn't using a nice SVN 3-way merge GUI? (half kidding; sorry)
19:15 HG` joined #parrot
19:15 tewk Glad to see that the tide is turning toward git.
19:15 chromatic I moved files.
19:15 pmichaud I suspect I can find the irc discussion where I was totally shocked that git's merge worked...
19:16 chromatic It is not acceptable to me that we have a limitation such as "Do not move or rename files on a branch, lest you have to merge by hand."
19:16 chromatic Otherwise, what's the point of doing that work on a branch?
19:17 sri joined #parrot
19:17 pmichaud oh yes, my merge was the ins2 merge -- where we completely reworked Rakudo's build environment to use an installed Parrot
19:18 whiteknight I had suggested a poll on parrot.org to get input about the issue. I don't know how to create one or I would have already
19:18 pmichaud that was a long-lived branch with no synchronization to rakudo trunk
19:18 chromatic It seems crazy to me that I have to remember that there are refactorings I just *cannot* do when I'm on a branch.
19:19 pmichaud http://irclog.perlgeek.de/​perl6/2009-08-12#i_1387501   # my shock at git merging
19:21 Austin I have a performance question about starting up my parser.
19:21 mokurai left #parrot
19:21 Austin What is happening between the time I run from the command line, and the time that I enter the topmost Grammar rule?
19:21 Austin (In particular, what is happening that takes so long?)
19:22 pmichaud are you using the operator precedence parser?
19:22 Austin No
19:22 pmichaud just rec-descent?
19:22 Austin It's on my list of things to do, but right now it's all top-down
19:22 pmichaud hmmm
19:22 pmichaud what libraries get loaded?
19:23 Austin What do you mean?
19:23 pmichaud I'm guessing that PCT.pbc gets loaded
19:23 Austin There's no dynamic ops, so Parrot loads whatever parrot loads.
19:24 pmichaud that in turn causes P6object.pbc, PGE.pbc, PCT/HLLCompiler.pbc, etc. to be loaded
19:24 pmichaud P6object has to create some classes
19:24 mokurai joined #parrot
19:25 Austin As far as .pbc files, it's HLLCompiler, P6object, PCT, plus my NQP stuff
19:25 pmichaud PGE creates some classes and also does OPTable initialization for parsing P6regexes.  We (c|sh)ould make that lazy, so that the initialization occurs only when we're about to parse a p5/p6 regex.
19:25 pmichaud PCT has to create and register the PAST::* and POST::* classes
19:25 sri joined #parrot
19:25 pmichaud basically, in each library, all of the subs marked :load are executed
19:26 pmichaud since you're not using the operator precedence parser yourself, I wouldn't think there are any :load subs in your parser
19:26 pmichaud however, it might be worth looking for ":load" inside of src/gen_*.pir  (or wherever your PIR files are being saved)
19:27 NotFound Interesting the talk about titles. I'm thinking about writing an article titled: "Negative titles considered harmful" X-)
19:27 pmichaud make it more direct:   "Negative titles are bad."
19:28 pmichaud Or ironic:   "Why are article titles always so misleading?"   ;-)
19:28 NotFound pmichaud: but the other way give me two pieces for one shot :)
19:28 Austin _block13 is very popular
19:28 NotFound "Are rethoric questions bad?"
19:28 MoC Re GIT: From what I understood git heavily depends on the existence of Linux-environment commandline utils, which makes it really hard to use on - in my case - Windows. (I know there's an installer but that includes a cross-compiling environment with cc'ed bash, which I already have installed and I don't like having duplicates. [...]
19:28 MoC Compiling it myself is no alternative, since the dependencies are not really that win32-friendly, either.)
19:29 chromatic It's a lot better on Windows than it was, but it is still CLI-ish.
19:29 pmichaud I agree that Windows support is an issue also.
19:29 Austin I think I have found a bug.
19:30 Austin Sigh.
19:30 NotFound Austin: Impossible! We're perfect!
19:30 Austin :)
19:30 Austin Don't worry, NotFound - it's a PCT bug.
19:30 pmichaud Austin: Impossible!  PCT is perfect!
19:31 MoC Well, I don't mind that it's mostly CLI, it's only the dependency on Linux cmd utils that keeps me away.
19:31 NotFound The names says it: "Perfect Compiler Toolkit", isn't it?
19:31 Austin Notice the "2" down near the bottom.  http://nopaste.org/p/aa5LeMzCG
19:32 Austin The problem seems to be that it's /too/ fast.
19:32 Austin And so it's possible for separate files to compile with the exact same timestamp.
19:32 Austin Thus producing the onerous "2".
19:33 pmichaud ah, I'm not sure that's really a pct bug then :)
19:33 pmichaud (you're correct, it shouldn't be doing that, though)
19:34 Austin I suspect that it doesn't make much difference - most of the _block13 subs are just captures.
19:34 pmichaud its only a problem if something is referencing the block, though.
19:34 pmichaud I would greatly appreciate it if Parrot had a built-in UUID generator of some sort :)
19:34 pmichaud PCT would definitely make use of it.
19:34 whiteknight so the solution there is a better GUIDgen?
19:35 Austin Actually, never mind. That's a deliberate artifact on my part.
19:36 pmichaud a-ha!
19:36 Austin Duplicating a file solves a problem I had with something producing unreadable .pbc files.
19:36 dalek parrot: r41324 | NotFound++ | trunk/src/packfile.c:
19:36 dalek parrot: [core] patch to Parrot_load_language from TT #1007 with a short comment
19:36 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41324/
19:36 * pmichaud points back to his "Impossible!" line above :)
19:36 pmichaud afk, errand
19:37 Austin So anyway, there are many "_block13" subs marked load, which are all NQP outermost scopes.
19:37 Austin There's an __onload sub makred :load for the grammar.
19:37 Austin And a _block13 for the actions.
19:37 Austin That's it for :load subs
19:38 Austin Is the size of the PBC file known to make a significant difference on startup time?
19:39 dalek parrot: r41325 | NotFound++ | trunk/t/op/string.t:
19:39 dalek parrot: revert r41319, see TT #1007
19:39 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41325/
19:40 Aisling joined #parrot
19:43 whiteknight Austin: we should get together some time and hack. I am interested in hacking on Close
19:43 Austin "on" or "in"?
19:43 Austin :)
19:43 dalek TT #1007 closed by NotFound++: load_language creates wrong search paths
19:43 whiteknight specifically, I would like to help get it to the point that I can start writing libraries with it
19:43 Austin That would be cool.
19:43 Austin (And is exactly the same point I want to get it to.)
19:43 Coke (windows support) has anyone used tortoisegit?
19:44 Coke if it's as correspondingly useful as tortoisesvn...
19:46 whiteknight Austin: one thing that I would especially love to see in Close is Closures
19:46 Austin What's a closure?
19:46 purl I hardly KNOW her.
19:47 whiteknight like a function within a function
19:47 chromatic A first-class function that binds over a lexical scope.
19:47 whiteknight like a private sub ref in Perl5, I think
19:47 Austin It's a "generation" versus "writing" thing.
19:48 Austin The object of Close is to be C for PIR. And you can enclose subs in PIR, ergo...
19:48 Austin But, that's probably different from what you mean.
19:49 whiteknight I was doing this in PIR the other day: http://wknight8111.blogspot.com/200​9/09/y-combinator-in-pure-pir.html
19:49 whiteknight and I thought to myself, "this would be so much better in Close"
19:49 Austin :)
19:50 whiteknight I have high hopes for your language! you better not disappoint me!
19:50 Austin Ruh roh.
19:50 purl ruh roh is probably Raggy?
19:51 Austin so you'd be okay with   return std::newclosure(fact);    ?
19:51 Coke pmichaud: I got something about 20% working using parrot's callchain.
19:51 Coke (instead of handrolling)
19:52 whiteknight Austin: I'd rather be able to define a new sub inside a sub
19:52 whiteknight so return sub { ... };
19:52 Austin Is there a way to get at time information from PIR?
19:52 Coke just like in C! (er...)
19:53 Austin Or from NQP?
19:53 whiteknight Austin: there is a time opcode I think
19:53 Coke Austin: perldoc src/ops/sys.ops
19:53 Austin WhiteKnight: nested subs are planned. (How else to use lexicals?)
19:53 Austin Yes!!! It's finally slurpy.
19:54 whiteknight what is slurpy?
19:54 purl slurpy is probably probable at some point
19:54 Coke ^_-
19:54 whiteknight purl forget slurpy
19:54 purl whiteknight: I forgot slurpy
19:55 Austin You can't just set $node<pirflags> and expect it to work. You have to know when to set $node.slurpy(1) instead.
19:57 cotto_work whiteknight, http://www.parrot.org/node/add/poll
19:58 cotto_work I'd have started a poll myself, but I haven't had the tuits to get the wording right.
19:58 pmichaud "You are not authorized to access this page."
19:58 whiteknight must login
19:58 whiteknight I'll create the poll
19:59 cotto_work whiteknight++
19:59 whiteknight now that I know how to do it cotto_work++
19:59 pmichaud I did login
19:59 pmichaud "You are not authorized to access this page."
20:00 cotto_work pmichaud, bug coke if you want permissions of that nature.  iirc he's a Drupal admin
20:00 pmichaud eh, I've asked three times about it already.  Probably not worth asking a fourth.
20:00 pmichaud (didn't ask Coke each time, but I've asked in #parrotsketch and other places and been warnocked)
20:02 cotto_work you can also bug allison when she's around
20:02 whiteknight What choices should I include in the poll? I have SVN, CVS, Git, Mercurial, Bazaar. Anything else worth including for completeness?
20:02 pmichaud guess who I've asked :)
20:02 Austin DARCS
20:02 Austin Aegis
20:02 Tene Huh, there's a poll?
20:02 whiteknight actually, this poll only gives me 5 slots. That's what I'll stick with
20:02 whiteknight Tene: there will be :)
20:02 Austin tlarch
20:02 Tene poll about what?
20:03 pmichaud I don't think we need CVS in the list
20:03 pmichaud we already moved _from_ cvs to subversion, I doubt we'd be moving back.
20:03 Tene pmichaud: we need to know if anyone has poor enough taste that we should shun them.  You're going to be showing who voted for what, right?
20:03 Tene ;)
20:03 whiteknight pmichaud: it's a normalizing factor. Voting for CVS is like saying "I don't know what's good, so don't listen to me"
20:04 cotto_work whiteknight, you can add more slots
20:04 whiteknight http://www.parrot.org/content/straw-poll-whic​h-version-control-system-would-you-parrot-use
20:04 whiteknight cotto_work: yeah, whatever. This is what we have now
20:04 whiteknight thanks though
20:05 Tene now, why are we voting on this?
20:05 * pmichaud considers voting for CVS just to confirm that people won't listen to him.
20:05 cotto_work Tene, to build momentum?
20:05 Tene I thought it was established that we weren't going to be changing any infrastructure until after 2.6 or something.
20:05 pmichaud Tene: straw poll, just to see some actual numbers
20:05 whiteknight Tene: just a straw poll, want to measure community preferences
20:06 pmichaud for example, I've been thinking about developing the new versions of PGE/NQP on github and then bringing them into Parrot :)
20:07 chromatic The text should say "Just a straw poll and not a commitment to change anything anytime soon."
20:07 pmichaud +1
20:07 purl 1
20:07 whiteknight the title does say "Straw poll:"
20:07 chromatic http://portal.acm.org/citation.cfm?id​=360345&amp;dl=GUIDE&amp;coll=GUIDE&a​mp;CFID=18661090&amp;CFTOKEN=41542806
20:07 pmichaud I agree it would be better to have the text explicit
20:08 whiteknight done
20:08 pmichaud yes, better.
20:09 pmichaud could use a period before the closing paren </bikeshed>
20:09 cotto_work chromatic, refcounting?
20:09 whiteknight that's actually the character limit for the title field, can't add anything more
20:09 cotto_work I thought that was evil.
20:09 chromatic Getting it correct is about as hard as getting write barriers correct.
20:09 chromatic There's a correspondence between refcounting and "true" GC.  Almost any practical system is a hybrid.
20:09 whiteknight chromatic: so we should delete all periods?
20:10 cotto_work periodically
20:11 whiteknight_ joined #parrot
20:12 chromatic I don't follow.
20:14 Tene pmichaud: allison's arguments for svn are based on productivity and ease of use.  She asserts that git is dramatically more difficult for her to work with.
20:15 * Coke tries to figure out why git has six votes but two votes.
20:15 Tene Now, the details of her difficulties don't match with anything I've ever seen, so I'm a bit confused by them, but that was one of her major points the last time I saw this discussed.
20:15 dalek parrot: r41326 | darbelo++ | branches/kill_jit (3 files):
20:15 dalek parrot: Unbreak non-x86 build. Test pass.
20:15 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41326/
20:16 Coke (permissions) best way to ask is via a ticket. =-)
20:16 darbelo Say, how do I vote?
20:16 Coke (but I noticed this time, so hang on.)
20:16 Tene darbelo: it might require that you log in?
20:17 darbelo Tene: logged in. Bu I only get an "Add new comment" link.
20:17 pmichaud Tene: Yes, I saw allison's discussions on the topic.  My experience is the same as yours -- the details of her difficulties don't match with anything I've seen or experienced either.  But more to the point, we have a fair number of people who claim that svn is dramatically more difficult for them than git.
20:17 zerhash joined #parrot
20:18 Coke pmichaud: updated perms for you on drupal.
20:18 pmichaud Coke: danke
20:18 chromatic It comes down to this for me: to make branching and merging work in SVN for the things I want to do, I have to keep track of revision numbers manually, I have to remember that there are certain refactorings I can't do, and I have to be ready to create a new, empty branch and merge my branch manually by way of massaging patch sets.
20:19 Coke (what a pita it was to find your account to edit it.)
20:19 Coke pmichaud: I might have zorched your password.
20:19 chromatic At that point I start to wonder how much better this is than mailing around tarballs.
20:19 Austin Is there a connection between the parrot.org account and the trac.parrot.org account?
20:19 Coke Austin: no.
20:20 Tene darbelo: I get a radio select control with a 'vote' button at the bottom.
20:20 pmichaud Coke: (six votes but only two names)   It seems that drupal might have recorded my vote twice
20:20 Coke pmichaud: ok. where's the other 3? =-)
20:20 pmichaud I don't know.
20:21 pmichaud maybe it recorded a vote every time I refreshed the page?
20:21 pmichaud otoh, is it the case that only Coke and I have voted thus far?
20:21 Tene I voted.
20:21 Coke Tene: did you login first?
20:22 Tene Yes.
20:22 Tene ... Huh, it does record multiple votes from me refreshing the page.
20:22 Tene I've now voted at least twice!
20:23 Coke perhaps we can just count named votes. =-)
20:23 pmichaud on the plus side, you now appear on the list.
20:23 cotto_work I voted
20:23 pmichaud I'm fine with just counting named votes
20:23 pmichaud although cotto's vote doesn't appear in the list
20:23 Coke "keep voting until it sticks"
20:23 Tene is the list of voters not public?
20:23 pmichaud "vote early and often"
20:23 cotto_work pmichaud, that's odd
20:24 cotto_work meh.  I'll leave it as-is.
20:24 Coke apparently drupal sucks!
20:24 Tene Coke: let's get it running on Parrot.  I bet that'll fix it.
20:24 Coke Tene: sure. mod_tcl only.
20:25 whiteknight can you even see which votes have names associated with them?
20:25 Coke whiteknight: click on "votes"
20:25 pmichaud I can see a list of people who voted and how they voted
20:25 whiteknight Coke: I don't see "Votes"
20:25 klaus joined #parrot
20:26 Coke are you at http://www.parrot.org/content/straw-poll-whic​h-version-control-system-would-you-parrot-use ?
20:26 Coke (and not looking at the vote via the front page?)
20:26 whiteknight yes, I am on that page. no "votes"
20:26 Coke maybe you need to be an editor.
20:26 Coke or an admin
20:26 purl i heard an admin was kind of a dork
20:26 Coke yes, I am.
20:26 whiteknight I can has admin?
20:27 Tene Coke: Have you tried using tcl from mod_parrot?
20:27 pmichaud permissions on voting look a bit weird
20:27 pmichaud http://www.parrot.org/admi​n/user/access#module-poll
20:27 AndyA joined #parrot
20:27 pmichaud right now only directors and members can vote.  I suspect that was to support the director elections a few weeks ago
20:28 pmichaud (even "admins" can't vote)
20:29 Coke Tene: jhorwitz tried and failed, I believe.
20:29 Coke should be a piece of cake with PCT, or so I'm told.
20:29 Coke pmichaud: it's probably setting on the vote form. moment.
20:29 Tene pct makes everything be cake.
20:30 Tene My car?  Cake. My bed?  Delicious cake.
20:30 pmichaud (tcl and pct)  I'm expecting to get a bit of time for that on Sunday
20:31 Austin Tene: The cake is a lie!
20:31 Coke ah, http://www.parrot.org/admin/user/access
20:31 Coke this was a triumph.
20:31 Coke I'm making a note here.
20:31 Tene Austin: No!  Where will I sleep?!
20:32 Coke it's not unreasonable for this vote to be restricted to members, now that I thikn about it.
20:32 whiteknight I've got a lead on a guy who wants to translate the Perl 6 wikibook to German, and one who might want to translate it to french
20:32 pmichaud okay, I've got to get my $otherjob stuff ready for tomorrow's trip
20:32 Tene pmichaud: where are you going?
20:33 pmichaud to  $otherjob.location
20:33 pmichaud (Corpus Christi, TX)
20:33 Tene particle: Looks like I'll be in seattle again the week of Sept 27.
20:33 dalek website: Whiteknight++ | Straw poll: Which version control system would you like Parrot to use? (Just a straw poll, not a commitment to change anything)
20:33 dalek website: http://www.parrot.org/content/straw-poll-whic​h-version-control-system-would-you-parrot-use
20:33 Tene particle: the gf isn't coming this time, though.
20:33 whiteknight yay dalek! better late then never!
20:40 jrtayloriv joined #parrot
20:44 allison joined #parrot
20:45 Khisanth joined #parrot
20:46 cotto_work hi allison
20:47 allison hi cotto
20:49 bluescreen joined #parrot
20:50 Coke allison: settled in?
20:50 dalek parrot: r41327 | darbelo++ | branches/kill_jit/config/auto/frames.pm:
20:50 dalek parrot: Don't probe for information we won't need.
20:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41327/
20:50 allison Coke: I'm at the JVM Languages Summit this week
20:50 cotto_work allison, do you have a link to the message to parrot-dev where you listed your issues with git?
20:50 allison cotto: I don't
20:51 cotto_work k
20:51 Coke mail archive is gogoleable.
20:51 Coke ... and that other thing.
20:51 Coke RT: 247 tickets and counting.
20:51 allison cotto: though the recent IRC discussion has several important questions/comments
20:51 cotto_work Coke, what other thing? ;)
20:51 Coke googleable.
20:51 cotto_work which one?
20:52 Coke anyone here admit to using emacs?
20:52 Coke (to hack on parrot)
20:52 bluescreen i do
20:52 * darbelo used to.
20:52 Coke bluescreen: can you look at http://rt.perl.org/rt3/Tic​ket/Display.html?id=45365 ?
20:53 bluescreen why not
20:54 cotto_work allison, which discussion?  There have been several.
20:54 allison cotto: http://lists.parrot.org/pipermail/par​rot-dev/2009-January/thread.html#946
20:54 allison cotto: I only remember participating in one
20:54 allison cotto: but I don't remember the day
20:54 cotto_work you might have been in the air
20:55 allison I'll see if I can recall
20:55 allison - Integration with trac.
20:56 allison - Demonstrate that git actually is better at resolving the merging conflicts we hit in real usage.
20:56 allison - Source code browsing tools.
20:56 allison (including revision browsing)
20:57 HG` joined #parrot
20:57 allison - Down-time and retraining time for developers.
20:58 allison - Safety of the core source (limiting the damage possible accidentally or by new committers)
20:59 allison (with git it's possible to make changes that destroy the history of the repository)
20:59 chromatic I dispute that last point.
21:00 Coke (core source) I think that is either trivial or mislabeled.
21:01 allison http://shotgunsandpenguins.blogspot.com/200​9/07/journey-to-git-part-vi-rewriting.html
21:02 allison Coke: should say "source history"
21:02 chromatic Where's the part that "destroy(s) the history of the repository"?
21:02 allison chromatic: is "unintentionally change" more tolerable than "destroy"?
21:03 chromatic Yes, but still inaccurate.
21:03 allison or just "change"
21:03 chromatic Sure.  What's the problem?
21:03 chromatic I've rebased commits myself.  I know why I've done it.  I've had very good reasons for doing so.
21:04 chromatic The Git rule is very simple: you can manipulate your commit history as much as you like in your local repository.
21:08 dukelet0 allison: trac has git integration
21:09 allison cotto: TT #138
21:09 Coke (i very frequently use interactive rebase so I can make a lot of small incremental local commits and then merge them before pushing upstream.)
21:09 Coke (even with git-svn)
21:09 tewk That is my favorite git feature.
21:10 Coke er, s/merge/squash/ to avoid mixing up terms.
21:10 allison dukelet0: that helps
21:10 whiteknight chromatic: I can change my history locally, but that doesn't effect the "main" repository (wherever that is)?
21:10 dukelet0 allison: also, i am not so sure about "safety of source." A new committer has the potential to temporarily break/delete history, but every parror tree is a historical backup
21:10 chromatic That's right, whiteknight.
21:11 cotto_work in response to that, I'd say that git supports a svn-like workflow quite nicely
21:11 chromatic Your local repository is as first-class as any repository.  Any master repository is only master by convention and agreement of other people to treat it as the master.
21:11 dukelet0 whiteknight: in theory, a new user could force a non-fast-forward update to the main repo i.e. changing history. This would obviously cause every other person who is using the main repo correctly to say "what the junk?"
21:12 whiteknight are changes to the history able to be reverted?
21:12 dukelet0 whiteknight: and then the small mishap could be fixed with someone's non-mangled parrot repo
21:12 whiteknight okay
21:12 Coke I think that we could, with git, change our workflow so that we could more easily allow newbies to hack without giving them access to master.
21:13 whiteknight that is a good point. Let newbies own their own branch for a while, see that it works for them, and then give them access to master
21:13 dukelet0 Coke: of course. we can have a sandbox repo for new committers that perhaps only has write access to certain subsystems
21:13 Coke we could do that now with svn, likely, but haven't. (the cvs repo was initially setup that way.)
21:13 tewk dukelet0, I'm sure we could use a hook to disable non-fast-forward update
21:14 pmichaud given that we only accept committers based on recommendations from others, how likely is it for someone to be rewriting history anyway?
21:14 pmichaud even accidentally?
21:14 dukelet0 tewk: that as well. Currently the end-user must ignore a very angry git warning message about changing history, but it is still possible. Excplictly denying it by a server hook would be best
21:14 dukelet0 pmichaud: i would say it is mostly for the accidental case
21:15 dukelet0 pmichaud: with automated tools, sometimes bad things happen
21:15 chromatic I'm not sure how someone would stumble into it accidentally, but if we can prevent it from ever happening, so much the better.
21:15 pmichaud seems to me that "rewrite history" on the master requires "--force" somewhere.
21:15 dukelet0 chromatic: basically, if you force a push to a repo that does not share the same history, you can change that repo's history
21:16 Coke (also: backups)
21:16 tewk I have scripts that force push to backup repos, hence a hook that prevents ti would be nice
21:16 dukelet0 tewk: I agree.
21:16 * whiteknight leaves. Later
21:16 Coke ~~
21:16 dukelet0 also, I can't seem to vote on the git poll. where is the button?
21:17 allison dukelet0: you have to be logged in
21:17 pmichaud I think you also have to be a member
21:17 allison mmmm... at the moment you also have to be a member
21:17 dukelet0 allison: i am logged in, but still can't
21:17 allison yes, what patrick said
21:17 allison but, the poll is broken anyway
21:17 dukelet0 i though I *was* a member. what does that mean?
21:17 DrForr joined #parrot
21:17 dukelet0 s/though/thought/
21:17 allison it's counting 8 votes, but if you go look at the votes there's only 4
21:18 pmichaud dukelet0: what's your login id?
21:18 allison dukelet0: it's a particular permission group for foundation members
21:18 pmichaud allison: yes, we noticed that earlier.
21:18 allison (which you aren't yet)
21:18 Tene allison: there were problems with it counting votes multiple times, or something, maybe.
21:18 allison we can open up polls to developers
21:18 Tene I'm pretty sure it counted my vote more than once.
21:18 allison (I'll delete the old foundation voting polls)
21:19 allison Tene: I noticed a bug when I was testing it for membership voting where modifying the poll after people have voted ends up doubling any votes that were in the system before the change
21:20 dukelet0 pmichaud: dukeleto
21:20 purl somebody said dukeleto was Duke Leto Atreides I (10,140-10,191 A.G.) is a fictional character in the Dune universe created by Frank Herbert, or http://twitter.com/dukeleto
21:20 dukelet0 botsnack
21:20 purl thanks dukelet0 :)
21:21 pmichaud allison: that would explain the double-votes, then
21:21 pmichaud allison: but cotto also has voted and his name doesn't appear in the list
21:21 pmichaud (or didn't appear there when I looked earlier)
21:22 allison pmichaud: maybe there's several bugs, not sure
21:25 dalek rakudo: 05e7604 | (parrot user)++ | :
21:25 dalek rakudo: fixed bad math
21:25 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​5e760425dff9c4f630d9cb5f600891407735290
21:25 dalek rakudo: 41f7ba7 | (parrot user)++ | :
21:25 dalek rakudo: Merge branch 'master' of http://github.com/rakudo/rakudo
21:25 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​1f7ba7b8f860286a3f3a5091dfaedfedbbc45c9
21:25 dalek rakudo: 2953ac7 | (parrot user)++ | docs/release_guide.pod:
21:25 dalek rakudo: fix typo
21:25 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​953ac774e41cc428fff24b2c190c970cf226553
21:25 joeri left #parrot
21:25 Coke parrot user ?
21:26 particle heh, that's me, from a generic vm. annoying, that.
21:26 Tene the danger of someone pushing a stupid commit with git is about the same as of someone pushing a stupid commit with svn.  If I 'svn rm' everything, I can just revert.  It's the same process with git.  Everything is still there, someone just changed the "master" label to point to someplace stupid, so we just change it back.
21:26 Coke I think you can set your creds in a .gitMagicPony file.
21:28 dalek parrot: r41328 | darbelo++ | branches/kill_jit (4 files):
21:28 dalek parrot: Make codetest happy.
21:28 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41328/
21:29 dukelet0 Tene: except that breaking the main svn repo stops everyones development, whereas breaking the *master* git repo just causes some momentary confusion
21:30 particle WE'RE NOT DONE MOVING FROM RT TO TRAC.  DO YOU REALLY WANT THE PAIN OF MOVING FROM SVN TO GIT NOW?!?!?!?!?!?!?!?!?!
21:30 particle *ahem*
21:31 Coke particle: (not done)
21:31 Tene allison: also, if anyone forces a history-breaking update, it requires everyone else to explicitly say "drop my current branch, and go get the master, that's not an ancestor of my current master".
21:31 Coke particle: maybe you could reply to some of those tickets that have been waiting for feedback from you for 2 years. =-)
21:31 Tene particle: we're also going to rewrite Parrot in common lisp, I hear.
21:31 dukelet0 particle: no good deed goes unpunished
21:31 particle two years with no feedback? sounds like they're stalled.
21:31 particle clean your room, then we'll talk about a pony.
21:31 Coke stalled doesn't mean crap.
21:32 Coke they're either still relevant or not.
21:32 * dukelet0 hopes for a magic git pony
21:32 particle sounds like they're not still relevant, or can be someday rediscovered
21:32 darbelo Tene: That's after we implement common lisp on top of parrot.
21:32 particle that said, i'll look in rt
21:32 Coke particle: you yourself have said "don't close tickets just to close tickets".
21:32 Coke ;I just saw a ticket of yours in the queue with a note to that effect. You'd rather have old tickets than surprises. something about a dentist.
21:33 Coke Soon they'll all be stalled over at trac instead, anyway.
21:33 Tene particle: you in town during the week of September 27?
21:33 particle http://rt.perl.org/rt3/Tic​ket/Display.html?id=55806 seems easy to port to trac
21:33 Coke feel free to assign easy ports to trac to me.
21:33 Coke (or port them.)
21:34 particle tene: i think so, it looks like it for now
21:34 Tene particle: I'll harass you closer to the event, then. :)
21:35 particle damned yaks.
21:35 * Coke does an svn merge at work and is filled with useless tree conflcits.
21:36 Coke yummy.
21:36 particle i need to upgrade flash so i can release rakudo
21:36 Tene particle: o.O how is that related?
21:36 particle precisely.
21:36 darbelo particle: That sounds... broken.
21:37 particle apparently i can't upload to github without flash 9
21:37 Tene wtf
21:37 cotto_work flash? nein!
21:38 particle well, at least i've proven that the generic parrot/rakudo dev vm works well enough to release rakudo
21:38 particle the vm that i'm building but haven't released yet
21:38 particle not much to stop me now, though :)
21:39 allison Tene: I'm not sure I find it comforting that the master could be corrupt and no one notice it
21:39 Tene particle: I hope you don't need to upgrade MySQL to release the VM.
21:39 Tene allison: erm... that's the opposite of what I said.
21:40 allison Tene: ah, then I misread what you wrote
21:40 Tene allison: git will complain bitterly for anyone who tries to get updates, and will require you to explicitly say "Yes, I know that that commit isn't a descendent of my current branch, but I really do want to update anyway and discard the current branch I have"
21:40 allison Tene: makes sense
21:41 Tene allison: also, I wouldn't say "corrupted", just "misconfigured", because all of the data is still there, someone just changed the labels around.
21:41 Tene Like moving the "exit" sign in the office onto the door to the bathrooms.
21:41 particle so much for my 40mi bike ride today, time is too short :(
21:41 Tene Not actually a *useful* analogy, but a silly one.
21:42 chromatic One thing people who haven't used Git much might not realize is that you can have cryptographically-mathematical confidence that when Git thinks a file and a commit are the same, they are the same, despite their ancestrage.
21:42 Tene chromatic: *including* their ancestry
21:43 chromatic You can get the same file contents through different ancestry.
21:43 Tene chromatic: yes, but you also said 'commit'
21:43 chromatic Fair enough.
21:43 Tene and commits include their ancestors.
21:43 Tene But, yes, that's also relevant.
21:44 Tene I missed the point of your msg the first time. :)
21:44 chromatic Just that wedging the repository that way is very, very difficult and never unrecoverable.
21:45 chromatic Unless you can somehow abandon a whole slew of commits and force a repack and gc remotely.
21:45 Tene even screwing up your own local repository is fairly difficult.
21:45 dukelet0 Tene: i think your analogy about changing the exit sign is pretty spot on. there is no way to delete commits from git's history (unless nothing points to them), so there is only the possibility that someone will temporarily messup a symbolic pointer (branch name), which can be easily fixed without any chance of data-loss
21:47 szbalint besides, just assume that a meteor strikes the building hosting the SCM server. The issue is the same with git or svn, you need backups. With git you have as many backups as there are developers at least
21:48 Tene szbalint: which doesn't mean that you shouldn't also have explicit backups too. :)
21:49 dukelet0 Tene: in my book, every git work tree is an explicit backup :)
21:49 Coke GAH. what is with all these tree conflicts!
21:50 darbelo Coke: svn hates you.
21:51 darbelo It knows you want to replace him :)
21:51 Coke not here at work.
21:51 Coke I barely got my developers using this.
21:52 Tene Coke: I think I see why. ;)
21:52 Tene dukelet0: Sure, but there's something to be said for having an explicit policy saying "In the event that our dev server is crushed by a mammoth, we switch to using the backup repository at ..."
21:52 Tene instead of just figuring it out at the time.
21:53 dukelet0 Tene: like my Parrot mirror on github ? ;)
21:54 dukelet0 Tene: yes, I agree that we should have an agreed-upon hot-backup
21:54 Tene dukelet0: github seems more likely to fail than parrot.org does lately.
21:54 szbalint there is a reason it's called failhub pretty often...
21:55 chromatic Maybe they should rewrite it in Erlang.
21:55 dukelet0 Tene: yeah, gettin' DDoS'ed and all. I have a gitweb instance on leto.net and we could have a mirror on feather/etc
21:59 Coke oh HOLY CRAP. this is the second time I tried to merge a regular conflict with tortoisesvn and it barfed, taking explorer with it.
21:59 pmichaud particle++ # Rakudo #21
21:59 Tene particle++
21:59 szbalint particle++ # peer pressure
21:59 Coke svn--
22:00 * particle heads out for errands
22:02 cotto_work partcl++
22:02 cotto_work (and particle++ too)
22:10 AndyA joined #parrot
22:10 Coke kamra partcl?
22:10 Coke er,
22:10 Coke karma partcl?
22:10 purl partcl has karma of 2
22:10 Coke ha!
22:11 Coke karma rakudo?
22:11 purl rakudo has karma of 8
22:11 darbelo partcl++
22:11 darbelo partcl++
22:12 cotto_work karma tcl
22:12 purl tcl has karma of -21
22:12 Coke heh.
22:12 Coke incr tcl
22:12 darbelo karma tcl
22:12 purl tcl has karma of -21
22:12 darbelo karma otcl
22:12 purl otcl has neutral karma
22:13 cotto_work karma pirates
22:13 purl pirates has karma of 14
22:13 cotto_work karma pirate
22:13 purl pirate has neutral karma
22:14 darbelo pirate?
22:14 purl hmmm... pirate is a career that is washed up these days...and raping and pillaging just doesn't have a good reputation these days.... or http://www.eff.org/IP/DRM/piratead/CEA_ad.png
22:16 cotto_work international talk like a pirate is Saturday
22:17 dukelet0 arg, matey
22:30 KatrinaTheLamia joined #parrot
22:31 allison purl: pirate is also http://www.wired.com/politics/securi​ty/magazine/17-07/ff_somali_pirates
22:31 purl okay, allison.
22:32 kid51 joined #parrot
22:36 allison Trac Git performance: http://trac-hacks.org/ticket/746
22:36 nopaste "Util" at 68.191.99.24 pasted "What is the code path in IMCC that actually populates a class' list of methods during compilation?" (39 lines) at http://nopaste.snit.ch/17985
22:45 allison Util: you're looking for a call to 'set_pmc_keyed_str' on NameSpace from IMCC
22:45 allison Util: but most of the logic is actually in set_pmc_keyed_str
22:45 allison Util: it's a vtable function badly in need of refactoring
22:46 allison Util: (a good refactor might even make it possible to keep methods from being stored in the main part of the namespace, which is pretty much impossible in the current code)
22:53 Util allison: Thanks! "pretty much impossible" - Why? Keeping methods out of the namespace is what (the first part of) TT#389 is about, and since they can be kept in the Class PMCs (in `method` attribute), it would think it a simple change.
22:54 allison Util: just because the code is a mess
22:54 allison joined #parrot
22:55 allison Util: the hard part is getting it to not store methods in the namespace, but still store all the other things it's supposed to store
22:55 allison Util: a good refactor of that monolithic vtable function would make it much simpler
22:56 allison Util: (with thorough testing before and after)
22:56 Util allison: which monolithic vtable function?
22:57 TiMBuS joined #parrot
22:57 allison 'set_pmc_keyed_str' in NameSpace
22:57 tetragon joined #parrot
22:57 allison 102 lines long
22:59 Util allison: `ack` says that set_pmc_keyed_str is not called (directly, at least) from within compilers/imcc.
22:59 chromatic It's probably called from with a packfile function somewhere.
23:00 Util allison: I will look at everything again, with more attention on Namespace's set_pmc_keyed_str. Thanks, much!
23:00 allison Util: yeah, probably in one of the interface libraries
23:00 allison Util: great!
23:04 NotFound Are you looking for Parrot_store_sub_in_namespace?
23:05 NotFound It's called from clone_constant in packfile.c
23:05 allison mmmmm... simple benchmark on pcc branch...
23:06 allison A simple subroutine run through trunk
23:06 allison real0m0.019s
23:06 allison user0m0.016s
23:06 allison sys0m0.008s
23:07 allison Same small script in pcc branch:
23:07 allison real0m0.022s
23:07 allison user0m0.016s
23:07 allison sys0m0.004s
23:07 allison a little slower, but not too bad
23:08 chromatic Do you have Valgrind/Callgrind installed?
23:08 allison chromatic: I don't
23:08 allison I should
23:08 chromatic They're in the Ubuntu repos; trivial to install there.
23:10 allison will grab it when I get back to the hotel
23:10 Coke (pcc branch) is slower? I though it was supposed to be faster. =-)
23:10 allison (to avoid sucking up conference bandwidth)
23:10 chromatic alias cg='time valgrind --tool=callgrind --dump-instr=yes --trace-jump=yes'
23:10 chromatic cg ./parrot benchmark.pir
23:10 * Coke hopes his hotel in leeds has internet.
23:10 Coke (or that's going to be a LOOONG week.)
23:10 chromatic That'll give you instruction counts on the virtual CPU Valgrind uses.
23:11 chromatic They're much easier to compare than clock time, especially clock times that short.
23:11 allison chromatic: cool, thanks
23:11 pmichaud yes, I'm not sure a 0.003s difference is meaningful
23:11 pmichaud perhaps call the sub 100x
23:11 pmichaud or 1000x
23:11 allison Coke: I need to run benchmarks on actually PCC calls, that was just a simple ordinary subroutine
23:11 chromatic Coke, remember that trunk has a lot of optimizations the pcc branch probably hasn't merged in yet.
23:12 allison chromatic: also true
23:12 allison how far has the jit ripping gone in trunk?
23:12 Util NotFound: I'm not sure that that it what I am looking for, but I will definitely check there. Thanks
23:12 allison far enough to be worth rebranching the pcc work?
23:12 pmichaud from rakudo's case it's not so much that we expect PCC itself to be immediately faster, but more than (1) it will be easier for us to hook our calling convention requirements into it, thus reducing overall call time, and (2) it will be better structured for later optimizations, whereas the current system is a total mess
23:13 chromatic allison, that depends on if you have JIT or PIC related failures in the branch.
23:13 NotFound And easier to diagnose bugs!
23:14 allison chromatic: still resolving coretest target failures, haven't gotten to the multiple runcore tests
23:14 chromatic NotFound fixed a couple of nasty bugs in PCC that may help.
23:14 allison chromatic: I can pretty much guarantee there will be, though
23:15 NotFound The context refactoring may be a big help
23:16 allison I made test fixes in trunk for the coretest target too
23:16 allison would be handy not to keep mentally subtracting those failures
23:17 Coke allison: if you want a large mark, try partcl's make test. =-)
23:17 chromatic That merge is going to be painful though.
23:17 chromatic I wonder if we could sucker dukelet0 into doing it in Git and producing a patchset!
23:17 Coke chromatic: having just done an svn merge for work (home now!) that took about 20 times longer than I expected, I can only imagine.
23:18 allison chromatic: the trunk to pcc branch merge?
23:18 chromatic Yes.
23:18 Coke chromatic: ... that would not be a bad idea, especially as a POC since he thinks git is awesome.
23:18 allison nah, I'll just grab the diff, reapply it, and fix any application failures
23:18 Coke he can still do it as a POC. =-)
23:18 chromatic I think you underestimate how large that diff is and how much work that will be.
23:19 darbelo allison: The PIC-killing landed on trunk. JIT is dead on the branch, and I'm working on restoring the JIT frame builder to working order on x86.
23:19 allison chromatic: oh, I won't merge trunk into branch, I'll merge the changes in the pcc branch into a fresh branch from trunk
23:19 allison chromatic: the change set on the pcc branch is actually relatively small
23:20 NotFound I hope you are not going to kill the --jitcapable Configure option
23:21 NotFound We need it to avoid using jitted nci.
23:21 allison NotFound: no interface changes before 2.0
23:21 chromatic We're keeping JITted NCI.
23:21 NotFound Precisely, I want to be able to disable it.
23:22 darbelo NotFound all jitted options are no ops now, I added a new config step for that that.
23:22 darbelo you want --buildframes=0
23:22 NotFound Ah, nice.
23:23 darbelo or --buildframes to enable. Right now only non-darwin x86 has it enabled.
23:23 NotFound darbelo: yes, and I want to disble on it.
23:24 chromatic Is is enabled by default on non-darwin x86?
23:24 darbelo chromatic: yes.
23:24 chromatic Excellent.
23:24 NotFound Unless you use --jitcapable=0
23:24 darbelo exactly.
23:26 darbelo To be precise, it is enbled for $nvsize == 8 && $cpuarch eq 'i386' && $osname ne 'darwin'
23:27 kid51 Speaking of branches ...
23:28 kid51 ... we could kill one if I could get some feedback on TT #509 from people with non-symlinkable systems/filesystems
23:28 darbelo NotFound: Sorry, I mis-read you. It get's disabled with "--buildframes=0" --jitcapable=whatever is a no-op
23:29 NotFound darbelo: You mean in the branch, isn't?
23:30 darbelo NotFound: Yes, in the branch. Trunk still has (a disabled) JIT.
23:33 kid51 In kill_jit branch:  perl Configure.pl --test runs with these messages:
23:33 kid51 t/configure/026-options_test.t .............. No tests exist for configure step auto::frames at t/configure/026-options_test.t line 19
23:33 kid51 t/configure/049-options_test_prepare.t ...... No tests exist for configure step auto::frames at t/configure/049-options_test_prepare.t line 16
23:33 kid51 You will need a test file called t/steps/auto/frames-01.t
23:34 kid51 Also, t/steps/auto/jit-01.t will have to be revised.
23:34 kid51 Test Summary Report
23:34 kid51 -------------------
23:34 kid51 t/steps/auto/jit-01.t                     (Wstat: 512 Tests: 9 Failed: 0)
23:34 kid51 Non-zero exit status: 2
23:34 kid51 Parse errors: Bad plan.  You planned 51 tests but ran 9.
23:34 kid51 Files=122, Tests=2736, 77 wallclock secs ( 0.60 usr  0.28 sys + 12.64 cusr  2.77 csys = 16.29 CPU)
23:34 kid51 Result: FAIL
23:34 kid51 Failed 1/122 test programs. 0/2736 subtests failed.
23:35 Coke woof.
23:36 darbelo kid51: What platform are you on?
23:36 kid51 Linux/i386 for that report
23:36 kid51 ... but this is probably not a platform-specific issue
23:36 kid51 also have darwin/ppc
23:37 darbelo Any non-configure related failures on that run?
23:38 darbelo Ohh! ppc testing would be pretty cool too.
23:39 kid51 The t/steps test relate mainly to the quality of your Perl 5 code in config/auto/frames.pm.
23:39 kid51 They don't say anything about JIT/call frame issues per se.
23:40 kid51 Configure.pl completes okay in that branch, as I would expect it to.
23:41 darbelo kid51: I didn't know about the t/steps/auto/ tests. I'll look into that now.
23:41 kid51 You can probably copy-and-paste code from other t/steps/auto/*.t tests to get a leg up.
23:42 kid51 Did you clone any other auto::* class to start your work on auto::frames?
23:42 jrtayloriv joined #parrot
23:42 NotFound allison: There is some change in the branch that you think can be backported to trunk right now?
23:43 allison NotFound: the pcc branch? no, it's actually a pretty simple branch
23:43 allison NotFound: it just updates the old calls to the new calls
23:43 darbelo I got the structure out of the JIT test. Copy-paste is my standard approach to parrot's configure system :)
23:43 kid51 darbelo:  The code in config/auto/frames.pm itself looks nice.
23:44 allison NotFound: I suppose we could add the new calls to trunk, but since I'm still debugging failures on them, it seems a bit premature
23:44 allison (new functions, that is)
23:44 kid51 darbelo:  The trickiest part will be writing enough tests to cover all branches/conditions in this line:
23:44 kid51 elsif ($nvsize == 8 && $cpuarch eq 'i386' && $osname ne 'darwin') {
23:45 darbelo jit-01.t is most likely failing becouse I ripped all of the code out, that step is now an emty shell with hard-coded values.
23:45 kid51 Yes, quite so.
23:46 darbelo I have to test separately for all possible combinations?
23:46 kid51 Well, it depends how obsessed with high test coverage you are.
23:46 * kid51 is notoriously obsessed with that!
23:47 * darbelo can delegate to him, then
23:47 darbelo ;)
23:47 kid51 http://thenceforward.net/parrot/cov​erage/configure-build/coverage.html
23:48 kid51 But, the advantage of trying to get that high coverage is that you prove you can simulate all the possibilities you conceptualized when you wrote the code.
23:49 kid51 Conversely, once you integrate coverage analysis into your devel/test cycle, you start to write code that is easier to test because you get a feel for avoiding unnecessary branches and conditions.
23:50 kid51 Also, at line 45 of config/auto/frames.pm you have a dangling 'else'.
23:51 kid51 That will show up as an uncovered branch under Devel::Cover.
23:52 kid51 The logical connection of the 'elsif' line at line 43 to the 'if' at line 41 is unclear.
23:54 kid51 If line 43 is 'if (defined $some_condition) {', I would expect an 'else' which explicitly covers the '! defined $some_condition' case.
23:55 darbelo Hey, is nopaste down?
23:55 kid51 nopaste
23:55 kid51 purl, nopaste?
23:55 purl nopaste is at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at http://www.extpaste.com/ or http://paste.scsys.co.uk (for #catalyst, #dbix-class, #moose  and others) or http://gist.github.com/ or paste or gtfo or tools/dev/nopaste.pl
23:56 kid51 the snit.ch site is up
23:56 kid51 The if/else block at lines 46-56 will be much easier to cover.
23:57 darbelo What if write it as http://nopaste.com/p/avd7R2jukb ?
23:58 kid51 Ah, you beat me to it by 30 seconds!
23:59 darbelo Hmm. I get page load error on nopaste.snit.ch

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

Parrot | source cross referenced