Camelia, the Perl 6 bug

IRC log for #parrot, 2008-10-29

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:00 pmichaud that seems odd.
00:01 pmichaud can you describe the breakage more specifically?
00:09 AndyA joined #parrot
00:11 nopaste "tene" at 96.245.16.64 pasted "broken namespace pir" (75 lines) at http://nopaste.snit.ch/14416
00:12 Tene Check out the namespace declarations and the unmatched ]
00:12 Tene If I change it to a ResizablePMCArray, it works fine.
00:16 pmichaud is it empty?
00:16 pmichaud the code for generating that is .key
00:16 pmichaud on a CodeString
00:17 pmichaud so might make sure that CodeString's .key method works on whatever kinda of array you happen to be sending it.
00:18 dalek r32225 | kjs++ | trunk:
00:18 dalek : [pirc/new] add infrastructure for linear register allocator. + update MANIFEST
00:18 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32225
00:20 Debolaz joined #parrot
00:32 * chromatic finishes booking travel for the summit
00:32 * Croke tries to install an old copy of half-life onto his mac.
00:33 bacek joined #parrot
00:42 nopaste "tene" at 96.245.16.64 pasted "test of CodeString::key on CardinalArray for pmichaud" (8 lines) at http://nopaste.snit.ch/14417
00:42 Tene ... it might help if I populated it first.
00:45 pmichaud is that producing the error?
00:46 Tene That means that CardinalArray is misbehaving in some other way, but .key is returning just "]" when it's empty
00:46 Tene when the array is empty
00:46 pmichaud that's the bug, then.
00:47 pmichaud ...what's the PIR code to re-enable an invoked handler?
00:47 pmichaud (in the current version of Parrot)
00:47 Tene assign either 0 or 1 to it, lemme check which
00:48 Tene assign 0 to it, looks like
00:48 pmichaud assign 0 to the handler, as in   set $P0, 0 ?
00:48 Tene Right.
00:48 pmichaud got it, thanks.
01:16 cottoo joined #parrot
01:21 grim_fandango joined #parrot
01:22 cottoo pmichaud++ #big long exception handler writeup
01:59 Croke hurm. does the sprintf opcode not work on unicode strings?
01:59 Croke ah. apparently not. (requires fixed_8)
01:59 Croke be nice if it threw an exception instead of dying on an assert.
03:03 * Croke gets partcl to cause parrot to run out of memory.
03:04 Croke PMCNULL: PMC :: x : STRING ?
03:06 ab5tract joined #parrot
03:14 Ontolog joined #parrot
03:36 Andy joined #parrot
03:51 PerlJam sweet.  I was implementing some of the Project Euler problems in Perl 6 just for fun and was becoming annoyed at the lack of next/last.  I see on #ps that execption handling was a hot topic today, so that maybe they'll arrive soon.
03:54 pmichaud next exists, last doesn't yet.
03:56 Psyche^ joined #parrot
03:59 Hinrik #ps ?
03:59 purl #ps is a status meeting for parrot core committers held every Tuesday at 18:30 UTC in #parrotsketch
03:59 Hinrik ah
04:03 PerlJam Hrm.  When I tried using next, I seem to recall parrot dumping a load of crap to my screen.
04:04 * PerlJam tries again, but simply
04:05 PerlJam ah, maybe it was just last then and I intuited incorrectly that next wasn't there as well.
04:10 grim_fandango_ joined #parrot
04:10 PerlJam Anyway, it's good to see the exception mess is getting straightened out :)
04:16 Croke bah. I think after a few hours of effort, I've let tcl parse a test file... with 4 passing tests.
04:16 Croke <otto>DisaPPOINTED</otto>
04:26 Tene PerlJam: the rest of the control exceptions are pending a refactor of loops in PCT.
04:28 Tene PerlJam: pmichaud wants to have a single function to set up control exception handlers for all loops to avoid massive code duplication.
04:29 davidfetter joined #parrot
04:30 Tene All of the infrastructure is there in parrot, but anything we add will need to be ripped out for the refactor.
04:51 tetragon joined #parrot
05:35 grim_fandango_ joined #parrot
05:36 dalek r32226 | chromatic++ | trunk:
05:36 dalek : [PMC] Fixed a memory leak in ExceptionHandler PMC.
05:36 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32226
05:46 dalek r32227 | chromatic++ | trunk:
05:46 dalek : [HLL] Fixed a memory leak when declaring an HLL.  We need a nice STRING
05:46 dalek : function which creates a constant, non-external string from a C string (or
05:46 dalek : something to promote a non-constant STRING to a constant STRING, especially
05:46 dalek : with COW).
05:46 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32227
05:50 chromatic Yes, that's Tene bait.
05:59 grim_fandango joined #parrot
06:04 grim_fandango_ joined #parrot
06:42 japhb joined #parrot
06:45 dalek r32228 | chromatic++ | trunk:
06:45 dalek : [t] Changed OS readdir() test to read docs/ subdirectory instead of Parrot
06:45 dalek : root, which avoids a race condition where parallel tests may create or delete
06:45 dalek : temporary files in the Parrot root directory between the readdir() calls.
06:45 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32228
06:46 TiMBuS joined #parrot
06:57 grim_fandango__ joined #parrot
07:01 clunker3 joined #parrot
07:16 chromatic Here's something for you, Croke.
07:19 dalek r32229 | chromatic++ | trunk:
07:19 dalek : [src] Made key_string() COW STRINGs extracted from String and String register
07:19 dalek : Key PMCs.  If they get collected later on, they won't end up freeing the source
07:19 dalek : string as well (RT #60128, reported by Will Coleda).
07:19 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32229
07:33 uniejo joined #parrot
07:44 Bzek joined #parrot
07:55 GeJ joined #parrot
07:55 yardiz joined #parrot
07:55 iblechbot joined #parrot
07:56 yardiz left #parrot
08:25 tewk_ shorten that
08:25 purl That URL is at http://xrl.us/ovgro [parrotvm.org]
08:49 bacek joined #parrot
08:51 gaz joined #parrot
09:13 mj41 joined #parrot
09:22 tomyan joined #parrot
09:25 barney joined #parrot
10:11 kj joined #parrot
10:14 * barney just read nice witeup: http://sebastian-bergmann.de/archives/822-Of​-Lambda-Functions,-Closures,-and-Traits.html
11:09 ruoso joined #parrot
11:35 iblechbot joined #parrot
11:58 Croke chromatic++
12:38 jhorwitz joined #parrot
12:48 tetragon joined #parrot
13:08 particle joined #parrot
13:11 gryphon joined #parrot
13:19 dalek r32230 | pmichaud++ | trunk:
13:19 dalek : Various push_eh/pop_eh updates in runtime/parrot/library/ .
13:19 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32230
13:26 grim_fandango joined #parrot
13:39 diakopter joined #parrot
13:41 Theory joined #parrot
13:45 Croke zombie tcl; runs slow, eats my brains. :|
13:56 davidfetter braaaaains
13:57 Croke really wish I could profile tcl to see where to speed it up.
13:57 Croke aside from "don't use Hash" and "avoid GC"
14:18 Andy joined #parrot
14:24 uniejo joined #parrot
14:38 * Croke wonders if anyone is talking to the google v8 JS folks.
14:41 * Croke finds some odd tcl spec test differences that he has no idea what happened.
14:41 Croke (3 more passing here, 3 less there...)
14:54 jsut|work joined #parrot
14:56 diakopter Croke: #chromium #v8 #chromium-dev on irc.freenode.net
15:06 cognominal joined #parrot
15:12 cosimo joined #parrot
15:19 Croke so you are, then? =-)
15:19 Croke thanks for the poitner.
15:21 diakopter nope, not I
15:22 diakopter I just lurk here.
15:22 diakopter <guffaw>
15:31 rdice joined #parrot
15:59 particle i talked to the google dalvik vm folks over the weekend
16:00 particle dalvik is the android vm
16:01 peepsalot joined #parrot
16:22 dalek r32231 | pmichaud++ | trunk:
16:22 dalek : [pct]:  Update to use correct push_eh/pop_eh handling.
16:22 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32231
16:25 PerlJam particle: What say they?
16:33 szabgab I am trying how can I run perl6 code inline perl5
16:34 particle PerlJam: we traded ideas and knowledge
16:34 Croke dalvik != v8, neh?
16:34 szabgab I load Parrot::Embed
16:34 particle v8 is a javascript engine
16:34 szabgab my $interp = Parrot::Interpreter->new;
16:34 particle dalvik is the vm running under android
16:34 Croke their cartoon calls it a VM. =-)
16:34 szabgab and load the perl6.pbc of rakudo
16:34 ambs joined #parrot
16:34 Croke which, I suppose it is, if highly tailored to JS.
16:35 particle sure, engine, vm, whatever
16:35 particle imcc is a pir engine :)
16:35 szabgab anyone knows the next step?
16:36 moritz szabgab: proabably http://svn.perl.org/parrot/tr​unk/languages/perl6/perl6.pir can inspire you
16:36 szabgab how can I give perl6 code to this?
16:37 szabgab I compiled perl6.pir to .pbc and loaded it
16:37 moritz or maybe you can even use some function in this file
16:37 szabgab $interp->load_file('/home/gabor/work​/parrot/languages/perl6/perl6.pbc');
16:37 ambs left #parrot
16:38 szabgab that's rakudo, right?
16:38 PerlJam aye
16:38 szabgab so I have rakudo embedded in the perl5
16:38 particle szabgab: try calling the main method, and passing args?
16:42 PerlJam Hmm. that's interesting ... you can find a subroutine by name, but you have to know the name of the one that's tagged with :main
16:42 PerlJam I.e., you can't ask "which sub is :main?"
16:42 particle there is a list of :main subs
16:42 PerlJam (or at least I don't see how)
16:43 particle only the first is run
16:43 particle hopefully you can introspect with interpinfo or another opcode
16:43 PerlJam particle: someone hands me a pbc.  How do you execute it?
16:43 PerlJam er, How do I execute it?
16:44 particle i ask parrot to run it
16:44 szabgab I tried to find_global('main')
16:44 particle load_bytecode runs the :load subs
16:44 PerlJam right.  Now ... how do I execute it with Parrot::Interpreter
16:44 PerlJam ?
16:45 szabgab and find_global('main', 'Perl6')
16:45 szabgab but got unefs
16:45 szabgab undefs
16:45 szabgab if I can 'find' it there is the invoke method I can use
16:47 PerlJam szabgab: you want main in Perl6::Compiler
16:47 PerlJam (assuming that the double colon is recognized properly)
16:47 szabgab not found
16:47 particle ['Perl6';'Compiler']
16:48 particle that's the pir syntax
16:48 PerlJam yeah, but what does it look like using Parrot::Interpreter?
16:48 szabgab $interp->find_global( 'main',  'Perl6::Compiler');
16:48 szabgab but it did not work
16:52 particle =item * C<find_global( $name, [ $namespace ] )>This method right now supports only single-level string namespaces; this will
16:52 particle change in the future.
16:52 purl particle: that doesn't look right
16:52 particle find_global doesn't support keyed namespaces
16:53 PerlJam Bummer.
16:54 PerlJam Bug chromatic about it I guess :-)
16:54 szabgab he is not here
16:54 particle or write some xs yourself :)
16:54 szabgab seen chromatic
16:54 purl chromatic was last seen on #parrot 9 hours, 37 minutes and 54 seconds ago, saying: Here's something for you, Croke.
16:54 particle lib/Parrot/Embed.xs:111
16:55 Hinrik joined #parrot
16:56 szabgab ok, so that is one thing that stops me
16:56 szabgab have to go now, back soon, bye
16:57 szabgab and thanks so far
16:57 particle i don't know xs well (at all, really), but i can see line 135 is where the namespace arg is handled
16:57 particle PerlJam: do you know any xs?
16:57 PerlJam very very little
16:57 particle ok szabgab, we'll see what we can do, but no promises :)
16:58 PerlJam I've only played with it a couple of time and it was long ago.
16:58 PerlJam Maybe Parrot_find_global_s needs to be patched though.
16:58 particle no
16:58 particle p_namespace is a Parrot_String
16:59 particle by the time you have p_namespace, you're already assuming the namespace is a string and not a pmc
16:59 particle so, you need to determine whether the first character of namespace is '['
16:59 particle if so, create a pmc instead of a string
16:59 particle put it in a Parrot_PMC type var
17:00 particle then call Parrot_find_global_pmc or whatever the appropriate func is
17:00 particle et viola.
17:02 PerlJam Parrot_find_glocal_k
17:02 PerlJam erk global
17:02 particle ah, ok, so need to find a way to create a key pmc from the sv
17:02 PerlJam Search the namespace designated by C<pmc_key>, which may be a key PMC,
17:02 PerlJam an array of namespace name strings, or a string PMC, for an object
17:02 PerlJam with name C<globalname>.  Return the object, or NULL if not found.
17:03 PerlJam I wonder if it's a string PMC, would "Perl6::Compiler" do the right thing
17:04 particle perhaps
17:05 particle i'm building tags now, so i can see the source
17:06 * PerlJam installs ctags so he can too :)
17:07 jsut|work joined #parrot
17:10 PerlJam It doesn't look like "Perl6::Compiler" will work.
17:11 particle it doesn't surprise me
17:12 PerlJam yeah, but I was hoping someone had already done that work somewhere
17:12 PerlJam :)
17:12 particle it might be easier to split on '::' and build an array
17:12 PerlJam yep, that's what I'm thinking
17:12 purl Oooh he is soooo fine!!!
17:15 PerlJam I find it interesting that the description of Parrot_find_global_k says "key PMC" and "string PMC", but not "array PMC"  It makes me think I'm missing something.
17:16 * particle has a severely i/o bound machine atm
17:16 particle ~7m to copy 1.33MB
17:16 PerlJam wow
17:16 particle too many simultaneous compiles and svn updates
17:23 grim_fandango_ joined #parrot
17:26 chromatic joined #parrot
17:26 particle hi-c.
17:26 chromatic More like a Hawaiian Punch.  KAPOW
17:27 particle szabgab was looking for a way to invoke a sub in a multi-level namespace using Parrot::Embed
17:27 particle apparently that's not possible, looking at Embed.xs
17:28 particle PerlJam and i are looking at taking a string like "['foo';'bar']" and generating a key pmc or resizablepmcarray to feed to Parrot_find_global_k
17:28 particle know of any exported func that will take a string and make a key?
17:29 particle specifically, szabgab wants to embed rakudo in perl 5
17:29 particle need to invoke [Perl6;Compiler], main
17:29 chromatic I don't know of any.  We should add one.
17:30 dalek r32232 | kjs++ | trunk:
17:30 dalek : [pirc/new] create a live interval object for symbolic registers.
17:30 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32232
17:30 chromatic ... or add something that turns an array of names into a key.
17:30 particle ok, that's what i thought. there isn't one where one should be.
17:30 PerlJam chromatic: or both
17:30 chromatic Right.
17:30 PerlJam (though we'd have to nail down what the strings should look like)
17:30 particle the strings should look like PIR allows them to look
17:31 particle that is, something the pir lexer will understand as a key
17:31 PerlJam I'm partial to Foo::Bar though
17:32 particle hrmm, iirc Exporter PMC allows Foo::Bar and converts it for you
17:32 chromatic I don't want to bake :: into the guts of Parrot as a blessed stringy separator.
17:32 PerlJam I guess "[Foo;Bar]" and "Foo::Bar" are perfectly compatible.  :)
17:32 PerlJam chromatic: makes sense.  I still like it :)
17:32 chromatic (to mix gory metaphors)
17:32 chromatic I'd rather Parrot_make_key(interp, @names) or something similar.
17:34 chromatic With at least one Texan on my side, how can I fail?
17:35 particle src/global.c:72 defines internal_ns_keyed
17:35 szabgab it would be great to see this working
17:35 particle we all agree on that, szabgab :)
17:36 PerlJam indeed
17:37 chromatic I'll work on that, but I need to review a transcription and prepare for a couple of interviews today, so if someone gets to it before tomorrow, that's fine too.
17:38 particle okies
17:38 szabgab please ping me when I can try it
17:39 szabgab once I have that, I guess I can start writing Padre plugins in perl 6
17:40 davidfetter padre?
17:40 purl padre is http://padre.perlide.org
17:40 szabgab yes
17:40 PerlJam So ... should I look at padre now or should I wait until after you've written some perl 6 plugins?
17:41 PerlJam I saw the use.perl posts about it, but I haven't taken the time to really look at it.
17:41 szabgab what os do you use?
17:41 PerlJam linux
17:41 PerlJam ubuntu
17:41 szabgab then thee is a binary you can doanload
17:41 szabgab download
17:41 particle the first perl 6 plugin for padre i'd write is syntax highlighting
17:41 szabgab that is exactly the idea
17:42 particle szabgab, are you on freenode?
17:42 szabgab probably :-)
17:42 particle you should talk to azawawi in #perl6
17:42 PerlJam If I could marry vim and textmate, that would be the ideal "IDE" for me.
17:43 particle http://feather.perl6.nl/~azawawi/simple_test/ for examples of syntax-highlighted perl 6 tests using STD.pm parser
17:43 szabgab oh, that could be cool line "Padre was born from the marrige of vim and textmate"
17:43 * davidfetter hasn't used textmate yet
17:43 davidfetter what does it have that vim doesn't?
17:44 PerlJam davidfetter: I imagine that you can do almost everything textmate can do with vim.  The thing is that it's work.
17:45 davidfetter k
17:45 szabgab guys, I'd really would like to ask you to try Padre and tell me the 5 most important things you are missing
17:45 szabgab just don't write "it is not called vim"
17:45 PerlJam heh
17:46 particle does it work on windows?
17:46 szabgab I have already implemented half of what was said on use.perl so I need more target :-)
17:46 szabgab yes it works
17:46 szabgab on windows
17:47 szbalint I liked your line at YAPC::EU about Padre features
17:47 szbalint "it does all this, well not yet but it will!" :)
17:47 szabgab there portable strawberry with padre already installed in it you can download
17:47 * PerlJam looks to see what everyone already said on use.perl
17:49 szabgab as Alias wrote:
17:49 szabgab Padre is now a FAR superior Perl editor compared to Windows Notepad. :)
17:49 PerlJam That's a really low bar to reach though.
17:50 PerlJam *anything* is better than notepad
17:50 PerlJam okay, I'll have to play with Padre some then.
17:50 particle notepad is better than ed
17:51 szabgab see his article too
17:51 Infinoid would be nice if "padre --help" didn't fork
17:52 szabgab :-)
17:54 Infinoid hmm, seems I have a version mismatch or something.  Can't locate object method "GetMenuLabel" via package "Wx::MenuBar" at /usr/lib64/perl5/site_perl/5.10.0/Padre/Wx/Menu.pm line 559.
17:55 szabgab hmm, did you install wx and all that from source?
17:55 Infinoid I think I did that the last time I looked at Padre, a month or two ago
17:55 Infinoid seems I have a Wx::Menu but no Wx::MenuBar
17:56 Croke I ended up grabbing a fresh install of the latest strawberry, then doing cpan> install Padre went smoothly (if slow)
17:56 PerlJam Are padre's prereqs set properly?   I just tried to install it from cpan and it failed because the tests can't find various modules.
17:57 szabgab 0.13 had this problem
17:57 szabgab 0.14 was fixed, I hope..
17:57 PerlJam This is 0.14
17:58 szabgab oh I think there is a '2nd level prereq error' or whatever I should call
17:58 szabgab that a prereq of my prereq is broken and only Padre triggers it
17:58 szabgab http://www.nntp.perl.org/group/perl.​cpan.testers/2008/10/msg2506267.html
18:04 Infinoid I think my Wx was confused by an older version of the wxGTK libraries (my system has two versions installed, 2.6.x and 2.8.x)
18:04 Infinoid the nonexistent function I mentioned above is within a versioned conditional in Menu.xs.
18:06 Infinoid the gentoo "wxperl" package forces wxGTK 2.6.x
18:06 szabgab that is way too old
18:07 jsut|work gentoo is kind of annoying with cpan too
18:07 jsut|work if you install a cpan package from portage it will always take precedence over something you install manually
18:07 Infinoid yeah, in most cases I end up removing gentoo's version and using CPAN directly
18:07 Infinoid I'll do that here too
18:07 szabgab that's the reason I am begging the linux distro maintainers to include padre
18:07 Infinoid g-cpan is broken with new versions of CPAN.pm too...
18:08 szabgab not so much because of padre but that they will include all the prereqs
18:08 jsut|work i've read about g-cpan, but i've never used it
18:08 Infinoid g-cpan makes ebuilds for cpan packages.  But newer versions of CPAN.pm have a base64 cookie as part of the "look" directory name, which breaks it
18:08 jsut|work i'm a big fan of gentoo otherwise though ;)
18:09 dalek r32233 | bernhard++ | trunk:
18:09 dalek : [Pipp] Add a requisite for 'make smolder_test'
18:09 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32233
18:09 szabgab ok to parrot and perl6 a bit: so I am trying to understand how are mortals expected to create new languages ?
18:09 szabgab writing a grammer for parrot (TGE ?)
18:10 szabgab or writing it in Perl6 rules ?
18:10 Croke there is a script to create a new language shell.
18:10 pmichaud iirc, find_global is deprecated.
18:10 Croke it's expected you'll start off with that, which leads down the path to PGE/PCT
18:11 Tene find_global has been depracated since 0.5.0
18:11 pmichaud ultimately I expect most mortals will be creating new languages in Perl 6.
18:11 dalek bernhard.schmalhofer@gmx.de | Pipp:
18:11 dalek link: http://www.perlfoundation.​org/parrot/index.cgi?pipp
18:11 Tene ... why isn't find_global marked as depracated in var.pod ??
18:11 pmichaud tools/dev/mk_language_shell is the closest approximation we have to that at the moment.
18:11 Tene There's no indication in var.pod that i shouldn't use it.
18:12 pmichaud Tene:  fix it :-)
18:12 particle pmichaud: are you referring to Parrot::Embed's 'find_global' ?
18:12 Croke does the opcode have a :deprecated tag?
18:12 Tene pmichaud: is s/description/DEPRECATED!!! DO NOT USE!!!/ good for you?
18:12 pmichaud particle:  no, the find_global opcode
18:12 pmichaud apologies if I'm interjecting the wrong one.
18:13 pmichaud (running a :main sub via load_bytecode)   Allison and I had this discussion at YAPC::NA and again at YAPC::EU
18:13 pmichaud currently there's not a way to know what was loaded.
18:13 particle luckily, pct subclasses have standard method names
18:14 pmichaud imo, load_bytecode should return an Eval PMC that provides a handle to the newly loaded module -- if that's at all possible.  At least then we'd be able to scan its contents to see what actually got loaded.
18:14 Tene ack... lots of uses of find_global in the tree. :(
18:14 particle *hllcompiler subclasses
18:14 Croke Tene: I'd go through and make sure: 1) every op in DEPRECATED.pod has the :deprecated tag, and then 2) go through the .ops files and make sure they all also mention the deprecate in the pod.
18:14 Tene Croke: are docs/ops/* generated from src/ops/*.ops ?
18:14 Croke yes.
18:16 szabgab so how are the languages in the languages/ dir defined now ?
18:16 Croke szabgab: what do you mean?
18:16 PerlJam depends on the language
18:16 szabgab do they have formal definitions or are they just compilers?
18:16 particle see squaak tutorial on www.parrotblog.org
18:16 szabgab do they have a grammar defined?
18:17 Croke depends on the language.
18:17 szabgab can you point me at a simple one that has a grammar?
18:17 Croke some have a .pg file with a grammar; some roll their own. some are just interpreters, not compilers. some predate any compiler tools at all.
18:17 moritz szabgab: PCT based compilers usually have a grammar and a slim comiler that translates the source into an abstract syntax tree
18:17 Croke szabgab: abc
18:17 particle languages/abc
18:17 purl rumour has it languages/abc is meant to be an intro to writing languages
18:18 PerlJam szabgab: abc
18:18 particle languages/squaak
18:18 Croke no, a b ceeeeeeeeeeeeee
18:20 szabgab I'll take a look at those
18:21 particle szabgab: also see http://www.pmichaud.com/2008/pr​es/yapceu-pct/slides/start.html
18:23 szabgab k
18:25 jonathan joined #parrot
18:25 wolverian joined #parrot
18:25 Juerd joined #parrot
18:26 dalek joined #parrot
18:28 szabgab btw I recall seeing somewhere that installer of parrot is not working yet.
18:28 szabgab do I remember correctly or can parrot be installed?
18:29 dalek r32234 | pmichaud++ | trunk:
18:29 dalek : [nqp]:  Update push_eh/pop_eh handling.
18:29 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32234
18:29 leo joined #parrot
18:29 pmichaud joined #parrot
18:32 Infinoid szabgab: best to just run it out of the source directory for now
18:32 dalek r32235 | pmichaud++ | trunk:
18:32 dalek : [pge]: Update push_eh/pop_eh usage.
18:32 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32235
18:33 szabgab k
18:34 jq joined #parrot
18:34 PerlJam joined #parrot
18:40 dalek bernhard.schmalhofer@gmx.de | Pipp:
18:40 dalek link: http://www.perlfoundation.​org/parrot/index.cgi?pipp
18:43 grim_fandango_ joined #parrot
18:46 Croke do i recall an impending PGE speedup?
18:46 Croke "correctly", that is.
18:46 chromatic LTM should help there.
18:46 moritz if it's matched with a DFA, yes
18:49 particle yes, ltm will speedup pge
18:49 pmichaud protoregexes will also help.
18:50 dalek r32236 | pmichaud++ | trunk:
18:50 dalek : [tge]:  Update push_eh/pop_eh usage.
18:50 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32236
18:53 moritz pmichaud: why should they be faster than normal alternatives?
18:56 pmichaud normal alternatives involve a lot of backtracking
18:56 pmichaud with protoregexes we can speed that up a bit by caching the initial fixed parts of the pattern
18:57 pmichaud i.e., we can decide that a given regex won't match before we even attempt to call it.
18:57 pmichaud on its own it's not LTM, but it is a significant improvement because we aren't testing alternatives that can't possibly match.
18:59 moritz ok
19:00 PerlJam pm: so where does all that implementation fall in time these days?
19:01 grim_fandango joined #parrot
19:01 pmichaud PerlJam: depends.   I'm trying to decide how heavily I want to invest in rewriting PGE in Perl 6
19:02 pmichaud besides, at the moment much of the work is predicated on the grant, which hasn't been announced yet.
19:02 pmichaud (that's not a big blocker, but it's a consideration.)
19:03 pmichaud and I still think that lexicals and value/container types are a bit more important at the moment.
19:03 Croke I know your priorities are perl6ian; but making PGE faster would help partcl also. =-)
19:03 pmichaud it helps everyone.  :-)
19:03 PerlJam making PGE faster would help *any* language
19:04 PerlJam (well, any built using PGE)
19:04 Croke which reminds me: I could definitely use some help with partcl converting it to compile smaller chunks at a time.
19:04 Croke if anyone is looking to play with PGE-related stuff.
19:04 pmichaud also, there's part of me that is holding out just a bit to see if S05 changes yet again in response to the questions about getting tokens back "in order"
19:05 pmichaud some of the ideas tossed around do involve major changes to the S05 spec, and so I'd like to see that settle out a bit first.  (Updating PGE only to have the spec change again is getting a bit old.)
19:06 Croke I feel your pain. (having just committed something to tcl to avoid a deprecation in parrot)
19:07 PerlJam pm: but you still run the risk of S05 changing, you implement the changes, then it changes again in response to your implementation   :)
19:09 pmichaud sure, but there's a difference between building to a spec that "might change" versus one that is "likely to change"
19:09 Croke $ ack '\.return\s*[^ (]'|wc -l 797
19:09 Croke there's a cage task: update those to be .tailcall instead of .return
19:10 PerlJam Croke: but you've given half of the one-liner right there!  ;)
19:11 Tene sed -i
19:11 moritz it's not so easy, for example you shouldn't change counter examples in the documentation ;)
19:11 Croke I leave it as an exercise to the reader. (having just done this for partcl)
19:15 nopaste "tene" at 160.79.186.34 pasted "rough sketch of .tailcall patch for parrot. not quite right." (7125 lines) at http://nopaste.snit.ch/14424
19:16 pmichaud yes, the first one is wrong.  :-|
19:16 Tene most of the rest is right.
19:16 dalek r32237 | pmichaud++ | trunk:
19:16 dalek : [perl6]:  Update push_eh/pop_eh usage.
19:16 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32237
19:16 pmichaud it should probably only do the substitution on .pir files
19:17 nopaste "tene" at 160.79.186.34 pasted "another rough sketch of .tailcall patch for parrot. only .pir files" (5882 lines) at http://nopaste.snit.ch/14425
19:17 pmichaud whatever pattern you're using is catching .returns()
19:17 pmichaud as in  foo.returns()
19:18 Croke don't edit compilers/pirc
19:18 pmichaud the original pattern should be   '^\s*\.return\s*[^ (]'
19:18 pmichaud i.e., we're only interested in .return at the beginning of a line (modulo spaces)
19:18 Croke pmichaud: not necessarily; could be in a .emit() call.
19:18 pmichaud also, I don't know if \s* works in ack
19:18 moritz Tene: that's not only .pir, you have a few .c files in that patch
19:19 PerlJam pmichaud: it does
19:19 Tene ack uses perl
19:19 Croke pmichaud: that's why I have a space in the []
19:19 pmichaud Croke: a space in the []?
19:19 Croke ... yes?
19:19 pmichaud I don't understand what the space in the [] resolves.
19:20 Croke ack '\.return\s*[^(]' returns a different result set than ack '\.return\s*[^ (]'
19:20 PerlJam that's weird
19:20 Croke I presume that's what you meant when you said "I don't know if..."
19:21 pmichaud \s* _could_ mean  zero or more 's'
19:21 pmichaud if ack doesn't understand \s
19:21 Croke Tene: shouldn't update .return in a .begin
19:21 Croke pmichaud: \s works. the problem seems to be that it's not greedy enough. I think.
19:22 PerlJam I don't get it ...
19:22 moritz (?>\s*) might do what you want
19:23 nopaste "tene" at 160.79.186.34 pasted "another" (5562 lines) at http://nopaste.snit.ch/14426
19:23 PerlJam that pattern matches ".returns" because of the zero-whitespace and the non-space,non-paren "s"
19:23 pmichaud correct.
19:23 Croke moritz: ah. yup.
19:23 Andy it does of course understand \s
19:24 pmichaud correct, the \s* backtracks so that a space is not considered a '('
19:24 Croke so, my crappy re worked too. =-)
19:24 pmichaud except that it catches .returns
19:24 moritz Tene: are the changes to the book intentional?
19:24 PerlJam A simple \b could fix that
19:24 pmichaud we're only interested in catching tailcalls, which have to have a space
19:25 pmichaud so the correct form is probably
19:25 pmichaud '^\.return\s+[^(]'
19:25 Tene moritz: no clue.  I'm just running a global replace on .pir files.
19:25 pmichaud sorry
19:25 pmichaud '^\s*\.return\s+[^(]'
19:25 moritz Tene: these are .pod files, and still modified by your patch.
19:26 moritz pmichaud: that will make '.returns  ' (with two spaces)
19:26 pmichaud (ack understanding \s*... sorry, braino here, for some reason I was thinking 'awk')
19:26 moritz pmichaud: because ' ' =~ m/[^(]/
19:26 moritz regexes are hard sometimes
19:26 pmichaud moritz: you think?  ;-)
19:26 moritz (?>\s+)[^(]
19:27 moritz ... now they have two problems.
19:27 particle moritz: how can \s+ match s?
19:27 Tene moritz: which patch?  the first one?  all patches after that have only been on .pir files.
19:27 pmichaud particle: it can't, but it could match the space before a paren
19:27 moritz Tene: the one in 14426
19:27 pmichaud er,  [^(] could match a space before the paren if \s+ is allowed to backtrack.
19:27 moritz uhm, I meant '.return  ', whitout the s
19:28 particle ah
19:28 pmichaud moritz is correct, we need something to prevent the backtracking on the \s+
19:28 PerlJam Luckily, perl 5 understands "cut" too
19:28 pmichaud '^\s*\.return(?>\s+)[^(]'
19:28 nopaste "tene" at 160.79.186.34 pasted "should have no .pod files" (5476 lines) at http://nopaste.snit.ch/14427
19:29 Croke so, anyway, perljam, this is why I didn't do it. =-)
19:29 PerlJam Croke:  :-)
19:30 PerlJam Btw, what's with the "r" in your nick?
19:30 Croke what's friday?
19:30 purl it has been said that friday is Saturn rising. we better do it thursday
19:30 pmichaud in reading some of these, it doesn't feel obvious to me that '.tailcall' means 'return'
19:30 pmichaud it almost makes me want to say '.tailreturn'  instead :-)
19:31 pmichaud (yes, I know they're officially "tailcalls", but it just doesn't look like a return.)
19:31 Croke isn't tailcall standard termin... ah.
19:31 Croke I'd rather stick with the standard and document our usage of it.
19:31 pmichaud I'm sure it's just something I'll have to get used to.
19:32 pmichaud Tene:  do you recall off-hand where the auto-disable exception handler code is?
19:32 pmichaud (so I don't have to track it down)
19:32 Tene pmichaud: in can_handle in exceptionhandler.pmc
19:32 Tene well, that's where it chooses to decline if it's been disabled.
19:32 pmichaud I'm looking for the part that actually disables it
19:33 Tene I'll get it.  'sec.
19:34 pmichaud back in 30 -- picking up kids
19:34 pmichaud (I might be late for phone but will be there.)
19:35 Tene msg pmichaud src/scheduler.c:760
19:35 purl Message for pmichaud stored.
19:36 Tene that's "mark as used".  EH.pmc:can_handle is "used == disabled"
19:44 cognominal joined #parrot
19:50 bacek joined #parrot
20:01 TimToady phone
20:49 gryphon joined #parrot
21:09 Croke ->
21:15 cottoo <-
21:16 moritz <-->
21:19 Theory joined #parrot
21:27 dalek r32238 | pmichaud++ | trunk:
21:27 dalek : [core]:  Update a pop_eh in t/pmc/exception.t .
21:27 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32238
22:21 dmknopp joined #parrot
22:25 ruoso joined #parrot
22:52 Juerd left #parrot
23:02 tetragon joined #parrot
23:05 * Croke gets partcl running on his windows laptop in anticipation of a long kids sport practice.
23:11 xiaoyafeng joined #parrot
23:19 peepsalot joined #parrot
23:32 Ademan joined #parrot
23:50 Limbic_Region joined #parrot
23:56 kj joined #parrot
23:57 dalek r32239 | kjs++ | trunk:
23:57 dalek : [pirc/new] the new linear scan register allocator seems to work, kinda.
23:57 dalek : + start to refactor symbol, pir_reg and target data structures
23:57 dalek : + needs more refactoring, cleanup and testing.
23:58 dalek : + code is horrible now.
23:58 dalek : + -r option to activate the register allocator (vanilla reg. allocator is /always/ active).
23:58 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32239

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

Parrot | source cross referenced