Camelia, the Perl 6 bug

IRC log for #parrot, 2009-07-30

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 (e.g. attributes)
00:01 jonathan Alternatively, lexical scopes and context vars may render it a non-issue also.
00:03 MikHel jonathan: I was thinking of an approach whereby you would recursively go down the past tree when constructing the top level object (for example a method).
00:04 MikHel jonathan: But then I have not understood yet the subtelties of the lexical scopes and context. Have to delve into that :)
00:07 bacek_at_work hi again
00:07 purl oh, you're back!
00:09 jonathan MikHel: Some of it is, I believe, fixed up during the PAST -> POST trnasformation.
00:10 dalek decnum-dynpmcs: r134 | darbelo++ | trunk/aux/decTest/cfg/Makefile.in:
00:10 dalek decnum-dynpmcs: This line is generating errors from Configure.pl, and it doesn't serve any
00:10 dalek decnum-dynpmcs: purpose on the platforms I'm developing under.
00:10 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=134
00:20 dalek decnum-dynpmcs: r135 | darbelo++ | trunk/t/ (4 files):
00:20 dalek decnum-dynpmcs: Add our first batch of decTest generated tests.  We fail 184 out of 3840, but it
00:20 dalek decnum-dynpmcs: looks like it's the library's fault.
00:20 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=135
00:26 dalek parrot: r40327 | whiteknight++ | branches/io_cleanups/src/pmc/handle.pmc:
00:26 dalek parrot: [io_cleanups] fix a weird pod bug that was breaking the build
00:26 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40327/
00:27 Coke Whiteknight: poing
00:29 Whiteknight Coke: the TPF grants thing closes on friday, right?
00:31 cotto darbelo, ping
00:33 darbelo cotto: pong
00:33 cotto darbelo, have you verified that the failing tests are caused by the library rather than by the PMC or Parrot?
00:34 cotto s/\?/ code?/
00:34 cotto It's odd that the code would fail its own tests.
00:35 darbelo I'm working on it. It's really tedious, as I have to check case by case.
00:35 cotto Yeah.
00:35 cotto For the commit message it sounded like you were just blowing off the failures.
00:36 cotto I can help parallelize if you like.
00:38 nopaste "darbelo" at 200.49.154.172 pasted "Here's an example of what I'm using to check the failures." (27 lines) at http://nopaste.snit.ch/17432
00:38 cotto That's what I'd do.
00:39 dalek parrot: r40328 | whiteknight++ | branches/io_cleanups/t/pmc/handle.t:
00:39 dalek parrot: [io_cleanups] the Handle PMC type is instantiable right now (whether that's a good thing or not) so we shouldn't be testing to prove that it isn't instantiable
00:39 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40328/
00:40 * kid51 svn ups in io_cleanups branch for first time in weeks
00:41 darbelo I'm not doing anything with multiply.t right now, so feel free to look at those as beredom strikes you. I'll get to them eventually otherwise.
00:43 cotto ok.  That's only 7 failures.
00:43 cotto nm.  It throws an exception.
00:44 darbelo exception? where?
00:44 purl exception is from Email.pm not that code
00:44 cotto It'd be nice if the test failures printed the name of the failing test.
00:44 cotto Invalid number of digits provided!
00:44 cotto multiply.t
00:44 darbelo the new ones do, actually. But you have to prove -v t/testfile.t to see it.
00:46 mikehh_ joined #parrot
00:46 cotto good thing you told me that before I tried to add it myself
00:47 darbelo Besides, now that I look at it I see that it's not a test that's failing.
00:48 darbelo The test file has test for numbers with more difits than we support right now.
00:48 cotto how are you marking tests TODO?
00:48 cotto japhb++ for the library suggestions
00:49 japhb cotto: thanks!
00:50 darbelo cotto: I'm not. I haven't checked if test_more.pir has a way to.
00:51 darbelo s/to./to do that./
00:57 darbelo Also, there is a comment in t/data/multiply.decTest right before the failing tests that says:
00:58 darbelo "following testcases [through mulx800] not yet run against code"
00:58 darbelo So I'm ripping those tests out of the file for now. Wait for the commit
00:59 cotto Nice.
01:02 bacek joined #parrot
01:04 darbelo There. 11 failures in the file, but now it runs to completion.
01:06 darbelo svn up to r137 and you're good to go.
01:06 dalek decnum-dynpmcs: r136 | darbelo++ | trunk/t/multiply.t:
01:06 dalek decnum-dynpmcs: Remove some multiplication test that can only fail.
01:06 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=136
01:09 hiroyuk__ joined #parrot
01:11 dalek decnum-dynpmcs: r137 | darbelo++ | trunk/t/multiply.t:
01:11 dalek decnum-dynpmcs: Oops forgot to adjust the plan().
01:11 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=137
01:12 Whiteknight japhb?
01:12 purl somebody said japhb was Geoffrey Broadwell, mailto:geoff@broadwell.org
01:12 japhb I be here
01:12 Whiteknight oh, I just wanted to make sure that you == Geoff Broadwell
01:13 japhb ah
01:16 kid51 Whiteknight:  Am getting one test failure in io_cleanups
01:16 kid51 http://smolder.plusthree.com/app/pu​blic_projects/report_details/25685
01:17 Whiteknight kid51: yeah, we're working on that one right now
01:17 Whiteknight once that gets fixed I think we can merge to trunk
01:18 kid51 cool
01:18 samlh joined #parrot
01:23 mokurai1 joined #parrot
01:24 nopaste "samlh" at 99.144.113.17 pasted "tiny patch for html docs css" (11 lines) at http://nopaste.snit.ch/17433
01:24 samlh Hello, long-time lurker here. I was reading the html documentation, and made a small patch for the css. Thoughts?
01:28 kid51 samlh:  Can you show us what this looks like 'before' and 'after'?  Links?
01:30 kid51 (patch seems reasonable, but it's been years since I looked at CSS)
01:32 kid51 My last Smolder report didn't display the branch ( which was io_cleanups ).
01:32 kid51 Am testing a patch to Parrot::Harness::Smoke which should alleviate that.
01:33 samlh 1 min
01:37 samlh http://samlh.nfshost.com/foo/ht​ml/docs/pdds/pdd17_pmc.pod.html versus http://docs.parrot.org/parrot/lates​t/html/docs/pdds/pdd17_pmc.pod.html
01:37 samlh see especially the list of vtable entries
01:37 nopaste "darbelo" at 200.49.154.172 pasted "cotto: does this look sane to you?" (15 lines) at http://nopaste.snit.ch/17434
01:38 Infinoid samlh++
01:38 kid51 hmm, both versions taking long time to load.
01:39 kid51 Ahh, it's Verizon, of course.
01:39 darbelo msg cotto That nopaste is the sanest way I can think of TODOing tests so that we'll know if they ever start spontaneously PASSing. Let me know what you think about it.
01:39 purl Message for cotto stored.
01:39 Infinoid the difference is evident in the list of modifiers under Defining PMCs, too.  Looks nice
01:40 darbelo With that done, I'm going to find some food.
01:40 samlh Infinoid: thanks!
01:42 cotto Hmmm.  I don't like the idea of modifying generated code.
01:44 dalek parrot: r40329 | jkeenan++ | trunk/docs/resources/parrot.css:
01:44 dalek parrot: [docs] Applying patch refining CSS contributed by samlh++.
01:44 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40329/
01:44 kid51 samlh:  See CREDITS in top-level of distro.  You are now eligible to add your data there; post patch.
01:45 kid51 And speaking of CREDITS ... does anyone know the status of (allison's) efforts to determine who is a member of the Parrot Foundation and eligible for voting?
01:50 dalek parrot: r40330 | jkeenan++ | branches/io_cleanups/lib/Parrot/Harness/Smoke.pm:
01:50 dalek parrot: [testing] Improve regex used to identify repository branches in preparing smoke reports.
01:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40330/
01:50 dalek parrot: r40331 | jkeenan++ | trunk/lib/Parrot/Harness/Smoke.pm:
01:50 dalek parrot: [testing] Improve regex used to identify repository branches in preparing smoke reports.
01:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40331/
01:51 samlh kid51: ok, thanks! This is awesome...
01:51 nopaste "samlh" at 99.144.113.17 pasted "Credits patch" (15 lines) at http://nopaste.snit.ch/17435
01:57 dalek parrot: r40332 | jkeenan++ | trunk/CREDITS:
01:57 dalek parrot: First squawk of the Parrot for Samuel Harrington.
01:57 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40332/
01:59 samlh :)
02:00 Andy joined #parrot
02:01 bacek_at_work TapTinder?
02:01 purl i think TapTinder is software development tool - http://taptinder.org . For Parrot project running on http://tt.perl6.cz/ and reporting build failures to #parrot channel as ttbot.
02:07 * kid51 must sleep
02:07 purl $kid51->sleep(8 * 3600);
02:17 jdv79 left #parrot
02:19 nopaste joined #parrot
02:28 wayland76 joined #parrot
02:32 nopaste "samlh" at 99.144.113.17 pasted "similar patch, fixes spacing in html documentation" (13 lines) at http://nopaste.snit.ch/17436
02:32 samlh Sorry, just tweaked it a little more to improve the spacing. old: http://samlh.nfshost.com/foo/ht​ml/docs/pdds/pdd17_pmc.pod.html / new: http://samlh.nfshost.com/foo2/ht​ml/docs/pdds/pdd17_pmc.pod.html . Again, the functions listing shows improvement. Thanks!
02:42 janus joined #parrot
02:45 magnachef joined #parrot
02:55 tetragon joined #parrot
03:38 wayland76 joined #parrot
03:50 samlh joined #parrot
03:54 dalek TT #890 created by satrac++: build failed on intel mac osx 10.5
03:57 treed Oh?
04:06 dukeleto joined #parrot
04:07 TiMBuS joined #parrot
04:33 wayland76 Does anyone know how close protoregexes and LTM are?
04:34 cotto pmichaud does.
04:34 cotto if anyone does
04:36 wayland76 Right.  But he's afk, according to #perl6.  Thanks though.
04:38 cotto My impression is that it hasn't gotten a definite spot on his schedule.
04:38 cotto I'm really looking forward to profiling.
04:39 cotto It's nice to be excited about something and actually able to act on it.
04:39 sbluen joined #parrot
04:40 sbluen left #parrot
04:41 wayland76 Well, pmichaud predicted that it'd be ready by the end of summer.  He predicted Northern summer (ie. at least September), but being an Australian, I predict Southern summer (ie. February) :)
04:42 cotto before Christmas
04:42 purl but after lunch.
04:43 wayland76 Well, when we discussed it, I figured we were about half done, and had missed our deadline by maybe 8 months (this was in maybe June), so I just added another 8 months :)
04:44 wayland76 purl: seen allison?
04:44 purl allison was last seen on #parrot 1 days, 9 hours, 56 minutes and 44 seconds ago, saying: (and expanding from there)  [Jul 28 18:42:29 2009]
04:47 Coke cotto++ # profiling is desperately needed.
04:47 pmichaud protoregexes will be very soon
04:48 pmichaud we need them in order to be able to support the other PGE improvements
04:48 dukeleto has anyone ever successfully deleted a breakpoint in parrot_debugger? it doesn't seem to work
04:48 Coke dukeleto, you're the first person to touch the debugger in years. Don't expect anythign to work.
04:48 pmichaud and the other PGE improvements are needed so that jonathan++ and I can make some key changes to lexical handling in Parrot
04:48 Coke dukeleto++
04:48 pmichaud in summary:  The PGE tasks are becoming even-more-critical
04:48 Coke (there was some cleanup a while back, but I don' think anyone uses it on a regular basis. i'mm very happy to see those tests.
04:49 pmichaud on the good side, this last weekend jnthn++ and I were able to spec out how I can make the PGE changes without breaking everything that already exists
04:49 dukeleto Coke: yeah, I can tell. I am writing tests as fast as I can so that I can start actually hacking on it and have some peace of mind that I am not breaking things
04:49 pmichaud (end of pge/protoregex/ltm status report)
04:50 wayland76 pmichaud: Many thanks.  When I ask questions like this, it usually means I've been reading the ROADMAP again :)
04:50 wayland76 I'm also wondering whether task B (Parrot Calling Conventions) got into the July release
04:51 Coke nope
04:51 wayland76 ok
04:51 cotto pcc_rewiring is allison's next priority, afaict
04:51 Coke (at least ,not if that's the parrot portion of that. there's a branch that is still under development.)
04:52 wayland76 Coke: Yes, it specifically mentions Parrot
04:53 pmichaud allison said during today's perl 6 meeting that parrot calling conventions is her next task.
04:53 pmichaud (to which I respond heartily:  "Yay!")
04:54 wayland76 For anyone who'd like to see the ROADMAP (2 months out of date, but probably still mostly right): http://github.com/rakudo/rakudo/blob/ce21ffe6​dabf187613da17bbd1f447663c9d7091/docs/ROADMAP
04:55 pmichaud better url is  http://github.com/rakudo/rakudo/trunk/docs/ROADMAP
04:55 pmichaud oh, wait.
04:55 pmichaud hmmm.
04:55 pmichaud better url is  http://github.com/rakudo/rakudo​/trunk/tree/master/docs/ROADMAP
04:55 pmichaud grrr
04:56 pmichaud better url is  http://github.com/rakudo/rak​udo/tree/master/docs/ROADMAP
04:56 pmichaud there.
04:56 pmichaud (that way it's not tied to a specific commit)
04:56 cotto yay +1
04:57 cotto I'm really happy to know that that's her next task.
05:01 Andy joined #parrot
05:07 dalek parrot: r40333 | dukeleto++ | trunk (2 files):
05:07 dalek parrot: Add two TODO tests for deleting parrot_debugger breakpoints and add code that throws an friendly error message instead of a Bus Error
05:07 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40333/
05:16 desertm4x joined #parrot
05:26 dukeleto it seems that the PDB_t interp->pdb never gets a non-NULL interp->pdb->file associated with it in the parrot_debugger, which causes listing the source and deleting breakpoints to not work. the breakpoints that *do* get set right now are probably not working correctly either, due to this.
05:26 eternaleye joined #parrot
05:56 dalek parrot: r40334 | dukeleto++ | trunk/t/tools/parrot_debugger.t:
05:56 dalek parrot: Add tests to parrot_debugger for tracing multiple statements and printing all integer registers
05:56 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40334/
06:05 cotto seen chromatic
06:05 purl chromatic was last seen on #parrot 1 days, 6 hours, 39 minutes and 48 seconds ago, saying: I thought that already worked.  [Jul 28 23:20:27 2009]
06:09 Andy did passwords get reset in svn.parrot.org?
06:11 Andy aha!  trac.parrot.org and svn.parrot.org are the same DB
06:12 theory joined #parrot
06:13 dalek parrot: r40335 | petdance++ | trunk/lib/Parrot/Pmc2c/PCCMETHOD.pm:
06:13 dalek parrot: set qr delimiters to // so vim color coding does not freak out.
06:13 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40335/
06:15 uniejo joined #parrot
06:17 Andy I can't get into trac at all.  I'm having looping redirects.
06:18 cotto cookie issue?
06:19 cotto I can log out and in ok.
06:21 Andy it's gotta be cookies
06:22 Andy but
06:22 Andy I've totally cleared all my cookies
06:29 wayland76 Maybe you need more squashed flies (sultanas/raisins) in your cookies
06:39 dukeleto Andy: do you have a browser-add-on that is being too smart ?
06:40 wayland76 ...or not smart enough :)
06:42 cotto I'm glad I don't have to write xs.
06:57 dalek parrot: r40336 | dukeleto++ | trunk/t/tools/parrot_debugger.t:
06:57 dalek parrot: Add tests for printing each register type in parrot_debugger
06:57 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40336/
07:29 flh joined #parrot
07:30 chromatic joined #parrot
07:31 dalek parrot: r40337 | dukeleto++ | trunk/src/parrot_debugger.c:
07:31 dalek parrot: Add some much-need docs to parrot_debugger, mostly about breakpoints and printing registers
07:31 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40337/
08:11 rhr joined #parrot
08:59 HostileParadox_ joined #parrot
09:09 einstein joined #parrot
09:11 clinton joined #parrot
09:13 donaldh joined #parrot
09:40 bacek joined #parrot
09:55 bacek_ joined #parrot
09:58 bacek_ o hai
09:59 moritz hi bacek_
09:59 bacek_ moritz: hi
09:59 * bacek_ hate moritz sometimes when he try to autocomplete "good mor..."
10:00 * moritz won't apologize for his nick :-)
10:01 moritz bacek_: hate yourself for mangling the autocompletion of "back" :-)
10:01 bacek moritz: No way! :)
10:06 * bacek just finished reading latest #ps log
10:07 bacek msg chromatic How Keys refactor related to "VTABLE swap"?
10:07 purl Message for chromatic stored.
10:08 kj joined #parrot
10:08 bacek kj: O HAI!
10:09 kj bacek: Hi there
10:09 purl hola, kj.
10:09 kj just replied your email
10:09 mikehh joined #parrot
10:09 bacek kj: just read it.
10:10 bacek I've got about 20 commits waiting in git :)
10:10 kj oh very good
10:10 kj hope it's of any use as a basis to start from
10:10 Casan joined #parrot
10:10 bacek kj: It's just small cleanups for now.
10:11 bacek And it _is_ very good basis.
10:11 kj where's the repository?
10:11 purl the repository is chastity locked.
10:11 kj it's not listed on parrot.org/languages
10:13 bacek kj: btw, good half of reasons why I joined parrot was your PCT tutorial :)
10:13 bacek svn.parrot.org/languages
10:14 flh joined #parrot
10:14 kj ORLY?
10:14 purl YA RLY.
10:14 kj cool :-)
10:15 kj btw, i remember now what a big issue was with the PCT based implementaiton of PIR: macros and heredocs
10:16 kj both are a PITA to implement
10:17 bacek they are.
10:18 bacek But my main goal is implement some optimisations strategies for PIR. So heredocs and  macros aren't high on my task lists.
10:18 kj ah i see
10:19 kj feel free to replace my name in the maintainer file ;-)
10:19 bacek OTOH having "mostly" finished PIR compiler will help to archive other goals. Like "Emit PBC from PCT" :)
10:20 bacek kj: I probably will. But you are still in AUTHORS section :)
10:20 moritz why do you need another PIR compiler when you want to emit PBC from PCT?
10:20 moritz or did I make a connection here that doesn't exist?
10:21 moritz (I mean you could make the POST compiler emit PBC, no need to touch PIR here)
10:21 bacek moritz: good half of PCT-based compilers have "embedded PIR fragments"
10:21 bacek like Q:PIR
10:23 moritz maybe it would be easier to offer a good alternative to that
10:23 bacek yeah. PCT based PIR compiler is good alternative :)
10:25 moritz ok, I don't want to prevent you from having fun :-)
10:25 bacek moritz: look. For implementing various optimisations "from 80's" we need PIR/PASM parser.
10:26 bacek We have "fully functional" compiler IMCC. Which implies that we have to write all this optimisations in "some bloody macroassembly language from 80's"
10:27 bacek (and I don't want to do it)
10:28 moritz I don't see why you can't write a POST compiler that handles the cases without embedded PIR
10:28 moritz see how it works out
10:28 moritz and if it does bring some significant speed gain, you can still worry about a PCT/NQP/Whatever based PIR compiler to use inside that POST compiler
10:29 moritz that's the "simplest thing that could possibly work" approach
10:29 bacek 1. it's not "inside".
10:30 moritz what is not inside whate?
10:30 moritz s/e\b//
10:30 bacek 2. In POST too much information about semantic already lost.
10:31 moritz then you can write a PAST compiler instead of a POST compiler
10:31 bacek yeah.
10:31 bacek But "generic" PAST is "too generic" for me.
10:32 bacek If I have "PIR PAST" that I can rely on I can do much more things.
10:33 bacek And, and the end of the day, POST will converted to something very similar from "PCT PIR"
10:33 bacek Because those 2 things are quite close
10:34 moritz I don't know what you mean by "PIR PAST", but that's probably OK
10:36 bacek moritz: "PIR PAST" is AST with well predefined, expected by optimiser, properties.
10:37 moritz will it be plugged into the existing toolchain? Or do the PCT based compilers have to be changed to use that?
10:38 mikehh All tests PASS at r40377 (pre/post-config, smolder, nqp_test, fulltest) - Ubuntu 9.04 amd64
10:38 bacek moritz: PCT architecture allows to plug additional steps. pmichaud++. So, answer is "yes"
10:40 bacek But I can't say right now that it will not require some small tweaks. Like "compiler.add_step('enable​_megacool_optimisations')"
10:41 moritz ok. I was more thinking about changed code/PAST generation
10:41 bacek no-no-no.
10:42 bacek One of PCT steps is "to_pir".
10:42 bacek So, after this I (and anyone else) can embed "optimisation step". And that's why I need "PIR compiler"
10:43 moritz ah
10:43 moritz you want to optimize the generated PIR
10:43 bacek any PIR
10:43 moritz I thought you wanted to omit the PIR generation
10:44 bacek I would like to. But again - PAST is way too generic.
10:45 MoC joined #parrot
10:45 bacek But I will consider to use POST for "basis"
10:52 dalek close: r86 | Austin++ | trunk/ (16 files):
10:52 dalek close: Checkpoint: grammar refactoring proceeds. AST now has types.
10:52 dalek close: review: http://code.google.com/p/close/source/detail?r=86
10:57 dalek close: r87 | Austin++ | trunk/src/parser/ (4 files):
10:57 dalek close: Checkpoint: grammar refactoring proceeds. AST now has types.
10:57 dalek close: review: http://code.google.com/p/close/source/detail?r=87
10:58 mikehh rakudo (13ba2f3) builds on parrot r40377 - make test PASS/ make spectest (up to 27815) two tests FAIL - reported before - Ubuntu 9.04 amd64
11:03 mikehh t/spec/S12-enums/basic.rakudo - Parse errors: Bad plan.  You planned 30 tests but ran 28 - fails with Method 'Num' not found for invocant of class ''
11:05 mikehh t/spec/S12-introspection/walk.t - Parse errors: Bad plan.  You planned 10 tests but ran 4. - fails with Parameter type check failed; expected Any, but got Object for $class in call to block_86 + backtrace
11:09 mikehh I think I better post to #perl6 as well
11:09 mikehh need to connect
11:20 donaldh joined #parrot
11:50 mikehh_ joined #parrot
12:11 ruoso joined #parrot
12:15 Jimmy joined #parrot
12:19 dalek parrot: r40338 | jkeenan++ | trunk/docs/resources/parrot.css:
12:19 dalek parrot: [docs] Additional CSS refinement contributed by samlh++.
12:19 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40338/
12:39 HG` joined #parrot
12:48 jimmy joined #parrot
13:15 desertm4x joined #parrot
13:20 iblechbot joined #parrot
13:44 makk384 joined #parrot
14:03 NotFound joined #parrot
14:03 NotFound hi
14:03 purl niihau, NotFound.
14:05 fdorothy joined #parrot
14:10 hercynium joined #parrot
14:15 Andy joined #parrot
14:16 dalek parrot: r40339 | NotFound++ | trunk/src/debug.c:
14:16 dalek parrot: [debugger] repair source loader
14:16 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40339/
14:17 NotFound Please stop adding bad tests to parrot_debugger.
14:22 dalek rakudo: 5797a68 | jnthn++ | src/pmc/p6opaque.pmc:
14:22 dalek rakudo: Fix bug relating to submethod dispatch on a proto-object.
14:22 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​797a6889ac928912cc0206b0fbf4de700f79b73
14:22 dalek rakudo: a100a60 | jnthn++ | src/builtins/guts.pir:
14:22 dalek rakudo: Ensure that proto-objects use the correct dispatcher, just like any other object.
14:22 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​100a60237e19d3b446d3954bb65e882de0f7183
14:22 dalek rakudo: 21cbaef | jnthn++ | t/spectest.data:
14:22 dalek rakudo: Add S14-traits/routines.t to spectest.data.
14:22 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​1cbaefa689391a5ee6c383b4dc681cfec99afb5
14:27 Coke if you defined "bad", that might be more helpful.
14:28 NotFound Checking the look of the output instead of the functionality.
14:30 Coke looks like the output checks are at least regexes, not full output matches.
14:31 NotFound Is failling on one of my systems, anyway.
14:31 dalek parrot: r40340 | NotFound++ | trunk/compilers/imcc (5 files):
14:31 dalek parrot: [cage] rename imcc struct _IMC_Unit to struct IMC_Unit and avoid several forward declarations of it
14:31 Coke do we run those tests in 'make test' ?
14:31 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40340/
14:31 NotFound Coke: yes
14:31 Coke k.
14:32 Coke I have some small updates to avoid backwhacking.
14:32 NotFound IMO parrot_debugger is not mature enough to be fully testable
14:34 Coke some sane tests are better than no tests.
14:35 NotFound Looks like some of that tests assume that in the trace output the integer registers are zero, and they aren't
14:37 NotFound Coke: yeah, but no one knows how a sane parrot_debugger output looks like.
14:38 dalek parrot: r40341 | coke++ | trunk/t/tools/parrot_debugger.t:
14:38 dalek parrot: Make the regex on this test a little looser so it passes.
14:38 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40341/
14:39 mikehh oops - in my earlier posts I used r40377 instead of r40337 for parrot
14:41 Andy can anyone help me with trac.parrot.org redirects?
14:42 Andy "delete your cookies" does not solve my problem.
14:42 dukeleto joined #parrot
14:43 NotFound Coke: thanks
14:49 Andy It's very sad.  Not able to commit code (easily).
14:51 jimmyZ Andy: can you log in ?
14:51 Andy no
14:51 Andy I get a redirect loop.
14:52 mikehh t/tools/debugger.t FAILS - Failed test:  19 (at r40341)
14:52 mikehh Ubuntu 9.04 amd64
14:52 Coke Andy: what's the issue?
14:52 purl The Chinaman is not the issue here Dude!
14:53 Andy I keep redirecting to /parrot/prefs/account
14:53 NotFound mikehh: I'm looking at it
14:54 Coke Andy: you're going to https://trac.parrot.org (redirects to /parrot), clicking on login?
14:54 Andy I've tried a billion different things.
14:54 Coke ok. I can't duplicate the problem with my account, so i'm trying to figure out what you're doing that's different.
14:54 Coke (also, OS/browser?)
14:54 Andy GENERAL AWESOMENESS, THAT'S WHAT
14:55 Andy Mac, both Safari and Firefox
14:55 Coke ... how's that working out for ya.
14:55 Coke ok. my mac is at home, so i can't verify that...
14:55 Coke I'll switch to firefox on win instead of chrome, though. =-)
14:55 jimmyZ works fine for me FF on win
14:56 Andy now, I changed passwords yesterday
14:56 Coke as did i. =-)
14:56 Andy right
14:56 Coke ... assuming you really are andy and not some nefarious hacker.
14:57 Andy I might be.
14:57 Andy You just can't tell.
14:57 Andy EXCEPT FOR THE AURA OF AWESOME.
14:57 Coke more of an aroma.
14:57 Psyche^ joined #parrot
14:58 Coke Andy: did you ever confirm your email address with trac?
14:58 Coke (just out of curiousity. I know that bit some people i the past.)
14:58 Andy I don't know.
14:59 Andy it does williningly email me password resets
14:59 Andy now, I can get to trac.parrot.org/parrot
14:59 Andy but I'm not logged in.
15:00 Coke ok. when you click login, that should take you to: https://trac.parrot.org/parrot/login
15:00 Andy yes, it does
15:00 Coke and when you click the button, you should land on /parrot
15:00 Andy no, it tries to send me to /parrot/prefs/account
15:00 Andy and redirects over and over
15:01 dalek parrot: r40342 | NotFound++ | trunk/t/tools/parrot_debugger.t:
15:01 dalek parrot: [t] don't assume value 0 on unitialized I registers
15:01 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40342/
15:02 Coke Andy: JS disabled, perhaps?
15:02 Coke ;( web equivalent of "did you reboot yet" questions.)
15:02 Andy nope
15:02 Andy I don't allow creating windows, though
15:02 NotFound mikehh: Can you check with r40343?
15:02 Andy can you see if my email addr is confirmed?
15:03 Coke it's listed.
15:03 Coke I don't know if that means confirmed.
15:03 Coke Andy: I can try to reset your password.
15:03 Andy ok
15:04 Andy it will mail me a new PW just fine
15:04 Andy but logging in again still goes into looping
15:04 jimmyZ_ joined #parrot
15:04 dalek parrot: r40343 | NotFound++ | trunk/t/tools/parrot_debugger.t:
15:04 dalek parrot: [t] fix errata from r40342
15:04 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40343/
15:10 ruoso joined #parrot
15:11 mikehh NotFound: building now
15:12 mikehh Interestingly enough make fulltest PASSes at r40441 - it does not check t/tools, nor nqp_test for that matter
15:12 ruoso joined #parrot
15:13 mikehh r40341
15:13 ruoso joined #parrot
15:15 ruoso joined #parrot
15:16 mikehh NotFound - yes it passes - running smolder now
15:17 ruoso joined #parrot
15:18 jan joined #parrot
15:18 quek joined #parrot
15:18 mikehh so you can remove a breakpoint once it's set?
15:19 ruoso joined #parrot
15:19 NotFound mikehh: amusing, several tests still failed for me in amd64
15:19 NotFound mikehh: I don't looke at that tests yet, they are todo'ed
15:19 dalek parrot: r40344 | NotFound++ | trunk/t/tools/parrot_debugger.t:
15:19 dalek parrot: [t] use the --script option instead of stdin to pass commands in parrot_debugger tests
15:19 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40344/
15:21 donaldh joined #parrot
15:21 slavorg joined #parrot
15:22 NotFound Witht that last change, the remaining failures are gone. Don't know what's the cause. Different versions of Test::More, maybe?
15:25 NotFound I think I know what was the culprit: readline_interactive !
15:25 NotFound It behaves differently if parrot is built with realine support or not.
15:27 mikehh smolder PASSed at r40343 on Ubuntu 9.04 amd64
15:29 mikehh I definately have readline = yes in Configure
15:29 theory joined #parrot
15:33 mikehh All tests PASS at r40343 (pre/post-config, smolder, nqp_test, fulltest) - Ubuntu 9.04 amd64
15:37 mikehh t/tools/parrot_debugger.t PASSes if I svn up and prove -v t/tools/parrot_debugger.t
15:38 mikehh at r40344 - I haven't rebuilt yet
15:39 NotFound No need to rebuild, the only change is in the test file
15:40 mikehh NotFound - sure, but my test script does a make realclean etc
15:41 einstein joined #parrot
15:43 NotFound Not sure what is exactly the problem with readline_interactive in that case, but using --script instead of stdin we don't have to worry.
15:51 mikehh NotFound: you use g++ don't you - what advantages do you find using that over gcc
15:52 NotFound mikehh: mainly, that if I don't do that no one cares about not breaking the c++ compatibility of the code base ;)
15:56 NotFound Building with c++ ensures that we fix some problems that with C can look as unimportant warnings.
15:56 NotFound Also, the C++ name mangling helps check that we declare as PARROT_EXPORT all things that need it.
15:59 dukeleto joined #parrot
15:59 dukeleto hola
16:00 Coke dukeleto: hio
16:02 darbelo joined #parrot
16:02 mokurai joined #parrot
16:04 dukeleto coke: did that debugger test that you changed fail for you? it would seem that the next test would need to be changed as well. in any case, thanks!
16:05 clinton joined #parrot
16:06 Coke dukeleto: yes, it failed, or I'd not have changed it. it was the only one that did.
16:06 Coke (that on feather, a linux box.)
16:06 NotFound dukeleto: I fixed several other as well. They were dependant of several assumptions that aren't always true.
16:07 NotFound If failed since I fixed a problem in the source loading function of the debugger.
16:09 dukeleto NotFound: I saw that, does listing the source work now? very exciting!
16:10 NotFound dukeleto: it was already working last time I checked, don't know when it get broken.
16:12 Coke how does it work? (if I do load foo.pir\nlist, I get nada.)
16:13 dukeleto is there a way to test my code on muiltple architectures *before* committing? or perhaps getting branches tested?
16:13 dukeleto NotFound: I am compiling the latest parrot from scratch now, I will add some tests for listing the source
16:13 Coke dukeleto: for anything bigger than a breadbasket, use a branch and ask for smoke reports.
16:14 Coke for incremental fixups on parrot_debugger, I think trunk is fine if they work for you, and you're not too close to a release.
16:14 Coke do you have access to linux?
16:14 NotFound Coke: parrot_debugger file.pir -> Both compiles and loads the source.
16:16 Coke whee, source (also segfault. =-)
16:16 Coke but still, that's probably the most I've seen out of the debugger ever. =-)
16:16 NotFound Coke: the load command just loads the source, you need to have the pbc already loaded.
16:17 NotFound Coke: last time I worked on it put to work several things, even if badly.
16:17 Coke woot.
16:17 payload joined #parrot
16:18 NotFound Is not stable, and is not up to date with parrot features, but is able to do some things.
16:32 whiteknight joined #parrot
16:37 dalek TT #891 created by particle++: [TODO] allow spaces in nci function signatures
16:40 Themeruta joined #parrot
16:40 Coke Ugh. do we really want to be making our string based parameter listings MORE flexable, requiring more effort to parse?
16:42 davidfetter joined #parrot
16:42 Coke and here goes the "unify the signature" discussion again. I cannot remember the outcome the last time it occurred.
16:42 whiteknight last time it occured, we got off onto a tangent about how condensed signatures weren't the most expressive form for expressing signatures
16:43 particle ok, so i'm stoking the fire a bit
16:43 Coke i don't think we want expressive signatures to parse at runtime.
16:43 whiteknight and no matter what the outcome last time, we DO need to fix our signature string handling in one way or another
16:43 particle runtime? it's c.
16:45 NotFound If you want to make it clear in C, just write: "I" /* <- */ "I"
16:45 particle or 'I' 'I'
16:45 NotFound Or just "I" "I"
16:46 NotFound particle: syntax error
16:46 purl syntax error is what he's already getting
16:46 Coke yes, and whenever someone calls Parrot_call_sub_ret_int(interp, sub, "II", 5);, we're doing a runtime lookup to figure out what actually means. I'm just concerned about slow downs. (yes, benchmarks needed)
16:46 particle why syntax error? they're both one char.
16:46 Coke particle: 'I' is a char, not a string.
16:46 Coke this ain't perl.
16:46 Coke ascii i?
16:46 Coke purl, you need an ascii function.
16:46 purl Coke: i'm not following you...
16:47 particle chr i
16:47 NotFound Thw way I proposed, is the C compiler who works.
16:47 NotFound particle: but you don't need chars, but strings
16:47 particle right, of course. duh.
16:47 he joined #parrot
16:47 particle notfound: the developer works, too
16:48 particle space is a lot cheaper to type than '" /* <- */ "'
16:48 NotFound particle: if the developer wants clarity, he must write something.
16:49 NotFound You can even write a beautiful C macro: SIGNATURE(ret_type,args) ...
16:50 particle and it's actually the compiler working with my solution, yours uses the preprocessor
16:50 NotFound Anyway, there is no need to add bloat to the machine to allow a C coder to write in a clean way.
16:50 Coke (macro++)
16:51 bacek joined #parrot
17:00 quek left #parrot
17:01 cotto seen chromatic
17:01 purl chromatic was last seen on #parrot 1 days, 17 hours, 34 minutes and 51 seconds ago, saying: I thought that already worked.  [Jul 28 23:20:27 2009]
17:28 Coke abesapien!
17:36 particle joy! the blue angels have returned to seattle :)
17:57 einstein joined #parrot
17:58 Themeruta joined #parrot
18:10 chromatic joined #parrot
18:11 bacek joined #parrot
18:12 Themeruta joined #parrot
18:22 Themeruta joined #parrot
18:24 cotto chromatic, ping
18:25 chromatic pong
18:26 nopaste "cotto" at 74.61.2.46 pasted "initial idea of profiling runcore output" (31 lines) at http://nopaste.snit.ch/17439
18:27 chromatic Sensible.
18:27 purl hmmm... sensible is usually inappropriate, yes :)
18:27 chromatic My only question is if functions need association lines as well.
18:28 cotto Sure.
18:28 chromatic Looks doable then.
18:29 cotto What do you think about using a hash to map between function and file names and their shortened versions?
18:30 cotto the alternatives being a O(n) lookup or something I hadn't thought of
18:31 chromatic A hash in the output file?
18:31 chromatic Or a hash in memory.
18:31 cotto in memory
18:32 cotto "/home/user/foo.pir" => "F0"
18:32 dalek parrot: r40345 | NotFound++ | trunk/compilers/imcc (6 files):
18:32 dalek parrot: [cage] get rid of one imcc global, RT #39714
18:32 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40345/
18:32 PerlJam er, don't you normally want it the other way around?
18:32 chromatic Or we could only write the file/function output when it changes.
18:32 cotto PerlJam, only when you're reading the file.
18:33 cotto That's also a possibility.  If we're using some sort of compression, it'll take care of the redundancy.
18:33 NotFound joined #parrot
18:34 chromatic An in-memory hash perturbs memory, which I'd like to avoid.
18:34 chromatic ... as much as possible, anyway.
18:34 cotto btw, all the information we want to store is available.  I hacked up the slow run core as a proof of concept.
18:35 chromatic Perfect.
18:35 purl perfect is the enemy of good enough.
18:37 chromatic I'll get everything set up to add that runcore on the branch by the end of the day.
18:37 cotto except hll annotations, but those are obviously available
18:37 cotto nice
18:38 chromatic Are you working on converting our simple format to Callgrind format?
18:39 cotto I haven't started on that.
18:39 cotto It was on the list after figuring out the immediate format.
18:40 Zak joined #parrot
18:41 particle cotto: i'd put a marker after the time spent, to mark the units
18:41 cotto particle, the units don't matter as long as they're consistent.
18:41 particle or maybe somethng in the marker
18:41 particle er, header
18:41 particle if the units change, then you'll know how to handle it
18:42 cotto when would they change in the middle of profiling?
18:42 particle eg an embedded device that measures slower than ns
18:42 particle not the middle of profiling
18:42 particle this is output to a file, that's read later
18:42 particle perhaps on another platform
18:42 particle don't assume nanoseconds, make it a declaration
18:43 cotto That's a good idea, but also something that can be added once there's some extant code.
18:43 NotFound 10^-30 Galactic rotation periods
18:43 chromatic First we need to get our control flow tracking reasonably accurate.
18:44 cotto chromatic, that's what the call chain depth is for
18:44 chromatic I found that figuring out which ops go where was tricky.
18:44 particle call chain depth won't work with tailcalls
18:44 cotto although the control flow information would be somewhat implicit.
18:45 particle if you give contexts uids, then you can refer to calling context
18:45 particle that will allow circles and reused contexts
18:46 cotto particle, actually when using a tailcall the depth changes at the .sub line and then goes back down, but I don't know if it's wise to depend on that.
18:46 particle maybe a hash of the context?
18:48 cotto particle, so each line would also refer to the calling context somehow?
18:48 particle yes, each line refers to calling context, rather than chain depth
18:49 particle let the program interpreting the data build the call graph
18:50 cotto I like that.
18:54 cotto Is there any problem with adding an UINTVAL field to Parrot_Context that gets incremented each time a context is created?
18:54 particle try to remember, there is no stack.  everything is relative.
18:55 cotto I had to stop myself from typing "stack" several times.
18:55 chromatic Let's see what we can get without doing any of this yet.  We may not need it.
19:00 cotto Sounds good. I'll get started converting the immediate format (+filenames/subs only when they change) into something Callgrind can use.
19:01 dalek parrot: r40346 | NotFound++ | trunk/compilers/imcc (2 files):
19:01 dalek parrot: [cage] getting rid of a imcc global, RT #39714
19:01 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40346/
19:01 chromatic Even that much may be useful to Rakudo.
19:04 cotto How are pluggable runcores going?
19:05 chromatic Mostly a SMOP at the moment.
19:05 chromatic I've decided to abstract them first, then make them pluggable later.
19:06 chromatic Adding the profiling core and getting it to where Rakudo can start to use it and give us feedback on what it gets wrong is more important.
19:20 donaldh joined #parrot
19:38 MoC joined #parrot
20:08 dalek parrot: r40347 | NotFound++ | trunk/compilers/imcc/symreg.h:
20:08 dalek parrot: [cage] headerizing update forgotten in r40346
20:09 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40347/
20:33 dalek parrot: r40348 | NotFound++ | trunk/src/embed.c:
20:33 dalek parrot: [cage] isolate and simplify startup debug info
20:33 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40348/
20:47 dalek parrot: r40349 | particle++ | trunk/docs/pdds/draft/pdd16_native_call.pod:
20:47 dalek parrot: [PDD16] these are symbols, not letters
20:47 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40349/
20:49 mokurai joined #parrot
20:52 jevin joined #parrot
21:02 mikehh All tests PASS at r40343 (pre/post-config, smolder, nqp_test, fulltest) - Ubuntu 9.04 amd64
21:02 mikehh BAH that's r40348
21:03 flh joined #parrot
21:06 pmurias joined #parrot
21:06 pmurias hi
21:07 pmurias there used to be a gsoc project to plug harmonys gc into parrot right?
21:11 chromatic Yes.
21:14 payload joined #parrot
21:15 pmurias chromatic: how far did it get?
21:16 GeJ Good morning everyone
21:18 mikehh rakudo (279abf9) builds on parrot r40348 - make test PASS/ make spectest (up to 27821) same two tests FAIL - Ubuntu 9.04 amd64
21:18 mikehh t/spec/S12-enums/basic.rakudo - Parse errors: Bad plan.  You planned 30 tests but ran 28 - fails with Method 'Num' not found for invocant of class ''
21:18 mikehh t/spec/S12-introspection/walk.t - Parse errors: Bad plan.  You planned 10 tests but ran 4. - fails with Parameter type check failed; expected Any, but got Object for $class in call to block_86 + backtrace
21:28 Coke mikehh: are those known failures? If so, probably no point in reporting them.
21:28 Coke ISTR that when updating the spectest progress, known failures are at least listed in the commit message. not sure if they are also in the spectest progress file.
21:30 mikehh just the numbers
21:31 pmichaud jonathan was going to see about fixing those regressions... not sure what happened to that.
21:31 pmichaud if they aren't fixed by tomorrow, we'll fudge them out for now.
21:32 mikehh I 've still got to get partcl working on my (non-installed) parrot
21:33 mikehh was palying around with the Configure.pl to make it more like rakudo so I can use --parrot-config=../parrrot/parrot_config
21:34 pmichaud I hope to have a significant update to rakudo's Configure.pl soon
21:35 kj joined #parrot
21:36 pmichaud (the one from our ins2 branch)
21:40 chromatic pmurias, I didn't hear much after the initial plan.
21:41 cotto Now might be a good time to revisit that goal if anyone's interested.
21:41 jonathan pmichaud: One of them I think the test file needs to change.
21:41 jonathan pmichaud: The other is a bug that I was hoping I'd suddenly realize how to fix, but that sudden moment has been rather unsudden in coming. :-)
21:42 moritz if you don't see a fix on the horizon, please regress on the tests and open a ticket for it
21:42 moritz a clean 'make spectest' is immensely helpful when testing local changes
21:43 pmichaud agreed.  I'm fine with fudging the tests.
21:43 Coke (making partcl work on non-installed parrot) the path of least resistance there is to just install it into a subdir.
21:43 Coke or some other non-standard location.
21:43 pmichaud that's what Rakudo is doing.
21:43 jonathan Aye, I've kept expecting to fix them "today".
21:43 Coke fixing that for real requires a lot of work.
21:43 jonathan Sorry for the noise.
21:44 Coke AIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII!
21:44 moritz jonathan: no problem, I just don't want it to be a permanent condition ;-)
21:46 Whiteknight joined #parrot
21:47 cotto Hi, kj
21:47 kj hi cotto
21:47 cotto long time no c
21:47 jonathan kj! :-)
21:48 kj yeah:-)
21:48 kj good evening all
21:49 cotto kj, do you have any plans on getting back into pirc?
21:50 kj cotto: short term, prob not :-(
21:51 cotto rl is life that sometimes
21:51 kj i have little time to really focus on it
21:53 japhb joined #parrot
21:55 Whiteknight hello kj
21:55 kj hi Whiteknight
21:56 bacek joined #parrot
21:59 sekimura_ joined #parrot
22:05 dukeleto_ joined #parrot
22:06 kj cotto: perhaps I should increase the documentation so the bus number can be increased
22:06 kj that would be a start at least
22:06 kj haven't written a line of code in 6 monhts
22:06 cotto That would be a good thing.
22:07 kj documentation is easy, code is not
22:07 cotto and since you haven't written anything in the past 6 months, you'll have a better idea of what's not clear from the code
22:07 kj yes, well i was looking at it earlier this week, and i realized how complex pir really is
22:08 kj why is it that complex?! </rhetoric>
22:08 chromatic Because no one's pushed to simplify it.
22:09 chromatic Sufficiently, I mean.
22:09 kj most of the complexity comes from all the sugar
22:17 bacek_ joined #parrot
22:17 bacek_ Good morning
22:17 purl And good moroning to you, bacek_.
22:18 * cotto maroons purl
22:19 cotto chromatic, do you know smalltalk?
22:20 cotto (or anyone)
22:20 kj cotto: that's a coincidence, was just checking out squeak :-)
22:21 kj but don't know it...
22:21 purl hmmm... don't know it is worth doing disguise for putting is at top of the function
22:21 donaldh_ joined #parrot
22:22 cotto It might be a good start for L1 if someone were to take the Smalltalk operations listed at http://wiki.squeak.org/squeak/2267 and explain what they do on the wiki.
22:22 chromatic I know a bit.
22:24 bacek chromatic: you wanted to talk to me (according to #ps logs)
22:25 bacek q: Who can grant commit access to /languages?
22:25 cotto bacek, have you tried and failed to commit there?
22:26 chromatic bacek, is the Key PMC still a mess in terms of that it can store a STRING, an INTVAL, or a PMC?
22:27 bacek cotto: yes
22:28 bacek chromatic: yes
22:28 chromatic Okay.  Vtable swap is the idea that we can write one variant of each vtable entry for each type of value we expect a Key to hold and swap between those vtables when the type of the Key changes.
22:29 bacek chromatic: yak... What for?
22:30 chromatic Remove complexity and run time switching from each single vtable entry.
22:31 bacek you still have to check type of Key on each call, ain't you?
22:32 chromatic Nope, that's all hidden behind the proper vtable interfaces.
22:33 bacek I don't quite understand.
22:33 bacek E.g. $P0 = new 'Interger; $P1 = new 'Float'; $P3 = $P0 + $P1
22:34 bacek "+" is $P0.add($P1, $P3)
22:34 chromatic We have a set of vtable entries for "Key containing a STRING key", one for "Key containing an INTVAL key", and one for "Key containing a series of Keys".
22:34 bacek which is VTABLE_add(INTERP, SELF, $P1, $P3)
22:35 chromatic When we assign to a Key PMC (or convert the key it contains), we swap its vtable pointer to the appropriate vtable for the type of key it contains.
22:35 bacek ah. I misread original idea
22:36 wayland76 joined #parrot
22:37 bacek chromatic: and "VTable swap" only for Key PMC?
22:38 rg1 joined #parrot
22:39 chromatic Or any other PMC that really needs it; that might be a nice way to upgrade Integer into BigInt in place.
22:39 bacek In this case easier to convert Key to base class without data and inherit StringKey, IntegerKey, etc.
22:39 chromatic Key really benefits from something like this; it moves a lot of complexity behind the vtable interface.
22:39 chromatic Except that makes us morph.
22:40 bacek "makes us morph"?
22:40 chromatic How do you know what you're going to store in a Key PMC until you store it?
22:40 bacek (Integer PMC upgrades to BigInt in place)
22:41 bacek chromatic: (Key) Factory? E.g. Key."create_key"(INTVAL), etc
22:42 chromatic I don't believe you know what you're going to store until you store it.
22:44 bacek We can reimplement Key as RPA of KeyItem (which is "pure virtual"), inherit StringKeyItem from KeyItem.
22:45 bacek Key.push_something will create appropriate SomethingKeyItem
22:45 chromatic Okay, but what does that give us?
22:45 bacek clean design of Keys.
22:45 chromatic You're creating an abstract interface to abstract away the vtable interface which all PMCs already implement.
22:46 bacek VTABLEs for each *KeyItem will dtrt
22:47 bacek I treat Keys as Path. (And they are Path now. Used only for getting data from nested containers)
22:47 Whiteknight pmichaud: ping
22:49 chromatic We could create a new PMC type for each type of thing a Key stores, but that multiplies entities and tempts people to instantiate those key PMCs directly, which I'd like to encourage.  In addition, we either require all Key PMC creation to go through a single C function with a switch statement to create the right type of PMC or we have to create a Key PMC and in its initializer use a big switch statement to morph it in place
22:49 chromatic like some in place factory pattern.
22:50 chromatic Although we *could* treat a Key as a delegate and send all of the operations to the contained item.  That's not so bad.
22:50 bacek chromatic: no one should create "*KeyItem" directly. But there is no way do declare something as "private" in PMC.
22:51 chromatic You can throw an exception from init and init_pmc.
22:52 bacek And "single C function with switch" isn't required. We have various "push_*" vtables to create appropriate *Item.
22:52 pmichaud Whiteknight: pong
22:52 Limbic_Region joined #parrot
22:52 Whiteknight pmichad: at #ps, you mentioned you were interested in using pushmark/popmark/pushaction eventually
22:53 chromatic But then to create a Key PMC, unlike any other PMC I can think of, you can't just say "new ['Key']", you have to do that and explicitly push a new type of PMC onto it?
22:53 Whiteknight i'd like to hear more about what you are planning, because at the moment those ops are pretty useles
22:53 chromatic I don't like that much.
22:53 pmichaud Whiteknight: I need a mechanism to rollback the caller chain from exceptions.  afaict, pushmark/popmark are the only mechanisms available to do that
22:53 bacek chromatic: finally it will be something like: $P0 = new 'Key'; push $P0, 42, push $P0, "string"; push $P0, 84; to create [42;"string";84] Key
22:53 Whiteknight pmichaud: not at the moment. The docs say more then the ops actually do
22:54 pmichaud I also need a mechanism to say "when this context is being rolled back, execute this other code first"
22:54 Whiteknight which is why I want to talk to you, because no matter what you want we are going to have to basically implement it from scratch
22:54 wayland76 joined #parrot
22:54 pmichaud iiuc, rgrjr has been using these opcodes successfully.
22:54 chromatic I don't mind using push to link Keys together, but I don't like using it to initialize a Key's first (and possibly only) value.
22:54 Whiteknight let me rephrase: they can be used, but they are not nearly as useful or capable as they should be
22:54 allison joined #parrot
22:55 pmichaud Whiteknight: I don't disagree with that at all.
22:55 Whiteknight pushaction doesn't fire actions when an exception fires, or when a sub returns, for example
22:55 pmichaud afaict, I don't need something to fire an action when an exception fires
22:55 pmichaud I do want something that can fire when a sub exits, yes.
22:56 bacek chromatic: why? Key is Path. By default it doesn't contain any Steps. push_* is factory methods to create proper Step and append it to Path.
22:56 pmichaud pushaction can do that, if it's set up properly.
22:56 chromatic Because we don't create any other value PMCs that way.
22:56 Whiteknight okay. in that case we either need to extend the behavior of pushaction, if that's the right way. I might suggest we create a new at_return op to fire actions on context exit
22:56 pmichaud I'm not attached to the current pushmark/popmark/pushaction in any way; I just didn't want them to disappear without having some mechanism for doing what they currently provide (even if it's in a very limited form)
22:57 Whiteknight okay, that's what I'm trying to do: give you the mechanism you need (because I don't think pushaction/pushmark/popmark is the right way)
22:57 pmichaud I agree with that.
22:57 Whiteknight okay, awesome
22:57 chromatic Also you're overloading what push does on a Key PMC.
22:57 chromatic If the Key doesn't already have a value, it sets the value.
22:57 pmichaud while you're considering this, not that I also need a way to force a context to exit (and roll up any nested contexts)
22:57 chromatic If the Key has a value, it creates a new Key, sets that Key's value, and links that new Key to the current Key.
22:58 bacek chromatic: no-no-no. Key never have value. KeyItem have.
22:58 chromatic Fine then, s/(value)/KeyItem with a $1/ then.
22:58 bacek Key has RPA of KeyItem.
22:58 pmichaud in general allison and I have been looking as "invoking the return continuation" as being the generic mechanism for this.  But of course we also need to roll-up any intervening contexts.
22:58 chromatic We create a KeyItem PMC which is purely abstract because... well I certainly don't know.
22:59 bacek Key.push create new KeyItem with value and push it to RPA
22:59 chromatic Then we create a StringKeyItem PMC, an IntegerKeyItem PMC, a FloatKeyItem PMC, a KeyItemKeyItem PMC, et cetera, which all extend the abstract KeyItem interface which provides the vtable interface every PMC provides.
22:59 chromatic This to me is not a win in terms of complexity.
22:59 bacek KeyItem is interface class. We can actually avoid it and just create bunch of concrete FooKeyItem.
22:59 Whiteknight pmichaud: okay, that's something to consider too (but that probably is blocking on pcc_rewiring, like everything else)
23:00 pmichaud Whiteknight: yes, I agree it probably blocks on pcc_rewiring.
23:00 pmichaud but ultimately I want a way to force a context to leave without having to throw exceptions up the call chain to do it.
23:00 chromatic Why do we need a StringKeyItem PMC to represent a String PMC used as a Key?
23:00 pmichaud (because trapping and rethrowing exceptions is somewhat heavyweight, and exiting a context is common)
23:00 chromatic We don't have a StringArrayItem PMC or a StringAssociativeArrayItem PMC.
23:00 bacek chromatic: to avoid storing messy attributes in single Key
23:01 pmichaud (keys)   Sometimes it's better to have the messiness all in once place, rather than spreading it out.
23:01 pmichaud *one place
23:01 bacek PMCKeyItem can store new Key.
23:02 chromatic How many types of PMCs are we going to create to store Key information?
23:02 bacek 4
23:02 chromatic How many PMCs do we have to instantiate every time we access something by a Key?
23:02 bacek String/Integer/Float/PMC
23:02 bacek ah sorry.
23:02 chromatic What kind of contortions will PCT have to go through to generate code that uses Keys?
23:02 bacek 1+n
23:03 bacek 1 for key. N steps
23:03 pmichaud wrong, bad
23:04 pmichaud keys (especially constants) should be specifiable as an operand.  If we have to execute N+1 opcodes to build a constant key, we're going in the wrong direction.
23:04 pmichaud especially if those N+1 opcodes are producing gcables at every step.
23:04 chromatic Exactly.
23:04 bacek pmichaud: no. constant Keys are stored in PackfileConstantTable and not created in runtime
23:04 jonathan Constant keys should be constants stored in the packfile constants table.
23:05 bacek my proposal do not change it.
23:05 pmichaud then your answer to chromatic's question was incorrect.  :-)
23:05 bacek I treat "generate code that uses Keys" as runtime question :)
23:07 bacek imcc/pirc/* will just switch to slightly different key creating in compile-time
23:09 bacek And with my proposal we'll make Key equal to all other PMCs without any special treatment.
23:10 bacek (especially for storing in PBC...)
23:10 chromatic Can you write it up on the wiki?
23:12 bacek I'll try. But I have to go to $dayjob really soon.
23:12 pmichaud Who currently builds the .rpm modules that are available for fedora?
23:12 patspam joined #parrot
23:14 nopaste "NotFound" at 213.96.228.50 pasted "Patch; Use vtable slot nums instead of names in default and null" (132 lines) at http://nopaste.snit.ch/17440
23:15 NotFound Can someone take a look at this patch?
23:17 dalek tracwiki: v89 | bacek++ | WikiStart
23:17 dalek tracwiki: https://trac.parrot.org/parrot/wiki/​WikiStart?version=89&amp;action=diff
23:18 chromatic NotFound, looks decent; what are you trying to do there?
23:19 chromatic Smaller executable size by reusing C string constants where possible?
23:20 donaldh joined #parrot
23:20 NotFound chromatic: yes
23:21 chromatic I'm all for that.
23:21 NotFound In some cases the strings are optimized by the C compiler, but not all.
23:22 chromatic default.o is 303112 bytes on my machine.
23:22 chromatic 48372 stripped.
23:22 NotFound 377064 here, but is 64 bits
23:23 NotFound 29400 stripped
23:23 chromatic How big is it after the patch?
23:23 NotFound Hu, wait, this was with --optimize --debugging=0
23:24 dalek tracwiki: v1 | bacek++ | KeysRefactor
23:24 dalek tracwiki: https://trac.parrot.org/parrot/wiki/K​eysRefactor?version=1&amp;action=diff
23:24 dukeleto joined #parrot
23:25 NotFound I'll look at my laptop before and after
23:25 bkuhn joined #parrot
23:31 NotFound Before: 216952 - 33992 stripped
23:31 NotFound After:  205980 - 29096 stripped
23:33 bacek chromatic: https://trac.parrot.org/parrot/wiki/KeysRefactor
23:33 chromatic thanks.
23:33 bacek $dayjob time
23:34 dalek tracwiki: v2 | bacek++ | KeysRefactor
23:34 dalek tracwiki: https://trac.parrot.org/parrot/wiki/K​eysRefactor?version=2&amp;action=diff
23:35 dukeleto joined #parrot
23:37 NotFound Null PMC
23:37 purl i think Null PMC is or ought to be like a C NULL ptr, so no
23:37 NotFound Before: 167604 - 30588 stripped
23:37 NotFound After:  143364 - 14892 stripped
23:38 NotFound Not bad
23:39 chromatic Definitely an improvement.
23:40 chromatic Now for libparrot.
23:47 NotFound libparrot.so.1.4.0
23:47 NotFound Before: 10382421 - 3442576 stripped
23:47 NotFound After:  10363829 - 3426192 stripped
23:48 chromatic Not huge.
23:49 Whiteknight space savings is good, if it isn't adding a performance penalty
23:49 dalek rakudo: a53a1cd | pmichaud++ | docs/spectest-progress.csv:
23:49 dalek rakudo: spectest-progress.csv update: 423 files, 12114 passing, 8 failing
23:49 dalek rakudo: Failure summary:
23:49 dalek rakudo:     S12-enums/basic.rakudo aborted 2 test(s)
23:49 dalek rakudo:     S12-introspection/walk.t aborted 6 test(s)
23:49 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​53a1cdc8cb02da32b00e9e86b5f34929d32a2b2
23:50 NotFound Whiteknight: the possible penalty is for throwing exception for null access or vtable not implemented, not a big problem.
23:51 Whiteknight ok
23:51 NotFound libparrot.a
23:51 NotFound Before: 18652260 - 3351288 stripped
23:51 NotFound After:  18618096 - 3331744 stripped
23:51 NotFound More or less the same than the .so
23:54 NotFound The only disadvantage is a lot more of symbols in vtable.h, but there is no measurable impact in the compilation.
23:56 Whiteknight ok
23:56 NotFound I'll commit it now, if nobody objects.
23:59 particle i forgive you.

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

Parrot | source cross referenced