Camelia, the Perl 6 bug

IRC log for #parrot, 2008-11-09

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 bacek I can replace '!keyword_does' with 'r = new "Role"'. Same result...
00:00 bacek or new Class...
00:04 * bacek found source of truth - t/object-meths.t
00:06 Whiteknight (bacek++).needs(more_karma); bacek++;
00:06 bacek Whiteknight: stop cheating :)
00:06 bacek afk #
00:34 davidfetter joined #parrot
00:47 bacek joined #parrot
01:00 Infinoid opbots, trust masak
01:00 clunker3 But I do not trust you Infinoid
01:00 slavorg Ok
01:00 slavorgn Ok
01:00 Infinoid opbots, trust bacek
01:00 slavorg Ok
01:00 clunker3 But I do not trust you Infinoid
01:00 slavorgn Ok
01:00 Infinoid (they both seem human.)
01:00 dalek r32458 | Whiteknight++ | calling_conventions:
01:00 dalek : [calling_conventions] make sure to add the invocant to the front of the call signature. Added an adverb modifier "i" for invocants. Causes segfault.
01:00 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32458
01:01 * bacek returns to polishing his shiny metal butt :)
01:10 Theory joined #parrot
01:21 kj joined #parrot
01:21 bacek masak: around?
01:29 johbar joined #parrot
01:43 magnachef joined #parrot
01:50 dalek r32459 | Whiteknight++ | calling_conventions:
01:50 dalek : [calling_conventions] Fix the new "i" invocant adverb modifier to actually be in the right place
01:50 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32459
01:52 Theory joined #parrot
02:13 magnachef__ joined #parrot
03:26 silug joined #parrot
03:27 Psyche^ joined #parrot
04:02 elmex_ joined #parrot
04:19 magnachef joined #parrot
04:20 dmknopp left #parrot
04:22 stockwellb joined #parrot
04:23 magnachef__ joined #parrot
04:26 bacek rakudo: enum Foo<get_string>;
04:26 polyglotbot OUTPUT[A method named 'get_string' already exists in class ''. It may have been supplied by a role.␤current instr.: '_block15' pc -339673149 ((unknown file):-1)␤called from Sub '_block15' pc 169 (EVAL_11:55)␤called from Sub 'parrot;PCT;HLLCompiler;evalpmc' pc 804
04:26 polyglotbot ..(src/PCT/HLLCompiler.pir:468)␤called from Sub 'parrot;PCT;HLLCompiler;compile' pc 4...
04:26 bacek rakudo's enums are really bad...
04:27 bacek rakudo: enum Foo<pick>;
04:27 polyglotbot RESULT[Null PMC access in find_method()␤current instr.: '_block14' pc 25 (EVAL_15:12)␤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 866 (src/PCT/HLLCompiler.pir:501)␤called from Sub 'parrot;PCT;HLLCompiler;evalfiles' pc 1141 (src/PCT/HLLCompiler.pir:631)␤called from Sub
04:27 polyglotbot ..'parrot;PCT;HLLCompiler;command_line' pc 1320 (src/PCT/HLLCompiler.pir:72...
04:27 bacek really really bad...
04:32 MariachiElf joined #parrot
04:35 Aisling joined #parrot
04:40 stockwellb Anyone got a second to answer a Roles inspecting question
04:42 bacek stockwellb: I can try... But I'm not very familiar with Roles
04:42 stockwellb This is a PIR question really. I'm just playing around with Roles and a little introspection. So...
04:44 stockwellb I can inspect a class and get a hash telling me some things about it. To get its roles I have to call the roles method. That method returns an array. Shouldn't I be able to loop through that array and call .inspect() on each one?
04:45 bacek stockwellb: yes
04:45 bacek you can iterate over array of Roles and introspect each of them
04:47 stockwellb Good now here's where I'm probably messing up then. I made a little sub to dump a hash to the screen. When I dump the roles inspect hash I get *Null PMC acces in get_string()*
04:48 bacek can you nopaste your code?
04:48 chromatic There's a Data/Dumper.pir you can use with load_bytecode.
04:49 stockwellb yes, interesting through my dump_hash sub works with the hash from class.inspect, hold on I'll nopaste in a second or two.
04:49 bacek chromatic: you there! Can you fix #60368 please :)
04:50 nopaste "stockwellb" at 70.160.222.145 pasted "inspecting roles" (147 lines) at http://nopaste.snit.ch/14520
04:51 bacek msg masak #60418 is duplicate of #60368
04:51 purl Message for masak stored.
04:53 stockwellb bacek, could you be more specific on the local of Dumper.pir?
04:54 chromatic I'll look into it.
04:55 stockwellb chromatic, my kids are running around the house screamin *Trogdor* they love it!!!
04:56 stockwellb My second grader won't stop drawing the Burninator.
04:57 dalek r32460 | allison++ | pdd22io:
04:57 dalek : [pdd22io] Converted I/O buffering to new architecture.
04:57 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32460
04:58 stockwellb bacek, I found Dumper.pir. I guess I was being lazy.
04:58 bacek stockwellb: :)
04:59 stockwellb bacek, did you look at my code? I'm inspecting correctly aren't I?
05:10 stockwellb bacek, thanks for the dumper clue. Dumper doesn't get hung up on things like types so I see the error in my own sub dump_hash. For my roles, namespace is null and I wasn't taking that into account. At least I understood the Role correctly. Thanks again.
05:14 stockwellb I was lulled into a little bit of false security as the attributes and methods hash both have a value when you *cast* (not sure if that's the right word for parrot) them to a string. Null on the other hand didn't behave that way.
05:14 magnachef joined #parrot
05:15 stockwellb A new day has dawned on the east cost. I'm off to bed. Good night folks!
05:36 silug joined #parrot
05:39 tewk joined #parrot
05:48 magnachef__ joined #parrot
05:56 magnachef joined #parrot
06:19 Theory joined #parrot
06:20 cognominal joined #parrot
06:26 cognominal joined #parrot
06:27 dalek r32461 | chromatic++ | trunk:
06:27 dalek : [IMCC] Rearranged members of the IMCC_INFO struct, in preparation for making
06:27 dalek : the static IMCC globals part of this struct (see RT #60000).
06:27 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32461
06:38 Jimmy joined #parrot
06:44 cognominal joined #parrot
06:49 bacek joined #parrot
06:58 Jimmy hello, guys. I want to implement some function
06:59 Jimmy to pipp. but need to do some OS judgement.
07:00 Jimmy can PIR do it ?
07:02 chromatic That depends on what you want to do.
07:03 Jimmy for example, I want to judge OS whether is WIN32 with PIR.
07:04 chromatic That's unlikely.
07:05 chromatic However, the OS PMC might help.
07:05 chromatic At least, it should be able to.
07:05 chromatic Or you could look for a Win32-specific environment variable with the Env PMC.
07:06 Jimmy thanks, i want to find simple way do do it, some fuctions need to.
07:09 chromatic $P0 = new 'Env'
07:09 chromatic $S0 = $P0['%WINDIR%']
07:09 chromatic if $S0 contains a value, you're likely on Windows.
07:09 chromatic That's kind of a hack however, but it might work for now.
07:12 Jimmy thanks, i just find a way to do it.
07:13 Jimmy sysinfo S0, 4
07:13 Jimmy ne S0, "MSWin32", NOTWIN
07:14 chromatic I forgot about sysinfo.  Nice.
07:16 Jimmy thanks for your suggestion too.
07:24 dalek r32462 | chromatic++ | trunk:
07:24 dalek : [IMCC] Moved IMCC globals from a static struct into the IMCC_INFO struct in the
07:24 dalek : interpreter.  This helps make IMCC more reentrant (though it doesn't completely
07:24 dalek : fix RT #60000 for me).
07:24 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32462
07:42 chromatic Whoops.
07:43 dalek r32463 | chromatic++ | trunk:
07:43 dalek : [PMC] Fixed a read of unitialized memory in NCI PMC reported by Valgrind.
07:43 dalek : Tidied some of the code while I was at it.
07:43 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32463
07:52 dalek r32464 | chromatic++ | trunk:
07:52 dalek : [PMC] Fixed a memory leak in the NCI PMC introduced in r32463.  Also fixed a
07:52 dalek : bug in cloning NCI PMCs, where the clone received the wrong information about
07:52 dalek : the JITtedness of the source PMC.
07:52 dalek : Note that JITted NCI functions leak horribly at the moment.
07:52 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32464
07:53 chromatic purl, msg tewk JITted NCI functions leak 1024 bytes each.  We could stuff a reference count in the first INTVAL bytes and increment/decrement appropriately, returning the next 1020/1016 bytes as the function and freeing them with a special function from the NCI PMC in its destroy().
07:53 purl Message for tewk stored.
08:12 dalek r32465 | chromatic++ | trunk:
08:12 dalek : [src] Made temporary_pmc_free() call the destroy vtable entry on appropriate
08:12 dalek : PMCs.
08:12 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32465
08:13 bsb joined #parrot
08:13 dalek r32466 | chromatic++ | trunk:
08:13 dalek : [PMC] Fixed a potential memory leak when resizing a FixedIntegerArray.
08:13 dalek : Added the use of temporary_pmc_new/temporary_pmc_free for a genuine temporary
08:13 dalek : PMC.  We'll see how this works.
08:13 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32466
08:48 bacek joined #parrot
08:58 johbar joined #parrot
09:07 iblechbot joined #parrot
09:32 davidfetter joined #parrot
10:29 rurban joined #parrot
11:12 jonathan rurban: Comming to the hackathon?
11:13 rurban Dont know yet. My friend is sick, I'll wait a bit
11:13 jonathan Ah, OK.
12:24 rurban jonathan: sorry, no. I won't come.
12:39 bsb left #parrot
12:46 gmansi joined #parrot
12:48 kj joined #parrot
12:49 Whiteknight joined #parrot
12:55 dalek r32467 | Whiteknight++ | calling_conventions:
12:55 dalek : [calling_conventions] Sanity check: make it compile.
12:55 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32467
13:12 jonathan pmichaud: Just mailed you the patch that shows the broken PIR generation (from my Google Mail account since pobox doesn't accept mail from my mail server...)
15:06 jan joined #parrot
15:12 jimmy joined #parrot
15:13 jimmy hello, i write some pipp function, how can i commit it to svn ?
15:15 jonathan jimmy: Commit bits are only given out after a few good patches; please send a unified diff.
15:16 jimmy how to send it ?
15:18 particle http://svn.perl.org/parrot/​trunk/docs/submissions.pod
15:18 jonathan I'm not sure if the Pipp developers have a place of their own, so just send it...yes, see there.
15:18 Whiteknight email to parrotbug@perl.org, I think
15:18 pmichaud jonathan: got the email.
15:18 jonathan particle: I see http://www.parrot.org/docs/submissions.html is busted
15:18 jonathan pmichaud: dobre
15:18 jonathan pmichaud: uh, good
15:18 jonathan :-)
15:21 jimmy email is parrotbug@parrotcode.org
15:21 jimmy thanks
15:34 jonathan pmichaud: You can haz 'is also'
15:34 jonathan (not for attributes)
15:34 pmichaud it's implemented?
15:35 jonathan I need to run the spectests to make sure I didn't break anything along the way.
15:35 pmichaud excellent!
15:35 purl Smithers, release the hounds!
15:35 particle jonathan: is 'is instead' a far cry away from 'is also'?
15:35 jonathan But otherwise it seems to be working for methods.
15:35 pmichaud 'is instead' => bad.
15:35 pmichaud :-)
15:35 jonathan particle: Minor pain.
15:35 particle that's what i thought. ok.
15:35 jonathan Not sure if remove method is in place.
15:35 jonathan If it is it ain't so bad.
15:35 particle btw i'm not sure 'is also' should work for attributes
15:36 particle the spec doesn't say anything about it that i can find
15:36 jonathan particle: I don't see anything in the spec that says it shouldn't.
15:36 pmichaud we had a discussion about 'is also' + attributes at YAPC::EU
15:36 jonathan Aye.
15:36 particle ah
15:36 particle i missed that :)
15:36 pmichaud I think that a "dynamic language" would expect to be able to add attributes to an existing class.
15:36 jonathan I think we concluded we'd support it, at some point.
15:36 pmichaud Certainly it's possible to do it in P5, so I'd suspect P6 should also.
15:36 particle well, that's prototype oo in action
15:37 jonathan But I don't plan on doing it especially soon unless there's a pressing need.
15:37 jonathan 'cus it's...evil.
15:37 particle so i assume all instances of the class get the method added in 'is also' in the current implementation?
15:37 particle or is it just new instances?
15:38 jonathan particle: All existing ones.
15:38 jonathan And new ones of course...
15:38 jonathan I just did a test to check that.
15:38 particle :)
15:38 jonathan Running spectest now.
15:38 jonathan Then will find/write some unit tests for it.
15:39 particle jonathan++
15:41 * jonathan hopes pmichaud can spot the bug in the if pblock patch
15:41 pmichaud I may just do the whole refactor to get them all.
15:41 jonathan I suspect I've most likely done something stupid.
15:41 jonathan pmichaud: Even so, I'd be interested to know what I did wrong.
15:42 pmichaud checking.
15:42 particle i have seven failing spectests
15:43 jonathan I have some fails too.
15:43 particle and three bonus tests
15:43 jonathan autoincrement, and the working-then-segfaulting declaration order one.
15:44 particle yeah, your code from some days ago created that one
15:44 particle or exposed it, at least
15:44 jonathan autoincrement?
15:44 purl autoincrement is something else I'm trying to get them to accept.
15:44 jonathan Or declaration order?
15:44 pmichaud autoincrement might be from a change I made yesterday
15:44 pmichaud but haven't had a chance to revisit.
15:44 particle declaration order
15:44 pmichaud I was in a hurry so committed prior to spectest completing
15:45 pmichaud (then had to leave)
15:46 pmichaud (if pblock)  fwiw, I think that in general PAST::Compiler should avoid modifying the PAST structure it's compiling   (e.g.,   thenpast.'blocktype'('declaration')  )
15:46 pmichaud I know there are a few places in the existing code where we do this, but I'm hoping to get rid of them
15:50 jonathan pmichaud: I couldn't think of a better way. :-(
15:50 jonathan I wasn't comfortable with it either.
15:50 jonathan I suspect that's not The Bug though?
15:50 pmichaud I suspect not
15:50 pmichaud but the PIR generated by the two code items is really... bizarre.
15:51 pmichaud for some reason the second one becomes an 'unless' instead of an 'if'
15:51 Andy joined #parrot
15:52 particle > sub r(*@a) { my $b = (); push @b for @a; return @b.elems; }; say r(1,2,3);
15:52 particle Scope not found for PAST::Var '@b'
15:52 particle oh, oops
15:52 particle > sub r(*@a) { my @b = (); push @b for @a; return @b.elems; }; say r(1,2,3);
15:52 particle 0
15:52 particle that should be 3
15:52 pmichaud I don't think slurpies are working.
15:52 jonathan no, I think not
15:52 particle ok, that's the three failures in for-scope
15:53 jonathan ah, damm, I've br0ked lots
15:53 particle hrmm, did i get them working in nqp, but not rakudo?
15:53 particle i thought i did work on slurpies some time ago...
15:53 pmichaud we still need to re-do parameter handling in rakudo.
15:54 particle what's needs redoing?
15:55 pmichaud major refactors -- last time I looked I felt like the type checking and binding were being handled in the wrong action methods.
15:55 jhorwitz joined #parrot
15:55 particle ah, ok
15:55 pmichaud and I think the parameter parts of STD.pm grammar changed last week, so we should revisit that.
15:55 particle you're right about that. most trait handling is in the wrong spot, too
15:57 particle for-scope fixed by fudging
16:02 pmichaud jonathan: your patch seems to assume that a 'thenpast' node is always present but that 'elsepast' might be optional
16:04 pmichaud (both are optional)
16:04 pmichaud I still don't think that's the issue here
16:11 pmichaud but I do see now how I want to do this :-)
16:11 pmichaud oh, you changed the rakudo grammar
16:11 pmichaud I suspect the issue is there somewhere
16:18 jonathan pmichaud: The PAST looks sane, though.
16:18 jonathan Like, what I'd expect.
16:18 jonathan In both cases.
16:18 jonathan I changed the action method too, of course.
16:18 pmichaud yes
16:19 pmichaud I agree the PAST looks sane in both cases
16:19 pmichaud the PIR output in the failing one ends up with a line that looks like
16:19 pmichaud ($P16)
16:19 pmichaud which makes me suspect that it's missing a $Pxx  in front of it
16:19 pmichaud but why it's doing that, I don't know.
16:20 pmichaud anyway, I don't see anything obviously wrong with what you wrote, other than the items mentioned above.
16:20 pmichaud (thenpast is optional)
16:21 pmichaud I'm going to go ahead and refactor it the way I think it ought to end up
16:21 jonathan pmichaud: Yes, in fact, when you skip the say "ok" it emits "_blockXX"($Pxx)
16:21 jonathan So it's losing the name of the block somehow.
16:45 rdice joined #parrot
16:47 pmichaud got it working, now just running spectest.
16:47 jonathan Nice
16:48 jonathan You worked out what the code-gen bug was?
16:48 jonathan Or just did something that didn't expose it?
16:48 nopaste "pmichaud" at 76.183.97.54 pasted "if 42 -> $a { ... }" (82 lines) at http://nopaste.snit.ch/14522
16:48 pmichaud I don't know the code-gen bug.  I just updated the PAST compiler the way I think it should be done
16:49 jonathan OK
16:49 jonathan That means there's probably still a bug, but the way you've done it looks more general, so works for me.
16:49 jonathan if_statement will need updating to use xblock if it's going to match STD.pm
16:49 pmichaud yes -- this puts the "pass arguments to block"  in the routine that handles all of the blocks instead of handling separately for then/else
16:50 pmichaud yes, I'll do xblock next.
16:50 jonathan You can likely just apply those bits of my patch.
16:50 pmichaud I also want to update while/until/etc.
16:50 jonathan I copied from STD.pm directly.
16:50 pmichaud except I think we should have a   method xblock($/) { ... }
16:50 pmichaud instead of doing it in if_statement, while_statement, until_statement, etc.
16:50 jonathan Maybe, if there's a clean way to do that.
16:50 pmichaud sure, this is what PAST was designed for :-)
16:59 Andy joined #parrot
17:06 dalek r32468 | pmichaud++ | trunk:
17:06 dalek : [pct]:  Allow immediate blocks to take arguments in 'if/unless' nodes.
17:06 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32468
17:13 jonathan OK, think I've got the various bits cleaned up for is also - running smoke now.
17:25 jonathan gotta go - will ci when I get back, provided all passses
17:27 pmichaud okay, great!
17:45 Theory joined #parrot
17:57 AndyA joined #parrot
18:42 dalek r32469 | pmichaud++ | trunk:
18:42 dalek : [rakudo]:  Add pointy blocks to if/unless statements (partial RT #58008)
18:42 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32469
18:43 moritz hi
18:47 dalek r32470 | pmichaud++ | trunk:
18:47 dalek : [pct]:  Recognize arity of while/until blocks.
18:47 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32470
18:51 dalek r32471 | pmichaud++ | trunk:
18:51 dalek : [rakudo]:  Add pointy blocks to while/until statements (RT #58008).
18:51 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32471
19:28 jonathan pmichaud: Have got one new spectest fail from the is also patch - don't understand quite where/why it comes from.
19:28 jonathan pmichaud: So will hold fire until I can resolve that.
19:29 pmichaud jonathan: okay
19:31 jonathan pmichaud: Ah, found it...I re-ordered something I maybe shouldn't. Re-smoking with that fixed.
19:35 cognominal joined #parrot
19:38 moritz I see three failus in autoincrement.t. Can somebody confirm that that's a test change, not a regression?
19:41 jonathan pmichaud: OK, the OO tests are clean again now - should be able to commit this.
19:46 jonathan It's in.
19:46 jonathan bbl
19:47 dalek r32472 | jonathan++ | trunk:
19:47 dalek : [rakudo] First cut of 'is also'. Allows methods to be added to classes at runtime.
19:47 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32472
19:52 bacek moritz: it's test changed.
19:53 bacek moritz: you can fudge test or apply #59596 :)
19:53 bacek good morning
19:54 moritz bacek: in general, if you change tests so that they fail, please fudge them (and open a ticket if there's none)
19:55 moritz a new interpretation of the specs is not a regression.
19:55 pmichaud okay to apply #59596 (if regressions pass)
19:55 moritz ok, I'll take a look...
19:56 pmichaud I'm in the middle of testing things for pointy blocks or I'd do it myself
19:56 moritz it's fine, I have a few minutes right now
20:08 dalek r32473 | moritz++ | trunk:
20:08 dalek : [rakudo] More fiddling with ++/-- aka succ/pred. Closes [perl #59596].
20:08 dalek : Patch courtesy by Vasily Chekalkin, bacek++
20:08 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32473
20:09 bacek joined #parrot
20:10 * bacek hates australian internet...
20:10 bacek I missed something?
20:11 moritz bacek: I just applied RT #59596
20:11 bacek moritz: o! thanks
20:13 moritz ... and closed ticket now.
20:13 moritz which leaves us with only 170 tickets ;)
20:15 bacek moritz: good.
20:15 bacek You can close more. Just a sec
20:16 moritz closing #60144 right now (masak++)
20:17 bacek moritz: junction3.patch from #60168
20:18 bacek moritz: #60380
20:19 cognominal joined #parrot
20:22 moritz uhm, why did I just reject the latter? I wanted to reject some entirely different ticket :(
20:22 moritz now, it's till open... dunno what's wrong...
20:23 bacek In Soviet Russia tickets rejects you!
20:24 moritz bacek: re #60380, this seems hardly the correct way... when somebody writes 'class Int is also { method modify_me { ... } }' then that need to be catches as well. Which IMHO means that the check should be done by the container somehow, not in every mutating method
20:25 bacek moritz: containers were under heavy refactoring when I did this patch...
20:27 moritz I know
20:29 dalek r32474 | pmichaud++ | trunk:
20:29 dalek : [rakudo]: refactor xblock handling somewhat
20:29 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32474
20:29 cognominal is  containers behavior fixed?
20:30 pmichaud it's better, but not necessarily fixed.
20:31 cognominal ho, jonathan has written about it in planet parrot
20:31 cognominal pmichaud++ jonathan++
20:32 * bacek found src/pmc/objectref.pmc
20:32 pmichaud eventually the inplace operators go away.
20:32 bacek pmichaud: +1
20:32 purl 1
20:39 pmichaud in bacek's australia, you don't disconnect from the internet -- the internet disconnects from you.  :-(
20:42 cognominal the packets have trouble going up from Australia if the pump fails
20:48 masak joined #parrot
21:12 bacek joined #parrot
21:19 bacek pmichaud: +1 about internet...
21:19 bacek pmichaud: is it reasonable to add method 'ensure_readonly' to ObjectRef and call it in mutating methods? Or it should be standalone function?
21:29 pmichaud can't put methods into ObjectRef -- all method calls get forwarded to the referenced object.
21:29 pmichaud at this point I'm not too interested in solving it until after we move to building primitives in p6
21:30 pmichaud at that point the method signatures will be able to catch things that we aren't catching now.
21:30 pmichaud (not everything, but some things)
21:31 bacek pmichaud: there is already 'readonly' method in ObjectRef...
21:31 pmichaud it's left over, and it only gets called if we use VAR()
21:31 bacek sub foo($x) { eval '$x++' }
21:31 moritz eval can't access outer scopes yet.
21:32 bacek 'yet' :)
21:32 pmichaud in fact, afaict that 'readonly' method in ObjectRef is never used.
21:32 bacek sub foo(&s, $x) { &s($x) }
21:33 bacek pmichaud: I know. So I can use it in 'ensure_readonly'
21:33 pmichaud except I'm not sure I want to take this approach.
21:34 bacek rakudo: sub foo { return }; foo
21:34 polyglotbot RESULT[[]]
21:34 pmichaud at this point I want to get signatures fixed first, and possibly methods-in-p6, before I commit to any particular handling of readonly
21:34 bacek moritz: you can close #56638
21:34 bacek pmichaud: fair enough
21:34 pmichaud rakudo:  sub foo { return };  say foo.WHAT;
21:34 polyglotbot OUTPUT[List␤]
21:35 pmichaud that looks wrong to me.
21:35 moritz there's another ticket for that, something along the lines of "bare 'return' should yield undef"
21:35 moritz which Larry addressed with the new Nil type
21:36 moritz so that sub foo { return }; foo ~~ undef; will give true
21:36 pmichaud correct.
21:36 Psyche^ joined #parrot
21:36 pmichaud so I'm guessing that empty return returns nil
21:36 pmichaud er, Nil
21:36 bacek rakudo: my @a = < 1 2 3 >; say "@a"
21:36 polyglotbot OUTPUT[@a␤]
21:36 moritz should I merge these tickets? the discussion in #56638 seems relevant for the othe one.
21:37 pmichaud which other ticket?
21:37 moritz I'm looking it up, just a second...
21:37 moritz #58770
21:38 pmichaud yes, merge them.
21:38 bacek gotta go.
21:38 purl EXCUSE ME, I HAVE TO GO WASH MY COMPUTER
21:38 bacek purl: you are good girl :)
21:38 purl :)
21:39 bacek pmichaud: can you review junction3.patch from #60168?
21:40 pmichaud testing for boolean should be    $I0 = istrue $P0
21:40 pmichaud not $I0 = 'prefix:?'($P0)
21:42 pmichaud we don't need special prefix:! and prefix:? for Junction -- the defaults will do just fine.
21:42 pmichaud I'm generally using   '' for all vtable methods
21:42 pmichaud find_global is deprecated.
21:43 pmichaud for istrue, it's not even necessary to do that
21:48 pmichaud we really don't need separate infix_junction_helper and unary_junction_helper -- instead we should just be using junction_dispatch
21:55 pmichaud shall I add my comments to the ticket?
22:19 magnachef joined #parrot
22:21 magnachef__ joined #parrot
22:29 Theory joined #parrot
22:42 davidfetter joined #parrot
22:45 szbalint joined #parrot
23:06 Andy joined #parrot
23:13 d4l3k_ joined #parrot
23:13 PerlJam joined #parrot
23:14 jonathan joined #parrot
23:15 wolverian joined #parrot
23:30 jonathan pmichaud: Will add some tests for 'is also' next week - plan to hack Rakudo on Tuesday.
23:32 kj joined #parrot
23:33 pmichaud okay, excellent!
23:33 * purl plays air guitar
23:33 * pmichaud plays air guitar, also
23:33 jonathan The patch is...well...
23:34 jonathan I wish we could do the stuff somehow inside the multi-dispatch of the trait.
23:35 jonathan But anyway, it'll work until I can work out better ways to do things.
23:35 pmichaud okay, sounds great.
23:35 pmichaud I'll be playing with it a little tonight or tomorrow
23:35 jonathan The new sub I added actually encapsulates some functionality that I think is used elsewhere in actions.pm, so I may refactor some bits involving traits soon to use that.
23:36 pmichaud okay, that sounds good
23:36 pmichaud traits are handled a bit oddly inside of actions.pm
23:36 jonathan Yeah, I've got a better handle on traits now than when I wrote various bits of that.
23:37 pmichaud I think I'm going to go ahead and refactor junctions a bit, if only to guide others who are working on it
23:37 pmichaud also, the changes we made today for pointy blocks might be enough to get lexicals "working" in trunk until we can finish the lex branch
23:37 pmichaud the november folks would be very happy about that :-)
23:38 jonathan OK. Rightly or wrongly, I've been sorta not paying so much attention to it on the basis that I'd rather spend time in that area doing it properly by re-doing the dispatcher.
23:38 pmichaud that's good enough
23:38 pmichaud I think what I'm going to do will also be a good guidepost for the dispatcher
23:38 jonathan Rather than spend time on stop-gap stuff.
23:38 jonathan OK, great.
23:39 jonathan The dispatcher is on my list of things I plan to take on if nobody beats me to it.
23:39 pmichaud I'm willing to bet that nobody beats you to it.  :-)
23:39 jonathan I want to get the multi stuff finished up first, though.
23:39 pmichaud the only other person that I can think of that would be in the "race" for dispatcher is myself, and I'm planning to throw that race.  :-P
23:41 jonathan I think my "big feature" path, if it works for you/others, for the rest of the year and maybe early next year is multis, then dispatcher (which'll sort out junctions, submethods...maybe the next METHOD style things while I'm in that area) and then parametric roles.
23:41 pmichaud that works extremely well for me (and others so far as I know)
23:41 silug joined #parrot
23:41 pmichaud I'm doing lexicals, then will be back on PGE
23:42 jonathan Excellent.
23:42 jonathan I'd be really happy to have protoregexes in before the year is out.
23:42 jonathan If that's realistic, anyway.
23:42 pmichaud oh, I expect that to be the case.
23:42 jonathan Nice.
23:42 pmichaud fortunately I have no other jobs/tasks at the moment.
23:43 jonathan I've fewer than I used to. :-)
23:43 jonathan Once parametric roles are done, I think I'll start pondering some bits of S09. Like the typed arrays.
23:43 jonathan I'd rather get them in and do it in terms of those - how it should be - than hack it into place earlier.
23:44 jonathan S09 is enormous though.
23:44 pmichaud it is indeed
23:44 pmichaud we'll need captures somewhere before then... but that should wait on the new calling conventions branch
23:45 jonathan Yes.
23:45 pmichaud anyway, it sounds like a very good plan.
23:45 pmichaud I'll be eager to see what comes out of the summit
23:46 jonathan Yes, me too.
23:48 mj41_ joined #parrot
23:49 baest_ joined #parrot
23:50 Themeruta joined #parrot
23:51 PerlPilot joined #parrot
23:53 _Hunger joined #parrot
23:56 wolverian joined #parrot
23:56 polyglotbot joined #parrot
23:57 AndyA joined #parrot

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

Parrot | source cross referenced