Camelia, the Perl 6 bug

IRC log for #parrot, 2010-10-07

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:02 Andy left #parrot
00:17 cotto ~~
00:26 bluescreen joined #parrot
00:32 hercynium joined #parrot
00:53 aloha left #parrot
00:53 aloha joined #parrot
01:03 Andy joined #parrot
01:03 davidfetter left #parrot
01:16 whiteknight left #parrot
02:06 kid51 left #parrot
02:35 janus left #parrot
02:48 janus joined #parrot
03:25 GeJ sounds awfully quiet today.
03:25 GeJ aloha: clock?
03:25 aloha GeJ: GeJ: LAX: Wed, 20:24 PDT / CHI: Wed, 22:24 CDT / NYC: Wed, 23:24 EDT / UTC: Thu, 03:24 UTC / LON: Thu, 04:24 BST / BER: Thu, 05:24 CEST / TOK: Thu, 12:24 JST / SYD: Thu, 14:24 EST
03:25 aloha GeJ: I give up.
03:25 plobsing I wish aloha would actually give up. purl was better.
03:26 cotto bacek, ping
03:47 cotto bacek, unping
03:50 jsut_ joined #parrot
03:55 jsut left #parrot
04:07 Andy left #parrot
04:08 theory joined #parrot
04:16 plobsing cotto: is there any documentation on how khairul's instrument code worked?
04:17 plobsing I don't understand why it holds on to the information it does. Hauling around and keeping synchronized a separate copy of op_mapping seems wrong.
04:17 dukeleto plobsing: he wrote something about it in his proposal
04:19 cotto sure.  Let me dig it up.
04:19 cotto http://parrot.mangkok.com/?page_id=140
04:20 aloha left #parrot
04:22 theory left #parrot
04:23 plobsing cotto: thanks
04:31 aloha joined #parrot
04:32 bacek_at_work ok
04:32 bacek_at_work I moved aloha to physical box.
04:32 bacek_at_work Bloody VMs aren't reliable at all.
04:32 bacek_at_work aloha, clock?
04:32 aloha bacek_at_work: bacek_at_work: LAX: Wed, 21:32 PDT / CHI: Wed, 23:32 CDT / NYC: Thu, 00:32 EDT / UTC: Thu, 04:32 UTC / LON: Thu, 05:32 BST / BER: Thu, 06:32 CEST / TOK: Thu, 13:32 JST / SYD: Thu, 15:32 EST
04:32 aloha bacek_at_work: I give up.
04:34 theory joined #parrot
04:56 davidfetter joined #parrot
04:59 cotto bacek_at_work, do you have a minute?  I have a (likely) profiling runcore bug that's manifesting itself as a gc assert failure and debugging it is turning out to be tricky.
05:00 cotto a reliable way to trigger it is to run /parrot -Rprofiling parrot-nqp.pbc --target=pir --output=compilers/opsc/gen/Ops/Trans/C.pir compilers/opsc/src/Ops/Trans/C.pm
05:22 bacek_at_work cotto, in trunk?
05:23 cotto yes
05:25 bacek_at_work I'll try to check it tonight. After loosing "_at_work" suffix.
05:26 cotto If your robot programming superpowers find see the bug that's great, but I'd also appreciate tips for debugging it.
05:26 cotto sure.  thanks
05:38 luben_work joined #parrot
05:53 bacek_at_work cotto, 32bit or 64bits?
05:55 bacek_at_work cotto, AddrRegistery got corrupted. There is some crap inside hash
06:02 cotto bacek_at_work, 23-bit
06:02 cotto er, 32
06:03 bacek_at_work yeah. I just reproduced it.
06:03 bacek_at_work AddrRegistery. Hash inside it.
06:06 bacek_at_work heh
06:06 bacek_at_work no
06:06 cotto no?
06:07 bacek_at_work src/runcore/profiling.c:328
06:07 bacek_at_work Parrot_pmc_gc_register(interp, (PMC *) runcore->profile_filename);
06:07 bacek_at_work runcore->profile_filename is STRING*
06:07 bacek_at_work kaboom
06:07 cotto When I looked at the code, it appeared that the gc didn't care.  I guess ms2 does.
06:08 plobsing is there an interface to register strings? should there be?
06:09 bacek_at_work plobsing, I think we do need one.
06:09 cotto I'd hope so.  If I don't do anything, the string gets collected.
06:09 bacek_at_work cotto, in this case just create String PMC
06:09 plobsing cotto: your immediate work around could be to box the string.
06:09 cotto How do they get marked in a non-explodey fashion of no interface exists?
06:10 theory left #parrot
06:10 cotto I'll try that.
06:10 bacek_at_work in theory...
06:13 cotto How much work would it be to add an interface for strings?
06:14 bacek_at_work easiest way - switch current interface to PObj.
06:14 bacek_at_work hmm. may be no
06:14 bacek_at_work But basically it's just add few methods to AddrRegistery
06:22 cotto That seems to fix it, though I wouldn't call the code pretty.  bacek++
06:23 cotto cstring->STRING->pmc all over the place, and no Parrot_pmc_new_init_str in sight.
06:23 contingencyplan left #parrot
06:25 cotto bacek_at_work, the fix would be to add get_string_keyed and set_string_keyed to AddrRegistry and add code to the gc for a public-facing interface, or would it be more involved than that?
06:27 plobsing you'd need to implement a custom mark. gc doesn't like being told about PMCs that are really STRINGs.
06:27 cotto I just learned that.
06:28 plobsing possibly other custom hashy stuff. maybe just a distinct PObj hash key type
06:28 ash_ left #parrot
06:28 cotto We have strings now.  Why aren't they getting collected?
06:28 plobsing cotto: we have few embedders.
06:28 cotto sigh
06:28 bacek_at_work cotto, it's unlikely that more stuff will be involved.
06:29 plobsing few if any people are putting STRINGs in heap-allocated aggregates
06:31 cotto I'll do that then.  That seems like a strange oversight.
06:36 cotto Will AddrRegistry need a separate hash for STRING pointers to live in?
06:37 bacek_at_work cotto, yes
06:39 cotto will everything in the hash get marked automagically or does the gc need to know about it explicitly?
06:41 cotto Clearly I have holes in my understanding of the interaction between this pmc and the gc.  I'll have to dig around a bit.
06:41 plobsing src/gc/mark_sweep.c:217
06:42 plobsing gc relies on gc_registry object to mark itself
06:42 cotto The convenient inheritance of AddrRegistry from Hash kinda breaks down when I want to add another hash.
06:45 cotto looks like hashes know how to mark strings.
06:46 cotto I see.  STRING marking works fine.  STRING registring isn't implemented.
07:10 fperrad joined #parrot
07:57 tadzik joined #parrot
08:19 simon_ joined #parrot
08:20 cotto anyone care for a patch review?
08:21 simon_ curious: are most lexical analysers for parrot languages written in Perl 6?
08:21 nopaste "cotto" at 192.168.1.3 pasted "add Parrot_str_gc_register et al" (311 lines) at http://nopaste.snit.ch/24074
08:22 cotto simon_, nqp-rx rather than full perl 6, but that's the recommended tool
08:22 cotto winxed rolls its own though
08:24 cotto fwiw, that solves problem with the profiling runcore and successfully keeps the string from being collected
08:24 simon_ haha, NQP is an excellent name. thanks. :)
08:28 cotto If you want to learn the language, the tests are a good way to get started.
08:28 tadzik left #parrot
08:33 bacek cotto, why did you keep AddrRegistery is-a Hash? From my point of view it's better to switch it to has-a Hash.
08:34 cotto no specific reason other than it seemed like slightly less work at the time
08:34 cotto I mostly wanted to see if it'd fix my problem.
08:35 bacek fair enough.
08:35 cotto has-a makes more sense
08:36 bacek I think you can just drop "extend Hash" and add "ATTR pmc_hash"
08:37 cotto yes
08:38 cotto turns out it's less effort than I thought it'd be
08:38 nopaste "cotto" at 192.168.1.3 pasted "add Parrot_str_gc_register et al, v2" (346 lines) at http://nopaste.snit.ch/24075
08:40 bluescreen left #parrot
08:41 plobsing cotto: does this mean we've shaved enough yaks to make nqp-rx faster yet?
08:42 cotto there's a bit more hair left, but this will allow the nqp-rx build to be profiled
08:43 cotto I'll call it done when Parrot and nqp-rx's builds work with profiling as the default runcore.
08:45 cotto Crud.  A gc test expects AddrRegistry to implement get_iter.
08:45 cotto I wonder if that's needed.  t/op/gc.t is the only file with failing tests.
09:01 cotto svn--
09:01 cotto Skipping binary file: 't/op/gc.t'
09:02 cotto svn--
09:02 cotto svn--
09:02 cotto svn--
09:02 cotto svn--
09:02 cotto svn--
09:02 cotto the inanity infects trac too
09:03 bacek karma svn
09:03 aloha svn has karma of -7.
09:03 bacek aloha, clock?
09:03 aloha bacek: bacek: LAX: Thu, 02:03 PDT / CHI: Thu, 04:03 CDT / NYC: Thu, 05:03 EDT / UTC: Thu, 09:03 UTC / LON: Thu, 10:03 BST / BER: Thu, 11:03 CEST / TOK: Thu, 18:03 JST / SYD: Thu, 20:03 EST
09:03 aloha bacek: Dunno.
09:04 cotto with purl, we had it down to a much more appropriate level
09:05 bacek -70 :)
09:07 cotto the AddrRegistry stringification test smells unnecessary
09:08 cotto Let's see how Rakudo fares.
09:16 allison joined #parrot
09:17 fperrad left #parrot
09:29 fperrad joined #parrot
09:34 simon_ does Parrot not have a common standard library?
09:38 plobsing simon_: parrot comes with some libraries. they are standard as far as parrot is standard ;-)
09:40 tadzik joined #parrot
09:44 simon_ sure :) I was putting emphasis on common rather than standard, hehe.
09:44 plobsing it kinda gets spread out in the installed tree, but is nice and collected under runtime/ in the build tree
09:58 bacek left #parrot
10:13 he_ joined #parrot
10:34 ruoso left #parrot
10:37 bacek joined #parrot
11:07 ellefu left #parrot
11:13 he_ left #parrot
11:13 ellefu joined #parrot
11:17 Tracks joined #parrot
11:30 janus \/win 3
11:36 tadzik left #parrot
11:40 jsut joined #parrot
11:44 jsut_ left #parrot
12:31 ruoso joined #parrot
12:58 jsut left #parrot
12:58 fperrad left #parrot
13:20 Patterner left #parrot
13:30 Psyche^ joined #parrot
13:30 Psyche^ is now known as Patterner
13:47 bkuhn joined #parrot
13:54 davidfetter left #parrot
13:57 M_o_C joined #parrot
14:08 theory joined #parrot
14:21 theory left #parrot
14:24 jsut joined #parrot
15:19 contingencyplan joined #parrot
15:19 nwellnhof joined #parrot
15:38 ruoso left #parrot
15:51 ruoso joined #parrot
16:14 tadzik joined #parrot
16:27 s1n joined #parrot
16:32 ruoso left #parrot
16:35 ash_ joined #parrot
16:40 luben_work left #parrot
16:42 bkuhn left #parrot
16:47 theory joined #parrot
16:49 nwellnhof left #parrot
17:03 davidfetter joined #parrot
17:08 dukeleto davidfetter: how goes it?
17:09 davidfetter dukeleto, i'm getting a mite frantic. i need to deliver something that will be public-facing the monday after next
17:09 davidfetter oh, and this coming tuesday, i need a new story about pl/parrot :P
17:10 davidfetter dukeleto, how's by you?
17:10 dukeleto davidfetter: new story for what?
17:10 davidfetter sfpug
17:10 dukeleto davidfetter: i am going to write a blog post about using Perl 6 grammars from PL/Parrot
17:10 davidfetter i'm supposed to be presenting then
17:10 dukeleto davidfetter: i keep writing it in my head but it hasn't escaped yet
17:11 davidfetter let it out!
17:12 dukeleto RELEASE THE PARROTS!
17:17 davidfetter release roderick!
17:50 tadzik left #parrot
18:00 allison left #parrot
18:09 theory left #parrot
18:12 mikehh left #parrot
18:35 jan left #parrot
18:45 jan joined #parrot
18:49 cotto ~~
18:51 dukeleto cotto: 'ello
18:58 mikehh joined #parrot
19:00 cotto dukeleto, h'
19:01 dukeleto cotto: what's cookin' ?
19:06 cotto bacek++ helped me find my bug.  The profiling runcore is about to get much more useful.
19:08 bacek left #parrot
19:10 cotto is partcl expected to build with trunk?
19:10 * cotto suspects not
19:12 jsut_ joined #parrot
19:14 ash_ in the gdb
19:14 ash_ is there an easy way to print the type of a PMC?
19:15 ash_ or some way to tell what the PMC is
19:17 PerlJam ash_: there's a typeof operator of some sort.  I forget what it's called precisely.
19:17 ash_ lol, or even more crazy, say i have an arbitrary pointer, but i am pretty sure its a P register of some sort, anyone know how i can tell if it contains the right value in C?
19:17 PerlJam (maybe "typeof" or "type" or something)
19:17 cotto pmc->vtable->whoami->strstart
19:17 ash_ i am in the gdb, so its a bit low
19:17 ash_ a, thanks
19:17 ash_ ah*
19:17 cotto iirc
19:18 jsut left #parrot
19:18 ash_ yay, it didn't print gibberish: $27 = 0x10015253e "PackfileConstantTable"
19:18 ash_ well, i found 2 bugs in my code that are related to why the packfileconstanttable tests are failing
19:18 ash_ but its still giving me segfaults :-(
19:19 ash_ (gdb) bt
19:19 ash_ #0  0x0000000101506170 in ?? ()
19:19 ash_ #1  0x00000001012aef5c in ffi_call_unix64 ()
19:19 ash_ #2  0x000000010150d070 in ?? ()
19:19 ash_ doesn't help
19:22 dukeleto ash_: you need a build with debug symbols
19:22 dukeleto ash_: looks like you might need libffi with debug symbols to get a useful backtrace
19:23 ash_ i have debug symbols
19:23 dukeleto Pacific Northwest Parrot Developers Gathering/Hackathon : http://calagator.org/events/1250459325
19:23 ash_ but libffi drops into asm and does magic jumping
19:23 dukeleto ash_: ah, the fun of debugging asm
19:24 dukeleto ash_: what are the nature of the bugs that you found?
19:24 ash_ once you go into a libffi call it's going to mess up the stack trace until you finish the call
19:25 dukeleto ash_: why do the packfile tests trigger the bug?
19:25 ash_ one was an offset wasn't correct for a specific NCI signature, the other was me being dumb and not having a break at the end of a switch statement, and it corrected part of the problem, but now the ffi call happens and i get a segfault
19:26 ash_ i haven't fully identified why it was only packfile, but i do know it was generating the NCI signatures wrong for 2 methods, one  in PackfileConstantTable and 1 in PackfileAnnotations, but it even built and ran rakudo fine with this bug...
19:27 dukeleto ash_: it is very possible that rakudo doesn't trigger those code paths
19:28 ash_ ya
19:31 dalek parrot: r49468 | mikehh++ | trunk/src/runcore/profiling.c:
19:31 dalek parrot: fix codetest failure - trailing whitespace
19:31 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49468/
19:38 dukeleto ash_: are you only getting core dumps on some platforms, or all?
19:38 ash_ segfaults are happening on OS X, i haven't tried linux yet, if i can't figure it out i may try using ubuntu since it has a different version of gdb and freinds
19:38 theory joined #parrot
19:39 dukeleto ash_: will getting some smoke reports help you?
19:43 ash_ umm, not yet, if i get it fixed on OS X a smoke report would be good to make sure its working elsewhere
19:46 ash_ okay, so its mangling the 2nd parameter on calls to "get_or_create_constant" that are dispatched via: Parrot_mmd_multi_dispatch_from_c_args
19:49 dukeleto ash_: interesting. You might have tickled a bug in parrot that no one else has run into
19:49 AzureStone left #parrot
19:50 ash_ i am looking to see where the param gets mangled, it might be something i did
19:50 ash_ within the nci changes
19:50 tcurtis joined #parrot
19:52 AzureStone joined #parrot
19:53 bacek joined #parrot
19:53 ash_ is there anything you need to do to get gcc to not optimize at all?
19:53 ash_ doing perl Configure.pl seems to have enabled some optimizations
19:54 ash_ but in the gdb i keep getting: <value temporarily unavailable, due to optimizations>
19:54 ash_ which is annoying when your trying to debug
19:56 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#492) fulltest) at r49468 - Kubuntu 10.10 RC amd64 (g++-4.5)
19:56 plobsing perl Configure.pl --debug maybe?
19:57 mikehh perl Configure.pl takes its args from the perl build
19:57 M_o_C left #parrot
19:57 mikehh so if perl was built with -o2 -g it gets passed to parrot
19:58 plobsing by default of course. there are ways to override it. worst case, use --ccflags=''
19:58 ash_ i did: --optimize="-g -o0"
19:58 M_o_C joined #parrot
19:58 theory left #parrot
19:58 ash_ err -O not -o
19:59 mikehh likewise :-}
19:59 frodwith left #parrot
20:00 frodwith joined #parrot
20:00 plobsing ash_: check the generated makefile. what flags are being passed to cc?
20:04 GeJ Bonjour everyone.
20:05 davidfetter bonjour GeJ
20:06 cotto hio GeJ
20:11 GeJ heya davidfetter, cotto.
20:11 perlite left #parrot
20:11 perlite joined #parrot
20:20 ash_ left #parrot
20:28 M_o_C left #parrot
20:33 bacek left #parrot
20:34 bacek joined #parrot
20:40 ruoso joined #parrot
21:00 tcurtis left #parrot
21:02 tcurtis joined #parrot
21:09 PerlJam left #parrot
21:18 shockwave joined #parrot
21:18 shockwave Hello boys and girls.
21:18 shockwave I'm in the process of embedding Parrot, and I'm running into a little issue.
21:19 shockwave Basically, Parrot_pbc_read() always fails for me. I can run the PBC file using ./parrot.exe, but the function above always returns false.
21:19 shockwave I'm on Windows 7.
21:20 shockwave I'm compiling my project using Visual Studio 2010.
21:20 shockwave I'm compiling Parrot with mingwin
21:20 shockwave strawberry Perl.
21:21 shockwave Does anyone have an idea of where/what I should be looking at to resolve this problem?
21:23 bacek aloha, humans
21:23 davidfetter is now known as humans
21:24 humans aloha bacek
21:24 sjn_ left #parrot
21:24 humans is now known as davidfetter
21:24 bacek :)
21:24 cotto aloha, bacek
21:24 bacek cotto, hio. How is your bug in profiling runcore?
21:25 cotto just need to get a test passing before I commit the fix
21:25 plobsing shockwave: does it print anything before it returns NULL? looking at the function, it should be.
21:26 shockwave @plobsing: This is for a GUI app, so it wouldn't print anything.
21:27 shockwave 3D game, to be exact.
21:27 plobsing you can replace the standard handles to something meaningful
21:27 plobsing like a stringbuffer that then populates an error popup
21:28 plobsing or an error console of some kind
21:28 shockwave @plobsing: Ok, let me go lookup how to do that. brb
21:28 cotto either that or remove the test
21:29 plobsing but for debugging, the information I *need* is which error message you are getting (because there's between 5 and 10 different possible scenarios)
21:30 * cotto is strongly tempted to not implement get_iter for AddrRegistry
21:30 shockwave @plobsing: If I understood you correctly, I need to change the stdoutput/stderror handles to something like a stringbuffer, right? I have no idea how to do that, so I'm looking on docs.parrot.org for any info on it.
21:31 plobsing shockwave: so you *can't* run this at the command line? it would be much easier for the moment (although I understand that isn't an interface you would want to ship)
21:32 shockwave oh, gotcha. Let me see if I can actually do that.
21:33 shockwave @plobsing: It did run from the command line, but didn't print anything.
21:33 shockwave Let me show you the code that I'm using
21:33 plobsing and it returned NULL?
21:34 shockwave mPackFile = Parrot_pbc_read(mInterp, path.c_str(), debug);
21:34 shockwave if (!mPackFile) { return false; }
21:34 shockwave yeah, it's returning null.
21:34 shockwave and debug is 0
21:34 shockwave mInterp is a handle initialized by Parrot_new(NULL);
21:35 shockwave purl paste
21:36 plobsing ENOPURL
21:36 nopaste "shockwave" at 192.168.1.3 pasted "Code for loading PBC" (33 lines) at http://nopaste.snit.ch/24090
21:36 shockwave That's the simple class I'm using to load the PBC
21:38 * dukeleto backlogs
21:38 shockwave Like I mentioned before, libparrot is built using the strawberry tools.
21:39 plobsing but this is c++. isn't strawberry strictly gcc?
21:39 shockwave I'm not sure if that's causing some incompatibility with the MSVC built stuff.
21:39 mj41_ joined #parrot
21:39 shockwave yes
21:39 shockwave But, *I* am not using strawberry.
21:39 plobsing shockwave: probably, this is a problem.
21:40 shockwave I'm only using it to built libparrot.
21:40 plobsing I'm not sure if msvc and gcc use the same abi by default or if they can be made to do so at all.
21:40 shockwave I don't mind at all building Parrot with Visual Studio, but I just can't find any docs on how to do it.
21:40 plobsing But I do know that parrot's header files will be tuned for the particular compiler with which parrot is being compiled.
21:41 shockwave I'm sure the docs are around, somewhere. I just cant find them.
21:41 plobsing I seem to recall breaking one of our smoke builds which was running msvc. So *somebody* knows
21:41 plobsing you probably need to use activeperl to build it.
21:41 tcurtis jnthn: ping
21:42 plobsing or some other msvc perl
21:42 mj41 left #parrot
21:42 mj41_ is now known as mj41
21:42 dukeleto shockwave: you might want to look at how PL/Parrot reads PBC
21:43 tcurtis jnthn: shockwave is wanting to know how to build Parrot with Visual Studio. IIRC, you built the R * MSI one month using MSVC, right?
21:43 shockwave dukeleto: PL?
21:43 tcurtis left #parrot
21:44 dukeleto shockwave: http://pl.parrot.org
21:44 dukeleto shockwave: PL/Parrot just calls Parrot_load_bytecode
21:45 jnthn shockwave: Using the Visual Studio Command Pro,mpt + ActivePerl, it just works out the box for me.
21:45 jnthn (e.g. the usual Configure.pl / nmake)
21:45 shockwave jnthn: Cool, I'll give it a try.
21:46 ruoso left #parrot
21:46 shockwave dukeleto: I think the issue I'm having has to do with the different ABIs of MSVC and GCC, which I'm mixing, like plobsing mentioned.
21:47 shockwave I'll use ActivePerl. brb
21:57 bacek aloha, nopaste is is http://nopaste.snit.ch (works with the script in $_PARROT/tools/dev/nopaste.pl)
21:57 aloha bacek: Okay.
21:57 bacek aloha, paste is see nopaste
21:57 aloha bacek: Okay.
21:57 bacek aloha, paste?
21:57 aloha bacek: paste is see nopaste
21:57 bacek aloha, nopaste?
21:57 aloha bacek: nopaste is is http://nopaste.snit.ch (works with the script in $_PARROT/tools/dev/nopaste.pl)
21:57 jnthn shockwave: Don't cross the beams^Wcompilers!
21:58 cotto bacek, do you think the addr_registry_2_str test in t/pmc/addrregistry.t is necessary?  It looks like it'd be a pain to implement with two hashes.
21:58 shockwave jnthn: Good advice.
21:58 shockwave I see you wrote: ... mpt + ActivePerl ...
21:58 shockwave What's mpt?
21:59 jnthn drunk typing
21:59 jnthn Prompt
21:59 jnthn :-)
21:59 shockwave :)
21:59 cotto that sounds a lot worse than duck typing
22:00 bacek cotto, I don't have such test in t/pmc/addrregistery...
22:01 cotto t/op/gc.t
22:01 cotto my mistak
22:01 cotto e
22:03 bacek cotto, it's useless test. Because it tests String PMC not STRING.
22:03 cotto I was hoping you'd say that.
22:03 bacek anyway, $dayjob time
22:03 bacek see you
22:03 cotto have "fun"
22:10 shockwave left #parrot
22:10 dalek parrot: r49469 | cotto++ | trunk/t/op/gc.t:
22:10 dalek parrot: [t] remove a useless test that interferes with the next commit
22:10 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49469/
22:10 dalek parrot: r49470 | cotto++ | trunk/src/pmc/addrregistry.pmc:
22:10 dalek parrot: [pmc] make AddrRegistry able to hold and mark both STRINGs and PMCs
22:10 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49470/
22:10 dalek parrot: r49471 | cotto++ | trunk (2 files):
22:10 dalek parrot: [gc] add internal functions for string registering and unregistering
22:10 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49471/
22:10 dalek parrot: r49472 | cotto++ | trunk (2 files):
22:10 dalek parrot: [extend] add functions for string registering and unregistering for embedded users
22:10 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49472/
22:13 theory joined #parrot
22:17 shockwave joined #parrot
22:23 preflex left #parrot
22:26 dalek parrot: r49473 | cotto++ | trunk/src/runcore/profiling.c:
22:26 dalek parrot: [profiling] use the new string registering interface to keep the filename from being prematurely collected
22:26 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49473/
22:27 preflex joined #parrot
22:33 shockwave :(
22:34 shockwave I built Parrot using ActiveState, but still Parrot_pbc_read() always returns false.
22:34 shockwave Also, if that function is print error messages, they won't be seen.
22:35 bacek_at_work ~~
22:35 shockwave I added print lines to stderr, and ran the program from the command line. Since it's a gui program, the cmdline doesnt print anything.
22:36 shockwave plobsing had mentioned something about redirecting the output. I wonder if he meant by using some Parrot function, or if he meant the pipe redirection?
22:44 cotto parrot builds and installs with the profiling runcore as the default
22:45 bacek_at_work cotto++ # Hooray!
22:48 cotto now for nqp-rx
22:50 dukeleto shockwave: have you tried Parrot_load_bytecode ?
22:51 s1n left #parrot
22:52 shockwave dukeleto: I haven't, but read the description of it here: http://docs.parrot.org/parrot/l​atest/html/docs/embed.pod.html
22:52 shockwave "Due to the void return type, the behavior of this function on error is unclear."
22:58 shockwave I think it would probably make sense for the core of Parrot not to print stuff to stdout/stderr.
22:58 davidfetter left #parrot
22:59 shockwave The assumption that stderr/stdio are available can be untrue, in some cases. Like, in Windows GUI programming.
22:59 shockwave I'm looking at Parrot_io_eprintf
22:59 shockwave That function is used by Parrot_pbc_read() to print errors.
23:01 shockwave Is there a function to set _PIO_STDERR(interp) to be a file?
23:01 dukeleto shockwave: the parrot embed interface hasn't been used by many people, and lots of the docs are wrong.
23:01 dukeleto shockwave: read the code to be sure
23:03 dukeleto shockwave: and/or please provide doc patches :)
23:03 dukeleto shockwave: i think i remember running into this problem with PL/Parrot, which is why I used Parrot_load_bytecode
23:05 cotto nqp-rx's build works
23:06 shockwave dukeleto: I'll give Parrot_load_bytecode a try.
23:14 mikehh_ joined #parrot
23:15 mikehh left #parrot
23:16 shockwave ok, the docs are wrong. What is the Function to invoke a sub? The docs say Parrot_ext_call
23:17 dukeleto shockwave: yes
23:18 dukeleto shockwave: PL/Parrot uses Parrot_ext_call
23:18 dukeleto shockwave: http://github.com/leto/plparro​t/blob/master/plparrot.c#L488
23:19 dukeleto shockwave: what were the docs wrong about?
23:19 shockwave dukeleto: Apparently, it's in the extend.h header
23:19 shockwave It looks like extend.h and embed.h should be merged.
23:20 dukeleto shockwave: you usually need extend.h, embed.h and sometimes extend_vtable.h
23:24 mikehh_ is now known as mikehh
23:24 mikehh opbots, names
23:26 nopaste "shockwave" at 192.168.1.3 pasted "Parrot_load_bytecode" (19 lines) at http://nopaste.snit.ch/24093
23:27 shockwave What I pasted above is even worst. It crashes somewhere there.
23:27 shockwave And, since in my project that thing is in a different DLL, I can't debug it.
23:27 shockwave It is so frustrating that something so basic doesn't work.
23:29 jsut joined #parrot
23:29 dalek parrot: r49474 | mikehh++ | trunk/src/string/api.c:
23:29 dalek parrot: fix codetest failure - trailing whitespace
23:29 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49474/
23:29 dalek parrot: r49475 | mikehh++ | trunk/t/op/gc.t:
23:29 dalek parrot: change plan to reflect removed sub-test
23:29 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49475/
23:34 jsut_ left #parrot
23:37 cotto mikehh++
23:40 whiteknight joined #parrot
23:47 hatseflats anyone know why parrot installs files in /usr/src?
23:48 dukeleto hatseflats: which OS/platform are you on? parrot doesn't do that for me
23:48 dukeleto hatseflats: which version of parrot are you using? release or from svn?
23:49 hatseflats dukeleto: parrot 2.7.0 dist, on gentoo
23:49 hatseflats already asked in #gentoo on freenode, no one has replied so far :)
23:50 dukeleto hatseflats: in any case, if you do perl Configure.pl --prefix=/foo, you can control where it installs
23:50 hatseflats dukeleto: portage abstracts that procedure, so I figure it's an issue I have to discuss over in their channels, thanks for the help anyway :)
23:51 shockwave left #parrot
23:51 dukeleto hatseflats: indeed. are you using a gentoo distribution of parrot? do you have a link for it?
23:53 dukeleto msg shockwave i am not sure many people have used the parrot embed api directly from windows, and i don't think Parrot_ns_find_current_namespace_global is returning a valid sub, which will make Parrot_ext_call blow up
23:53 aloha OK. I'll deliver the message.
23:53 hatseflats dukeleto: http://gentoo-portage.com/dev-lang/parrot
23:53 hatseflats which gets it's sources from parrot.org
23:53 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#493) fulltest) at r49475 - Kubuntu 10.10 RC amd64 (gcc-4.5)
23:54 hatseflats funny, looking at the ebuild file, it doesn't seem to install to /usr/src, but the tools indicate the directory in /usr/src is owned by parrot's package
23:58 dukeleto hatseflats: who wrote the ebuild for parrot?
23:58 dukeleto hatseflats: the ebuild package doesn't seem to be in the parrot source code
23:59 hatseflats ebuilds are gentoo specific, hardly any packages provide them because they're constantly updated etc, I don't know what subproject parrot belongs, finding out will require some polling in the gentoo channels

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

Parrot | source cross referenced