www.parrot.org | Parrot 1.6.0 "half-pie" released: feel free to tear out the JIT! | Testing priorities: Exception and MultiSub
Set by moderator on 15 September 2009.
00:04 mattp joined 00:16 patspam joined, rhr joined
dalek kudo: fed7b0e | pmichaud++ | build/Makefile.in:
Add Mapping.pm to setting (missing from b29506b commit).
00:18
00:21 mattp joined 00:22 theory joined 00:23 sri joined 00:25 kyle left 00:30 clubs joined
clubs cotto: Haiku doesn't have a /usr/, there is /boot/develop/headers/posix/time.h which may help 00:34
cotto_work clubs, is there anything that mentions CLOCK_REALTIME or other similar #defines there? 00:36
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:37
00:44 dukeleto joined
dukeleto 'ello 00:45
cotto_work 'i
cotto_work is looking forward to talk like a pirate day this Saturday. 00:46
szbalint ooh 00:51
I mean
Yarrr
clubs cotto: Can't seem to find anything with that in it and grep isn't turning up anything helpful 00:53
00:53 kid51 joined
dalek kudo: c52c780 | pmichaud++ | perl6.pir:
Work around inferior loop problem causing segfault on exit.
00:54
00:55 kyle_l5l joined, darbelo left 00:59 TiMBuS joined 01:01 jrtayloriv joined
cotto_work clubs, it sounds like falling back to gettimeofday might be necessary 01:03
01:06 zak_ joined
clubs cotto: so it won't be too difficult to fix? 01:12
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:13
Hm, if I do something before calling Parrot_runcode()... maybe... 01:16
Coke stares at this last apply bug. 01:17
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:18
it'd be great to have Parrot running on Haiku before Haiku's official release 01:20
it appears to run perl 5 fine, so Parrot shouldn't be much of a stretch 01:22
cotto_work decommutes 01:25
jrtayloriv Note: Do not pick your nose after dicing Habenero peppers. 01:27
01:29 hachi_ joined 01:30 Austin joined
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.
kyle_l5l jrtayloriv, probably the only safe thing to do is just cut off your hands.
Austin Well, I'm sure you'll be able to eke out another 0.18% or so... 01:31
clubs cotto: Okay, cool :)
jrtayloriv kyle_l5l, Note: Do not cut off your hands.
:)
chromatic A persistent Rakudo could give the spectests an order of magnitude performance improvement.
Austin No self-dismemberment in the main channel.
chromatic More likely, four to five times improvement. 01:32
01:32 zak_ joined
pmichaud we could potentially also improve things by making better use of :immediate subs 01:33
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.
I mean "Run Rakudo with those command lines". 01:35
pmichaud yes, that would work. but it feels unclean somehow.
chromatic Unclean?
purl Unclean is a rule which matches malformed packets, i.e. XMAS packets, and the like
01:36 snarkyboojum_ joined
chromatic 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
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
ah, fork 01:37
never mind :)
I should know better than to blabber at 3am :S
01:38 snarkyboojum__ joined 01:40 rhr joined
cotto hi 01:43
chromatic I'd like to see a faster HLL without a persistent model, but if we can quadruple the speed right now.... 01:44
cotto it'd make the spectest scream 01:45
Austin Where is VTABLE_get_pointer defined? 01:58
$PARROT/include/parrot/vtable.h - nevermind 01:59
cotto there 02:00
Austin Hmm. There's not a lot of room for error in that macro. :( 02:02
Cotto, are you any good with parrot stack dumps? 02:04
dukeleto austin: what are you dealing with? 02:05
Austin I've got a segfault that doesn't seem to be inferior-runcore related.
It's dismayingly consistent in 1.6.
nopaste.org/p/a1QSCmLPqb 02:06
I'm curious about #13 - the gobbledegook in the args - is that normal? 02:07
dukeleto Austin: i haven't seen anything like that before 02:10
Austin Neither have I. :)
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
Austin Okay.
dukeleto Austin: perhaps memory corruption?
Austin So that's not a string of opcodes or something?
There can't be memory corruption. Parrot is a virtual machine. C'est impossible! 02:12
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 ;)
Austin :)
Take a look at this: nopaste.org/p/aWTsPzhFgb 02:18
IT's a "full" backtrace. 02:19
Notice that all the function addresses are 0xb7...., while most of the data seems to be at 0x8....
But in #1, #2, #3, and #4, the pmc parameter is 0xb7... 02:20
Coke fixes [apply], mostly. 02:21
Austin When in doubt, svn update. 02:26
Coke gah, all that for only 13 more spec tests. 02:27
dukeleto Austin: or git svn rebase :) 02:29
02:36 zak_ joined 02:48 janus joined
dalek rtcl: r737 | coke++ | trunk/runtime/builtin/proc.pir:
cleanup PIR
02:50
02:53 dukeleto joined, rg1 joined
cotto (12*140)/15 02:53
purl 112
cotto Austin, how do you trigger that? 02:54
Austin Trigger what?
purl Trigger is cool
Austin The segfault? I compile some code.
dalek rtcl: r738 | coke++ | trunk/src/macros.pir:
add shortcut macro for creating a TclDict
02:55
rtcl: r739 | coke++ | trunk/runtime/builtin/proc.pir:
more PIR cleanup
rtcl: r740 | coke++ | trunk/ (5 files):
allow anonymous tclprocs, enable [apply]
cotto Austin, like any code? 02:56
Austin I won't guarantee that, but it's pretty short - I'll nopaste it to you.
cotto please do
Austin This works: nopaste.org/p/aUbG62ARZ 02:57
cotto and by "works" you mean "doesn't work"?
;)
Austin Yep
Here's the circumstance: 02:58
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.
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:00
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.
cotto actually, it gives a pir-level error
too few arguments passed (0) - 2 params expected
(plus pir backtrace) 03:02
Austin I just bumped to 106. Try updating.
cotto btw, it's nice to see make -jn working 03:03
Austin What's make -jn?
Ahh. paralle. 03:04
Coke like -j, but as many as possible.
Austin l
Coke er, no.
"like -j, but with only n" =-)
cotto btw, make realclean is a little too clean. It clobbered the test file I was using.
Austin Rofl. What were you using?
cotto crashy.c 03:05
dalek ose: r106 | Austin++ | trunk/ (10 files):
Checkpoint: segfault problems
Austin Hmm. That's probably a built-in. I don't think I set it up to delete .c files.
cotto Austin, Lexical '@dest' not found
Austin Yips.
Yipes.
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.
Let me rebuild, see what I get.
No such problem.
Is this during the make of the compiler, or when trying to compile the test code? 03:07
Did you rebuild the makefile? 03:08
cotto yup
make realclean && perl Configure.pl 03:09
Austin Okay. Is this a building-the-compiler error, or a running-the-compiler error?
dalek rrot: r41311 | jkeenan++ | trunk/t/compilers/imcc/syn/macro.t:
NotFound++ solved the problem, so am un-TODO-ing the test. Cf.:
cotto bbs; phone 03:10
Coke IWBNI if your config option was --parrot-config instead of --parrot_config
kid51 Smolder down ... again! 03:12
Coke I can build close on feather, but make test is sloooow. 03:13
kid51 must sleep
purl $kid51->sleep(8 * 3600);
Austin Coke: also, it doesn't even work a little bit.
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.)
Coke k.
I can at least report it builds, then. =-)
Austin :)
There's that bright side we were looking for.
cotto back 03:16
pmichaud cla? 03:17
purl i think cla is Contributor License Agreement or www.perlfoundation.org/contributor_..._agreement or www.parrot.org/foundation/legal or www.parrot.org/files/parrot_cla.pdf
cotto Austin, part of BUILD_CLEANUPS is *.c 03:18
any reason for that?
Coke anyone with makefile fu, I could use a hand with code.google.com/p/partcl/issues/detail?id=111
Austin Cotto: Okay. I think that was provided by "create_language.pl" 03:19
It looks like the current version does PMC_DIR/*.c instead. 03:20
(current version of create_language, that is.)
dalek kudo: 2eca8b3 | pmichaud++ | docs/announce/2009-09:
More announcement updates for the release.
kudo: ea6448f | pmichaud++ | docs/ChangeLog:
More ChangeLog updates.
Austin I'll take it out, since I don't do anything with .c/.o files.
cotto my crashy.c file thanks you
Austin Call it crashy.c= instead - you won't have the problem then.
:) 03:22
dalek rtcl: r741 | coke++ | trunk/config/makefiles/root.in:
remove crufty warning.
cotto my installed parrot is behind the times 03:23
time to get the new awesome
dalek ose: r107 | Austin++ | trunk/ (3 files):
Removed .c and .o files from BUILD_CLEANUPS - cotto++
03:24
dukeleto the git-svn history tarball that is linked to on trac.parrot.org/parrot/wiki/git-svn-tutorial is in an odd state 03:28
it is in bisecting mode with a bunch of files added to the index
i am going to add a tarball that is mirrored once a day 03:29
cotto Austin, I'm not getting any segfaulty goodness. 03:37
Austin Really? Wanna switch computers?
03:37 jjore joined
dalek tracwiki: v18 | dukeleto++ | git-svn-tutorial 03:38
tracwiki: trac.parrot.org/parrot/wiki/git-sv...ction=diff
Austin Cotto: You're running 1.6.0?
cotto svn latest
Austin 'k
cotto I get a complaint about @dest not being defined
Lexical '@dest' not found 03:39
Austin Hmm.
Do a "find -name Array.pm"
on whatever dir you've got the source in
cotto ./library/close/Compiler/Array.pm
Austin Okay.
That's the only place there's an @dest
cotto I'll see if the problem goes away with a serial build 03:40
Austin Have a look at the generated .pir file.
cotto looks generated alright 03:41
Austin That's when you're trying to compile crashy.c, right? 03:42
cotto Hmmm. with the non-parallel build it seems to spend a lot of time doing nothing 03:43
parrot close.pbc crashy.c
is that how I should be running it? 03:44
Austin Should work. 03:45
But is that when you get the @dest message?
cotto now it segfaults. i was getting the @dest message when Close was built with make -jn 03:46
n == 9 iirc
Austin Woo-hoo! Segfaults rule.
cotto sounds like the makefile dependencies need some work 03:47
Austin 41166 doesn't segfault. 03:49
cotto that produces a boatload of output
Austin Yeah.
Also, it's hella slow.
(Because of the backtrace checking everywhere.) 03:50
dukeleto is messing around with blizkost 03:58
seen jnthn 04:10
purl I haven't seen 'jnthn', dukeleto
dukeleto seen jonathan
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]
Austin seen vowels? 04:11
purl I haven't seen 'vowels', Austin
cotto seen () 04:12
purl I haven't seen '()', cotto
cotto seen me
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]
dukeleto msg jonathan shall we use Test::More for blizkost or something more fancy ? :)
purl Message for jonathan stored.
dalek rrot: r41312 | darbelo++ | branches/kill_jit (10 files):
JIT is dead, except for the bit necessary to sustain JIT frames in x86.

Linux x86 passes make test.
04:31
dukeleto how does an HLL get spiffy irc-updates on dalek? i would like to add blizkost 04:32
Coke something running on another VM on feather. I Think infinoid has the keys. 04:33
dukeleto Coke: cool
msg Infinoid i would like the add blizkost to dalek, so we get irc updates. pleez halp! 04:34
purl Message for infinoid stored.
dukeleto blizkost just passed its first test about 5 minutes ago
cotto dukeleto, if you can send him an rss feed, he'll probably be able to get it done on the quickfast 04:35
dukeleto cotto: i see, said the blind man 04:36
Coke is it googlecode or github?
dukeleto coke: github
so it should be easy
Coke easy peasy, then.
Austin Well, this is so stupefyingly cool that I can't stand it. segfault in malloc().
Coke if it's any consolation, partcl made gdb segfault a few weeks ago. 04:37
dukeleto Austin: here is a nice gold watch :)
Austin Sweet. A gold watch.
When 1.7 comes out, nobody tell me. I don't even want to hear about it. 04:38
dukeleto Austin: why so?
Austin Because every time I try to update, there's this freaking tax. 04:39
dukeleto msg Infinoid github.com/feeds/jnthn/commits/blizkost/master is a feed of commits to master
purl Message for infinoid stored.
Austin And apparently because we've got Democrats in all the branches of government, the tax is getting higher and higher.
dukeleto Austin: what are you working on?
Austin Close.
A HLL.
Written with NQP and a little PIR.
NO C AT ALL.
dukeleto Austin: whoa.
Austin And still I get segfaults in malloc()? 04:40
Grrrrrr.
purl grrrrrr is there a command to test ipf rules
dukeleto Austin: that is no fun. The whole point of not using C is not dealing with fucking malloc()
Austin Maybe if I was dealing with malloc I wouldn't have these problems. 04:41
I dunno.
Coke how much memory are you using, OOC, when that happens? 04:42
edge condition that results in segfault instead of PANIC?
Austin What's OOC?
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
Austin Ah
I dunno.
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
Austin: where is your repo?
Austin Duke: The problem occurs after my compiler generates as PAST tree and hands off to PCT for the follow-on stages. 04:44
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.
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:46
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:47
See code.google.com/p/close/source/brow.../Dumper.pm (line 171) 04:50
Coke Austin: I think that will not work for x-HLL invocations. 04:52
Austin True.
nopaste "coke" at 193.200.132.135 pasted "get_depth" (40 lines) at 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?
Austin Coke: nopaste.org/p/a3Sdb1jNdb 04:55
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:56
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.) 04:57
dukeleto blizkost passes most of the perl 5 base test suite. sweet! 05:06
Coke if I poke up in my call chain for a lexpad that doesn't exist, how can I retroactively put one in? 05:07
(cannot create a LexPad without an initializer) 05:10
must I change all my .subs that could possibly have lex to say ":lex" ? 05:15
Austin you mean put it in while its on the stack? 05:16
I doubt that's possible.
Maybe you should just create a "fake" lex in each sub, in case.
.lex "$___never_used__ignore" 05:17
05:17 jrtayloriv joined
Coke Ew. I'll that. 05:18
(try) 05:19
dukeleto cognominal: ping! 05:21
dalek rtcl: r742 | coke++ | trunk/docs/spectest- (2 files):
update spectest run for [apply]
Austin msg whiteknight Hey, whiteknight, here's some sad news: 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.
Coke ok, using :lex on subs makes them have lexpads, whee. 05:28
now how do I create a variable in a particular lexpad?
(say, one call frame up)
if I just do lexpad = interp['lexpad';1] \\n lexpad['$foo'] = 'bar', I get an exception. 05:29
(per the lexpad docs, that seems like it should work.)
05:31 nathanmccauley joined
Coke hurm. perhaps that's not the error I think it is. *handwave* 05:31
Austin What exception? 05:32
purl exception is probably from Email.pm not that code
Austin no, exception is A reasonable response to an unreasonable situation.
purl okay, Austin.
Austin What exception?
purl it has been said that exception is A reasonable response to an unreasonable situation.
Coke Lexical '$foo' not found. 05:34
hurm. now I'm getting it again. I think.
treed Why the cap A?
Coke except 'bar' is an 'Undef' PMC, and '$foo' is really '$Dir' 05:35
TiMBuS do i still have to email rakudo bugs in :/
Coke as I recall, rt never allowed web-submittal. 05:36
hurm. I don't even really want lexicals, I think. 05:37
(though if I don't use find_lex and create_lex, I guess it doesn't matter.)
05:41 theory joined
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.
Coke right, but dynlexpad does. 05:44
Austin Indeed it does. So you just need to hll-map the lexpad to dynlexpad, no? 05:45
Coke If :lex respects that, sure.
Austin dukeleto: You still awake? 05:47
dukeleto Austin: indubitably 05:48
Austin Can you run this NQP?
nopaste.org/p/awKWmwXDQ
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
(so I have to try :lex and hll map and cross my fingers.)
Austin dukeleto: Obviously, you'll have to call it from something. You could just add "bsu(); " to the bottom, I guess.
dukeleto Austin: which command line args do you want? and any particular parrot rev/version? 05:51
05:51 uniejo joined
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:51
Coke Austin: holy crap, it kind of works. 05:53
Austin coke: What works?
The DynLexPad? Or the blow s*** up function?
Util Does Parrot's IO system support string IO, also called "in-memory files"? Perl5 example: open($fh, '>', \\$variable); 05:55
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
Austin: with parrot 1.6
Austin Dukeleto: No, thanks. That is my "here is a reproduction of the problem" code for the TT.
purl okay, Austin.
Austin Confirming it on a real linux (tm) and Darwin is gravy. 05:59
Coke Austin: dynlexpad. 06:00
purl dynlexpad is gone :-)
Coke no, dynlexpad is still there!
purl okay, Coke.
Austin Coke: Congrats. Does that mean you have [upvar] now?
Coke Austin: I already /had/ upvar.
Austin Really?
Then what is this about?
Coke switching from a handrolled call chain to using parrots. 06:01
Austin Ahh.
Coke (i had a hidden global called "call_chain" that I manually fiddled with every time I entered/left a tcl proc.)
Austin Well, this ought to get you some mips back, then. 06:06
msg cotto: Thanks for your help earlier. My segfault issue is now TT#1015. 06:11
purl Message for cotto stored.
dalek TT #1015 created by Austin_Hastings++: clone_p_p segfaults with self-referential Hash pmc. 06:12
Austin Dukeleto: Thanks very much for your help tonight. 06:14
Coke the docs for get_name on namespace seem to be wrong about how join works. patches welcome. 06:15
dukeleto Austin: no problem
Coke: are there any tests for it? 06:16
Coke: example?
Coke dukeleto: join doesn't prepend a :: at the beginning. 06:22
(unless that's returning an empty first element or something...)
Austin Woot! Now I have trivial, inefficient code! Yesssss. 06:33
cotto That's great! Most of us have to settle for non-trivial inefficient code. 06:35
Austin Well, I was getting segfaults. This is a big step up. (Check your messages.) 06:36
cotto yup
06:37 zak_ joined
Coke gives up for the night. 06:38
something isn't being stored or found properly now that I'm using lexicals, but I can't find the bug.) 06:39
cotto night all 06:44
06:49 fperrad joined
dalek kudo: 73a3952 | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 436 files, 15497 (71.5% of 21671) pass, 0 fail
06:56
kudo: 8effbb7 | pmichaud++ | docs/announce/2009-09:
Update announcement with spectest results.
06:59 iblechbot joined 07:25 donaldh joined
jrtayloriv .sleep() 07:25
07:29 HG` joined, kyle_l5l left
dalek a: 51f44d9 | fperrad++ | doc/running.pod:
tips for lua-TestMore (git submodule)
07:33
07:35 Hunger joined 07:46 mberends joined
dalek a: 7e18de2 | fperrad++ | doc/running.pod:
now uses lua-TestMore
07:47
07:48 bacek joined
bacek o hai 07:49
dukeleto bacek: hola 07:53
purl what's up, dukeleto.
bacek dukeleto: aloha 07:55
moritz o hai 08:04
mberends reported an issue on win32 with mingw
basically config_lib.pasm contains set P0["make"], "make"
mberends line 242 08:05
moritz even though no 'make' is available, just 'mingw32-make'
mberends: the line number is different here
mberends ok
moritz is there an easy fix for that?
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
mberends walks to the problem machine... 08:13
moritz aye, that's the job of parrot's Configure.pl 08:14
config/inter/make.pm seems to consider mingw32-make 08:15
mberends on the Strawberry installation, perl -V is does not mention make at all 08:17
nor does the Linux one :( 08:18
moritz inter::make - Is make installed...................................yes. 08:19
that's what my Configure.pl says
but it doesn't mentioin which make 08:20
mberends running parrot's perl Configure.pl 08:21
same output: Is make installed...............yes 08:22
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:25
the Strawberry libs do not seem to include icu :-( 08:26
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
moritz any idea how I can reach a TPF webmaster? 08:35
dalek rrot: r41313 | bacek++ | trunk/src/pmc/sub.pmc:
[core] Implement Sub.init_pmc
08:37
szbalint noc.perl.org ?
rrot: r41314 | bacek++ | trunk (2 files):
[core][t] Implement Sub.start_offs and end_offs accessors. Add limited test for Sub.init_pmc
rrot: r41315 | bacek++ | trunk (2 files):
[core] Implement initialisation of n_regs_used in Sub.init_pmc.
09:06
rrot: r41316 | bacek++ | trunk (2 files):
[core] Implement initialisation of Sub.arg_info in Sub.init_pmc
09:21 mokurai left 09:23 masak joined
dalek rrot: r41317 | mikehh++ | trunk/src/pmc/sub.pmc:
codetest fix - no trailing whitespace
09:30
TT #7 closed by bacek++: remove 'infix' and 'n_infix' opcodes 09:41
bacek Yay! No more unresolved single-digit tickets! :) 09:43
mikehh All tests PASS (pre/post-config, smoke, nqp_test, fulltest) at r41317 - Ubuntu 9.04 amd64 09:50
09:55 ilbot2 joined
moderator 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 10:10 quek joined 10:16 MoC joined
dalek a: a803ba4 | fperrad++ | (2 files):
add a target spectest
10:27
a: 7b762f8 | fperrad++ | config/makefiles/root.in:
fix smoke
10:40
10:41 riffraff joined
mikehh rakudo (8effbb7) builds on parrot r41317 - make test PASS / make spectest (up to 28270) FAIL - Ubuntu 9.04 amd64 10:43
rakudo - t/spec/S05-capture/caps.t - Non-zero wait status: 11 - Parse errors: Bad plan. You planned 21 tests but ran 19
rakudo - it passes ./perl6 t/spec/S05-capture/caps.t however - also 10:45
rakudo (8effbb7) builds on parrot r41312 - make test / make spectest (up to 28270) PASS - Ubuntu 9.04 amd64 10:46
10:50 ajia joined 10:51 payload joined
mikehh rakudo - make t/spec/S05-capture/caps.t fails with the same error (ran both at least 3 times) 10:55
cognominal dukeleto: pong! 10:58
10:58 ajia_ joined
ajia_ hello, everyone 10:59
moritz hello ajia_ 11:00
ajia I want write python code inline perl 11:01
moritz I don't know how far the pyhton compiler is, and if supports cross-language operations yet 11:03
allison should now (but she's not online right now, it seems)
ajia oh 11:04
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:05
I want to know parrot if is a best road 11:07
thanks everyone
moritz well, parrot does support cross-language loading
for example you can load ruby classes in Perl 6 (as far as Perl 6 and ruby are implemented on cardinal)
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
lua for example
ajia what dose mean about 'lua'? 11:09
I don't understand
moritz there's a mostly complete lua compiler for parrot
ajia I know
all right,I search gain, thank you very much 11:10
moritz you're welcome 11:12
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:13
11:17 donaldh joined 11:20 fperrad_ joined
mikehh going to do some i386 testing - bbl 11:34
11:39 kid51 joined 11:41 mikehh joined
dalek kudo: 4de8215 | (Martin Berends)++ | src/builtins/globals.pir:
[builtins/globals.pir] for ~/.perl6/lib use $HOMEDRIVE$HOMEPATH if $HOME does
11:58
11:59 Wolong joined
dalek rrot: r41318 | coke++ | trunk/src/pmc/sub.pmc:
Fix cut and pasteo in the docs.
11:59
12:07 Phurl joined
Phurl hi all 12:08
dalek rrot: r41319 | fperrad++ | trunk/t/op/string.t:
add a test that demonstrates TT #1007 in PIR
12:10
12:15 tetragon joined 12:26 whiteknight joined 12:27 bluescreen joined
whiteknight good morning #parrot 12:38
dalek tracwiki: v14 | whiteknight++ | JITRewrite 12:43
tracwiki: +link from fperrad++
tracwiki: trac.parrot.org/parrot/wiki/JITRew...ction=diff
12:47 bluescreen joined
Phurl hi all 12:48
moritz good localtime() 12:50
whiteknight good localtime() moritz 12:55
hello Phurl 12:56
I love waking up in the morning to see emails about segfaults 12:58
of course, clone_p_p is pretty naive and doesn't detect cycles, so it's to be expected
I'm actually surprised we didn't see any problems from here before
13:02 iblechbot joined 13:04 ash_ joined
Tene moritz: pynie does not support HLL interop. 13:11
in either direction.
13:12 hercynium joined
ash_ is pynie still under active development? (thats the python one right?) 13:29
moritz code.google.com/p/pynie/updates/list says yes 13:32
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:34
13:51 parrot-poke joined 13:53 ruoso joined
NotFound fperrad: ping 13:56
13:57 payload joined 14:00 whiteknight joined 14:17 smash joined
smash hello everyone 14:17
14:24 theory joined
fperrad NotFound, pong 14:26
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:27
Coke i had assumeed that parrot internals were using string[-1] expecting it to work. 14:31
and that they should be updated to go from 0 instead. 14:32
(which is what his patch does.)
(the bug isn't in str_substr) 14:33
NotFound Coke: the test added isn't about that. 14:34
Coke ah.
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,
I think (wrong) that substr deals with negative index
Coke I would say leave str_substr alone and don't add that test.
(but still apply the patch to load_language)
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
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" ?
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:38
fperrad Coke, no doc 14:39
Coke then I'd ditch the test and apply the workaround^Wfix.
NotFound Did we have some tests for load_language? 14:41
14:42 Psyche^ joined
Tene NotFound: probably not. if you want to write them, you should be able to load_language 'parrot'. 14:43
NotFound And 'squaak' ?
Tene is squaak part of the repository? 14:44
NotFound examples/laguages/squaak
(n)
Tene It doesn't get installed to the language search path, so there's no way that the load_language opcode could find it.
So, no.
Coke add that to "list of things to test post-install" 14:48
pmichaud: is 51850 still todo ? 14:49
(RT)
Tene Coke: nothing in examples/ ever gets installed, afaict
pmichaud checking.
yes, still todo 14:50
whiteknight pmichaud: so you are getting those segfaults on exit again? 14:59
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
"
pmichaud whiteknight: I added the "exit 0" to rakudo and the segfaults disappeared.
whiteknight Yay! I'm not crazy!
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
dalek rrot: r41320 | coke++ | trunk/t/compilers/imcc/syn/regressions.t:
Ticket moved from RT to trac.
15:02
15:02 Andy joined
Coke whiteknight: that ticket has a special place in my heart. :| 15:03
pmichaud: that's the same workaround I needed to work around the inferior runloop problem I had for several years. 15:04
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
oh, and exception handlers are probably going to change in a significant backwards-incompatible way.
dalek TT #1017 created by coke++: recognize the form of alternation 15:07
15:08 mikehh_ joined
NotFound pmichaud: partcl is using the same workaround, maybe that makes you feel better ;) 15:13
dalek TT #1018 created by coke++: pir compiler must be reentrant 15:18
rrot: r41321 | coke++ | trunk/compilers/imcc/optimizer.c:
remove wontdo todo comment.
15:24
rrot: r41322 | coke++ | trunk/DEPRECATED.pod:
update ticket reference for migrated ticket
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:27
Coke ash_: hi john. 15:34
dalek rrot: r41323 | coke++ | trunk/runtime/parrot/include/hllmacros.pir:
Ticket has migrated from RT to TT
Coke yes.
$ icu-config --version 15:35
4.2.1
er, 4.x
not 4.0
(that's the version that the config icu settings are pointing to.)
ash_ your error message /usr/bin/ld: warning can't open dynamic library: 15:36
> /opt/local/lib/libicudata.40.dylib implies its looking for 4.0 not 4.2, try reconfiguring it?
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
if you updated icu 15:41
Coke i haven't updated icu.
I run realclean pretty much whenever I update. (inc. this time.)
ash_ do a ls /opt/local/lib/libicu* and see if it lists 40 in there 15:43
Coke no, just 42.
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?
ash_ beats me 15:45
Coke otool -arch all -l parrot shows libicuuc.42.dylib
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)
build line is: 15:47
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
read -lm -L/opt/local/lib -licuuc -licudata -lpthread -lm -lm -lgmp -lrea
dline -lintl -undefined dynamic_lookup -L/opt/local/lib
-> 15:48
15:50 mikehh joined, flh joined
dukeleto cognominal: jonathan said that PIR-based tests are probably best, but tests in any language are better than no tests 15:51
whiteknight Tests in pure PIR should run faster then tests in Perl5+PIR too 15:52
NotFound Also, tests in pir are syntax checked even if TODOed 15:53
That prevent bitrottened TODOs 15:54
15:54 nopaste joined
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:54
dukeleto flh: interesting 15:55
flh shouldn't Test;More use a PMC argument instead, and call "istrue" on it?
dukeleto flh: maybe a multisub. if the first arg is a PMC, call istrue. if not, treat it like a bool ? 15:56
flh without multisub, an integer would be automatically boxed to a PMC which has the same truth value 15:57
what would be the benefit of a multisub then? 15:58
cognominal dukeleto, ok.
15:58 allison joined
pmichaud it should take a pmc as an argument and be done with it 15:59
taking an integer as an argument is a false optimization 16:00
dukeleto what pmichaud said.
cognominal: do the eval test pass and run on your system? 16:01
flh: adding some tests about this to t/library/test_more.t is probably a good idea
cognominal note that my tests are in Perl 6. I don't understand the BEGIN {} stuff you added.
flh dukeleto, ok, I'll do that and send the patch on trac 16:02
cognominal dukeleto, before your modifs, they were ok when I runned the file thru rakudo perl 6 16:03
I still don't know how to run that thru harness
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
cognominal: it probably needs a shebang line like #!perl6 16:04
cognominal that would be nice
dukeleto cognominal: ok, sounds like a plan. 16:05
cognominal also, on my mac, I got t/spec/base/term.t .... 1/7 sh: - : invalid option 16:06
dukeleto cognominal: yes, but the test still passes, right? it is TODOed 16:07
cognominal when I remove the BEGIN {} stuff, yes it does 16:10
perl6 t/02-eval.t # when I call it like this
afk& 16:11
dalek TT #1019 created by flh++: Make Test;More;ok and nok use a PMC argument 16:18
16:26 Austin joined 16:41 iblechbot joined 16:42 darbelo joined 16:44 mokurai joined
cotto_work ohai 16:47
davidfetter hai 16:55
17:01 cognomore joined 17:02 zostay joined, einstein joined 17:03 desertm4x joined
moritz Coke: your comment on RT #39714 is self-referential instead of pointing to trac 17:03
pmichaud whiteknight: ping (phone)
purl I can't find (phone) in the DNS.
pmichaud whiteknight: ping 17:07
17:09 gaz joined
Coke moritz++ 17:17
NotFound: it doesn't really prevent bitrotted todos. failure is failure. 17:19
17:24 jrtayloriv joined
dalek a: b7e876d | fperrad++ | config/makefiles/root.in:
set LUA_INIT
17:47
a: 46ca7e1 | fperrad++ | config/makefiles/root.in:
minor
17:53 joeri joined 18:00 chromatic joined
nopaste "coke" at 193.200.132.135 pasted "why would this segfault?" (59 lines) at nopaste.snit.ch/17980 18:08
Coke Do registers in PASM map directly to "physical" registers still? 18:10
chromatic I don't think they do. 18:12
Coke i left a comment on that ticket that they don't, but Iunno. 18:14
the segfault dies with a context showing: 18:19
n_regs_used = {134950472
so it looks like they still are directly mapped.
chromatic n_regs_used is a pointer. 18:22
Coke ah 18:23
I thought it meant "number of registers used". =-)
Coke ... someone already wrote these tests. damnit. 18:24
how do I remove a change that has been 'git commit'd but not 'git svn dcommit'd ?
(it's only one, so I can't do it via interactive rebase.
moritz git reset --hard HEAD^ 18:25
HEAD^ is the commit one before HEAD
Coke danke.
cotto_work The more I look into git, the more I want Parrot to switch to it. 18:29
Austin Cotto: why is that?
mikehh All tests PASS (pre/post-config, smoke, nqp_test, fulltest) at r41323 - Ubuntu 9.04 i386 18:40
18:40 tewk joined
tewk ping pmichaud 18:41
purl I can't find pmichaud in the DNS.
pmichaud pong
(purl: hint, pmichaud is in Texas, not in the DNS)
tewk How would you compare and contrast Perl6 Grammars with PEG parsing? 18:42
pmichaud I don't know PEG parsing
diakopter lengthily
tewk Also are you aware of Regular-expression derivatives?
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.
most PEGs don't have parametric patterns/rules, though the one I implemented did. 18:44
tewk www.ccs.neu.edu/home/turon/re-deriv.pdf - Derivate regular expressions
I would call PGE scannerless though. 18:49
diakopter sure; I'm referring to the distinction between token and rule 18:50
pmichaud perhaps you mean regex and token?
diakopter yea, that :D
I'm a few years behind
or something. 18:51
tewk So did "rule" get banished? I'm out of it too.
pmichaud the difference between token and rule is handling of metasyntactic whitespace
diakopter maybe not. sry for the noise :/
pmichaud the difference between regex and token is that tokens have backtracking disabled by default
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:52
diakopter makes notes 18:53
my brain breaks for weeks with each read of S05.
jrtayloriv diakopter, Basically rule is token with :sigspace added (I think) 18:56
i.e. token --> regex :ratchet {} and rule --> regex :ratchet :sigspace {} 18:58
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
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.
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
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.
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
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
chromatic The last branch merge I did in Parrot SVN took two hours. 19:04
That was not a complex merge.
pmichaud there's also the side that "follow a few best practices" (with svn) also implies some restrictions and extra steps in branch management
that don't seem to be issues with git
whiteknight pmichaud: a little bit of discipline and best practices is never bad to have 19:05
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
nor am I saying that git allows you to do things wrong
I'm saying that with svn there are lots of ways to do it wrong, and only one way to do it right
s/only one/very few/ 19:07
git provides a few more flexible work patterns, that require less effort in order to do the right thing
*less effort* is the key.
git still has best practices
git still requires some discipline 19:08
but those best practices and discipline are less onerous than the svn versions of the same.
whiteknight I want to make sure that we're making good, influential arguments to migrate to git.
Allison has clearly not been swayed by some of the arguments she's heard thus far
pmichaud fair enough. Here's the one that clinched it for me (more)
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
I got a lot of feedback
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
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
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:11
"stay with svn because that's what we've always used" is a valid reason 19:12
but I'm not sure it stacks up against the other ones
darbelo You can make git dress up as svn if that's your kink.
pmichaud and yes, that is what many of us do with rakudo.
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)
last time I did a major branch merge for Rakudo, and it was _significant_, it took me 10 minutes (more) 19:14
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."
diakopter perhaps chromatic wasn't using a nice SVN 3-way merge GUI? (half kidding; sorry) 19:15
19:15 HG` joined
tewk Glad to see that the tide is turning toward git. 19:15
chromatic I moved files.
pmichaud I suspect I can find the irc discussion where I was totally shocked that git's merge worked...
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
Otherwise, what's the point of doing that work on a branch?
19:17 sri joined
pmichaud oh yes, my merge was the ins2 merge -- where we completely reworked Rakudo's build environment to use an installed Parrot 19:17
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
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.
pmichaud irclog.perlgeek.de/perl6/2009-08-12#i_1387501 # my shock at git merging 19:19
Austin I have a performance question about starting up my parser. 19:21
19:21 mokurai left
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
(In particular, what is happening that takes so long?)
pmichaud are you using the operator precedence parser? 19:22
Austin No
pmichaud just rec-descent?
Austin It's on my list of things to do, but right now it's all top-down
pmichaud hmmm
what libraries get loaded?
Austin What do you mean? 19:23
pmichaud I'm guessing that PCT.pbc gets loaded
Austin There's no dynamic ops, so Parrot loads whatever parrot loads.
pmichaud that in turn causes P6object.pbc, PGE.pbc, PCT/HLLCompiler.pbc, etc. to be loaded 19:24
P6object has to create some classes
19:24 mokurai joined
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.
PCT has to create and register the PAST::* and POST::* classes
19:25 sri joined
pmichaud basically, in each library, all of the subs marked :load are executed 19:25
since you're not using the operator precedence parser yourself, I wouldn't think there are any :load subs in your parser 19:26
however, it might be worth looking for ":load" inside of src/gen_*.pir (or wherever your PIR files are being saved)
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."
Or ironic: "Why are article titles always so misleading?" ;-) 19:28
NotFound pmichaud: but the other way give me two pieces for one shot :)
Austin _block13 is very popular
NotFound "Are rethoric questions bad?"
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. [...]
Compiling it myself is no alternative, since the dependencies are not really that win32-friendly, either.)
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.
Austin I think I have found a bug.
Sigh. 19:30
NotFound Austin: Impossible! We're perfect!
Austin :)
Don't worry, NotFound - it's a PCT bug.
pmichaud Austin: Impossible! PCT is perfect!
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?
Austin Notice the "2" down near the bottom. nopaste.org/p/aa5LeMzCG
The problem seems to be that it's /too/ fast. 19:32
And so it's possible for separate files to compile with the exact same timestamp.
Thus producing the onerous "2".
pmichaud ah, I'm not sure that's really a pct bug then :) 19:33
(you're correct, it shouldn't be doing that, though)
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.
I would greatly appreciate it if Parrot had a built-in UUID generator of some sort :)
PCT would definitely make use of it.
whiteknight so the solution there is a better GUIDgen?
Austin Actually, never mind. That's a deliberate artifact on my part. 19:35
pmichaud a-ha! 19:36
Austin Duplicating a file solves a problem I had with something producing unreadable .pbc files.
dalek rrot: r41324 | NotFound++ | trunk/src/packfile.c:
[core] patch to Parrot_load_language from TT #1007 with a short comment
pmichaud points back to his "Impossible!" line above :)
afk, errand
Austin So anyway, there are many "_block13" subs marked load, which are all NQP outermost scopes. 19:37
There's an __onload sub makred :load for the grammar.
And a _block13 for the actions.
That's it for :load subs
Is the size of the PBC file known to make a significant difference on startup time? 19:38
dalek rrot: r41325 | NotFound++ | trunk/t/op/string.t:
revert r41319, see TT #1007
19:39
19:40 Aisling joined
whiteknight Austin: we should get together some time and hack. I am interested in hacking on Close 19:43
Austin "on" or "in"?
:)
dalek TT #1007 closed by NotFound++: load_language creates wrong search paths
whiteknight specifically, I would like to help get it to the point that I can start writing libraries with it
Austin That would be cool.
(And is exactly the same point I want to get it to.)
Coke (windows support) has anyone used tortoisegit?
if it's as correspondingly useful as tortoisesvn... 19:44
whiteknight Austin: one thing that I would especially love to see in Close is Closures 19:46
Austin What's a closure?
purl I hardly KNOW her.
whiteknight like a function within a function 19:47
chromatic A first-class function that binds over a lexical scope.
whiteknight like a private sub ref in Perl5, I think
Austin It's a "generation" versus "writing" thing.
The object of Close is to be C for PIR. And you can enclose subs in PIR, ergo... 19:48
But, that's probably different from what you mean.
whiteknight I was doing this in PIR the other day: wknight8111.blogspot.com/2009/09/y-...e-pir.html 19:49
and I thought to myself, "this would be so much better in Close"
Austin :)
whiteknight I have high hopes for your language! you better not disappoint me! 19:50
Austin Ruh roh.
purl ruh roh is probably Raggy?
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.
(instead of handrolling)
whiteknight Austin: I'd rather be able to define a new sub inside a sub 19:52
so return sub { ... };
Austin Is there a way to get at time information from PIR?
Coke just like in C! (er...)
Austin Or from NQP? 19:53
whiteknight Austin: there is a time opcode I think
Coke Austin: perldoc src/ops/sys.ops
Austin WhiteKnight: nested subs are planned. (How else to use lexicals?)
Yes!!! It's finally slurpy.
whiteknight what is slurpy? 19:54
purl slurpy is probably probable at some point
Coke ^_-
whiteknight purl forget slurpy
purl whiteknight: I forgot slurpy
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:55
cotto_work whiteknight, www.parrot.org/node/add/poll 19:57
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."
whiteknight must login
I'll create the poll
cotto_work whiteknight++ 19:59
whiteknight now that I know how to do it cotto_work++
pmichaud I did login
"You are not authorized to access this page."
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.
(didn't ask Coke each time, but I've asked in #parrotsketch and other places and been warnocked)
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?
pmichaud guess who I've asked :)
Austin DARCS
Aegis
Tene Huh, there's a poll?
whiteknight actually, this poll only gives me 5 slots. That's what I'll stick with
Tene: there will be :)
Austin tlarch
Tene poll about what?
pmichaud I don't think we need CVS in the list 20:03
we already moved _from_ cvs to subversion, I doubt we'd be moving back.
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?
;)
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"
cotto_work whiteknight, you can add more slots 20:04
whiteknight www.parrot.org/content/straw-poll-w...parrot-use
cotto_work: yeah, whatever. This is what we have now
thanks though
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.
cotto_work Tene, to build momentum?
Tene I thought it was established that we weren't going to be changing any infrastructure until after 2.6 or something.
pmichaud Tene: straw poll, just to see some actual numbers
whiteknight Tene: just a straw poll, want to measure community preferences
pmichaud for example, I've been thinking about developing the new versions of PGE/NQP on github and then bringing them into Parrot :) 20:06
chromatic The text should say "Just a straw poll and not a commitment to change anything anytime soon." 20:07
pmichaud +1
purl 1
whiteknight the title does say "Straw poll:"
chromatic portal.acm.org/citation.cfm?id=3603...N=41542806
pmichaud I agree it would be better to have the text explicit
whiteknight done 20:08
pmichaud yes, better.
could use a period before the closing paren </bikeshed> 20:09
cotto_work chromatic, refcounting?
whiteknight that's actually the character limit for the title field, can't add anything more
cotto_work I thought that was evil.
chromatic Getting it correct is about as hard as getting write barriers correct.
There's a correspondence between refcounting and "true" GC. Almost any practical system is a hybrid.
whiteknight chromatic: so we should delete all periods?
cotto_work periodically 20:10
20:11 whiteknight_ joined
chromatic I don't follow. 20:12
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:14
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.
dalek rrot: r41326 | darbelo++ | branches/kill_jit (3 files):
Unbreak non-x86 build. Test pass.
Coke (permissions) best way to ask is via a ticket. =-) 20:16
darbelo Say, how do I vote?
Coke (but I noticed this time, so hang on.)
Tene darbelo: it might require that you log in?
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
Coke pmichaud: updated perms for you on drupal. 20:18
pmichaud Coke: danke
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.
Coke (what a pita it was to find your account to edit it.) 20:19
pmichaud: I might have zorched your password.
chromatic At that point I start to wonder how much better this is than mailing around tarballs.
Austin Is there a connection between the parrot.org account and the trac.parrot.org account?
Coke Austin: no.
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
Coke pmichaud: ok. where's the other 3? =-)
pmichaud I don't know.
maybe it recorded a vote every time I refreshed the page? 20:21
otoh, is it the case that only Coke and I have voted thus far?
Tene I voted.
Coke Tene: did you login first?
Tene Yes. 20:22
... Huh, it does record multiple votes from me refreshing the page.
I've now voted at least twice!
Coke perhaps we can just count named votes. =-) 20:23
pmichaud on the plus side, you now appear on the list.
cotto_work I voted
pmichaud I'm fine with just counting named votes
although cotto's vote doesn't appear in the list
Coke "keep voting until it sticks"
Tene is the list of voters not public?
pmichaud "vote early and often"
cotto_work pmichaud, that's odd
meh. I'll leave it as-is. 20:24
Coke apparently drupal sucks!
Tene Coke: let's get it running on Parrot. I bet that'll fix it.
Coke Tene: sure. mod_tcl only.
whiteknight can you even see which votes have names associated with them? 20:25
Coke whiteknight: click on "votes"
pmichaud I can see a list of people who voted and how they voted
whiteknight Coke: I don't see "Votes"
20:25 klaus joined
Coke are you at www.parrot.org/content/straw-poll-w...parrot-use ? 20:26
(and not looking at the vote via the front page?)
whiteknight yes, I am on that page. no "votes"
Coke maybe you need to be an editor.
or an admin
purl i heard an admin was kind of a dork
Coke yes, I am.
whiteknight I can has admin?
Tene Coke: Have you tried using tcl from mod_parrot? 20:27
pmichaud permissions on voting look a bit weird
www.parrot.org/admin/user/access#module-poll
20:27 AndyA joined
pmichaud right now only directors and members can vote. I suspect that was to support the director elections a few weeks ago 20:27
(even "admins" can't vote) 20:28
Coke Tene: jhorwitz tried and failed, I believe. 20:29
should be a piece of cake with PCT, or so I'm told.
pmichaud: it's probably setting on the vote form. moment.
Tene pct makes everything be cake.
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
Austin Tene: The cake is a lie! 20:31
Coke ah, www.parrot.org/admin/user/access
this was a triumph.
I'm making a note here.
Tene Austin: No! Where will I sleep?!
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
pmichaud okay, I've got to get my $otherjob stuff ready for tomorrow's trip
Tene pmichaud: where are you going?
pmichaud to $otherjob.location 20:33
(Corpus Christi, TX)
Tene particle: Looks like I'll be in seattle again the week of Sept 27.
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)
website: www.parrot.org/content/straw-poll-w...parrot-use
Tene particle: the gf isn't coming this time, though.
whiteknight yay dalek! better late then never!
20:40 jrtayloriv joined 20:44 allison joined 20:45 Khisanth joined
cotto_work hi allison 20:46
allison hi cotto 20:47
20:49 bluescreen joined
Coke allison: settled in? 20:50
dalek rrot: r41327 | darbelo++ | branches/kill_jit/config/auto/frames.pm:
Don't probe for information we won't need.
allison Coke: I'm at the JVM Languages Summit this week
cotto_work allison, do you have a link to the message to parrot-dev where you listed your issues with git?
allison cotto: I don't
cotto_work k 20:51
Coke mail archive is gogoleable.
... and that other thing.
RT: 247 tickets and counting.
allison cotto: though the recent IRC discussion has several important questions/comments
cotto_work Coke, what other thing? ;)
Coke googleable.
cotto_work which one?
Coke anyone here admit to using emacs? 20:52
(to hack on parrot)
bluescreen i do
darbelo used to.
Coke bluescreen: can you look at rt.perl.org/rt3/Ticket/Display.html?id=45365 ?
bluescreen why not 20:53
cotto_work allison, which discussion? There have been several. 20:54
allison cotto: lists.parrot.org/pipermail/parrot-d...d.html#946
cotto: I only remember participating in one
cotto: but I don't remember the day
cotto_work you might have been in the air
allison I'll see if I can recall 20:55
- Integration with trac.
- Demonstrate that git actually is better at resolving the merging conflicts we hit in real usage. 20:56
- Source code browsing tools.
(including revision browsing)
20:57 HG` joined
allison - Down-time and retraining time for developers. 20:57
- Safety of the core source (limiting the damage possible accidentally or by new committers) 20:58
(with git it's possible to make changes that destroy the history of the repository) 20:59
chromatic I dispute that last point.
Coke (core source) I think that is either trivial or mislabeled. 21:00
allison shotgunsandpenguins.blogspot.com/20...iting.html 21:01
Coke: should say "source history" 21:02
chromatic Where's the part that "destroy(s) the history of the repository"?
allison chromatic: is "unintentionally change" more tolerable than "destroy"?
chromatic Yes, but still inaccurate. 21:03
allison or just "change"
chromatic Sure. What's the problem?
I've rebased commits myself. I know why I've done it. I've had very good reasons for doing so.
The Git rule is very simple: you can manipulate your commit history as much as you like in your local repository. 21:04
dukelet0 allison: trac has git integration 21:08
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.)
(even with git-svn)
tewk That is my favorite git feature.
Coke er, s/merge/squash/ to avoid mixing up terms. 21:10
allison dukelet0: that helps
whiteknight chromatic: I can change my history locally, but that doesn't effect the "main" repository (wherever that is)?
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
chromatic That's right, whiteknight.
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.
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?"
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
whiteknight okay
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.
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
Coke we could do that now with svn, likely, but haven't. (the cvs repo was initially setup that way.)
tewk dukelet0, I'm sure we could use a hook to disable non-fast-forward update
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
even accidentally?
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
pmichaud: i would say it is mostly for the accidental case
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.
pmichaud seems to me that "rewrite history" on the master requires "--force" somewhere.
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
Coke (also: backups) 21:16
tewk I have scripts that force push to backup repos, hence a hook that prevents ti would be nice
dukelet0 tewk: I agree.
whiteknight leaves. Later
Coke ~~
dukelet0 also, I can't seem to vote on the git poll. where is the button?
allison dukelet0: you have to be logged in 21:17
pmichaud I think you also have to be a member
allison mmmm... at the moment you also have to be a member
dukelet0 allison: i am logged in, but still can't
allison yes, what patrick said
but, the poll is broken anyway
dukelet0 i though I *was* a member. what does that mean?
21:17 DrForr joined
dukelet0 s/though/thought/ 21:17
allison it's counting 8 votes, but if you go look at the votes there's only 4
pmichaud dukelet0: what's your login id? 21:18
allison dukelet0: it's a particular permission group for foundation members
pmichaud allison: yes, we noticed that earlier.
allison (which you aren't yet)
Tene allison: there were problems with it counting votes multiple times, or something, maybe.
allison we can open up polls to developers
Tene I'm pretty sure it counted my vote more than once.
allison (I'll delete the old foundation voting polls)
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:19
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 twitter.com/dukeleto
dukelet0 botsnack
purl thanks dukelet0 :)
pmichaud allison: that would explain the double-votes, then 21:21
allison: but cotto also has voted and his name doesn't appear in the list
(or didn't appear there when I looked earlier)
allison pmichaud: maybe there's several bugs, not sure 21:22
dalek kudo: 05e7604 | (parrot user)++ | :
fixed bad math
21:25
kudo: 41f7ba7 | (parrot user)++ | :
Merge branch 'master' of github.com/rakudo/rakudo
kudo: 2953ac7 | (parrot user)++ | docs/release_guide.pod:
fix typo
21:25 joeri left
Coke parrot user ? 21:25
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.
Coke I think you can set your creds in a .gitMagicPony file.
dalek rrot: r41328 | darbelo++ | branches/kill_jit (4 files):
Make codetest happy.
21:28
dukelet0 Tene: except that breaking the main svn repo stops everyones development, whereas breaking the *master* git repo just causes some momentary confusion 21:29
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
*ahem*
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".
Coke particle: maybe you could reply to some of those tickets that have been waiting for feedback from you for 2 years. =-)
Tene particle: we're also going to rewrite Parrot in common lisp, I hear.
dukelet0 particle: no good deed goes unpunished
particle two years with no feedback? sounds like they're stalled.
clean your room, then we'll talk about a pony.
Coke stalled doesn't mean crap.
they're either still relevant or not. 21:32
dukelet0 hopes for a magic git pony
particle sounds like they're not still relevant, or can be someday rediscovered
darbelo Tene: That's after we implement common lisp on top of parrot.
particle that said, i'll look in rt
Coke particle: you yourself have said "don't close tickets just to close tickets".
;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.
Soon they'll all be stalled over at trac instead, anyway. 21:33
Tene particle: you in town during the week of September 27?
particle rt.perl.org/rt3/Ticket/Display.html?id=55806 seems easy to port to trac
Coke feel free to assign easy ports to trac to me.
(or port them.)
particle tene: i think so, it looks like it for now 21:34
Tene particle: I'll harass you closer to the event, then. :)
particle damned yaks. 21:35
Coke does an svn merge at work and is filled with useless tree conflcits.
yummy. 21:36
particle i need to upgrade flash so i can release rakudo
Tene particle: o.O how is that related?
particle precisely.
darbelo particle: That sounds... broken.
particle apparently i can't upload to github without flash 9 21:37
Tene wtf
cotto_work flash? nein!
particle well, at least i've proven that the generic parrot/rakudo dev vm works well enough to release rakudo 21:38
the vm that i'm building but haven't released yet
not much to stop me now, though :)
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.
allison: erm... that's the opposite of what I said.
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"
allison Tene: makes sense
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
Like moving the "exit" sign in the office onto the door to the bathrooms.
particle so much for my 40mi bike ride today, time is too short :(
Tene Not actually a *useful* analogy, but a silly one.
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
chromatic You can get the same file contents through different ancestry. 21:43
Tene chromatic: yes, but you also said 'commit'
chromatic Fair enough.
Tene and commits include their ancestors.
But, yes, that's also relevant.
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.
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.
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
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:47
Tene szbalint: which doesn't mean that you shouldn't also have explicit backups too. :) 21:48
dukelet0 Tene: in my book, every git work tree is an explicit backup :) 21:49
Coke GAH. what is with all these tree conflicts!
darbelo Coke: svn hates you. 21:50
It knows you want to replace him :) 21:51
Coke not here at work.
I barely got my developers using this.
Tene Coke: I think I see why. ;) 21:52
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 ..."
instead of just figuring it out at the time.
dukelet0 Tene: like my Parrot mirror on github ? ;) 21:53
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.
szbalint there is a reason it's called failhub pretty often...
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
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
Tene particle++
szbalint particle++ # peer pressure
Coke svn--
particle heads out for errands 22:00
cotto_work partcl++ 22:02
(and particle++ too)
22:10 AndyA joined
Coke kamra partcl? 22:10
er,
karma partcl?
purl partcl has karma of 2
Coke ha!
karma rakudo? 22:11
purl rakudo has karma of 8
darbelo partcl++
cotto_work karma tcl 22:12
purl tcl has karma of -21
Coke heh.
incr tcl
darbelo karma tcl
purl tcl has karma of -21
darbelo karma otcl
purl otcl has neutral karma
cotto_work karma pirates 22:13
purl pirates has karma of 14
cotto_work karma pirate
purl pirate has neutral karma
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 www.eff.org/IP/DRM/piratead/CEA_ad.png
cotto_work international talk like a pirate is Saturday 22:16
dukelet0 arg, matey 22:17
22:30 KatrinaTheLamia joined
allison purl: pirate is also www.wired.com/politics/security/mag...li_pirates 22:31
purl okay, allison.
22:32 kid51 joined
allison Trac Git performance: 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 nopaste.snit.ch/17985
allison Util: you're looking for a call to 'set_pmc_keyed_str' on NameSpace from IMCC 22:45
Util: but most of the logic is actually in set_pmc_keyed_str
Util: it's a vtable function badly in need of refactoring
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:46
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:53
allison Util: just because the code is a mess 22:54
22:54 allison joined
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
Util: a good refactor of that monolithic vtable function would make it much simpler
Util: (with thorough testing before and after) 22:56
Util allison: which monolithic vtable function?
22:57 TiMBuS joined
allison 'set_pmc_keyed_str' in NameSpace 22:57
22:57 tetragon joined
allison 102 lines long 22:57
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.
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
Util: great!
NotFound Are you looking for Parrot_store_sub_in_namespace? 23:04
It's called from clone_constant in packfile.c 23:05
allison mmmmm... simple benchmark on pcc branch...
A simple subroutine run through trunk 23:06
real\t0m0.019s
user\t0m0.016s
sys\t0m0.008s
Same small script in pcc branch: 23:07
real\t0m0.022s
user\t0m0.016s
sys\t0m0.004s
a little slower, but not too bad
chromatic Do you have Valgrind/Callgrind installed? 23:08
allison chromatic: I don't
I should
chromatic They're in the Ubuntu repos; trivial to install there.
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. =-)
allison (to avoid sucking up conference bandwidth)
chromatic alias cg='time valgrind --tool=callgrind --dump-instr=yes --trace-jump=yes'
cg ./parrot benchmark.pir
Coke hopes his hotel in leeds has internet.
(or that's going to be a LOOONG week.)
chromatic That'll give you instruction counts on the virtual CPU Valgrind uses.
They're much easier to compare than clock time, especially clock times that short. 23:11
allison chromatic: cool, thanks
pmichaud yes, I'm not sure a 0.003s difference is meaningful
perhaps call the sub 100x
or 1000x
allison Coke: I need to run benchmarks on actually PCC calls, that was just a simple ordinary subroutine
chromatic Coke, remember that trunk has a lot of optimizations the pcc branch probably hasn't merged in yet.
allison chromatic: also true 23:12
how far has the jit ripping gone in trunk?
Util NotFound: I'm not sure that that it what I am looking for, but I will definitely check there. Thanks
allison far enough to be worth rebranching the pcc work?
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
chromatic allison, that depends on if you have JIT or PIC related failures in the branch. 23:13
NotFound And easier to diagnose bugs!
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.
allison chromatic: I can pretty much guarantee there will be, though
NotFound The context refactoring may be a big help 23:15
allison I made test fixes in trunk for the coretest target too 23:16
would be handy not to keep mentally subtracting those failures
Coke allison: if you want a large mark, try partcl's make test. =-) 23:17
chromatic That merge is going to be painful though.
I wonder if we could sucker dukelet0 into doing it in Git and producing a patchset!
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.
allison chromatic: the trunk to pcc branch merge? 23:18
chromatic Yes.
Coke chromatic: ... that would not be a bad idea, especially as a POC since he thinks git is awesome.
allison nah, I'll just grab the diff, reapply it, and fix any application failures
Coke he can still do it as a POC. =-)
chromatic I think you underestimate how large that diff is and how much work that will be.
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
chromatic: the change set on the pcc branch is actually relatively small
NotFound I hope you are not going to kill the --jitcapable Configure option 23:20
We need it to avoid using jitted nci. 23:21
allison NotFound: no interface changes before 2.0
chromatic We're keeping JITted NCI.
NotFound Precisely, I want to be able to disable it.
darbelo NotFound all jitted options are no ops now, I added a new config step for that that. 23:22
you want --buildframes=0
NotFound Ah, nice.
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.
chromatic Is is enabled by default on non-darwin x86? 23:24
darbelo chromatic: yes.
chromatic Excellent.
NotFound Unless you use --jitcapable=0
darbelo exactly.
To be precise, it is enbled for $nvsize == 8 && $cpuarch eq 'i386' && $osname ne 'darwin' 23:26
kid51 Speaking of branches ... 23:27
... 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
NotFound darbelo: You mean in the branch, isn't? 23:29
darbelo NotFound: Yes, in the branch. Trunk still has (a disabled) JIT. 23:30
kid51 In kill_jit branch: perl Configure.pl --test runs with these messages: 23:33
t/configure/026-options_test.t .............. No tests exist for configure step auto::frames at t/configure/026-options_test.t line 19
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
You will need a test file called t/steps/auto/frames-01.t
Also, t/steps/auto/jit-01.t will have to be revised. 23:34
Test Summary Report
-------------------
t/steps/auto/jit-01.t (Wstat: 512 Tests: 9 Failed: 0)
Non-zero exit status: 2
Parse errors: Bad plan. You planned 51 tests but ran 9.
Files=122, Tests=2736, 77 wallclock secs ( 0.60 usr 0.28 sys + 12.64 cusr 2.77 csys = 16.29 CPU)
Result: FAIL
Failed 1/122 test programs. 0/2736 subtests failed.
Coke woof. 23:35
darbelo kid51: What platform are you on? 23:36
kid51 Linux/i386 for that report
... but this is probably not a platform-specific issue
also have darwin/ppc
darbelo Any non-configure related failures on that run? 23:37
Ohh! ppc testing would be pretty cool too. 23:38
kid51 The t/steps test relate mainly to the quality of your Perl 5 code in config/auto/frames.pm. 23:39
They don't say anything about JIT/call frame issues per se.
Configure.pl completes okay in that branch, as I would expect it to. 23:40
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.
Did you clone any other auto::* class to start your work on auto::frames? 23:42
23:42 jrtayloriv joined
NotFound allison: There is some change in the branch that you think can be backported to trunk right now? 23:42
allison NotFound: the pcc branch? no, it's actually a pretty simple branch 23:43
NotFound: it just updates the old calls to the new calls
darbelo I got the structure out of the JIT test. Copy-paste is my standard approach to parrot's configure system :)
kid51 darbelo: The code in config/auto/frames.pm itself looks nice.
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
(new functions, that is)
kid51 darbelo: The trickiest part will be writing enough tests to cover all branches/conditions in this line:
elsif ($nvsize == 8 && $cpuarch eq 'i386' && $osname ne 'darwin') {
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.
darbelo I have to test separately for all possible combinations? 23:46
kid51 Well, it depends how obsessed with high test coverage you are.
kid51 is notoriously obsessed with that!
darbelo can delegate to him, then 23:47
;)
kid51 thenceforward.net/parrot/coverage/c...erage.html
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:48
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:49
Also, at line 45 of config/auto/frames.pm you have a dangling 'else'. 23:50
That will show up as an uncovered branch under Devel::Cover. 23:51
The logical connection of the 'elsif' line at line 43 to the 'if' at line 41 is unclear. 23:52
If line 43 is 'if (defined $some_condition) {', I would expect an 'else' which explicitly covers the '! defined $some_condition' case. 23:54
darbelo Hey, is nopaste down? 23:55
kid51 nopaste
purl, nopaste?
purl nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others) or gist.github.com/ or paste or gtfo or tools/dev/nopaste.pl
kid51 the snit.ch site is up 23:56
The if/else block at lines 46-56 will be much easier to cover.
darbelo What if write it as nopaste.com/p/avd7R2jukb ? 23:57
kid51 Ah, you beat me to it by 30 seconds! 23:58
darbelo Hmm. I get page load error on nopaste.snit.ch 23:59