Camelia, the Perl 6 bug

IRC log for #parrot, 2008-11-27

Parrot | source cross referenced

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

All times shown according to UTC.

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

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

Parrot | source cross referenced