Camelia, the Perl 6 bug

IRC log for #parrot, 2008-12-11

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

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

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced