Parrot 0.8.1 "Tio Richie" Released | parrot.org | 588 RT | 11 trac
Set by moderator on 5 December 2008.
00:03 allison joined
dalek r33581 | pmichaud++ | trunk: 00:07
: [rakudo]: $tagsets is already an AST, no need to $(...) it again.
diff: www.parrotvm.org/svn/parrot/revision?rev=33581
00:12 Andy joined 00:13 paco joined 00:26 mberends joined 00:33 mberends joined 00:37 paco joined, paco left 00:39 rhr joined 00:41 mberends left 00:44 mberends joined 00:47 davidfetter joined
Coke (#parrot, not #chinese) It's a drop in the bucket compared to the amount of #perl6 that goes on in here. 00:47
01:06 bacek joined
dalek r33582 | pmichaud++ | trunk: 01:08
: [library]: Add dumper for Capture PMCs.
diff: www.parrotvm.org/svn/parrot/revision?rev=33582
01:12 tetragon_ joined 01:16 allison joined
bacek pmichaud: do you have any ETA for LTM? 01:30
pmichaud Feb. 01:31
Feb 2009.
bacek pmichaud: thanks. 01:34
pmichaud: another question :)
How I can workaround absence of LTM?
pmichaud what do you need LTM for? 01:35
Coke specify your REG with longest tokens first? =-)
bacek I have <FunctionCall> ( foo() ), <Step> ( foo ), <Path> ( foo/bar )
<Expr> is <Path> or <FunctionCall> 01:36
If I specify Path first, than 'foo()' treated as Step
pmichaud I'm having trouble following this.... I can't tell what is a definition versus a subrule versus... 01:37
can you give a Perl 6 example? 01:38
bacek pmichaud: It's quite big... Formal XQuery grammar is about 150 rules.
pmichaud can you make up a smaller example that shows why you need ltm? 01:39
bacek pmichaud: I'll try. Give me few minutes.
Coke wonders how long it will before rakudo has more bugs in RT than parrot. 01:41
pmichaud whenever parrot gets below 200. 01:42
(that's my guess.)
bacek nopaste? 01:50
clunker3 pasta.test-smoke.org/ or paste.husk.org/ or nopaste.snit.ch:8001/ or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/
purl well, nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others)
bacek Iceweasel can't establish a connection to the server at nopaste.snit.ch. 01:52
pmichaud I think nopaste.snit.ch is down at the moment 01:53
oh, maybe not
it's working now.
bacek While trying to retrieve the URL: nopaste.snit.ch/ 01:54
The following error was encountered:
* Connection to 202.154.105.237 Failed
The system returned:
(61) Connection refused
strange...
purl i guess strange is but true
bacek pmichaud: rafb.net/p/Iuh4dO34.html
output: first 4 ok, last 5 not... 01:55
pmichaud looking 01:56
you have a $ in PathExpr 01:57
bacek afk for few minutes
pmichaud which means PathExpr can only occur at the end of the string -- i.e., not inside of a FunctionCall
bacek pmichaud: (checking with original grammar) 01:59
pmichaud: Ok. Full grammar doesn't have '$' in PathExpr. But I has much more rules for StepExpr. 02:00
pmichaud what happens if you take the $ out of this one? 02:01
do all of the tests pass then?
bacek pmichaud: it works in reduced version
pmichaud okay. I didn't see anything in this version that needs ltm. 02:02
bacek extending reduced version to be more close to original... 02:03
02:22 kid51 joined
pmichaud I will need to leave for a while in 10 min 02:33
02:36 stockwellb joined
dalek r33583 | pmichaud++ | trunk: 02:42
: [rakudo]: Cleanup Capture definition slightly.
diff: www.parrotvm.org/svn/parrot/revision?rev=33583
pmichaud back later 02:43
02:52 apeiron joined
kid51 Does anyone know when the following tests are run? They don't appear to be part of 'make test'. 03:22
./compilers/pirc/t/basic.t
./compilers/pirc/t/macro.t
./compilers/pirc/t/subflags.t
./compilers/pirc/t/heredoc.t
./compilers/pirc/t/stmts.t
They also appear to be the only place where the Parrot::Test::pirc_2_pasm* functions are used. 03:23
pmichaud kid51: pirc is still under development. 03:24
it's not (yet) part of any other subsystem, so it's okay if its tests aren't run. 03:25
but eventually we'll be replacing imcc with pirc
03:26 klapperl_ joined
kid51 I'm trying to write unit tests for all functions in Parrot::Test. These 4 functions are defined there, but are not documented at all. 03:26
pmichaud check with kjs -- I think he's the one doing most of the pirc stuff atm. 03:27
away for a bit
03:33 davidfetter joined 03:44 stockwellb joined 04:02 elmex_ joined 04:03 tak joined 04:06 stockwellb joined 04:09 Alias joined 04:11 AndyA joined
dalek r33584 | pmichaud++ | trunk: 04:17
: [core]: (capture.pmc) It helps to signify vtable with VTABLE. :-|
diff: www.parrotvm.org/svn/parrot/revision?rev=33584
Alias libparrot is pretty large... 04:21
Running perl6.exe for me creates an executable with a 14 meg initial memory footprint
How much bloat is there in the default build?
pmichaud a lot, I suspect.
Alias Is it just that libparrot.dll is statically linked to hell?
pmichaud I don't know about that. There's a lot of debug code enabled in the default build. 04:22
Alias ah, ok
pmichaud beyond that... I don't really know.
tewk Doesn't it build unstripped by default
Alias Also, Larry mentioned that 0.8.1 there was still lots of garbage collector work happening
pmichaud Parrot internals are a bit beyond where I normally work.
yes, we're planning to replace the gc in the next two months.
Alias So if me Perl 6 is leaking all over the place, that's nothing I should get concerned about right? 04:23
my
pmichaud right.
Alias Figured as much
bacek pmichaud: rafb.net/p/ThT7yQ35.html - I finally created reduced version of Grammar. 04:26
pmichaud StepExpr should be { <FunctionCall> | <AxisStep> } 04:27
bacek pmichaud: k. 04:29
bacek is slightly stupid today... 04:33
rafb.net/p/3kXkj841.html 04:34
Here we go. 'ContextItemExpr' and '..' in AxisStep
pmichaud can perhaps make ContextItemExpr be { '.' <!before '.'> } 04:36
that prevents it from matching when there's a '..'
bacek pmichaud: O! Thanks a lo 04:37
a lot..
pmichaud even *with* LTM the STD.pm (Perl 6) grammar has to do that sort of thing from time to time. 04:38
although Larry continues to tune things so that it's much less necessary
bacek Perl6 grammar is much more complex than XQuery. 04:41
My previous version was implemented in pure bison/flex
t/xqts/05-steps-axes (Wstat: 0 Tests: 73 Failed: 0) 04:42
TODO passed: 19, 70-72
hooray!
pmichaud++ 04:43
allison truly bizarre readline bug: at the end of every 2048 bytes it skips 2048 bytes, then reads the next 2048 bytes 04:47
the exception to the rule seems to be when the end of the 2048 bytes falls exactly on the newline character, then it doesn't skip any bytes, but continues reading straight through the next 2048 bytes 04:49
dalek r33585 | pmichaud++ | trunk: 04:50
: [pct]: Switch PCT::Node to use Capture PMC instead of Capture_PIR.
: This results in another 7.5% speedup in the Rakudo action.pm benchmark.
diff: www.parrotvm.org/svn/parrot/revision?rev=33585
04:54 tetragon joined
bacek pmichaud: does PGE::Match suppose to have .perl method? 04:55
pmichaud no. 04:56
we'll create a Rakudo Match class that does, however.
chromatic 2048 is suspicious, because it's half of 4096, which is the size of a page of memory. 04:57
bacek pmichaud: ok. 04:58
dalek r33586 | pmichaud++ | trunk: 05:01
: [pheme]: Adjust pge2past to properly iterate over parse nodes.
diff: www.parrotvm.org/svn/parrot/revision?rev=33586
r33587 | pmichaud++ | trunk:
: [core]: Capture PMC now has a get_string vtable.
diff: www.parrotvm.org/svn/parrot/revision?rev=33587
pmichaud okay, I feel much better now that PGE and PCT are using Capture PMC instead of Capture_PIR. 05:02
dalek r33588 | pmichaud++ | trunk:
: [pct]: Eliminate the guts of PCT::Node's 'node' method.
: The current implementation is actually broken (it doesn't do
: what it's supposed to), we're not really using it yet, and so
: it's just creating more stuff to GC. We'll disable it for
: now, and reinstate it when we can do hll source line mapping (soon).
diff: www.parrotvm.org/svn/parrot/revision?rev=33588
pmichaud time for a break, then work on some other stuff. 05:04
dalek r33589 | pmichaud++ | trunk: 05:05
: Add a DEPRECATION notice for Capture_PIR.
diff: www.parrotvm.org/svn/parrot/revision?rev=33589
allison chromatic: yes, 2048 is also one of the standard block sizes for kernel level I/O buffering 05:19
purl okay, allison.
chromatic I wouldn't remember. Someone took my IO book. 05:20
allison chromatic: yes, and thanks for the loan :) 05:24
05:30 Andy joined
dalek r33590 | allison++ | pdd22io_part2: 05:39
: [pdd22io] Test to pin down readline bug.
diff: www.parrotvm.org/svn/parrot/revision?rev=33590
chromatic . o O { Pervasive multis using PCC even when written in C could get rid of a lot of code... especially for vtables.... } 05:43
06:04 tak joined
allison oooh, it was caching the next and end pointers for the buffer, and not resetting the cache to the current values after filling the buffer 06:22
06:27 Theory joined 06:29 Andy joined
chromatic That would do it. 06:31
allison and, fixing that drops the branch down to 4 failing tests 06:36
dalek r33591 | allison++ | pdd22io_part2: 07:18
: [pdd22io] Account for final readline, with 0 bytes.
diff: www.parrotvm.org/svn/parrot/revision?rev=33591
chromatic Only four failing tests? That's one fewer than trunk. 07:26
07:27 Debolaz joined
dalek r33592 | allison++ | pdd22io_part2: 07:28
: [pdd22io] Reset the current working values of the next and end pointers
: for the buffer after filling the buffer.
diff: www.parrotvm.org/svn/parrot/revision?rev=33592
r33593 | chromatic++ | trunk: 07:45
: [src] Refactored internal namespace lookup and creation functions. There are
: more functions now, but they're saner, because they don't have to keep checking
: whether they're operating on a STRING, a Key, a String PMC, or an array PMC
: containing String PMCs.
diff: www.parrotvm.org/svn/parrot/revision?rev=33593
07:49 johbar joined
dalek r33594 | chromatic++ | trunk: 07:49
: [IMCC] Re-headerized IMCC, decorating function arguments appropriately.
diff: www.parrotvm.org/svn/parrot/revision?rev=33594
07:55 tak joined 07:59 iblechbot joined
dalek r33595 | chromatic++ | trunk: 08:06
: [src] Added more parameter decorations identified by make headerizer.
diff: www.parrotvm.org/svn/parrot/revision?rev=33595
r33596 | chromatic++ | trunk: 08:22
: [src] Added remaining missing pointer parameter decorations, as identified by
: make headerizer.
diff: www.parrotvm.org/svn/parrot/revision?rev=33596
08:31 liangke joined
dalek r33597 | duff++ | trunk: 08:43
: [rakudo] rework of :nth() on .subst() to use ACCEPTS
diff: www.parrotvm.org/svn/parrot/revision?rev=33597
09:10 Theory joined 09:12 Hadi joined 09:17 Hadi left 09:56 alvar joined 10:06 mberends joined
Tene msg pmichaud PAST::Block already has a 'control' attribute. Should we use this for the EH lis? 10:27
purl Message for pmichaud stored.
10:36 jimmy joined 10:38 MariachiElf joined
Tene msg pmichaud You said that handlers should rethrow the exception unless the exception has been handled. Does this mean that if the exception has been handled, I should resume? 11:12
purl Message for pmichaud stored.
dalek r33598 | moritz++ | trunk: 11:31
: [rakudo] add regression tests for RT #61102 to t/spectest.data,
: and restore alphabetical order
diff: www.parrotvm.org/svn/parrot/revision?rev=33598
11:35 riffraff joined, tak joined 11:45 barney joined
dalek r33599 | moritz++ | trunk: 12:07
: [rakudo] add instance attribute tests to t/spectest.data
: (most of them are skipped, but a few actually pass)
diff: www.parrotvm.org/svn/parrot/revision?rev=33599
12:09 rff joined 12:13 masak joined
masak chromatic++ # use.perl redesign 12:16
(or was that 'abw++' ?)
jimmy where? 12:19
masak jimmy: wardley.org/use.perl.org/test.html 12:27
jimmy somebody++, much more nicer 12:29
masak Coke: (the amount of #perl6 that goes on in here) I guess that's because it's difficult to implement Perl 6 without talking about it. :)
purl: karma somebody
purl somebody has karma of 5
masak somebody deserves a lot more karma :)
jimmy expecting perl.org is redesigned when perl6 out. 12:31
Tene I haven't heard of any plans for that. 12:32
great idea, though 12:33
masak jimmy: I don't think one event has anything to do with the other
Tene it's been years since I've actually looked at perl.org/ 12:34
masak Tene: it currently looks like it hasn't been looked at in years :P 12:35
s/in/for/
ETOOCONFUSEDBYGRAMMAR
Tene grammar-- 12:36
karma grammar?
purl grammar has karma of -8
jimmy perl.org needs sparkle, especially perl6 12:37
Tene Okay, I've got the handlers themselves being generated nicely in PCT, now for the bits to push them on the stack.
12:49 ElPenguin joined
dalek r33600 | bernhard++ | trunk: 12:50
: [m4] Make m4 work again, by using the simple syntax for calling indirect functions
diff: www.parrotvm.org/svn/parrot/revision?rev=33600
cognominal sparkle? 12:56
purl i think sparkle is a module that developers can stick in their Cocoa applications (five-step install!) to get instant self-update functionality. sparkle.andymatuschak.org/
ElPenguin that sounds shiny 12:57
masak jimmy: 'sparkle' to me sounds like superficial PR. I'd say that's not what Perl 6 needs right now. 12:59
jimmy masak: aye, but future. 13:00
masak jimmy: first, it needs more people that realize that Perl 6 is great. then, word of mouth takes over.
I think Rakudo is already at a stage where it can impress people. 13:01
13:01 kj joined
ElPenguin still, pugs is ahead of rakudo. i know that's no help if you want to use parrot but *shrug* 13:02
dalek r33601 | bernhard++ | trunk: 13:03
: [codingstd] remove a trailing space
diff: www.parrotvm.org/svn/parrot/revision?rev=33601
masak ElPenguin: I keep hearing people saying "Pugs is ahead of Rakudo". still I can do things in Rakudo that I cannot do in Pugs. why is that?
do I have a different definition of "to be ahead" than other people?
ElPenguin wasn't aware of that 13:04
masak ElPenguin: we're writing a wiki engine in Rakudo. that would not be possible in Pugs today.
masak thinks "Pugs is ahead" is old news 13:05
as in "superceded by more current news"
ElPenguin haha
jimmy masak: good things should be well spreaded with across-language , and documentations should be multi-language, and shiny web site acts as catalyst. 13:06
masak jimmy: yes, of course. that would be ideal.
jimmy: I have no objections. let's do it that way.
jimmy masak: what i said is just why php used mostly, but not perl, which is also very good. and just do it. :) 13:09
masak jimmy: but my point is. updating use.perl odes not have to wait for the release of Rakudo
jimmy: PHP does do a few things right wrt documentation on the web, yes. 13:10
Tene masak: what items specifically can rakudo do that pugs cannot?
I haven't looked at pugs in a qhile.
jimmy masak: it sticks me with redesigning the use.perl
masak Tene: for one thing, thanks to PGE, grammars are better developed
jimmy: that did not parse. please reformulate. 13:11
Tene: but I also believe that Pugs gets much of the array semantics wrong.
jimmy masak: it sticks me in mind with redesigning the use.perl. is it right? 13:12
masak jimmy: no. "to stick sb in mind" is not an idiom.
jimmy :(
masak jimmy: what is it you want to say?
that is hurts your eyes to look at the page? 13:13
yes, mine too :P
jimmy should say I imagine that with redesigning the use.perl.
masak: yep 13:14
masak ah.
jimmy when my memory is the same as flash disk, and then i will good at english. 13:17
s/will/will be/
13:19 Theory joined
Tene Hmm. I wonder when pmichaud wakes on Sundays. 13:21
dalek r33602 | kjs++ | trunk: 13:22
: [pirc] some cleanups.
diff: www.parrotvm.org/svn/parrot/revision?rev=33602
r33603 | kjs++ | trunk: 13:30
: [pirc] change order of types, to match type values in pdd03. (I, S, P, N, having values 0, 1, 2, 3, respectively).
diff: www.parrotvm.org/svn/parrot/revision?rev=33603
pmichaud pmichaud awakes about now, I think.
it depends on the Sunday.
Tene You have mail. 13:34
pmichaud for compatibility reasons, I'd prefer to leave the existing 'control' attribute alone. we may deprecate it. 13:35
Tene nods.
I used 'handlers'
pmichaud I'm not sure what to do in the handled case.
resume doesn't sound quite right.
13:36 register joined
pmichaud perhaps .return () 13:36
Tene Oh? Interesting. I can do that. .return () or .return (exception) ? 13:37
pmichaud whichever makes more sense.
I'm not sure about .return () either -- I'll have to wait and see when this actually gets used.
.return (exception) sounds okay to me for now.
Tene .return (exception) for now, then.
jonathan has woken up too
pmichaud it'll likely change.
jonathan (For the second time today...afternoon nap for the win) 13:39
Tene mail has a patch and an example with output
pmichaud excellent. I'm in the middle of another hack at the moment, will look at the pct stuff soonish (today for sure)
Tene implementation is sketchy, needs some cleanups and finishing, but I wanted feedback before doing much more. 13:40
pmichaud definitely
I'm eager to see it
13:41 rob joined
kj jonathan: just to get your brains started, a wake-up question: PDD03 defines the flags such as slurpy etc. The pdd talks about bits, enumerates them, and explains them. However, for the types, bits 0-3 are indicated, but there seems to be an inconsistency: the values 0 to 3 seem to be used to encode the type (so, bits 0 and 1, not 0,1,2,3). 13:42
Any idea? 13:43
jonathan Well, it's possible both are true...the lower bits are reserved for types, but we don't use them all. 13:45
kj yeah. I just found the definitions of 'em 13:47
jonathan Ah, good, I was just looking for the appropriate .h file.
But if you've found it, that'll have The Answers, plus the constatns that I guess you should use. 13:48
kj enums.h
jonathan Aha.
kj (not very descriptive)
jonathan So PARROT_ARG_TYPE_MASK suggests that we do indeed reserve the lower 3 bits 13:51
er, 4
For types. 13:52
/* more to come soon */
...
So basically you just and 'em together.
I think nameds are fun because you make two entries - one for the name (with PARROT_ARG_NAME set) and the next one with the value to be passed. 13:54
kj yeah, I think I'll just forget about those for now. Just focusing on getting sub calls to work without any arguments
Tene sleep for a bit. 14:02
14:03 stockwellb joined 14:17 Hadi joined, Hadi left
register a question: the first fixup of tipe enum_fixup_sub in the bytecode is always the main function? 14:29
jonathan I think if there is one with :main set, that one is chosen instead. 14:33
14:37 tak joined
register i asked this question because i am looking the jit code 14:38
and in parrot_build_asm the number of register used is desumed by looking at the first fixup of type enum_fixup_sub 14:39
14:53 apeiron joined
dalek r33604 | kjs++ | trunk: 14:59
: [pirc] implement bits of parrot calling conventions; the first argument to the 4 special ops (set_args etc) encode the flags/types. This is a first attempt.
diff: www.parrotvm.org/svn/parrot/revision?rev=33604
15:05 Whiteknight joined 15:17 tak joined 15:19 apeiron joined
dalek r33605 | pmichaud++ | trunk: 15:22
: [rakudo]: spectest-progress.csv update: 231 files, 4717 passing, 0 failing
diff: www.parrotvm.org/svn/parrot/revision?rev=33605
15:23 stockwellb joined
nopaste "pmichaud" at 72.181.176.220 pasted "fun with operator fixes" (12 lines) at nopaste.snit.ch/14844 15:26
dalek r33606 | kjs++ | trunk: 15:28
: [pirc] remove instr_counter field from lexer structure. Now use stmt_counter.
diff: www.parrotvm.org/svn/parrot/revision?rev=33606
Infinoid hmm, still (or again) having trouble reaching nopaste.snit.ch
15:33 kid51 joined
dalek r33607 | jkeenan++ | testparrottest: 15:35
: Create a directory to hold files used in the tests in t/perl/.
diff: www.parrotvm.org/svn/parrot/revision?rev=33607
r33608 | jkeenan++ | testparrottest: 15:37
: Rearrange order of subs for easier editing. Correct one spelling error.
diff: www.parrotvm.org/svn/parrot/revision?rev=33608
r33609 | jkeenan++ | testparrottest: 15:39
: Add tests for pir_2_pasm.
diff: www.parrotvm.org/svn/parrot/revision?rev=33609
r33610 | jkeenan++ | testparrottest:
: Add directory to hold files used in testing of t/perl/Parrot_Test.t.
diff: www.parrotvm.org/svn/parrot/revision?rev=33610
r33611 | pmichaud++ | trunk: 15:41
: [rakudo]: Fix assignment metaoperators, add reduction operators (e.g., [+]).
diff: www.parrotvm.org/svn/parrot/revision?rev=33611
15:42 Andy joined 15:43 Zaba joined
dalek r33612 | kjs++ | trunk: 15:48
: [pirc] fix something I shouldn't have committed; + nicer layout for offsets.
diff: www.parrotvm.org/svn/parrot/revision?rev=33612
r33613 | jkeenan++ | testparrottest: 15:57
: Add or modify test files used in t/perl/Parrot_Test.t.
diff: www.parrotvm.org/svn/parrot/revision?rev=33613
15:59 tak joined 16:03 tetragon joined
dalek r33614 | jkeenan++ | testparrottest: 16:14
: There is no sub Usage() in this package.
diff: www.parrotvm.org/svn/parrot/revision?rev=33614
r33615 | jkeenan++ | testparrottest: 16:16
: Change name of test file to reflect what it's actually doing. Correct one
16:16 iblechbot joined
dalek : punctuation error. 16:16
diff: www.parrotvm.org/svn/parrot/revision?rev=33615
r33616 | jkeenan++ | testparrottest:
: Add tests for example_output* test functions.
diff: www.parrotvm.org/svn/parrot/revision?rev=33616
16:20 stockwellb joined
dalek r33617 | pmichaud++ | trunk: 16:28
: [rakudo]: Add [,], [&], [|], and [^] reduction operators.
diff: www.parrotvm.org/svn/parrot/revision?rev=33617
pmichaud afk # lunch, then assignment and slices 16:30
dalek r33618 | kjs++ | trunk:
: [pirc] comments and todos.
diff: www.parrotvm.org/svn/parrot/revision?rev=33618
16:33 tak joined
Coke masak: (implement perl6 without talking about it) and yet this channel is not, strictly speaking, about implementing perl6. so if we cut you guys some slack, no doubt we can cut those experimenting with chinese a little slack. 16:37
masak aye. 16:38
especially if the Chinese is about terms related to Perl.
pmichaud++ # looking forward to those slices 17:03
dalek r33619 | jkeenan++ | testparrottest: 17:04
: Add example_error_output_* test functions. Correct one error-handling case.
diff: www.parrotvm.org/svn/parrot/revision?rev=33619
17:12 tak joined 17:22 apeiron joined 17:26 rdice joined 17:50 jan joined 17:53 Zaba joined
dalek r33620 | jkeenan++ | testparrottest: 17:57
: Change some inline comments to reduce confusion. Use identical syntax where possible.
diff: www.parrotvm.org/svn/parrot/revision?rev=33620
r33621 | jkeenan++ | testparrottest: 18:07
: Make syntax more readable.
diff: www.parrotvm.org/svn/parrot/revision?rev=33621
r33622 | jkeenan++ | testparrottest: 18:10
: Restructure an if-elsif block to make syntax more readable.
diff: www.parrotvm.org/svn/parrot/revision?rev=33622
r33623 | coke++ | trunk: 18:23
: The 'global' syntax in PIR is [DEPRECATED]. replace its usage with explicit ops.
: (Which are also deprecated, one thing at a time.)
diff: www.parrotvm.org/svn/parrot/revision?rev=33623
r33624 | fperrad++ | trunk: 18:24
: [book]
: - fix typo
: - remove trailing space
diff: www.parrotvm.org/svn/parrot/revision?rev=33624
18:24 Hadi joined 18:25 particle joined
pmichaud ....why not go ahead and switch to 'get_global' instead of using (deprecated) 'find_global'? 18:25
Coke the wrong kind of laziness. 18:26
t/op/calling.t is failing in trunk? 18:27
pmichaud yes.
dalek r33625 | coke++ | trunk: 18:37
: remove [DEPRECATED] 'global' syntax from parrot's PIR parser. Remove remaining core usage exposed by 'make test'.
: language developers, check your languages. (verified that npq & perl6 still work.)
diff: www.parrotvm.org/svn/parrot/revision?rev=33625
r33626 | pmichaud++ | assign: 18:42
: Remove obsolete branch, preparing to create new one.
diff: www.parrotvm.org/svn/parrot/revision?rev=33626
r33627 | pmichaud++ | assign:
: [rakudo]: Branch for refactoring assignment into assign op.
diff: www.parrotvm.org/svn/parrot/revision?rev=33627
Coke pmichaud: 60384 is in DEPRECATED and in the parrot queue; but the last comment from 11/26 says you're moving the ticket back to the perl6 queue. 18:43
pmichaud looking
moved. 18:44
rejected #43485 18:46
parrt RT queue down to 584. :-)
*parrot
moritz so with RT + track we're below 600. YaY. 18:50
Tene awake now. Running an errand, then back to hacking. 18:53
Coke we need to start counting stalled again. =-) 18:56
18:56 Whiteknight joined
allison hrmmmm... now have 8 bytes lodged in the front of the read buffer... 19:02
19:11 Hadi left
dalek r33628 | coke++ | trunk: 19:12
: remove unused function dump_mmd (per RT#60626)
diff: www.parrotvm.org/svn/parrot/revision?rev=33628
kid51 Failures in t/op/calling.t: smolder.plusthree.com/app/public_pr...m/8467/166 19:14
moritz kid51: andreas kƶnig writes on the list. "git bisect blames svn.perl.org/parrot/trunk@33559" 19:15
kid51 IMCC problems: above my pay grade. Who gets to fix? 19:19
Tene pmichaud: ETA on review of my mail? 19:20
pmichaud kid51: I think those tests represent deprecated features.
the correct solution is probably to remove the tests.
Tene: will do it now
Tene :)
Coke checks the failurs. 19:21
pmichaud Tene: I was thinking that 'handled' would be an attribute of the PAST::Control block, as opposed to checking the status of the exception. 19:26
Coke kid51, pmichaud: fixed.
pmichaud perhaps we don't need to do anything special at all -- perhaps parrot's handlers dtrt thing already.
Coke kid51++ # forcing me to actually look at the failures. 19:27
kid51: regarding your recent requests for comment: If something isn't used in the testing code, I'd rip it out.
dalek r33629 | coke++ | trunk:
: Fix test broken by r33559.
: When removing a deprecated feature, be sure nothing is testing the deleted feature.
diff: www.parrotvm.org/svn/parrot/revision?rev=33629
Coke we've already had a some cases where some behavior was enshrined in tests that we didn't actually care about. 19:28
so if you can delete code, and 'make test' still works... I'd say go for it.
pmichaud ...what about the case where we're adding new features that have tests but aren't part of 'make test' yet? 19:29
we don't want to rip those out.
19:30 Limbic_Region joined
pmichaud (pirc being the current example) 19:30
Tene: is the 'handled' attribute of exceptions actually used/set anywhere? 19:33
Tene pmichaud: lemme check. 19:34
pmichaud + ops.'push_pirop'('resume = exception["resume"]')
should be
ops.'push_pirop'('set', 'resume', 'exception["resume"]')
Tene Ah. Yes. 19:35
pmichaud + ops.'push_pirop'('resume()')
should be
ops.'push_pirop'('call', 'resume') # or something like that 19:36
Tene A glance over 'ack handled' suggests that it's used in a couple of places.
'call' or 'invoke'? Lemme check docs/ops.
pmichaud pdd23 doesn't discuss the handled attribute at all
'call' is a special pirop
call, callmethod, tailcall
Tene Ah.
Right.
We're not using resume anymore anyway, as we're moving to .return (exception) 19:37
pmichaud we want to keep the "tree" nature of POST nodes so that they can later be turned into PBC directly w/o going through PIR
Tene That's a literal too, in my current copy. How should I represent that?
pmichaud ops.'push_pirop'('return', 'exception') 19:38
the "special" pirops are call, callmethod, return, tailcall, and inline
(special because they don't otherwise fit the <opcode> <arg>, <arg>, <arg> syntax 19:39
Tene nodnod
pmichaud I'm not fond of 'type' as an attribute name -- too generic. 19:40
maybe 'controltype' 19:41
could re-use 'pasttype'
(since it's describing the "type" of the PAST::Control node)
other than those items, this looks like a really good start.
(even with those items, this looks like a really good start)
Tene How do you feel about the wrap_handler architecture? 19:42
kid51 Coke: While I will eventually delete unused code from lib/Parrot/Test.pm, I'm going have to proceed with caution. The test coverage provided by t/perl/Parrot_Test.t was very low. I've been improving it, but there's a ways to go. Evidence: All my tests were passing -- but my last 2 commits completely borked 'make test' in the testparrottest branch.
pmichaud + types = new 'ResizablePMCArray' 19:44
...leftover code?
Tene Yeah.
pmichaud I was expecting something like wrap_handler, yes.
instead of
kid51 Other problems with Parrot::Test: 1) many of its functions are never used in the Parrot test suite; 2) much of its code is *only* applicable in some languages/*/t/ -- which means that thorough testing could only be done by adding languages tests.
pmichaud + eq type, 'CONTROL', type_control
I'd want to look up the values in a hash.
similar to the %valflags hash 19:45
Tene We also have types that are "All types except the following ..."
pmichaud in initialization, I would do 19:46
Tene So it's either .'handle_types' or .'handle_types_except'
Or potentially types for checking severity instead.
pmichaud $P0 = split ' ', '.CONTROL_RETURN .CONTROL_OK .CONTROL_BREAK .CONTROL_CONTINUE ...'
$P1 = get_global '%!controltypes' 19:47
$P1['CONTROL'] = $P0
Tene Are we generating a ".include 'runtime/include/include_types.pasm'"?
pmichaud We can.
that's probably better in the generated PIR anyway (having the constant strings instead of their values) 19:48
or we could require the pct caller to make sure the .include is done somewhere. 19:49
Tene nods.
dalek r33630 | jkeenan++ | testparrottest:
: Revert to r33620. My attempts to refactor caused tests in 'make test' to
: begin to fail massively.
diff: www.parrotvm.org/svn/parrot/revision?rev=33630
Tene Any ideas on how to handle the different operations there? handle_types/handle_types_except/severity? Possibly have %!controltypes be a hash of hashes?
pmichaud which control types do we have that mean "everything except..."? 19:50
Tene Perl 6's CATCH is "everything except control exceptions" or something, iirc.
Or there was a block that meant that.
pmichaud okay, then 19:51
$P1['CONTROL'] = 'handle_types .CONTROL_RETURN .CONTROL_OK .CONTROL_BREAK .CONTROL_CONTINUE ...'
$P1['CATCH'] = 'handle_types_except .CONTROL_RETURN .CONTROL_OK ...'
first value indicates the method to call, remaining values indicate params to pass 19:52
19:52 clunker3__ joined
Tene Then split it and push_pirop with :flat? 19:53
pmichaud yeah, something like that.
purl yeah, something like that is what I'd do as well
Tene Excellent.
pmichaud although part of me feels like negation should be handled in the node, not in the exception type
so that the PAST generate treats 'CATCH' as being ! 'CONTROL' 19:54
Tene Eventually we'll be rewriting this to deal with a real class hierarchy instead of integer types.
I expect that would come out that that refactor.
pmichaud or maybe the PAST::Control node should have 'handle_types' and 'handle_types_except" attributes
so that someone can do: :handle_types('CONTROL') 19:55
or :handle_types_except('CONTROL') # CATCH
Tene Could be. Also min_severity and max_severity?
pmichaud I'd prefer not to add them until we know we need them and how they'll be used.
Tene Okay.
pmichaud my philosophy in PCT has been "don't add it until I have a real use case." 19:56
Tene nods.
pmichaud oh, don't use the node names as PIR labels 19:57
generate a POST::Label node
Tene What did you mean by "* The 'name' attribute of a PAST::EH (or whatever) node is its label (e.g., for when we do next/last/redo followed by a label)" then? 19:58
pmichaud OUTER: while ( ... ) { next OUTER; }
(in perl 6)
the "OUTER" is going to correspond to an exception handler of some sort.
Tene Ah.
pmichaud so we'd have a node with name :OUTER
Tene Okay.
pmichaud but the labels still need to be unique. 19:59
and I'm not certain that every HLL label will be a valid PIR label.
Tene nods.
pmichaud I still haven't worked out the details for that yet, but will get there. 20:00
20:07 contingencyplan joined
pmichaud afk for a bit 20:08
20:16 MariachiElf joined
Coke pmichaud: in general, you shouldn't be doing it that way: you should be adding the tests first. =-) 20:24
(from many 10s of minutes ago)
are we targetting w2k? or was XP our cutoff? 20:28
(41095)
20:29 Hadi joined, Hadi left
Coke sees jarkko didn't fall for his trick. 20:30
20:38 gryphon joined 20:39 riffraff joined
dalek r33631 | chromatic++ | trunk: 20:41
: [src] Added string_free(), along the lines of temporary_pmc_free() and with
: similar caveats. This function lets you recycle a STRING header you *know* is
: unused. It also respects COW semantics. In a single hotspot, this function
: gives us a 9.16% improvement in the Rakudo-building benchmark.
diff: www.parrotvm.org/svn/parrot/revision?rev=33631
Tene pmichaud: where should I generate the .include 'runtime/include/except_types.pasm' ? 20:42
Coke that file is already generated, no? 20:44
runtime/parrot/include/except_types.pasm ?
Tene That's right.
I'm asking where in PAST::Compiler I should generate a ".include 'include/except_types.pasm'" instruction 20:45
dalek r33632 | allison++ | pdd22io_part2: 20:46
: [pdd22io] Document commented out test lines to be enabled when debugging readline failure.
diff: www.parrotvm.org/svn/parrot/revision?rev=33632
Tene Other than that, I think I'm done. 20:47
Coke is there a preamble section? 20:49
Tene Not that I've seen so far. Still looking.
pmichaud there's not a preamble section, but there ought to be 20:51
I haven't decided where that should go yet. 20:52
Tene You want me to commit this, then?
pmichaud as long as all tests pass, yes.
Tene We might want .push_handler on PAST::Control nodes. 20:53
Coke allison: went through RT's open tickets and updated trac.parrot.org/parrot/wiki/IOTasklist
allison Coke: excellent, thanks! 20:54
dalek r33633 | chromatic++ | trunk:
: [PMC] Revised Class PMC's isa_pmc() entry, which is a huge hotspot for Rakudo.
: Most of the changes are to use string_free() on temporary strings, with some
pmichaud ...push_handler?
dalek : additional refactoring to make control flow slightly clearer.
diff: www.parrotvm.org/svn/parrot/revision?rev=33633
Tene pmichaud: erm, on PAST::Stmts and such
Oh, and I still need to wrap_handlers in PAST::Block 20:55
pmichaud I was thinking that .handlers on PAST nodes would return an array that we could push/unshift/whatever
instead of trying to write 'push_handler' 'pop_handler' 'shift_handler', etc.
dalek r33634 | chromatic++ | trunk:
: [examples] Reverted an accidental change I made to this file in r33325; I
: decreased the number of iterations for profiling. Thanks to Andreas Koenig for
: noticing.
diff: www.parrotvm.org/svn/parrot/revision?rev=33634
Tene Yeah, that works. 20:56
pmichaud similar to the way that .loadinit returns a PAST::Stmts node that we can manipulate directory
*directly
(but in the .handlers case we can just vivify an array)
dalek r33635 | tene++ | trunk: 20:57
: [PCT]: Add a PAST::Control node
diff: www.parrotvm.org/svn/parrot/revision?rev=33635
Tene pmichaud: I don't quite feel up to figuring out the right place to wrap things in PAST::Block's as_post right now. 21:10
I'll try again later if you don't get to it soon, though.
pmichaud okay
I'll look into it when I'm done with array/slicing 21:11
so, tonight or early tomorrow
21:11 ruoso joined
pmichaud I have _really_ good momentum right now so I'm hoping to get a lot done 21:11
I'm happy I managed to get [+] working :-)
rakudo: say [*] 1..4;
polyglotbot No output (you need to produce output to STDOUT)
pmichaud bah.
Tene lame
pmichaud rakudo: say <No output (you need to produce>, <output to STDOUT)>; 21:12
polyglotbot No output (you need to produce output to STDOUT)
pmichaud at least _that_ still works. :-)
Tene yep, segfaults.
Works outside of screen, breaks in screen. 21:14
I guess I could just run it backgrounded instead of in screen...
Yeah, let's do that.
21:15 polyglotbot joined 21:16 polyglotbot joined
Tene rakudo: say 'omg' 21:16
polyglotbot OUTPUT[omg␤]
Tene rakudo: say [*] 1..10
polyglotbot OUTPUT[3628800␤]
moritz just yesterday my girlfriend learned about factorials, and asked me if 100! can be written on one line ;-) 21:17
Tene pmichaud++
rakudo: say [*] 1..100
polyglotbot OUTPUT[9.33262154439441e+157␤]
pmichaud say [-] 1..100; 21:18
rakudo: say [-] 1..100;
polyglotbot OUTPUT[-5048␤]
pmichaud that seems... faster than I'd expect normally.
Tene Are there new spectests we're passing for [*] ? 21:20
pmichaud I don't know.
Tene 'kay. :)
pmichaud I just felt like implementing it because it'll be cool to show off.
Coke rakudo: say [+] 1..100
polyglotbot OUTPUT[5050␤]
Coke rakudo: say [+] 1..1000 21:21
polyglotbot OUTPUT[500500␤]
Coke rakudo: say [+] 1..1e4
polyglotbot OUTPUT[50005000␤]
pmichaud when we get say [+] =$fh to work, I'll be really happy :-)
(if it doesn't work already.)
nopaste "tene" at 166.70.38.237 pasted "NQP demo for new EH PCT stuff" (45 lines) at nopaste.snit.ch/14845
moritz pmichaud: it doesn't (at least last time I tried =$fh was next to useless) 21:22
pmichaud can't reach snit.ch yet
GeJ Good morning everyone
Infinoid Tene: still working on a more "correct" fix for that... ran into a crash in a different place though
Tene statement not terminated properly for [+] =$fh
Infinoid (polyglotbot and screen, I mean)
pmichaud anyway, that comes with the IO refactors
Tene Okay, offline for a while. 21:25
21:35 particle1 joined
Coke GeJ: morning 21:36
dalek r33636 | fperrad++ | trunk: 21:43
: [book]
: - fix typo
: - remove trailing space
diff: www.parrotvm.org/svn/parrot/revision?rev=33636
21:52 TiMBuS joined
Infinoid if anyone with some C-fu is bored, I'd love a second pair of eyes. Trac #18 has some patches to fix the jit buffer issues that polyglotbot was experiencing, but it doesn't quite work and I've run out of ideas why. 22:05
Whiteknight i'll take a gander at it 22:10
Infinoid thanks. I'm also posting to parrot-ev about it 22:11
s/ev/dev/ 22:12
Whiteknight I actually have no idea how Parrot's JIT works
Infinoid you give it some memory, it sticks some machine code in there 22:13
from my perspective, that's all that matters :)
the issue is that the memory you give it needs to be executable, which malloc() stuff is not guaranteed to be. that's why polyglotbot was busted. 22:14
Whiteknight right
Infinoid so that's the motivation
Whiteknight It makes sense to me, especially since data execution preventions is present in several OSes and in some hardware architectures
having that "feature" on would prevent heap or stack memory from being executed 22:15
Infinoid yeah, non-executable stacks and heap are becoming more common
Whiteknight so yes, we should use mmap instead of malloc
Infinoid and that's what my patch does. the trouble is that mmapped memory also needs to be freed using munmap, and one yak led to another, and here I am debugging some weirdness in ManagedStruct.destroy() 22:16
Whiteknight nice 22:22
I definitely need to learn more about this whole subsystem. I wonder who knows enough to give a rundown about it?
Infinoid which subsystem? PMCs?
fortunately, this hack doesn't really have to get into the actual guts of JIT at all 22:24
22:25 tetragon joined
dalek r33637 | infinoid++ | trunk: 22:30
: [cage] Fix some trailing spaces.
diff: www.parrotvm.org/svn/parrot/revision?rev=33637
Whiteknight Infinoid, your diffs are all looking reasonable to me 22:42
they compile?
Infinoid they compile
Whiteknight Infinoid++ 22:43
Infinoid they run under gdb, too. but not standalone, inexplicably
if what I'm seeing is correct, the value of "ptr" is changing between the fprintf statement and the function call 22:52
so I've gotta be missing something.
dalek r33638 | allison++ | pdd22io_part2: 22:55
: [pdd22io] Neglected to set cached version of buffer flags when resetting buffer
: to empty.
diff: www.parrotvm.org/svn/parrot/revision?rev=33638
23:07 register joined 23:18 bacek_ joined 23:24 apeiron joined
riffraff anyone knows if and how src/io/io_string.c is used ? 23:29
allison riffraff: it's used for mock objects 23:49
they act like filehandles, but only store the bytes in a string and read back from the string
23:55 Alias joined
allison all test successful in the I/O branch! 23:55
Infinoid allison++ 23:58