Parrot 0.8.1 "Tio Richie" Released | parrot.org | 24 TT | 648 RT
Set by moderator on 10 December 2008.
Tene jonathan: can you also get 'die' to just throw its argument if its argument already isa Exception? 00:00
'cos if so, we can pass several more spectests.
nopaste "jonathan" at 85.216.157.73 pasted "tene: try this patch" (13 lines) at nopaste.snit.ch/14892 00:02
jonathan Tene: That should make class Naughty is Exception { } work, but please spectest it before applying. 00:03
(As in, make sure it doesn't make anything else explode.)
Tene I'll do that after I get home. 00:15
I can do the 'die' patch, too. 00:16
00:24 GeJ_ joined 00:29 GeJ joined
Whiteknight Class Naughty? it's like the redlight district for perl 6 development 00:30
jonathan class Amsterdam { has Naughty $.red_light_district; } 00:32
00:57 allison joined 00:59 apeiron joined 01:10 adu joined 01:18 allison joined 01:26 LimbicRegion joined
Whiteknight pmichaud around here? 01:34
or anybody who knows lexicals?
cotto Coke: trac.parrot.org/parrot/wiki/RtMigration 01:51
coke++ #copypasta source 01:52
01:56 leto joined
leto howdy 01:56
purl hola, leto.
dalek r33785 | tene++ | trunk: 02:05
: [rakudo]: Create a protoobject for Exception
diff: www.parrotvm.org/svn/parrot/revision?rev=33785
02:33 kid51 joined
dalek r33786 | jkeenan++ | testparrottest: 02:47
: Add tests for effects of $ENV{POSTMORTEM}.
diff: www.parrotvm.org/svn/parrot/revision?rev=33786
davidfetter [vaguely on topic] anybody know whom i can pester about getting some hosted dev/testing boxes from microsoft? 02:48
Tene davidfetter: particle, i think
kid51 Wasn't cotto working there until recently?
davidfetter september iirc. dunno whether this thing was in effect at the time
02:54 jimmy joined
dalek r33787 | jkeenan++ | testparrottest: 02:54
: Delete internal sub _report_odd_hash(). All it provides is a smidgen more diagnostic than you would get with a regular 'die' message, but any competent Perl programmer should be able to figure out what has gone wrong.
diff: www.parrotvm.org/svn/parrot/revision?rev=33787
r33788 | jkeenan++ | testparrottest: 03:04
: 1. Improve one test description. 2. Since $desc is never used after it's been assigned to in _run_test_file(), it may be deleted without affecting anything.
diff: www.parrotvm.org/svn/parrot/revision?rev=33788
03:14 chromatic joined
Tene jonathan: around? 03:21
pmichaud pong 03:28
Tene pmichaud: I have exception handlers working. :)
pmichaud I saw that 03:29
the $_<handled> interface is non-P6, though.
Tene I'm trying to figure out how to get inheritance working properly for creating subclasses of Exception right now.
Yes, it is.
The problem I'm seeing right now is that in trait_auxiliary:is, it check for: $I0 = isa parent, 'Class' 03:31
and Exception ends up being a NameSpace
pmichaud Rakudo likely needs its own Exception class
in the meantime you can put Exception into the p6object system by calling 'register'
but I think better would be to give Rakudo its own Exception class; call it Perl6Exception for now 03:32
see how Complex does it for an example.
Tene Can we get 'Exception' in rakudo to translate to Perl6Exception so that we can pass some spectests?
pmichaud it does that automatically. 03:33
Tene We're already ctreating a Perl6Exception class in Failure.pir
pmichaud checking
Tene and registering it
pmichaud Failure needs to become a role
ah
Tene Jonathan suggested adding 'name'=>'Exception' to new_class, but that turns out to have broken things. adding Exception to its list of parents is better, afaict.
pmichaud you need to do both. 03:34
Tene That leads to... lemme check.
pmichaud if you want a Rakudo Exception to be a subclass of Exception
however, I suspect it's very likely that Parrot's exception system can't handle subclasses of the Exception PMC
Tene It can.
pmichaud I should rephrase 03:35
I suspect there are pieces of Parrot's exception system that don't work well with subclasses of the Exception PMC
chromatic That wouldn't surprise me.
pmichaud just like we have pieces of Parrot that don't work well with subclasses of Complex PMC
(because those pieces expect to be able to "peek" directly into the Exception PMC's guts, which change when it is subclassed. 03:36
the 'name'=> option specifies how you want the newly created or registered class to appear in the protoobject system 03:37
thus p6meta.'new_class'('MyComplex', 'parent'=>'Complex', 'name'=>'Complex') creates a new class that Parrot knows internally as 'MyComplex' but for other purposes reports itself as 'Complex' (e.g., in the protoobject) 03:38
(and yes, this would all be a _ton_ simpler if the class registry was working properly.)
03:40 adu joined
Tene Okay, the problem now is that .WHAT() on a subclass on Exception reports itself as "Exception" 03:40
So smartmatching on the class doesn't work.
dalek r33789 | tene++ | trunk:
: [rakudo]
: * More fixups for the Exception class
: * Add a :multi(Exception) for the 'die' op
diff: www.parrotvm.org/svn/parrot/revision?rev=33789
pmichaud don't confuse "reports as" with smart matching 03:41
Tene Hmm. Also I might be lying here.
pmichaud on a subclass of Parrot Exception or a subclass of Rakudo's Exception?
Tene rakudo's exception. That might not be the problem, though.
Because directly doing the class manipulation works fine. 03:42
pmichaud I don't understand "directly doing the class manipulation"
Tene class Foo is Exception {}; my $e = Foo.new(); say $e.WHAT;
works fine
pmichaud right.
also, hint: use .PARROT when you want to know what is _really_ happening underneath.
say Exception.PARROT; # "Perl6Exception" 03:43
Tene but when I 'die $e' and then 'say $_.WHAT' ir reports 'Exception'
pmichaud why shouldn't it?
Tene Because I threw a Foo
pmichaud how does it get thrown? 03:44
Tene ... let me make sure of that.
:)
pmichaud checks the code
...set_global?!? 03:45
That's wrong.
purl pmichaud is channeling thoth!
pmichaud $! is a lexical.
Tene pmichaud: 'die' got simplified and gained a multi in my last commit
pmichaud yes, I see that.
and it's using set_global.
Tene It probably shouldn't be.
pmichaud that's what I meant by "That's wrong." :-) 03:46
$! is a lexical.
Tene Yes, it's hitting the right multi and being thrown.
pmichaud ...but why say $_.WHAT instead of $!.WHAT ? 03:47
Tene They should both be getting set to the exception.
Right now I only did $_
Because that's all that was tested in try.t
pmichaud and $_ is being set because it's a parameter on the CATCH block? 03:48
Tene I just added a past::op bind
pmichaud oh. I suspect it should be a parameter.
Tene Probably.
purl Really? Probably? Are you Certain it's not certain? Are you sure it's unsure? I think you need to look harder.
Tene ... heh. I know what the problem was. The problem was something else was throwing an exception. :) 03:49
pmichaud and the $! should come from the fact that the die set $! which is the outer $! of the CATCH block
Tene Hmm. Now I'm back to "No such attribute 'resume'" failues in 'op throw' 03:51
chromatic Is there no 'warn' builtin in Perl 6? PDX.pm is asking.
pmichaud thereis.
there is a 'warn'
I don't know if rakudo implements it yet. 03:52
chromatic We couldn't find it in the spec tests.
pmichaud However, 'warn' is described in S04.
S04: Warnings are produced in Perl 6 by throwing a resumable control
exception to the outermost scope, which by default prints the
warning and resumes the exception by extracting a resume continuation
from the exception, which must be supplied by the warn() function
(or equivalent). 03:53
chromatic Similar to die, but a different severity?
Tene right
pmichaud more that it resumes, while 'die' doesn't have to.
chromatic That sounds reasonably easy to add.
Tene It does.
purl if you say so...
pmichaud now that we have resumable exceptions, yes. :-)
before then, it was a bit tougher. 03:54
chromatic We can start by copying the behavior of die, I assume.
pmichaud die in Rakudo is also "a cheating die"
i.e., don't try it in Nevada.
Tene is getting "die" closer to spec, though.
chromatic How much cheating is in there now? 03:55
pmichaud I don't know. Not too much.
chromatic Okay. We'll see what we can make.
pmichaud for one, die should be throwing a Rakudo exception (Perl6Exception) instead of a Parrot Exception
(currently it's throwing a Parrot one.) 03:56
chromatic We can fix that.
Tene rakudo: do { say 'a'; die 'foo'; say 'b'; CATCH { $_<resume>() } };
polyglotbot OUTPUT[a␤b␤]
03:56 Auzon joined
pmichaud the exception stuff that is currently in Failure.pir probably needs to move into Exception.pir 03:56
and then Failure can focus strictly on Failure stuff.
(and become a Role)
Tene pmichaud: can we deprecate integer exception types this release? I'd like to replace them with a proper hierarchy of exception classes soon. 03:57
pmichaud Tene: you mean in Parrot? Not my call. 03:58
Tene ... right.
pmichaud and one of the design questions is whether you want a proper hierarchy of exception classes in Parrot (which Rakudo will then have to ignore, map, or mimic), or just in the HLLs (each of which probably has preconceived notions of its exception hierarchy) 03:59
Tene So I need to harass allison about this. 04:00
pmichaud in some sense Parrot is better off just defining a base Exception class and leaving any typing up to the HLLs
Tene Well, then there are all of the integer exception types. 04:01
pmichaud that said, the ExceptionHandler PMC should be able to discriminate by class as-well-as exception type.
Tene Okay.
pmichaud or, there should be a way for each Exception subclass to get a corresponding (unique) exception type that it can use.
and then we stick with the integer types.
leto hello from PDX.pm 04:02
pmichaud or, subclasses of Exception have an attribute that indicates what integer Parrot exception type they map to.
leto rakudo: [**] 2 .. 4; 04:03
polyglotbot RESULT[4096]
pmichaud (or type(s))
04:03 ewilhelm joined 04:04 notbenh joined
pmichaud indeed, since every Exception already has a slot for its integer exception type, the constructors for Exception should populate that slot with the correct type (and do this even if it's for a subclass) 04:04
s/constructors/hll constructors/ 04:05
*that* could be done without deprecations.
Tene nods.
pmichaud it still would be nice to have a way to say "I need a unique/unreserved exception type number"
PCT could potentially provide that -- just start handing out numbers starting at a suitably high number. 04:06
chromatic Hm, seems like we need a top-level exception handler for warn. 04:08
Unless we cheat for now.
pmichaud well, if we want to catch warnings, we need the top-level handler
or, to be really clever, we need a way to quickly see if there are any suitable exception handlers already in effect 04:09
nopaste "tene" at 166.70.38.237 pasted "Example of rakudo's Exception class not working with 'die'" (12 lines) at nopaste.snit.ch/14896
pmichaud if no, then we just print to stderr and return, without bothering to create/throw the exception
basically a "if I threwan exception of type XYZ, would it get caught?" 04:10
Tene nods.
nopaste "chromatic" at 75.150.46.245 pasted "Very Basic Warn Implementation" (37 lines) at nopaste.snit.ch/14897
chromatic Hm, where would I look for a top-level EH? 04:11
pmichaud interactive mode has one, but the others do not.
Tene iirc, Parrot itself was going to have an auto-resume-on-non-fatal behavior.
pmichaud even with auto-resume, we'd need to catch the exception and display the message, unless Parrot does that too.
Tene Right.
chromatic Hm, my patch works in interactive mode. 04:12
pmichaud chromatic: for building the message, much faster is: $S0 = join('', list)
Tene catch, print to stderr, resume
chromatic That's copy and paste for die.
But I can fix die too.
Tene chromatic: you could add it in TOP in actions.pm
chromatic: it's fixed in trunk
you need to update
chromatic Oh yeah.
pmichaud ...add it to TOP?
nononono 04:13
it has to be at the top level of execution
Tene That's not top-level?
pmichaud for not for a module, it isn't.
e.g., "use Test" also calls the TOP rule
Tene ... oh, right.
So in perl6.pir? 04:14
pmichaud yes, but it'll be an issue in interactive mode.
Tene nods.
pmichaud we'll have to figure out the appropriate API for HLLCompiler there. 04:15
maybe a "handlers" attribute on HLLCompiler
chromatic My patch just dumps the message to STDERR. That's a step.
(No tests in the specs though, for some reason.) 04:16
pmichaud sure, that works.
mugwump wow, the parrot in unstable is *old*
dalek r33790 | chromatic++ | trunk:
: [Rakudo] Fixed a typo in an exception message.
diff: www.parrotvm.org/svn/parrot/revision?rev=33790
pmichaud at least, it works until someone wants to CATCH the warning :-)
or suppress it inside of a try { ... } statement.
chromatic We'll need to have a handler somewhere to make that work though. 04:17
Which we don't... yet.
pmichaud right
chromatic I can walk PDX.pm through adding this now though, as an explanation. 04:18
Perhaps we can figure out how to write tests too.
pmichaud excellent.
chromatic++ PDX.pm++
mugwump oh hey, look at that ... pkg-parrot 04:19
pmichaud actually, for an outer handler, the simplest thing to do might be to have an HLLCompiler attribute that is the array of handlers to use, and HLLCompiler installs an interactive handler only if that attribute is unset.
mugwump 0.7.0 seems a bit more recent than 0.4.13
pmichaud if the attribute is set, it's up to the HLLCompiler to provide the interactive handler as well. 04:20
or, even better
exception handling at the top level is a method on the HLLCompiler object
specific HLLCompilers can override that method 04:21
I would like to see the message built using a built-in function for 'join', though. These days when writing PIR versions of builtins I try to think of what it would look like if written in Perl 6 04:24
Tene pmichaud: I used the .join() method
04:26 rhr joined
chromatic We're asking about > '' in if message > '' goto have_message. 04:27
We changed it to != from > 04:28
One S04 TODO passed, probably due to that multi die checkin. 04:33
Tene chromatic: due to implementing exception handlers, actually
chromatic Okay, we just saw that.
Tene pmichaud: can I just s/set_global/.lex/ $! there? 04:36
pmichaud no.
you have to set the $! of your caller.
because $! are statically scoped, not dynamically scoped. 04:37
(i.e., the $! would disappear as soon as you leave die.)
Tene ah
pmichaud the perhaps better alternative would be for the handler block to set $! instead of making 'die' do it.
although I guess 'die' has to do it anyway, so never mind. 04:38
pmichaud is tired -- it's been a long day + night.
pmichaud twitters the availability of CATCH blocks.
04:38 gaurav joined
Tene Is this enough for the milestone for the release, do you think? 04:39
chromatic t/spec/S04-statements/try test 13.
Tene chromatic: yeah, it should be un-todo'd
pmichaud Tene: absolutely.
You've done a fantastic job.
chromatic Okay, we're checking in the new version of the test. 04:40
pmichaud excellent.
Tene chromatic: several more will pass when some class stuff gets worked out. They're more testing classes than exceptions, though.
chromatic How do we unfudge that test file to run through Rakudo on its own now?
pmichaud needs to be added to t/spectest.data, if it's not already there. 04:41
then mark any tests that need to be skipped with #?rakudo skip 'reason for skip'
chromatic We just want to run that one test individually.
We just want to run that one test *file* individually.
Tene chromatic: t/spec/fudgeall will re-fudge
pmichaud make t/spec/S04-statements/try.t 04:42
Tene to generate try.rakudo
pmichaud (automatically re-fudges the test)
Tene Ah. Nice.
pmichaud actually, it re-runs the test.
perhaps we should have make t/spec/S04-statements/try.rakudo simply generate the .rakudo file :-)
chromatic Yes. Okay, leto is committing.
Tene pmichaud: so, any other exception tasks for me that you can remember?
pmichaud Tene: no, this is far more than I was expecting. 04:43
(which means my expectation levels will now rise accordingly :-)
Tene good 04:46
Are you able to explain right now why you needed this before your loops refactor?
pmichaud the loops refactor depends on our ability to be able to properly handle NEXT/LAST/REDO blocks in p6 04:47
(or their equivalents in other hlls)
so I needed to know how that was going to look at the PCT level
s/PCT/PAST/
figuring out the PAST::Control block was a breakthrough for that 04:48
s/a/the/
(and its relation to PAST::Stmts/PAST::Block) 04:49
Tene also, please note that CONTROL blocks are still impossible until we get a prelude or translate the generated pir into integer types.
Okay, so your plan is to generate PAST::Control nodes and then pass them off to be translated to post the same way. 04:51
Seems like that's more work than just generating post directly.
pmichaud ...generate post directly? From actions.pm?
Tene ... you're doing the loops stuff in actions.pm?
pmichaud no. 04:52
let's back up.
Tene ... oh, right, I get it now.
pmichaud in PAST, we need the ability to allow HLL's to specify custom operations to be performed in response to next/last/redo exceptions in loops
but I can't write the loop code until I know how HLLs will specify those custom operations and be able to intercept the exceptions 04:53
Tene nods.
Right. I understand again now.
pmichaud :-)
dalek r33791 | chromatic++ | trunk: 04:54
: [Rakudo] PDX.pm added a basic implementation of warn to Rakudo. This will need
: revision when HLLCompiler and/or Rakudo supports a top-level exception handler.
pmichaud the loop code can now generate the exceptions, and we just make sure that any HLL exceptions are "inside" of the loop code. Actually, that happens naturally, the way we have it set up now.
dalek diff: www.parrotvm.org/svn/parrot/revision?rev=33791
pmichaud arggh
I mistyped again -- too tired
PerlJam pm: get some sleep :)
pmichaud the loop code can now generate the exception handlers, very similar to what you did in 'for' already. 04:55
those handlers are "outside" of the loop, which means that any custom handlers on the body will take priority
which is exactly what we want :-)
Tene :)
pmichaud since those handlers don't typically handle the exception, but simply identify some extra steps to be performed as part of the next/last/redo operation, they'll rethrow the exception and the loop's handlers will take care of doing-the-right-thing 04:56
we might be able to optimize a bit to avoid the extra throw, but that's the basic model. 04:57
this *also* means that loop labels will be easier to deal with, since the top-level handler will presumably know its own label.
(top-level _loop_ handler, that is) 04:58
Tene also TODO, btw, is figuring out how Perl 6 sets the exception as handled and responds based on that.
I should #perl6 that.
pmichaud I'm going to specify it now. 04:59
$!.handled = 0;
Tene I mean, automatically.
pmichaud ...automatically?
I'm confused. 05:00
or do you mean if someone does when ExceptionType { ... } # marks exception as handled
Tene right 05:04
exactly
pmichaud I didn't see anything that indicates that they're "automatically" marked as handled
but assuming there is, I presume the smart match would take care of it.
i.e., TypeName.ACCEPTS($x) marks an Exception $x as "handled" 05:05
Tene You know, I think I could do some checking on the contexts of the exception handler and the exception to prevent an EH from catchign exceptions thrown from it. 05:06
pmichaud you mean to prevent a handler from catching the exception it rethrows?
Tene That too. 05:07
Wait
that never, ever happens now
pmichaud you mean to prevent a handler from catching an exception it throws?
Tene exceptions keep a list of handlers from the first itme they were thrown and it's reused on rethrow
Yes.
pmichaud sounds a little tricky but could be do-able. 05:08
Tene Oh, and I also need to add handled_types_except to EH.pmc
I can do that one now.
pmichaud that would be good.
mugwump EH? 05:09
sorry, couldn't resis
t
Tene Oh, and I think someone here wanted me to blog about something? 05:14
pmichaud we all do. :-)
dalek r33792 | tene++ | trunk: 05:15
: [ExceptionHandler]: Add handle_types_except()
diff: www.parrotvm.org/svn/parrot/revision?rev=33792
pmichaud blog posts identifying specific rakudo/parrot feature progress are some of our best p.r.
Tene ... I probably should have tested that first.
pmichaud if only because "working code trumps X", especially when there's a long history of X == "failed promises" 05:16
a blog posting coming from you at this point would have extra weight, because it will publicly appear as though the size of the development team is growing 05:17
especially for a feature as intricate as exception handling 05:18
Tene While you're talking about PR, thoughts on whether I should post just visible usage, also the PAST used for HLLs, or also implementation? 05:22
pmichaud whatever you think is most interesting to post about
Tene ... yay, t/pmc/exceptionhandler.t fails! I broke it!
segfault!
purl well don't DO that, then.
Tene Hmm. That test was already failing, but TODO. 05:31
05:31 Hadi joined
pmichaud it's okay to make it a 'skip', then. 05:33
Tene it's an "exceptionhandler subclass" test 05:36
pmichaud if those aren't working in Rakudo yet, it's okay to change it to a 'skip'
Tene Yeah, it's segfaulting just from adding an additional ATTR 05:38
pmichaud potentially that's my earlier comment about "subclasses of Exception PMC not working" 05:39
er, "potentially not working"
in my experience, this kind of stuff happens a fair bit in Parrot still :-( 05:40
dalek r33793 | tene++ | trunk: 05:47
: [t]: SKIP a segfaulting test for exceptionhandler subclasses, which
: don't work.
diff: www.parrotvm.org/svn/parrot/revision?rev=33793
pmichaud okay, I need sleep 05:55
will be back on tomorrow morning (briefly)
Tene++ # fantastic work today 05:56
afk # sleep
Tene Sleep well.
06:02 Hadi joined 06:03 Hadi left 06:06 TiMBuS joined 06:09 notbenh joined 06:19 allison joined
dalek r33794 | moritz++ | trunk: 06:26
: [cage] svn props on tools/dev/vgp
diff: www.parrotvm.org/svn/parrot/revision?rev=33794
06:46 chromatic joined 07:01 gaurav joined
Tene blogs.gurulabs.com/stephen/2008/12/...-hlls.html 07:06
07:12 mberends joined 07:13 uniejo joined
GeJ Tene++ 07:17
07:41 gmansi joined 07:57 iblechbot joined 08:12 Theory joined 08:28 gmansi joined 08:34 riffraff joined
cotto msg chromatic It looks like the email request to Coverity worked. If you were going to do something, it's no longer necessary. 08:51
purl Message for chromatic stored.
08:54 leto joined
chromatic I was going to wait to see if that worked. 08:58
I'll make sure that particle and tewk do the same.
08:58 ffwonko joined 09:03 gmansi joined 09:07 Hadi joined, Hadi left 09:14 UltraDM joined 09:20 Alias_ joined
Alias_ Oopsie 09:20
I just discovered that in the distro I burned to a CD and gave to larry, it didn't include the Perl 6 part :(
I guess I'll need to patch the CD :)
09:25 Ademan joined
dalek r33795 | fperrad++ | trunk: 09:29
: [unlambda] global
: - update with get/set_global
diff: www.parrotvm.org/svn/parrot/revision?rev=33795
r33796 | fperrad++ | trunk: 09:31
: [Lisp] pdd22io
: - replace deprecated mode/flag open
diff: www.parrotvm.org/svn/parrot/revision?rev=33796
r33797 | fperrad++ | trunk: 09:32
: [Ook] pdd22io
: - replace deprecated mode/flag open
diff: www.parrotvm.org/svn/parrot/revision?rev=33797
jonathan@leto.net | Parrot: 09:36
link: www.perlfoundation.org/parrot/index.cgi?parrot
10:05 alvar joined 10:06 tomyan joined 10:07 gaurav joined 10:14 AndyA joined 10:16 gmansi joined 10:28 elmex joined 10:36 ffwonko joined 10:42 ruoso joined 10:44 gmansi joined 11:11 gmansi joined 11:19 jq joined 11:28 kj joined 11:31 masak joined 11:46 gmansi joined
jonathan hi all 11:56
moritz OH HAI 11:58
12:16 gmansi joined 12:18 masak joined 12:19 tomyan joined 12:33 ffwonko joined 12:34 Lorn joined 12:36 gmansi joined 12:50 jq joined 13:11 ffwonko joined
pmichaud good morning 13:23
masak \\o
13:24 ffwonko joined 13:28 gmansi joined 13:36 jq- joined
dalek r33798 | kjs++ | trunk: 13:40
: [pdd19] removed deprecated and removed stuff.
diff: www.parrotvm.org/svn/parrot/revision?rev=33798
r33799 | kjs++ | trunk: 13:44
: [pdd19] add bits on implementation
diff: www.parrotvm.org/svn/parrot/revision?rev=33799
14:04 gmansi joined 14:09 ffwonko joined 14:10 iblechbot joined 14:24 gmansi joined
Coke PDX? 14:29
purl hmmm... PDX is Portland International Airport (www.pdx.com) or the local's name for Portland, Oregon (because Portland is too long to type) or Silicon DMZ - right between Microsoft and Sun/Netscape. or aka P-town or a great name for a perl module or (: pdx people )
dalek r33800 | pmichaud++ | trunk: 14:30
: [rakudo]: spectest-progress.csv update: 235 files, 4916 passing tests
diff: www.parrotvm.org/svn/parrot/revision?rev=33800
14:35 jhorwitz joined
nopaste "pmichaud" at 12.146.222.130 pasted "spectest progress, by synopsis" (17 lines) at nopaste.snit.ch/14900 14:37
14:49 gmansi joined
Coke pmichaud: what is "regr" vs "test" ? 15:03
15:03 gryphon joined 15:07 jimmy joined 15:09 lathos joined 15:14 AndyA joined
tewk pmichaud: I fixed it so .const lookup is by subid only but pct doesn't seem to be generating correct code for that. 15:22
My latest subid patch forces a GC error out in the open. It looks a lot like coke's TT#10, but the pir is very short. 15:29
nopaste "tewk" at 155.97.237.62 pasted "subid.diff run t/pmc/key.t for GC failure" (2834 lines) at nopaste.snit.ch/14901 15:30
15:40 Andy joined
Tene morning everyone 15:41
Coke tewk: c says #10 ain't gc. fyi. 15:42
Coke prepares his "don't use partcl with tcl 0.8.2 blog entry."
Coke moves the quotes so that line makes sense.
tewk it passes with -G 15:43
it looks like a classic somthing not getting marked. to me.
moritz Coke: if you do s/\\btcl/parrot/, it makes even more sense :-)
Coke cries.
tewk does c know hat the problem is?
pmichaud "regr" is number of tests in the spectest suite 15:44
Coke tewk: check the ticket.
tewk if not I might have just generated a much much shorter test case.
pmichaud sorry
"spec" is the number of tests in the spectest suite
Coke moritz: this is why I have to /prepare/ the blog entry.
jonathan pmichaud: How is the parameters refactoring going?
pmichaud "regr" is the number of tests in the regression suite (the subset that we choose to run against Rakudo with "spectest+regression")
jonathan: looks like tomorrow or this weekend
I'm still out of town on my other job trip. 15:45
but it's next on my list of big tasks.
tewk: You're correct, PCT doesn't use subid correctly for that yet (because subid wasn't working completely the last time I looked at it -- e.g., with :multi. I haven't had a chance to look again since that was fixed.) 15:47
tewk pmichaud: ok
jonathan pmichaud: Aha, OK. 15:48
pmichaud: Am working on project plan for the Hague Grant.
tewk well I made it backwards compat and have the fix for subid test #25 ready to check in.
jonathan pmichaud: Pondering if I should offer to take on doing some initial work on S14.
pmichaud jonathan: short answer. "yes" 15:49
jonathan OK
I'll catch TimToady when I next see him about on #perl6
dalek r33801 | fperrad++ | trunk: 15:51
: [Lua] exception
: - fix infinite loop in exception handler
: Don't use die (even indirectly) in an handler, but rethrow the exception.
diff: www.parrotvm.org/svn/parrot/revision?rev=33801
16:07 bphillips joined
particle jonathan: what do i need to do to post to rakudo.org? 16:12
jonathan particle: Do you have an account there? 16:13
particle yes, but it's been so long
jonathan If not, the first step is to get one...
ah, ok 16:14
www.rakudo.org/cgi-bin/mt/mt.cgi
Go there and log in, if you remember your account info.
If you're lucky, you won't get 500 error. ;-)
And then just click Write Entry in the top left.
pmichaud jonathan: part of the reason we moved the synopses into pugs svn was to enable more people to write/draft them. 16:15
jonathan pmichaud: Sure, and that's a good thing. I just don't want to step on anyone's toes while doing so. 16:16
And S14 has Larry's name next to it.
particle spreadsheets.google.com/pub?key=p_p...tput=image
pmichaud many of the names were put there because we wanted a name in the slot but didn't have anyone else stepping up to say "yes, me"
and this was just something we threw together in a day 16:17
jonathan Ah, OK.
I probably wasn't there at the time to say "yes me" ;-)
pmichaud Larry may have a strong desire to do the work on S14, but my guess is that he'd be very happy if others start drafts that he can then react to or work with
editing is typically far easier than creation
jonathan I think part of what makes me a little more nervous is that I suspect S14 wants to have some stuff in other synopses *moved* to it. 16:19
OTOH, I can go through it, copying them and putting in "this is from X in SNN"
And if it's approved we should move it there, go back and clear up later.
OTTH, we have svn revert... ;-) 16:20
pmichaud jonathan: I think (but don't remember for sure) that when the new S14 was discussed it was in the context of "a lot of other pieces need to be moved to this" 16:21
so, short answer, I think you're in the right ballpark
jonathan Aha, good. 16:22
Question - what's the status of doing the prelude in Perl 6. 16:23
16:24 Theory joined
jonathan As in, what are we blocking on, what's the expected timeline for dong it? 16:24
pmichaud (in conversation... one moment) 16:26
expected timeline is "very soon" 16:32
I'd estimate a week or so
jonathan Ah, OK, good. 16:33
pmichaud blocker is simply that I need to get the source structure in place for handling it well
that was partially why I needed to refactor List this weekend, and why q:PIR went into the implementation
jonathan OK. So scribbling an assumption into my project plan that by late January this will be done is safe.
pmichaud yes, very safe.
jonathan Excellent.
pmichaud it's one of my grant milestones for January as well.
jonathan Ah, good. 16:34
pmichaud (my grant explicitly lists "prelude in P6" as a milestone.)
jonathan Yes, I remember. :-)
I'm trying to set quite specific goals for what to have done each month in mine.
s/mine/my project plan/ 16:35
dalek r33802 | fperrad++ | trunk: 16:44
: [Lua] pdd22io
: - more FileHandle
: - refactor exception handling
diff: www.parrotvm.org/svn/parrot/revision?rev=33802
16:45 andrew_ joined
Tene pmichaud: anything specific you want me to work on, or should I just do the PDD24 review? 16:48
pmichaud pdd24 would be excellent 16:51
that's very important for 1.0
and since it's fresh, now is probably the best time to do it
oh, sorry, I was thinking pdd23
(pdd23 exceptions, pdd24 events) 16:52
did you mean pdd24?
Tene Events. 16:55
Does exceptions pdd need review too?
jonathan It might be worth giving it a look over while it's in your head, to spot anything it says that doesn't match what you know is implemented. 16:57
pmichaud exceptions pdd needs big time review, imho 16:58
there are pieces of exceptions that don't match anything in the implementation
for example "exception;death" .... what exactly is that?
17:02 riffraff joined
riffraff hi 17:02
is it normal that i see html in the urls for "next page" on RT ? 17:04
from the parrot first ticket page the url for "next page" is Simple.html?Page=2&#38;Rows=50&#38;Format=%0A%20%20%20&#39;%3Cb%3E%3Ca%20href%3D%22%2Frt3%2FTicket%2FDisplay.html%3Fid%3D__id__%22%3E__id__%3C%2Fa%3E%3C%2Fb%3E%2FTITLE%3A%23&#39;%2C%0A%20%20%20&#39;%3Cb%3E%3Ca%20href%3D%22%2Frt3%2FTicket%2FDisplay.html%3Fid%3D__id__%22%3E__Subject__%3C%2Fa%3E%3C%2Fb%3E%2FTITLE%3ASubject&#39;%2C%0A%20%20%20Status%2C%0A%20%20%20QueueName%2 17:06
C%20%0A%20%20%20OwnerName%2C%20%0A%20%20%20Priority%2C%20%0A%20%20%20&#39;__NEWLINE__&#39;%2C%0A%20%20%20&#39;&#39;%2C%20%0A%20%20%20&#39;%3Csmall%3E__Requestors__%3C%2Fsmall%3E&#39;%2C%0A%20%20%20&#39;%3Csmall%3E__CreatedRelative__%3C%2Fsmall%3E&#39;%2C%0A%20%20%20&#39;%3Csmall%3E__ToldRelative__%3C%2Fsmall%3E&#39;%2C%0A%20%20%20&#39;%3Csmall%3E__LastUpdatedRelative__%3C%2Fsmall%3E&#39;%2C%0A%20%20%20&#39;%3Csmall%3E__TimeLeft__%
3C%2Fsmall%3E&#39;&#38;Query=Queue%20%3D%20&#39;parrot&#39;%20AND%20&#40;Status%20%3D%20&#39;open&#39;%20OR%20Status%20%3D%20&#39;new&#39;%20OR%20Status%20%3D%20&#39;stalled&#39;&#41;&#38;Order=ASC&#38;OrderBy=id
I do think it's not usual 17:07
kj riffraff: please use nopaste to paste stuff, instead of in the channel
it clutters up the conversations :-( 17:08
jonathan I think it's unusual...
riffraff err, sorry it did not seem _this_ long
17:14 hercynium joined
jhorwitz does rakudo's "use" import subroutines marked with "is export" yet? 17:23
andrew_ yeah, RT links are a little creepy with HTML 17:24
particle jhorwitz: no 17:30
jhorwitz gr, ok
i shall work around it
unfortunately what i'm working on is also a workaround.....
particle jhorwitz: do you want me on the phone with candace? 17:31
jhorwitz nah, i think we'll be fine 17:34
17:34 tomyan left
jonathan pmichaud: ping 17:36
17:45 riffraff joined
pmichaud pong 17:47
jonathan: pong 17:48
jonathan pmichaud: I may have found a lexicals bug, can you sanity check... 17:51
sub foo($x) { return { x => sub { say $x } } }
If I do this, what should the output of the following be:
my $a = foo(1); my $b = foo(2); $a<x>(); $b<x>();
17:56 Whiteknight joined
pmichaud initially I would think "1" and "2" 18:01
18:01 geof joined
pmichaud however, there's probably a problem that the sub isn't being cloned properly on return 18:01
jonathan Yes, we get 2 and 2 now.
I suspect lack of cloning also.
Well, shouldn't we clone whenever we take a reference to a sub (like there in the hash)? 18:02
pmichaud yes, but it's not always obvious to know when that happens
in this case the Pair is probably binding to the sub
jonathan Yes, I was thinking exactly the same.
pmichaud so, the question is, does x => $a keep a reference of $a, or a copy? 18:03
I guess it has to be a copy
so we need to fix the Pair constructor so that it assigns to its $!value attribute instead of simply setting it.
(and that may solve the 'clone of sub' issue) 18:04
jonathan > sub foo($x) { return sub { say $x } }
> my $a = foo(1); my $b = foo(2); $a(); $b();
That example gives 1 and 2.
pmichaud ohhhhhh
it'll get fixed when I finish Associative
jonathan So in that case it's working.
Ah, great.
pmichaud because hash is probably still doing binding.
or sometihng like that.
jonathan Aha.
Win.
pmichaud it's not using infix:=
jonathan OK.
pmichaud or it's the hash constructor that isn't working (same issue) 18:05
anyway, it'll likely be fixed when associative lands (next day or two)
jonathan Ouch on this one..
pmichaud and (thankfully) it doesn't look like a lexicals implementation bug yet
jonathan > sub foo($x) { return x => sub { say $x } }
> my $a = foo(1); my $b = foo(2); $a(); $b();
invoke() not implemented in class 'ResizablePMCArray'
Oh, I suspected it was a missing clone rather than the implementation was broken overall.
I just wanted to make sure my intuition on what should happen was right. 18:06
pmichaud it is.
jonathan OK
pmichaud let's get Associative, Hash, and Pair running again and revisit this. It's an excellent test case, though, so let's get it added to spectest
jonathan Good point. Know the right file off hand, or I can go dig...
I've been doing some design work on parametric roles. 18:08
PerlJam jonathan: how is that second one supposed to work?
jonathan PerlJam: I was expecting it to return a pair.
Oh, hmm.
PerlJam foo() returns a Pair which is assigned to $a, but what does $a() mean?
jonathan oh
I meant to do my $a = foo(1); my $b = foo(2); $a<x>(); $b<x>();
Just went to the wrong line. 18:09
Either way it's still broken.
invoke() not implemented in class 'Undef'
Good point though. :-)
dalek r33803 | particle++ | trunk: 18:19
: [library] fix Config/JSON.pir to use 'readall' instead of deprecated 'slurp'
diff: www.parrotvm.org/svn/parrot/revision?rev=33803
Whiteknight particle++ 18:23
18:35 barney joined 18:39 chromatic joined 18:41 tewk_ joined 18:42 allison joined
jhorwitz actually found he needs a currying subroutine... 18:42
jonathan jhorwitz: Ah, we ain't done .assuming just yet. 18:45
jhorwitz yes, i found that out for myself. :) 18:46
i'm just amazed i actually needed it for something
jonathan :-)
jhorwitz and rakudo (when finished) will give it to me
jonathan How badly do you need it? If so, file a ticket. Maybe one of the implementation fairies will make it happen.
Tene That should be a pretty easy method to write.
jhorwitz i can very easily work around it 18:47
Tene jonathan: do you know if that method goes on Block, Routine, Sub, etc?
Seems like Routine
jonathan Routine 18:48
But we ain't re-blessing subs just yet.
So stick it in Code.pir for now, if you wanna write it.
Tene Hmm. Easier to write in Perl 6 than PIR. 18:49
--target=pir FTW
18:51 ffwonko joined
Tene Hmm. The P6 implementation doesn't work. 18:54
related to that clone thing discussed earlier, maybe.
... nevermind, I just can't type. 18:55
19:03 allison joined
nopaste "tene" at 67.137.148.207 pasted ".assuming example for jhorwitz" (6 lines) at nopaste.snit.ch/14906 19:14
Tene jhorwitz: can you confirm that that Perl 6 example is correct?
jhorwitz Tene: that looks correct for the positional argument case. 19:15
Tene adding named now
jhorwitz: nopaste an example with named params? 19:16
nm 19:18
Hmm. 19:19
nopaste "jhorwitz" at 96.245.16.64 pasted "Tene: assuming w/ named args" (5 lines) at nopaste.snit.ch/14907 19:23
jhorwitz in case you didn't find it already...
moritz damn, the tests in blocks/currying.t won't work, because rakudo doesn't allow positional args to be used as named 19:27
Tene I have positional working fine easily. Named is breaking for me.
I'll finish after this lecture.
jhorwitz gathers karma for distribution 19:28
moritz Tene: in general, if you plan to implement a feature, you can ask me one or two days before, and I'll try to come up with some easy tests 19:30
Tene moritz: this wasn't planned. :)
moritz Tene: ;-) 19:31
jonathan moritz: In that case, see my grant plan for three months of tests to write. <grin>
moritz anyway, this is a general offer... if people want tests for a particular subject, they can always try to bother me. It won't always work, but it will work sometimes
chromatic moritz, we couldn't find any tests for warn() last night. 19:32
dalek r33804 | tene++ | trunk:
: [rakudo]: Add .assuming on Code objects for currying.
diff: www.parrotvm.org/svn/parrot/revision?rev=33804
jonathan moritz: Seriously, any you can contribute on the areas I'll be working on will be most welcome. :-)
moritz chromatic: that one is hard, because it's pretty much impossible to test for warnings from withing rakudo right now
chromatic: which is also one of the reasons for the many unitialized warnings that we used to see in the spectests 19:33
purl okay, moritz.
moritz purl: forget which
purl moritz: I forgot which
chromatic purl should probably ignore definitions which start with someone's name followed by : or , 19:34
purl chromatic: huh?
Whiteknight purl, he said you're retarded
purl Whiteknight: sorry...
chromatic moritz, that makes sense, but there weren't even any spectest tests.
moritz chromatic: and the second problem is that there's no simple way yet do the equivalent of qx/.../ in rakudo, so I can't launch external another interpreter to test it :( 19:35
chromatic: if you have any ideas how to test it anyway, they'd be most welcome
Tene: I don't find any mention of currying with positional args in the specs... what does it do? fill them from the front? 19:36
chromatic Redirecting $*ERR perhaps/ 19:38
moritz NYI
tewk_ chromatic: What do you thing TT#10 is? Coke said you didn't think it was a GC problem 19:40
chromatic moritz, the tests don't have to work in Rakudo right now. They have to *exist* somewhere sometime. That's all I want for now.
moritz chromatic: got a point there.
chromatic tewk_, I think the problem is that something does PMC_sub(sub) on a ParrotObject PMC which subclasses Sub. 19:41
Because ParrotObject and Sub aren't isomorphic at the PMC_data(pmc) level, POW! 19:42
tewk_ so why did it work previous to me changing the PMC_sub(sub) layout. 19:43
chromatic Luck?
purl Luck is probably being ready.
Whiteknight purl forget Luck
purl Whiteknight: I forgot luck
tewk_ Well I changed it again and I'm getting a similar error in t/pmc/key.t now.
chromatic If you look at Coke's backtrace, something's getting passed around which isn't a valid pointer. 19:45
I don't remember the exact details, but in one case, he expected a STRING * which had a value of 0x44 or something.
tewk_ chromatic: Right.
chromatic An easy test is subclassing a Sub in PIR then trying to add it to a NameSpace manually, or something similar. 19:46
tewk_ but running with -G caused coke's the crash to go away. The same is true with my t/pmc/key.t failure now, add a -G and it goes away.
chromatic: good idea, I'll write the test tonight.
chromatic That doesn't necessarily make it a GC error.
Remember that we don't sweep pools with -G, so we never re-use memory for collectable garbage. 19:47
Our memory layout moves around, which can hide bugs like standard C memory errors without GC.
If the allocated memory for PMC member data with -G happens to be all zeroed, it'll look like we don't have a valid pointer there (which we check anyway) and we won't get a crash. 19:48
tewk_ Ok makes sense. Well, I have a shorter pir example now. 19:50
I'll see if I can shorten it still.
t/pmc/key.t has references to tcl, looks like it may have been distilled from a tcl bug 19:51
$P1 = subclass $P0, 'TclProc' 19:52
Ok I think I finally get what the bug is. 19:53
19:56 Auzon joined
dalek r33805 | bernhard++ | trunk: 19:57
: [Pipp] Use FileHandle class for PHP streams, still some failures
diff: www.parrotvm.org/svn/parrot/revision?rev=33805
r33806 | tewk++ | trunk: 20:02
: [subid] passes test 25 now
diff: www.parrotvm.org/svn/parrot/revision?rev=33806
20:06 jhorwitz_ joined
tewk_ PMC_sub -> PCM_struct_val, but the same arguement applies 20:08
chromatic We really ought to make all of that data PMC attributes for Sub, and use those macros and accessors. 20:10
tewk_ I need to go look at the code again, a lot has changed since I last read it. 20:11
I'm not sure wher ATTRs get stored. There is PMC_data, PMC_EXT PMC_struct_val, it needs some cleaning and unification work
chromatic ATTRs get stored in PMC_data, but we have accessor macros which respect subclasses. 20:14
tewk_ I'll have to go look at those macros, where are they? 20:15
20:15 davidfetter joined
Tene jhorwitz: can you confirm that that works for you? 20:16
tewk_ so are you saying turn pmc_sub fields into ATTRS? 20:17
chromatic Yes.
tewk_ got it
chromatic Look at src/pmc/class.c and src/pmc/pmc_class.h for the generated code. 20:18
davidfetter re
jhorwitz Tene: apparently i got disconnected. can you repeat? 20:19
tewk_ irclog?
purl i think irclog is irclog.perlgeek.de/parrot/today or see also: infrared clogs
Tene jhorwitz: my .assuming commit 20:20
jhorwitz Tene: gotcha. will take a look in a bit
20:36 Hadi joined
dalek r33807 | bernhard++ | trunk: 20:36
: Unbreak some tests by (not) handling exceptions.
: Set some tests to TODO.
diff: www.parrotvm.org/svn/parrot/revision?rev=33807
20:50 Hadi left
particle why didn't my rakudo.org post make it into the feed? 20:54
moritz particle: none of todays posts are there yet 20:57
dalek r33808 | moritz++ | trunk:
: [rakudo] add a test file for list assignment to spectest.data
diff: www.parrotvm.org/svn/parrot/revision?rev=33808
particle moritz: the currying post is there, that happened today
cotto There isn't any way that sizeof (opcode_t) could be 0, is there?
particle unless sizeof (int) is zero.... 20:58
cotto I didn't think so.
Tene That sounds like a fun architecture to port to.
particle gives a new meaning to "pointer arithmetic" 20:59
PerlJam Is there a list of architectures parrot has been compiled on somewhere? 21:00
cotto src/packfile/pf_items.c PF_size_integer, for the curious
PerlJam, PLATFORMS 21:01
PerlJam doh! thanks.
21:05 allison joined
moritz pmichaud: is there any reason not to have t/spec/S16-filehandles/io_in_while_loops.t in t/spectest.data? it all passes, but ISTR that you removed an IO test from spectest.data at some point... 21:07
pmichaud: speaking of that, I would be nice to have a list of test files that we regress on as comments in t/spectest.data, together with reason or symptoms 21:08
particle moritz: i think we regressed on that one for a while
moritz++ # better than svn log-diving for that info 21:09
moritz particle: so if it now passes again, should I re-include it?
21:09 bacek joined
particle how close to 5000 does it get us? ;) 21:09
moritz some 15 iirc 21:10
particle yes, i think it can be included again
i'll run spectest on windows after your commit
dalek r33809 | moritz++ | trunk: 21:12
: [rakudo] two more files for spectest.data: array slicing, and IO
diff: www.parrotvm.org/svn/parrot/revision?rev=33809
moritz particle: go right ahead ;-)
dalek r33810 | cotto++ | trunk: 21:16
: [packfile] fix CID #160, since sizeof (opcode_t) is not likely to be 0
diff: www.parrotvm.org/svn/parrot/revision?rev=33810
jonathan moritz: I did some IO fixes. 21:19
moritz jonathan: ok, so basically "everything that passes is ok to include"?
jonathan And applied some from bacek++. So it's quite possible that I fixed whatever broke that test.
I don't see why not.
moritz ok 21:20
jonathan How many passing are we at now?
moritz (there are a few test files that I don't include intentionally, because they don't reflect the current spec)
jonathan: dunno, but I'll give you another update before I go to bed ;-)
jonathan If they don't do that, I'm not sure if they are good to have in t/spec at all.
moritz jonathan: I know. But it's not right to downright delete them either 21:21
jonathan Oh, sure. But there's probably a first way.
"spectest purgatory"
erm 21:22
I meant third way. :-)
moritz skip_all('test file needs cleanup');
anyway, I noticed that these days working with rakudo + test suite is *so* much easier 21:23
particle jonathan: 4914 iirc
moritz back in the days, I had to re-write tests not to use list assignment, or not to use explicit return, or whatever...
davidfetter anybody know about the microsoft/cpan thing?
in terms of people at msft i can contact... 21:24
particle davidfetter: pester alias
moritz davidfetter: Alias does, he usually hangs out on #p5p
davidfetter particle, thanks :)
is that on this network?
moritz davidfetter: aye
(but he's not there atm)
davidfetter i see
davidfetter checks what time it is in SYD 21:25
kinda early friday morning, i see
dalek r33811 | moritz++ | trunk:
: [rakudo] add a test for predictive parsing to spectest.t
diff: www.parrotvm.org/svn/parrot/revision?rev=33811
particle davidfetter: there's always email...
davidfetter good point
what's alias's?
purl alias's is a function? :/
particle alias? 21:26
purl alias is a crackhead with dreams of world domination, and unfortunately they seem to be working or daddy or obsessed with SMS or Alvin or Zune lover or not a half-ton animal or the dude who broke BinGOs's hot-rod. or using UE and I need to get him over to start using Padre,so I need to implement his favorite features :-) or a Cewebrity
particle adamk@cpan.org should get to him
moritz ali.as/contact.html
davidfetter emails 21:28
thanks :)
dalek r33812 | moritz++ | trunk: 21:36
: [rakudo] tests for passing hashes to subs
diff: www.parrotvm.org/svn/parrot/revision?rev=33812
21:37 contingencyplan joined
Coke chromatic: do year old PLATFORMS results help anyone? 21:38
particle they might help somebody say, "oh, i'd better submit a newer PLATFORMS entry" :) 21:39
chromatic Beyond that, they don't help me. 21:41
PacoLinux tru64-alpha-compaq_c6.5 is supported ? 21:42
dalek r33813 | coke++ | trunk: 21:43
: Remove very old platform reports from 2006.
: If your platform just got removed, run a test against svn-current before the 0.8.2 release. Thanks!
diff: www.parrotvm.org/svn/parrot/revision?rev=33813
Coke supported? no. did it work once? mostly.
I'm pretty sure we'll gladly update our supported list if we have a porter for it. 21:44
PacoLinux I think I can give it a try .. :)
Coke chromatic, particle: I only cut through 2006. If someone wants to delete 2007, I won't cry. 21:45
pmichaud (io_in_while_loops.t) I removed (regressed) it because it was one of the last things holding up the IO branch merge, and it wasn't worth holding things up for that. If it's passing again, it's okay to re-include it.
I agree that in the future when we regress something out of spectest.data, we comment it out instead of eliminate it.
(with a note)
I thought about doing that at the time, but didn't want to blaze a new trail on that just yet.
(i.e., I needed a quick decision without a lot of time for reflection, so I went with the "safe" one.) 21:46
particle www.cyberciti.biz/tips/ignorant-tea...ation.html 21:47
Tene pmichaud: where do you get your 'numbe rof passing tests' data from? 21:48
pmichaud from running the test_summary.pl script in tools/
I'm running it now.
PerlJam particle: that story is really making the rounds. that's the 4th or 5th time I've seen someone mention it. 21:49
nopaste "moritz" at 89.14.193.12 pasted "Current test summary" (15 lines) at nopaste.snit.ch/14913
pmichaud I have an locally updated version I'm using, too, that gives me a few other statistics (needs one or more two updates before ci)
moritz PerlJam: it has more than 1000 upvotes on reddit, that's quite rare 21:50
particle it'd be nice to have the test_summary spit out a csv entry. i'd also like the column order modified to make google charts easier 21:51
*csv entries
PerlJam: it's the first time i've seen it, and it's *funny* 21:52
pmichaud particle: what sort of csv entry?
chromatic This is funnier: freesoftwareforkaren.com/
pmichaud I can modify the column order, too.
PerlJam particle: funny in a sad way, yes.
chromatic Fixing everything in S04 would get us to 5k.
moritz chromatic: fixing the unicode parsing would also do that, I think 21:53
particle pmichaud: if it spit out a csv file, it could easily feed a graph creator to post to the web 21:54
pmichaud particle: I didn't ask for "why", I asked for "what" :-) 21:58
tell me what you want it to look like, I'll make it happen. :-)
particle oh
Synopsis,pass,fail,todo,skip,test,plan 21:59
pmichaud you mean just the test summary at the end, then?
particle yep
i guess it could be per-file, too
pmichaud my locally modified version also outputs a "spec" column (number of tests in that section of spec) -- where should it go? 22:00
particle i really want the summary data
that section of spec?
pmichaud yes
(getting example.)
particle S29-str?
pmichaud S29
nopaste.snit.ch/14900 22:01
particle ah, yes. this is the data i used for my blog post
lemme check my google spreadsheet... 22:02
Synopsis summary\tpass\tfail\ttodo\tskip\ttest\tregr\tspec 22:03
Coke the tcl version of the test runner adds a line to the progress.svn file. =-)
sadly, progress there is far less interesting.
moritz hopes he can break this output by overflowing at least one column
Coke (or frequent!)
pmichaud particle: why that particular ordering of columns?
(out of curiosity) 22:04
and then should I change spectest-progress.csv to match?
do you specifically want "tab" characters there, or can I use commas? 22:05
moritz that would break the other graphing script :(
pmichaud moritz: yes, but we can fix the other graphing script easily enough.
22:05 particle1 joined
particle1 i don't so much care about the order of the last three 22:05
moritz pmichaud: aye
pmichaud right now it's kinda inconsistent anyway, since the "spec" column is at the end but the other totals are at the beginning 22:06
moritz pmichaud: and I have to fix my (local) gnuplot script as well... I guess that's what I get for not comitting my stuff ;-)
particle1 i think commas are easier than tabs 22:07
pmichaud moritz: if it's just you and I then I don't mind changing the order now
particle1 the tabs are a cut&paste artifact
pmichaud otherwise we end up with the "makefile tab" problem.
moritz pmichaud: sure, go ahead
pmichaud well, it won't be "right this minute", but sometime before the day is out.
probably at the next spectest-progress update
PerlJam moritz: Just key off of the header rather than relying on a specific order 22:08
particle i get 4953 pass
Tene I get 4965
particle i need to svn up t/spec :)
moritz I think Tene is most up-to-date
pmichaud I'm running my spectest-progress.csv script on head now 22:09
whenit's done I'll report the "official" head results and then head to the airpot.
*airport
moritz PerlJam: then I still have to rely on the exact text of the headers - it's just a different level on which things might break or not break
pmichaud particle: why that particular ordering, ooc? 22:10
particle then i can generate a chart with the range A1:E16
i don't so much care about the order of the last three
pmichaud okay, wfm.
it shall be done a bit later.
particle pmichaud++ 22:11
pmichaud is it okay if the values have leading spaces?
PerlJam moritz: granted. But I don't see anyone clamoring to change the header text while I do see people reordering the columns
:-)
pmichaud so that I can keep them aligned in columns?
I'm also going to change the header text.
particle pmichaud: wfm 22:12
pmichaud that way they can still display in "columns", easier to read for hyoomans
particle yes
moritz PerlJam: at the time of writing I didn't see anybody reordering the columns either ;-)
pmichaud S02-builtin_data_types/lists.rakudo................ 16 16 8 0 0 8 2 skipped: No prefix:<\\> yet 5 skipped: Method 'lvalue' not found for 'PAST::Stmts' 22:13
That "lvalue not found for..." condition should no longer be true.
PerlJam moritz: clearly you need a config file that contains all of the meta-info about the file so that you don't have to modify your script ;-)
pmichaud The test might still fail, but not for *that* reason.
so we might pick up 5 tests there.
moritz PerlJam: anyway, if you think one way is "righter" than the other, feel free to patch tools/progress-graph.pl ;-)
pmichaud: I'll take a look
pmichaud oh, I'll patch progress-graph.pl
it'll be part of the same commit. I use progress-graph.pl to generate the graphs I use. 22:14
particle sheesh, i didn't even know about progress-graph.pl
pmichaud (www.pmichaud.com/perl6 for those following along)
Tene rakudo.de/ 22:15
Coke waits for someone to animate those pictures.
moritz yeah, that's my site ;-)
Coke: nice idea ;-)
one of the tests in lists.t: 22:16
dies_ok { ($foo, 42, $bar, 19)[1, 3] = (23, 24) },
"using list slices as lvalues works (2)";
Coke should rakudo.org have a section on getting rakudo?
pmichaud ...shouldn't that be [0,2] ?
oh, we're testing that they're read-only
moritz pmichaud: ah, that's why it's dies_ok
pmichaud we don't do a lot of checking for lvalues on assignment yet 22:17
Coke CURSES.
chromatic Use ncurses; it's more stable.
Coke I see there's a perl workshop in bulgaria; I no longer work for the copmany who might have sent me there on a junket. 22:18
PerlJam Coke: I thought tcl had tk?
jonathan rakudo.org should have a lot of things, IMO... :-S
Coke PerlJam: only you can port tk to partcl.
pmichaud also:
S03-operators/assign.rakudo........................ 309 309 74 0 39 196 21 skipped: list assignment
21 skipped because of "list assignment" looks suspicious.
PerlJam Coke: somehow I doubt that I'm the man for that job.
particle more different curses
pmichaud Coke: short answer: yes, rakudo.org should have such a section. I'll even write it. 22:19
medium-term answer: yes, but the "how to get" will change in a month or two.
moritz rakudo: my ($a, $, $b) = 1..3; say $b; 22:20
PerlJam Coke: though the other day when you had some segfault problems, I decided I was going to help you fix it. so, I went through the steps of installing/compiling partcl, but somewhere in the middle I fell asleep and so that was as far as I got.
pmichaud I agree that it's worthwhile to have something up there now, also, given the increasing interest in rakudo and that people are more likely to want to play with it over the holidays.
polyglotbot OUTPUT[Missing right parenthsesis after signature at line 1, near "$, $b) = 1"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤called from Sub 'parrot;Perl6;Grammar;declarator' pc 78857 (src/gen_grammar.pir:23027)␤called from Sub 'parrot;Perl6;Grammar;scoped'
..pc 79474 (src/gen_grammar.pir:23266)␤called from...
pmichaud I think rakudo doesn't understand sigils-without-names in signatures yet.
moritz aye
pmichaud shouldn't be too hard to add, though.
moritz pmichaud: so I'll update the fudge message 22:21
pmichaud that would be excellent.
particle wonders if rakudo parses submethods yet (should be *easy*)
pmichaud parses, yes. Runs, no.
er.
Tene ... I have a big jump in passing tests here shortly...
pmichaud rephrase
parses submethods is easy. running submethods is not.
particle right.
Tene ... oh, nm 22:22
moritz rakudo: my ($x, @b) = 1..3; say @b.perl 22:23
polyglotbot OUTPUT[2␤]
particle rakudo: submethod foo() {1}
polyglotbot OUTPUT[Statement not terminated properly at line 1, near "{1}"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤called from Sub 'parrot;Perl6;Grammar;eat_terminator' pc 27436 (src/gen_grammar.pir:3364)␤called from Sub 'parrot;Perl6;Grammar;statementlist' pc
..26092 (src/gen_grammar.pir:2831)␤called from Sub 'p...
pmichaud rakudo: my ($x, @b) = 5..7; say @b.perl;
polyglotbot OUTPUT[6␤]
pmichaud rakudo: my @b = 5..7; say @b.perl;
polyglotbot OUTPUT[[5, 6, 7]␤]
jonathan particle: submethods will get done in January I expect. 22:24
pmichaud rakudo: my (@b) = 5..7; say @b.perl;
polyglotbot OUTPUT[5␤]
pmichaud okay, bug in list assign.
moritz tests++
Coke tewk++ # still poking about on tt#1-
tt#10, even
pmichaud moritz: file a rakudobug for that one if you get a chance. 22:25
tewk_ Coke: I'll look tonight and see how painful the fix is going to be.
its pure luck that it has worked up till now.
moritz pmichaud: will do 22:26
Coke I saw c say that, ya.
Coke wonders if can really take 10m to empty his pc's recycle bin. Sheesh. 22:27
tewk_ I didn't realize at first that the last test in t/pmc/key.t was distilled from tcl
Coke *it
yah. tcl has been breaking parrot for some time now. :|
PerlJam tewk_: when was the last time you touched ecmascript? how "maintained" is it?
tewk_ its not, I just wrote the original parser. Someone forked it as a MS project, but I haven't heard anything in a while. 22:28
particle and I wrote the original parser.
particle kj may have worked on it for a bit 22:29
'svn log' knows all
Tene 'break' and 'continue' are going to come with the loops refactor
PerlJam aye
tewk_ PerlJam: it would be another cool language to have. 22:30
PerlJam tewk_: yep. I may start hacking on it tonight.
particle PerlJam++ 22:31
PerlJam I still think that the two most important languages to hit (other than perl6) are javascript and php.
Coke cries. 22:33
22:33 allison joined
Tene Coke: what's up? 22:35
purl The birds, the sky, and the ceiling.
PerlJam Coke: oh, and tcl is really important too ;)
moritz assign.t is a pretty heavy beast :/ 22:38
Coke wtf. running adobe reader 6. run the "check for updates". get 7. run "check for updates" get 9. 22:41
PerlJam Coke: 6 didn't know how to check for more than a single version upgrade. 7 does. 22:42
Coke and then the 9 vanished from the list. downloading by hand... 22:43
Coke hopes parrot does this better. =-)
the cruel bit is I'm doing this to be able to read cold fusion docs.
Coke wonders if a CFMX port on parrot is legally allowable. 22:44
PerlJam Coke: oh that's right ... I've been meaning to send you my condolences.
Coke . o O (not for the first time.)
dalek r33814 | tewk++ | trunk: 23:02
: [js] changed n_add to add
diff: www.parrotvm.org/svn/parrot/revision?rev=33814
23:07 allison joined 23:18 TiMBuS joined 23:20 Whiteknight joined
tewk_ looks at the black magic in parsing rakudo ws 23:26
23:33 AndyA joined 23:35 bacek_ joined
tewk_ someone have a grammar rule for c sytle comments? 23:38
moritz is there none in ncigen? 23:39
tewk_ no I use a preprocessor there
GeJ Good morning everyone
moritz ah 23:40
GeJ servus moritz
tewk_ I know I've asked pmichaud a dozen time, we should start a wiki of common/best practices for pge
ahh, I'll go look at php 23:41
particle tewk_: start it yourself, with big gaps in it
tewk_ where point me to the right wiki and I'll start a page
particle trac.parrot.org/parrot/wiki 23:42
languages/pipp probably has what you need, yeah
dalek r33815 | cotto++ | trunk: 23:57
: [imcc] IMCC_subst_constants uses r[2], so make sure regs has enough elements (CID #170)
diff: www.parrotvm.org/svn/parrot/revision?rev=33815