Camelia, the Perl 6 bug

IRC log for #parrot, 2010-03-18

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:16 Mokurai2 joined #parrot
00:18 payload joined #parrot
00:23 Austin I need a name: If I'm merging hashes, and the leftmost hash with a value takes precedence, that's the default behavior. What is it called if the rightmost value takes precedence?  merge(%a, %b, :righmost_value_wins) ?
00:26 darbelo :the_other_way_around
00:26 cotto_work :rtl
00:26 darbelo :keep_right
00:27 chromatic :sane
00:28 cotto_work merge(%a, :this_one(%b));
00:28 sorear :assigny
00:28 sorear :last_wins
00:30 cotto_work merge(%a, %b, :priority('L'));
00:30 Austin Hmm.
00:30 darbelo :bikeshed
00:30 Austin That's hard to type, but very clear.
00:30 Austin I like :priority.
00:31 Austin Thanks.
00:31 cotto_work or :precedence.  I'm not sure which one would make more.. EBIKESHED
00:42 Austin Since I've got places in the Close compiler that use both leftward and rightward merging, and since I just had a hard time figuring out what :use_last(1) meant - my original name for this - I reject your EBIKESHED. But thanks for playing.
00:47 sorear How do I go about debugging an error like this?  http://pastie.org/874717
00:48 hiroyuk__ joined #parrot
00:48 Austin I dunno. I'd ask people on #parrot..
00:48 Infinoid oh, hi #parrot!
00:49 * Infinoid updates dalek's trac ticket logger
00:49 dalek joined #parrot
00:51 Infinoid Someone please create or close a bug. :)
00:52 Whiteknight working on it
00:52 Whiteknight TT #389
00:52 Infinoid msg bubaflub Thanks, applied (with some tweaks).
00:52 purl Message for bubaflub stored.
00:55 abqar joined #parrot
01:12 * lucian hates uni assignments
01:13 lucian allison: about pynie objects, how do you suggest to proceed?
01:15 lucian allison: the core types that exist now have factory functions
01:31 hiroyu___ joined #parrot
01:44 chromatic joined #parrot
01:48 preflex joined #parrot
01:54 snarkyboojum joined #parrot
01:57 * Austin ++ # Another passing testcase
01:58 davidfetter yay!
02:03 dalek rakudo: 2189449 | jonathan++ | src/Perl6/Grammar.pm:
02:03 dalek rakudo: First cut of user defined operators. Works for infixes just fine, and the meta-op forms then also work, modulo some little tweaks we'll need on the lookup. postfixes don't work, but I'm too tired to work out why tonight.
02:03 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​1894495fbb5416c6e9302d20a2f999b81c7d62c
02:05 Whiteknight chromatic: I ran out of hacking time tonight and got myself lost. No progress and nothing to commit (though I have a patch locally that's slowly growing into something nice, I think). I'll pick it up again tomorrow. Talk to you then
02:16 dalek parrot: r44990 | cotto++ | trunk/src/ops/pmc.ops:
02:16 dalek parrot: [pmc] restart ADDRESS is brokenly equivalent to goto ADDRESS; use the goto form
02:16 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44990/
02:30 atrodo joined #parrot
02:50 hercynium joined #parrot
02:55 chromatic joined #parrot
03:00 dalek rakudo: c52d193 | (David Romano)++ | t/spectest.data:
03:00 dalek rakudo: Merge remote branch 'upstream'
03:00 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​52d19323102d7c12e9726945cb5d9432aa1c55b
03:00 dalek rakudo: d52d50d | (David Romano)++ |  (3 files):
03:00 dalek rakudo: Merge remote branch 'upstream'
03:00 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​52d50d17024fe18dc8cd5d5892e86578452e981
03:00 dalek rakudo: 27ff4c7 | (David Romano)++ | src/Perl6/Grammar.pm:
03:00 dalek rakudo: [Grammar] Comment for infix_postfix_meta_operator
03:00 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​7ff4c7812947d2930c6c576bba05fed8e21982e
03:00 dalek rakudo: a223dc0 | (David Romano)++ | docs/ROADMAP:
03:00 dalek rakudo: Merge remote branch 'upstream'
03:00 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​223dc090c575143c7079ace83149eac3b64151a
03:00 dalek rakudo: 2abcdcd | (Solomon Foster)++ | src/Perl6/Grammar.pm:
03:00 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
03:00 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​abcdcde49c1fddb3d0a68f761029e55e2b43139
03:03 cotto bacek_at_work, ping
03:20 theory joined #parrot
03:21 dalek parrot: r44991 | japhb++ | trunk/runtime/parrot/library/Config/JSON.pir:
03:21 dalek parrot: [library] Config::JSON: switch from JSON language (old API, deprecated and removed) to data_json language (new API); change a load_bytecode of a .pir to .pbc
03:21 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44991/
03:22 snarkyboojum joined #parrot
03:31 theory joined #parrot
03:35 janus joined #parrot
03:44 parthm joined #parrot
03:46 cotto clock?
03:46 purl cotto: LAX: Wed 8:46pm PDT / CHI: Wed 10:46pm CDT / NYC: Wed 11:46pm EDT / LON: Thu 3:46am GMT / BER: Thu 4:46am CET / IND: Thu 9:16am IST / TOK: Thu 12:46pm JST / SYD: Thu 2:46pm EST /
03:49 brooksbp_ joined #parrot
03:52 snarkyboojum_ joined #parrot
04:04 petdance joined #parrot
04:05 petdance ping Coke?
04:05 _2x2l joined #parrot
04:32 dalek blizkost: 882df17 | sorear++ |  (7 files):
04:32 dalek blizkost: Add P5SV as a base class for P5 data
04:32 dalek blizkost: This includes reference count logic; eventually will be much more.
04:32 dalek blizkost: review: http://github.com/jnthn/blizkost/commit/​882df17b3927a33c91aec3fafd0cdd1e5300779e
04:32 dalek blizkost: ef0cf35 | sorear++ | build/src/pmc/Makefile.in:
04:32 dalek blizkost: Use explicit makefile dependencies for .pmc.dump
04:32 dalek blizkost: pmc2c couldn't be persuaded to do the correct order, so now make
04:32 dalek blizkost: feeds files to it one at a time.  As a perk, make -j will now
04:32 dalek blizkost: perform PMC code generation in parallel.
04:32 dalek blizkost: review: http://github.com/jnthn/blizkost/commit/​ef0cf35ea25b1948cf1058d30a542f3e5cd12df8
04:36 sorear \o/ dalek knows my name now
04:43 cotto It's a big day.
04:44 sorear how big
04:44 cotto <----------------------------------------->
04:44 cotto that big
04:44 cotto (not to scale)
04:49 cotto If you have a pmc2c issue, feel free to gripe here next time.  I love making fun... helping people with those.
04:49 cotto sounds like you found a good fix though
04:53 sorear I have a hunch that it's processing files in keys %ARGS order rather than @ARGV order
04:53 sorear or maybe that's make's fault
04:53 sorear anyways, I've modified a group of unrelated PMCs into an inheritance heirarchy, and can't easily get them to build in order
04:54 sorear couldn't
04:55 sorear also, I did ask in here
04:55 sorear 4 hours ago
04:55 sorear I guess everyone else was as stumped as me
04:55 cotto oh.  That happens sometimes.
04:58 cotto warnocking is a harsh mistress
04:59 dalek parrot: r44992 | petdance++ | trunk/config/auto/warnings.pm:
04:59 dalek parrot: sort the options numerically so I can track changes better
04:59 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44992/
04:59 dalek parrot: r44993 | petdance++ | trunk/config/auto/warnings.pm:
04:59 dalek parrot: fix some teeny spelling
04:59 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44993/
05:07 dukeleto 'ello
05:07 sorear hello.
05:08 dukeleto sorear: i see that blizkost is getting more love. good to see
05:09 sorear yes
05:09 sorear I think it's important to have this releasable by (not necessarily in) R*
05:10 sorear people will laugh at a "usable release" that can't even access CPAN
05:10 sorear I would, anyway :)
05:10 dukeleto sorear: i think when Blizkost can load Data::Dumper, that will be a huge milestone :)
05:12 sorear why?  Blizkost'd Data::Dumper will still only be able to dump PMCs
05:12 sorear er
05:12 sorear dump SVs
05:12 sorear if I'm writing in Parrot, I'd much rather have something that can dump PMCs
05:13 sorear (now, PONIE Data::Dumper would be nice.  But even I'm not crazy enough to resurrect *that*.)
05:13 dukeleto sorear: right now, or last I checked, Data::Dumper does not work because it has XS. right now it can't even dump SVs
05:13 sorear hmm, XS is a problem?
05:14 dukeleto sorear: yes :)
05:14 sorear my current goals are to get the code a bit more accessible (move as much logic as I can out of C) and support a larger cross section of the Perl data structure API
05:14 dukeleto sorear: read the TODO file in Blizkost
05:15 dukeleto sorear: and/or http://leto.net/dukeleto.pl/2009/09​/blizkost-is-passing-102-tests.html
05:16 sorear oh, that's almost certainly trivial
05:16 sorear somebody forgot to use RTLD_GLOBAL
05:16 sorear well
05:17 sorear obvious, maybe not easy to fix
05:17 dukeleto sorear: trivial enough that no one has fixed it since September :)
05:17 dukeleto sorear: i would love to hear how you would go about getting Data::Dumper/XS working
05:18 dukeleto sorear:  what exactly is RTLD_GLOBAL ?
05:18 sorear it's kinda like the difference between a lexical import and a package import
05:19 sorear by default, libraries loaded at runtime do not have their symbols visible except via dlsym
05:19 sorear which is why the XS code can't see the Perl API
05:20 dukeleto sorear: interesting
05:20 sorear now, having said this, I can't find where dlopen is even called
05:22 dukeleto sorear: yeah, an ack -a for dlopen shows nothing
05:29 sorear the library loading is done with .loadlib
05:29 bacek_at_work cotto, pong
05:29 sorear which... does not take a flags argument :(
05:30 sorear loadlib opcode doesn't either
05:31 plobsing sorear: If you want a quick hack, using dlsym to get ahold of C's dlopen function might do the trick
05:32 dalek parrot: r44994 | Util++ | trunk/tools/dev/branch_status.pl:
05:32 dalek parrot: [codingstd] Removed trailing whitespace
05:32 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44994/
05:32 sorear plobsing: Yeah.  (though it won't work on Win32...)
05:33 cotto bacek_at_work, what needs to happen for proper dynop support in opsc?
05:33 cotto i.e. how much have you done already?
05:36 sorear (Does dynpmc work at all on windows?  This Makefile seems to pretty deeply assume UNIX so semantics)
05:41 sorear dukeleto: If I may ask, what is the point of using the Perl testsuite here?  It's just being passed to eval and not exercising much of the binding layer?
05:42 dukeleto sorear: you are right. but if it exercises even 1% of the binding layer, then I think it still has some use
05:42 dukeleto sorear: but if it exercises 0%, then I guess it is useless
05:44 dukeleto sorear: it was mostly for moral support :)
05:45 bacek_at_work cotto, no idea. I didn't check dynops code handling in ops2c.
05:46 cotto ok
05:46 bacek_at_work cotto, but I don't expect much work there.
05:47 cotto that seems likely
05:48 parthm left #parrot
05:58 sorear Is there any good way to generate coverage metrics for a Parrot extension?
05:58 dukeleto sorear: are you wanting to generate coverage for Blizkost?
05:59 sorear yes
05:59 sorear eventually.
06:01 dukeleto sorear: you can look at the 'cover' target in the Parrot Makefile
06:01 chromatic joined #parrot
06:01 dukeleto sorear: it shouldn't be hard to steal for Blizkost
06:02 sorear thanks.
06:16 fperrad joined #parrot
06:44 NotFound sorear: maybe someone forgot to link the XS loader.
06:45 dukeleto NotFound: what now?
06:45 purl now is the time for the Kwisatz Haderach to arise and conquer America on a sandworm army
06:45 dukeleto purl++
06:46 NotFound dukeleto: in order to load XS modules dynamically, the XS loader must be linked statically to the embedder program.
06:49 NotFound Here is an example: http://www.linuxjournal.com/article/2901?page=0,1
06:53 dalek parrot: r44995 | dukeleto++ | trunk/t/dynpmc/rational.t:
06:53 dalek parrot: [t] Convert t/dynpmc/rational.t to PIR
06:53 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44995/
06:54 sorear NotFound: no.  The error makes obvious that that's not what's happening.  Also, the XS loader is linked.
06:54 NotFound sorear: And initialized?
06:54 sorear yes
06:56 sorear anyways, if we hadn't done that, the error would have been something like "Could not resolve method bootstrap via package DynaLoader"
06:57 sorear the actual error we get, from that paste, is telltale of ld.so issues
06:57 sorear give me a chance to add RTLD_GLOBAL
06:58 * dukeleto stands back and waits for magic to happen
07:05 dalek TT #1517 created by dukeleto++: Comparing Rational PMC to Integer PMC with == blows up
07:05 dalek TT #1517: http://trac.parrot.org/parrot/ticket/1517
07:06 cotto dukeleto, make sure that your dynpmcs are up-to-date.  The makefile is nvb about dynpmc and dynop dependencies.
07:08 NotFound BTW blitzkhost doesn't build with a parrot built with c++
07:08 sorear I'm not suprised at all
07:09 dalek parrot: r44996 | dukeleto++ | trunk/t/dynpmc/rational.t:
07:09 dalek parrot: [t][TT #1517] Commented out test for comparing Rational PMC to Integer PMC via ==, which currently blows up
07:10 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44996/
07:10 dalek parrot: r44997 | cotto++ | trunk (4 files):
07:10 dalek parrot: [profiling] enable generation of profiles that will always be identical given the same PIR
07:10 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44997/
07:10 cotto nice to get some urls on those tickets
07:10 cotto Infinoid++
07:11 uniejo joined #parrot
07:16 sorear so much for "accessing dlopen using the NCI"
07:16 sorear Parrot VM: PANIC: vti is an unknown signature type.
07:17 * sorear tries to find a compatible supporte done
07:18 plobsing sorear, if you wanted to add support for 'vti', you could use nci_thunk_gen
07:18 sorear where is the supported list?
07:19 plobsing src/nci/{core,extra}_thunks.nci
07:19 sorear the PDD isn't quite clear on the format of signatures - what order should I put the letters in?
07:19 sorear void dlopen(char *, int)
07:19 plobsing that is vti
07:19 plobsing "${ret}@{args}"
07:20 plobsing sorear: what I am getting at with nci_thunk_gen, is that you can create a dynext library that, when loaded, adds support for other function signatures.
07:21 sorear oh
07:21 plobsing although creating a dynext library to assist with loading a dynext library seems a little circular
07:21 plobsing sorear: it's my 80% good enough solution to make NCI suck a little less
07:22 sorear heh
07:22 sorear pti is supported
07:22 sorear which is the real signature of dlopen
07:22 riffraff joined #parrot
07:23 sorear I used vti thinking that, since I didn't want the return value, I'd save some hassle...
07:24 sorear ... apparently ltrace can't see inside parrot
07:28 sorear dlopen doesn't even work properly if you dynamically link libdl, hmm
07:28 * sorear hacks parrot
07:36 sorear Loaded Data::Dumper
07:36 sorear Usage: Data::Dumper::Dumpxs(PACKAGE, VAL_ARY_REF, [NAME_ARY_REF]) at /usr/lib/perl/5.10/Data/Dumper.pm line 190.
07:37 sorear this is after changing RTLD_LAZY to (RTLD_LAZY|RTLD_GLOBAL) in config/gen/platform/generic/dl.c and reinstalling
07:37 sorear I am stumped on how to do this without hacking Parrot
07:40 sorear any manual on UNIX dynamic linkers will tell you that RTLD_GLOBAL is evil and unhygenic and usually indicates a bug
07:40 cotto sleeeep
07:40 sorear and... there is a bug, namely a lot of CPAN modules forget to pass -lperl on XS link lines
07:41 sorear nobody ever cares because, as long as your main application is linked *at compile or load time* to perl, it's effectively global by misdefault
07:41 sorear so while we could globally change the Parrot load routine, it'd be pretty icky and mostly only needed for Blizkost
07:42 dalek parrot: r44998 | cotto++ | trunk/src/main.c:
07:42 dalek parrot: [opts] make --hash-seed behave less surprisingly and fail when necessary
07:42 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44998/
07:42 sorear normal extensions (that don't have extensions of their own, or do and link them correctly) will never be affected
07:47 sorear how about I practice parrot hacking by adding a global argument to .loadlib and thread it all the way down to dlopen?
07:51 * sorear pokes the parrot cabal
07:51 barney joined #parrot
07:51 Austin not "cabal"
07:51 Austin brahmins
07:52 Austin karma allison
07:52 purl allison has karma of 2151
07:52 Austin karma chromatic
07:52 purl chromatic has karma of 2638
07:52 Austin karma austin
07:52 purl austin has karma of 303
07:52 Austin See?
07:52 sorear it's a shame you guys got rid of lambdabot for karma :p
07:53 Austin Why?
07:53 Austin (I don't know what lambdabot is...)
07:53 sorear lambdabot is the old karmabot according to the parrot wiki... or maybe it was the #perl6 wiki
07:53 sorear probably the latter due to network considerations
07:54 sorear anyways I wrote a significant part of it back in '07 and probably still have 1000ish karma from that.
07:54 sorear anyways, I'd like to get a yay or nay from somebody on the last idea
07:55 Austin Ahh.
07:56 Austin What's this in service of?
07:56 Austin The global arg, I mean
07:56 sorear blizkost
07:56 purl blizkost is http://github.com/jnthn/blizkost/tree/master or the last Jonathan's project, an embedding of Perl 5 in Perl 6
07:57 Austin The global arg, I mean
07:57 sorear making blizkost work with xs modules
07:57 Austin What would it do?
07:57 sorear man 2 dlopen,
07:57 sorear read the description of RTLD_GLOBAL
07:57 sorear man 3 dlopen
07:58 Austin Why would I want to do that?
07:58 Austin Would the arg be flags to pass to dlopen?
07:58 NotFound sorear: Parrot_load_lib has an initializer parameter that is curently unused.
07:59 sorear Austin: no, the arg would just be global, a bool
07:59 Austin What I'm hearing so far is "I cannot, or do not want to, explain what this arg would be for." So I'm thinking "nay" is probably the right vote.
08:00 sorear Austin: I've told you several times.  It's for Blizkost.
08:00 sorear Implementing it causes Blizkost to work.
08:00 Austin Then nay.
08:00 Austin We don't need "make one particular thing work" opcodes.
08:01 Austin We need "this is useful to potentially a bunch of people."
08:01 sorear this *is*
08:01 sorear it's a CPAN to Parrot bridge
08:01 sorear tell me that's not useful to a bunch of people
08:02 Austin "that's not useful to a bunch of people."
08:02 Austin :)
08:02 Austin My point is that passing a boolean to load_lib that is the "I'm hacking blizkost and so do something different" isn't very useful.
08:03 Austin Passing something like "here are flags you should apply to your load call" *is* potentially generally useful. (For maybe small values of generally)
08:03 sorear Except for the minor fact that load call flags are different on every platform.
08:04 Austin That's something config can solve for you.
08:04 sorear no, because config configs Parrot
08:04 Austin And... ?
08:05 sorear how are extensions supposed to know what flags to pass?
08:05 Austin You need this before parrot is built?
08:05 sorear Parrot knows what flags are available, which is precisely why I want to put flag word building in Parrot
08:05 bacek joined #parrot
08:06 Austin Where would you be calling from?
08:06 sorear PIR
08:06 Austin Okay. So you're running in parrot.
08:06 Austin You've got access to the configs.
08:06 sorear PIR doesn't have access to <dlfcn.h>
08:06 sorear how?
08:06 Austin Look at all the constants defined in $_PARROT/runtime/include/*.pasm
08:07 sorear thank you
08:07 Austin Add a config step that parrot-pir-izes dlfcn.h
08:07 NotFound sorear: http://www.perlmonks.org/ba​re/index.pl?node_id=694711
08:08 sorear NotFound: yes, I've had it working for half an hour, but Austin is campaigning to keep that fix out of Parrot
08:09 sorear because it "makes one thing work"
08:09 sorear should I have told you to stop looking?
08:09 NotFound sorear: that page says nothing about changing parrot, just adding some lines to xs_init
08:12 sorear I'd rather keep my current solution, since it's more portable
08:12 sorear that example will break on...
08:12 sorear UNIX systems with non-dlopen library interfaces (Tru64)...
08:13 sorear UNIX systems with non-.so library extensions (Darwin)...
08:13 sorear systems where Perl is not generally installed under a short name (Debian)...
08:14 sorear and there are other possible uses for RTLD_GLOBAL - it's necessary if you want to write an extension with a C API
08:14 NotFound sorear: yes, is an example, not a full working portable solution.
08:19 sorear shrug, I don't want to deal with the portability issues of this workaround unless getting it right to begin with is absolutely out of the question
08:23 NotFound sorear: I don't think that adding undesired features to parrot to solve other people's problem is "right"
08:31 payload joined #parrot
08:47 payload joined #parrot
08:50 AndyA joined #parrot
09:03 bacek joined #parrot
09:05 Austin Man, I hate it when I get a really good idea and it doesn't work.
09:05 Austin Especially when I should have know it wouldn't...
09:05 * Austin --
09:07 slavorg joined #parrot
09:20 dalek parrot: r44999 | bacek++ | branches/pcc_megrecells/src/pmc/callcontext.pmc:
09:20 dalek parrot: WIP: replace linked-list of cells with array. Build is broken. Badly
09:20 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44999/
09:34 payload joined #parrot
09:36 he_ joined #parrot
09:48 bacek Yay!
09:48 * bacek secured anniversary commit number - 45000 :)
09:49 dalek TT #1518 created by Austin_Hastings++: NQP-rx generates wrong twigil for contextual lookups
09:49 dalek TT #1518: http://trac.parrot.org/parrot/ticket/1518
09:53 dalek parrot: r45000 | bacek++ | branches/pcc_megrecells/src/pmc/callcontext.pmc:
09:53 dalek parrot: Don't try to free not allocated positionals.
09:53 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45000/
09:53 dalek parrot: r45001 | bacek++ | branches/pcc_megrecells/src/pmc/callcontext.pmc:
09:53 dalek parrot: Store new size on push_foo
09:53 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45001/
09:53 dalek parrot: r45002 | bacek++ | branches/pcc_megrecells/src/pmc/callcontext.pmc:
09:53 dalek parrot: Add NOCELL type to distinguish not-filled cells
09:53 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45002/
09:53 dalek parrot: r45003 | bacek++ | branches/pcc_megrecells/src/pmc/callcontext.pmc:
09:53 dalek parrot: Fix off-by-one error in CallContext.push_foo
09:53 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45003/
09:53 dalek parrot: r45004 | bacek++ | branches/pcc_megrecells/src/pmc/callcontext.pmc:
09:53 dalek parrot: Reimplement CallContext.unshift_pmc
09:53 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45004/
10:04 smash joined #parrot
10:04 smash hello everyone
10:09 dalek parrot: r45005 | bacek++ | branches/pcc_megrecells/src/pmc/callcontext.pmc:
10:09 dalek parrot: Reimplement CallContext.unshift_pmc
10:09 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45005/
10:25 dalek parrot: r45006 | bacek++ | branches/pcc_megrecells/src/pmc/callcontext.pmc:
10:25 dalek parrot: Fix mark_positional
10:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45006/
10:35 riffraff joined #parrot
10:49 dalek rakudo: a8d808f | masak++ | docs/ChangeLog:
10:49 dalek rakudo: [docs/ChangeLog] partial draft of the 2010.03 release
10:49 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​8d808f3767c453196e81d74e948572c2889989b
10:58 dalek parrot: r45007 | bacek++ | branches/pcc_megrecells/src/pmc/callcontext.pmc:
10:58 dalek parrot: Switch to sys_mem allocations for large amount of params
10:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45007/
11:21 bacek joined #parrot
11:30 dalek parrot: r45008 | bacek++ | branches/pcc_megrecells/src/pmc/callcontext.pmc:
11:30 dalek parrot: Update num_positional in CallContext.set_foo_keyed_int
11:30 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45008/
11:30 dalek parrot: r45009 | bacek++ | branches/pcc_megrecells/t/pmc/callcontext.t:
11:30 dalek parrot: Remove outdated tests.
11:30 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45009/
11:30 dalek parrot: r45010 | bacek++ | branches/pcc_megrecells/src/pmc/callcontext.pmc:
11:30 dalek parrot: Fix CallContext.clone
11:31 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45010/
11:37 JimmyZ joined #parrot
11:52 dalek rakudo: 5418e06 | masak++ | docs/ChangeLog:
11:52 dalek rakudo: [docs/ChangeLog] a bit more of ChangeLog draft progress
11:52 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​418e0655e711738b492e99c208c791300393e26
12:01 whiteknight joined #parrot
12:02 * Austin ++ # MockFS works
12:02 whiteknight nice!
12:02 whiteknight Austin++
12:03 whiteknight I'll fire up the VM now and take a looksee
12:03 Austin You'll have to wait for the commit.
12:03 Austin I'm clean-test'ing now
12:03 dalek parrot: r45011 | gerd++ | trunk/NEWS:
12:03 dalek parrot: Add already a template for the news of version 2.3.0
12:03 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45011/
12:03 whiteknight that's fine, it will take me a few minutes to get up and running anyway
12:03 whiteknight what is MockFS anyway?
12:03 Austin And good morning, Whiteknight. I didn't see you come in.
12:03 Austin MockFS is a mock filesystem.
12:04 Austin I created a FileSystem class to wrap the various bits you need to do filesystem-y stuff
12:04 lucian joined #parrot
12:04 Austin Then I created MockFS so I could build a "pretend" FS and do operations against it in testing.
12:04 whiteknight oh nice
12:04 Austin Nicely evading the question of "what's the relative path to ..."
12:05 nopaste "Austin" at 68.39.12.202 pasted "Here's a testcase from MockFS" (10 lines) at http://nopaste.snit.ch/19992
12:07 Austin There's a bunch of features I don't support (umask, permissions, etc.) but the structure is there. For Close, it's mainly going to be "read a file, write a file"
12:09 Austin Hmm...suddenly tests fail in places I haven't touched in a while...
12:09 whiteknight Parrot's IO system is mostly method-based anyway, so any type that supports the requisite methods should be usable for all IO operations
12:09 * Austin scratches his head...
12:09 dalek rakudo: d82c83e | moritz++ | t/spectest.data:
12:09 dalek rakudo: we pass S02-literals/subscript.t
12:09 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​82c83eb40be2ccbcaccc81c7b4f8214f101b548
12:09 Austin whiteknight: The problem is that it's inconsistent.
12:10 Austin Here's a quiz: how do you get the contents of a file?
12:10 Austin And how do you get the contents of a directory?
12:11 whiteknight Austin: of course it's shit-tacular, but in theory the support is there
12:11 Austin heh
12:11 Austin Yeah.
12:12 Austin File contents is FileHandle.open; FileHandle.readall.
12:12 Austin Directory contents is ... OS.readdir
12:14 Austin So FileSystem smooths a lot of that over. I have to return Handles, sometimes, but that's it.
12:14 whiteknight The OS and File PMCs are a point of particular dislike for me
12:14 Austin Heh
12:14 Austin Yeah.
12:14 whiteknight but then again, so many things are of "particular dislike" for me that none of them are really special
12:16 coke_at_work who does the irc logs? moritz?
12:16 AndyA joined #parrot
12:16 Austin coke: yeah
12:16 Austin Or, one of his systems, anyway.
12:17 coke_at_work msg moritz: there is a small bug on the irc log pages; "next day" doesn't show up when the day is yesterday.
12:17 purl Message for moritz stored.
12:17 lucian Austin: i can't find an up to date Close project page
12:18 Austin coke: Dalek got modified to append the urls, in case you're wondering about the extra lines in the irc logs
12:18 Austin lucian: True. It's on hiatus while I've been working on Kakapo.
12:18 coke_at_work ... nope. not at all. =-)
12:19 coke_at_work petdance: pong
12:20 coke_at_work sorear - the build should JFW, if you have regenerated your makefiles.
12:20 Austin Ahh, my first namespace collision
12:20 Austin Test::Builder, my old nemesis...we meet again...
12:21 coke_at_work sorear: yes, the makefile works with nmake on windows.
12:21 coke_at_work (on parrot, anyway)
12:25 coke_at_work sorear: ah. guessing from context you were talking about blizkost.
12:33 ruoso joined #parrot
12:39 payload joined #parrot
12:43 whiteknight I've been thinking about starting a new project to be another Perl6-like language
12:43 Austin Heh
12:44 dalek rakudo: 240e2f0 | smashz++ | docs/release_guide.pod:
12:44 dalek rakudo: Testing commit.
12:44 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​40e2f0930496d428f57f8921d1a2fe064d4ee4f
12:44 dalek rakudo: c63e4b2 | smashz++ |  (2 files):
12:44 dalek rakudo: Merge branch 'master' of github.com:rakudo/rakudo
12:44 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​63e4b2856c2eb39ac4935b2f4c339a3d5d32566
12:44 lucian whiteknight: i find that to be a lack of imagination :P
12:44 whiteknight It would be AMP, "Absolute Minimal Perl", which would be like NQP syntax but extremely minimal semantics
12:44 Austin I was just thinking to myself: Whiteknight doesn't have enough to do.
12:44 whiteknight I'm becoming unhappy with parsing and execution speed of NQP
12:44 Austin How minimal would the semantics be?
12:44 whiteknight absolutely
12:44 purl Indubitably.
12:44 Austin Hmm...
12:44 Austin Only parse the curly braces, make the user do everything else?
12:45 whiteknight no named lexical variables and therefore no nested lexical scopes. No autovivification
12:45 whiteknight basicaly, yes.
12:45 lucian Austin: i'd very much like a high level language that maps to parrot's low level types
12:45 lucian whiteknight: lisp!
12:45 whiteknight but it would be fast as all hell
12:45 Austin whiteknight: It's running on parrot. Fast isn't going to be part of the description.
12:45 whiteknight Austin: fast proportionally
12:45 Austin Heh
12:46 whiteknight closer to the raw execution speed of the VM
12:46 Austin lucian: I'd like to write one. I'm getting there. :)
12:46 lucian Austin: i'm actually thinking of writing cython-on-parrot
12:46 Austin Go for it.
12:47 lucian pynie first
12:47 lucian and not enough time for both
12:47 lucian although boostrapping pynie with a python-like language would be ideal
12:48 whiteknight NQPython
12:48 whiteknight :)
12:48 lucian whiteknight: heh
12:49 allison joined #parrot
12:49 dalek rakudo: 3be6916 | jonathan++ | src/Perl6/Grammar.pm:
12:49 dalek rakudo: Fix thinko, tweak comments. Custom prefixes and postfixes should now work.
12:49 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​be691635178643d7cdb93466b976b189cd06a6d
12:50 whiteknight Austin: alternatively I would love to add a "minifying" or optimizing stage to the NQP compiler that turned off certain features if they are not needed by the user
12:50 whiteknight If we don't need lexical scoping at the NQP layer, we can turn that off and make the parser run quicker
12:50 Austin Hmm...
12:50 whiteknight If we don't need annotations at the NQP layer, we can turn them off too
12:51 Austin that's either really ambitious, or totally insance.
12:51 Austin *insane
12:51 lucian whiteknight: wouldn't it be better to make a slightly higher level pir?
12:51 whiteknight I understand the need for lexical scoping to support things like closures, but if your parser doesn't use closures, why build in support for them?
12:51 Austin That would be a slightly higher level parrot.
12:51 coke_at_work dukeleto: I have a fix for your bug.
12:51 Austin Which needs to happen, except everyone is looking the wrong way.
12:51 lucian Austin: no, PASM would remain the same
12:51 whiteknight lucian: could be, but if I could borrow an existing parser for my work it would be faster and easier
12:52 lucian whiteknight: right. it does seem a bit odd to me that .pir is a superset of pasm
12:52 whiteknight Austin: we have needs for languages at many levels. Kakapo really demonstrates the power of NQP, but if the goal is to write a fast parser, all that power is unnecessary and a performance drain
12:53 whiteknight For thigns like the PLA test suite, I use full NQP and Kakapo, and it's awesome. For something like the Matrixy Parser, I want something much smaller and faster
12:54 whiteknight because something like 95% of time in the MAtrixy test suite is spent in parsing and compilatin phases, and I use only the most basic NQP features
12:54 coke_at_work lucian: PIR is not a superset of PASM>
12:54 atrodo joined #parrot
12:54 whiteknight lucian: it isn't a superset anymore. It used to be, but the two have diverged
12:54 lucian cotto_work: oh. then i understood wrong. but it seemed to me that $S0 is the pasm part left over
12:55 lucian to me, it would make more sense to be able to say int a = 2 in pir
12:55 lucian and pmc b = new 'bla'
12:55 lucian since it doesn't manipulate registers directly anyway
12:56 whiteknight lucian: I would love to see a new assembly-level language like PIR but with more simplified syntax
12:57 lucian whiteknight: but at the same abstraction level, i assume
12:57 whiteknight lucian: yes. PIR is really a very lousy language in a lot of ways
12:58 whiteknight something that was faster to parse would be better. Something that exposed more of the capabilities of the underlying bytecode format would be good too
12:58 lucian whiteknight: would it compile to pasm or straight to bytecode?
12:58 whiteknight for instance, the ability to specify PMC aggregate literals in code without having to always build them at runtime would be a huge savings, and the PBC files already support it
12:58 whiteknight lucian: ideally, straight to bytecode
12:59 lucian whiteknight: so code generators could target PASM and humans could write pir 2.0
12:59 whiteknight exactly
13:00 lucian whiteknight: let's write it! :)
13:00 lucian whiteknight: actually, pir 2.0 might make nqp less useful
13:00 lucian if not redundant
13:00 whiteknight I don't think so. Different tools for different purposes can coexist
13:01 luciabn joined #parrot
13:01 whiteknight Ideally, I don't think programmers should ever be writing PASM or PIR directly. I don't think in the long run that they should exist
13:01 lucian joined #parrot
13:01 whiteknight NQP should output bytecode directly
13:01 lucian whiteknight: does it output pasm now?
13:02 whiteknight it outputs PIR, which IMCC compiles into PBC
13:02 lucian oh
13:02 whiteknight The only problem we have is the bootstrapping step for "how do we compile NQP"?
13:02 Austin Yikes. Now my MockFS is more advanced than my actual FS. :(
13:03 whiteknight and what we need there is a stand-alone compiler, the PIR2.0 compiler in this case, that complies PIR2.0 to PBC with on simplicity and speed
13:03 lucian Austin: use a better actual fs? :)
13:03 Austin Use a better coder, I think...
13:03 lucian whiteknight: right. is the pir 1.0 compiler written in C?
13:04 whiteknight A PIR2.0 compiler that outputs faster PBC will make the generated NQP executable faster, which in turn will make parsing faster for all languages that use NQP
13:04 atrodo Whiteknight> So what about compiler authors that don't use NQP or any of the compiler tools?
13:04 whiteknight lucian: yes. compilers/imcc is the flex/bison implementation of IMCC
13:04 whiteknight lucian: compilers/pirc is a proposed replacement, also written in flex/bison/C
13:05 lucian whiteknight: right, i'll have a look
13:05 whiteknight atrodo: They would be able to use this new PIR2.0 compiler to bootstrap, and we can provide a library to generate PBC on the fly from PIR ode
13:05 whiteknight code
13:06 * lucian still hates VDM-SL
13:07 dalek rakudo: d537cea | jonathan++ | docs/ChangeLog:
13:07 dalek rakudo: Fill out ChangeLog - should cover most things.
13:07 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​537cea42929490d1a683dae32595a639e8887d6
13:10 atrodo Whiteknight>  I'm just wondering about my project.  I was thinking it would just output pir and pass it on to the pir compiler, but it sounds like that may not be the right thing to do
13:11 lucian atrodo: is it harder for you to output pasm?
13:11 allison whiteknight: even better is to not call it PIR2, but to call it something completely different
13:11 lucian allison: heh, i'm not good at naming things
13:12 allison (no baggage)
13:12 lucian allison: people not involved in parrot do however get the impression that there's a new language every month (i.e. lorito)
13:12 allison lucian: ah, pick a bird name out of a hat
13:12 lucian allison: peacock?
13:12 purl peacock is objecting to the "fractional" and "dotted" terms.  wants "decimal" and "dotted-decimal"
13:13 lucian purl: thou shalt not speak unless spoken to
13:13 purl lucian: excuse me?
13:13 atrodo Not really, i can do either.  My impressions were that PIR was the prefered way to produce bytecode and PASM was a lowerlevel tool
13:13 allison lucian: lorito's been talked about for a year, but doesn't exist yet, so it's kind of new and not new
13:13 lucian atrodo: i assume you may get better performance by targetting pasm
13:13 allison lucian: peacock is pretty good
13:14 allison lucian: raven, ibis
13:14 allison lucian: kite
13:14 lucian allison: kiwi
13:14 Austin Call it "RIP"
13:14 atrodo lucian> maybe
13:14 Austin Nobody'll know.
13:14 allison lucian: yah, kiwi is great
13:14 lucian allison: dodo :)
13:14 Austin decss
13:14 atrodo Then again, I've never really digged into it
13:14 allison lucian: heh :)
13:14 Austin You're dl count will be incredible.
13:15 Austin *your
13:15 Austin Stupid possessives.
13:15 lucian i can see the headlines: "PIR went the way of the dodo"
13:15 whiteknight what we call it is inconsequential, but you're right that PIR2.0 should not be the final name
13:15 whiteknight it's just a working name
13:16 lucian Austin: i'm not a native speaker, it's probably why i never get confused by those
13:16 atrodo Puffbird?  Toucan? Cockatoo?  Flamingo?  Oh, interesting one: Antthrush.  (atrodo calms down now)
13:17 lucian pynie.antthrush hmm
13:17 * whiteknight needs to find his lex/yacc book again if he's going to be writing a new parser
13:18 lucian allison: i don't entirely understand the need for lorito
13:18 Austin What's the better name: Parrot::Unix::STAT_IFMT or Parrot::Unix::Stat::S_IFMT ?
13:18 dalek rakudo: 6dd31df | jonathan++ | docs/ChangeLog:
13:18 dalek rakudo: Re-instate masak++ ChangeLog entries that I somehow managed to lose.
13:18 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​dd31dff41dd5c55a4a447c39fe1112ae19b1a99
13:18 lucian allison: is it so that the jit can optimize across bytecodes?
13:19 allison lucian: it's to make the JIT easier to write
13:19 lucian allison: to make it retargetable?
13:19 allison lucian: you can write JIT templates for a small number of ops in Lorito, and generate the rest from those templates
13:20 allison lucian: parrot has 1200-some opcodes, and writing JIT templates for all of them individually is daunting
13:20 fperrad joined #parrot
13:20 lucian allison: oh. that's a lot of opcodes
13:20 allison lucian: now, they're all written in heavily macroized C, so there's a chance that something like LLVM's C parser could help with generating the JIT templates automatically
13:21 allison lucian: aye, the sheer number of opcodes is the challenge of JITing Parrot, Lorito is intended to ease that pain
13:22 atrodo allison> so lorito would replace how the ops are written now?
13:22 lucian allison: a simple patching jit shouldn't be very hard to write i assume
13:22 allison atrodo: yes, most ops would be written in a language like PIR
13:23 allison atrodo: (we've been calling that language "Lorito")
13:23 allison atrodo: a small subset of ops would still be written in something low-level like C
13:24 atrodo allison> And those would be the basic, "atomic" ops?
13:24 dalek rakudo: 855ecb5 | (Solomon Foster)++ | docs/ChangeLog:
13:24 dalek rakudo: Tweak changelog on metaops.
13:24 allison lucian: depends on your definition of "very hard" I suppose
13:24 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​55ecb5863f89b8cf96981a3ed9f0006c25e9c4c
13:24 allison atrodo: aye
13:25 atrodo interesting
13:25 allison lucian: you asked a question about objects yesterday?
13:26 lucian allison: uh, yes. don't have the backlog here, i'm in the uni lab
13:26 allison [20:13]<lucian>[#parrot] allison: about pynie objects, how do you suggest to proceed?
13:26 allison [20:15]<lucian>[#parrot] allison: the core types that exist now have factory functions
13:26 * lucian wants something like ctrlproxy, but entirely transparent
13:27 lucian allison: oh, right. well right now pynie's types are parrot PMCs
13:27 allison (twas after I dropped off IRC, but Chatzilla kept it for me)
13:27 allison lucian: aye, and I'd start there for objects too
13:27 lucian allison: however, all python objects inherit objcet
13:27 allison lucian: have class declarations create a Parrot 'Class' object
13:28 lucian allison: there's a problem with that, from what i've been told you can't subclass 'Class'
13:28 allison lucian: and have instantiations of those classes instantiate from it
13:28 allison lucian: not from PIR you can't, but you can subclass Class from C
13:28 allison lucian: and you don't even need to subclass it to get started
13:29 allison lucian: just use it straight
13:29 lucian allison: i need it for metaclasses
13:29 lucian allison: at least in py3, a lot of things are implemented in terms of metaclasses
13:29 allison lucian: the semantics won't be quite right, but it'll be a step forward
13:29 lucian allison: hmm, true
13:29 allison lucian: Parrot 'Class'es are metaclasses
13:29 lucian allison: why isn't 'Class' an 'Object' as well?
13:30 allison lucian: well, Class is a PMC, which is an object in Parrot
13:30 lucian allison: yes, but it's not an 'Object'
13:30 lucian allison: it's gonna make python metaclasses hard
13:30 allison lucian: the PMC named 'Object' is just one type of object
13:30 allison lucian: I realize the naming is confusing
13:30 allison lucian: think PMC == object
13:30 lucian allison: yes, PMCs should never be called objects
13:31 allison lucian: no, PMCs *are* objects
13:31 lucian allison: i understand the difference between PMCs and 'Object's
13:31 lucian allison: PMCs are low level objects, 'Object' are higher level objects
13:32 allison lucian: really, we should have called PMCs "Object" and called the Object PMC something like "Instance"
13:32 allison lucian: the only difference between them is what language they're implemented in
13:32 lucian allison: 'InteropObject'
13:32 allison lucian: semantically, they're the same thing
13:32 lucian allison: right
13:33 lucian allison: so we need python's object implemented in terms of 'Object'
13:34 allison lucian: the main thing is, we don't need to get Python's inheritance hierarchy right at the start
13:34 allison lucian: that will happen automatically if we implement Python classes in terms of Parrot's 'Class'
13:34 allison lucian: that is, the instance of a Class is an Object
13:34 Austin Whiteknight: ping
13:35 allison lucian: but it happens behind the scenes of calling 'new' on an existing Class object
13:35 dalek rakudo: 4c251d4 | masak++ | docs/ChangeLog:
13:35 dalek rakudo: [docs/ChangeLog] fixed typo, removed dup
13:35 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​c251d49c1c89d5a5a8aabbad959bc9c1c3aafae
13:36 lucian allison: right. the object boostrapping bit is less clear to me than it should be
13:36 lucian allison: writing some code might clear that up
13:37 allison lucian: that's a good approach
13:38 allison lucian: I think it's the levels of meta that make it trickier, implementing classes as objects on top of an object oriented VM
13:39 lucian allison: for some reason jython's meta-stuff didn't bother me at all
13:40 allison lucian: do they have a pretty clear separation between Java-level objects and Python-level objects?
13:40 allison lucian: as in, Java-level objects aren't full first-class objects within Python syntax?
13:41 lucian allison: not really, you can use java objects freely in python
13:41 lucian allison: but they're handled specially i think
13:41 lucian allison: since all python objects (including classes) are instances of java classes, plain java objects are outside the inheritance tree
13:42 allison lucian: makes sense in the Java context
13:43 lucian allison: this is somewhat what i was thinking for pynie
13:43 allison lucian: my perception of Python is that PyObject == PMC
13:44 allison lucian: that is, it's not "Object" at all
13:44 lucian allison: then how is interop achieved?
13:44 allison lucian: oh, I'm not saying reimplement PMCs
13:45 allison lucian: I'm saying, instead of trying to re-derive the Python hierarchy in the same way, adopt PMC as the base Pynie object type
13:46 lucian allison: i thought interop between OO languages was based on 'Object'
13:46 lucian allison: i know what you mean, yes
13:47 lucian allison: but i disagree with that. whether pynie's object is derived from 'Object' or a plain PMC, it has special behaviour
13:47 allison lucian: no, interop is base on PMC
13:47 purl okay, allison.
13:47 allison purl: forget interop
13:47 purl allison: I forgot interop
13:47 lucian allison: that's too low level for interop between ruby or python for example
13:48 allison lucian: indeed it does
13:48 lucian s/or/and/
13:48 allison lucian: PMCs are all the basic behaviors of all types
13:48 allison lucian: scalar access, keyed access, attribute access, method invocation, instantiation of an object, etc
13:49 coke_at_work (better performance by targeting pasm) I believe the current wisdom is "do not target pasm".
13:49 Mokurai1 joined #parrot
13:49 lucian allison: but that's too general for pynie's object to be a plain pmc
13:49 allison lucian: "indeed it does" have special behavior
13:50 fperrad joined #parrot
13:50 lucian allison: that came out wrong
13:50 * coke_at_work is very happy to see python discussions going on (esp. since he hasn't spent any time on tcl in weeks)
13:50 lucian allison: i meant to say every type should inherit pynie's object
13:50 allison lucian: yes
13:50 bubaflub joined #parrot
13:50 allison lucian: and PyObject has behavior
13:50 patspam joined #parrot
13:50 coke_at_work seen dukeleto
13:50 purl dukeleto was last seen on #parrot 6 hours, 52 minutes and 24 seconds ago, saying: stands back and waits for magic to happen
13:50 allison lucian: but PyObject is not Parrot's Object
13:50 coke_at_work if someone wants to write a test, TT #1517 should be closable with that patch.
13:51 lucian allison: yes. so pynie's str would inherit PyObject and the 'string' PMC
13:51 allison lucian: it's not Parrot's Class either
13:51 allison lucian: aye
13:51 allison lucian: IIRC, Lua is a great example here
13:51 allison lucian: (the Lua Parrot implementation)
13:51 lucian allison: if we go for raw PMCs, it won't have anything to do with what's described in PDD 15
13:52 lucian allison: which one is active?
13:52 lucian allison: i'm curious what you mean, lua has no objects
13:52 allison lucian: but it has data types
13:52 allison lucian: (which are objects in Parrot)
13:54 lucian allison: so lua's string inherits the 'string' PMC
13:54 whiteknight Austin: pong
13:54 allison lucian: http://github.com/fperrad/lua
13:54 Austin Too late. I was wondering if you did anything to the bit ops
13:56 allison lucian: (I'm digging around myself, since I haven't looked at the language in a year or so)
13:57 lucian allison: http://github.com/fperrad/lua/bl​ob/master/lua/lib/luastring.pir
13:59 allison lucian: okay, IDRC
14:00 * lucian moving to another machine
14:00 whiteknight Austin: any kakapo commits for me to look at?
14:00 whiteknight I'm jonesing
14:00 Austin heh
14:01 coke_at_work kakapo
14:01 Austin Gimme a little bit.
14:01 coke_at_work kakapo?
14:01 purl kakapo is a program framework, runtime library, and collection of useful functions for NQP programs. or See http://code.google.com/p/kakapo-parrot/ for documentation and issue tracking, or http://gitorious.org/kakapo for source code.
14:01 allison lucian: ah-ha! http://github.com/fperrad/lua/blo​b/master/dynext/pmc/luastring.pmc
14:02 payload joined #parrot
14:03 lucian joined #parrot
14:04 allison (repeating) lucian: ah-ha! http://github.com/fperrad/lua/blo​b/master/dynext/pmc/luastring.pmc
14:05 allison lucian: I posted right after you dropped off
14:05 allison lucian: so, LuaString inherits from LuaAny
14:05 allison lucian: LuaAny is like PyObject
14:07 allison lucian: LuaString "provides" string, but doesn't inherit from Parrot's String PMC
14:07 Austin stupid namespaces...
14:12 lucian joined #parrot
14:15 lucian joined #parrot
14:15 * Austin ++ # Another passing testcase.
14:16 allison lucian: ping
14:17 lucian allison: pong. moved to a new machine
14:18 allison lucian: just checking, I suspect some intermediate bits I posted dropped between the timeouts
14:18 lucian allison: quite possible
14:18 * lucian really wants that transparent ctrlproxy
14:19 allison lucian: okay, try http://github.com/fperrad/lua/blo​b/master/dynext/pmc/luastring.pmc
14:21 * coke_at_work peruses a blog entry on NativeClient
14:22 lucian allison: oh, so it actually has a LuaAny type
14:22 clinton joined #parrot
14:22 lucian allison: wth is .pmc btw?
14:23 lucian allison: looks like C, but it isn't
14:23 coke_at_work pmc2c takes .pmc and generates .c
14:23 coke_at_work does some rewriting/substitutions.
14:24 lucian coke_at_work: right, thanks
14:25 lucian allison: is it advisable to have a language implementation depend on C bits?
14:28 allison lucian: .pmc is a PMC definition
14:28 allison lucian: yes, PMC and opcode extensions are one of the standard language implementation tools
14:29 allison lucian: this is the "canonical" way of adding core types to a language
14:30 coke_at_work I am hoping for tcl to eventually eliminate the need for PMCs and do it all via internal Object types.
14:30 dalek parrot: r45012 | gerd++ | trunk (2 files):
14:30 dalek parrot: Add the generation of a bzip2 compressed tarball
14:30 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45012/
14:31 coke_at_work (but that's more to reduce the complexity of the code so it's all in one language)
14:35 allison coke: makes sense
14:35 * allison afk
14:44 dalek rakudo: b4ed7c1 | masak++ | docs/ChangeLog:
14:44 dalek rakudo: [docs/ChangeLog] added/changed a few quotation marks
14:44 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​4ed7c17aa7bbb77d52c79ee74768a90f583f751
14:50 dalek rakudo: 0cf5765 | smashz++ | docs/announce/2010.03:
14:50 dalek rakudo: [RELEASE] Add annouce file.
14:50 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​cf57655267ce96faa83ec76fa9f2408bd9a573e
14:55 Coke joined #parrot
14:56 Coke joined #parrot
14:56 dalek rakudo: 14aeee8 | jonathan++ | docs/announce/2010.03:
14:56 dalek rakudo: Fix next release date.
14:56 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​4aeee87ed725401674993466a36bae24ddd4197
14:56 dalek rakudo: a7ff5e8 | jonathan++ | docs/announce/2010.03:
14:56 dalek rakudo: Oops, last patch was wrong.
14:56 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​7ff5e860c91565dc5135a53d7477563453e2b8d
14:56 dalek plparrot: fa1081e | (David Fetter)++ | Makefile:
14:56 dalek plparrot: Removed awful hack.  9.0's pg_regress now uses the new CREATE OR
14:56 dalek plparrot: REPLACE LANGUAGE, which means it doesn't break when we load PL/pgsql.
14:56 dalek plparrot: review: http://github.com/leto/plparrot/commit/f​a1081e19e9060e4dca08b48ced939cc7fbc59b5
14:56 dalek plparrot: 5fa59cf | dukeleto++ |  (5 files):
14:56 dalek plparrot: Get rid of Configure.nqp and friends
14:56 dalek plparrot: We are going with a plain Makefile for now. We may try distutils.pir/setup.pir in the future.
14:56 dalek plparrot: review: http://github.com/leto/plparrot/commit/5​fa59cf84a4fff88f68ca5e5edb9fc077dec41d5
14:56 sri joined #parrot
14:57 Coke joined #parrot
14:59 * lucian REALLY hates VDM
15:03 dalek parrot: r45013 | Util++ | trunk/docs/pdds/pdd30_install.pod:
15:03 dalek parrot: [codingstd] Wrapped PDD30 to fit line length limit
15:03 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45013/
15:08 dalek rakudo: f098309 | jonathan++ | docs/announce/2010.03:
15:08 dalek rakudo: Tweaks to the specifics in the release announcement.
15:08 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​098309897890622bf010f2c804d38b5dd464f41
15:13 dalek rakudo: f343af8 | masak++ | docs/announce/2010.03:
15:13 dalek rakudo: [announce] description of the hackathon
15:13 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​343af8bda563f495e2e6b1bb6960f8857f427b8
15:13 dalek rakudo: 6c84d73 | masak++ | docs/announce/2010.03:
15:13 dalek rakudo: [announce] removed redundant [1] footnote
15:13 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​c84d734a11aec592ea682d1af54b856c48c6886
15:17 NotFound whiteknight: no lexical variables, no lexical scopes.... that is winxed ;)
15:18 whiteknight NotFound: yes, I like winxed very much
15:18 Coke joined #parrot
15:19 whiteknight the only problem I have with it is that it is C++, and so can't really be incorporated into the parrot repo
15:19 Andy Coke, some time I have questions about config stuff
15:19 Andy not right this minute, but later today maybe
15:19 dalek rakudo: 807c57a | jonathan++ | docs/announce/2010.03:
15:19 dalek rakudo: Also mention the nice work on the series operator in the major items.
15:19 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​07c57a65a97acb9b8774de8a42ffa27a92745b9
15:19 Coke Andy: sure. if you want to do email if I'm not here, that works, too.
15:19 Andy Email?  that's crazy!
15:20 NotFound whiteknight: winxed stage2 compiled is pure pir.
15:20 * particle wonders how coke feels about being a parrot config expert
15:21 whiteknight NotFound: do any benchmarking of the stage2 compiler against the stage1?
15:22 Coke particle: I was going to post a disclaimer about not being a PCE, but I guess I am now. ah well.
15:22 NotFound whiteknight: stage2 and stage1 are the same, the difference is that stage1 is built with stage0 and stage2 is stage1 compiled with himself. The speed difference is between stage0 and the others.
15:24 NotFound Compile time difference is huge, but the run speed of the generated the code is approximately the same.
15:25 dalek rakudo: e4e058f | jonathan++ | docs/announce/2010.03:
15:25 dalek rakudo: Tweak series statement in announce thanks to colomon++.
15:25 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​4e058f69460de250ccdc3384b6ebbc8eb15549a
15:26 kjeldahl joined #parrot
15:28 NotFound time make winxedst1.pbc - real    0m0.426s | time make winxedst2.pbc - real    0m11.904s
15:33 AndyA joined #parrot
15:33 NotFound Coke: you are not a PCE... you are *the* PCE.
15:34 Psyche^ joined #parrot
15:35 whiteknight in NQP, is it not possible to have a pointy block that takes no arguments?
15:36 Austin No.
15:36 Austin You want an unpointy block.
15:36 Austin { foo; }
15:36 Austin my &sub := { foo; };
15:47 lucian NotFound: winxed is really starting to look like a nqp alternative
15:47 payload joined #parrot
15:51 NotFound lucian: thanks
15:55 NotFound BTW, I've seen some people wondering how to pronounce "Winxed", and I wonder, how do you pronounce "nqp"?
15:55 Coke NotFound: en queue pee
15:55 Coke like SQL. =-)
15:55 * Coke ducks.
15:55 davidfetter joined #parrot
15:56 Austin This @#$##$%@*)# thing!
15:56 NotFound Coke: You'll laugh if you hear several ways people in Spain pronounce SQL X-)
15:57 NotFound Or SCSI
15:57 Austin Why? There's a bunch of people who pronounce "SQL" as "sequel"
15:58 NotFound Austin: the favourite sport in Spain is not football as many believe, is to make laugh of other spanianrd's English.
15:58 Austin Heh
16:01 NotFound (note: football --> the sport called 'soccer' in the USA) ;)
16:02 payload1 joined #parrot
16:02 lucian NotFound: the americans are wrong about that one, you shouldn't explain :)
16:04 NotFound lucian: many people better than me already tried :D
16:04 Austin What, not explaining?
16:04 NotFound Both ways.
16:04 purl both ways is mendel's goal
16:08 Austin Ojala si pueda convencer los Ingleses no explicame los detalles de criquet...
16:09 Austin Yikes.
16:09 NotFound Is worse than baseball?
16:09 Austin Contextuals - more difficult than they need to be.
16:09 Austin NotFound: I don't know - I've managed to avoid learning too much about baseball.
16:09 Austin I think they're in the same family, so the tedium is comparable...
16:10 NotFound I also do, but is a lot easier in Spain.
16:11 * Andy is installing the new icc
16:11 cotto_work Austin, did you have some code to create a capture in nqp or pir?
16:11 Austin cotto_work: I put it on the wiki, in the HLL page
16:12 cotto_work thanks
16:12 Austin http://trac.parrot.org/parrot/wiki/​Creating%20Closures%20with%20NQP-rx
16:13 cotto_work That's a lot less non-hairy than I was hoping for.
16:13 Austin Heh.
16:13 Austin It's a demonstration, so there's some extra crap you don't need. You just need the &sub:= and the newclosure.
16:20 dukeleto hmm, seems like Parrot's test more does not support plan(0)
16:20 dukeleto Test::More, even
16:23 Coke ... if you're doing plan(0), that seems horribly wrong. =-)
16:23 Coke doesn't that imply "no_plan" in TAP?
16:23 dukeleto Coke: well, plan(0) is part of the TAP spec
16:23 dukeleto Coke: no
16:23 dukeleto Coke: no_plan means "i don't know how many tests I will run"
16:23 Austin I think it's "count them and output the plan at the end"
16:24 dukeleto Austin: nope
16:24 Austin Really?
16:24 Austin Oh, well.
16:24 Austin Goes to show what I know.
16:24 dukeleto Coke: i have to check for the existence of an external library. if it is not found, I don't want to run any tests
16:24 Coke if I try to plan 0 in p5, it dies.
16:24 dukeleto Coke: in Perl 5, that is plan => 0
16:24 Coke dukeleto: that's "skip_all".
16:24 dukeleto 1..0 is a valid plan in the TAP world
16:25 dalek parrot: r45014 | dukeleto++ | trunk/t/dynpmc/rational.t:
16:25 dalek parrot: [t] Fix the Rational PMC tests on Parrots without GMP
16:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45014/
16:25 dukeleto Coke: I am talking about from PIR
16:26 Coke yes. I'm trying to figure out what you think that should do based on p5.
16:26 dukeleto Coke: oh, i see skip_all in Test/More.pir now
16:26 dukeleto Coke: i have tests for 1..0 in Tapir. It succeeds if and only if exactly 0 tests are run
16:27 dukeleto Coke: seems like no Parrot tests uses skip_all. it is not in test_more.pir, but it is in Test/Builder.pir
16:28 Coke dukeleto: I wouldn't be surprised if we had no files that used it. should probably have one that tests it, though.
16:28 dukeleto Coke: i feel that plan(0) is more correct. We are not skipping any tests. We are running exactly 0 tests.
16:28 dukeleto Coke: it is not exported by test_more.pir . lets see if I can fix that
16:28 Coke dukeleto: you are skipping the tests you would have run if the library was present.
16:29 Coke ... is how I would justify using it. =-)
16:29 dukeleto Coke:  :)
16:31 Austin Stupid sort routine...
16:31 NotFound The only problem is that skipping all is a lot noisier.
16:34 lucian i'm curious about parrot's threading story
16:36 lucian more specifically, how fine-grained the interpreter locks are
16:37 cotto_work It's a sad story.  It needs someone to write a happy ending.
16:37 * Austin sings, "Well, I - ain't never done nothing to .. no body.."
16:37 lucian cotto_work: so there's a GIL right now?
16:38 dukeleto Coke: i fail at trying to export skip_all from Test::Builder into Test::More . I am gonna make a ticket
16:39 Austin Well, that was not the low-impact change I was hoping it would be...
16:39 dukeleto Parot in the german press: http://www.heise.de/open/meldung/Versi​on-2-2-der-Perl-VM-Parrot-957918.html
16:40 Austin msg whiteknight Here comes a commit...
16:40 purl Message for whiteknight stored.
16:40 whiteknight w00t
16:41 cotto_work I'm glad they were careful enough to get the version number right in spite of my announcement.
16:41 whiteknight I propose a new heuristic: If the recipient of a message acknowledges it within 5 seconds of the message having been left, purl should not private message that person to say they got a message
16:42 cotto_work msg whitenight good idea
16:42 purl Sorry, I've never seen whitenight before.
16:43 whiteknight and before anybody chimes in to ask a bunch of weird or unlikely "what if" scenarios, I would like to preemptively reply with a "find a way to make it work"
16:44 dalek kakapo: 6ff2916 | austin++ |  (34 files):
16:44 dalek kakapo: Got MockFS, FileSystem at least partially working.
16:44 dalek kakapo: Fixed issue #12: Create a Mock FileSystem
16:44 dalek kakapo: Signed-off-by: Austin Hastings <Austin_Hastings@Yahoo.com>
16:44 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/6ff291606cbf0e62c2eaa28c8d02fde5ef4fb3d2
16:46 cotto_work That there's a big commit.
16:48 dalek tracwiki: v4 | cotto++ | TestingProfiling
16:48 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Test​ingProfiling?version=4&amp;action=diff
16:56 dalek TT #1519 created by dukeleto++: plan(0) is not supported by Test::More/Test::Builder
16:56 dalek TT #1519: http://trac.parrot.org/parrot/ticket/1519
16:57 whiteknight Austin++: All tests pass
16:57 purl Time to write more tests!
16:57 dalek parrot: r45015 | Util++ | trunk/t/codingstd/pdd_format.t:
16:57 dalek parrot: [t] pdd_format.t - Changed to check the mandatory sections more thoroughly.
16:57 dalek parrot: Existing code failed to find extra chars at the end of the section name.
16:57 dalek parrot: For example: when "Abstract" is required, "Abstracts" should not fulfill
16:57 dalek parrot: the requirement, but the old code passed. The new code correctly fails.
16:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45015/
17:03 rblackwe_ joined #parrot
17:11 cotto_work question: How many of the runcores are worth preserving in the transition to an nqp-based ops compiler?
17:12 darbelo As many as you want to?
17:12 whiteknight cotto_work: as far as I am concerned, fast core and switch core are the only "normal" ones worth preserving, and the switch core might not be useful
17:13 whiteknight gc debug core, debugger core, and profiling core are good too
17:13 whiteknight tracing core
17:13 darbelo You need to consider compilers that can't build the cgoto core too.
17:14 darbelo That's why switch is there IIRC.
17:17 dalek rakudo: 7a70cae | smashz++ | t/spectest.data:
17:17 dalek rakudo: [RELEASE] Comment itermitent test file.
17:17 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​a70caec4e10d86509e66a3b356408712eb5bc6d
17:40 Coke dukeleto: I am unsure that I would refer to that as 'the german press'. =-)
17:40 cotto_work It's German.  He's at least half right.
17:44 particle cotto_work: is it difficult to emit those various runcores? they aren't complex
17:45 cotto_work I don't think so.  I'm just lazy.
17:45 cotto_work also, it'll most likely slow down the build given how slow nqp-rx is at the moment
17:46 particle false laziness.
17:46 particle i just got a ~25% build speedup on win-msvc, i don't mind a little regression :)
17:47 cotto_work nice.  How?
17:47 purl it has been said that nice. How is it so far?
17:47 particle removing perl wrappers from around every cl call
17:47 particle coke++
17:48 cotto_work What about getting Rakudo to build against 2.2.0 with msvc?  Do you have a patch that can be made into a 2.2.1 release?
17:48 particle turns out we don't need it, jnthn++ fixed that a week ago
17:48 cotto_work jnthn++
17:48 particle what i do need, is 670MB RAM to build rakudo's src/gen/core.pir
17:48 riffraff joined #parrot
17:49 particle that's disgusting.
17:55 darbelo And wrong.
17:55 lucian joined #parrot
17:55 darbelo Are we leaking memory again?
17:57 particle i imagine so, can you see a need to use 670MB during a compile?
18:01 tewk cotto_work, I would really like a tool that lets me build a runcore with some opcodes inlined like the switch core does.  Futures and security runloops could use that.
18:01 Coke particle: it's several THOUSAND lines of nqp.
18:01 particle so, that's what, 100k per line?
18:02 Coke =-)
18:02 Coke I'm just saying, it doesn't surprise me. that one file is pushing the limits of the toolchain atm.
18:03 particle yeah, i know, it doesn't surprise me either.  but it doesn't bode well for hll users
18:03 dalek parrot: r45016 | Util++ | trunk/t/codingstd/pdd_format.t:
18:03 dalek parrot: [t] pdd_format.t - Changed error message to report relative path, for editing
18:03 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45016/
18:03 dalek parrot: r45017 | Util++ | trunk/t/codingstd/pdd_format.t:
18:03 dalek parrot: [t] pdd_format.t - Include pdd_template.pod when scanning
18:03 Coke nope. definitely needs fixing.
18:03 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45017/
18:05 Coke my memory usage is > 1G on that file.
18:07 Coke > 1500M ...
18:08 Coke > 1600M ...
18:09 dalek rakudo: 1e9aa08 | moritz++ | t/spectest.data:
18:09 dalek rakudo: we pass S13-overloading/operators.t, thanks to jnthn++
18:09 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​e9aa08e455ddee4e005c44f56370827e600acd5
18:11 Coke whoops. that was 1600M on a parrot-nqp invocation, not the parrot invocation that builds core.pir
18:12 Coke (though that too is now up past 1600M)
18:13 cotto_work ow
18:19 dalek parrot: r45018 | Util++ | trunk/t/codingstd/pdd_format.t:
18:19 dalek parrot: [t] pdd_format.t - Removed duplicate info from error mesage
18:19 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45018/
18:28 dalek tracwiki: v10 | coke++ | tasksCoke
18:28 dalek tracwiki: http://trac.parrot.org/parrot/wiki/t​asksCoke?version=10&amp;action=diff
18:37 japhb OK, >1600 MB to compile one NQP file is just crazy.  Sounds like we need chromatic++'s Mad Leak Huntin' Skillz (tm)
18:52 eric_j joined #parrot
18:56 whiteknight is it that same leak from the string compactor?
18:58 bacek joined #parrot
18:58 bacek ~~
19:00 estrabd_ joined #parrot
19:06 particle whiteknight: possibly. if so, that's one mighty leak.
19:10 estrabd joined #parrot
19:14 cotto joined #parrot
19:14 Coke TPF accepted into GSOC.
19:15 cotto_work now let's get us some students
19:15 lucian cotto_work: you rang? :)
19:16 lucian cotto_work: well, pynie would fall under the PSF
19:18 * darbelo starts thinking of a good proposal.
19:20 * particle does a gsoc happy dance
19:20 whiteknight GSOC is the best
19:21 cotto_work I'm just in it for the shirt.
19:21 darbelo NFG strings sound like the most benefit to parrot, but RTEMS is seriously tempting the embeded developer in me...
19:22 whiteknight cotto_work: definitely! The shirts are the best!
19:23 Coke ... the embedded developer in me. That's TERRIBLE.
19:25 riffraff joined #parrot
19:25 darbelo English is my fourth language.
19:25 whiteknight Hell, english is barely my first
19:25 Andy hey Coke.
19:26 Coke Hio.
19:26 davidfetter darbelo, what are 1,2 & 3?
19:26 davidfetter english is my 2nd language
19:26 darbelo Incredibly Rude Spanish, Very Rude Spanish and Moderately Rude Spanish.
19:26 Andy can we talk about config?
19:26 Coke hai.
19:27 Andy oops, gimme a min.
19:27 Coke NO NOW!
19:27 Andy OK
19:27 davidfetter would it be incredibly rude of me to point out the influence of portuguese on es_AR?
19:27 Coke (ok, I'll get coffee. =-)
19:27 Andy Whatever you say master.
19:28 Coke your journey to the dark side is now complete.
19:28 darbelo davidfetter: My portuguese repertoire is not fit for a publicly logged channel ;)
19:29 cotto_work Wait.  We're on the dark side?
19:29 darbelo cotto_work: It varies acording to timezone ;)
19:29 cotto_work or does that only happen when you do what Coke says?
19:29 Util We must be; we have cookies!
19:29 Util (PMCs)
19:29 Andy Impressive?
19:29 Andy Is it most impressive?
19:30 davidfetter darbelo, well, i learned much of my pt_BR from /Tropa de Elite/, an œvre not known for its delicacy
19:30 darbelo But a damm good movie.
19:31 davidfetter hrm. the more i think about it, the more i see it as a tragedy
19:32 davidfetter i mean, from the officer's point of view, he has not actually gathered any evidence, only gone down the road of beating confessions out of suspects
19:32 davidfetter and at the end, he executes someone extra-judicially. i can only think that he'll be doing so for sport within months
19:33 davidfetter and not surprisingly, this is exactly how the actual militarized "police" forces behave
19:36 theory joined #parrot
19:44 Andy Coke: Is there a crash course in how Configure.pl works?
19:44 Andy also, an aside, my build doesn't link under icc 11.1
19:44 Andy but 10.1 isok
19:47 joeri joined #parrot
19:47 Andy hmm, how do I know if my box is 32 or 64 bit?
19:48 tewk file /usr/bin/bash
19:48 tewk uname -a
19:48 purl Infobot 0.43.3 alpha (oznoid+#perl)
19:48 Andy oooh, thanks
19:49 iblechbot joined #parrot
19:50 Andy ICC wants to know if I want to download for IA-32 or Intel 64
19:50 Andy but bash says /bin/bash: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped
19:50 Andy so I'd think I want the 64 right?
19:51 Andy even though it's AMD?
19:51 bacek_ joined #parrot
19:51 bacek_ o hai
19:51 bacek_ seen chromatic
19:51 purl chromatic was last seen on #parrot 19 hours, 23 minutes and 22 seconds ago, saying: :sane
19:51 tewk Andy, yes
19:51 bacek_ msg chromatic pcc_megrecells is faster than trunk.
19:51 purl Message for chromatic stored.
19:51 Andy that's all hardware stuff
19:52 cotto_work Andy, apparently Intel64 means x86_64
19:52 cotto_work so yes
19:52 cotto_work not to be confused with IA-64, which is Itanic
19:55 Andy bah, my compile fails with the 64, too
19:55 cotto_work bacek++
19:55 cotto_work merge that sucker
19:56 cotto_work It'll be nice to get a refactor that actually speeds things up a bit.
19:58 dalek parrot: r45019 | bacek++ | branches/pcc_megrecells/src/pmc/callcontext.pmc:
19:58 dalek parrot: Speed-up CallContext.get_foo_keyed_int
19:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45019/
19:58 dalek parrot: r45020 | bacek++ | branches/pcc_megrecells/src/pmc/callcontext.pmc:
19:58 dalek parrot: More CallContext push_foo and get_foo_keyed_int optimizations.
19:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45020/
19:58 dalek parrot: r45021 | bacek++ | branches/pcc_megrecells/src/pmc/callcontext.pmc:
19:58 dalek parrot: Fix copy-paste error.
19:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45021/
19:58 bacek_ cotto_work, heh. Not pcc_hackatron branch by it self...
20:00 cotto_work right, but you can merge into the pcc_hackathon branch, then merge the hackathon branch into trunk
20:01 darbelo mergefest!
20:01 Coke (crash course) not that I am aware of.
20:01 Coke but, in a nutshell:
20:03 Coke the inputs are: command line args and perl5's config. a list of modules (all under config/) are run (in an order defined somewhere under lib/). at each step, parrot's config data is saved in an intermediate object. each step can pretty much peek or poke at whatever bits of the config it wants. at the end, the config information is rendered out in PASM & Perl. several of the steps also generate files, including the makefiles.
20:05 Andy Are there any config::* modules that need to be removed?
20:07 Coke very likely. I purged a few in the past six months.
20:07 Andy config/auto/warnings.pm is the one with the new warnings stuff you set up
20:07 Coke yes.
20:07 Andy but there's also icc going on in config/init/hints/linux.pm
20:08 Coke I thought some of that had been moved over; more should be, yes.
20:08 Andy ok
20:08 Coke I'd like to keep all the warnings in one file.
20:08 Andy not sure the difference between the two files
20:08 darbelo I only moved the warnings. The ccflags I left alone.
20:09 Andy ok
20:09 Andy darbelo: Have we met?  I don't recognize your nick or your name.
20:09 Coke it might make sense to move the warnings /setup/ into compiler-specific pm files, and have warnings.pm just do the probing.
20:09 Andy so warnings.pm IS probing?
20:09 Coke but linux.pm is the wrong place, either way.
20:09 Coke Andy: absolutely.
20:09 purl Indubitably.
20:10 Coke it takes the list, invokes the compiler to figure out what's valid, and discards any that don't build cleanly.
20:10 Andy oh oh I see it.
20:10 darbelo Andy: I don't think I've met anyone on this channel ;)
20:10 Coke darbelo: Hi, I'm Coke.
20:10 * Coke ducsk.
20:10 Coke ... ducks, even.
20:10 Andy So we can add stuff to warnings.pm with impunity and not worry about versions.
20:10 darbelo But I have met ducks in my time...
20:11 darbelo Andy: Yes. In theory ;)
20:11 Coke Andy: right.
20:11 Coke otherwise we'd need to track when each compiler added each warning.
20:12 Andy yes, well aware. :-)
20:12 Coke if you run config with --verbose-step=auto:warnings (I think that's right), you'll see a metric F-ton of output.
20:12 darbelo s/:/::/ ?
20:12 Coke prolly.
20:14 dalek parrot: r45022 | bacek++ | branches/pcc_hackathon_6Mar10/src/pmc/sub.pmc:
20:14 dalek parrot: Remove some hairy code in Sub.invoke which tryed to poke into bytecode.
20:14 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45022/
20:14 dalek parrot: r45023 | bacek++ | branches/pcc_hackathon_6Mar10 (2 files):
20:14 dalek parrot: Merge branch 'pcc_mergecells_local' into pcc_returns
20:14 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45023/
20:18 cotto_work what are you using to test speed?
20:22 whiteknight incoming
20:22 purl duck!
20:22 Andy Coke: It looks like it's not even trying to do the parm testing.
20:22 Andy O
20:22 Andy Rather, it DOES do the warning flag testing, but they never get used.
20:22 dalek parrot-linear-algebra: cc02185 | Whiteknight++ | t/ (6 files):
20:22 dalek parrot-linear-algebra: Rename Testcase.nqp to testlib/matrixtest.nqp. Update test files with new names of stuff.
20:22 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/cc02185de5f9f8a3d7dd61365c91672176ef7d44
20:23 dalek parrot-linear-algebra: c2e9cdb | Whiteknight++ | src/pmc/complexmatrix2d.pmc:
20:23 dalek parrot-linear-algebra: add methods initialize_from_array and initialize_from_args to complexmatrix2d. Also add set_pmc_keyed_int and get_pmc_keyed_int vtables to it
20:23 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/c2e9cdba6eb7db1998b1f81115cfca90a2cfe6ea
20:23 dalek parrot-linear-algebra: a3932b2 | Whiteknight++ | t/ (2 files):
20:23 dalek parrot-linear-algebra: many fixes for complexmatrix2d. Add String support set_pmc_keyed. Add tests for set_pmc_keyed with Float, Integer, and String arguments.
20:23 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/a3932b21bcedeb7c9aea81e47c3cd9b6eb150bf3
20:23 dalek parrot-linear-algebra: 14fcb40 | Whiteknight++ | t/testlib/matrixtest.nqp:
20:23 dalek parrot-linear-algebra: add tests to verifiy autoresizing behavior, and also add a test for linear indexing
20:23 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/14fcb40e5c2780c22f743c6b1bf7c06f60847b3b
20:23 dalek parrot-linear-algebra: 3f9568d | Whiteknight++ |  (5 files):
20:23 dalek parrot-linear-algebra: several changes to pmcmatrix2d. Fix resize_matrix to not break things on resize. add initialize_from_array and initialize_from_args methods. Add transpose and mem_transpose methods and add incomplete support throughout for lazy transposing. Fix a bug in is_equal. add iterate_function_inplace and iterate_function_external methods. Fix some tests. Only one test fails now due to incomplete transpose support.
20:23 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/3f9568de22cd7f591533798d3dec2b50760480ea
20:24 whiteknight ...and on that note, I'm out. Later
20:24 Coke Andy: hurm. I know it's working with gcc.
20:25 Andy stil poking around
20:25 Coke when you're done with config, config_lib.pasm contain a ccwarn that has your warnings?
20:25 Coke *does
20:25 Andy If I figure why -Wdeclaration-after-statement is still getting through, I'll have it fixed, I assume.
20:25 Andy nope
20:25 Coke does ccwarn have anything?
20:26 Andy no
20:26 Coke can you run it with the verbose output and nopaste it?
20:26 dukeleto looks like we are in Google Summer of Code this year
20:26 Andy to Configure?
20:28 Andy paste?
20:28 purl hmmm... paste is (see: nopaste) or like glue but a little safer to sniff. or http://nopaste.snit.ch:8001/ or http://scsys.co.uk:8001/ anywhere shadowpaste is or mmm, sticky paste or You there! Eating the paste. or <see> 2 girls, 1 paste or App::Nopaste or toxic for bots and humans
20:29 nopaste "Andy" at 12.47.12.130 pasted "my config run" (287 lines) at http://nopaste.snit.ch/19994
20:30 Andy hahahha, the -Wdeclaration-after-statement is making it think that EVERY attempted flag fails
20:30 Andy because that one makes it fail.
20:30 dalek parrot: r45024 | petdance++ | trunk/config/auto/warnings.pm:
20:30 dalek parrot: sorted the warnings, and added a link to docs
20:31 Coke urk?
20:31 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45024/
20:31 dalek parrot: r45025 | petdance++ | trunk/config/auto/warnings.pm:
20:31 dalek parrot: Added more options we want
20:31 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45025/
20:31 nopaste "cotto" at 131.107.0.112 pasted "frequency of op usage during build and make test" (843 lines) at http://nopaste.snit.ch/19995
20:31 Coke if that one properly failed, it should get dropped, and then proceed to the next one.
20:31 Andy but that one never got tested
20:31 Andy -Wdeclaration-after-statement is never tested
20:31 Coke oh, did it just get inserted in linux.pm?
20:31 Andy perhaps
20:32 Coke that might do it.
20:32 Andy but it doesn't exist in linux.pm
20:32 Andy ack -w -- Wdeclaration-after-statement
20:33 * Coke wonders if the datastructure in warnings.pm is bleeding gcc entries into icc.
20:33 Andy yeah smells like it
20:34 Andy Even if you delete that line from linux.pm, it STILL shows up as a compiler option
20:34 Coke that's only in one line in warnings.pm, and that looks kosher to me.
20:37 Coke can you add Dumper of $self->{'warnings'}{$compiler} at line 280 or so?
20:38 Andy in?
20:38 purl IN EXCELSIS DEO
20:38 Andy in warnings.pm?
20:38 Coke ya. though I suspect it's not there, since it's present in the args before you get that far.
20:39 Coke ah. it's probably in     my $ccflags  = $conf->data->get('ccflags');
20:39 Andy yup not there
20:39 Andy AHA
20:39 Andy THAT would do it.
20:39 Andy from perl -V
20:39 Andy cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
20:39 Coke GAH.
20:39 Coke we shouldn't be pulling in perl's cc flags, should we?
20:39 Andy yeah, you can't assume the same ccflags
20:40 Andy YAY I FOUND A BUG!
20:40 davidfetter where?
20:40 Andy but damn, we do that a lot.
20:40 dalek kakapo: 517c700 | austin++ | setup.nqp:
20:40 Andy ack conf.*get.*ccflags
20:41 dalek kakapo: Release prep.
20:41 dalek kakapo: Signed-off-by: Austin Hastings <Austin_Hastings@Yahoo.com>
20:41 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/517c7000ccee31a1eb5dec4a63c41bedc30c316b
20:41 dalek kakapo: 4ea9a17 | austin++ | :
20:41 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/4ea9a17b52b39e6ab9c8db358ae28fbf0fc1e7aa
20:41 Andy I blank out $ccflags and things are much nicer.
20:42 Coke conf->get->ccflags gets /our/ ccflags, I think.
20:43 Coke (unless get has magic to default to the perl5 value if ours is undef)
20:43 Andy it also has to check for the warning "ignoring option...."
20:44 Coke just add "ignoring" to the regex at the bottom there.
20:44 particle cotto: can you nopaste an op frequency for a parrot build only, parrot test only, rakudo build only, and rakudo spectest only?  i think the comparison would be interesting.  is that something easily scriptable?
20:45 Andy Coke, which "There" where?
20:45 Andy oh, i see
20:45 particle coke: there's a way to track where all the config flags came from...
20:45 Coke particle: yup. it's insanely verbose. =-)
20:45 particle kid51 wrote a neat module, there's a config flag i think
20:46 particle yes, but you can track a single config var i think
20:46 particle over its history during the process
20:46 Coke (--verbose=2)
20:46 particle that must be a shortcut for a bundle of settings... lemme see
20:47 Andy So really in valid_warning() we should use ccflags of the Parrot build config so far
20:48 Coke Andy: we are.
20:48 Coke ... intending to.
20:48 Andy so we're pulling the Perl 5 ccflags somewhere else and anointing them as good?
20:48 Coke I was under the impression that's what that 'get' was doing.
20:48 Coke where we is "something before warnings.pm", I think so, yes.
20:49 Andy Already icc has found a "assigned but never used" that GCC hasn't found.
20:49 Andy so this is all good good good
20:50 Andy AND using these wrong flags could well explain why my new icc 11.1 build fails, but 10.1 doesn't, because 11.1 is more picky about the erroneous shit we're passing.
20:50 particle $ perl Configure.pl --configure_trace
20:50 Coke excellent.
20:50 cotto_work fun fact: 448 opcode functions are run zero times during make test
20:51 Andy cotto_work: That's good news.  They'll be well-rested.
20:51 particle cotto: they are run through the parser, though
20:51 cotto_work particle, you mean that they're parsed?  of couse
20:51 particle that was a fun tricky test i wrote
20:52 particle t/op/01-parse_ops.t
20:53 particle in fact, i bet that can be updated to use pmc constants now
20:54 cotto_work I see what you did there.
20:54 particle then we'll have made sure every op parses.
20:54 particle (imcc hacks)++
20:56 lucian allison: ping
20:59 particle so what is considered a pmc constant by imcc?
21:00 particle do we have something yet?  i see we're still using keys, so a namespace is still probably considered a key constant....
21:00 Andy so what is that .configure_trace.sto ?
21:02 particle you can use Parrot::Configure::Trace to get info out of it
21:03 Andy Coke: Are you digging to find "something before warnings.pm"?  Am I duplicating your effort?
21:03 particle what attr are you looking for?
21:03 Coke Andy: nope. I'm at dayjob.
21:03 Andy you and me both. :-)
21:03 particle ah, ccflags
21:03 dalek parrot: r45026 | petdance++ | trunk/config/auto/warnings.pm:
21:03 dalek parrot: Add "ignoring option" to the regex for invalid options
21:03 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45026/
21:03 dalek parrot: r45027 | petdance++ | trunk/config/init/hints.pm:
21:03 dalek parrot: updated the long-neglected copyright date
21:03 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45027/
21:03 Andy We're using the Perl 5 ccflags, which is not appropriate.
21:05 nopaste "particle" at 98.232.31.142 pasted "example of Parrot::Configure::Trace script and results" (319 lines) at http://nopaste.snit.ch/19996
21:05 Andy what's the diff between $conf->data and $conf->options?
21:05 nopaste "coke" at 72.228.52.192 pasted "has to be one of these config modules" (14 lines) at http://nopaste.snit.ch/19997
21:06 particle better would be to use ->diff_data_c
21:06 Coke options == command line args.
21:06 Coke (i think)
21:07 Andy seems to me that if we pass in cc , we know we should not use ccflags or ccwarn
21:07 Coke Andy: check config/init/defaeults
21:07 Coke (defaults)
21:07 Andy I am
21:08 Coke line 96 is the culprit, I think.
21:08 Andy yes
21:08 Andy but
21:08 Andy what do we change it to?
21:08 Andy let me make my patch and see what you think
21:11 nopaste Someone at 12.47.12.130 pasted "+ my $cc_option = $conf->optio" (15 lines) at http://nopaste.snit.ch/19998
21:12 Andy running a build.
21:12 darbelo +1
21:12 purl 1
21:13 Andy boooy is icc slow on the ops
21:20 dalek parrot: r45028 | jkeenan++ | trunk/src (2 files):
21:20 dalek parrot: [codingstd]  Make two files pass linelength.t.
21:20 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45028/
21:26 Andy Do we aggregate release notes anywhere/
21:26 nopaste "cotto" at 131.107.0.112 pasted "op usage during build and make test with +1 for each op" (1326 lines) at http://nopaste.snit.ch/19999
21:26 cotto_work Andy, NEWS?
21:27 Andy yay, so happy
21:28 Andy is there a "make clean-only-the-C-files"?
21:28 cotto_work what do you want to do?
21:28 Andy only get rid of .o files, basically
21:29 lucian Andy: is icc worth bothering with?
21:29 Andy lucian: Be more specific.
21:29 Andy F
21:29 Andy or
21:29 Andy m
21:29 Andy e
21:29 Andy For me it is, because I use each different compiler like a different lint.
21:30 lucian Andy: oh. which ones do you have so far?
21:30 Andy gcc and icc and sun
21:30 lucian Andy: clang?
21:30 purl clang is an entirely new C compiler
21:30 lucian purl: shut up
21:30 purl ;-(
21:30 * lucian porposes to make purl deaf to anything but direct addressing
21:30 cotto_work Andy, it looks like no, but it'd be trivial to add one that nukes $(O_FILES)
21:36 Andy sure, I just didn't want to bother digging into makefiles if I didn't need to
21:36 Andy and
21:36 Andy r
21:36 Andy eal
21:36 Andy ly
21:36 Andy ,
21:36 Andy
21:36 Andy it'snot that big a deal
21:36 dalek parrot: r45029 | petdance++ | trunk/config/auto/warnings.pm:
21:36 Andy I wonder what it is that is doing that.
21:36 dalek parrot: added another variant on "ignoring option"
21:36 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45029/
21:36 dalek parrot: r45030 | petdance++ | trunk (2 files):
21:36 dalek parrot: Don't carry over ccflags and ccwarn from Perl 5 if we specify cc
21:36 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45030/
21:36 dalek parrot: r45031 | petdance++ | trunk/src/debug.c:
21:36 dalek parrot: removed unused variables. Thanks, ICC!
21:36 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45031/
21:37 cotto_work status
21:37 purl Since Tue Feb 16 10:19:41 2010, there have been 6465 modifications and 3351 questions.  I have been awake for 30 days, 11 hours, 17 minutes, 28 seconds this session, and currently reference 830603 factoids. Addressing is in optional mode.
21:40 dukeleto skynet?
21:40 purl skynet is on line, and helping me learn new tricks or http://img105.imageshack.us/​img105/4651/whosbowlla0.jpg
21:52 dalek parrot: r45032 | petdance++ | trunk/src/debug.c:
21:52 dalek parrot: consting local vars
21:52 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45032/
21:52 Andy GOOD GOSH AM I AWESOME OR WHAT
21:54 cotto_work what you need to do is use git-svn and drop a boatload of commits all at once
21:55 Andy why?
21:55 Andy oh wait, here's another
21:57 Andy oh, look, I think I foud another bug, too.
21:57 Andy look at Parrot_io_socket() in src/io/socket_api.c
21:58 Andy new_socket is never used.
22:02 japhb Anyone remember how to change the list of load_bytecode search directories from within PIR?
22:07 Andy Coke: Thanks so much for your work on the config stuff.  Gives me so much to work with.
22:09 dalek parrot: r45033 | petdance++ | trunk/src/runcore/cores.c:
22:09 dalek parrot: removed unused var n_pics
22:09 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45033/
22:09 dalek parrot: r45034 | petdance++ | trunk/src/io/socket_api.c:
22:09 dalek parrot: Add a comment about potential bug
22:09 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45034/
22:09 Austin_away It's 2 or 3rd sub-entry behind the iglobals lib dirs array
22:09 dalek parrot: r45035 | petdance++ | trunk/src/pmc/exception.pmc:
22:09 dalek parrot: localizing cur_ctx
22:09 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45035/
22:09 Austin_away japhb: ^^
22:09 japhb Austin_away, yeah, I'm finding it in src/library.c
22:09 Austin_away get-interp[ lib-paths == 7] [ 2 or 3 ]
22:10 japhb Nodnod, thx
22:10 japhb Reading the source, I was worried the arrays were fixed length, but that's just for the top level.
22:11 japhb There's a lot of commented out code in this file.
22:11 japhb Oh, NM, brain fart
22:12 Austin_away I'm wrong. It's 1.
22:12 Austin_away include, library, dynext, lang, extensions
22:14 Austin_away So 5  interp = getinterp ;  lib_paths = interp[7] ;  library_paths = lib_paths[1] ; push library_paths, '/opt/parrot/lib'
22:14 davidfetter wow, the colors :)
22:14 * Austin_away bows.
22:15 darbelo We don't have cute PIR :MACRO_NAMES for those?
22:15 Austin Sure. But I don't do pir.
22:15 japhb darbelo, can't use PIR macro names from NQP.  Which SUCKS.
22:15 Austin Heh.
22:15 darbelo Indeed.
22:15 Austin You said pir, not nqp.
22:16 Austin Had I but known...
22:16 japhb Austin, PIR is just desugared NQP, as far as I'm concerned.  ;-)
22:16 Austin I'd have worked in a Kakapo plug...
22:16 Austin Hey, japhb, you're a smart guy.
22:16 Austin I'll ask you this.
22:16 japhb Austin, you are unfortunately talking to the one person who *can't* use Kakapo.
22:16 Austin There's a Program class.
22:17 japhb (Well, unless you manage to get it in core)
22:17 Austin It gets extended by some code.
22:17 Austin NQPrx doesn't support :main.
22:17 japhb yeah, annoying that
22:17 Austin What's the sugariest way to trigger some parent-class method from not-in-an-init-block source code in the child file.
22:19 Austin Right now, I'm using 5   Opcode::get_root_global(pir::get​_namespace__P().get_name).MAIN;
22:19 Austin I'd like to get it closer to 0 bytes.
22:19 japhb heh
22:19 * japhb thinking
22:19 purl thinking is see `made of meat`
22:23 Austin The kicker is needing to go through the proto-object to get to the method.
22:23 japhb I've got a couple proto-ideas, but I need to see the context.  repo link?
22:24 Austin http://code.google.com/p/k​akapo-parrot/wiki/UnitTest
22:24 Austin That's context.
22:24 Austin The repo is at kakapo?
22:24 Austin hmm
22:24 Austin kakapo?
22:24 purl hmmm... kakapo is a program framework, runtime library, and collection of useful functions for NQP programs. or See http://code.google.com/p/kakapo-parrot/ for documentation and issue tracking, or http://gitorious.org/kakapo for source code.
22:25 dalek parrot: r45036 | petdance++ | trunk/src/io/api.c:
22:25 dalek parrot: consting locals
22:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45036/
22:25 dalek parrot: r45037 | petdance++ | trunk/compilers/imcc/symreg.c:
22:25 dalek parrot: removed unused var i in int_overflows()
22:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45037/
22:25 dalek parrot: r45038 | Util++ | trunk/t/codingstd/c_parens.t:
22:25 dalek parrot: [t] c_parens.t - Fixed lurking sort bug - s/cmp/<=>/
22:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45038/
22:26 Austin Hmm
22:27 Austin I could defined a sub in Testcase that does the lifting, and then export it so that it shows up when the user does use(Testcase).
22:27 Austin That works.
22:27 japhb A decent idea
22:27 japhb That gets you to 0.
22:28 japhb I was still thinking about golfing.
22:28 Austin Well, it doesn't get me to 0.
22:28 Austin The user still has to say TEST_MAIN() or whatever.
22:28 Austin MAIN()
22:28 japhb (And slowly, since I've got distractions on this end)
22:28 Austin But 6 is very much less than the other.
22:32 kid51 joined #parrot
22:34 japhb You know, looking at this template, the top INIT block seems unnecessary, except a single load_bytecode.
22:34 Austin Is there an env hash from nqp?
22:34 japhb It appears to be just for embedding a copy of Kakapo inside another project, yes?
22:35 Austin It's to load the library from a standalone file.
22:35 japhb I get ENV as: pir::root_new__PP(< parrot Env >)
22:35 Austin So I can say "t/TestFoo.nqp" and have it self-load
22:35 Austin Which is about like my $env
22:36 japhb Right, but the normal case is that Kakapo is installed into Parrot, right?
22:36 Austin For me, no.
22:37 japhb Sure, while you're working.
22:37 japhb I'm saying, the *users* of Kakapo.
22:37 Austin :)
22:37 japhb Like, well, P-L-A, for example.
22:37 Austin There's two so far, myself and Whiteknight.
22:37 Austin I think he's got it installed.
22:37 kid51 tewk ping
22:37 Austin So he gets to do what? load_bytecode(kakapo) ?
22:38 japhb Yeah, I think it would go like:
22:38 japhb Wait, let me gist this.
22:39 japhb http://gist.github.com/337002
22:40 * Austin sings, "Why can't we give ourselves one more chance..."
22:40 Austin Heh. That definitely won't work.
22:40 fperrad joined #parrot
22:40 Austin Testcase is defined by the library.
22:41 japhb Ah, duh, the class reference
22:41 * japhb clearly not at full power
22:41 Austin What does load-language do that I thought it needed to be in there?
22:42 Austin Oh.
22:42 Austin Yeah, for compiled bytecode files.
22:42 japhb I have no idea why you're using that, actually.
22:42 Austin Because kakapo *also* works as a stand-alone runtime.
22:42 Austin :)
22:42 Austin just link with krt0
22:42 Austin (well, pbc_merge)
22:43 darbelo That's... a good way to find parrot bugs.
22:43 japhb heh
22:43 Austin Heh.
22:43 Austin I already found 'em, darbelo. Got a bunch of karma from cotto, too.
22:44 cotto_work I don't trust that cotto guy.
22:44 Austin Yeah, he's got shifty keys...
22:45 japhb Austin, so you're saying what's at that gist now is the minimum?
22:45 snarkyboojum joined #parrot
22:45 darbelo Austin: You haven't found them all.
22:45 Austin It's a little less than the minimum.
22:45 Austin The init block has to split, to get the lib loaded before the class decl.
22:45 japhb Why?
22:46 japhb Austin, reload -- I already made that change.  ;-)
22:46 Austin Oh, sorry.
22:46 japhb np
22:46 Austin Yeah, that looks pretty good.
22:47 Austin (For everyone but me. :-(
22:48 japhb Does UnitTest::Assertions require UnitTest::Testcase?
22:48 Austin Yeah, but it doesn't (re) export it.
22:49 japhb Oh sure, I just wondered if they could be reversed.
22:49 Austin Yeah.
22:49 japhb Well, hmm, there's no reason the call to MAIN() couldn't go inside the INIT block, just to cut down on visual noise, right?
22:50 Austin I'm not sure that's true. Give me a moment to think about it.
22:51 Austin Okay, yeah. For a testcase template (but definitely *not* for the general case) you could move it up.
22:52 * japhb updates the gist
22:53 Austin Here's a q: that shebang with just the program name, does that actually work for anyone?
22:54 japhb Hmmm, you could wrap UnitTest::* into UnitTest::All (like Ovid's Perl 5 Test::Most sort of thing), and have UnitTest::All not only do all the exports, but call MAIN() for you.
22:54 japhb Yes, it's a path search.
22:54 japhb Though I think #!/usr/bin/env parrot-nqp would be better for that
22:54 Austin Doesn't work for me.
22:54 Austin which parrot-nqp returns /usr/local/bin/parrot-nqp, but #! parrot-nqp fails.
22:55 japhb What about with no space?
22:55 darbelo #!/usr/bin/env parrot-nqp
22:55 japhb Yeah, darbelo, that's what I've started using recently,
22:56 Austin bad interpreter
22:56 japhb because it doesn't export my concept of filesystem layout to everyone.  :-)
22:56 japhb Austin, huh.  Well, the env version is more 'standard' anyway
22:57 japhb gist refreshed again.
22:57 japhb Just showing what the golfing help could do.
22:57 japhb s/help/helper module/
22:57 Austin > In practice, env must not be a script, because the #! mechanism usually accepts only binary executables
22:58 dalek parrot: r45039 | petdance++ | trunk/config/auto/warnings.pm:
22:58 dalek parrot: removed the ICC compiler options that silence many of the warnings.
22:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45039/
22:58 dalek parrot: r45040 | petdance++ | trunk/compilers/imcc/instructions.c:
22:58 dalek parrot: Remove conflict between loop variables in and out of a scope
22:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45040/
22:58 dalek parrot: r45041 | petdance++ | trunk/src/pmc/scheduler.pmc:
22:58 dalek parrot: consting
22:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45041/
22:58 Whiteknight joined #parrot
22:58 darbelo petdance++ # Magical consting robot
22:59 Austin Except that it is a binary..
22:59 darbelo Austin: If env turns ut to be a script... Go get a real operating system.
23:00 darbelo It'll cut down on your overall grief.
23:00 Andy darbelo: Thanks.
23:00 * darbelo finally make the Andy -> petdance connection.
23:01 Andy I don't understand Parrot at all, but I understand C internals and project handling.
23:03 darbelo Keeping variable properly const-ed isn't something we care about most of the time. It's good to see someone clean that up every once in a while.
23:03 * japhb goes back to hacking Plumage ...
23:04 Whiteknight Andy: There isn't much to understand. Parrot is a large pile of mistakes, and some of the wonderful fixes we're slowly making for them :)
23:04 Austin Okay, exec(2) doesn't path search...
23:04 Austin So env it is.
23:04 Andy darbelo: That's what us cage cleaners are for.
23:06 japhb Austin, I may have been remembering what happens when Perl 5 is called on a script that doesn't have 'perl' in the shebang line
23:06 japhb er, perl5, I should say.
23:06 japhb Here it is: 'If the #! line does not contain the word "perl", the program named after the #! is executed instead of the Perl interpreter.  This is slightly bizarre, but it helps people on machines that don't do #!, because they can tell a program that their SHELL is /usr/bin/perl, and Perl will then dispatch the program to the correct interpreter for them.'
23:07 japhb Once again: Perl 5 compensating for platform stupidity.
23:08 cotto_work That sounds like a really fun platform.
23:08 Austin I have a hard time imagining a scenario where that is valuable.
23:08 japhb Clearly someone wanted it.
23:08 Austin It sounds like somebody had a lot of time, and didn't want to work on any perl bugs...
23:08 darbelo Here's a nickel kid...
23:08 japhb heh
23:10 Austin Wow!
23:10 * darbelo is one of those condescending unix users.
23:10 davidfetter heh
23:10 Austin It's amazing what you can accomplish when you drop your wireless keyboard on the floor...
23:10 japhb darbelo, do you have the beard to match?
23:10 japhb Austin: Write Shakespeare?  Solve the Halting Problem?
23:10 Austin Darbelo only _thinks_ he's one of those condescending unix users..
23:11 darbelo Yep, I just lack the suspenders.
23:11 Austin japhb: It's more like a little bit of line noise in each of several windows...
23:11 Austin But since I'm doing NQP, it's sometimes an improvement...
23:12 * japhb actually knows someone who both *is* and *looks* exactly like a classic Unix guru -- it's a bit unnerving.  Thankfully, not condescending.
23:13 japhb Come to think of it, I know *two*.  One of them is a bit condescending, actually.  ;-)
23:14 dalek parrot: r45042 | petdance++ | trunk/compilers/imcc/pbc.c:
23:14 dalek parrot: removed unused var cur_name.  Thanks, ICC!
23:14 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45042/
23:14 dalek parrot: r45043 | petdance++ | trunk/src/embed.c:
23:14 dalek parrot: Changed an internal i variable to be j, so as to avoid shadow conflict
23:14 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45043/
23:14 dalek parrot: r45044 | petdance++ | trunk/config/auto/warnings.pm:
23:14 dalek parrot: Turn off a noisy ICC warning
23:14 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45044/
23:14 dalek parrot: r45045 | petdance++ | trunk/src/hll.c:
23:15 dalek parrot: properly localize some vars to avoid shadow declarations
23:15 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45045/
23:15 Andy boy, is this behind.
23:15 dalek parrot: r45046 | petdance++ | trunk/config/auto/warnings.pm:
23:15 dalek parrot: disabling more annoying warnings, plus notes about them
23:15 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45046/
23:15 japhb Andy, what is the 'shadow conflict' referred to in r45043?
23:16 Andy int i; if ( ... ) { int i; }
23:16 japhb Ah!
23:16 Andy it's not a conflict, but potentially confusing.
23:16 japhb Variable redeclaration in enclosed scope.
23:16 Andy yeah
23:16 Andy What both gcc and icc refer to as shadowing a previous declaration.
23:16 japhb OK, just didn't know the term
23:16 japhb nod
23:17 Andy ok, gotta go grab some grub.
23:26 payload joined #parrot
23:27 payload joined #parrot
23:31 dalek parrot: r45047 | petdance++ | trunk/src/oo.c:
23:31 dalek parrot: Renamed a local to stop shadowing. Changed a check of a PMC to use the proper PMC_IS_NULL.
23:31 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45047/
23:32 payload1 joined #parrot
23:42 Coke Andy: you're quite welcome.
23:46 Psyche^ joined #parrot
23:46 Coke msg kid51 - would '.' be sufficient there in place of cwd() ?
23:46 purl Message for kid51 stored.
23:47 Coke msg kid51 (r45048, that is)
23:47 purl Message for kid51 stored.
23:48 dalek parrot: r45048 | jkeenan++ | trunk (3 files):
23:48 dalek parrot: [buildtests] t/tools/ops2pm/05-renum_op_map_file.t was failing since r.
23:48 dalek parrot: Hard-coded relative path for include/parrot/opsenum.h inside
23:48 dalek parrot: lib/Parrot/OpsRenumber was problem.  Moving this assignment to
23:48 dalek parrot: lib/Parrot/Ops2pm/Base.pm (a) improves flexibility, (b) places assignment in
23:48 dalek parrot: same location as similar values, (c) enables test to pass once again.
23:48 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45048/
23:49 kid51 Coke:  Will investigate.  Your reason for this approach is ...?
23:49 Coke to avoid sticking the build path anywhere else.
23:50 Coke actually, nevermind. once we actually add a build path that isn't ".", it'll have to change either way.
23:50 Coke no point in changing it twice when once will do. =-)
23:51 kid51 Test still passes with '.'; running 'make test'
23:52 kid51 Coke:  I tried a naive approach to TT #1516: simply having a command-line option override the build_dir setting in config::init::defaults.
23:53 dalek parrot-plumage: 4f17f7d | japhb++ |  (8 files):
23:53 dalek parrot-plumage: Reduce use of src/lib/ when referring to .pbc's
23:53 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/4f17f7dc4d85bcf2240e2d3e08ec6cff03c34202
23:53 Coke I imagine there is a TON of code that assumes '.'
23:53 kid51 It didn't work.  Build failed at miniparrot, something like "Can't find -lparrot"
23:53 kid51 Coke:  Probably, though I've generally been averse to it in the stuff I've written.
23:53 Coke I'd throw what you have so far into a branch, we can hack on it until it works.
23:53 kid51 K
23:59 darbelo dukeleto: ping
23:59 dukeleto darbelo: pong (but gotta run in a minute)

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

Parrot | source cross referenced