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