Camelia, the Perl 6 bug

IRC log for #parrot, 2009-05-21

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:02 darbelo Should I open a ticket or is this something I'm doing wrong?
00:21 dalek decnum-dynpmcs: r47 | darbelo++ | trunk/ (4 files):
00:21 dalek decnum-dynpmcs: Replace����/trunk/src/pmc/decnum.pmc
00:21 dalek decnum-dynpmcs:  (from /trunk/src/pmc/decnum2.pmc
00:21 dalek decnum-dynpmcs:  :45)
00:21 dalek decnum-dynpmcs:  ����Delete����/trunk/src/pmc/decnum2.pmc
00:21 dalek decnum-dynpmcs:
00:21 dalek decnum-dynpmcs:
00:21 dalek decnum-dynpmcs:  Enough prototyping, global-context is the way of the future.
00:21 dalek decnum-dynpmcs: Ditch the per-PMC prototype. Rename DecNum2 to DecNum.
00:21 dalek decnum-dynpmcs: Modify examples accordingly.
00:21 dalek decnum-dynpmcs: review: http://code.google.com/p/decn​um-dynpmcs/source/detail?r=47
00:29 ruoso joined #parrot
00:34 bacek joined #parrot
00:47 dalek rakudo: b516413 | pmichaud++ | src/ops/perl6.ops:
00:47 dalek rakudo: Add root_new dynop.
00:47 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​5164135efcec6c161bc7ea8f07bd0a2d15eb1d6
00:47 dalek rakudo: 20ec24c | pmichaud++ | src/builtins/ (11 files):
00:47 dalek rakudo: Convert new of parrot-based things to root_new (src/builtins)
00:47 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​0ec24c10d56d49a8fb07afe496ac1dc8a1748f8
00:47 dalek rakudo: 6079a97 | pmichaud++ | src/classes/ (20 files):
00:47 dalek rakudo: Convert new of parrot-based things to root_new (src/classes)
00:47 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​079a9751c4082a23b3f13abf3e3348d041aa23b
00:47 dalek rakudo: 064be63 | pmichaud++ | src/ (4 files):
00:47 dalek rakudo: More new -> root_new conversions.
00:47 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​64be6353842f878797873b245647b7652e29466
00:47 dalek rakudo: f08f5ad | pmichaud++ | :
00:47 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
00:47 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​08f5ad38b2d143d0941ac4712bdcad568885998
00:53 darbelo Nevermind, I just saw TT#692.
00:55 ruoso joined #parrot
00:57 hiroyuki_y joined #parrot
01:07 cotto Isn't Parrot fun!  You never know if it's insane or if you are.
01:14 ruoso joined #parrot
01:18 Whiteknight joined #parrot
01:19 bacek joined #parrot
01:27 Coke_afk Tene: APL? Danke.
01:27 Tene why?
01:27 Coke_afk darbelo: (catching up) - I just opened a ticket about that.
01:28 Coke Tene: if you're working on APL on Parrot, because I actually care about that language.
01:28 Tene Out of curiosity, why do you care about APL?  Just general interest, or do you have a use for it?
01:29 Coke I care about only because Patrick and I worked to implement it.
01:29 Tene ah
01:29 Coke why did I do that? Basically, because Chip dared me.
01:30 Tene last I looked, i tried to move it to a .HLL, but then it couldn't load dynops oslt.
01:30 Tene I feel more confident that I can get it working properly now.
01:30 Coke does it even build at this point?
01:30 Tene I've heard a lot about chip, but he left before I arrived, I gather.
01:31 Tene Dunno... I'll find out once the girlfriend is done showing me silly videos. ☺
01:32 cotto ooh.  advanced smilies
01:37 dalek parrot: r39001 | whiteknight++ | branches/gc_internals:
01:37 dalek parrot: Creating a branch to continue cleaning up the internals of the GC
01:37 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39001/
01:40 dalek parrot: r39002 | whiteknight++ | branches/gc_internals/src/gc/alloc_memory.c:
01:40 dalek parrot: [gc_internals] move memory.c -> alloc_memory.c
01:40 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39002/
01:40 dalek parrot: r39003 | whiteknight++ | branches/gc_internals (1 files):
01:40 dalek parrot: [gc_internals] move register.c -> alloc_register.c
01:40 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39003/
01:42 ruoso joined #parrot
01:43 dalek tracwiki: v20 | whiteknight++ | GCTasklist
01:43 dalek tracwiki: https://trac.parrot.org/parrot/wiki/G​CTasklist?version=20&action=diff
01:43 dalek parrot: r39004 | whiteknight++ | branches/gc_internals (1 files):
01:43 dalek parrot: [gc_internals] move resources.c -> alloc_resources.c
01:43 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39004/
02:01 cotto joined #parrot
02:06 Coke nick afk_coke
02:06 dalek parrot: r39005 | whiteknight++ | branches/gc_internals/src/gc (3 files):
02:06 dalek parrot: [gc_internals] start collapsing pools.c (nee smallobject.c) into api.c and system.c as appropriate
02:06 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39005/
02:07 tetragon joined #parrot
02:09 dalek parrot: r39006 | whiteknight++ | branches/gc_internals (1 files):
02:09 dalek parrot: [gc_internals] initial move of src/malloc.c and src/malloc-trace.c to src/gc/malloc.c and src/gc/malloc_trace.c. Needs cleaning
02:09 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39006/
02:13 dalek tracwiki: v21 | whiteknight++ | GCTasklist
02:13 dalek tracwiki: https://trac.parrot.org/parrot/wiki/G​CTasklist?version=21&action=diff
02:27 mikehh_ joined #parrot
02:33 particle1 joined #parrot
02:41 janus joined #parrot
02:42 eternaleye joined #parrot
03:20 donaldh joined #parrot
03:53 Theory joined #parrot
04:07 dalek parrot: r39007 | pmichaud++ | trunk (3 files):
04:07 dalek parrot: [pmc]: Add C<root_new> opcode to allow creating PMCs from foreign HLL classes
04:07 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39007/
04:11 eternaleye joined #parrot
04:33 cotto joined #parrot
04:53 Theory joined #parrot
05:02 japhb joined #parrot
05:37 particle2 joined #parrot
05:47 dalek cardinal: aecc5ad | tene++ | cardinal.pir:
05:47 dalek cardinal: Also set the namespace to be returned to a calling language.
05:47 dalek cardinal: review: http://github.com/cardinal/cardinal/commit​/aecc5ad3b7870e39a159037f8c2bb3308501ad2d
05:47 dalek cardinal: 144fac4 | duff++ | build/Makefile.in:
05:47 dalek cardinal: Use the parrot build dir for parrot and pbc_to_exe
05:47 dalek cardinal: If you specify the --parrot-config option to Configure.pl, it will
05:47 dalek cardinal: blithely use the bin_dir from parrot_config which will be a lie if
05:47 dalek cardinal: parrot is not actually installed anywhere. Changed the makefile to
05:47 dalek cardinal: always use parrot's build dir for the parrot and pbc_to_exe executables
05:47 dalek cardinal: (emulating rakudo here)
05:47 dalek cardinal: review: http://github.com/cardinal/cardinal/commit​/144fac45f065bc98bddc117f5ce7359e59558198
05:47 dalek cardinal: 3d6959d | tene++ | :
05:47 dalek cardinal: Merge commit 'perlpilot/master'
05:47 dalek cardinal: review: http://github.com/cardinal/cardinal/commit​/3d6959d5f8a8f5349a98e33e53da9f1eabc2d018
05:51 mikehh codetest failures (+ TODO pass) - otherwise make -k fulltest PASS
06:00 cognominal joined #parrot
06:15 eternaleye joined #parrot
06:15 dalek rakudo: e6b4630 | pmichaud++ | docs/ROADMAP:
06:15 dalek rakudo: Update ROADMAP.
06:15 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​6b4630cb76720240d036d4eb592d1bd8ddce35e
06:23 Tene Nice... APL can't even generate a makefile...
06:23 Tene :)
06:37 Tene Coke: I have a local patch that gets paraplegic to build.  Can't run tests, though.
06:40 iblechbot joined #parrot
06:42 bsdz joined #parrot
06:50 flh joined #parrot
07:15 Tene work with rakudo, too, through eval
07:18 Tene pmichaud: utf8 isn't passed through properly with eval... any ideas?
07:20 donaldh joined #parrot
07:23 mikehh nopaste?
07:23 clunker3 http://pasta.test-smoke.org/ or http://paste.husk.org/ or http://nopaste.snit.ch:8001/ or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/
07:23 purl i heard nopaste was at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at http://www.extpaste.com/ or http://paste.scsys.co.uk (for #catalyst, #dbix-class, #moose  and others)
07:27 nopaste "mikehh" at 90.209.117.226 pasted "patch for some codetest failures at r38999" (63 lines) at http://nopaste.snit.ch/16628
07:29 mikehh this is a patch for some codetest failures at r38999 from make -k fulltest -> http://nopaste.snit.ch/16628
07:55 dalek parrot: r39008 | cotto++ | trunk (2 files):
07:55 dalek parrot: [codingstd] a couple of codingstd fixes, patch courtesy of mikehh++
07:55 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39008/
07:58 cotto mikehh, thanks
07:59 dalek parrot: r39009 | cotto++ | trunk/t/codingstd/copyright.t:
07:59 dalek parrot: [t] untodo the duplicate copyright test, which seems to be passing
07:59 cotto I split it in two, since it was doing two different (if small) things.
07:59 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39009/
07:59 cotto mikehh++ for that one too ;)
08:08 donaldh left #parrot
08:44 bacek joined #parrot
10:33 cognominal joined #parrot
10:39 particle1 joined #parrot
11:07 dalek parrot: r39010 | jkeenan++ | trunk/src/pmc/packfileannotations.pmc:
11:07 dalek parrot: Eliminate trailing whitespace per mailing list report by Michael Hind.
11:07 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39010/
11:14 dalek parrot: r39011 | jkeenan++ | trunk/docs/pdds/pdd24_events.pod:
11:14 dalek parrot: Correct error in item numbers per mailing list report by Michael Hind.
11:14 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39011/
11:20 donaldh joined #parrot
11:26 dalek lua: 37cb45f | fperrad++ | src/ (2 files):
11:26 dalek lua: handle $?FILES for traceback
11:26 dalek lua: review: http://github.com/fperrad/lua/commit/37​cb45f8c819ff5422c64a2ef57045160a628d66
11:26 dalek lua: 475bbcc | fperrad++ | src/lib/luaaux.pir:
11:26 dalek lua: improve traceback output
11:26 dalek lua: review: http://github.com/fperrad/lua/commit/47​5bbccd9dc5b95b4207bb3f5f191464864758ed
11:37 particle joined #parrot
11:38 particle1 joined #parrot
12:12 flh joined #parrot
12:16 Theory joined #parrot
12:23 dalek parrot: r39012 | jkeenan++ | trunk/t/codingstd/copyright.t:
12:23 dalek parrot: Revert r39009.  Due to differences between the 'prove' associated with Perl 5.8 and that associated with Perl 5.10, we get different results on the duplicate copyright tests.
12:23 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39012/
12:24 ruoso joined #parrot
12:39 Whiteknight joined #parrot
12:41 rg1 joined #parrot
12:55 PacoLinux joined #parrot
12:56 riffraff joined #parrot
12:57 Coke tene - you have commit bits to APL, knock yourself out.
12:59 Coke msg tene - you have commit bits to APL, knock yourself out.
12:59 purl Message for tene stored.
13:00 NotFound joined #parrot
13:22 riffraff joined #parrot
13:24 Coke msg cotto please stop untodo'ing that test. Please. =-)
13:24 purl Message for cotto stored.
13:27 gryphon joined #parrot
13:32 dalek lua: 61374db | fperrad++ | src/lib/luaaux.pir:
13:32 dalek lua: fix previous commit
13:32 dalek lua: review: http://github.com/fperrad/lua/commit/61​374db7388460c94cc2a1bc495f8445c10c6cad
13:32 dalek lua: 0bbfd9e | fperrad++ | src/POSTGrammar.tg:
13:32 dalek lua: fix luap.pir
13:32 dalek lua: prevent loading lua.pbc & languages/lua/lua.pbc
13:32 dalek lua: review: http://github.com/fperrad/lua/commit/0b​bfd9eb73a852152fff2aad0d7a86fedee123db
13:32 dalek lua: 84a6ced | fperrad++ | src/POSTGrammar.tg:
13:32 dalek lua: pathname must be be escaped
13:32 dalek lua: (backslash on Windows)
13:32 dalek lua: review: http://github.com/fperrad/lua/commit/84​a6ced6e9c3a170347ed898e065b02261027854
13:32 dalek lua: ddd9113 | fperrad++ | t/ (26 files):
13:32 dalek lua: fix tests for absolute path on Windows (C:\somewhere\...)
13:32 dalek lua: review: http://github.com/fperrad/lua/commit/dd​d911302a6e1003fc91f3edcbdc436ad250ef7e
13:38 Theory joined #parrot
13:39 Coke if I have a bunch of perl files that depend on including one of the parrot installed .pm's, I'm guessing I should make a local generated file that updates @INC to the right place, and just have everything refer to the generated file.
13:39 Coke sound reasonable?
13:40 * Coke wonders what "Object must be created by a class" means.
13:40 Casan joined #parrot
13:41 PerlJam Coke: objects can't be created by other objects?
13:43 Coke it's some behavior that changed since last partcl walked the earth.
13:43 Coke so, sure; what does that mean, though? (will track down the actual pir once other thigns are working.)
13:58 Whiteknight Coke, is that an error message that you saw?
13:58 Coke Whiteknight: yes, in partcl-latest.
13:58 Coke trying to resurrect the test suite as time permits.
13:59 Whiteknight i think that error message comes from src/pmc/object.pmc:init
13:59 Whiteknight so somewhere somebody is probably doing a "$P0 = new 'Object'"
14:00 dalek partcl: r350 | coke++ | trunk/ (4 files):
14:00 dalek partcl: Add Parrot::Installed.pm
14:00 dalek partcl: In order to get at the installed Parrot::Config.pm, we need to add
14:00 dalek partcl: the installed lib dir to our path; figure out the path at config time
14:00 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=350
14:03 Theory joined #parrot
14:22 Andy joined #parrot
14:33 whoppix joined #parrot
14:34 dalek rakudo: d163016 | pmichaud++ | docs/spectest-progress.csv:
14:34 dalek rakudo: spectest-progress.csv update: 392 files, 11342 passing, 0 failing
14:34 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​163016c925fb2b256835baac1d57a43626bf059
14:35 dalek joined #parrot
14:36 Infinoid Coke: Ok, we should now have notifications for https://trac.parrot.org/parrot/timeline?ticket=on
14:45 dalek partcl: r351 | coke++ | trunk/t/cmd_ (50 files):
14:45 dalek partcl: Tests only need to run from top level build dir.
14:45 dalek partcl: (We're no longer in the parrot repository.)
14:45 dalek partcl: Fix a few perl-based scripts that need the Installed parrot config.
14:45 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=351
14:47 Plisk joined #parrot
14:59 Coke here's what's generating the failure:
14:59 Coke 25792 new P0, "Undef"                                        P0=PMCNULL
14:59 Coke 25795 assign P0, P1                                        P0=Undef=PMC(0x82acde8) P1=Object(TclArray)=PMC(0x82addc0)
15:00 Whiteknight ah, that's quite interesting
15:00 Whiteknight I wonder if that sequence was always causing a failure, or whether that's new
15:01 dalek joined #parrot
15:01 Whiteknight Can you do me a favor, create a ticket for that and assign it to me?
15:01 Coke it worked at some point.
15:01 Coke Sure.
15:01 Whiteknight I think I know how to fix it quick, but I can't till I get home tonight
15:07 Coke Whiteknight: ugh. I'll have to wait for 1.3, won't I. :|
15:07 dalek TT #696 created by coke++: Can't assign an object to Undef.
15:07 Whiteknight I don't think so, no
15:08 Whiteknight is partcl targetting Parrot HEAD?
15:08 Coke Whiteknight: no.
15:08 Coke it's targetting "installed parrot" which basically means "releases".
15:08 Whiteknight urg
15:09 Whiteknight you could probably do a pure PIR workaround if you need to work around it now
15:10 Coke esp. if the current behavior of that snippet is intentional.
15:10 dalek partcl: r352 | coke++ | wiki/ParrotIssues.wiki:
15:10 dalek partcl: added another parrot bug.
15:10 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=352
15:10 Whiteknight no, I don't think it's intentional
15:12 Infinoid cool.  dalek's trac ticket notifications are faster than my email client
15:12 Coke Infinoid: does it track every ticket status?
15:12 Infinoid It tracks the major state changes only.  See https://trac.parrot.org/parrot/timeline?ticket=on
15:13 Infinoid so it should emit messages for created, closed and reopened
15:13 Coke Infinoid++
15:14 Infinoid and it shouldn't annoy us every time someone adds themselves to cc: or adds a milestone/keyword or trivial things like that
15:20 donaldh joined #parrot
15:23 Coke ah. "anyone test "language_output_is" in an installed parrot?" he asked, expecting the answer no. =-)
15:24 Infinoid *crickets chirping*
15:24 Coke all my perl based tests are failing.
15:25 Infinoid lemme guess, path issues?
15:25 Whiteknight maybe Perl is the problem?
15:26 * Whiteknight is only joking! Perl is good
15:27 Coke # '/usr/local/lib/parrot/1.2.0/tools/parrot  ........../tcl.pbc t/cmd_cd_1.tcl' failed with exit code -1
15:27 Coke that command line seems wrong.
15:28 Coke (path to parrot is wrong, the ..... is wrong...)
15:29 Plisk joined #parrot
15:29 dalek rakudo: 7c5be8b | pmichaud++ | docs/ROADMAP:
15:29 dalek rakudo: Minor ROADMAP improvement.
15:29 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​c5be8ba2b089897f5fcb474ffb5eb430f10b63d
15:29 dalek rakudo: 97c7cec | pmichaud++ | docs/ChangeLog:
15:29 dalek rakudo: ChangeLog updates for release
15:29 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​7c7ceceb90627307f4d5dca4524d939f4ee28e6
15:29 dalek rakudo: dafdc06 | pmichaud++ | docs/announce/2009-05:
15:29 dalek rakudo: Final 2009-05 announcement updates.
15:29 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​afdc0684488b0a00591055248b83bf4c525bf31
15:30 Theory joined #parrot
15:34 NotFound Someone has some objection of reusing the file_size attribute of the filehandle pmc to store the pid of the child process?
15:34 NotFound When the handle is a pipe, that is.
15:35 dalek rakudo: c4fa3ba | pmichaud++ | docs/release_guide.pod:
15:35 dalek rakudo: Update docs/release_guide.pod .
15:35 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​4fa3ba841ecc6392c6124ae908efa61f2760098
15:35 Infinoid NotFound: Not per se.  But I'd prefer to extract the necessary bits of Filehandle into a more generic base class, to make sockets and pipes saner
15:36 Infinoid (that's one one of the things on my "when I get around to it" list)
15:36 Whiteknight Infinoid: I agree with that 100%
15:36 NotFound Infinoid: me also, but some people are demanding to have working pipes NOW
15:36 Whiteknight Have a "Stream" base class, and derive from that Socket, FileHandle, and Pipe types
15:37 Infinoid I was thinking of calling it Handle, but that works too
15:37 Whiteknight NotFound: We're all volunteers, things get implemented when we ger around to it
15:37 Infinoid perl 5's IO:: class heirarchy is fairly sane, I wouldn't have a problem with following that model
15:37 Whiteknight NotFound, best idea is still to create a Pipe PMC type, and then we can start abstracting and refactoring things later
15:38 Whiteknight probably anyway, I don't know if people would perfer FileHandle to do piping too
15:38 Infinoid +1 Pipe PMC
15:38 NotFound Whiteknight: that will need a lot of changes
15:38 Infinoid it's a branch-worthy task
15:38 Whiteknight NotFound: you think so? I don't think it would require too much
15:39 Whiteknight the only changes would be at PIR-level, doing
15:39 Whiteknight "new 'Pipe'" instead of "new 'FileHandle'"
15:39 NotFound Whiteknight: the current way is: first create a Filehandle, then open.
15:39 NotFound Whiteknight: you forget the open opcode
15:40 Whiteknight $P0 = new 'Pipe' \n open $P0
15:40 Whiteknight the open opcode calls the "open" method, which the Pipe PMC will provide
15:40 Whiteknight doesn't require any changes internally
15:40 Infinoid $P1 = $P0.'reader'()
15:40 Infinoid $P2 = $P0.'writer'()
15:40 NotFound open 'fileaname_or_command', 'mode'
15:41 Whiteknight NotFound: Okay, I forgot about the two-operand version. Add a "p" to the mode that uses a Pipe instead of a FileHandle
15:41 Whiteknight I think that's in the PDDs anyway
15:41 Infinoid Do you intend to follow perl5-like "| command" semantics for open()'s filename parameter?
15:42 Infinoid oh, ok
15:42 Tene Coke: what email address did you grant privileges for?  i can't seem to authenticate...
15:42 NotFound Whiteknight: that way is done now, but the way it works is by creating a filehandle and then calling the open function
15:42 Whiteknight yeah, PDD22 says to use the p mode for Pipes
15:42 Whiteknight NotFound: Well it's a small change to use a Pipe type instead
15:42 NotFound And I didn't write that, it was already present, I just fixed it.
15:43 Infinoid when we have a Pipe PMC, the FileHandle can pmc_morph to it
15:43 Whiteknight maybe a Pipe type doesn't make sense. I'm no architect
15:44 Coke tene: for APL
15:44 Coke ?
15:44 NotFound I'm not opposing to the creation of the pipe pmc, I'm just asking about a simple solution for the current failures.
15:44 Tene Coke: yes
15:45 Coke http://code.google.com/u/@WRRfRF1YARJBXQd6/
15:45 Infinoid the Pipe PMC doesn't necessarily have to be a direct part of the "get output from shell commands" feature, anyway
15:45 Infinoid The one I was thinking about writing is more low level than that... it's just something that knows how to call pipe() on the C level and implement 'reader' and 'writer' methods which return separate handles for each
15:45 Tene huh
15:46 Coke tene: did you check it out from http: ?
15:46 Coke or https ?
15:46 purl hmmm... https is almost same or web.. or blocked
15:46 Whiteknight Infinoid: So you would have a Pipe type, a PipeReader, and a PipeWriter?
15:46 Coke you might have to svn reloc.
15:46 Infinoid or a Pipe type which returns generic Handle objects, doesn't matter much
15:46 Tene ah, googlecode password != google account password
15:46 Infinoid Basically the same as perl5's IO::Pipe
15:47 NotFound Did we have a generic handle object? Filehandle doesn't inherit from anything
15:47 Infinoid Not yet, I want to write one.
15:48 Infinoid Since we don't have one yet, Socket is a bit ... weird at the moment
15:49 NotFound Well, I'm going to commit my workaround. The open_p_s_s opcode can be modified later to create and return some other type.
15:49 NotFound When we have it.
15:49 Infinoid NotFound: using FileHandle is fine for now, I was just talking about what I wanted to do in the future :)
15:50 NotFound Yeah, but I'm attending the demands from pmichaud of having some working pipe mechanism as soon as possible.
15:50 Infinoid No, absolutely.  working trumps perfect, every time
15:50 NotFound I agree that is an important featute for any realistic usage
15:50 Infinoid (having some working pipe mechanism)++
15:53 Tene Coke: committed.
15:54 dalek TT #697 created by coke++: Parrot::Test "language_output_is" fails in installed parrot.
15:54 dalek partcl: r353 | coke++ | wiki/ParrotIssues.wiki:
15:54 dalek partcl: another parrot bug.
15:54 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=353
15:55 Coke GAH. I should not have to keep approving posts from googlecode to googlegroups. :|
15:55 Coke pima.
15:55 jan joined #parrot
15:56 Tene ouch
15:58 dalek paraplegic: r5 | t...@allalone.org++ | trunk/ (3 files):
15:58 dalek paraplegic: (from /trunk/config/makefiles/root.in
15:58 dalek paraplegic:  :4)
15:58 dalek paraplegic:  ����Delete����/trunk/config/makefiles/root.in
15:58 dalek paraplegic:
15:58 dalek paraplegic:
15:58 dalek paraplegic:  Steal a Configure.pl from Rakudo... possible to build now.
15:58 dalek paraplegic: Tests still won't run...
15:58 dalek paraplegic: review: http://code.google.com/p/pa​raplegic/source/detail?r=5
15:58 dalek paraplegic: r6 | t...@allalone.org++ | trunk/ (2 files):
15:58 dalek paraplegic: (from /trunk/APL.pir
15:58 dalek paraplegic:  :5)
15:58 dalek paraplegic:  ����Modify����/trunk/build/Makefile.in
15:58 dalek paraplegic:
15:58 dalek paraplegic:
15:58 dalek paraplegic:  Move from APL to apl to work with other languages.
15:58 dalek paraplegic: review: http://code.google.com/p/pa​raplegic/source/detail?r=6
15:59 Infinoid uck, I need to fix that parser.
16:00 flh joined #parrot
16:03 dalek parrot: r39014 | NotFound++ | trunk/src (2 files):
16:03 dalek parrot: [core] fix unix pipe handling, now write pipes must works reliably
16:03 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39014/
16:04 Tene pmichaud: what needs to be done to support utf8 in a PCT repl?
16:04 Tene APL is kinda crippled without it...
16:05 pmichaud add 'encoding'=>'utf8' to the call to 'command_line'
16:05 NotFound Someone can unskip the 4 test and give a try in t/op/io.t ?
16:06 Tene pmichaud: it's there already
16:06 pmichaud okay, then set the encoding on stdin prior to calling 'command_line'
16:06 pmichaud (yes, we can fix this in pct as well -- these are quick fixes that get us through the issue for now)
16:07 Tene what kind of object does getstdin return?  io.pod claims parrotio, but there's no parrotio.pmc.
16:07 NotFound Tene: a filehandle
16:07 purl it has been said that a filehandle is the structure for manipulating files.  It's the FILE in open FILE, "/tmp/bobo" or die $!.
16:07 pmichaud it's a filehandle
16:08 Tene ah
16:08 pmichaud just do $P0 = getstdin, then  $P0.'set_encoding'('utf8')
16:08 pmichaud (I might be misremembering the method name)
16:08 Tene it's 'encoding'
16:13 Tene hmm... doesn't work...
16:13 purl Look buddy, doesn't work is a strong statement. Does it sit on the couch all day? Is it making faces at you? Does it want more money? Is it sleeping with your girlfriend? Please be specific!
16:14 Tene PGE can't parse it.
16:14 Tene but works fine when it's in a file.
16:15 nopaste "tene" at 166.70.38.237 pasted "encoding fail in apl... :(" (10 lines) at http://nopaste.snit.ch/16631
16:16 dalek joined #parrot
16:16 iblechbot joined #parrot
16:17 bacek joined #parrot
16:19 * Tene late to work... later.
16:19 pmichaud it may be an issue with reading utf8 from terminal/stdin
16:19 pmichaud we have had similar issues with rakudo
16:21 Infinoid "t...@allalone.org" is Tene, right?
16:21 Tene Yes.
16:22 * Infinoid will add a karma alias
16:24 ilia_ joined #parrot
16:26 dalek parrot: r39015 | Infinoid++ | trunk/CREDITS:
16:26 dalek parrot: Add a karma alias for tene's googlecode account.
16:26 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39015/
16:31 Infinoid NotFound: test passes here on linux/amd64 (and no leftover processes)
16:35 Themeruta joined #parrot
16:38 NotFound Infinoid: good. I'm going to unskip the test, then.
16:41 Infinoid ok
16:41 Infinoid NotFound++
16:43 particle joined #parrot
16:46 dalek parrot: r39016 | NotFound++ | trunk/t/op/io.t:
16:46 dalek parrot: [test] unskip pipe write test, TT #661
16:46 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39016/
16:54 Theory joined #parrot
16:56 dalek rakudo: 79d0b9a | pmichaud++ | docs/release_guide.pod:
16:56 dalek rakudo: Fix "git push --tags" in docs/release_guide.pod .
16:56 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​9d0b9a3bcce16778ebbb64b9caae87eac46686e
16:57 allison Whiteknight: what's broken now about pipes is the low-level C code, it doesn't much matter if a Pipe is a separate PMC
17:04 NotFound allison: the C code isn't broken now, at least in the unix incarnation.
17:06 NotFound The win32 one is not broken, it just does not exist X-)
17:06 allison NotFound: I saw the commit message, just looking over the change log, well done!
17:06 NotFound Thanks
17:09 allison NotFound: you can go ahead an add a second ATTR to FileHandle, rather than reusing file_size. The old ParrotIO had two "process" attributes (what's now called 'os_handle'), for pipes.
17:10 NotFound allison: did we plan to allow bidirectional pipes?
17:10 allison NotFound: win32 pipes have never worked, so no loss. It would be nice to get them to work someday
17:10 allison NotFound: you mean read and write? if possible, yes
17:11 NotFound That will need to add another atribute for a second os handler.
17:11 cotto Coke, sorry
17:12 allison NotFound: okay, then add two new ATTRs, one for the second OS handler, and one for the pid
17:14 NotFound Ok
17:16 Coke allison: partcl's 'make test' now actually passes some tests.
17:16 allison Coke: how many for you?
17:17 allison (I'm trying to figure out what's different in my checkout)
17:17 Coke at a guess, you had your build directory lying about. =-)
17:17 contingencyplan joined #parrot
17:18 allison hmmmm I thought so too, but I ran Configure.pl with no arguments, so it used the parrot_config in my path
17:19 allison that's the installed one, and I deleted the build directory for that one
17:20 allison Coke: btw, the tests I modified were just removing some hard-coded 'languages/tcl/runtime' paths from load_bytecode
17:20 Coke k.
17:20 Coke I haven't dug through all remaining failing tests, as the two sources I found are causing a LOT of them.
17:21 Coke (tickets opened for both of them.)
17:21 allison Coke: I also have an include/ directory at the top-level
17:21 Coke Files=74, Tests=1255, 179 wallclock secs ( 0.38 usr  0.20 sys + 159.07 cusr  5.54 csys = 165.19 CPU)
17:22 Coke ... that doesn't help. moment.
17:23 allison (it's an include directory containing macros.pir, mathops.pir, and returncodes.pasm
17:23 Coke I do not see a test summary.
17:24 Coke 379 failures.
17:24 Coke allison: just relocated from src ?
17:24 allison okay, that's about twice as many as I see
17:24 Coke which version of parrot are you running against?
17:24 Coke (1.2.0 here)
17:25 allison Coke: aye, relocated, because Parrot will pick them up in include/ at the top level, with no path
17:25 allison I'm running against my installed 1.0
17:27 allison Coke: (re: relocated) so, they can be included as .include 'macros.pir', which will also work after they're installed, instead of .include 'src/macros.pir', which won't work installed
17:28 allison Coke: I get a lot of these kinds of failures, where it tries to run: /usr/lib/parrot/1.0.0/tools/parrot  ......../tcl.pbc t/cmd_source_2.tcl
17:28 Coke allison: that's TT # 697
17:29 Coke I'm seeing TT #696, you're probably not.
17:29 Theory joined #parrot
17:31 allison Coke: yup, it's 697
17:31 allison Coke: and you're right, I'm not seeing 696, I'm assuming that's new with 1.2?
17:31 allison or 1.1?
17:31 purl well, 1.1 is best :)
17:32 allison oh, 696 looks like a morph bug
17:39 Coke (also have you updated? had several commits today.)
17:42 allison Coke: nope, updating now
17:42 allison I had 198 test failures before, will see after
17:43 Coke feel free to commit the move of the include files.
17:44 allison okay
17:46 bacek joined #parrot
17:46 Coke 'make spectest' now is able to trip over TT#696.
17:46 Coke (before it wouldn't run.)
17:47 allison progress :)
17:48 allison updating to the latest, I'm still at only 198 failures in my working copy
17:48 Coke I am now hopeful that at least for linux, 'make test' will work on parrot 1.3
17:48 allison trying a fresh checkout to see the difference
17:48 Coke (osx is still fubar.)
17:48 dalek partcl: r354 | coke++ | trunk/tools/tcl_test.pl:
17:48 dalek partcl: We don't live in the parrot repository any more.
17:48 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=354
17:50 nopaste "coke" at 193.200.132.135 pasted "make test from partcl, parrot 1.2, linux" (1893 lines) at http://nopaste.snit.ch/16632
17:51 Coke I might have mis-added, also.
17:55 Coke Looks like it's not just language_output_is that's borked.
17:55 Coke parrot_output_is doesn't fare much better.
17:56 Coke er, s/parrot/pir/
17:58 dalek partcl: r355 | coke++ | trunk/t/internals/ (3 files):
17:58 dalek partcl: not in the parrot repository anymore.
17:58 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=355
18:08 davidfetter joined #parrot
18:10 Whiteknight do we have anybody around who is working on the Win32 pipes?
18:10 Whiteknight I could break out my copy of Petzold and tackle them soon if they're in demand
18:10 allison Coke: the fresh checkout is also 198 test failures
18:10 purl okay, allison.
18:10 allison purl: forget the fresh checkout
18:10 purl allison: I forgot fresh checkout
18:12 NotFound Whiteknight: Infinoid said yesterday that will take a look this week
18:12 Coke allison: again, parrot 1.2?
18:12 Infinoid Whiteknight: Yeah, I'll take a look this weekend if noone beats me to it
18:13 Whiteknight Okay, if you're looking at it I won't spend time on it
18:13 Whiteknight I
18:13 Whiteknight 've got plenty of other thigns to keep me busy
18:14 allison Coke: nope, still 1.0. I'm just narrowing down the possible cause of failures. (and making sure my changes in my working copy aren't relevant)
18:14 Coke ok.
18:14 allison Coke: any objections to a simple test framework lib local to Partcl instead of Parrot::Test?
18:15 allison Coke: it may ultimately end up as the replacement for Parrot::Test, but in the mean time frees us up to work on it quickly
18:15 Coke no. but if we're going to do that, I recommend not installing the testing infrastructure in teh first place.
18:15 Coke no objection, that is.
18:16 allison Coke: not installing Parrot::Test? yes, if we can't fix it up to work installed, we'll just stop installing it
18:16 dalek parrot: r39017 | NotFound++ | trunk/src (2 files):
18:16 dalek parrot: [pio] new attribute process_id in filehandle pmc
18:16 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39017/
18:16 allison (or install the Tcl version, if it works)
18:27 bacek joined #parrot
18:37 particle joined #parrot
18:37 flh joined #parrot
19:10 dalek parrot: r39018 | pmichaud++ | trunk/compilers/pge/PGE/Exp.pir:
19:10 dalek parrot: [pge]:  Switch PGE's code generation to use root_new instead of new.
19:10 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39018/
19:20 donaldh joined #parrot
19:24 dalek parrot: r39019 | pmichaud++ | trunk/runtime/parrot/library/PGE/Perl6Grammar.pir:
19:24 dalek parrot: [pge]:  Switch Perl6Grammar to use root_new instead of new in codegen.
19:24 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39019/
19:26 NotFound Soemone said that rakudo was not ready to be built with an installed parrot?
19:27 pmichaud that's my current understanding, yes.
19:28 pmichaud although I would phrase it as "an installed parrot is not sufficient for building/testing rakudo"
19:28 NotFound My last test shows that is semi-true. It builds... as long as the devel tree is still in place X-)
19:29 pmichaud yes, rakudo always builds against the build tree, not the installed version.
19:29 NotFound Maybe is just a thing of choosing the appropiate keys from the config
19:30 pmichaud No, the problem is getting an installed parrot to recognize dynops/dynpmcs
19:30 purl okay, pmichaud.
19:30 Coke tcl is getting really close to building against only an installed parrot.
19:30 Coke (and we have dynpmcs and dynops). But only on linux, as far as I know.
19:30 NotFound The first problem it barfs on is to locate PGE/Perl6Grammar.pbc
19:31 pmichaud well, "installed parrot" might mean "install-dev"
19:31 Coke yes.
19:31 pmichaud iiuc, "make install" (isntead of "make install-dev") is certainly not sufficient for building Rakudo in any case.
19:31 Coke sorry, figured that was obvious.
19:32 pmichaud I don't know if "make install" also installs PGE/Perl6Grammar.pbc
19:32 NotFound pmichaud:  no, the error message contains the full path on the build tree
19:33 NotFound And before that it says that the Makefile is out of date
19:33 pmichaud oh, you probably need to re-run Configure.pl then
19:33 NotFound pmichaud: it keeps saying it again and again
19:33 cotto NotFound, I've been building Rakudo with an installed Parrot for a while, but it requires frequent Parrot updates.
19:34 cotto (and install-dev)
19:34 NotFound cotto: without the build tree in place?
19:34 NotFound mv parrot noparrot
19:34 cotto The build tree is still there.  I hadn't thought to see if it'd work without that.
19:34 pmichaud cotto: it probably won't.
19:34 cotto let's find out
19:35 Coke until rakudo stops relying on particular svn releases, there's not much point in building against an installed parrot, is there?
19:35 Coke (I mean, it'll easy the transition later, but it's not practical for anyone who isn't hardcore.)
19:35 pmichaud Coke: one could always choose to install a svn release that isn't an official Parrot release
19:36 NotFound Coke: being able to do it may help to clarify dependencies
19:36 pmichaud also, one could choose to install a released version of Rakudo, which does only build against released parrots
19:36 pmichaud but no, someone who is following Rakudo development closely generally can't rely on the latest Parrot release
19:36 purl okay, pmichaud.
19:37 NotFound BTW, the fakecutable compiling is much faster now. What has changed?
19:37 pmichaud I don't know.  I don't think I changed anything.
19:38 cotto Util++ did some work on pbc_to_exe
19:38 Coke (install a svn release that isn't a releas) yes, but that's not normal behavior. =-)
19:38 NotFound Last time I tried it froze my laptop. Now has do it in a few minutes.
19:38 pmichaud I didn't see if pbc_to_exe changes made it into trunk -- I'll have to look.
19:39 cotto istr that he added the fast code for gcc, but kept the old (slow) code for msvc
19:39 NotFound In fact less than a minute, I think
19:39 pmichaud My pbc_to_exe is still generating the old-style code
19:40 pmichaud not the fact gcc version
19:40 cotto pmichaud, you're right.  it won't work without the build dir in place
19:40 NotFound I don't see the conversion to string literal that was talked about, certainly.
19:40 pmichaud (and yes, I'm running gcc)
19:40 pmichaud s/fact/fast/
19:43 * cotto is 0 for 2 so far.  It's not looking good.
19:43 cotto at least my Progress Quest guy is leveling up
19:44 donaldh joined #parrot
19:45 cotto pbc_to_exe does seem faster now, though not as fast as util's original patch made it
19:51 NotFound cotto: for me is a big difference, now I can build and test rakudo
19:51 Coke msg allison I have a POC for tcl_output_is, will convert over the test suite as time permits.
19:51 purl Message for allison stored.
19:51 Whiteknight I think Util mentioned using an attached binary resource on msvc to speed it up on that platform too
19:52 NotFound I was unable to do that on my home machines since some weeks ago
19:52 Whiteknight a PGE optimizer is becoming a necessity, I think
19:52 NotFound I'm using gcc on linux
19:52 Coke can someone on windows give the latest version of partcl a shot and see how far you et?
19:52 pmichaud Whiteknight: we really need a profiler more than an optimizer at this point
19:53 pmichaud although PGE optimizations will be coming reasonably soon
19:53 Coke (requires installed parrot; 1.0 or higher)
19:53 Whiteknight pmichaud: at the risk of making people repeat themselves, what would be needed in a PIR optimizer?
19:53 Whiteknight er, PIR profiler?
19:53 pmichaud something that tells us how much time is being spent in each sub would be a start
19:54 Whiteknight okay, so you're more interested in a Sub-level profiler then in a opcode-levle profiler?
19:54 cotto There definitely haven't been any substantial changes to pbc_to_exe recently (except an accidental one my me that I undid).
19:54 Coke Whiteknight: there's a ticket regarding the generation of callgrind output, which would be peachy.
19:54 Coke Whiteknight: chromatic suggested a new callgrind runcore.
19:55 Austin_Hastings joined #parrot
19:55 cotto https://trac.parrot.org/parrot/lo​g/trunk/tools/dev/pbc_to_exe.pir
19:55 pmichaud Whiteknight: for me at this point a sub-level profiler is far more useful.  I don't think opcode-based profiling would tell me a lot, unless we happen to be calling a few very expensive opcodes and I'm unaware of it.
19:55 Whiteknight I'm hesitant to do anything PCC-related while allison is working on her branch. I could take a look at the callgrind thingy
19:56 Austin_Hastings Hey, can I ask a not-1.2-related question?
19:56 Whiteknight I don't know much about callgrind or it's output format though
19:56 Whiteknight Austin_Hastings: yes
19:56 Coke Whiteknight: we already HAVE an opcode level profiler.
19:56 Coke "parrot -p"
19:56 Whiteknight Coke: Do we? I was unaware that we had one that worked
19:56 * Whiteknight needs to do more experimenting with that kind of stuff
19:56 Coke It's from Dan-time.
19:56 Austin_Hastings What's the situation in pir with respect to $P-registers after a sub or method call? Are they all gone and need a reload, or do they hold their value?
19:57 Whiteknight Austin_Hastings: when a sub returns, it's dynamic context (registers, etc) are destroyed and garbage-collected
19:57 Austin_Hastings (I ask because I notice that PCT is generating VAR:scope('parameter') as a lex, rather than register, variable.
19:58 Austin_Hastings @WhiteKnight: I'm not asking about the sub called, but the caller's $P-registers.
19:58 Whiteknight PCT generates them as lexicals so they are visible to internal scopes, such as nested blocks
19:58 Whiteknight Oh, the caller will maintain pointers to those registers after the called sub returns
19:58 Austin_Hastings Aha! It's for dynamic scoping rather than lexical, eh?
19:58 Whiteknight yes, dynamic scoping
19:58 purl well, dynamic scoping is perfectly acceptable when used for something it's suitable for
19:59 Whiteknight purl forget dynamic scoping
19:59 purl Whiteknight: I forgot dynamic scoping
19:59 Austin_Hastings Okay, cool. Thanks.
19:59 Austin_Hastings @purl - I forgot it, too. Funny how that works. :)
20:00 pmichaud PCT thinks that most languages will want to have parameters available a lexically-scoped variables.
20:00 Theory joined #parrot
20:00 pmichaud So it implements them that way.
20:00 pmichaud *available as
20:01 Whiteknight and on that note, I am leaving. Later
20:01 pmichaud it might not be implemented yet, but I'm planning that non-lexical parameters might be possible by not providing a :name
20:01 pmichaud i.e., a parameter without a :name() attribute would provide a register but not a lexical alias.
20:01 Austin_Hastings I saw where the params are named anonymously, then loaded into .lex vars. So it seems like you're halfway there.
20:02 Austin_Hastings But frankly, I want my (register) params to have a name.
20:02 Austin_Hastings I think this is where you start pushing things into the pirflags() attribute.
20:02 pmichaud and you don't plan to access them from nested lexical blocks?
20:04 Austin_Hastings I think that depends on what you mean by "nested lexical block" - and I'm not parrot-dev --savvy enough to be able to answer you.
20:04 pmichaud okay, how about a Perl 6 example...?
20:04 pmichaud sub foo($x) {   if rand { say $x } }
20:04 Austin_Hastings How about a C example?
20:04 pmichaud okay, a C example
20:04 Austin_Hastings Because that's the model.
20:05 Austin_Hastings Declare a param in a sub, it's visible in all the curly-blocks within that sub, but not to any call-ees.
20:05 pmichaud int foo(int x) {    if (rand() < 0.5) { int myvar;  printf("%d\n", x); }  }
20:05 Austin_Hastings As I understand it, based on the information I just got, putting it in a $P-register would do the trick, no need for a .lex entry.
20:05 Austin_Hastings Right.
20:06 Austin_Hastings x is visible to all of the stuff you just wrote, but not visible inside rand() or printf().
20:06 pmichaud in the C code I just gave, the then portion of the 'if' statement is a nested lexical block
20:06 Austin_Hastings Okay.
20:06 pmichaud in Parrot, that ends up being a separate Parrot sub
20:06 NotFound Austin_Hastings: curly blocks are usually translated to separate pir subs, that's the reason to use lexicals
20:06 Austin_Hastings But in PAST it's a Stmts, not a Block, right?
20:06 pmichaud the problem is handling that "int myvar;" line
20:06 pmichaud "myvar" should only be visible within the if block
20:08 Austin_Hastings ...
20:08 Austin_Hastings The trick I've been using is the locally-maintained stack of Blocks for scoping
20:08 pmichaud right.  Each Block corresponds to a separate Parrot sub
20:09 Austin_Hastings So I'm not passing the blocks out as part of the final PAST, just replacing them with Stmts if I can get away with it.
20:09 pmichaud okay, here's a somewhat trickier example, then
20:10 eiro__ joined #parrot
20:10 nopaste "pmichaud" at 72.181.176.220 pasted "C code with nested lexical blocks" (10 lines) at http://nopaste.snit.ch/16635
20:10 eiro__ hello
20:11 allison joined #parrot
20:11 Austin_Hastings Got it.
20:11 pmichaud Note that the 'i' that is in the true part of the if statement is not the same as the 'i' that the else sees
20:11 Austin_Hastings Yep.
20:12 Austin_Hastings Is there enough internal linkage with the "hidden Block" approach for that to fall out right?
20:12 Austin_Hastings I haven't got that far yet.
20:12 pmichaud you'll have to manage your own register mappings to make it work.
20:12 Austin_Hastings Eek.
20:13 pmichaud i.e., if you're wanting to avoid PCT's PAST::Block structure
20:13 Austin_Hastings Or make the true block a Block.
20:13 pmichaud right.  PAST::Block is intended to handle lexical scoping.
20:13 pmichaud But it does mean that things are stored as Parrot lexicals.
20:14 pmichaud Eventually I want PCT to be smart enough to avoid creating a separate lexical sub when one isn't needed (as would be the case for the 'else' block in the nopaste)
20:14 Austin_Hastings But not right now, eh?
20:14 pmichaud it's non-trivial.
20:14 NotFound my @parrot_config_exe = qw( parrot/parrot_config ../../parrot_config parrot_config );
20:14 NotFound That s the order in they are checked?
20:14 pmichaud yes.
20:15 Austin_Hastings So the "right" thing to do is to adopt an "old C" style model, with all the lexicals at the top...
20:15 pmichaud Austin_Hastings: and even if PCT can optimize the 'else' block, it would have to do something to handle the 'if' block.
20:15 NotFound Maybe just puttinng plain parrot_config in the first place will solve some problems.
20:15 pmichaud NotFound: I want Configure.pl to prefer a locally generated parrot_config to any other.
20:16 pmichaud NotFound: changing the order doesn't improve at all the "build Rakudo against installed Parrot" situation.
20:16 NotFound Yes, I was thinking about the wrong problem
20:17 Austin_Hastings Hey, here's a couple of other questions.
20:17 Austin_Hastings Is there any way to suppress the .return() at the end of a generated sub?
20:18 Austin_Hastings and (2) What's the right way to code PAST for returning a list of values?
20:18 Austin_Hastings a la (x, y, z) = foo()
20:18 pmichaud We don't have a solution yet for #2.
20:18 pmichaud (haven't needed it yet)
20:18 Austin_Hastings Okay.
20:18 Austin_Hastings What's parrot doing internally when that happens?
20:18 pmichaud I'm not sure about suppressing the .return() at the end of a generated sub -- I'd have to think about it a bit.
20:19 Austin_Hastings Don't waste any time thinking about the .return thing - I'm generating my own, so it's just a bit of extra code. If there's not already a "don't issue a return()" flag, then stop.
20:19 * pmichaud stops :-)
20:19 Austin_Hastings :)
20:20 Austin_Hastings But the return-a-list thing - parrot is doing this CPS thing, right, so they are like args in the mirror?
20:20 pmichaud yes.
20:20 Austin_Hastings But I don't really know how args get handled.
20:20 pmichaud .return (1,2,3)   returns three values
20:21 Austin_Hastings Do they go into registers, or what?
20:21 pmichaud and  ($I0, $I1, $I2) = foo()    would place the first returned value into $I0, the second into $I1, the third into $I2
20:21 Austin_Hastings Right. I've seen that in some PIR.
20:21 Austin_Hastings So I wondered how to code PAST for it.
20:21 pmichaud there's not a PAST coding for it yet.
20:21 pmichaud again, we haven't needed it yet.
20:22 pmichaud PAST isn't intended to represent every possible PIR construct -- just the things common to dynamic languages (more)
20:22 Austin_Hastings You see there? You get rid of the whole "list context" thing, and everybody stops thinking about returning multiple values...
20:23 pmichaud yes, list assignment is common to dynamic languages, but thus far it hasn't been expressing itself at the PAST level
20:23 Austin_Hastings Ahh. Are the rakudo folks doing an Array then?
20:24 pmichaud Also, Parrot and PIR are about to undergo substantial changes to the calling conventions, so there's not a lot of point in putting effort here until we get to that point
20:24 pmichaud i.e., until those are in place.
20:24 Austin_Hastings Oh frabjous day.
20:24 Coke if I want to have a #! parrot    shebang, must I specify the full path for it to really work?
20:25 pmichaud right now rakudo isn't supporting multi-argument returns.
20:25 Austin_Hastings Slackers.
20:25 purl slackers is a film which features the female drummer from the Butthole Surfers discussing Madonna's pubic hair
20:25 pmichaud because what really needs to happen is that the multi-arguments get placed into a Capture object, and that Capture object is what gets returned to the caller
20:25 Austin_Hastings Maybe in P6.
20:25 pmichaud but note that in that case, PAST really only needs to support returning a single (Capture) object
20:26 Austin_Hastings brb
20:26 pmichaud and that object then contains the return values that are to be bound in the caller
20:26 PerlJam Coke: you mean as opposed to a relative path or what?
20:27 PerlJam Coke: you should be able to use #!./parrot or #!../../parrot/parrot or what not.  You can even use #!/usr/bin/env parrot   if you've got things setup right
20:27 Coke PerlJam: as opposed to no path.
20:28 Coke literally, I want "#! parrot" to work.
20:28 PerlJam oh
20:28 pmichaud afk # tree planting
20:29 PerlJam that only works if parrot is in the same dir I think.
20:29 Coke PerlJam: that only works if . is in your PATH, I think. =-)
20:29 PerlJam er, yes.
20:29 Coke bah. ``.include "test_more.pir" '' dies on parrot 1.2 installed.
20:29 allison aw... sweet! I'm down to 8 test failures in Partcl (on 1.0)
20:30 Coke allison: uhoh.
20:30 Austin_Hastings Okay. New category: namespaces.
20:30 PerlJam so, just make sure you've got your environment setup correctly and parrot in the right place and "#! parrot" will work  :)
20:30 Coke you didn't roll your own tcl_output_is, did you?
20:30 Coke PerlJam: ah. my failure is probably related to ".include test_more.pir" dying.
20:30 Austin_Hastings Is it the case that the "true" namespace for something is $HLL/$NAMESPACE/name?
20:30 allison Coke: no, I just changed how Parrot::Test::Tcl was calculating the path to parrot and tcl
20:30 NotFound PerlJam: then you try in a diffrerent unix incarnation, and it stops working X-)
20:31 Coke allison; ok. I re-rolled both tcl and pir _output_is.
20:31 PerlJam NotFound: hey, AFAIK, he was only talking about *for him*  :)
20:31 allison Coke: do you want me to send you mine as a patch?
20:31 NotFound PerlJam: then subst "you" X-)
20:32 Austin_Hastings That is, according to PDD whatever-it-was, that a Perl6 object Foo::Bar::dog winds up as ::perl6::Foo::Bar::dog?
20:32 Austin_Hastings (modulo smileys on your end)
20:33 PerlJam Austin_Hastings: what are all of those :: about?  Parrot doesn't grok those :)
20:34 Austin_Hastings Maybe not, but I'm faster at :: than I am at ';'
20:34 Coke allison: I'd rather not rely on Parrot::Test at all.
20:34 Coke at least for now.
20:34 allison Coke: agreed
20:34 NotFound PerlJam: tell the same to allison and Coke ;-)
20:34 Coke I'll get that pushed later.
20:35 Coke (er, later tonight)
20:35 Austin_Hastings But if you prefer, is the "one true namespace" of perl6's Foo::Bar::dog going to be [ 'perl6' ; 'Foo' ; 'Bar' ] with 'dog' as a local symbol?
20:35 allison Coke: how are you getting the path to the parrot executable in your changes? Mine pulls them from the Perl Parrot::Config, but would be better to pull them from parrot_config
20:36 Coke I'm assuming it's in my path. =-)
20:36 Coke I can fix that.
20:36 Austin_Hastings @NotFound - that was the first thing I changed. :)
20:36 allison Coke: I'm just using 'bindir'
20:37 NotFound Coke: I think that if parrot_config is in the path there are lots of chances that parrot is also
20:38 allison Coke: aye, pulling parrot from the path will work if it's installed in standard location, but it is handy to be able to test it on various temporary install directories
20:38 allison NotFound: except, you may want a different parrot_config than the one in the path, and then you want to test against the different parrot too
20:38 Austin_Hastings @pmichaud - while I'm thinking about it, I added a little bit to PAST. I've created a 'goto' and a PAST::Label with the obvious connection. (And no knowledge whatsoever about the higher level requirements vis-a-vis control contexts, exception handling, etc.)
20:39 Austin_Hastings @allison - Java has a trick for this
20:39 allison NotFound: I've currently got 3 parrot installs, and I test against all three
20:39 Austin_Hastings The whole "select alternative" thing
20:39 Coke allison: done, gets it from wherever you config'd partcl wth
20:40 allison Coke: you rock!
20:40 purl Dis is the drum
20:40 Coke are you able to run t/internals/select*.t ?
20:41 allison Coke: nope, those completely fail for me
20:41 Coke TT #692 is killing those for me.
20:41 Coke it finds the .include, which tries to load a .pbc, which doesn't exist, and the fallback goes boom.
20:41 allison Coke: okay, let me do a local 1.2 install
20:41 NotFound Austin_Hastings: yeah, and maybe that is the main reason that forces to use a different classpath for each application in too much cases
20:41 Coke allison: we can avoid that issue by just inlining the code from test_more.pir that we want.
20:42 NotFound Coke: An include that loads a pbc? Why?
20:42 donaldh joined #parrot
20:42 allison Coke: a reasonable stop-gap. I'd rather keep test_more in one place if we can, but if we can't, we can't
20:42 Coke NotFound: look at parrot's test_more.pir
20:43 Coke It's just to avoid having the same boilerplate everywhere.
20:43 allison Austin_Hastings: parrot has a way to do it too, just pull the path to the parrot executable from parrot_config. Everything else happens automatically.
20:44 Coke in fact, I probably will just inline that in partcl also; parrot may use that dozens of times, but I only use it 2x.
20:44 Austin_Hastings Well, as long as that problem's solved... :;-)
20:44 allison Coke: oh, you just mean the little test_more.pir include, not the whole PIR Test;More library? yeah, I'd totally go for inlining that
20:44 NotFound Coke: what I read in that file is: "Feel free to use Test::More directly" ;)
20:45 Coke NotFound: yah. do a blame on that line. :P
20:45 Coke doesn't change the fact that TT #692 is broken. =-)
20:46 Coke allison: ah, can't inline it.
20:46 Coke because test/more.pir tries to load_bytecode a .pbc , BOOM.
20:46 Coke so we're scr0d.
20:47 allison Coke: same error as TT #692?
20:47 Coke Yes.
20:47 Coke Test::More tries to load Test::Builder... boom
20:47 Tene joined #parrot
20:47 allison okay, will take a look. It's an odd error.
20:48 allison clearly Tcl code is able to load some libraries
20:48 Coke allison: load_bytecode "foo.pir" works.
20:48 allison but not foo.pbc?
20:48 Coke allison: load_bytecode "foo.pbc" barfs, if only foo.pir exists.
20:48 Coke if foo.pbc exists, it's fine.
20:48 Coke SFAIK.
20:48 allison ah, okay, I understand
20:48 allison yes, that should be fixable
20:50 NotFound I think that this may be due by imcc setting flags to tell himself what is doing
20:54 Austin_Hastings left #parrot
20:55 allison Coke: yes, it is using the "extension as passed in" instead of the "extension as found" to determine how to load the file
20:58 Coke ah, so that doesn't even work in build dir?
20:59 NotFound The problem is that those pbc are not in the installed runtime, and they must
20:59 NotFound Well, one of the problems
20:59 purl one of the problems is probably that most of the people who work at the World Wide Web Consortium are not practical people. This reminded me of a post made by Russell Beattie, PHP Web Projects Continue to Impress Me, where he states in the end:
20:59 Coke no, one of the problems is <reply>
20:59 purl okay, Coke.
21:01 allison Coke: yup, it's not an install problem, just a general problem
21:01 allison Coke: testing a fix now
21:01 NotFound Is also a install problem, IMO
21:02 afk_Coke NotFound: how?
21:02 NotFound The pbc must be here
21:02 Coke that's a separate issue.
21:02 allison NotFound: as long as the .pbcs are in a path that parrot searches, we're fine
21:02 Coke if the fallback is working, we don't NEED the .pbc
21:02 NotFound allison: but they aren't
21:02 Coke right. we're only installing the PIR, not the PBCs.
21:02 Coke but if the fallback is working, the install will still work.
21:03 allison NotFound: yes, what coke's saying
21:03 NotFound Yeah, but we must not forget the other problem
21:03 Coke what's the /other/ problem?
21:03 NotFound Thos pbc not being installed, if they must
21:03 Whiteknight joined #parrot
21:03 NotFound And I think they must, because others are
21:05 allison NotFound: it's okay not to install the .pbcs, the problem is just that right now when it falls back to the .pir files, it's still trying to load them as if they were PBC
21:05 Coke we should either intsall all off them or none of them.
21:05 allison is this still Tcl/Glob?
21:05 Coke no.
21:05 NotFound Coke: That's my idea, yes
21:05 Coke it's anything in runtime/library
21:06 Coke NotFound: yay, concensus.
21:06 Coke and now, ->
21:06 allison huh, and it's only installing .pir versions, not .pbc versions?
21:06 allison that's strange
21:06 allison so, yes, we should install .pbc
21:07 allison it won't break anything not to, but loading pbc is faster
21:08 NotFound I'd like to have an installer that copy the .pir files, and then compile them to pbc using the parrot being installed
21:11 NotFound I think the issue is just that the .pbc must be in MANIFEST.generated but they aren't
21:11 bsdz joined #parrot
21:12 allison NotFound: pbc doesn't hardcode paths, so it's fine to compile them to .pbc using the build dir parrot
21:13 allison NotFound: yes, they won't be installed if they're not in MANIFEST.generated
21:13 NotFound Fixing and testing...
21:16 NotFound Yes, that is. Checking for more files with the same problem...
21:30 NotFound Commited a bunch that I'm more or less sure that must be installed
21:31 dalek parrot: r39020 | NotFound++ | trunk/MANIFEST.generated:
21:31 dalek parrot: [cage] add several missing .pbc files to MANIFEST.generated
21:31 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39020/
21:40 particle joined #parrot
21:47 dalek rakudo: 5ed6dac | pmichaud++ |  (2 files):
21:47 dalek rakudo: Use root_new opcode from parrot trunk.  Bumps PARROT_REVISION.
21:47 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​ed6dacaf3c30ab2a9bf9f0376cd87ad93b37372
21:55 dalek parrot: r39021 | whiteknight++ | branches/gc_internals (9 files):
21:55 dalek parrot: [gc_internals] PWNd the branch with mighty HEADERIXXORmake. It builts now.
21:55 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39021/
21:58 Whiteknight joined #parrot
22:05 dalek parrot: r39022 | whiteknight++ | branches/gc_internals (4 files):
22:05 dalek parrot: [gc_internals] gut pools.c (nee smallobject.c) and move most of the remainders into mark_sweep.c
22:06 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39022/
22:06 dalek parrot: r39023 | whiteknight++ | branches/gc_internals/src/gc/pools.c:
22:06 dalek parrot: [gc_internals] delete pools.c
22:06 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39023/
22:07 * cotto looks at commit message for r39021
22:07 cotto It seems that all that GC work is taking its toll.
22:08 NotFound Maybe he commited by SMS
22:08 * Infinoid wishes he had l33t mighty HEADERIXXORmake sK1lLz too
22:10 NotFound Don't know what, but something has changed. Now I can build rakudo on the laptop and on the desk, with C and with C++, even with --optimize
22:10 Whiteknight NotFound: you couldn't before?
22:11 NotFound Whiteknight: it eated all the memory when building the fakecutable
22:11 Whiteknight oh, that issue is being resolved by Util
22:11 Whiteknight he's fixed it on linux, I think, and is working to fix it on Win32
22:11 NotFound But he hasn't commited yet
22:11 Whiteknight oh? I thought he had
22:12 NotFound The .c generated looks like some days ago
22:12 dalek parrot: r39024 | whiteknight++ | branches/gc_internals/src/gc/mark_sweep.c:
22:12 dalek parrot: [gc_internals] rename some functions. Functions internal to the gc do not need to be prefixed with Parrot_gc_*
22:12 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39024/
22:13 dalek tracwiki: v22 | whiteknight++ | GCTasklist
22:13 dalek tracwiki: https://trac.parrot.org/parrot/wiki/G​CTasklist?version=22&amp;action=diff
22:16 Ademan joined #parrot
22:21 dalek decnum-dynpmcs: r48 | darbelo++ | trunk/ (5 files):
22:21 dalek decnum-dynpmcs: Welcome decNumber and goodbye decQuad, go in peace knowing you served your
22:21 dalek decnum-dynpmcs: purpose. And let's all give a farewell to the screenfull of c++ warnings that
22:21 dalek decnum-dynpmcs: are no more.
22:21 dalek decnum-dynpmcs: review: http://code.google.com/p/decn​um-dynpmcs/source/detail?r=48
22:28 darbelo "$P0 = loadlib 'whatever'" fails silently for me if whatever isn't found. Is that intended?
22:35 NotFound darbelo: I think is, but I don't think is clearly documented
22:35 dalek parrot: r39025 | pmichaud++ | trunk/compilers/pct/src/PAST/Compiler.pir:
22:35 dalek parrot: [pct]:  Give a more useful diagnostic for variables not in scope.
22:35 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39025/
22:38 darbelo It seems an odd failure mode to me, figured I'd check if it was intended.
22:38 allison darbelo: not really the desired behavior, no
22:38 allison darbelo: I think there's a ticket for it already
22:39 NotFound allison: then what to do when the intention is to try several variants? Catch the excpetions?
22:39 dalek parrot: r39026 | allison++ | trunk/src/packfile.c:
22:39 dalek parrot: [cage] Update library loading so it loads the file as bytecode or source
22:39 dalek parrot: based on the extension of the file that's found, rather than just using
22:39 dalek parrot: the requested extension, so defaulting to .pir from .pbc will work.
22:39 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39026/
22:40 darbelo Found it. TT #437.
22:41 allison NotFound: when loading PIR/PBC files it goes ahead and tries all the variants, and only throws an exception if the file can't be found at all
22:41 allison NotFound: should do the same for dynexts
22:43 NotFound allison: we have some control over the pir/pbc/watever, we don't control external libraries
22:44 bacek joined #parrot
22:45 allison NotFound: we search for them along several paths, just like PIR/PBC, so we have some control
22:45 NotFound Look for example SDL.pir, it tries a lot of variants
22:48 allison NotFound: in src/dynext.c we return Undef from Parrot_load_lib when no library can be loaded
22:48 allison NotFound: oh, you mean trying lots of variants from PIR, not at the C level?
22:49 allison NotFound: then, yes, it should catch an exception
22:49 allison NotFound: and really, SDL is probably doing something wrong if it has to try a bunch of variants from PIR
22:50 pmichaud I think that SDL tries the variants because libsdl is installed differently on various platforms.
22:50 allison NotFound: or, just still targeting legacy code
22:50 pmichaud i.e., many platforms don't provide the libsdl.so symlink
22:51 NotFound pmichaud: I think that if someone needs to try a .so.0 his system has a problem
22:51 pmichaud NotFound: agreed, but I know that various linux distros have this problem.
22:52 allison grep doesn't find a loadlib in runtime/parrot/library/SDL
22:52 NotFound allison: ack does
22:52 pmichaud allison:  it's in runtime/parrot/library/SDL.pir
22:52 pmichaud (not in SDL/ subdir)
22:52 NotFound Ah, yes, sorry
22:53 allison NotFound: yeah, just found it moving the grep up a directory
22:54 allison NotFound: SDL does correctly check for an Undef return value from loadlib
22:54 allison darbelo: you can just check the return value to see if it's "true"
22:55 allison darbelo: so, it's not entirely silent. But I do also prefer throwing an exception. (There's even a comment in the code where it would be logical to throw an exception, asking if it should throw an exception instead of returning Undef)
22:56 darbelo allison: I'm from the 'Burst into flame' school of error reporting. It seems odd to me to just 'not fail' on failure :)
22:56 tetragon joined #parrot
22:57 darbelo I'm looking at the code now too.
22:57 NotFound allison: there is a related problem: some libraries are linked to libparrot, the failure of loadlib is ignored, and dlfunc gets the symbol from the current process image.
22:58 NotFound So if you throw an exception, you'll get a lot of bug reports
22:59 wayland76 joined #parrot
23:00 bacek_ joined #parrot
23:02 bacek_ good morninh
23:02 bacek_ morning
23:02 afk_Coke allison: another partcl commit.
23:04 Infinoid morning bacek_
23:04 bacek Infinoid: thanks for comment in TT#452
23:05 dalek partcl: r356 | coke++ | trunk/ (15 files):
23:05 dalek partcl: Roll out own _output_is test functions, so we don't have to rely on parrot.
23:05 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=356
23:05 Infinoid I hope I summed up the problem well
23:06 bacek From my point of view problem is "using mmd for vtable is harmful and slow"...
23:07 Infinoid yeah.  Another point of view is "all these things should be overridable by pir at runtime", and I'm not sure how those two views interact
23:07 Coke I am dismayed that we already had it not using vtables, then we went through and added it all in, now we're going through and ripping it all out.
23:07 Infinoid For instance, I would be perfectly happy with a lean & fast Integer class... which morphs into an IntegerSubclassable class when you try to extend it
23:08 bacek .sub 'infix:+'(_,_) ... .sub 'infix:+'(_,'Foo')
23:08 bacek This is rakudo way.
23:08 Infinoid Especially if we can somehow convince pmc2c to generate IntegerSubclassable automatically.
23:08 Coke + neq "vtable add"
23:08 allison Coke: well, what it was using before was another completely different dispatch system
23:09 wayland76 Quick question; does anyone know the policy of which files go where inside the "tools" directory?  (for more details, see https://trac.parrot.org/parrot/ticket/677 )
23:09 Coke allison: ah, so we're not going in loops, just wandering about. That's slightly better, actually. =-)
23:09 allison Coke: not vtables or multiple dispatch
23:09 Coke wayland76: there is no policy.
23:09 Coke stuff just got plopped in various locations.
23:09 wayland76 Coke: Ok, do we want a policy?
23:09 wayland76 Or at least a guideline or something?
23:09 darbelo cotto: ping
23:10 Coke guideline good.
23:10 Infinoid anyway, would be great to get some parrot designer input on TT#452
23:10 allison Coke: aye. the old system called itself "multiple dispatch", but it was really more like simple vtables. I should have just converted it straight to vtables the first time.
23:10 bacek allison: can we declare that "mmd should'n be used for vtable calls"?
23:10 allison bacek: no, mmd should be used when mmd is needed
23:10 Coke does it make sense to have MMD for /vtables/ though?
23:11 allison bacek: but mmd shouldn't be used when all you want is simple inheritance
23:11 Coke methods, sure.
23:11 bacek then we have to convert all vtable methods to just methods
23:11 Infinoid I'd like a clear way to determine when mmd is needed.  In the case bacek ran into, the PMC functions fine without MMD but some of the stuff *using* it wanted to override things through MMD
23:11 allison Coke: ah, see my conversion made it so each PMC only gets MMD dispatch when it specifically wants MMD dispatch
23:11 Coke bacek: 'vtable method' isn't a thing, apparently.
23:11 cotto darbelo, pong
23:12 NotFound allison: note that example in TT #692 was dependant on not having some .pbc installed, and now they are
23:12 allison Coke: that is, a vtable call always calls a vtable function
23:12 bacek first test in t/pmc/multidispatch.t
23:12 dalek parrot: r39027 | chromatic++ | trunk/docs/book/ch04_compiler_tools.pod:
23:12 allison NotFound: it was still a bug,
23:12 Coke NotFound: you can easily duplicate the error with no installation.
23:12 dalek parrot: [book] Revised PCT chapter for readability and flow.
23:12 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39027/
23:12 bacek It want to override VTABLE_add
23:12 dalek parrot: r39028 | whiteknight++ | trunk (62 files):
23:12 dalek parrot: [gc_internals] merge the gc_internals branch into trunk. Monkeyed with the makefile and manifest, so you're probably going to need to make realclean && perl Configure.pl after updating
23:12 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39028/
23:12 NotFound allison: yeah, but the example is no longer a test
23:13 allison NotFound: you can do a manual test
23:14 allison all it needs is a simple .pir file, and try to load it as .pbc
23:14 darbelo cotto: I converted DecNum from decQuad to decNumber but I ran into a snag: Just how big does a big number have to be?
23:15 allison NotFound: my test was a file x.pir in the same directory as the test script
23:15 bacek allison: is first test in t/pmc/multidispatch.t correct?
23:16 dalek parrot: r39029 | whiteknight++ | branches/gc_internals:
23:16 dalek parrot: Removing gc_internals branch because I'm done with it
23:16 cotto darbelo, what do you mean?
23:16 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39029/
23:16 allison bacek: I'll take a look
23:16 Whiteknight darbelo: Do you have a limitation?
23:16 cotto It's kinda the point of the library that we can have arbitrarily large numbers.
23:17 dalek tracwiki: v23 | whiteknight++ | GCTasklist
23:17 dalek tracwiki: https://trac.parrot.org/parrot/wiki/G​CTasklist?version=23&amp;action=diff
23:17 allison bacek: it's only correct if Integer is doing multiple dispatch
23:18 darbelo decNumber isn't really "arbitrary presicion", it has a big array of digits at the end of the structure. The length is #define-able, but fixed.
23:18 bacek so my question: should we use mmd for vtable?
23:18 allison bacek: since we're changing Integer *not* to do multiple dispatch, then the test will need to change
23:18 allison bacek: not sure what you're asking?
23:19 Infinoid the test implies the possibility of subclasses or other code wanting to override vtables at runtime
23:19 allison bacek: the point of the test isn't to make sure Integer is doing multiple dispatch, the point is to test multiple dispatch, and Integer happened to be a handy candidate to test it
23:20 Infinoid so these changes disallow that, and if anyone relies on it, it also implies a deprecation cycle
23:20 darbelo True arbitrary precision would need a linked list of 'buckets', decNumber assumes contiguous storage for all of it digits.
23:20 bacek allison: what the difference between VTABLEs Integer.add and Foo.splice?
23:20 * cotto looks at documentation
23:20 donaldh joined #parrot
23:21 Infinoid if it just used Integer because Integer was handy, then that's fine
23:21 Infinoid we just weren't sure
23:21 allison Infinoid: the subclassing case is fine, since anyone who wants their subclass to do MMD can make their subclass do MMD
23:21 Infinoid ok, cool
23:21 darbelo cotto: http://speleotrove.com/dec​imal/dnnumb.html#decnumlsu
23:21 allison Infinoid: what we're disabling is the ability to add arbitrary alternates to the dispatch table
23:22 bacek allison: so we need deprecation cycle.
23:22 Infinoid EBADTESTS was the answer I was hoping for :)
23:22 allison bacek: try a little more detail to the question? They're different classes and different methods.
23:23 allison bacek: we've already had a deprecation cycle, they were included in DEPRECATED.pod in 1.0
23:23 bacek allison: checking deprecated.pod
23:23 cotto It's nice how they give it an obvious name like "lsu" so you know exactly what it does.
23:24 allison bacek: you'll find it as https://trac.parrot.org/parrot/ticket/452 in DEPRECATED.pod
23:25 darbelo It's the "least significant unit", which makes you wonder: "where are the other units, then?"
23:25 Infinoid awesome.  so we can just fix up the tests and life is good
23:25 Infinoid darbelo: purl ate them
23:25 bacek allison: ok. so I'll go ahead and replace all MUTLI's into VTABLE's
23:25 allison Infinoid: aye
23:25 cotto nom
23:26 darbelo Infinoid: That's what the documentations says too.
23:26 cotto darbelo, I'd say give it a reasonable default (512 digits?) and make it easy to change.
23:26 allison bacek: aye, that's good. a simple if/else construct can handle the variants between types
23:27 bacek allison: it can. If not I can just fall back to MMD.
23:27 allison bacek: exactly (what I was just typing)
23:27 allison bacek: the final "else" can just make the mmd call
23:27 darbelo "Easy to change" == "Pain in the ass" + "memory allocation trickery"
23:28 bacek allison: we always have foo(DEFAULT) in current PMCs.
23:28 cotto bacek++ #this issue is the reason I didn't get very far in converting MULTIs to VTABLEs.
23:28 rakudohudson joined #parrot
23:29 darbelo It's a compile-time constant. The only way to 'enlarge it' is to over allocate and overrun the array.
23:29 allison bacek: many of them do, yes
23:29 cotto darbelo, can't you just make sure DECNUMDIGITS is #defined to something appropriate?
23:29 bacek cotto++ # If I'll remove all MUTLI's from PMC's it will simplify life in pmc_pct branch :)
23:29 cotto darbelo, I was thinking that if someone needed to change it, they'd have to recompile anyway.
23:30 allison bacek: some of them, especially numeric PMCs, just extract a value from the second PMC, as the default
23:30 cotto bacek, there seem to be many such tasks
23:30 cotto s/ anyway././
23:31 darbelo Oh, that *is* easy to change: just adjust the "-DDECNUMDIGITS=xxx" line in the makefile.
23:31 bacek allison: yes. Is it a problem?
23:31 cotto anything else has potential for significant ugliness
23:31 allison bacek: is what a problem?
23:31 cotto (although I though that decNumber did some dynamic stuff once a number got past a certain point)
23:31 allison bacek: extracting the numeric value instead of MMD dispatch?
23:32 bacek allison: yes
23:32 allison bacek: nope, it's a good default strategy
23:32 bacek allison: ok.
23:33 bacek afk # time for $dayjob
23:33 allison bacek: I mentioned it just because in some cases you'll be translating the final else to MMD dispatch, and in some cases just to some simple operation
23:33 darbelo cotto: That's only for the internal buffers of the built-in functions.
23:34 cotto ok
23:36 darbelo You can create numbers as large as malloc let's you and the library will handle them. But resizable storage would be a pain in the ass to do here.
23:41 cotto in that case, just pick a fixed value and fail gracefully
23:41 cotto ideally only when a failure is appropriate, but that's your decision ;)
23:43 darbelo All conversion routines will round at the number of digits specified in the context. And I capped that value at DDECNUMDIGITS. So we don't fail, we just round it to fit.
23:43 Andy Quiz!
23:44 Andy What is eating all my cycles on my Mac?!?!?
23:44 darbelo A gremlin!
23:44 cotto a forkbomb?
23:44 purl i guess a forkbomb is :(){ ::& };:
23:45 jonathan purl is sometimes helpful. :-)
23:45 cotto Hmmm.  I wonder what that does. ;)
23:45 Andy ping infinoid
23:45 purl I can't find infinoid in the DNS.
23:45 dalek decnum-dynpmcs: r49 | darbelo++ | trunk/build/src/ (2 files):
23:45 dalek decnum-dynpmcs: Make room for up to 512 digits in a DecNum.
23:45 dalek decnum-dynpmcs: If you want more you'll have to recompile.
23:45 dalek decnum-dynpmcs: review: http://code.google.com/p/decn​um-dynpmcs/source/detail?r=49
23:46 Andy purl, infinoid?
23:46 purl infinoid is Mark Glines <mailto:mark@glines.org> or likes shiny things
23:48 Andy Oh!  Hah!  It's my md5 brute force computator!
23:51 Infinoid who, me?
23:51 Andy Yeah, you.
23:51 Infinoid o hai
23:51 Andy let's talk splint and asserts and stuff
23:51 cotto It's odd how nobody makes a decent md5 decompressor, especially since the compression ratio is so high.
23:51 Infinoid cotto: I'd pay $50 for one of those
23:51 Andy http://elliottkember.com/kember_identity.html
23:51 Andy is what I'm working on.
23:52 Infinoid cool
23:53 Infinoid So, I think we talked briefly about ASSERT_ARGS not playing nicely (enough) with splint
23:54 Andy ok
23:54 Andy do go on.
23:54 Andy I'm working on $WORK, but listening.
23:54 Infinoid I'm trying to find the discussion... it was something of a flyby comment at the time
23:55 Andy yes, there are things you can add to splint
23:55 Andy to the code to make splint happy
23:55 Andy doyou have an example of a function that we can look at?
23:55 Infinoid pmc_new(PARROT_INTERP, INTVAL base_type)
23:56 Infinoid ASSERT_ARGS(pmc_new) will break at runtime if interp is NULL
23:56 Andy break?  or fail.
23:56 Infinoid break.  SIGABRT
23:56 Infinoid with an assertion failure message
23:56 Andy well, but that's what we want.  So it's not broken. :-)
23:57 Andy that was my confusion.
23:57 Andy ok
23:57 Andy If you have code like   pmc_new( NULL ), splint should catch that.
23:57 Infinoid sure, I just saw r38751 and wasn't sure whether it plays nicely with splint
23:57 Infinoid yes
23:57 Andy Does it?
23:58 Andy That might be a good test. :-)
23:58 Infinoid I have no idea.  I haven't run splint in some time
23:58 Andy :q
23:58 Infinoid So what was the intention behind https://trac.parrot.org/parrot/changeset/38751 ?
23:59 Andy Oh, I was having problems with splint macros.  I added those, and then later that niht had to back 'em out.

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

Parrot | source cross referenced