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