Parrot 0.8.1 "Tio Richie" Released | parrot.org | 611 tx
Set by moderator on 26 November 2008.
jonathan OK 00:00
pmichaud no, Container isn't right either.
hrm.
jonathan Container is too vague.
Maybe ConstraintWrapper
Or something.
I'm bad with names.
pmichaud still, I'm not sure this is the right fix.
the real fix should go into the signature binding. 00:01
jonathan It's not actually a problem at the signature binding point in the example program though.
pmichaud because Perl6Scalar could contain an ObjectRef and this would dtwt
jonathan 1.say for @a 00:02
That for there calls list(...)
pmichaud yes, it should.
jonathan list(@a)
OK, but @a is what is now called Perl6Scalar
And because in inherits from ObjectRef, list gets confused. 00:03
And was thinking it should treat it as a single item, like it should with an ObjectRef
(Because isa ObjectRef comes back true for Perl6Scalar)
pmichaud but I think it will be wrong for something like
00:04 tak joined
pmichaud sub foo($a) { 1.say for $a }; foo((1,2,3)); 00:04
also, I'm not sure that deref works. 00:05
I got weird results with it once before when implementing .PARROT
i.e., I think that deref is being delegated 00:06
pmichaud checks.
jonathan It calls get_pmc, I think?
Oh, you mean it pushes it down and would deref the objectref too?
It didn't seem to be doing that
At least, I've have expected one of the test cases in that ticket to fail if it was doing that.
pmichaud I agree -- the code says it doesn't push it down 00:07
jonathan pmichaud: What should the output of the thing you just posted be?
pmichaud I wonder what the bizarre values I was getting before were, then.
1
jonathan Not 3 1s?
pmichaud no
jonathan Ah.
pmichaud because for [1,2,3] { say 1; } only iterates once.
does my case fail? 00:08
jonathan Yeah, but I'm struggling to see *why*. 00:09
Ah, because we're not treating arrays and scalars any different when binding the signature...
pmichaud right.
which was the issue I was kinda meaning at the beginning 00:10
jonathan Yeah.
00:10 AndyA joined
pmichaud I think the issue is in our binding, not in list() 00:10
jonathan We might just need to do both.
pmichaud I think if we fix the binding, list() fixes itself.
jonathan Because we might still need a wrapper of some kind.
Depends how we fix the binding.
pmichaud we definitely need a way to add constraints and remove them.
jonathan I'm also curious
sub foo(@a) { @a = 1,2,3; } # obvious error 00:11
sub foo(@a) { @a[0] = 4; } # error or not?
pmichaud S06 says: However, the default forces any container argument to also 00:13
be treated as an immutable value. This extends down only one level;
an immutable container may always return an element that is mutable if
it so chooses.
jonathan OK, so it'd be an error. 00:14
That may imply that we want different kinds of wrappers. 00:16
pmichaud I'm not too fond of the wrapper approach at the moment. 00:17
I really wish there was a good reliable way to add constraints to the PMCs directly. 00:18
although I can see why that won't work either.
okay, we go with wrappers.
dalek r33246 | jkeenan++ | trunk:
: Delete tests pertaining to Configure.pl --miniparrot option, which has been
: removed. 00:19
diff: www.parrotvm.org/svn/parrot/revision?rev=33246
pmichaud I expect I'll figure it out as I go through the parameter refactor.
in the meantime I'll just add my case to the ticket and re-open it so we don't forget.
jonathan pmichaud: OK, and I've just added your test case to a spectest too 00:20
(#?skip'd)
pmichaud excellent.
00:20 kid51 joined
jonathan Added. 00:21
00:21 tetragon joined
kid51 Oops. I was working in trunk when I thought I was working in branch. 00:25
Fortunately, Coke made the same changes in branch today.
pmichaud maybe wrapper-ness is really just a property of ObjectRef instead of a distinct type.
anyway, I'll figure it out as I continue working on params. 00:26
jonathan Sure.
For now maybe the patch makes life a little less painful for Ilya++. :-)
pmichaud hopefully we didn't break anything else (that we weren't testing yet :-)
jonathan If we did, somebody will moan, we'll get a bug report, and our test coverage will improve. 00:27
pmichaud indeed 00:28
anyway, dog wants a walk and everyone else is busy, so it's up to me.
bbl
dalek r33247 | jkeenan++ | rm_miniparrot: 00:33
: For consistency with other tests, substitute something for 'miniparrot' in test. Add one test for captured error message.
diff: www.parrotvm.org/svn/parrot/revision?rev=33247
jonathan use.perl.org/~JonathanWorthington/journal/37954 # report 00:35
00:37 Ademan joined 00:39 davidfetter joined 00:59 Whiteknight joined
chromatic www.parrot.org/scratch/todoskip-test-review 01:03
01:05 clunker3__ joined
dalek r33248 | chromatic++ | trunk: 01:16
: [IO] Ensured that buffered reads into a STRING never set a negative string
: length. See CID #148 from Coverity Scan.
diff: www.parrotvm.org/svn/parrot/revision?rev=33248
01:17 tak joined
GeJ chromatic: RT #46511 I get an RT Error "No permission to view ticket" 01:23
in relation to your parrot.org todoskip entry (t/pmc/threads.t line) 01:24
chromatic Me too. Hmm.
"vtable overrides aren't properly cloned" 01:25
Want to file it? 01:27
dalek r33249 | chromatic++ | trunk: 01:34
: [IO] Plugged a STRING leak in the case where Parrot_exec() fails. This is an
: abnormal condition, but that's still no reason to leak memory. See CID #153
: from Coverity Scan.
diff: www.parrotvm.org/svn/parrot/revision?rev=33249
GeJ Hum, I'm not sure to even understand what the problem is about. I just tried to view the ticket since it seemed to be realted to threads, and I know FreeBSD is sensible on this matter. I'm not even sure to grok what "vtable overrides aren't properly cloned" means. 01:35
01:37 tak joined
dalek r33250 | allison++ | pdd22io_part2: 01:40
: [pdd22io] Bringing the pdd22io_part2 branch up-to-date with trunk
: r33248.
diff: www.parrotvm.org/svn/parrot/revision?rev=33250
chromatic You can override vtable entries in a PMC with PIR.
When we clone a new interpreter (threads, concurrency), those overrides aren't present in the new interpreter. 01:41
That's my best understanding.
01:57 Alias joined
dalek r33251 | chromatic++ | trunk: 02:00
: [PMC] Extracted static ns_insert_sub_keyed_str() from set_pmc_keyed_str() to
: clean up the latter somewhat.
diff: www.parrotvm.org/svn/parrot/revision?rev=33251
r33252 | allison++ | pdd22io_part2:
: [pdd22io] Merging trunk changes to ops.num with branch changes.
diff: www.parrotvm.org/svn/parrot/revision?rev=33252
chromatic Hm, we still need the __vtable_entry_name hack in NameSpace for PASM. 02:04
02:05 lu_zero joined
allison chromatic: or a way for PASM to mark characteristics of subs 02:06
chromatic Which we need anyway. 02:09
NameSpace PMC is a mess.
dalek r33253 | chromatic++ | trunk: 02:17
: [PMC] Added PMC_IS_NULL checks to set_pmc_keyed_str vtable entry of NameSpace
: to avoid dereferencing a NULL PMC for its value. See CID #155 from Coverity
: Scan.
diff: www.parrotvm.org/svn/parrot/revision?rev=33253
jonathan coverity for the win! 02:18
chromatic I have two more to fix. 02:21
You'll like them.
That leaves seven uninspected or pending issues. 02:27
I should have them cleaned up by Friday. 02:28
dalek r33254 | chromatic++ | trunk:
: [MMD] Fixed memory leaks in anonymous class type early exit conditions from
: mmd_cache_key_from_types and mmd_cache_key_from_values. See CID #156 and CID
: #157, reported by Coverity Scan.
diff: www.parrotvm.org/svn/parrot/revision?rev=33254
jonathan is C programming FAIL 02:30
:-(
coverity++, chromatic++ 02:31
Just think, I'm going to be working on bytecode annotations soon. 02:32
jonathan will try to suck less on those
Hum. Well, it's 3:30am so maybe I should do that whole sleeping thing. 02:33
jonathan -> bed 02:34
03:02 rob joined
dalek r33255 | allison++ | pdd22io_part2: 03:03
: [pdd22io] Shared filehandles don't close the file descriptor when they're
: destroyed, they just flush it.
diff: www.parrotvm.org/svn/parrot/revision?rev=33255
03:24 jimmy joined
dalek r33256 | pmichaud++ | trunk: 03:48
: [pge]: Remove double underscores from Match POD (RT #60384, chrisdolan++)
: * Patch courtesy Chris Dolan <chris@chrisdolan.net>
diff: www.parrotvm.org/svn/parrot/revision?rev=33256
04:10 chromatic joined
tewk chromatic: how often should Parrot_cx_handle_tasks get called? 04:26
04:29 tak joined
tewk shouldn't I call Parrot_cx_check_tasks instead? 04:29
04:36 leto joined
chromatic tewk, every several opcodes, probably. 04:42
I do think it should be Parrot_cx_check_tasks. Whatever the slow core does is the right approach.
04:42 Hadi joined 04:56 Hadi left
tewk chromatic: I must be blind, but I don't see where the slow_core calls Parrot_cx_check_tasks or Parrot_cx_handle_tasks 04:57
I guess I could set a break point and watch huh 04:58
dalek r33257 | pmichaud++ | trunk: 05:02
: [rakudo]: Fix ^@list semantics, RT #60828.
diff: www.parrotvm.org/svn/parrot/revision?rev=33257
tewk up
chromatic tewk, I don't see it now either strangely. 05:22
tewk I ran the timer example and the check_events op gets called, but it isn't in the pasm test. 05:27
do the check_events* ops get majically injected somehow?
magically 05:28
purl magically is gone
tewk ok it is the check_events__ op that os being called by the DO_OP macro 05:31
ahh we have the :check_event adverb on ops now, hmm going to have to look at the generated c code 05:33
bacek_ rakudo: enum Foo<get_string>; 05:52
polyglotbot No output (you need to produce output to STDOUT)
bacek_ rakudo: enum Foo<get_string>; say ~Foo::get_string 05:54
polyglotbot No output (you need to produce output to STDOUT)
bacek_ rakudo: enum Foo<get_string>; say Foo::get_string
polyglotbot No output (you need to produce output to STDOUT)
bacek_ looks like polyglotbot broken...
rakudo: say "hi" 05:55
polyglotbot No output (you need to produce output to STDOUT)
bacek_ definitely broken
05:55 iblechbot joined 05:56 tetragon joined
pmichaud rakudo: say "No output (you need to produce output to STDOUT)" 05:57
polyglotbot No output (you need to produce output to STDOUT)
pmichaud wfm :-P
tewk allison: how does the check_events__ get called. I'm stumped 06:00
allison tewk: it's part of the runloop, on certain runcores 06:12
tewk: specifically called on ops tagged with :check_event 06:13
bacek_ pmichaud: cheater! :) 06:33
$ ../../parrot perl6.pbc -e 'my $a=1;my $b=2; my @c=($a,$b); say ~@c; $a=3; say ~@c' 06:59
1 2
3 2
Is it expected behavior???
lathos Expected, sure. Correct, no. 07:01
Assignment in Perl 6 is currently a bit special. It'll get there, though. 07:02
moritz bacek_: if there's no test like this in t/spec/S03-operators/assign-is-not-binding.t , please add it (and fudge it) 07:08
pmichaud list assignment still isn't working in rakudo. 07:10
it's on my todo list.
bacek_ pmichaud: it's not "list assignment"... 07:12
pmichaud oh yes it is.
bacek_ pmichaud: how that?
pmichaud item assignment is when the lhs is a scalar.
everything else is a list assignment.
lathos @c = ($a, $b) looks like a list assignment to me. 07:13
07:13 ff-wonko joined, uniejo joined
lathos @c is a list and ($a, $b) is a list, and you're assigning one to the other. 07:13
bacek_ $ ../../parrot perl6.pbc -e 'my $a=1;my $b=2; my $c=[$a,$b]; say ~$c; $a=3; say ~$c'
1 2
3 2
pmichaud that's a list-to-array conversion issue.
07:14 contingencyplan joined
pmichaud parts of which are still being specced. 07:14
(I guess the earlier problem is also list-to-array conversion.) 07:15
at any rate, we're still waiting for a few details to hit the spec. :-)
bacek_ bacek@haste:~/src/parrot/languages/perl6$ ../../parrot perl6.pbc t/spec/S03-operators/assign-is-not-binding.t 07:17
Segmentation fault
purl (Core dumped)
bacek_ Interesting...
lathos That's less good
bacek_ running make realclean 07:18
chromatic Confirmed. 07:19
pmichaud does assign-is-not-binding.t need to be fudged?
(granted, "segfault" is not the correct answer anyway, but...)
bacek_ ./src/pmc/namespace.pmc:265
chromatic #0 0xb7daac56 in Parrot_NameSpace_set_pmc_keyed_str ()
Great, guess who just touched that? 07:20
bacek_ pmichaud: it's in spectest.data
pmichaud bacek_: that doesn't mean it's not fudged.
bacek_ It's not fudged
[PMC] Extracted static ns_insert_sub_keyed_str() from set_pmc_keyed_str() to 07:21
clean up the latter somewhat.
chromatic: looks suspicious :)
PerlJam pm: When you copied the synopses to the pugs repo, you did so with full history?
chromatic I see what it is.
I changed the PMC type check to VTABLE_isa. 07:22
The value in this case is a Perl6MultiSub.
pmichaud PerlJam: yes.
PerlJam: that's why pugs had 1000+ commits today :-)
PerlJam okay. my pugs update was taking forever and I was fairly sure it wasn't too far out of date 07:23
bacek_ running git bisect
pmichaud PerlJam: you're using git?
PerlJam yep 07:24
lathos It's OK at svn:33178
pmichaud ...that sounds like the issue, then. :-)
PerlJam :-PPPP
bacek_ bacek@haste:~/src/parrot$ git bisect good 07:26
6ed0229fa4a1da0eccb637b7fccc094c8c1dfc5b is first bad commit
commit 6ed0229fa4a1da0eccb637b7fccc094c8c1dfc5b
Author: chromatic <chromatic@d31e2699-5ff4-0310-a27c-f18f2fbe73fe>
Date: Thu Nov 27 02:17:11 2008 +0000
git-svn-id: svn.perl.org/parrot/trunk@33253 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
:040000 040000 65a10b4a4269756585ce1e5aa82000a5dbf63c8e 711814e0889344828476a30f5cc52510f41dfedc M\tsrc
lathos git bisect looks very clever. 07:27
I mean, obvious in a way, but handy.
chromatic Oh, I know what the problem is. I just don't know why.
PerlJam git is clever in general
bacek_ lathos: "git bisect run make" is very helpful
PerlJam: and FAST
PerlJam bacek_: indeed. 07:28
MJD says that Linus proved that Linux wasn't a fluke when he created git :-)
lathos So the next obvious job is to package up git, smoke testing, svn blame and email. And possibly RT. 07:29
"Your patch broke the smoke test. Oh and it segfaulted, here's the backtrace."
bacek_ And send it directly to chro^W author 07:30
chromatic Hey, I didn't break Liskov here. 07:31
dalek r33258 | chromatic++ | trunk: 07:33
: [Rakudo] Added vtable delegate for get_pmc_keyed_int to Perl6MultiSub, as
: r33253 now allows subclasses of MultiSub to store multis in a NameSpace PMC.
: Bacek reported that this broke t/spec/S03-operators/assign-is-not-binding.t. 07:34
diff: www.parrotvm.org/svn/parrot/revision?rev=33258
bacek_ chromatic++ # rakudo works again 07:35
PerlJam heh ... you get ++ when you break stuff (inadvertently) and you get ++ when you fix the stuff you broke. karma is a funny thing. :) 07:36
chromatic It's 'cuz we're edging toward correctness. 07:37
bacek_ PerlJam: it's fair enough, because you didn't get karma for doing nothing
pmichaud no telling how much karma I got for all of my "let's try this for lexicals... darn it doesn't work yet" commits.
bacek_ sending git manpages to pmichaud 07:38
moritz PerlJam: karma is not only for achievements, but also for commitment ;) 07:43
purl is not only for achievements, but also for commitment ;) has neutral karma
07:44 UltraDM joined
dalek r33259 | chromatic++ | trunk: 07:46
: [src] Removed an unnecessary dereference check which confused Coverity Scan;
: replaced it with a PARROT_ASSERT. See CID #53. Also tidied some code.
diff: www.parrotvm.org/svn/parrot/revision?rev=33259
chromatic That leaves seven open issues. 07:47
pmichaud Two more failures in rakudo spectest: 07:57
t/spec/S12-methods/default-trait. 1 256 ?? ?? % ??
t/spec/S12-methods/multi.t 1 256 ?? ?? % ??
reverting 33253 causes them to pass.
chromatic Do they segfault? 07:58
pmichaud just a sec. 07:59
(rebuilding with 33259 in place again)
t/spec/S12-methods/multi....A method named 'bar' already exists in class 'Foo'. It may have been supplied by a role.
chromatic Same messsage for the other. 08:00
pmichaud might want to check with jonathan++ about it if the fix isn't obvious 08:01
chromatic I think NameSpace behaves more correctly now, but he knows better about how the Perl 6 PMCs should behave. 08:02
pmichaud right.
it wouldn't surprise me if he had to work around some NameSpace PMC issues
dalek r33260 | pmichaud++ | trunk:
: [pct]: Integer/Float/String nodes can now appear directly in PAST.
: PAST::Val() isn't needed for these common types.
diff: www.parrotvm.org/svn/parrot/revision?rev=33260
08:04 alvar joined
dalek r33261 | pmichaud++ | trunk: 08:07
: [pct]: Add 'getprop' signature to PAST::Compiler.
diff: www.parrotvm.org/svn/parrot/revision?rev=33261 08:08
pmichaud time for sleep.
chromatic I think I have it. 08:09
dalek r33262 | chromatic++ | trunk: 08:23
: [Rakudo] Removed debugging code accidentally committed in r32992.
diff: www.parrotvm.org/svn/parrot/revision?rev=33262
08:24 ff-wonko joined
dalek r33263 | chromatic++ | trunk: 08:26
: [PMC] Made set_pmc_keyed_str in NameSpace only add MultiSubs to a class when
: something of that name does not already exist. This further fixes Rakudo after
: r33253. I'm not convinced that these semantics are completely correct, but if
: you add a multi method of the same name as a non-multi method to a class,
: something has to give.
diff: www.parrotvm.org/svn/parrot/revision?rev=33263
08:35 Theory joined 08:38 iblechbot joined 08:58 tomyan joined, tomyan1 joined 09:18 bacek joined 09:29 ff-wonko joined 09:45 elmex joined, uniejo joined 10:08 ff-wonko joined 10:28 Zaba joined 10:31 ff-wonko joined 10:51 kj joined 10:53 kjs_ joined 10:55 kjs_ left, kjs_ joined 10:56 kjs_ joined 11:00 kj joined
dalek r33264 | kjs++ | trunk: 11:23
: [pirc] several updates.
: + check for value of macro args where strings are expected
: + add new .annotate directive (but no actions yet)
: + fix a prototype warning
: + beautify error messages
diff: www.parrotvm.org/svn/parrot/revision?rev=33264
11:28 kjs_ joined 12:13 gmansi joined 12:35 ruoso joined 12:46 iblechbot joined 12:51 gmansi joined 12:53 jimmy joined 13:03 Theory joined 13:25 particle1 joined
tewk allison: I think I had what you mentioned figured out. 13:29
13:32 Theory joined 13:43 tetragon joined 13:52 particle joined 13:55 Zaba joined
tewk I just found enable_event_checking, I figured the optable had to be switched out, I just couldn't figure out where. 14:02
Everything makes sense now.
14:27 Limbic_Region joined 14:29 cout joined 14:31 LimbicRegion joined 14:40 ff-wonko joined 14:52 masak joined 15:25 workbench joined, dngor joined
pmichaud Happy U.S. Thanksgiving Day, all. 15:32
Infinoid happy turkey day, Pm 15:39
masak I would like to use the PCT to make a compiler that translates XSLT to PIR. besides Squaak and its tutorial, what should I read? 15:58
moritz #parrot :-) 15:59
masak check.
jonathan The Guide To Masochism 16:00
;-)
masak thanks for the kind words. :) 16:01
16:02 tak joined 16:08 barney joined
tewk allison: I don't think the slow_core branching ops call Parrot_cx_handle_events 16:13
I set a timer for two seconds out but it never goes off, while I'm in a busy loop 16:14
nopaste "tewk" at 155.97.237.62 pasted "t2.pasm" (26 lines) at nopaste.snit.ch/14738 16:15
16:17 iblechbot_ joined 16:27 Theory joined
nopaste "tewk" at 155.97.237.62 pasted "improved t2.pasm" (42 lines) at nopaste.snit.ch/14739 16:31
szabgab an administrative question. If the copyright holder of Parrot is TPF then what does the Parrot Foundation do? 16:38
barney It is planned to transfer the copyright to the Parrot Foundation 16:40
pmichaud Parrot's copyright will go to the Parrot Foundation. Rakudo's copyright remains with TPF.
16:43 chromatic joined
szabgab thanks, as I can see from www.parrotcode.org/docs/submissions.html comitters need to sign a Perl Contributor License Agreement, this does not apply to people sending patches? 16:47
pmichaud I don't know the answer to that one -- would probably need to ask a Parrot Foundation person.
chromatic We've only required that for committers so far. 16:48
szabgab (the TPF web site does not want to talk to me right now)
17:08 adu joined
jhorwitz szabgab: no CLA required for patches 17:09
jhorwitz scrolls and sees chromatic answered the question already 17:10
jhorwitz needs more coffee
adu Coke?
purl i guess Coke is mailto:will@coleda.com or disconcerted that the test program -fails- when run via valgrind, but one thing at a time. =-)
dalek r33265 | bernhard++ | trunk: 17:13
: [codingstd] remove trailing space
diff: www.parrotvm.org/svn/parrot/revision?rev=33265
r33266 | bernhard++ | trunk: 17:14
: [docs] Elaborate in test_more.pir
diff: www.parrotvm.org/svn/parrot/revision?rev=33266
17:31 NotFound joined
NotFound Hi 17:31
purl niihau, NotFound.
moritz hi there
jonathan hi all 17:41
Happy Thanksgiving Day to those of you in the US
jonathan plans to hack on something Parrot or Rakudo-ish later on today 17:42
17:42 Theory joined 17:44 davidfetter joined, tomyan left
pmichaud bytecode annotations! :-) 17:48
17:51 chromatic joined
moritz uhm, t/spec/S29-list/reverse.t dies after 5 tests (Type mismatch in assignment.) 17:53
jonathan pmichaud: Yes, I may just hack on that.
dalek r33267 | fperrad++ | pdd22io_part2: 18:00
: [pdd22io] WMLScript
: - replace ParrotIO by FileHandle
diff: www.parrotvm.org/svn/parrot/revision?rev=33267
pmichaud last night I updated PCT so that it accepts String/Float/Integer directly in the PAST tree 18:02
nopaste "pmichaud" at 72.181.176.220 pasted "PCT accepts string/integer/float directly example" (21 lines) at nopaste.snit.ch/14740 18:04
jonathan pmichaud++ 18:05
Nice!
Less objects to create, smaller more readable tree, less code to build it. WIN.
pmichaud and it'll be even shorter when we have either (a) reusable register PAST::Var nodes or (b) setprop node returns its operand
jonathan Oh, register isn't already re-usable? 18:06
pmichaud ...and there's even less inline pir. :-)
register's reusable as long as it doesn't have a viviself or isdecl
I'd like to make it so that it's reusable even if it does have those.
jonathan
.oO( Maybe I screwed up... )
pmichaud if it has a viviself then it will likely re-generate the viviself on each use. 18:07
instead of just on first use.
jonathan It didn't.
I used a register varialbe when I changed .=
dalek r33268 | chromatic++ | trunk:
: [IO] Really made sure that the string length produced in
: Parrot_io_peek_buffer() is never negative (see r33248 and CID #148 from
: Coverity Scan).
diff: www.parrotvm.org/svn/parrot/revision?rev=33268
pmichaud yes, but you created two nodes to do it.
although in that case I don't think a register node is needed 18:08
a :pasttype('bind') node always returns the thing just bound.
18:09 tak joined
jonathan We need to evaluate the LHS just once and use it both as something to bind to and to invoke on. 18:10
pmichaud sure
jonathan There may be a way to do it without register var, but I didn't see it.
pmichaud there _might_ be an issue that each .= re-uses the same register name.
e.g., if a .= contained a .= in the expression.
jonathan ponders what the code would look like to do that 18:11
pmichaud $a .= foo( $b .= bar ); # perhaps
18:11 particle1 joined
pmichaud anyway, register nodes w/o names will generate unique names... at least that's the intent. 18:12
jonathan OK 18:14
pmichaud (writing example of what I'd *like* to have work)
nopaste "pmichaud" at 72.181.176.220 pasted "How I think register nodes should work (example)" (10 lines) at nopaste.snit.ch/14741 18:16
jonathan Neat. 18:17
That'd probably work quite nicely.
pmichaud basically, a register node ought to allow you to reuse it multiple times in the same PAST tree. 18:18
jonathan *nod*
Yeah
We need to be careful to document the cases where doing so (using a node multiple times in the tree) is actually OK.
pmichaud This is the only case.
(so far).
jonathan Yeah.
Doing so otherwise can cause...interesting things...to happen. 18:19
pmichaud gotta get back to cleaning up my office before our thanksgiving visitors arrive 18:20
I'm glad I got the string/integer/float stuff done, that will make the parameter code a lot more straightforward
so I'm not creating PAST::Val all over the place.
jonathan Yes. :-)
You ci it yet?
pmichaud (working on the param code was what prompted me to say "do I need all of these PAST::Val?" in the first place :-)
yes, it's ci'd.
jonathan Cool
pmichaud I also started a twitter feed for rakudo perl: twitter.com/rakudoperl 18:21
I can post notes directly from irssi :-) 18:22
jonathan I noticed the Facebook group too!
Rakudo is now officially Web 2.0 compliant. 18:23
18:25 lichtkind joined
lichtkind is PIR closer to PAST or POST? 18:25
pmichaud POST
lichtkind thanks
pmichaud PAST is fairly abstract. 18:26
lichtkind pmichaud: im polishing the wiki article
pmichaud POST has a very close correspondence to PIR.
lichtkind thanks
pmichaud (typically one POST::Op node per PIR instruction)
lichtkind yes i guessed something like that but my articles have to be correct :) 18:27
dalek r33269 | bernhard++ | trunk: 18:28
: [Pipp] Add predefined constant DEFAULT_INCLUDE_PATH and set it to '.'
: Use DEFAULT_INCLUDE_PATH for includefile lookup
: Move the function 'constant' into php_builtin.pir
diff: www.parrotvm.org/svn/parrot/revision?rev=33269
pmichaud my script for generating the daily test summary results is showing lots of failures since 11-20 :-| 18:29
jonathan :-S
pmichaud not sure what's up with that yet
jonathan We're not (other than the bigint stuff) failing much, are we?
pmichaud 527 tests 18:30
(according to the script)
on 2008-11-20
jonathan You see them when you normally do make spectest?
pmichaud well, I don't know that I did make spectest on 11-20
as of the last couple of days I don't see them with make spectest...
but then I haven't gotten to that point in the daily testing yet
maybe something requires a fresh checkout or super realclean in there somewhere. 18:31
jonathan Perhaps.
pmichaud I'll have it (re-) generate the results for the 19th and see what it says. 18:32
jonathan I just see the bigint thing and that test that Parrot blows up at exit on.
pmichaud yeah.
2008-11-20 is complaining about assignment, iirc
btw, TimToady confirmed that @array[1] = @list needs to be either @array[1] = $@list or @array[1] = item @list to get a reference. 18:33
jonathan Yes, I saw. :_)
pmichaud so I think I'll be on track to do some list assignment soonish.
jonathan Yay!
lichtkind hm i thought it would be different 18:34
jonathan Lexicals fixed...list assignment soon...Rakudo is getting nicer. :_)
argh, why are my smileys all punched in the nose today...
lichtkind pmichaud: if i may vou distract you even more, so past is the parse trees eqivalent in internal parrot objects while POST is more like AST for bytcode for bytcode optimizer and translator 18:35
moritz wants list assignment!
jonathan PAST is abstracted away from the syntax of a specific language.
It's built by transforming the parse tree.
pmichaud past is an abstract representation of the program's semantics 18:37
broken down into reasonably generic primitives 18:38
lichtkind shure but you can call them internal objects?
pmichaud maybe, but parse trees really represent syntax more than semantics
past isn't really all that specific to Parrot, either.
lichtkind shure
and what i said about POST is true? 18:39
pmichaud yes, what you said about POST is spot-on.
it's a tree representation of bytecode
dalek r33270 | chromatic++ | trunk: 18:41
: [IMCC] Fixed a memory leak in _mk_address(). See CID #139 from Coverity Scan.
diff: www.parrotvm.org/svn/parrot/revision?rev=33270
lichtkind pmichaud: its all so logical :) 18:42
dalek r33271 | bernhard++ | trunk: 18:43
: [Pipp] add incomplete implementation of get_include_path()
diff: www.parrotvm.org/svn/parrot/revision?rev=33271
18:45 Hadi joined
lichtkind thanks a lot: pmichaud++ and jonathan++ 18:45
i did know that parse tree holds more the lang specific commands, i ment it more in logical sense 18:47
18:47 Limbic_Region joined
masak jonathan: yay for list assignment soon! 18:49
oh, it was pmichaud I should say 'yay!' to. 18:50
masak is a yay-sayer today 18:51
18:52 LimbicRegion joined 18:54 ff-wonko joined 18:55 LR joined
jonathan masak: Well, you can say yay to me, but it's pmichaud who'll be doing the work. ;-) 18:56
masak reaslized that 18:57
bff, realized*
yay to both of you!
dalek r33272 | jkeenan++ | testparrottest:
: Creating testparrottest in svn.perl.org/parrot/branches
18:57 kid51 joined
dalek diff: www.parrotvm.org/svn/parrot/revision?rev=33272 18:57
r33273 | jkeenan++ | testparrottest-33271:
: Tagging trunk at r33271 so that the testparrottest can later be synched to it.
diff: www.parrotvm.org/svn/parrot/revision?rev=33273
18:58 ffwonko joined 19:11 alvar joined
dalek r33274 | bernhard++ | trunk: 19:26
: [Pipp] Convert array.t from Perl 5 to PHP
diff: www.parrotvm.org/svn/parrot/revision?rev=33274
r33275 | bernhard++ | trunk: 19:33
: [Pipp] Fix the logic in proclaim() and fix incorrect test
diff: www.parrotvm.org/svn/parrot/revision?rev=33275
19:49 On joined 19:52 Hadi joined 19:53 Hadi left 19:59 Theory joined
dalek r33276 | bernhard++ | trunk: 20:13
: [pipp] Rename PhpUndef to PhpNull, because undefined is null in PHP
diff: www.parrotvm.org/svn/parrot/revision?rev=33276
On has stupid questions... 20:21
Is Parrot based on Perl or is Perl based on Parrot?
moritz parrot uses Perl 5 for its build system 20:23
and there's a parrot based Perl 6 compiler
bacek good morning and hello from future 20:27
jonathan bacek: How's the weather tomorrow? 20:28
;)
bacek jonathan: almost nice. Rain already stopped
I expect +24 degrees celcius today :)
moritz expects +8 °C tomorrow 20:29
moritz likes bacek's tomrrow better than his own
bacek ok 10 - man-or-boy test for start value 9 20:31
maximum recursion depth exceeded
current instr.: '!INIT_IF_PROTO' pc 11255 (src/gen_builtins.pir:6917)
heh :)
moritz bacek: do you have an old version of t/spec/? 20:32
s/have/run/ 20:33
bacek moritz: no. New one. I just uncommented second version of @results
moritz bacek: ah. We decided to keep the recursion limit for now, because it's useful for developing/debugging 20:34
jonathan bacek: FYI, it's just a value we set to a default inside Parrot, for the reasons moritz says. It's not an inherent limit or anything. :-) 20:35
bacek I see. 20:37
If I actually replace .return with .tailcall in few places in generated PIR it succeeded till 11. 20:38
We need internal PIR optimiser...
jonathan I'm not sure if we'll have enough semantic information at that point to do it, but we may. 20:43
Rakudo optimizer is some way off though. :-)
bacek '$P1 = "foo"(); .return ($P1)' is good candidate
btw, rt.perl.org/rt3/Ticket/Display.html?id=56448 20:45
jonathan Ah, yes, we can do that.
That at PIR level ise like safe.
bacek pm's example passing on modern rakudo.
(With adjusted syntax to use .tailcall) 20:46
jonathan ooh, if that's fixed it's *good* 20:47
We've been avoiding tailcalls in some places for that reason...
May well be a result of pm's work on lexicals and contexts of late.
bacek It doesn't crash.
But produces wrong result :)
$ ../../parrot tc.pir
4 5 3 2 5 1
1 2 3 4 5 5
2 4 5 3 1 5
jonathan hrh 20:50
*heh
bacek time to wake up kids
afk
21:27 davidfetter joined
GeJ Good morning everyone 21:34
moritz purl: POST? 21:39
purl POST is Parrot Opcode Syntax Tree or for changing data and uncacheable
masak GeJ: hej 21:42
GeJ hej masak 21:44
22:02 ambs joined, ambs left 22:08 pjcj joined 22:12 apeiron joined 22:29 apeiron joined
masak the November project has an is_deeply sub in our copy of Rakudo's Test.pm that we would like to contribute back to Rakudo. 22:30
would that be possible/desired?
22:48 cognominal joined
dalek r33277 | julianalbo++ | trunk: 22:54
: fix c++ violation in imcc _mk_address
diff: www.parrotvm.org/svn/parrot/revision?rev=33277
22:55 cognominal joined 23:02 apeiron joined
Tene masak: sounds good to me. 23:08
masak ok, so I'll just commit it then. 23:09
jonathan makes a cup of tea and prepares to start hacking on bytecode annotations 23:13
dalek r33278 | masak++ | trunk:
: [rakudo] added is_deeply sub to Test.pm, from the November project
diff: www.parrotvm.org/svn/parrot/revision?rev=33278
23:16 bacek joined
dalek r33279 | jonathan++ | bcanno: 23:17
: Create branch for doing bytecode annotations and any related refactors to packfile things that arise out of it.
diff: www.parrotvm.org/svn/parrot/revision?rev=33279
masak jonathan: nice name for a branch, 'bcanno'. but I don't understand what it is you plan to do. 23:18
jonathan Implement bytecode annotations. 23:19
(Described in PDD13, or see the PIR PDD for a more "how it'll be useful" point of view)
But basically, part of what will let us report that an exception happened on line 42 of Dog.pm
Rather than getting errors without line numbers, as now. 23:20
It's a Parrot thing rather than a Rakudo thing - this branch won't do anything in /languages/perl6/.
masak ah, that kind of bytecode annotations. 23:23
thanks for the explanation.
yes, we discussed it during YAPC::EU, actually.
23:24 bacek_ joined
masak speaking of which, will `perl6 -e die` always produce 7 lines of output? as opposed to `perl -e die`, which produces 1? 23:25
jonathan Aye, I think so.
(that was in response to, we disccused it during YAPC::EU...)
masak aye.
jonathan 7 lines of output - perhaps not, no.
masak there's a ticket about that, ISTR. 23:26
jonathan I think that we should produce a backtrace with HLL-level names of stuff (e.g. a useful one)
But it should end at the point we're back into PCT level stuff
masak good idea.
purl masak: Good Idea: Giving your dog a bath. Bad Idea: Having your dog dry-cleaned.
jonathan As in, that particular case should probably only produce 1 line.
masak purl: it's past your bedtime. shoo.
purl masak: sorry...
masak jonathan: good. 23:27
that seems to be what people expect.
jonathan But perl6 -e 'sub foo { die }; foo()' probably should be a couple of lines.
Since you died in foo.
masak yes, I understand.
that's ok too, I think. 23:28
jonathan Yes. I think backtraces are good things, if done right (as in, if we don't expose compiler guts in them).
masak :)