Parrot 0.8.2 Feliz Loro Released | parrot.org | 45 TT | 538 RT
Set by moderator on 17 December 2008.
00:09 AndyA joined 00:16 ruoso joined 00:21 apple-gunkies joined
dalek r34263 | pmichaud++ | trunk/languages/perl6/src (2 files): 00:51
: [rakudo]: refactor more "list methods" from Mapping into Any
review: xrl.us/3248b
00:55 apple-gunkies joined 01:11 ewilhelm_ joined 01:14 particle1 joined 01:19 apple-gunkies joined
Coke pmichaud: I am glad that I am probably one of the few people who will ever want to say "anyone" to your statement about nested sub definitions. 02:00
Tene Coke: eh? 02:01
purl Get off my lawn!
Coke tene: feh?
purl feh is ricocheting
Coke cj? 02:03
purl i heard cj was a soylent donut or from Poulsbo, WA or AIM:carljcollier or mailto:jabber:cjcollier@seattlewireless.net or mailto:MSN:cjcollier@colliertech.org or mailto:cjcollier@colliertech.org
Coke yup, that's him.
Coke wonders at facebook. 02:06
02:10 tetragon joined 02:16 kid51 joined
dalek r34264 | jkeenan++ | trunk/t/tools/ops2pm: 02:17
: Jiggle the tests until more of them pass.
review: xrl.us/4auuf
02:25 apeiron joined
pmichaud Tene: I think I've decided that for the short term we're not going to worry about NEXT/LAST/REDO handlers in PCT just yet. 02:26
the various loop types do need to catch the loop exceptions and dtrt, though.
TiMBuS is there a reason this would segfault for an op? int a = VTABLE_get_integer(interp, VTABLE_get_pmc_keyed_int(interp, $3, 0)); 02:35
pmichaud depends on what the get_pmc_keyed_int is returning.
TiMBuS $3 is a resizablepmcarray, and im certain its got a value in it, and its an Integer
Coke and what $3 is, though that'd be harder to screw up. 02:36
pmichaud ...any tailcalls involved? ;-)
pmichaud tries his new heuristic.
TiMBuS nope, at least not directly
particle1 msg barney barney++ # nice work with the "pir injection" technique for .HLL :) 02:37
purl Message for barney stored.
pmichaud ...pir injection?
TiMBuS i guess ill just screw around until the error shows itself
particle1 make PAST::Stmts.new( $past, PAST::Op.new( :inline( "_block11()\\n.end\\n.HLL 'Pipp'\\n.sub 'anon'" ) )); 02:39
pmichaud ick.
Coke I'd split that into 2 lines, and step through them. Also, grab the backtrace. Also, does it go away with -G?
pmichaud adds HLL to PCT.
TiMBuS caught it. whoops that was my bad, was assigning to uninit'd pointer 02:40
the joy of coding in c 02:41
particle1 pmichaud: seems rakudo's failing some inf/nan spectests on win32 02:43
i haven't read all the recent commits, so i'm not precisely sure what's changed
i'll nopaste the report...
...later...afk & 02:49
Coke particle: are they the same inf/nan errors that fail for parrot itself? 02:57
pmichaud guesses yes. 03:01
dalek r34265 | pmichaud++ | trunk/compilers/pct/src/POST (2 files): 03:33
: [pct]: .HLL support part 1 -- 'hll' attribute in POST nodes.
review: xrl.us/4gsbq
03:38 ewilhelm joined
kid51 ewilhelm ping 03:39
ewilhelm kid51, pong? 03:40
kid51 Hi. Do you have anything to add to rt.perl.org/rt3/Ticket/Display.html?id=57320 ? (I think you opened it, originally.) 03:41
ewilhelm haven't been following too closely. does it no longer do `mkdir /tmp/t` ?
dalek r34266 | pmichaud++ | trunk/compilers/pct/src/PAST (2 files):
: [pct]: .HLL support part 2 -- .hll in PAST::Block nodes.
review: xrl.us/4hpyh
pmichaud msg barney you should be able to set :hll('...') on PAST::Block to put blocks into a different .HLL . 03:42
purl Message for barney stored.
kid51 ewilhelm: [parrot] 514 $ grep mkdir t/perl/Parrot_IO.t 03:44
[parrot] 515 $
dalek r34267 | pmichaud++ | trunk/docs/pdds:
: [pct]: Update pdd26_ast.pod with 'hll' attribute on PAST::Block .
review: xrl.us/4hxrp
kid51 No 'mkdir' at all.
uses File::Temp::tempdir().
ewilhelm kid51, that sounds good
kid51 anyone: Do we not have an IRC channel topic set right now? Or have my settings gotten screwed up? 03:45
ewilhelm: Thanks. I will close the ticket.
ewilhelm sees no topic
moderator Parrot 0.8.2 "Feliz Loro" Released www.parrot.org/news/2008/Parrot-0.8.2 03:47
kid51 ... for lack of a better idea ;-) 03:48
ewilhelm thanks
kid51 Re: Win32 math errors: rt.perl.org/rt3/Ticket/Display.html?id=52198 03:50
kid51 must sleep 03:57
purl $kid51->sleep(8 * 3600);
04:02 elmex_ joined 04:10 pdcawley joined 04:21 MariachiElf joined 04:22 ChrisDavaz joined 04:31 flw joined 04:32 flw joined 05:04 tetragon joined 05:09 masak joined, petdance joined 05:53 ChrisDavaz joined 06:25 MariachiElf joined
Tene pmichaud: next/last/redo work in rakudo in the branch. Should we just merge for now and deal with the handlers later? 06:32
pmichaud I still want to avoid the throwing of the exceptions. 06:37
They aren't needed.
(I should say "the forced throwing of the exceptions")
Just posted a draft article at use.perl.org/~pmichaud/journal/38134 -- comments and suggestions welcome. 06:38
(I'm also planning to send it to rakudo.org and perl6-users mailing list.)
nopaste "tene" at 166.70.38.237 pasted "pmichaud: so like this?" (41 lines) at nopaste.snit.ch/15074 06:44
Tene ... wait, that doesn't work.
masak likes the article 06:46
pmichaud posts. 06:47
masak enthusiastic Perl 6 coders are what we need.
the more, the better.
dalek r34268 | tene++ | branches/pctloop/compilers/pct/src/PAST: 06:53
: [pct]: Use a goto instead of an exception in one place.
review: xrl.us/4y9eg
pmichaud Tene: I'm falling asleep at my keyboard, so pctloop will be the first thing I look at tomorrow morning.
afk # sleep 06:55
06:59 Theory joined
masak wrote a short summary: use.perl.org/~masak/journal/38135 07:07
hope that's ok. :)
07:37 Theory joined 08:04 iblechbot joined 08:55 barney joined 09:25 ask_ joined 09:42 donaldh joined
dalek r34269 | bernhard++ | trunk/languages/pipp/src/pct: 09:53
: [Pipp] Use the nifty hll attribute on PAST::Block.
: Unbreak 'require_once'. pmichaud++
review: xrl.us/5dyee
09:56 ask_ joined
dalek r34270 | bernhard++ | trunk/languages/pipp/t/embed: 09:58
: [Pipp] Reenable example with function lookup.
review: xrl.us/5eaom
10:12 particle joined 10:17 ask_ joined 10:39 alvar joined 10:57 Zaba joined 11:38 ruoso joined 11:41 Lorn joined 12:00 TiMBuS joined 12:04 GeJ joined
dalek r34271 | bernhard++ | trunk (2 files): 12:10
: Trac#75: Add file ext/Parrot-Embed/t/pipp.t with most test cases commented out.
review: xrl.us/5orh9
12:44 ChrisDavaz joined
szabgab barney: thanks 13:01
barney szabgab: I submitted trac.parrot.org/parrot/ticket/85, as 'eval' is not found in the 'pipp' hll root namespace 13:03
13:06 tetragon joined
szabgab barney: yeah, I hope things start to move on the embedding front now so in a few days/weeks I'll be able to write Padre::Plugins in other languages, not only perl 5 13:06
13:10 petdance joined
dalek r34272 | bernhard++ | trunk/languages/pipp/src (7 files): 13:30
: [Pipp] Avoid the implicit downcasing of the HLL name.
: Prepare for using the '_pipp' hll root namespace for Pipp internals.
review: xrl.us/5toim
13:44 ask_ joined
dalek r34273 | bernhard++ | trunk/languages/pipp/src: 13:47
: [Pipp] Move some internal functions into the '_pipp' hll root namespace. 13:48
review: xrl.us/5vdji
13:50 petdance joined, ffwonko joined 13:52 Theory joined 14:01 particle1 joined
Coke I tend to think of xrl.us as a scarce resource; do we really need to use it here? 14:10
is www.parrotvm.org/svn/parrot/revision?rev=34273 really too long?
pmichaud not for me. As long as it doesn't trigger one of the other bots that "helpfully" shortens it for us. 14:12
jonathan pmichaud: What's status of use/initload things? 14:18
And rakudoreg stuff?
jonathan is too lazy to backlog several days worth
pmichaud use/initload is finished 14:19
I'm *much* happier with what we have now.
jonathan ok, good 14:20
dalek r34274 | bernhard++ | trunk/languages/pipp/src (2 files):
jonathan Did those get updated into the branch?
pmichaud I was going to do rakudoreg stuff next, but ended up attacking spectests.
dalek : [Pipp] Set the scope of the superglobals to 'package' in the TOP-Block.
: Beware that there are still local symbol scope declarations the override the
: declaration in TOP.
review: xrl.us/5xcxk
barney likes www.parrotvm.org/svn/parrot/revision?rev=34273
pmichaud (updated into branch) short answer, no -- I figure it might be easier to start a new branch and then bring rakudoreg updates into that new branch
jonathan maybe 14:21
I don't have svn 1.5 on this laptop...
Guess I can upgrade though.
pmichaud well, that's part of what makes the new branch easier -- don't need svn 1.5 to do it 14:24
jonathan In that case, it's your job, 'cus I don't understand pre-1.5 branch management. :-) 14:25
pmichaud okay, I'll do that part, but basically it's:
14:25 Wknight8111 joined
pmichaud svn copy svn.perl.org/parrot/trunk svn.perl.org/parrot/branches/rakudoreg2 # create new branch 14:25
jonathan I can do that bit. :-) 14:26
pmichaud svn co svn.perl.org/parrot/branches/rakudoreg2 # check out copy
cd rakudoreg2
# figure out starting revision of rakudoreg branch
dalek r34275 | Whiteknight++ | trunk/src: 14:27
pmichaud svn merge -r $rev:head svn.perl.org/parrot/branches/rakudoreg
dalek : [Patch] remove a little bit of logic redundancy. A smart compiler probably ignored this already, but I don't count on all compilers being smart. jimmy++
review: xrl.us/5xefb
pmichaud where $rev is the starting revision of the rakudoreg branch. That can be determined quickly by using svn log --stop-on-copy
...but instead of doing a all-at-once merge, I was just going to look at the diffs and recreate them in the new branch 14:28
jonathan OK.
pmichaud I probably won't get to it for another couple of hours, though, as I told Tene I'd work on loops this morning.
jonathan There's a better chance of you not screwing it up. :-)
Oh, that's fine.
pmichaud I've also decided to implement find_lex_contextual and store_lex_contextual ops.
jonathan I'm sorta in holiday mode, have a load of family around, am seeing various UK friends etc.
So only getting snatches of hacking time. 14:29
Oh, cool.
Context vars. :-)
pmichaud yes -- I've come up with about a half-dozen immediate use cases for them, so I'm going to stick 'em into NQP.
(and PCT)
jonathan Great.
Wknight8111 pmichaud++
14:29 donaldh joined
jonathan I may well dig into S14. 14:30
pmichaud and although I could probably make something work without the new opcodes, it's so much more straightforward with the ops that I'm just going to do it that way. :-)
jonathan Oh yes, I can imagine.
Not to mention faster at runtime.
pmichaud Sam Vilain sent a message to parrot-dev, gist of the message was "Rakudo needs a better install, line numbers in error messages, less error trace information, debugger, avoid VM spiraling out of control" 14:31
so "line numbers in error messages" (bytecode annotations) would be good to work on if you get a chance :-) 14:32
jonathan Line numbers in error messages is already in progress.
pmichaud I'll likely do that part of the PGE refactor this week.
jonathan Great.
I want to land the Parrot changes for it early Jan.
pmichaud so it'll be ready when the bytecode annotations come in.
jonathan Good. 14:33
14:33 flh joined
jonathan Better install - sorta depends on sorting it out for Parrot first. 14:33
less error trace information - more is useful for now, IMO. 14:34
though we won't want to incldue the stuff below Rakudo level in backtraces. 14:35
debugger - more important things to focus on right now, IMO, but I'd very happily see someone working on it if they wanted to. 14:36
VM spiraling out of control - usually we gotta fix this on a case by case basis...
jonathan is trying to find the original message 14:37
barney find_lex_contextual() can that be used for checking wether a lexical is already declared ? 14:41
14:42 gryphon joined 14:45 jhorwitz joined
jonathan barney: In the dynamic scope. 14:46
14:51 contingencyplan joined
Coke needs to add a sanity check to the spec_test tool tcl runs that verifies we're running against a /clean/ copy of the spec tests. 14:51
accidentally passed something. 14:52
PerlJam Coke: gas? :) 14:53
Coke a spec test.
jonathan lol 14:54
Coke shares a horrible joke from a coworker. 15:01
A SQL query goes into a bar, walks up to two tables and says, "Can I join you?"
jonathan *GROAN*
Coke ... that's what I said. 15:02
Andy eeenteresting: smallcode.weblogs.us/2006/08/22/fas...-function/ 15:10
shorten Andy's url is at xrl.us/5zqc4
Andy Duff's device + anding for equality 15:11
dalek r34276 | pmichaud++ | trunk/languages/perl6/docs: 15:26
: [rakudo]: spectest-progress.csv update: 264 files, 5833 passing, 0 failing
review: xrl.us/52k8r
jonathan Wow. 6,000 coming soon?!
pmichaud maybe.
I probably hit a lot of the low-hanging fruit this past weekend.
jonathan *nod* 15:27
Sure, but having a sweep out of that lot now and then can be a good thing.
The stuff you've done all needed doing at some point.
pmichaud right now I don't have a good feel for what we need to be working on to pass more tests, though. 15:28
I guess there's a fair bit of S05 stuff that needs doing.
barney When adding a 'lexical' PAST::Var to a PAST tree: Can I say :isdecl(1) unless already declared ? 15:29
nopaste "pmichaud" at 72.181.176.220 pasted "spectests by synopsis, 2008-12-23" (16 lines) at nopaste.snit.ch/15076
pmichaud right now having multiple :isdecl(1)'s in a block causes problems for Parrot.
jonathan pmichaud: Doing parameter stuff would let us at least close some tickets. 15:30
It won't win us hundreds of tests maybe, but some for sure.
pmichaud jonathan: agreed. 15:31
in reviewing the test suite I didn't see anything (other than S05 stuff) that might win us hundreds of tests
jonathan Once you get that in place I will mostly likely not be that far behind with the unpacking stuff, 'cus it's -Ofun ;-)
pmichaud of course, that only includes tests that are in t/spec . There may still be tests in t/ (not t/spec/) that need migration.
PerlJam barney: On the first day of a christmas my true-love gave to me ... a PAST::Var in a PAST tree. 15:32
jonathan *nod*
barney Can I use find_lex for checking whether a var is already declared? Or do I have to search the blocks, like in the Squaak tutorial ?
pmichaud barney: find_lex is runtime, search blocks sounds like compile-time 15:33
so...?
purl Yeah, so?
barney wants a big PAST::Block, not a small PAST::Var
PerlJam barney: what are you implementing?
barney PHP variables, which are not declared. 15:34
15:34 contingencyplan joined
PerlJam so, you're doing the auto-declare-on-first-use dance? 15:35
barney yep
pmichaud barney: you want to be using the PAST::Block.symbol table then
when you encounter a variable, check the Block's symbol table to see if it's already defined. If yes, generate a normal PAST::Var node. (more) 15:36
If no, then generate a PAST::Var node with :isdecl(1) and put it at the beginning of the block, and mark an entry in the .symbol table. Then generate a normal PAST::Var node.
barney Does that work with symbols in symbol tables in outer blocks? 15:39
pmichaud are you trying to handle the case of nested subs? 15:40
I haven't done much nested subs in PHP.... but if you have function a() { $x = 1; function b() { $x = 2 } } then the $x that is in b() doesn't refer to the same $x as function a(), right? 15:41
barney Kind of. Currently I only have superglobals in TOP Block, that I declared as 'package' vars. All other vars should be lexicals, so that I can support closures 15:42
PerlJam PHP does closures? 15:43
pmichaud anyway, I'm trying to come up with a case where a variable needs to be checking its outer blocks.
(and not coming up with one.) 15:44
barney pmichaud: In 5.3 there is a 'use' syntax, that says which vars should be taken from the outer scope
pmichaud how does one declare a local var, then?
(haven't seen 5.3 at all.)
barney in functions all vars are local, unless they have been declared with 'use' 15:45
pmichaud so 'use' explicitly means "check the outer scope"
?
barney yes 15:46
PerlJam barney: does it just look in the immediately outer scope or does it keep looking outward until it finds the var or runs out of scopes?
pmichaud okay, for a 'use' statement then you simply put an entry in PAST::Block.symbol that indicates that the lexical is already declared.
That prevents subsequent references from creating a new lexical in the PAST::Block, and PAST will default to using the lexical from its outer scopes.
i.e., 'use' is "suppress :isdecl for this variable in this block" 15:47
you still don't need to check the outer scopes :-). Unless of course someone has "use $x" and $x doesn't exist in any outer scopes -- I don't know if that's an error (or should be). 15:48
barney PerlJam: the 'use' is only for anonymous subs, I suppose for deeply nested anonymous subs it keeps on looking
pmichaud: At this point I can live with a runtime error 15:49
pmichaud anyway, the "magic" for making this work is to use the PAST::Block.symbol tables to keep track of variables. 15:50
In fact, that's what allows you to not have to put a :scope attribute on every PAST::Var node.
barney k
pmichaud so, in PHP, "global $foo" should do the equivalent of $past.'symbol'('$foo', :scope('package')); 15:51
barney I'll add the :isdecl(0) for the 'use'ed vars and for the superglobals
pmichaud (where $past is the node for the PAST::Block)
any later references to "$foo" simply do PAST::Var.new( :name('$foo') ) 15:52
(well... after doing the lexical check we described earlier)
barney pmichaud: Currently I think that "global $foo" would be $past.'symbol'('$foo', :scope('lexical')) 15:55
nopaste "pmichaud" at 72.181.176.220 pasted "code for PHP variables" (10 lines) at nopaste.snit.ch/15077
pmichaud ...why lexical?
barney or look up only one level 15:56
pmichaud is that because globals need capturing in a closure? 15:57
barney I think that working with lexicals simplifies handling of functions that are defined in required files.
pmichaud well, you can definitely do global variables as lexical also 15:58
where are you storing the global?
barney 'require' being basically a function call
a global in a required file is, AFAIK, only global to the required file. So that makes is look like a lexical. 15:59
pmichaud that doesn't sound familiar. 16:00
barney Where files and function are lexical boundaries, but { } is not
pmichaud oh. 16:01
the symbol is scoped to the file, but the variable lifetime isn't.
because in a required file, if I say "global $foo" then I'm talking about the same $foo that all of my other files that do "global $foo" are referencing.
I'm not creating a new $foo that is local to the file. 16:02
basically files just serve as another function boundary.
(even to the point of 'return' meaning 'exit this file') 16:03
16:07 flh joined
barney I haven't thought about 'global' yet. Maybe I need to put them into a 'package' and initialize from the lexical 16:08
pmichaud that works too. Anyway, I'd focus on lexicals to begin with. I think the answer lies in making use of the PAST::Block.symbol table (which is why it's there, of course :-) 16:09
16:14 ask_ joined
flh hi everyone 16:14
purl Howdy, flh, you fantastic person you.
16:15 masak joined
flh I had a question about pir: I'm trying to write a function which expects a fixed number of arguments, but when given less arguments, it returns a new function which waits for the rest 16:16
16:17 donaldh joined
flh and I'm afraid I don't know how to start writing such a thing... 16:17
pmichaud flh: ah, that's currying. :-)
apple-gunkies self.curry() ?
flh sure, I'm playing with the ocaml language :)
pmichaud in Rakudo we do it using lexicals. 16:18
barney was reading up on de.php.net/global The toplevel scope seems to be special for 'global'
flh I knew I should have asked earlier 16:19
pmichaud the code that Rakudo uses (in Perl 6 it's the ".assuming method") is languages/perl6/src/classes/Code.pir line 132. 16:20
16:20 contingencyplan_ joined
flh thanks! 16:23
16:24 contingencyplan_ joined 16:27 pdcawley joined
PerlJam What's the difference between creating objects using PMCs vs. straight PIR? Why choose one over the other? Is it strictly speed? Are there some capabilities that one has and the other does not? 16:29
pmichaud PerlJam: you mean the difference between writing a new PMC type versus doing "newclass" in PIR? 16:30
Coke tcl has a form of currying like "interp alias {} foo {} if 1"; then whenever you say "foo {puts hi}", it's like you had typed "if 1 {puts hi}". (if you're testing, it's a way to run things all the time, or skip, depending on the alias.); I was pleasantly surprised I could do this with proc foo {args} { uplevel 1 "if 1 $args" } with partcl already.
PerlJam pm: right.
16:30 contingencyplan__ joined
Coke (it's not really currying. Though tcl has that with 'apply', which I also need to hack on.) 16:30
pmichaud the primary difference at the moment is that PMCs give you the ability to do things in C, while Objects limit you to PIR. 16:31
Coke if you want the best of both worlds, you could theoreticaly do a base in PMC and provide methods in PIR.
(though ISTR that kind of mixin has issues atm.)
pmichaud Coke: that works for the most part -- we do it a fair bit in Rakudo. 16:32
Coke ah, cool.
pmichaud what's tougher to handle is overriding vtable methods in a PMC
16:32 contingencyplan_ joined
Coke I find it helpful to use PIR for cases where I want attributes. 16:32
Wknight8111 PIR vtable overrides definitely have problems 16:34
at least, some of them do
16:35 contingencyplan joined
barney is back after dinner 16:36
16:39 tomyan left
PerlJam pm: ping 16:47
16:51 contingencyplan_ joined 16:55 mberends joined 16:56 davidfetter joined 17:24 particle joined
donaldh Hi, I'm looking for advice trying to debug a GC crash. 17:27
17:29 alvar joined
donaldh I have a p6 sub that typically crashes in pobject_lives. With -G it runs to completion. With --runcore=gcdebug it _appears_ to infinite loop. 17:29
pmichaud PerlJam: pong 17:30
donaldh In the debugger, it's looping through runops_gc_debug_core but I can't tell if it's just repeating the exact same loop or not. 17:31
Are there any helpful tools in the GC debugging armoury?
PerlJam pm: Could you explain the 'for' pasttype a little more? It seems to only be used in two places: cardinal and rakudo. rakudo's usage seems complicated by comparison to cardinal. 17:32
pm: also, all of the other pasttypes seem to operate on individual nodes (which may be aggregates), while the 'for' pasttype talks about iterating over it's first child. That seems odd to me right nwo. 17:34
s/nwo/now/
pmichaud pj: iterating over an aggregate is fairly common. PHP does it, Perl 6 does it, Ruby does it, and I think Python does also. 17:35
so that's what 'for' represents.
PerlJam right, that makes sense. I guess it's just that there don't seem to be "arrays" in PAST. 17:36
pmichaud even 'for' doesn't really iterate over arrays -- it uses iterators. :-)
I suppose it would make more sense if 'for' took an iterator as its first child instead of an aggregate, though. 17:37
anyway, having it automatically construct an iterator from an aggregate is useful, so I might keep it the way it is. 17:39
pmichaud rationalizes. :-)
Wknight8111 donaldh: You have a test case? 17:44
dalek r34277 | pmichaud++ | branches: 17:48
: New branch for 2nd attempt at loop refactoring.
review: xrl.us/6fbd3
Coke donaldh: chromatic has some tips on debugging GC in parrot. 17:49
I'd start there.
www.google.com/search?rlz=1C1CHMP_e...t+gc+debug
shorten Coke's url is at xrl.us/6fhkf
Coke wonders if he can make a parrot Interp == tcl's [interp] 17:53
Wknight8111 Coke, you're probably going to have to subclass it 18:03
18:03 Whiteknight joined 18:05 rurban joined
donaldh sorry, afk 18:09
Whiteknight 'salright.
18:12 flh joined
pmichaud #ps in 11 18:19
Whiteknight w00t 18:20
dalek r34278 | Whiteknight++ | trunk/src/stm: 18:21
: [STM] Added a note here about how the debug definition for STM_TRACE is not C89 compliant, and linked to the ticket where we are discussing the issue.
review: xrl.us/6h3ti
nopaste "donaldh" at 213.123.171.12 pasted "Whiteknight: weather.p6 test case uses ext/SQLite3" (14 lines) at nopaste.snit.ch/15078 18:26
donaldh Whiteknight: any sqlite db with >100 rows should cause it. 18:27
dalek r34279 | pmichaud++ | branches/pctloop2/compilers/pct/src/PAST: 18:28
: [pct]: Initial version of loop_gen, 'until' using 'loop_gen'. NQP tests pass.
review: xrl.us/6iqhj
18:32 allison joined
dalek r34280 | bernhard++ | trunk/languages/pipp/src/pct (2 files): 18:33
: [Pipp] Start with keeping track whether a variable is declared.
review: xrl.us/6jcjw
Whiteknight donaldh, you might have to ask chromatic about this. I'm not too good with Rakudo or SQL stuff 18:34
donaldh :D
pmichaud #ps in -5 18:35
(as in 5 minutes ago)
18:35 apeiron joined
Coke irclog? 18:35
purl i guess irclog is irclog.perlgeek.de/parrot/today or see also: infrared clogs
18:36 PacoLinux joined 18:37 chromatic joined
dalek r34281 | pmichaud++ | branches/pctloop2/compilers/pct/src/PAST: 18:40
: [pct]: Switch 'while' to use loop_gen, refactor 'until'.
review: xrl.us/6j35e
particle how do i get access to parrot's coverity reports? 18:41
chromatic I send your contact information to Coverity.
particle aha. send away! 18:44
18:49 ambs joined
Whiteknight so we don't use STM? 18:52
particle no, never worked on win32 anyway
chromatic It relies on the old threading model too. 18:53
Whiteknight Really? what was holding it back on Win32? Who was working on it?
Coke ... and we haven't ripped it out?
particle it was a gsoc project from 2-3 years ago
Coke wasn't it a SOC project?
Whiteknight: let that BE A LESSON TO YOU! =-)
particle was mostly integrated, but never fully integrated since threads was still in prototype
we have no tuits to get it working before 1.0
it's not critical, so we rip it out and address it later 18:54
Whiteknight I've got tuits, I didn't realize it wasn't working
Coke Whiteknight: (tuits) hey, where's my shiny new GC? =-)
Whiteknight i'm practically made of tuits. Sleep is for lesser men
GC is in the pipeline
particle gc is critical
szabgab chromatic: do I need to try to nag you regerding the Parrot::Embed issues ?
Whiteknight I'm working on GC, had a few GC-related commits this week 18:55
particle rip out stm, get gc working, get docs ready for 1.0, then take a look at stm
Coke apologies to chromatic, but your ballot has already been cast. there's no papertrail.
Whiteknight docs are too out of date. We should rip them out too :)
particle i'll let you get the karma for that ;) 18:56
Whiteknight no, can't rip out docs. We'll just have to start going through them slowly 18:57
particle we can, however rip out stm. we^Wyou ripped out your gc, after all. :) 18:58
allison Whiteknight: yes, we can't simply rip out docs without reviewing them, but I suspect many of the current doc files will be ripped out 19:00
Whiteknight: or merged into other doc files 19:01
Whiteknight i was joking about the docs. I'm not going to rip them out, I'm going to slowly fix them
particle of course you are, and we might even help
dalek r34282 | pmichaud++ | branches/pctloop2/compilers/pct/src/PAST: 19:02
: [pct]: Move repeat_until to use the loop_gen code.
review: xrl.us/6obbz
particle allison: any thoughts as to how long a sockets impl might take in ideal developer hours?
allison particle: about 3 days 19:03
the core infrastructure is there, but needs the PMC on top
BTW, we have no tests for the socket implementation 19:04
19:04 ask_ joined
allison we have no code using the sockets implementation 19:04
particle yeah, that's a good place to have contributors
we have examples using sockets
Coke allison: tcl was using tcpstream
19:05 ambs left
Coke so, barney, is your question answered? =-) 19:05
dalek r34283 | pmichaud++ | branches/pctloop2/compilers/pct/src/PAST: 19:10
: [pct]: Refactor repeat_while to use loop_gen.
review: xrl.us/6pe34
Whiteknight particle, which runcores were you planning to rip out? 19:11
particle cgp, for one 19:12
Whiteknight we don't use cgp? I thought we did
particle it's gcc-only
chromatic We almost never test these runcores.
particle we need 1.0 to be *stable* 19:13
Coke cage test: find failing smoke tests and skip them on the reporting platform.
particle if we're not testing parts of parrot, like rarely used runcores and gc impls, we can't guarantee stability
allison particle: and frankly, many of those will never be used in their current state (or anything even vaguely resembling their current state), so we might as well scrap them 19:17
particle i'll gen some tickets after my errands 19:18
btw osuosl will host smolder for us
allison particle: excellent!
purl plays air guitar
particle i'm scheduling install for january
Whiteknight by that logic, we should rip out JIT too since it's got spotty platform coverage and isn't oft-tested 19:19
chromatic It's tested on platforms where it generates our NCI thunks.
pmichaud actually, I think JIT is the default build.
particle jit's a different beast
Coke works for me. I never use JIT. =-)
pmichaud (on platforms that support it)
allison Whiteknight: the JIT is good enough to keep 19:20
Whiteknight: we do have it on our roadmap for a substantial revamp later, though
chromatic LLVM++ 19:21
allison chromatic: yes, that's one of our primary possibilities
chromatic There's also Adobe's Nanojit, if you like Forth and Python. 19:22
Coke gnu lightning?
rurban cd branches; svn up... D ... D ... Out of memory - terminating application. !!! 19:24
I have experience with gnu lightning 19:25
Our JIT is better
Whiteknight if cgp is gone, whats the next fastest core? switch?
chromatic Runcore overhead isn't our biggest performance problem by any means. 19:26
Whiteknight perhaps not, but it's not something we should ignore
Coke be nice to have callgrind output so we could know for sure.
I'd rather make that a higher priority than keeping multiple runcors of undeterminate value. 19:27
Whiteknight particle, you going to create tickets for all the things that are slated for removal? Be good to take stock if there are a lot of things on the chopping block 19:29
allison Coke: yes
Coke (more tickets makes it easier to divvy up the work, also.)
19:34 ask- joined 19:48 rurban_ joined
Coke allison++ #ps 19:48
particle coke: DEPRECATED.pod is pretty big, looking now :( 19:52
Coke particle: imagine how much bigger it was!
Whiteknight let's hope this GC branch goes more smoothly now then it went over the summer 19:53
Coke +1
purl 1
Coke purl is also captain obvious
purl okay, Coke.
allison Whiteknight: breaking the changes down into small sets will certainly help 19:54
Whiteknight here's hoping 19:57
barney Is there a 'Recent changes' button in trac.parrot.org/parrot/wiki ? 19:59
particle trac.parrot.org/parrot/wiki/RecentChanges 20:00
how do we get parrot docs displayed on parrot.org? 20:04
should we have a cron job for make html?
Coke if we're going to put the docs on the site, we should have version #'d docs. 20:05
have one for daily updates from trunk; have one that corresponds to the last devel and last stable release. 20:06
particle yes, agreed 20:08
Coke even just having trunk for now works, just need to make sure we leave a space for devel/stable 20:09
if there's a space we could ftp the files to, we can setup a cron job on feather. 20:10
particle: one down. 20:13
dalek r34284 | coke++ | trunk (5 files):
: Eliminate [DEPRECATED] runtime/parrot/library/Parrot/Capture_PIR.pir
Coke here's something: experimental.ops should probably be empty at 1.0
dalek : was only referenced by one language, but it wasn't being used.
review: xrl.us/6v5ny
particle looks like we can delete some non RELEASE_ tags... svn.perl.org/parrot/tags/ 20:19
i hoped that "make release" included the html docs, but it seems it does not
which means we can't just pull them from the release tarballs :(
however, we can set up a dir at ftp.parrot.org for uploading docs 20:20
ftp-osl.osuosl.org actually 20:22
20:33 chromatic joined 20:34 Aisling joined
dalek r34285 | Whiteknight++ | branches/jit_h_files/src/jit/i386 (2 files): 20:49
: [jit_h_files] move functions from the first part of the .h file to the .c file, along with a few duplicated macros. Compiles.
review: xrl.us/6zm6w
Whiteknight we can change make release to include the docs/html targets 20:50
Coke chromatic: any gotchas ripping out PIC? 20:51
(and/or the ops that rely on it?) 20:52
chromatic You break all predereferenced runcores. 20:53
Other than that, none.
I think you break JIT too.
Coke ah. breaking jit is bad, since I can't fix it.
perhaps a branch on this one 20:54
Whiteknight branch++
dalek r34286 | coke++ | branches: 20:56
: RT #60048. - remove polymorphic inline cache.
review: xrl.us/62eie
Coke chromatic: pic.ops should also go, neh? 20:58
chromatic I think that can go safely.
Coke sees a bunch of references to PIC lying about in t/conf* tests.
chromatic That's probably the -fPIC flag for cc. 20:59
Whiteknight later
Coke chromatic: ... no, sadly. 21:00
things testing ops generation that happened to refer to pic.ops.
dalek r34287 | chromatic++ | trunk (4 files): 21:02
: [ops] Removed deprecated add_io_event opcode.
review: xrl.us/62toq
chromatic So much for the triumph of hope over experience.
dalek r34288 | chromatic++ | trunk/config/auto: 21:03
: [config] Added -funit-at-a-time to GCC flag detection to avoid inlining
: warnings on GCC 4.3.x.
21:03 jan joined
dalek review: xrl.us/62wqr 21:03
Coke ... PIC has lots of hooks everywhere. 21:04
chromatic What doesn't?
Some of these features look like abstraction and encapsulation got drunk and vomited all over our source code.
Coke is amazed how much of this code he has touched without understanding what it does. 21:07
"remove B. build. does it compile? repeat."
i haz a parrot that builds. running make test... 21:10
remove pic is requiring deleting a LOT more than the two *.c files mentioned in the ticket. 21:11
*removing
chromatic Yep. 21:12
Coke only 5 test failures in 'make test'. 21:16
chromatic Now try make testC
Coke committing first. 21:17
dalek r34289 | coke++ | branches/remove_pic (15 files): 21:18
: First machete hack at removing PIC. 5 failures in 'make test':
: t/pmc/packfile (Wstat: 512 Tests: 11 Failed: 2)
: Failed tests: 7, 9
: t/run/options (Wstat: 768 Tests: 26 Failed: 3)
: Failed tests: 22-24
review: xrl.us/64x3v
r34290 | chromatic++ | trunk/src (2 files): 21:19
: [JIT] Added checks for the return values of some system calls when writing
: stabs files.
review: xrl.us/64yrd
Coke I am not sure testC works on osx/intel anyway. does it?
hurm. somewhat. 21:20
chromatic It should. 21:21
dalek r34291 | coke++ | branches/remove_pic/t/pmc: 21:22
: don't expect PIC anymore.
: He's gone to live at the farm.
review: xrl.us/642gh
r34292 | coke++ | branches/remove_pic/src: 21:24
: eliminate some PIC that otherwise borks 'make testC'
review: xrl.us/6445b
Coke running 'make testC' now; at least some tests are passing...
(no failures yet.)
do have a hang, though. 21:25
chromatic I'm not surprised. 21:26
You're probably not getting parameters in a function. 21:27
dalek r34293 | chromatic++ | trunk/src: 21:28
: [src] Improved casts of functions loaded through Parrot_dlsym(). See RT
: #61038 (reported by Jarkko Hietaniemi).
review: xrl.us/65bcz
r34294 | coke++ | branches/remove_pic/compilers/imcc: 21:29
: remove apparently (now) unused struct member
review: xrl.us/65d6m
Coke ok. I'm done with remove_pic for the next short while if someone wants to play cleanup. 21:30
(that's about the limit of what I can remove without being forced to understand what I'm doing.) 21:31
chromatic Is make testC totally broken?
How about make testg?
Coke testC runs about 4 test files to completion before hanging. 21:32
21:33 Aisling joined
chromatic Figured. 21:33
Coke testg gets further.
chromatic Removing the PIC files altogether relegates just about every other runcore to the scrap heap of history.
Coke ... was that an expected result of removing src/pic.c ? 21:34
it certainly seems to mesh with earlier discussions about removing things we don't use.
chromatic That's what I meant when I said "You're going to break every predereferenced runcore if you do that." 21:35
Coke Yes, but is that a problem?
I'm happy to rip out code. =-)
if you want to add a note to the ticket about which runcores this obviates, I can make an effort to kill them in the branch.
(assuming this is the desired direction) 21:36
testg seems to be fine, btw.
chromatic We haven't deprecated any runcores yet.
Coke but it follows logically from removing PIC, neh?
If so, then lets get a ruling and throw it on the heap for removal right after january. 21:37
chromatic Only because the PIC implementation sucks in terms of encapsulation.
Coke ok. I don't have the brainz to fix it, just to kill it.
chromatic No one else understands it either. 21:39
Someone's going to have to dig into it and play around with it to do anything other than delete it.
21:39 ask_ joined
chromatic That doesn't have to be me. In fact, it would be really nice if it weren't me. 21:39
Coke if we're talking about potentially eliminating other runcores, let's just rm it all.
If no core committers have the time to maintain this, and we have a bunch of stuff to do before 1.0... 21:40
chromatic And it's not like the code is brilliant or clean enough that it's worth keeping around either.
Alright, I'm convinced. 21:41
Coke Could you write up a note to the list with a list of which cores would be affected by this?
I can rip them all out in branch, which can then land after the january release. 21:42
chromatic Everything other than the default core, the nearly-useless profiling core, and the gc-debug core.
I'm not sure about the JIT core.
Coke well, I'd hate to break JIT, you know?
(even though I can't use it myself.)
ok. Given that, I'll write something up. 21:43
chromatic The JIT core doesn't really help us now.
dalek r34295 | chromatic++ | trunk (2 files):
: [src] Fixed function decorations on unimplemented encoding functions to
: demonstrate that they really do not return now.
review: xrl.us/67cco
Coke is there JIT in the regular core? 21:44
chromatic On supported platforms, we use JIT to generate NCI thunks, rather than relying on the contents of src/nci.c.
Coke I'm not sure what that means, exactly, but it sounds like we can live without -j then. 21:45
chromatic We use JIT in the default core on certain platforms, but the JIT runcore doesn't add a lot. 21:46
It's messy, difficult to maintain, undocumented, and incomplete.
21:53 kid51 joined 22:02 Whiteknight joined
GeJ Good morning everyone 22:07
22:07 TiMBuS joined
chromatic Any objections to making Parrot IO PMCs upgrade to buffered mode when you peek on them? I have a working patch. 22:08
dalek r34296 | Whiteknight++ | branches/pdd09gc_part1 (2 files): 22:11
: [pdd09gc_part1] add the new GC to the makefile, and add it as an option to src/gc/memory.c
review: xrl.us/7at9t
chromatic Can any Windows hacker run t/src/compiler.t without the skipall and tell me if we've fixed our linking problems? 22:14
nopaste "particle" at 76.121.106.245 pasted "rakudo spectest failure summary" (8 lines) at nopaste.snit.ch/15080 22:15
particle chromatic: i'll take a look now
dalek r34297 | chromatic++ | trunk/t/src:
: [t] Removed a test of imcc_compile_pir() as Parrot_compile_string() does a much
: better job and we already expose that anyway. See RT #61154 for the
: motivation.
review: xrl.us/7ay6r
chromatic particle, how about also t/dynpmc/foo.t ? 22:18
particle i need to reconfig/build head first, but it's in the queue 22:19
chromatic Thanks. I'm reviewing untouched tickets now. Closed 2. 22:20
Have a patch for one, depending on if we can convince allison it's a good idea (which it is).
particle buffering stdin? 22:21
oh, any io
chromatic Exactly. 22:22
particle i've got a number of build warnings, some of which are probably easy fixes. wanna ticket? 22:23
chromatic I see a bunch of warnings too (building with -O2). Let me start cleaning mine up, then I can work on yours. 22:24
particle ok, i'm linking now. 22:25
# compiler_5.obj : error LNK2001: unresolved external symbol _PMCNULL 22:26
still haven't resolved link errors on windows 22:27
chromatic I thought we exported PMCNULL. 22:28
Maybe we need the PMC_is_null() function there.
particle PMC_IS_NULL() is used in those tests 22:29
chromatic Swap that for PMC_is_null() and see if that helps. 22:30
particle same error, all tests 22:31
chromatic That's strange. 22:33
See include/parrot/interpreter.h:891.
Is that not the case on your machine?
particle #define PARROT_CATCH_NULL 1 22:34
#if PARROT_CATCH_NULL 22:35
PARROT_DATA PMC * PMCNULL; /* Holds single Null PMC */
i'll try adding PARROT_EXPORT to that 22:36
chromatic Yes, but the source code of the test doesn't refer to PMCNULL at all.
dalek r34298 | Whiteknight++ | branches/pdd09gc_part1 (7 files):
: [pdd09gc_part1] fix makefile, make headerizer, add a few macros, and a few small changes to get this bad boy to compile
review: xrl.us/7cw4k
particle #if PARROT_CATCH_NULL
# define PMC_IS_NULL(pmc) ((pmc) == PMCNULL || (pmc) == NULL)
chromatic Is that outside of the PARROT_IS_CORE guard? 22:37
Doesn't look like it. 22:38
particle 'tis not, indeed. 22:41
nopaste "donaldh" at 213.123.171.12 pasted "crash backtrace from perl6 code - recursive fail_if_type_exists for "Grammar"." (337 lines) at nopaste.snit.ch/15081 22:51
donaldh Not sure if my GC crash is actually a GC crash. Looks more like Rakudo misbehaving and causing GC to crash. 23:00
particle what's the source look like? 23:01
diakopter greek?
purl greek is probably nice too, I hear. or illlegible to idiots who can't read Greek. or illegible to geniuses who can't read Greek or greek to me
23:07 bacek_ joined
nopaste "donaldh" at 213.123.171.12 pasted "p6 source causing crash" (12 lines) at nopaste.snit.ch/15082 23:10
23:28 Theory joined 23:29 Zaba joined
dalek r34299 | chromatic++ | trunk/include/parrot: 23:30
: [include] Removed a trailing comma in an enum, which picky C compilers hate
: (reported by Jarkko).
review: xrl.us/7im2p
donaldh Hmm. Bad memory profile for rakudo. A piece of PIR that runs a SQLite query and prints ~18000 rows maxes out at 6MB when run with -G. The equivalent in Rakudo maxes out at 1.6GB 23:40
s/maxes/tops/ 23:42
23:43 particle left
chromatic PGE/PCT/Rakudo use more STRINGs and PMCs. If you disable garbage collection, Parrot won't reuse them. 23:44
donaldh Sure. I'm just realising how much pressure Rakudo is putting on GC. 23:45
dalek r34300 | chromatic++ | trunk/src: 23:57
: [src] Switched some bzero() system calls to use memset(), as the former is
: deprecated. While doing so, cleaned up some potential memory overflows thanks
: to the wrong type used in a macro, and tidied some code.
review: xrl.us/7na7g
pmichaud rakudo is somewhat constrained by the architecture Parrot provides, unfortunately. 23:58
dalek r34301 | pmichaud++ | branches/pctloop2/compilers/pct/src/PAST: 23:59
: [pct]: Switch 'for' to use loop_gen code.
review: xrl.us/7nmhp