Parrot 0.6.2 "Reverse Sublimation" Released | parrotcode.org/ | 18/672 new/open tix | logged in irclog.perlgeek.de/parrot/today
Set by moderator on 1 June 2008.
jonathan OK, need sleep...will review and throw in my airport patches tomorrow. 00:01
Eevee night 00:02
00:02 tetragon joined 00:03 ank joined 00:05 bacek_ joined 00:09 AndyA joined 00:11 bacek_ joined 00:24 radhios joined
japhb Eevee: (what needs doing to get acquainted) Documentation consistency patches. Several places there are two documents that discuss overlapping topics (typically because they are related but in some sense distinct). Often, the overlap is inconsistent between the 2+ documents. It should be factored out, made consistent, or one location should point to the other. This would get you looking through lots of docs (and having to understand th 00:49
em), and comparing against code to check which of two conflicting things is "right". That would really get you ready for code patches then.
For example, someone pointed out a couple days ago that the PDD doc for NCI has an incomplete list of NCI types, compared to the list in config/gen/call_list/core.in and the actual NCI code. This should be fixed up. 00:51
But that's just my personal hot button. Any RT for "cage cleaner" work is a good foot-wetting thing to work on as well. 00:52
00:58 Whiteknight joined
GeJ japhb: isn't NCI worked on by tewk for gsoc? 01:09
kid51 Eevee: This search string will show you all RT tickets with the [CAGE] designation: tinyurl.com/4wwnct . 01:16
01:17 grim_fandango joined
kid51 We can provide similar strings for [PATCH], [BUG], [TODO], etc. If you let us know what your skill sets are, we can steer you in a good direction. 01:17
japhb GeJ: Yes. But that A) doesn't help us now, and B) shouldn't prevent us from fixing documentation (especially since good documentation would help tewk as well) 01:23
Eevee return 02:37
kid51: thanks, will have a look through these. re skill sets, uh, I have a large assortment of hats I am comfortable wearing 02:57
incidentally
02:57 Andy joined
Eevee is there any outsider-friendly documentation for p6? there's a spec, but besides that just seems to be the exegeses, which are full of corrections to themselves and of questionable recency 02:58
kid51 Eevee: C? Perl 5? Other dynamic languages? Compilers? 02:59
Specific OSes?
Eevee aha 03:00
kid51 Parrot: "I am multitudes."
Eevee *familiar* with C, but haven't really touched it in years
pretty solid with perl 5
know a decent bit of python; had a glance at ruby but nothing much 03:01
03:01 davidfetter joined
Eevee used gcc a bit, mostly on others' code when their makefiles suck, and msvc a handful of times 03:03
kid51 See rt.perl.org/rt3/Ticket/Display.html?id=48260. This is one of those tickets that always needs work, because there are always more C functions needing documentation. 03:06
03:07 bobwhoops joined
kid51 must sleep 03:08
purl $kid51->sleep(8 * 3600);
Eevee aha, thanks 03:10
03:11 cotto_work joined 03:14 grim_fandango joined 04:16 Zaba_ joined 04:40 Zaba joined
dalek r28021 | pmichaud++ | trunk: 04:54
: [rakudo]:
: * Fix Test.pm so that it reports skipped tests correctly.
diff: www.parrotvm.org/svn/parrot/revision?rev=28021
05:07 Theory joined 05:08 jan joined 05:50 Zaba_ joined
bacek_ summon pmichaud 06:01
you broke List.map... MMD cant add Failure to Int...
is ~(1,2,3,4).map({ $^a + $^b + $^c + $^d }), "10", "map() works with 4-ary functions"; 06:02
06:02 ank joined
bacek_ www.parrotvm.org/svn/parrot/revision?rev=28021 06:04
06:05 uniejo joined, Zaba joined
bacek_ very strange changes in lines 81-82... 06:05
06:06 Ademan joined
bacek_ t/spec/S29-num/roots.............................. All 10 subtests passed 06:11
(less 11 skipped subtests: -1 okay)
moritz pmichaud++ # correct reporting of TODO tests 06:17
bacek_ moritz: but incorrect for skip...
moritz bacek_: it works for me 06:18
bacek_ moritz: shit... I have to take a brake at work... 06:20
it's really works... 06:21
06:21 Zaba_ joined
bacek_ with current 't/fudge'. 06:21
but lines 81-82 should be 'skip(1, ..', not 'proclaim(1,..)' 06:22
06:51 iblechbot joined 06:52 Zaba joined 06:56 cosimo joined 07:13 bacek_ joined
bacek_ hi again 07:13
purl oh, you're back!
07:18 Zaba_ joined 07:20 Auzon joined 07:48 Zaba joined 07:50 luca_ joined 08:04 mire joined 08:53 Zaba joined 09:29 bacek joined 09:37 Zaba joined 09:46 Zaba joined 09:50 bacek joined 09:59 Zaba joined 10:06 Zaba joined 10:11 bacek joined 10:18 Zaba joined 10:23 Whiteknight joined, Zaba_ joined 11:10 rdice joined 11:19 masak joined
pmichaud pong 11:56
moritz d'oh, S29-str/comb.t only passes because all tests are fudged 11:58
jonathan pmichaud: Did you think mutables were enabled in trunk, or disabled?
As the value at the top of actions.pm is set to what the comment says it should be to use them. 11:59
But in reality, they weren't actually being used.
pmichaud I haven't had a chance to update the comment
why are they not actually being used?
jonathan Because MMD was dispatching infix:= to Object.pir's one, which did copy.
pmichaud I'm not using MMD, I'm using method calls. 12:00
jonathan I discovered then when implementing ro, rw, and copy for parameters...
Hmm
pmichaud it's $target.infix=($source) instead of infix:=($target, $source)
masak jonathan: how come `./perl6 -e '$_'` gives the error "too few arguments passed (0) - 1 params expected"?
jonathan Somehow, we were ending up calling Object.pir's infix:= when it looked like it was a Perl6Scalar invocant. 12:01
pmichaud well, keep in mind that Object.infix:= can be called in some situations, such as values held in arrays
jonathan Sure
It was something in parameter passing though, I think. 12:02
Or maybe I was confused.
I was hunting an GC bug at the time too. ;-)
Which I have a patch to fix.
pmichaud parameter passing doesn't go through infix:= yet -- although it will need to. That is high on my hit list
jonathan OK.
I will put in my is rw, is ro, is copy stuff for parameters. 12:03
Got it working nicely here.
12:03 tetragon joined
pmichaud excellent 12:03
jonathan Well, on the laptop.
purl on the laptop is fine.
jonathan OK, I need to eat lunch.
masak purl: forget on the laptop
purl masak: I forgot on the laptop
jonathan masak: Please submit a ticket about that.
masak jonathan: oki 12:04
jonathan I'm not sure why you'd usefully want to do what you just suggested. :)
But I doubt that you're gettign the error you should be.
moritz $_ = 1; $_ # gives the same error
masak jonathan: what I did was the minimal test case I produced
I got the error in a larger script 12:05
moritz > $_ = 1; say $_
even that is errornous
pmichaud I think it's that $_ is causing the outer sub to have a parameter
masak how sinister
pmichaud yes, it's a rakudo bug
masak purl: parrotbug
purl well, parrotbug is mailto:parrotbug@parrotcode.org or svn.perl.org/parrot/trunk/docs/submissions.pod or see also "rakudobug"
masak purl: raukobug 12:06
purl masak: i'm not following you...
masak ehm
purl: rakudobug
purl rumour has it rakudobug is mailto:rakudobug@perl.org
masak rumor has it right
bacek summon pmichaud 12:12
pmichaud pong
bacek pmichaud, hi there.
You broke 'List.map' :)
mmd cant dispatch __add to Failure
pmichaud I did? Or perhaps it was already broken and we just exposed the bug :-)
bacek No :) We discussed it few days before (using Undef vs Failure in map) 12:13
pmichaud is map using Failure?
bacek yes... 12:15
67199850 (pmichaud 2008-05-29 16:23:40 +0000 379) elem = new 'Failure'
pmichaud I thought that was used only in the case where we had an insufficient number of arguments
which isn't (shouldn't be) the case in 06:02 <bacek_> is ~(1,2,3,4).map({ $^a + $^b + $^c + $^d }), "10", "map() works with 4-ary functions"; 12:16
bacek exactly. But MMD can't add 1 and Failure. But it can add 1 and Undef
jonathan I ran across this the other day
more subtle
my @a = 1,2,3; my $total; for @a -> { $total += $_ }
ok, really eating now :-) 12:17
pmichaud yes, I know about that one. I'm not sure what to do about Parrot's opcode mmd
I also get similar things with can't concat Perl6Str, Str
12:17 jhorwitz joined
bacek I'm currently deep in mmd dispatcher trying to fix it. 12:17
But it's not-so-easy-to-fix :) 12:18
pmichaud correct -- I'm not sure I understand the intent of Parrot's design there.
12:21 Zaba joined, DietCoke joined
DietCoke ~~ 12:21
bacek $ ../../parrot perl6.pbc 12:24
> say Failure + 1;
Segmentation fault
purl (Core dumped)
bacek ouch...
masak bacek: same with most any class I could come up with 12:26
bacek masak, yes... I see... 12:28
mmd--
masak karma mmd
purl mmd has karma of -3
masak mmd--
bacek :)
pmichaud hmmmmm 12:34
perhaps we need to be using 'add' instead of n_add 12:35
still doesn't solve the Failure + 1 problem, though. 12:36
nopaste "pmichaud" at 76.183.97.54 pasted "Failure + 1, small case" (12 lines) at nopaste.snit.ch/13144 12:37
pmichaud jonathan: is there a particular reason why $IN, $ERR, $OUT, etc. are created as part of 'main' and not 'onload' in perl6.pbc ? 12:40
nopaste "bacek" at 202.7.166.175 pasted "workaroung for 'Failure + 1'" (11 lines) at nopaste.snit.ch/13145 12:42
dalek r28022 | jonathan++ | trunk:
: [core] Fix a GC bug. A sub did not cause its current context to be marked, meaning that in turn the outer context wasn't marked. This caused LexPad instances to get collected and the memory re-used, leading to all manner of weird errors in find_name.
diff: www.parrotvm.org/svn/parrot/revision?rev=28022
pmichaud (r28022) wow. nice catch. jonathan++
dalek r28023 | jonathan++ | trunk:
: [rakudo] Implement smart matching on junctions. Additionally, do some fixes to make say (1|2).WHAT work.
diff: www.parrotvm.org/svn/parrot/revision?rev=28023
r28024 | jonathan++ | trunk: 12:43
: [rakudo] Fix name-o.
diff: www.parrotvm.org/svn/parrot/revision?rev=28024
bacek pmichaud, btw, about last changes in Test.pm. Should lines 81-82 be actually skip(1, ...) instead of proclaim(1,...)? 12:44
dalek r28025 | jonathan++ | trunk: 12:45
: [rakudo] Make Mutable PMC aware of ro property. Also fix GC and memory leak in it.
diff: www.parrotvm.org/svn/parrot/revision?rev=28025
pmichaud bacek: yes.
bacek pmichaud, fix it please :) 12:46
pmichaud and I think it should really be skip($reason, 1) instead of skip(1, $reason) .... but I need to check with particle for that.
dalek r28026 | jonathan++ | trunk:
: [rakudo] Make is ro, is rw and is copy work on subroutine parameters. The default is now is ro, so trying to assign to a parameter not declared is rw or is copy will be an error.
diff: www.parrotvm.org/svn/parrot/revision?rev=28026
jonathan pmichaud: ($*IN and friends) Not that I can think of, though it must happen after the IO type has been created. 12:48
pmichaud maybe it should be part of IO initialization then?
jonathan OK, that's all my airport patches checked in. :-)
pmichaud i.e., 'onload' in IO.pir ?
jonathan Yes, that would work too.
moritz segfault with r28026 in /00-parrot/04-op-cmp.t 12:49
pmichaud bacek: r28027 12:50
dalek r28027 | pmichaud++ | trunk:
: [rakudo]:
: * Fix optional argument forms of skip() in Test.pm. (bacek++)
diff: www.parrotvm.org/svn/parrot/revision?rev=28027
pmichaud jonathan: (junction .ACCEPTS) why isn't foo ~~ (2|3) simply the same as (foo ~~ 2) | (foo ~~ 3) ? 12:51
masak btw, I noticed that 'grammars' was both in the ROADMAP (as things yet to be done) and STATUS (as things implemented by the compiler). if someone provides a clarifying statement about what is implemented and what isn't, I can turn it into a patch
pmichaud for ROADMAP I think we need some way of marking progress for each of the items on the roadmap 12:52
i.e., perhaps ROADMAP and STATUS should be combined to show both.
masak yes.
jonathan pmichaud: It should be 12:53
pmichaud your patch seems to booleanify it 12:54
jonathan Oh?
Smart-match doesn't return a boolean?
pmichaud no.
jonathan OK, that's news to me.
What should it return?
pmichaud smart match may be used in boolean context, but it's not always a boolean return value
(I think) 12:55
jonathan OK
particle jonathan: have you built parrot lately?
12:55 avar joined
jonathan I think the trunk I just checked in a patch against was from Saturday. 12:56
Had no connection yesterday, and been doing other stuff so far today.
particle ..\\..\\parrot.exe ..\\..\\runtime\\parrot\\library\\PGE\\Perl6Grammar.pir --output=PGE\\builtins_gen.pir PGE\\builtins.pg
Null PMC access in invoke()
current instr.: 'parrot;PGE::Perl6Grammar::Compiler;compile' pc 200 (..\\..\\runtime\\parrot\\library\\PGE\\Perl6Grammar.pir:157)
i can't build with HEAD
since about saturday sometime 12:57
jonathan Ouch.
On Win32?
particle gotta start work now, so can't look for a bit
yep
jonathan OK, ouch indeed.
I can't look right now either - need to do a bit of $DAYJOB before heading off to the Vienna.pm meeting. 12:58
particle ok, i'll look as soon as i have time
pmichaud jonathan: you may be right about smartmatch returning a boolean 12:59
(just looking at the table)
jonathan pmichaud: BTW, any votes for what day I do my Rakudo day this week? 13:01
pmichaud all my days are open at the moment.
jonathan OK
I can't do tomorrow, other than that Wed/Thu/Fri are all fine. 13:02
pmichaud although wed-fri may be less desirable because kids will be home (school ends wednesday noon)
:-)
dalek r28028 | allison++ | pdd25cx:
: [pdd25cx] Move PGE off of bsr/ret.
diff: www.parrotvm.org/svn/parrot/revision?rev=28028
pmichaud but I think wed-fri will work fine.
jonathan Maybe Friday? The novelty of the kids not being at school maybe wears off by then? ;-)
DietCoke pmichaud: that commit message from allison: did she coordinate that with you?
pmichaud DietCoke: no, but it's in a branch, and I'm looking at it now. 13:03
it looks pretty innocuous. 13:04
I would start to be concerned about the pdd25 branch diverging from trunk... but that's allison's problem at the moment :-)
I also hope that taking continuations isn't much slower than the existing bsr/ret
the whole reason for using bsr/ret was speed. 13:05
particle well, luckily, it's a drop-in replacemnet 13:06
even when spelled correctly
dalek r28029 | allison++ | pdd25cx:
: [pdd25cx] Fix vtable call in branchcc op.
particle so it should be easy to bounce back and forth and benchmark
dalek diff: www.parrotvm.org/svn/parrot/revision?rev=28029
pmichaud it may all end up being re-done in C anyway. 13:09
jhorwitz hm, t/00-parrot/05-var-array and t/00-parrot/05-var hang for me
repeated calls to mark_context() at src/sub.c:65, then dies at pobject_lives() 13:10
jonathan Oh, ouch. 13:11
Hmm.
jhorwitz jonathan: x86_64, will paste backtrace
nopaste?
clunker3 pasta.test-smoke.org/ or paste.husk.org/ or nopaste.snit.ch:8001/ or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/
purl nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or paste.husk.org/ or poundperl.pastebin.com/ or paste.scsys.co.uk/ or don't bother me while I'm eating or App::Nopaste or tools/dev/nopaste.pl
jonathan Thanks. 13:12
particle pmichaud: have a minute to replicate my pge build bug?
pmichaud particle: I can try, yes.
nopaste "jhorwitz" at 96.245.16.45 pasted "jonathan: test backtrace" (16 lines) at nopaste.snit.ch/13146
particle cd compilers/pge
rm PGE/builtins_gen.pir 13:13
DietCoke (diverge) she's been keeping it relatively updated to trunk. moreso than I have with the type_ids branch. =-)
particle ../../parrot --runcore=gcdebug ../../runtime/parrot/library/PGE/Perl6Grammar.pir --output=PGE/builtins_gen.pir PGE/builtins.pg
pmichaud particle: okay, finished. 13:15
particle no Null PMC access in invoke() ??
pmichaud particle: no
particle aargh!
13:15 gryphon joined
pmichaud do I need to svn up or something? Although I did that this morning (but not after jonathan's latest patches) 13:16
particle no, it's been happening for a few days
maybe you need to have less of parrot built? iunno
i'm booting ubuntu to check 13:17
pmichaud jonathan: if (!PMC_IS_NULL(ro) && VTABLE_get_integer(INTERP, ro) != 0)
perhaps the second part should be VTABLE_get_bool ?
particle get_bool++
13:17 iblechbot joined
jonathan pmichaud: Yes, probably. 13:18
purl Really? Probably? Are you Certain it's not certain? Are you sure it's unsure? I think you need to look harder.
masak purl, forget probably
purl masak, I didn't have anything matching probably
masak purl, forget yes, probably
purl masak, I didn't have anything matching yes, probably
jonathan jhorwitz: Looks related to the GC fix I did, but that issue didn't show up here. 13:19
Will have a closer look later.
jhorwitz k
13:20 Whiteknight joined
jhorwitz jonathan: seems to me that this code in mark_context(): "if (ctx->caller_ctx) mark_context(interp, ctx->caller_ctx);" would recurse infinitely 13:30
dalek r28030 | Whiteknight++ | gsoc_pdd09: 13:31
: [gsoc_pdd09] updating to trunk r28029
diff: www.parrotvm.org/svn/parrot/revision?rev=28030
pmichaud I'm getting infinite loop in make spectest_regression, also. 13:34
moritz and I'm getting segfaults before that
13:34 Zaba joined
pmichaud t/spec/S02-literals/autoref has been running for over a minute now. 13:35
bacek getting segfaults too...
jhorwitz pmichaud: based on the backtrace i guess my stack is getting smashed after X iterations (X being very large) 13:36
bacek I'm suspect r28026
jonathan OK, rip it out. 13:37
I'll work out something better that doens't loop.
The real work was in figuring out why we had the GC problem, not the patch... 13:38
pmichaud which one should be reverted?
r28026 seems to be the ro/rw/copy patch, so I don't think that's it.
jhorwitz i believe it's r28022
pmichaud yeah, that seems likely. I'll try that. 13:39
jonathan pmichaud: The GC one.
pmichaud the GC bug in sub? (as opposed to GC in mutable?)
jonathan Yes
r28022 13:40
jhorwitz is there a way to test if the context has been marked already?
pmichaud okay, reverted, building, testing, then committing.
jonathan jhorwitz: No...they're not GC'able objects.
jhorwitz crap 13:41
why is nothing easy? ;-)
jonathan hopes this isn't going to be the start of a very nasty discovery about context handling.
particle don't make me wake chromatic 13:43
...please!
jonathan particle: I'll have another look when I get time.
I understand the GC bug part of the problem, if not the context part yet. 13:44
pmichaud it *might* end up being a non-issue in allison's pdd25 branch
since a lot of that stuff is being reworked/re-examined.
particle ooh, allison is up, bet we could summon her
pmichaud after reverting r28022, I get a ton of "cannot morph Perl6Scalar" errors in spectest_regression 13:45
jonathan pmichaud: That's a result of some copy rather than assign operations, though I didn't think I'd checked in the patch that actually caused this to show. 13:46
pmichaud looks like it did. 13:47
what should i do?
jonathan s/copy/assign/ in a few places, like the undefine sub for one. 13:48
It may be the new paramter handling that caused this to show.
pmichaud unfortunately, I have to take a break in a few minutes. 13:50
(a break from rakudo, that is.)
jonathan OK, I have to leave for Vienna.pm meeting in like 5 mins.
pmichaud grph.
jonathan didn't expect his patches to break *this* much. :-( 13:51
13:51 Zaba_ joined
dalek r28031 | pmichaud++ | trunk: 13:51
: [core]:
: * Revert r28022 from jonathan, which was causing rakudo to get caught
: in infinite loops. We'll need to revisit this patch later.
diff: www.parrotvm.org/svn/parrot/revision?rev=28031
pmichaud well, I need to skip out for a bit, but can probably look at it again in 30-45 minutes from now. 13:52
bacek jonathan, fortunately there is many people that can blame you in couple of minutes after commit :)
cognominal jonathan, did the rest of your trip back went well? 13:55
jonathan cognominal: Not really...there were delays, meaning I missed last bus back from the airport...and nobody around to suggest what to do. 13:56
Note it was the bus by the company who did the flight. So they had to know there were people arriving late.
So ended up having to get a taxi back. Which was...none-cheap.
cognominal ouch 13:59
jonathan Next time, I'll just take the train.
13:59 avar joined
jonathan OK, time to go to Vienna.pm meeting... 14:00
cognominal well, I got to spend more time with you and learning more about rakudo
jonathan Yes, true. And I got to write some patches...that have broken lots. :-(
OK, best go...don't want to miss the train!
cognominal good luck
purl good luck is all I can say.
14:07 IllvilJa joined 14:08 avar joined 14:18 Zaba joined
DietCoke grumbles at the build system. 14:20
Whiteknight what don't you like about the build system? 14:22
DietCoke at the moment, that I am unable to merge in changes from trunk to a branch. =-) 14:23
(it breaks the build.)
(this is regarding generating the ops.num file) 14:25
I think I found a dance that lets me continue. whee.
14:26 Zaba_ joined
DietCoke hurm. I bet the pure PIR tests we have are never being tested in any core other than the default. 14:29
Whiteknight Yes, I've discovered that merging from trunk to a branch is a total pain 14:31
pmichaud I tend to not do it.
but I'm in a situation where I don't have to :-)
I didn't get to write about this in the email, but what I'll sometimes do is 14:32
svn co trunk
cd languages/perl6
svn switch branches/mybranch/languages/perl6
DietCoke well, the problem isn't the merging, perse, it's that I did one thing in the branch, something else in the trunk, and the tools that regenerate the generated file don't seem to cope with doing both.
pmichaud that way languages/perl6 is coming from the branch, while the rest of my working copy is from parrot trunk 14:33
DietCoke In general, I don't find merging painful at all. but the fact that we keep generated files checked in confuses things, and the fact that we don't have an easy, consistent way to regen them all exacerbates it.
Whiteknight pmichaud, that's actually a very novel solution! Since most of my work is happening in include/Parrot/ and src/gc/, that would save me a lot of hassle 14:35
DietCoke (which is why I want --maintainer to update *all* generated files that are checked in)
Whiteknight especially since most of my merge conflicts occur in the overly-active languages/perl6
DietCoke the problem with that approach is that no one else can easily work on your branch.
(unless they follow the same convention)
at that point, why not just make your branch be the languages/perl6 dir?
14:36 davidfetter joined
pmichaud Whiteknight: yes, in your case you could do a checkout of your branch, and then svn switch trunk/languages 14:37
Tene overly-active? maybe we need to rate-limit pmichaud? ;)
14:38 rdice joined
pmichaud but yes, that does mean that languages/ in the branch is not up-to-date, if anyone else tries to work in the branch. For most branches there are only 1 or 2 people working in the branch so coordination isn't always an issue. 14:38
hey, I'm not the only committer to languages/perl6 !
dalek r28032 | coke++ | type_ids: 14:39
: svn merge -r26989:27250
: from trunk into the type_ids branch
diff: www.parrotvm.org/svn/parrot/revision?rev=28032
DietCoke ... that commit hasn't finished yet. annoying.
(from my perspective)
DietCoke starts up the next merge chunk. 14:40
(sorry to do that in two chunks, but I needed to resolve my ops.skip problem and i wanted to do it with a smaller merge.) 14:41
pmichaud commits are cheap. 14:42
14:43 Zaba joined
particle DO NOT rate limit pmichaud!!! :) 14:44
i don't understand why you have any merge conflicts in languages, Whiteknight, unless you're making changes there in your branch 14:45
jhorwitz you cannot stop pmichaud's commits. you can only hope to contain them.
dalek r28033 | pmichaud++ | trunk:
: [rakudo]:
: * Temporarily revert r28026 so that trunk works while I refactor
: parameter handling in a branch.
diff: www.parrotvm.org/svn/parrot/revision?rev=28033
particle pmichaud: in runtime/parrot/library/PGE/Perl6Grammar.pir ~line 157: 14:47
.local pmc stmtrule
stmtrule = get_hll_global ['PGE::Perl6Grammar'], 'statement'
stmt_loop:
match = stmtrule(match)
Null PMC access in invoke
why would stmtrule be null?
davidfetter Those comments are out there. They can't be bargained with! They can't be reasoned with! They doesn't feel pity, or remorse, or fear. And they absolutely will not stop, ever... 14:48
pmichaud stmtrule would be null if ['PGE::Perl6Grammar'], 'statement' doesn't exist. 14:49
particle yes, obviously. that's the question i should have asked
i'd like to have a sensible error message for the case when statement doesn't exist
i'm compiling TGE/builtins.pg here
pmichaud but that shouldn't happen.
particle so, something's funky.
right 14:50
pmichaud have you tried with -G?
particle yes, no effect
pmichaud windows or linux? 14:51
particle and it doesn't fail for you even with gcdebug
windows
a much better platform for finding gc and null bugs
...don't ask me why...
NotFound Why? 14:52
particle i'll do the svn update -r dance now
jhorwitz loves/hates x86_64 for finding all his bugs
14:52 Andy joined
particle x86_64 sucks/rocks 14:53
pmichaud particle: Perl6Grammar.pir:119 is the one that establishes the 'statement' rule and symbol.
14:53 bacek joined
pmichaud that's part of the 'onload' sub. 14:53
so, either that call is not working, or 'onload' isn't onloading, or something else is clearing out the 'statement' rule by the time the other code executes 14:54
particle unless null $P0 goto not_null 14:56
say "WTF!?!?!?!? 'statement' is NULL"
not_null:
doesn't trigger that line
so, $P0 isn't null after the call to p6regex
pmichaud ...$P0 ? 14:57
particle $P0 = p6regex($S0, 'grammar'=>'PGE::Perl6Grammar', 'name'=>'statement', 'w'=>1)
pmichaud oh, you could still be getting a value back for $P0
particle ah. hrm
pmichaud try testing ['PGE::Perl6Grammar'], 'statement' at that point. 14:58
14:58 Theory joined 14:59 Zaba_ joined
particle yep, it's null 14:59
dalek r28034 | pmichaud++ | trunk:
: [rakudo]:
: * Temporarily switch off of using Perl6Scalar until we figure out
: the assign/morph issue.
diff: www.parrotvm.org/svn/parrot/revision?rev=28034
pmichaud okay, if it's null there, that means that p6regex isn't doing its job
try adding 'target'=>'pir' to the set of options, and then say $P0 15:00
so
$P0 = p6regex($S0, 'grammar'=>'PGE::Perl6Grammar', 'name'=>'statement', 'w'=>1, 'target'=>'pir')
say $P0
particle blank line
purl blank line is one that containt nothing but s
pmichaud try displaying $S0 before the call
particle $S0 contains the heredoc text 15:01
...beforehand, and $P0 blank after
pmichaud so.... for some reason p6regex isn't compiling the regex properly 15:02
particle but it's still returning non-null $P0
that seems fishy to me
pmichaud normally p6regex compiles all the way down to bytecode
i.e., it compiles to PIR, then runs the PIR compiler on that 15:03
the 'target'=>'pir' _should_ have caused it to stop at the PIR step, and then displayed the PIR that was generated
particle i can try parse
pmichaud to display the parse you'll need to call _dumper($P0) 15:04
instead of say
particle gotta load_bytecode, too
what should i load, PGE/Dumper.pbc?
pmichaud yes, and dumper.pbc 15:05
particle parse exists, moving on to PAST
"VAR1" => PMC 'Eval' { ... } 15:06
does that mean it worked?
pmichaud that means that 'target=parse' didn't.
oh, sorry, missed "parse exists" 15:07
PGE doesn't compile to PAST
try target=exp
particle ah, right
exp, okay
"VAR1" => PMC 'Eval' { ... }
pmichaud checking. 15:08
purl checking is not the hard part here. ;-)
pmichaud target='pge::exp'
(I'll be glad when I can refactor PGE to be more hllcompiler-like)
particle too
ok, i get a tree back for pge::exp 15:09
next step?
purl next step is PROFIT.
particle sorry, couldn't resist :)
pmichaud target='pir', but leave it as _dumper
particle "VAR1" => "" 15:10
pmichaud that is seriously bogus.
particle can i give you any nopasted output to help?
pmichaud how about turn on tracing just before the call to p6regex? 15:11
might be a big long, though.
s/big/bit/
particle 'tis
will do
seems likely to overflow my buffer (9999 lines) 15:12
pmichaud maybe email it to me, or post it somewhere?
particle yo want the whole trace?
pmichaud I'm thinking
is this particular error blocking your build (because it won't build TGE?) 15:13
particle yes
i can't work on rakudo or mk_language_shell
pmichaud you're realcleaned and up-to-date on everything? 15:14
particle unless i revert to saturday's build
ayep
pmichaud so, something broke on saturday
particle i'm looking at the logs
pmichaud do we know which .... right. It would help to know which item broke the build. I'll look too for candidates.
particle svn log -r {20080530}:HEAD --verbose | gvim - 15:15
pmichaud try r27970 15:17
particle config/building now 15:18
pmichaud that should pass. If it doesn't, that's a huge clue. 15:23
fwiw, nothing has changed in PGE itself since 20080530 15:24
particle yeah, i know :(
pmichaud my next guess would be chromatic's changes on early sunday --- so try r27988 15:25
(er, that would be "late Saturday" for your timezone)
("early Sunday" in mine :-)
particle 27970 failed 15:26
pmichaud okay, that's a huge clue.
do you know what revision number succeeds?
particle no, i'm gonna try 33 now 15:27
if that doesn't work, i'll go back to friday
pmichaud not a lot happened on friday, either.
I mean, -r '{20080530}:head' includes any commits that were made on Friday 15:28
particle ah
well, 33 is from friday, thoun
er. then.
pmichaud correct.
r27933 | pmichaud | 2008-05-29 23:35:34 -0500 (Thu, 29 May 2008) | 3 lines
particle seems to still fail 15:29
pmichaud 33 fails?
particle i didn't do a realclean
pmichaud you almost _have_ to do a realclean for this
NotFound Some of that changes are patches from me.
particle yeah, am doing now
15:32 jan joined
pmichaud I'm going to need lunch soon :-( 15:36
Whiteknight hear hear! 15:37
particle here here! :)
pmichaud particle: are you doing realclean on 33 or 70? Did you do realclean on 70 before? 15:38
dalek r28035 | pmichaud++ | rakudoparam:
: [rakudo]:
: * New branch for refactoring parameter variables.
diff: www.parrotvm.org/svn/parrot/revision?rev=28035
particle i did realclean 70
pmichaud okay, so my "big clue" stands.
particle just realcleaned 33 and got failure
"VAR1" => ""
WTF!?!?!?!? 'statement' is NULL
Null PMC access in invoke()NMAKE : fatal error U1077: '
pmichaud you didn't revert the P6Grammar stuff? 15:39
particle no, should i?
statement is still null
pmichaud does 'svn status' show that as the only modified file?
(in all of trunk?)
particle yes
except languages/perl6/t/harness
pmichaud okay, that should be safe.
particle but that's totally unrelated 15:40
pmichaud so, how far back should we go?
particle i'll try 27900
that only changes the class and object pmcs 15:41
pmichaud that could be it, though. 15:42
(scanning log)
you did a commit on r27921, so presumably it was working for you then 15:43
also r27932
er, r279*23*
but nothing of significance changed from r27923 to r27930 15:44
er,
but nothing of significance changed from r27923 to r27933
well, I had better get some lunch -- haven't eaten since early yesterday 15:46
particle ~~
pmichaud bbiaw 15:47
DietCoke has someone changed imcc recently? 16:08
Whiteknight I changed it a while back with the ".namespace []" thing. 16:11
DietCoke nevermind, another merge related issue with generated files. =-)
(had to delete imclexer.c to get it to regen.)
... worse, had to re-touch the .l and .y files to insure those changes were more fresh than the other changes brought in from the merger. 16:14
16:20 Zaba joined
dalek r28036 | Whiteknight++ | gsoc_pdd09: 16:20
: [gsoc_pdd09] updating to trunk r28035. A number of merge conflicts that I wanted to tackle today and not leave until tomorrow.
diff: www.parrotvm.org/svn/parrot/revision?rev=28036
Whiteknight yeah, i had to do the same when I regenerated those files, had to touch them to ensure they were newer, so make would operate on them
DietCoke one of the reasons I'd like --maintainer to just regen _everything_ when we use it. =-) 16:23
particle that imcc problem is very old, if not well-known 16:24
DietCoke I'll be happy if we can remove them as build dependencies. =-)
particle create a replacement for imcc that doesn't use .l and .y files, and we can do that 16:25
dalek r28037 | coke++ | type_ids: 16:30
: svn merge -r27251:28031
: Merge from trunk to the type_ids branch
diff: www.parrotvm.org/svn/parrot/revision?rev=28037
16:37 cjfields joined
cjfields pmichaud: regarding Str and trans(), I have noticed in PDD28 that trans() may be deprecated 16:44
www.parrotcode.org/docs/pdd/pdd28_s...ml#Methods
16:46 ambs joined
pmichaud cjfields: no problem, we can always roll our own if we need it 16:46
moritz actually that's one of the things that could easily be implemented in perl 6 16:47
so I'll wait until that's possible, then I'll have a go at it
cjfields That's what I'm thinking. Probably will be ... d'oh moritz beat me to it
moritz cjfields: or you do it then, and I'll try to implement currying instead
cjfields: I don't think we'll have a shortage of things to be implemented in pure perl ;) 16:48
cjfields Okay. I have toyed with adding it in PIR (via Str.pir). Where would we add it in perl6? 16:49
moritz starts a list of things that can easily be implemented in Perl 6
pmichaud I don't have that worked out yet
but I'm getting very close. 16:50
moritz cjfields: it's not yet possible to write runtime/prelude in perl 6
pmichaud I just need MD5 or some sort of uuid generator that PCT can use. 16:51
I might break down and use Digest::MD5 as it is now rather than wait for a cleaner version.
could always clean it up or fix it later.
cjfields I have already started a simple p6 version of trans() so it wouldn't be too hard to add it in 16:52
pmichaud I'd say go with the p6 version if we have one
we might want to implement the 'yada' soon. 16:53
cjfields agree, the 'yada' would be nice 16:59
DietCoke whee. pdd25cx is now dying with a segfault building PGE. 17:07
17:07 AndyA joined 17:25 barney joined
DietCoke rants about the metadata failures in the merges in the type_ids branch in languages/perl6 17:28
There's a good reason to do them as one commit. :P
spinclad purl, literal probably. 17:30
purl spinclad: probably. =is= <reply> Really? Probably? Are you Certain it's not certain? Are you sure it's unsure? I think you need to look harder.
spinclad purl, literal probably.
purl spinclad: probably. =is= <reply> Really? Probably? Are you Certain it's not certain? Are you sure it's unsure? I think you need to look harder.
spinclad purl, forget probably.
purl spinclad: I forgot probably.
DietCoke imagines all the other purl users on this server are quite unhappy with our mods. 17:31
spinclad no more snarks! no more character! 17:33
DietCoke even better, the property failure I'm getting isn't a result of the last few merges. which means i missed a merge somewhere.
DietCoke grumbles. 17:34
17:34 Zaba joined
spinclad i could reinstate probably. ... 17:37
cotto_work seen allison
purl allison was last seen on #parrot 12 days and 21 hours ago, saying: I've seen that, Infinoid++, [May 20 13:48:40 2008]
spinclad surely that would help with merge problems... 17:38
pmichaud ....sigh... big pct addition coming up 17:48
pmichaud takes a short walk first.
17:48 slightlyoff joined, autarch joined 17:49 autarch left, slightlyoff left 18:02 sjansen joined 18:15 TimToady joined
DietCoke wonders if TimToady is a poisonous toad. 18:16
TimToady
.oO(ribbit)
18:17
particle tapes a "lick me" sign on TimToady's back 18:18
ambs DietCoke, done :-P 18:19
DietCoke ambs, thanks. =-) 18:25
Coke is also a pest.
purl okay, DietCoke.
DietCoke particle: ewwwwwwwwwwww 18:26
pmichaud DietCoke: must be a west coast sort of thing. :-)
ambs DietCoke, a big pest! :-P 18:36
particle pmichaud: a fresh co of parrot builds. go figure. 18:37
18:37 Theory joined
pmichaud something was out of whack then :-) 18:37
particle i wish i knew what. 18:40
coke: what do you think about a script that generates MANIFEST from svn?? 18:42
could we use it to remove MANIFEST?
pmichaud don't we already have one? 18:43
isn't that what mk_manifest_and_skip does?
DietCoke yes.
pmichaud particle has a good point then -- why not just do that at release time instead of in every ci? 18:44
DietCoke I think particle might mean as a post-commit hook.
particle not post-commit hook
DietCoke don't ask me. I already opened the MANIFEST must die ticket years ago.
particle svn del MANIFEST
barney never understood what MANIFEST in the repos is used for
pmichaud I think we do a MANIFEST check only if DEVELOPING doesn't exist.
(in configure)
DietCoke no, the manifest check is done all the time.
it's VERY noticable on windows, for example. =-) 18:45
pmichaud right, I think we *should* do a MANIFEST check only if DEVELOPING doesn't exist.
otoh, having a manifest check is nice to make sure you got a complete svn checkout
particle how about a makefile target to generate MANIFEST if it doesn't exist
pmichaud particle: still skipping the configure check? 18:46
because at the time Configure.pl runs, Makefile doesn't exist.
particle yes, but reconfigure could check it
pmichaud how about if Configure generates a MANIFEST, and makefile checks it
or Configure generates a MANIFEST if it doesn't exist 18:47
and then does a normal manicheck
or....
particle if perl Configure.pl --release generated MANIFEST, and make release checked it, that'd be great
pmichaud particle: there have been sometimes where MANIFEST has let me know that some needed file is missing from my repository
barney pmichaud: I'm happy with 'svn status', showing the state of the checkout 18:48
pmichaud s/repository/working copy
barney: sure, but if I'm doing make realclean; perl Configure.pl; make and some file is missing from the repo, I might not notice it.
particle pmichaud: there have been times when MANIFEST has let me know that somebody has added a file to his working copy but hasn't checked it in yet after they regenerated MANIFEST
pmichaud otoh, something probably wouldn't build, either, so...
particle there are false positives and false negatives 18:49
pmichaud particle: in other words, you're saying that someone added a file to working copy, regenerated MANIFEST, and checked in MANIFEST but not the other file
particle yes 18:50
i'm working on two changes
pmichaud yes, I have that situation too.
particle one, i'm ready to commit
yep
pmichaud what can't "make release" generate MANIFEST ;-)?
i.e., why would perl Configure.pl --release have to do it?
particle in order to do the config checking 18:51
pmichaud checks 'make release'
particle but, heck, make release can run reconfigure --step=manicheck
or whatever it's called
some tests do rely on MANIFEST being around, iirc
so there will be breakage, but it should be fixable 18:52
pmichaud okay, I suggest a different approach
simply have the Configure.pl step make a MANIFEST if DEVELOPING exists 18:53
but leave MANIFEST in the repo
particle huh?
pmichaud the only time that MANIFEST is a really a problem is when using Configure.pl 18:54
particle we need manifest when developing *doesn't* exist
pmichaud *make* a manifest
not check it
you just said that some tests do rely on MANIFEST being around
so, let Configure.pl create it if we're in an svn checkout
DietCoke MANIFEST is used for a ton of things, yes.
pmichaud that way it'll be up-to-date
and it'll get committed at the next ci 18:55
DietCoke (distro tests, coding standard tests...)
pmichaud (if there are any changes)
particle well, it means that you can't do 'make test' reliably without Configure.pl
pmichaud but it won't carp if someone is working from an SVN repo and the current MANIFEST is incorrect
particle because MANIFEST will be out
out-
aargh
DietCoke we also have to consider whether or not we're supporting dev outside of svn.
particle *out of date
DietCoke rt.perl.org/rt3/Ticket/Display.html?id=41386 18:56
ambs . o O ( spammers )
DietCoke so if you want to resurrect this thread, actually resurrect *this thread*. =-)
pmichaud the following tests appear to depend or use manifest 18:59
6 tests in t/configure/
doc/pod.t
native_pbc/number.t
all of the tests in t/manifest/ 19:00
t/codingstd/gmt_utc.t
t/codingstd/pod_todo.t
t/codingstd/linelength.t
t/codingstd/perlcritic.t
codingstd/filenames.t
t/distro/manifest.t t/distro/file_metadata.t 19:01
a couple of tests in t/steps/
that's all.
DietCoke google++ 19:04
ambs google++ # units conversion 19:12
nopaste "barney" at 84.58.148.48 pasted "weird difference between say and print" (17 lines) at nopaste.snit.ch/13147 19:14
DietCoke does one have a newline? <duck> 19:17
yup. given the completely different code paths there, that's not entirely surprising.
i'd open a ticket on it, though, because it still seems wrong. 19:18
19:25 braceta joined 19:27 davidfetter joined
barney created ticket RT#55196 19:36
19:44 smash joined
smash hello everyone 19:44
davidfetter oi, smash
smash wasn't Configure.pl suposed to pick up and create Makefiles for new languages added via tools/dev/mk_language_shell.pl ? 19:57
DietCoke it creates the root.in; you might have to rerun the config step to gen the actual makefile. mebbe. 19:58
"should"
purl "should" is, like, maybe putting it a little strongly, but who cares 19:59
smash correct
i did all that, still no makefile
pmichaud no, Configure.pl doesn't do that 20:00
mk_language_shell.pl doesn't do anything to modify the Configure.pl system
DietCoke configure.pl doesn't create a makefile? when did that change?
pmichaud Configure.pl only creates makefiles for the languages it's told to create makefiles for 20:01
as given by config/gen/makefiles/languages.in, I think
mk_languages_shell doesn't modify that list.
smash last time i used mk_language_shell.pl i only had to rerun Configure.pl and make on the new language 20:02
DietCoke oh. the shell is deficient and doesn't update the global lgnaugaes target?
pmichaud well, I could be wrong about that, then.
I don't think the shell should update the global languages target.
smash pmichaud: i'm not 100% sure either 20:03
pmichaud not unless we know that the newly created language is also going to be committed into the repo
the last step in mk_language_shell is system("$reconfigure --step=gen::languages --languages=$lclang"); 20:04
that cause the Makefile to be automatically created
but it doesn't cause Configure.pl to do it if re-run again.
(I don't think it does that.)
similarly, using mk_language_shell to create a language and then executing "make realclean" from Parrot root doesn't realclean the language shell, because Parrot's Makefile doesn't know about it. 20:05
this all comes from a philosophy that there should be less coupling between Parrot's build system and the languages, not more.
DietCoke yes, but fixing it in pieces is confusing. 20:06
the coupling is already there, and we're not hooking into it.
pmichaud because the hooks are very fragile/poor
mk_language_shell just gets you a directory and gets you started
it does not add the directory to the repo
it does not add files to MANIFEST
it does not update the Configure.pl targets (because then we'd want an equivalent abandon_language_script) 20:07
(and we don't want a "svn commit" to accidentally check in Configure.pl that contains targets for a language that is not in the repo)
20:08 sjansen joined
smash bah 20:08
if you specify the language path it *won't* create you the makefile 20:09
that system line is under an unless ($ARGV[1]) {
pmichaud right, because the gen::languages step is useless unless the directory is languages/something 20:10
dalek r28038 | Whiteknight++ | gsoc_pdd09:
: [gsoc_pdd09] added some basics for a dod run function. Mostly comments explaining what I would like to do and what I don't know how to do.
pmichaud gen:languages doesn't know how to do anything else.
dalek diff: www.parrotvm.org/svn/parrot/revision?rev=28038
DietCoke putting all the steps necessary to add it to the repo seems like a good idea, even if we disagree about when it should be run.
smash yes, but you can alwasy specify languages/something 20:11
*always
pmichaud you're welcome to improve the script. Just don't break it. :-)
smash hehe
better way to run it is plain: $ perl tools/dev/mk_language_shell.pl Foo 20:12
that way you get the makefile and are good to go
DietCoke if I don't make it back for PS tomorrow, one of the usual suspects please stand in for me.
smash "After populating the language directory, the script attempts to 20:14
run tools/dev/reconfigure.pl "
barney I won't make it to PS tomorrow, Frankfurt.pm meeting, Nothing to report.
smash _only_ if you don't specify the 2nd argument !!
20:16 cjfields joined
dalek r28039 | bernhard++ | trunk: 20:16
: #54148: [NEW] Add tools/util/dump-pbc.pl (weave PIR source and PBC disassembly)
: Add testscript tools/util/dump_pbc.pl with a sanity test.
diff: www.parrotvm.org/svn/parrot/revision?rev=28039
r28040 | smash++ | trunk: 20:24
: [dev/tools]
: * don't wonder why makefiles are not created no more
diff: www.parrotvm.org/svn/parrot/revision?rev=28040
smash & 20:28
20:35 cjfields_ joined 20:39 jan joined 20:51 Auzon joined 20:59 rdice joined 21:36 davidfetter joined 21:40 Zaba_ joined 21:54 japhb joined 22:08 cjfields joined 22:23 kid51 joined 22:35 Limbic_Region joined
jonathan is back from Vienna 22:39
kid51 jonathan: Do you sometimes wake up and wonder which country you're in? 22:43
jonathan kid51: Yes.
However, Vienna is only 1 hour from here...I live very near to the Austrain border. 22:44
kid51 ... and where do you live, so to speak?
jonathan Bratislava, capital of Slovakia.
kid51 Ah, but IIRC you're from the UK?
jonathan Yes. 22:45
kid51 Well, then you're the first Slovak I've ever met
jonathan First person living in Slovakia. ;-)
22:45 teknomunk joined
jonathan But yeah, it's a less usual place to go and live. 22:46
kid51 Did you originally move there for work?
kid51 has reached the point in life where he's beginning to regret having worked in only one country. 22:47
... and, for the most part, in one city.
But we don't have EU passports here.
jonathan I work from home, so I can live pretty much wherever, though being outside of Europe would be tricky for time-zone reasons.
Limbic_Region well, I have lived and worked in various places in the US - but only lived/worked outside the US in S. Korea (1.5 years)
jonathan Here is well located for getting to a lot of the rest of Europe. 22:48
I've generally been quite fond of central/east europe, fancied trying to learn a Slavic language and was pretty taken by Bratislava when I visited, so I figured I'd come hre for six months and see how it goes.
If I get to like it, I'll likely stay for a while. 22:49
And yes, EU makes it very easy to do things like this. :-)
Limbic_Region what is the work visa situation - do you have to pay local taxes?
Limbic_Region should have waited
kid51 jonathan: Yes, particularly since the east-to-west span of what is thought of as 'Europe' has expanded so much since 1989
Eevee that is definitely cool 22:51
jonathan There's no work visa, since it's all EU.
Eevee although alas you are the *second* person living in slovakia I know of
jonathan Taxes - gets fun, but the countries are all in tax agreements such that if the UK and Slovakia thought they should tax me, then I can count the smaller tax bill paid in one country as a write-off against the other. 22:52
kid51 Anyone on channel now who was a Mac with 10.5 on intel?
jonathan pmichaud: ping 22:54
23:02 Zaba joined 23:03 mire joined 23:12 tetragon joined 23:19 scrottie joined
scrottie pmichaud, if you don't mind, /msg me or find me on #moose if you wake up and see this. 23:26
23:35 rdice joined 23:50 Theory joined