Camelia, the Perl 6 bug

IRC log for #parrot, 2009-03-13

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 rg the other 4 tests are ok
00:00 rurban what does 16_le=>8_be do? coredump or wrong values?
00:00 rurban 0 or random?
00:01 rg that one is actually all zeroes
00:04 rurban (for reference, this was cvt_num16_num8_le)
00:05 NotFound Must go sleep. Not sure yet if the encoding thing will be fixable in reasonable time.
00:06 rurban thanks, bye!
00:07 rg so, what should i run next? build with --floatval="long double"?
00:07 rurban would be good, yes
00:09 rurban but I need the new _6.pbc files also
00:09 AndyA joined #parrot
00:09 rg i've mailed them to you
00:09 rurban thanks!
00:09 rg on monday i think
00:09 wayland76 How do I add things to the runtime search path?
00:11 rg btw would you mind reverting  r37130? i don't think we need either change (at least not at the moment)
00:13 rurban parrot -l or export PARROT_RUNTIME=
00:20 wayland76 Option -l not known
00:20 wayland76 Did you mean -L
00:22 rg he might. or -I. I haven't tried/needed any of them yet (not working on languages)
00:23 rurban big I for INC or big L for LIB
00:23 tetragon joined #parrot
00:24 ujwalic joined #parrot
00:30 wayland76 Yeah, that's what the help says, but it doesn't seem to be working for me.  I'll keep debugging
00:33 rurban It's probably not tested. RT#46815 test remaining options
00:33 rurban Thanks for this catch
00:34 dalek parrot: r37368 | rurban++ | trunk/config (2 files):
00:34 dalek parrot: [config] TT #364 revert r37130 as discussed in the ticket
00:34 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37368/
00:35 rg thanks
00:36 rurban Yes, I could never test this.
00:38 dalek parrot: r37369 | rurban++ | trunk/t/native_pbc (6 files):
00:38 dalek parrot: [t] update native_pbcs for big-endian from Rolf Grossmann
00:38 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37369/
00:50 rg uh oh, for 16_be number really isn't working much ;)
00:51 rg ok 3 - 8_be=>16_be and ok 6 - 8_be=>16_be
00:52 rg not ok 1 - 8_le=>16_be: some random, really small (...e-320) numbers (except the last -1.75738820098141e+159)
00:53 rg not ok 2 - 12_le=>16_be: all zeroes
00:53 rg 4 is like 1 and 5 is like 2
00:53 dalek parrot: r37370 | rurban++ | trunk/t/native_pbc (4 files):
00:53 dalek parrot: [t] internally update the testmatrix, so that at least interesting parties can help out
00:53 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37370/
00:54 rurban 8_le 12_le 16_le 8_be 16_be
00:54 rurban 8_le     1     1    1     1     0
00:54 rurban 12_le    1     1    0     0     0
00:54 rurban 16_le    1     0    1     0     0
00:54 rurban 8_be     1     1    1     1     1
00:54 rurban 16_be    1     1    1     0     0
00:54 rurban correct?
00:54 rg with 0 being todo?
00:55 rurban 0 is skipping (failing) ? is todo
00:55 rurban no we have 100% coverage, no todos anymore
00:56 rurban rg++
00:56 rurban rg++ for _6.pbcs
00:56 rg i think failing tests should be todo, so we can tell when we got them fixed
00:56 rurban and now I'm going to sleep. unfortunately we cannot watch the smokes now
00:57 rurban allison thinks differently
00:57 rg i hope she'll lighten up after the release
00:57 rurban that's the biggest problem. you can try to persuade I her. I gave up
00:57 dalek parrot: r37371 | rurban++ | trunk/t/native_pbc/number.t:
00:57 dalek parrot: [t] 16_be updates from Rolf Grossmann. Full coverage now
00:57 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37371/
00:58 rurban but I'll try to fix the implementation now that I have the data and see what I can do
00:58 rg i'll send you the _7 files in a minute
00:58 rurban thanks.
01:02 ruoso joined #parrot
01:03 rg hmm 16_be => 16_be (or probably any) isn't tested, since we didn't have the files, but it seems to work fine
01:18 wayland76 Doh!  LD_LIBRARY_PATH works.  ++ to the guy who suggested that last night
01:20 TiMBuS joined #parrot
01:30 eternaleye joined #parrot
01:45 Fayland_logger joined #parrot
01:49 dalek tracwiki: v2 | dukeleto++ | GSOC2009Tasklist
01:49 dalek tracwiki: https://trac.parrot.org/parrot/wiki/GSO​C2009Tasklist?version=2&action=diff
01:49 shorten dalek's url is at http://xrl.us/beje2q
01:55 gryphon joined #parrot
02:01 dalek tracwiki: v3 | dukeleto++ | GSOC2009Tasklist
02:01 dalek tracwiki: https://trac.parrot.org/parrot/wiki/GSO​C2009Tasklist?version=3&action=diff
02:01 shorten dalek's url is at http://xrl.us/beje39
02:15 Andy joined #parrot
02:39 dukeleto joined #parrot
03:36 janus joined #parrot
03:44 rblackwe I am working on the pre-YAPC|10 event, Parrot Virtual Machine Workshop 2009, please email, robert@robertblackwell.com, me if you have interest in helping out, want to sponsor, have wishes of things to see, etc.
03:45 rblackwe If there are people not in #parrot I should ping let me know that too.
03:45 rblackwe Some details brewing here, https://trac.parrot.org/parrot/wiki/Parr​ot%20Virtual%20Machine%20Workshop%202009.
03:45 shorten rblackwe's url is at http://xrl.us/bejffg
03:51 tetragon joined #parrot
03:57 davidfetter joined #parrot
04:51 wayland76 Can anyone tell me whether this is bad practise?     full_path = Parrot_str_append(interp, full_path, ":");
04:51 wayland76 ie. I'm passing in full_path, and storing the return in it
05:41 PerlJam ohhhh..  He'd be the perfect person to "document" the awesome, world changing story of Perl 6.
05:42 PerlJam oops
05:42 TimToady try #perl
05:42 TimToady 6
05:43 wayland76 (unless you're planning to answer my question, above; then feel free to stay and comment :) )
05:43 PerlJam yeah, I need to watch my fingers more closely.  They tend to hit stray key combinations all on their own.
05:43 wayland76 Accident-prone?
05:44 PerlJam there are no accidents.
05:44 wayland76 That depends on how you define accident :)
05:51 dalek parrot: r37372 | pmichaud++ | trunk/compilers/pct/src/PCT/HLLCompiler.pir:
05:51 dalek parrot: [pct]:  Add command_line check to HLLCompiler for execution from Test::Harness
05:51 dalek parrot: and silently exit if this is the case.  This is a temporary hack
05:51 dalek parrot: to make it easier for HLLs in Parrot run tests using Perl 5's
05:51 dalek parrot: Test::Harness system; we expect it to be removed at some point
05:51 dalek parrot: in the not-too-distant future.  (In fact, I expect to be adding
05:51 dalek parrot: a deprecation notice for the hack in the next day or so.  :-)
05:51 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37372/
05:51 wayland76 Btw, does anyone know how to get the path separator in parrot?
05:52 wayland76 I don't want the / or \ one, but the one that separates a PATH environment variable
05:52 wayland76 ie. : on Unix and ; on Windows
05:52 wayland76 This is in the C code in library.c
05:53 wayland76 I'm trying to write a function to display the path
05:53 TiMBuS #ifdef WIN32
05:54 TiMBuS well, thats how i'd do it, there might be some obscure system API to get it
05:57 wayland76 I'm wondering if Parrot has this built in already
06:17 domain joined #parrot
06:52 korshak joined #parrot
06:58 uniejo joined #parrot
07:07 dalek parrot: r37373 | allison++ | trunk/t/native_pbc/header.t:
07:07 dalek parrot: [cage] Reskipping. See TT #357.
07:07 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37373/
07:28 mikehh How's that for a nice palindromic revision number
07:29 mikehh it builds and smolders :-}
07:32 Fayland_logger joined #parrot
07:36 TiMBuS joined #parrot
07:40 allison joined #parrot
07:49 dalek parrot: r37374 | allison++ | trunk/src/pmc/class.pmc:
07:50 dalek parrot: [cage] Reverting patch from TT #321, as it causes OO benchmarks (and tests of
07:50 dalek parrot: those benchmarks) to segfault.
07:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37374/
08:01 wayland76 Ok, I've added a patch to https://trac.parrot.org/parrot/ticket/437
08:01 wayland76 Do I need to do anything else to work towards having my patch applied?
08:03 allison wayland76: thanks, please separate the fix and the addition of the -S flag into separate patches (and file a separate ticket for the -S flag)
08:04 allison wayland76: patches in general should have a single focused purpose
08:04 allison wayland76: and in this case specifically, we might consider applying the fix before 1.0, but the flag will certainly wait until after 1.0, and may take a different form before it's included
08:08 alvar joined #parrot
08:10 masak joined #parrot
08:13 dalek parrot: r37375 | fperrad++ | trunk/config/gen/makefiles/languages.in:
08:13 dalek parrot: Pynie is gone
08:13 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37375/
08:15 wayland76 allison: Ok, that should be done now (the patch separation)
08:24 ujwalic joined #parrot
08:29 Tene joined #parrot
08:33 allison wayland76: thanks!
08:36 wayland76 Let me know if there's anything else
08:37 dalek parrot: r37376 | fperrad++ | trunk/config/gen/makefiles/languages.in:
08:37 dalek parrot: [external language] add Pynie from googlecode
08:37 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37376/
08:41 ujwalic any one has Qt4 installed on your systems
08:42 ujwalic Windows or UNIX
08:42 purl Windows or UNIX is probably fine..
08:43 ujwalic updated example and new example https://trac.parrot.org/parrot/ticket/427
08:43 wayland76 ujwalic: You were right about using LD_LIBRARY_PATH
08:43 ujwalic is it working now
08:43 wayland76 Yes.  I've submitted a patch that adds a new option to parrot to deal with that
08:44 wayland76 But it's not going in to 1.0
08:44 wayland76 ujwalic++ :)
08:45 ujwalic I also needed to test NCI callback .. in order to create a test we need to be able to create a dll using Parrot::Test
08:46 ujwalic on windows NCI callbacks are not working ... any help
08:49 dalek parrot: r37377 | allison++ | trunk/ext/Parrot-Embed/lib/Parrot (3 files):
08:49 dalek parrot: [cage] Fix missing comma in copyright statements.
08:49 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37377/
08:53 dalek parrot: r37378 | allison++ | trunk/examples/pir/befunge​/config/makefiles/root.in:
08:53 dalek parrot: [cage] Add missing copyright statement.
08:53 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37378/
08:57 dalek parrot: r37379 | allison++ | trunk/docs/user/pir/exceptions.pod:
08:57 dalek parrot: [cage] Fix line-length for coding standards tests.
08:57 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37379/
09:01 dalek parrot: r37380 | rurban++ | trunk/t/native_pbc (3 files):
09:01 dalek parrot: [cage] harmonize docs and user-messages
09:01 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37380/
09:01 ujwalic allison: any plan to clean the warnings while building parrot
09:02 allison ujwalic: yes, as many as possible. If you review and find fixes, please submit
09:02 ujwalic core.ops:920        /* PMC     *resume    = */ new_ret_continuation_pmc(interp, ret);
09:02 ujwalic I see many unused variables
09:03 ujwalic and unreachable code
09:03 purl unreachable code is, like, omitted
09:03 allison ujwalic: could you submit a ticket?
09:04 ujwalic sure .. I'll submit patch :)
09:04 allison ujwalic: include the text of the warnings, your platform, and suggested fix (if you have suggestions)
09:04 allison ujwalic: patch is always great :)
09:21 dalek parrot: r37381 | allison++ | trunk/docs/user/pir/exceptions.pod:
09:21 dalek parrot: [cage] Setting SVN file metadata properties on exceptions user doc for coding standards tests.
09:21 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37381/
10:40 Ademan joined #parrot
11:04 ruoso joined #parrot
11:19 bacek joined #parrot
11:45 ujwalic_ joined #parrot
12:11 dalek rakudo: 88b6c25 | jnthn++ | src/classes/Role.pir:
12:11 dalek rakudo: Various fixes to using roles as type constraints. Resolves at least RT#62966.
12:11 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​8b6c255198018c6cc1450e81ae53d7b9a97133c
12:11 shorten dalek's url is at http://xrl.us/bejf3d
12:25 korshak left #parrot
12:33 rg1 joined #parrot
13:14 gryphon joined #parrot
13:27 wayland76 joined #parrot
13:39 DietCoke joined #parrot
13:39 AndyA joined #parrot
13:43 dalek rakudo: 76b2652 | jnthn++ |  (3 files):
13:43 dalek rakudo: A bunch of multi-related changes. Perl6MultiSub is now mapped to Multi, so .WHAT works (spectest added, needs to make it into the specification but seems to have consensus on #perl6). Also defined .candidates, which has similar consensus, and .push which allows constructing a multi on-the-fly.
13:43 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​6b2652ffc541a17bdfbf2bf073362e7a5451ec3
13:43 shorten dalek's url is at http://xrl.us/bejgbb
13:50 dalek parrot: r37382 | fperrad++ | trunk/tools/install/smoke_languages.pl:
13:50 dalek parrot: [install] check befunge (partial revert of r37264)
13:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37382/
13:58 dalek parrot: r37383 | fperrad++ | trunk/MANIFEST.generated:
13:58 dalek parrot: [install] many languages are gone
13:58 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37383/
14:07 particle joined #parrot
14:47 particle2 joined #parrot
15:04 rdice joined #parrot
15:14 dalek rakudo: 4be7d28 | pmichaud++ | docs/spectest-progress.csv:
15:14 dalek rakudo: spectest-progress.csv update: 317 files, 7160 passing, 4 failing
15:14 dalek rakudo: Failure summary:
15:14 dalek rakudo:     S06-multi/syntax.t aborted 1 test(s)
15:14 dalek rakudo:     S12-role/basic.t 27 - attributes typed as roles initialized OK
15:14 dalek rakudo:     S12-role/basic.t 28 - typed attribute accepts things it should
15:14 dalek rakudo:     S12-role/basic.t 29 - typed attribute accepts things it should
15:14 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​be7d289c50bdcdc99c4fd9bdba5a8b46432ef7a
15:14 dalek rakudo: f6449a4 | jnthn++ | src/ (2 files):
15:14 shorten dalek's url is at http://xrl.us/bejgmm
15:14 dalek rakudo: Minor refactor of method dispatch so we can better handle foreign objects from outside Rakudo, as suggested by pmichaud++.
15:14 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​6449a477023db15fce095e484d0a8ca30a94856
15:14 shorten dalek's url is at http://xrl.us/bejgmo
15:14 dalek rakudo: 7abaea2 | pmichaud++ | src/ (2 files):
15:14 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
15:14 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​abaea26f1551edbae71351d0189dc6917212a83
15:14 shorten dalek's url is at http://xrl.us/bejgmq
15:15 * Coke wishes he had try/catch/finally in p5.
15:15 Theory joined #parrot
15:34 Patterner joined #parrot
15:45 korshak joined #parrot
15:47 dalek rakudo: cdd3e7d | jnthn++ | src/pmc/perl6multisub.pmc:
15:47 dalek rakudo: The multi-dispatcher had an off-by-one that caused it not to enforce contraints if there was no tie-breaking needed. The rest of the patch makes sure we don't put stuff in the MMD cache that we should not (if there's a constraint, we can't use the nominal-type-based cache). Resolves RT#63812.
15:47 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​dd3e7d44d0f407c34ff00658e8ed9875830c3f5
15:47 shorten dalek's url is at http://xrl.us/bejgra
15:47 dalek rakudo: e8a8fb6 | jnthn++ | docs/spectest-progress.csv:
15:47 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
15:47 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​8a8fb6d5a23e42b2e50dd8c0574548835acacb2
15:47 shorten dalek's url is at http://xrl.us/bejgrc
15:50 Tene joined #parrot
16:10 rg coke: do you know Error.pm ?
16:10 purl Error.pm is lovely. AxKit uses it, I believe. or now owned/maintained by shlomi f, so BE CAREFUL!
16:11 rg aha. thanks purl :)
16:12 allison rg: occasionally, purl is actually useful :)
16:13 rg i know. and most of the time it's at least funny :)
16:21 Util purl, seen bernhard?
16:21 purl bernhard was last seen on #parrot 1 years, 282 days, 22 hours, 59 minutes and 42 seconds ago, saying: is having mail troubles  [Jun  4 17:20:53 2007]
16:23 skv_ joined #parrot
16:26 rblackwe_ joined #parrot
16:33 dalek rakudo: 3797055 | pmichaud++ | docs/spectest-progress.csv:
16:33 dalek rakudo: spectest-progress.csv correction: 317 files, 7152 passing, 2 failing
16:33 dalek rakudo: Failure summary:
16:33 dalek rakudo:     S12-methods/instance.rakudo aborted 2 test(s)
16:33 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​797055f4b77e7156d890f3b183148cf35e2929a
16:33 shorten dalek's url is at http://xrl.us/bejgwy
16:34 korshak left #parrot
16:34 dalek tracwiki: v6 | allison++ | Parrot%20Virtual%20Machine%20Workshop%202009
16:34 dalek tracwiki: https://trac.parrot.org/parrot/wiki/​Parrot%20Virtual%20Machine%20Worksho​p%202009?version=6&action=diff
16:34 shorten dalek's url is at http://xrl.us/bejgxa
17:18 geof joined #parrot
17:25 barney joined #parrot
17:31 dalek tracwiki: v7 | allison++ | Parrot%20Virtual%20Machine%20Workshop%202009
17:31 dalek tracwiki: https://trac.parrot.org/parrot/wiki/​Parrot%20Virtual%20Machine%20Worksho​p%202009?version=7&action=diff
17:31 shorten dalek's url is at http://xrl.us/bejg7a
17:32 jonathan allison: ping
17:32 allison jonathan: yup?
17:32 purl somebody said yup was Yellow Dog Linux's update manager.
17:32 jonathan allison: Hi! :-)
17:32 jonathan I'm working on .leave stuff for Perl 6.
17:32 allison jonathan: hi
17:32 purl que tal, allison.
17:32 jonathan We already have most pieces it seems, which is good.
17:33 allison excellent
17:33 jonathan Like, through ParrotInterpreter I can get at the return continuation of the block I want to leave.
17:33 jonathan And it (correctly as I can see) promotes it to a full continuation.
17:33 jonathan And then I can do the_cont(arg1, arg2)
17:33 jonathan To specify the return values
17:33 jonathan And it passes them. However, one quirk I found.
17:34 jonathan It passes them in "passing mode" rather than "returning mode"
17:34 jonathan That is, normally if you .return ($P0) and the place you're returning to didn't expect a return value, it will drop the $P0
17:35 jonathan However, the_cont($P0) where the thing being returned to didn't expect a $P0 in this case, gives a passing error.
17:35 jonathan I noticed in continuation.pmc
17:35 jonathan parrot_pass_args(INTERP, from_ctx, to_ctx,
17:35 jonathan src_indexes, dest_indexes, PARROT_PASS_PARAMS);
17:35 jonathan As opposed to PARROT_PASS_RESULTS
17:36 jonathan Is this a design decision that it's using the params rather than results behavior?
17:36 jonathan And any suggestions?
17:36 purl any suggestions are welcome.  (including ripping it out entirely :))
17:39 jonathan (I will note that I did try changing it to PARROT_PASS_RESULTS and it does give the behaviour I want. I just don't know whether it's a correct change.)
17:40 dalek parrot: r37384 | barney++ | trunk/t/pmc/fixedpmcarray.t:
17:40 dalek parrot: [t] a more sensible code comment
17:40 dalek parrot: Util++ for spotting this.
17:40 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37384/
17:44 allison jonathan: results are params
17:44 allison jonathan: that is, a return is just an invocation of a continuation
17:45 allison well, let me take a step back
17:46 allison that PARROT_PASS_PARAMS and PARROT_PASS_RESULTS has nothing to do with the semantic quality of passing arguments and results
17:46 allison it has everything to do with whether values are being copied into or out of registers
17:47 jonathan It does also influence whether you get errors about too many arguments having been passed.
17:48 allison jonathan: well, one is signature checked, the other isn't
17:48 jonathan Right.
17:48 jonathan That is the thing that is tripping me up.
17:48 jonathan Because I'm invoking a continuation - a promoted return continuation - and wanting the unchecked semantics.
17:49 jonathan And continuation.pmc is giving me the checked ones.
17:49 jonathan I agree with you that beyond this difference, there are no further semantic differences though.
17:50 Coke rg: I did find error.pm (and exception.pm) after a quick google; I ended up just using eval for now.
17:50 jonathan (The fact that if I switch Continuation to do the unchekced one in the continuation PMC I get no Parrot test failures, and it resolves my issue, further suggests that, plus it agrees with what I know of the code...)
17:51 allison jonathan: but not all Continuations are return continuations, and you can't switch off signature checking for all Continuation invocations
17:52 jonathan Right, thus why I didn't want to do that. :-)
17:52 allison (that's one of the reasons return continuations are different)
17:52 jonathan Just tried the change to determine that is specifically what I'm running against.
17:52 jonathan Yeah, but the retcont is promoted to a continuation by the time I get to invoke it.
17:53 allison which is the real problem
17:53 jonathan Yes and no.
17:53 allison the fact that we need to promote return continuations at all
17:54 jonathan I think it may need to be for safety.
17:54 jonathan But also because if it was not and I invoked it, then that invocation does not call pass_args
17:54 allison it's a hack around a hack
17:54 jonathan And I can't just set_returns because that sets the returns for the curernt thingy, not the one I want to pretend I'm returning from.
17:55 allison yes, it is the only way you can do it currently
17:55 allison but, it needs work
17:55 allison later
17:56 allison so, what can you do now to work around it?
17:56 jonathan OK, but it actually doesn't *quite* work for me. That's the issue.
17:56 jonathan I'm rather stuck for ideas. :-(
17:56 allison can you define a signature for the continuation that matches what you need to pass it?
17:56 jonathan Well, the thing is, I have no way of knowing what I am expected to pass.
17:57 allison you know what you are passing
17:57 jonathan sub foo() { &BLOCK.leave(42) }
17:57 jonathan my $x = foo(); # this works just fine
17:57 jonathan foo(); # but this one would not
17:57 jonathan The thing is I have no way of knowing in leave when I invoke the ret continuation, what I am expected to pass.
17:57 allison but essentially those are two different signatures
17:58 jonathan Right, but I have no way of knowing that in leave.
17:59 jonathan I can't know wether results are going to be ignored or not by the caller.
17:59 jonathan I don't have a way to introspect what it is expecting so I can do something dependent upon that.
17:59 allison you should have access to that information, to implement "wants"
17:59 jonathan And if I pass the 42 and nothing is expected, the signature checking fails.
18:00 jonathan Well, we have the resultinfo op.
18:00 jonathan But that doesn't help here.
18:00 jonathan Because it only allows access to the info about the caller of the thing we are currently executing.
18:00 jonathan As in, info about what return values it expects.
18:01 jonathan For CALLER.leave for &foo.leave it won't cut it.
18:01 allison what we really need is to be able to "promote" return continuations without changing them to full continuations
18:02 allison that is, they shouldn't take on the signature checking characteristic when they become fully-invokable
18:02 jonathan a "$P0 = resultinfo $P1" form of the op where $P1 is a sub whose context and thus expected resuts can be obtained would be enough in some senses.
18:02 jonathan That is a more desirable option.
18:02 jonathan (what you suggested is more desirable)
18:04 jonathan typedef struct Parrot_cont could be given a "no_signature_check" flag.
18:04 allison how tough would it be to embed that logic within the return continuation PMC? that is, if it's flagged as "invocable" it enables some behavior that's otherwise disabled?
18:04 jonathan If you add a flag like that it's trivial
18:04 allison So, "promotion" becomes "set a flag"
18:04 jonathan Oh
18:05 jonathan in the return cont PMC
18:05 jonathan erm
18:05 jonathan Hmm.
18:06 allison the other possibility would be to do away with return continuations entirely and just have Continuations flagged as "return"
18:06 allison that is, one PMC rather than two
18:06 jonathan Perhaps. I'm hazy on the when-we-need-to-promote-and-why stuff.
18:07 jonathan In my case, it's RetContination's clone vtable meth that is producing a true continuation.
18:07 jonathan Which is in turn called by ParrotInterpreter PMC when I ask for the continuation.
18:08 jonathan Which makes sense, becaue if the continuation just became available at a PIR level we can't control what happens to it, so for safety it needs to become a full cont, as far as I understand.
18:09 Tene jonathan: are you trying to work on LABEL.leave and friends?
18:09 allison at a fundamental design level, all continuations should always be invokable
18:10 jonathan Tene: No, just &sub.leave
18:10 jonathan Tene: We don't do labels in Rakudo yet.
18:11 Tene jonathan: can you show me an example use of what you're implementing?
18:12 jonathan Tene: In Perl 6?
18:12 Tene Yes.
18:12 jonathan A simple case: sub foo { &foo.leave(42) 43 }; say foo(); # 42
18:12 jonathan Tene: But it's not like return because it works on a block.
18:12 jonathan So
18:13 jonathan my $x -> { &?BLOCK.leave(42); 42 }; say $x(); # 42
18:13 jonathan But also CALLER.leave(42) # leaves the block that called this one
18:13 jonathan And &foo.leave(42) # leaves the most recent invocation of foo
18:14 jonathan See also t\spec\S04-statements\leave.t for more.
18:15 Tene Wait, most-recent?
18:15 Tene so you could say: $x = foo(); say $x; &foo.leave(23); and it would loop?
18:15 jonathan I think it has to have an active call frame.
18:16 jonathan to quote spec
18:16 jonathan &foo.leave: 1,2,3;          # Return from innermost surrounding call to &foo
18:16 jonathan Ah, so I guess that means lexically surrounding.
18:16 Tene My plan for implementing that was a control_leave exception type, and put an indication of which block you were trying to leave in the payload, along with the capture you're returning, if any.
18:17 jonathan Hmmm
18:17 dalek tracwiki: v8 | rblackwe++ | Parrot%20Virtual%20Machine%20Workshop%202009
18:17 Tene then generate handlers for the blocks that catch control_return, inspect the block that was specified, if any, and then return the capture if it's for them (or not specified)
18:17 dalek tracwiki: https://trac.parrot.org/parrot/wiki/​Parrot%20Virtual%20Machine%20Worksho​p%202009?version=8&action=diff
18:17 shorten dalek's url is at http://xrl.us/bejhfv
18:17 Tene I got a basic impl. of it working a few months back.
18:17 jonathan Hmm. That's a possible, but means attaching stuff to every block. When we already have the return continuation readily invokable, that seems a tad wasteful.
18:18 jonathan But it's not wrong either...
18:18 Tene I wonder if a CONTROL{} would catch a leave.
18:18 Tene Is that specced?
18:18 * Tene prods TimToady.
18:19 Tene where are you getting the appropriate return continuation from?  digging up the call stack looking for &foo?
18:19 jonathan I don't see anything in the bit of S06 I'm currently looking at saying that...
18:20 jonathan Well, at the moment I was mostly caring about doing this for CALLER - I had a specific need. ParrotInterpreter lets you get at the caller's return continuation.
18:20 Tene I thought it was implied by CONTROL{} catching return().
18:20 jonathan Yeah, in that case we would have to do it as an exception then...
18:21 Tene jonathan: would that work for lexically nested blocks?  sub foo { for 1..10 { &foo.leave($i) } } ?
18:21 jonathan Apart from I see no $i declared ;-)
18:21 jonathan But I think so, yes.
18:21 Tene The inner block's caller, from the parrot perspective, would be the body of foo()
18:21 Tene so how do you know how many callers to go back?
18:22 jonathan I'm not quite following
18:22 jonathan That would leave the current invocation of foo
18:22 Tene with ParrotInterpreter.
18:22 jonathan Oh, I see
18:22 jonathan ParrotInterpreter won't cut it in that situation.
18:23 jonathan Oh, it would
18:23 jonathan You'd also have to step back through the subs though
18:23 jonathan And compare those.
18:23 jonathan Alternatively, the Sub PMC would have a get_continuation method.
18:23 jonathan Or a dynop. ;-)
18:37 Tene jnthn: if you need to call LEAVE and friends anyway, my inclination is that it's better to leave that to the block itself and just pass an exception around.
18:39 jonathan Aye.
18:39 jonathan I can buy that one.
18:39 jonathan Plus it means I can push the task of implementing .leave onto your plate. <grin>
18:39 Tene But, I do have an "exceptions can do EVERYTHING" bias.
18:39 jonathan ;-)
18:41 Tene ... ><
18:41 Tene You need it soon?
18:41 Infinoid if everything is an exception, then we should rename them to rules :)
18:41 Tene I'm also curious what you're needing it for.
18:41 jonathan Tene: It's not urgent, but it'd be nice to have.
18:42 jonathan I want to fix a bug involving auto-threading of junctions, believe it or not. :-)
18:42 jonathan And .leave is the neat way to do it.
18:43 jonathan Plus .leave is needed at some point anyway...
18:44 Tene The only part I'm unsure of is how to do the comparison.  If the sub itself is passed, what does the generated code to compare to itself look like?
18:45 jonathan Well, .leave is a method on a block, so self is the thing you're looking for.
18:46 jonathan Would PMC address equality cut it, maybe?
18:46 jonathan Hm...maybe not...
18:46 Tene jonathan: that's how i get the block to *pass*.
18:48 * Tene pastes:
18:48 jonathan Tene: Sorry, I'm not quite following.
18:48 nopaste "tene" at 67.137.148.146 pasted "Example leave exception handler" (5 lines) at http://nopaste.snit.ch/15875
18:49 Tene What goes in the ... ?
18:49 Tene ohright, I can get the current sub from the interp, I think.
18:49 jonathan A call to interpinfo to get the current sub?
18:50 Tene Right.
18:50 jonathan Or instantiate ParrotInterpreter PMC and it's that_instance['sub'] I think.
18:50 Tene Then it's just about the equality comparison.  I can worry about that later, though.
18:50 Tene $realjob now
18:50 jonathan OK, cool
18:50 jonathan Thanks for the input, and in advance for any patches you work up!
18:50 jonathan Tene++
18:59 Coke bunce?
18:59 Coke tim bunce?
18:59 purl i heard tim bunce was using it for DBI.
18:59 Coke forget tim bunce
18:59 purl Coke: I forgot tim bunce
19:00 alvar joined #parrot
19:00 Coke anyone know if tim is on IRC?
19:06 Coke GAH. tim wants me to write XS!?
19:06 * Coke shudders.
19:07 allison poor Coke
19:08 szbalint %win 4
19:09 szbalint nm
19:16 mikehh rakudo (3797055) on parrot r37384 builds make test make spectest PASS - t/spec/S02-literals/sub-calls.rakudo: TODO passed 16.
19:18 mikehh thats on Kubuntu Intrepid i386
19:18 Coke (XS) I've never touched XS before. Perhaps I should just give up now before I become... infected.
19:20 Infinoid (XS) I don't think it's "addictive" in any way, but it should be avoided on general principles
19:20 Coke t/codingstd/copyright.t is temporarily passing a TODO test; I'm about to properly re-break that.
19:26 allison Coke: should we just delete the nanoforth example? It uses a 'compile' opcode that doesn't exist anymore, and because the example is 'jsr'-based it can't invoke a real Parrot sub/method to substitute for the opcode
19:27 dalek parrot: r37385 | coke++ | trunk (17 files):
19:27 dalek parrot: Make the copyright test properly fail on the dual (C) files from chromatic.
19:27 dalek parrot: - convert the string based RE to a qr//;
19:27 dalek parrot: - change the RE slightly to help avoid trailing text.
19:27 dalek parrot: - fixup the comments in a few other files to avoid issues there.
19:27 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37385/
19:31 dalek parrot: r37386 | allison++ | trunk/examples/sdl (5 files):
19:31 dalek parrot: [sdl] Update the SDL examples to use get/set_hll_global instead of
19:31 dalek parrot: find/store_global so they'll at least compile and pass the 'catchall'
19:31 dalek parrot: example test.
19:31 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37386/
19:32 Coke allison: yes.
19:33 Coke IMO, we have more important things to worry about right now than making really old examples work.
19:35 dalek parrot: r37387 | coke++ | trunk/t/codingstd/copyright.t:
19:35 dalek parrot: [t] make copyright test fail on duplicate copyright notices.
19:35 dalek parrot: (Catches those with multiple actual Copyrights, like Melvin's, and also
19:35 dalek parrot: those that just have 2 copies of the parrot one.)
19:35 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37387/
19:39 dalek parrot: r37388 | allison++ | trunk (3 files):
19:39 dalek parrot: [cage] Eliminating nanoforth examples that are too far out-of-date to be worth recovering.
19:39 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37388/
19:40 Coke Some of those failures in test 3 of t/codingstd/copyright.t are just duplicates and can be easily fixed.
19:41 Whiteknight joined #parrot
19:41 Coke Bah. now I find one that legitimately has multiple parrot copyrights (a file generator)
19:44 dalek parrot: r37389 | coke++ | trunk/t/codingstd/copyright.t:
19:44 dalek parrot: [t] avoid duplication, better var name, better suggested action to resolve test.
19:44 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37389/
19:48 dalek parrot: r37390 | allison++ | trunk/ports/debian/copyright:
19:48 dalek parrot: [debian] Remove copyright exception for languages that don't exist
19:48 dalek parrot: anymore.
19:48 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37390/
20:06 dalek parrot: r37391 | allison++ | trunk (2 files):
20:06 dalek parrot: [cage] Remove I/O examples too out-of-date to be worth recovering (they weren't
20:06 dalek parrot: very good even when they did work).
20:06 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37391/
20:16 dalek parrot: r37392 | Util++ | trunk/src/jit (7 files):
20:16 dalek parrot: [jit] Typo corrections
20:16 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37392/
20:17 donaldh joined #parrot
20:20 dalek parrot: r37393 | Util++ | trunk (17 files):
20:20 dalek parrot: [pmc] Typo corrections
20:20 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37393/
20:37 gryphon_ joined #parrot
20:55 allison Tene/pmichaud: ping
21:17 jonathan allison: Anything against a patch to provide get_iter and get_pmc_keyed on LexInfo so we can see what symbols are defined in lexical scopes?
21:17 jonathan allison: Ah, apparently there are tests somewhere according to an RT ticket for it too...
21:18 allison jonathan: would rather use the 'inspect' interface
21:18 jonathan allison: OK. What would that look like?
21:19 jonathan rpa = inspect lexinfo, "symbols" ?
21:19 dalek parrot: r37394 | allison++ | trunk/t/examples/catchall.t:
21:19 dalek parrot: [cage] Skip catchall tests that either can never work, or can't reliably
21:20 dalek parrot: work because of platform variances they can't check.
21:20 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37394/
21:20 allison jonathan: that works
21:20 jonathan allison: Awesome, will do it.
21:29 Tene allison: pong
21:30 Limbic_Region joined #parrot
21:36 dalek parrot: r37395 | fperrad++ | trunk (3 files):
21:36 dalek parrot: [languages] remove some language references
21:36 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37395/
21:39 allison Tene: do you know if deleting cardinal now will make it more difficult to migrate to github?
21:40 Tene allison: it's already been migrated.
21:40 allison Tene: oh, and the files were just left?
21:40 Tene yes
21:40 allison Tene: okay, I'll go ahead and commit
21:41 allison Tene: thanks!
21:41 Tene allison: thank you!
21:47 dalek parrot: r37396 | allison++ | trunk/examples/shootout (2 files):
21:47 dalek parrot: [cage] Don't force the runcore on examples, so they can be tested in fulltest.
21:47 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37396/
21:50 Debolaz joined #parrot
21:52 dalek parrot: r37397 | allison++ | trunk (10 files):
21:52 dalek parrot: [cage] Removing all remaining languages from the repository.
21:52 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37397/
21:58 dalek parrot: r37398 | allison++ | trunk/examples/shootout (3 files):
21:58 dalek parrot: [cage] Don't ship old versions of the Python benchmark code in Parrot (the
21:58 dalek parrot: latest version are on Alioth).
21:58 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37398/
22:04 dalek parrot: r37399 | allison++ | trunk/MANIFEST:
22:04 dalek parrot: [cage] Removing python shootout code from the repository.
22:04 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37399/
22:27 ruoso joined #parrot
22:51 dalek rakudo: 519b873 | jnthn++ | src/ (2 files):
22:51 dalek rakudo: Avoid using a null PMC in param describing data structure, and use an undef instead; it only invites null PMC exceptions (as in RT#63570).
22:51 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​19b8737281f8fc4999ae32c4fe9e690fe331f31
22:51 shorten dalek's url is at http://xrl.us/bejiin
22:51 dalek rakudo: 41267fd | jnthn++ | docs/spectest-progress.csv:
22:51 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
22:51 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​1267fdc19291adbf10504372f89773579f00f1e
22:51 shorten dalek's url is at http://xrl.us/bejiip
23:06 dalek parrot: r37400 | allison++ | trunk/DEPRECATED.pod:
23:06 dalek parrot: [cage] Blanket deprecation notice for C API functions.
23:06 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37400/
23:11 GeJ Good morning everyone
23:11 cotto morning, GeJ
23:17 Tene Hi!
23:37 Debolaz joined #parrot
23:37 skv joined #parrot
23:38 bsdz joined #parrot
23:38 omega joined #parrot
23:40 baest joined #parrot
23:56 dalek parrot: r37401 | allison++ | trunk/examples/shootout (9 files):
23:56 dalek parrot: [cage] Don't force the runcore on the shootout examples, as some
23:56 dalek parrot: platforms don't support some runcores.
23:56 dalek parrot: review: https://trac.parrot.org/parrot/changeset/37401/

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

Parrot | source cross referenced