Camelia, the Perl 6 bug

IRC log for #parrot, 2008-07-12

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 pmichaud the thread that talks about PCC changes is at http://groups.google.com/group/perl.perl6.int​ernals/browse_thread/thread/fce44e38aa856be9
00:01 pmichaud see also the May 28 Perl 6 Design meeting notes
00:04 Zaba joined #parrot
00:05 pmichaud jonathan: still around?
00:05 purl nope.
00:09 AndyA joined #parrot
00:13 tewk pmichaud: Are there tests written, If you write the tests I'll make the changes.
00:14 tewk afk, I'll reread the above.
00:17 Ademan joined #parrot
00:22 buildbot joined #parrot
00:23 pmichaud no tests written yet.
00:58 Zaba_ joined #parrot
01:10 contingencyplan joined #parrot
01:11 jonathan pmichaud: Sort of. :-)
01:11 jonathan About to head to bed in a moment.
01:14 Theory joined #parrot
01:15 paco joined #parrot
01:22 jonathan pmichaud: Guess now you're gone - sorry I missed the message earlier. Wanted to get off the computer for a bit before sleeping...trying to sleep + head full of closures/lexicals is probably a bad combination. If you're about tomorrow, I should be about a fair bit too...
01:22 * jonathan afk
01:37 cotto_home literal still around?
01:37 dalek r29313 | jkeenan++ | parallel:
01:37 dalek : Consolidate multiple test files per configuration step into a single file.
01:37 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29313
01:37 dalek r29314 | jkeenan++ | parallel:
01:37 dalek : Consolidate multiple test files per configuration step into a single file.
01:37 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29314
01:37 dalek r29315 | jkeenan++ | parallel:
01:37 dalek : Update MANIFEST.
01:37 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29315
01:44 dalek r29316 | jkeenan++ | parallel:
01:44 dalek : Consolidate multiple test files per configuration step into a single file.
01:44 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29316
01:47 silug joined #parrot
01:51 spinclad pmichaud: (backlogging some) re http://nopaste.snit.ch/13564: i don't understand why on the second call of bar you don't get a redeclaration of &foo error.  given this, is there a case of replacing one closure with another?
01:51 dalek r29317 | cotto++ | trunk:
01:51 dalek : [codingstd] wrapping more macro args, this time without breaking the build
01:51 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29317
01:51 pmichaud spinclad: perhaps this should result in a redeclaration of &foo -- I don't know.
01:52 pmichaud I haven't seen anything in the spec that indicates it would be an error.
01:53 spinclad istr that, without multi or proto, redecl is an error.  will look for it.
01:53 pmichaud well, I don't know if that technically counts as a redecl
01:53 pmichaud yes, without multi or 'is instead', redeclaration is an error.
01:54 pmichaud (S06)
01:56 spinclad question would be, does a dynamic redecl count, or only static?  (dynamic: same code text, different bindings.)
01:56 spinclad i don't recall it coming up in spec or discussion before.
01:56 pmichaud I don't know.
01:57 dalek r29318 | cotto++ | trunk:
01:57 dalek : [codingstd] allow stringification in macros
01:57 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29318
02:03 dalek r29319 | jkeenan++ | parallel:
02:03 dalek : Consolidate multiple test files per configuration step into a single file.
02:03 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29319
02:04 dalek r29320 | jkeenan++ | parallel:
02:04 dalek : Renumber t/steps/inter_lex-03.t to -02.t to maintain sequence pending further refactoring.
02:04 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29320
02:07 peepsalot joined #parrot
02:14 dalek r29321 | jkeenan++ | parallel:
02:14 dalek : Renumber test.  Consolidate two files into one.  Two tests not yet passing, probably due to difficulty of testing interactive configuration steps.
02:14 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29321
02:22 dalek r29322 | cotto++ | trunk:
02:22 dalek : [codingstd] wrap more macro args.  now down to 192 c_macro_arg failures.
02:22 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29322
02:43 confound joined #parrot
03:13 dalek r29323 | jkeenan++ | trunk:
03:13 dalek : For consistency, call:  $conf->steps->[-1].
03:13 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29323
03:27 tjh joined #parrot
03:46 cotto_home joined #parrot
03:50 silug joined #parrot
04:13 cotto_work joined #parrot
04:17 Andy joined #parrot
04:46 cotto_home 1.625-1.558
04:46 purl 0.0669999999999999
04:46 cotto_home (1.625-1.558)/1.558
04:46 purl 0.0430038510911425
04:46 cotto_home (1.625-1.5)/1.5
04:46 purl 0.0833333333333333
05:02 dalek r29324 | cotto++ | trunk:
05:02 dalek : [codingstd] refactor some macros to make coding standards easier to test
05:02 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29324
05:10 TimToady sigh, there are already too many things named "capture" without using that to mean "closing over" as well...
05:21 Psyche^ joined #parrot
05:22 bgeron_ joined #parrot
05:34 cotto_home captcha?
05:34 purl captcha is probably an acronym for "completely automated public Turing test to tell computers and humans apart", it  is a type of challenge-response test http://en.wikipedia.org/wiki/Captcha
05:39 TimToady and we only barely get away with the Capture type by capitalizing it...
05:39 TimToady but there's also regex captures
05:50 Zaba_ I wonder what did I miss in rakudo
05:50 Zaba_ I was absent for 2 weeks
05:50 silug joined #parrot
05:58 spinclad some good stuff -- lexical variables are in good shape, many more tests pass, some very busy days.  TimToady's STD grammar parses itself now too.
05:58 Zaba_ that sounds quite good
05:58 Zaba_ :>
06:00 spinclad check pmichaud's and jonathan's weblogs for highlights, i don't remember it all
06:03 Zaba joined #parrot
06:09 cotto_home bad movies and coding go surprisingly well together
06:14 dalek r29325 | cotto++ | trunk:
06:14 dalek : [codingstd] wrap more macro args (weeeeee!!!!!)
06:14 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29325
06:28 Zaba spectest_regressing seemingly still takes a lot of time to run
06:30 cotto_home is there any reason not to delete a macro that's defined but never used in the code?
06:30 cotto_home in this case, VOIDPTR_ASSIGN in include/parrot/parrot.h
06:34 Zaba hum
06:35 Zaba what's &?BLOCK?
06:41 Auzon The object for your current block.
06:41 Auzon You can use it for recursion on anonymous subs in P6
06:41 Zaba aha
07:13 Ademan joined #parrot
07:24 dalek r29326 | cotto++ | trunk:
07:24 dalek : [codingstd] Wrap more macro args.  This leaves 94 test failures (with a
07:24 dalek : slightly smarter c_macro_args.t), but the rest of the macros will require some
07:24 dalek : refactoring.
07:24 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29326
07:30 dalek r29327 | cotto++ | trunk:
07:30 dalek : [codingstd] make c_macro_args.t smarter about some macros whose arguments can't
07:30 dalek : be wrapped
07:30 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29327
07:36 dalek r29328 | cotto++ | trunk:
07:36 dalek : [codingstd] fix trailing whitespace in t/codingstd/c_macro_args.t
07:36 dalek : The irony of this is not lost on me.
07:36 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29328
07:46 iblechbot joined #parrot
07:53 cotto_home juerd?
07:53 purl i heard juerd was root or at http://juerd.nl/ or mailto:juerd@juerd.nl
07:54 silug joined #parrot
08:14 barney joined #parrot
08:28 dalek r29329 | fperrad++ | trunk:
08:28 dalek : [docs]
08:28 dalek : disassemble.c was renamed pbc_disassemble.c since r29309
08:29 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29329
08:33 Zaba_ joined #parrot
09:18 barney I think that rakudo doesn't parse heredocs yet. Is that right?
09:31 cognominal it was lasttime i checked
09:32 cognominal i meant it was parsing heredocs
09:32 cognominal _not_  parsing!
09:38 dalek r29330 | bernhard++ | trunk:
09:38 dalek : [Rakudo] Add or update some Copyright or SVN-Id lines
09:38 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29330
09:38 barney Yes, I see heredocs in STD.pm, but not in languages/perl6/src/parser/grammar.pg
09:44 cognominal BooK: je suis en train de cataloguer tous les bouquins que j'ai .On verra s'il refait surface..
09:44 cognominal http://icfpcontest.org/
09:45 cognominal je crois qu'on peut concourir en Perl
10:03 Whiteknight joined #parrot
10:15 silug joined #parrot
10:22 barney cognominal: Bonne chance pour le conteste ICPF
10:24 cognominal non,  je ne participe pas tant que je n'ai pas Perl  6  and wrong channel btw
10:25 dalek r29331 | bernhard++ | trunk:
10:25 dalek : [Pipp PCT] Add some notes regarding literal strings in PHP.
10:25 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29331
10:40 dalek r29332 | fperrad++ | trunk:
10:40 dalek : [Pipp] fix tests on win32
10:40 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29332
10:48 Whiteknight joined #parrot
11:00 * barney now gets '__bitwise_and' for empty strings
11:01 NotFound barney: In pipp?
11:02 barney Yes
11:03 dalek r29333 | bernhard++ | trunk:
11:03 dalek : [Pipp PCT] Remove unneeded code, 'peek_brackets'.
11:03 dalek : Simplify quote_expression.pir by getting rid of some unneeded options
11:03 dalek : and by knowing that start and stop are either single or double quotes.
11:03 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29333
11:05 NotFound barney: I think the problem is caused by the CONST_STRING dependance of __LINE__, because a lot of CONST_STRING "" are used inside init blocks, and those are generated without correct #line
11:06 barney NotFound: could you add that hint, or patch, to http://rt.perl.org/rt3//Ti​cket/Display.html?id=55842   ?
11:08 barney In a way it's funny. In r29331 I only added POD and got a different behavior.
11:08 NotFound I'm working now in a variant of a previous attempt to add a function specific for const empty string, it can solve all this issues... but the CONST_STRING general problem remains.
11:09 barney NotFound++
11:09 NotFound barney: and sometimes only by rebuliding with no changes gives different results.
11:10 barney Strange, the phase of the moon doesn't change that fast :=)
11:11 NotFound Maye the tides...
11:11 barney or gravitational waves
11:14 NotFound That will be great, bulding a gravitational wave detector at no cost X-)
11:20 NotFound barney: RT#56868
11:24 dalek r29334 | bernhard++ | trunk:
11:24 dalek : [Pipp PCT] PHP literals need not tests for whitespace, AFAIK.
11:24 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29334
11:32 barney NotFound: I get a segfault with ../../parrot ../../languages/pipp/pipp.pbc --variant=pct ../../languages/pipp/t/php/arithmetics_6.php
11:32 jonathan morning^Wafternoon
11:32 barney after applying your patch and rebuildign, no 'make realclean'
11:33 NotFound barney: realclean required
11:34 NotFound Or maybe a make clean in pipp directory is enough, don't know.
11:40 Whiteknight joined #parrot
11:41 barney All tests successful.   for Pipp, after 'make realclean' in Parrot root
11:42 ruoso joined #parrot
11:42 NotFound barney: good :)
11:50 NotFound Rakudo test and spectest_regression also pass.
12:05 barney NotFound: When I first saw that problem, I was thinking of a hash collision.
12:06 NotFound barney: me also.
12:06 kid51 joined #parrot
12:07 barney Did you look into parrot_hash_put ?
12:07 NotFound I looked and it seems correct.
12:08 NotFound A check in CONST_STRING can be helpful, but it can slow down too much a lot of things.
12:13 barney I'm confused by another thing. Does parrot_hash_exists() in hash.c make sense? It only checks whether there is a bucket.
12:15 NotFound ack says that parrot_hash_exists is never used.
12:15 silug joined #parrot
12:16 barney And it calls parrot_hash_get_bucket(), which seems to do the right thing
12:18 NotFound You can fill a ticket proposin his deletion, to hear opinions.
12:20 NotFound This code is in default.pmc: return !!parrot_hash_get_bucket(interp, pmc->vtable->isa_hash,
12:21 NotFound Writing such things is a big no-no to me X-)
12:23 NotFound I see very few places where get_bucket is used only to check existence, don't justify a specific function, except maybe for clarity.
12:28 dalek r29335 | jkeenan++ | parallel:
12:28 dalek : [t] For consistency, call:  ->steps->[-1].
12:28 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29335
12:28 dalek r29336 | jkeenan++ | trunk:
12:28 dalek : [t] For consistency, call:  ->steps->[-1].
12:28 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29336
12:33 barney ascii_compute_hash() seems to return the seed for empty strings, which is fine
12:35 rurban joined #parrot
12:38 dalek r29337 | bernhard++ | trunk:
12:38 dalek : [C] Delete obsolete TODO comment.
12:38 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29337
12:40 barney NotFound: IMHO, replacing !!parrot_hash_get_bucket() with parrot_hash_exists() would be a good thing
12:42 barney NotFound: I'll fire up gdb when I see the 'empty String' error again
12:42 NotFound barney: rethinking about that, I think the same. In addition to clarity, it avoids exposing the hash bucket thing when is not required nor useful.
12:43 itz joined #parrot
12:43 dalek r29338 | jkeenan++ | parallel:
12:43 dalek : Consolidate multiple test files per configuration step into a single file.
12:43 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29338
12:45 dalek r29339 | bernhard++ | trunk:
12:45 dalek : [codingstd] remove trailing spaces
12:45 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29339
12:49 dalek r29340 | bernhard++ | trunk:
12:49 dalek : [distro] Let SVN ignore the generated file pbc_disassemble.
12:49 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29340
12:52 barney NotFound: The naming is also funny. I thought a bucket was the container, containing potentially many key-value pairs
12:52 purl okay, barney.
12:52 barney ?naming
12:53 NotFound A bucket item or something will be a better name.
12:54 barney item, entry or slot
13:01 uniejo joined #parrot
13:03 dalek r29341 | jkeenan++ | parallel:
13:03 dalek : Consolidate multiple test files per configuration step into a single file.
13:03 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29341
13:07 Zaba joined #parrot
13:08 dalek r29342 | julianalbo++ | trunk:
13:08 dalek : Replaces parrot_hash_get_bucket with parrot_hash_exists in several places
13:08 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29342
13:11 barney NotFound++
13:17 dalek r29343 | jkeenan++ | parallel:
13:17 dalek : Consolidate multiple test files per configuration step into a single file.
13:17 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29343
13:30 Zaba_ joined #parrot
13:34 Zaba joined #parrot
13:47 dalek r29344 | fperrad++ | trunk:
13:47 dalek : [Pipp] get_resource_type()
13:47 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29344
13:57 dalek r29345 | bernhard++ | trunk:
13:57 dalek : [Pipp] Add test for stringification of PhpBoolean.
13:57 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29345
14:01 dalek r29346 | jonathan++ | pdd25cx:
14:01 dalek : [core] Fix build of pdd25cx branch on Win32.
14:01 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29346
14:01 jhorwitz joined #parrot
14:12 Zaba_ joined #parrot
14:16 silug joined #parrot
14:26 jonathan pmichaud: ping
14:30 Zaba joined #parrot
14:31 pmichaud jonathan: pong
14:31 jonathan pmichaud: Which instructions were you using that got replaced by local_branch and local_return?
14:32 pmichaud TimToady:  (multiple meanings of 'capture')   I'm going to switch the conversation to start using 'snapshot' instead.
14:32 pmichaud jonathan: bsr/ret
14:32 jonathan OK, I thought so. IMCC handles some branch instructions explicitly.
14:32 pmichaud yes
14:32 jonathan I'm having a dig to see if I can coerce it into doing the Right Thing.
14:32 pmichaud jonathan++
14:33 jonathan If nothing else comes out of this, at least I have fixed the branch build on Win32.
14:33 pmichaud I did think about the possible register allocation issues with respect to the other parts of PGE that use it
14:33 pmichaud but the other parts of PGE already do :unique_reg so I figured it wasn't an issue.
14:33 pmichaud However, I didn't realize that :unique_reg doesn't help with $I0
14:34 pmichaud (which sounds like a _huge_ bug to me)
14:35 pmichaud and if we can't fix the register allocator for l_b/l_r then it means we'll have to do similar things in all subs that are currently making use of bsr/ret
14:35 NotFound Can you take a look at RT#56868 ?
14:39 pmichaud jonathan: can you preview a reply I'm about to send to make sure it's clear?
14:39 pmichaud (I'll nopaste it)
14:40 jonathan Damm. The easy attempt to fix IMCC up didn't help things.
14:40 jonathan pmichaud: sure
14:40 jonathan NotFound: Who is "you" referring to in that sentence?
14:40 nopaste "pmichaud" at 76.183.97.54 pasted "explanation of clone and closures" (38 lines) at http://nopaste.snit.ch/13567
14:41 NotFound jonathan: Those that were alive in the channel at the moment, that is, you and pmichaud
14:41 NotFound Ups, recursive X-)
14:42 jonathan pmichaud: Well the short answer and code that follows make complete sense. Now for the long answer... :-)
14:43 pmichaud NotFound: is this change going to make a significant improvement in performance?
14:43 jonathan pmichaud: OK, what you just wrote makes sense to me.
14:43 pmichaud jonathan: the long answer I'm writing makes complete sense also (to me).  But it's somewhat involved, so I'll have to make sure I'm clearly defining my terms.
14:44 pmichaud the long answer I have also resolves chromatic's   get_x and set_x example.
14:44 jonathan pmichaud: Right. And the real problem is that there's a lot of cases where it feels to me like different terms for the same thing are being thrown about.
14:44 pmichaud not only that, but parrot has conflated too many items together
14:44 pmichaud for example, newclosure ==   snapshot + clone
14:44 pmichaud taking a closure (snapshot) is always a part of invoke
14:44 pmichaud etc.
14:45 pmichaud those are bad conflations -- my new proposal will give separate terms for each action
14:45 jonathan I had snapshot = clone in my mind.
14:45 pmichaud okay, well, we should fix that then
14:45 pmichaud what should we call the operation whereby an inner closure is bound to the lexicals of its outer sub?
14:46 pmichaud 'capture' is probably bad.
14:46 Theory joined #parrot
14:46 jonathan Taking a snapshot of the current lexical environment = taking a closure = what cloning a closure in Parrot does.
14:46 pmichaud I'd prefer to call cloning a closure "cloning a closure"  :-)
14:46 NotFound pmichaud: maybe, but the main reason is to simplify the code and the preprocessing of CONST_STRING, and avoiding several current bugs related to CONST_STRING.
14:46 pmichaud i.e., we already have a name for that:  clone
14:47 jonathan Right.
14:47 NotFound Mainly, letting pipp pass test consistently.
14:47 pmichaud NotFound: to me it doesn't simplify the code, because I end up with some string constants that say "CONST_STRING" but for some reason empty string is different
14:48 pmichaud i.e., I'd be asking myself:  Why not just use CONST_STRING(INTERP, "") ?
14:49 jonathan But I think it's good to be clear that the operation of taking a clone is how we implement the semantics of taking a closure, or a snapshot if that word is preferred.
14:49 dalek r29347 | fperrad++ | trunk:
14:49 dalek : [Lua]
14:49 dalek : - introduce a memoize cache in LuaRegex compiler
14:49 pmichaud I need a good name for the operation that I've been calling 'capture'.
14:49 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29347
14:49 jonathan If that makes any sense.
14:49 jonathan Yeah.
14:49 jonathan Associate?
14:49 purl hmmm... Associate is developing perl course work, and is having trouble finding something appropriate for beginners.
14:49 pmichaud well, it's really a bind of sorts.
14:50 jonathan Associate the inner's lexical scope with that of the outer?
14:50 NotFound The empty string is different, it does not need to care about charset and encoding.
14:50 jonathan Hmm. I agree with you capture isn't the best name. It's too overloaded.
14:50 pmichaud NotFound: thus my question -- does this give us a significant performance improvement?
14:51 pmichaud NotFound: because if it doesn't, it seems that we're making the code less understandable for no substantial improvement
14:52 Zaba_ joined #parrot
14:53 NotFound pmichaud: Don't know, I will try to make some measurement.
14:53 pmichaud one could always treat empty string as a special case in the CONST_STRING function, too.
14:54 pmichaud ...but that doesn't seem to be much benefit either
14:54 jonathan pmichaud: A thing I'm curious about in what you're about to propose.
14:54 NotFound But is a macro, and is processed in pmc to c process.
14:55 jonathan my $x = 42; if 1 { if 1 { say $x } }
14:55 jonathan Oh, no...bad example...
14:55 pmichaud :-
14:55 pmichaud :-)
14:56 jonathan OK, there may be no example...if so, that's a good thing. :-)
14:56 Senak1 joined #parrot
14:56 Senak1 left #parrot
14:56 pmichaud ...although what I'm about to propose (to solve the case chromatic gives) _will_ essentially require that every sub have a list of its inner closures
14:57 pmichaud so my proposal will have two parts -- what I want to see happen short term, and what we might do long-run to address chromatic's example
14:57 pmichaud short term doesn't require maintaining the list of inner closures
14:57 jonathan OK, I'm struggling to construct an example where we have to have a sub knowing its inner closures.
14:58 pmichaud in what sense?
14:58 pmichaud do you mean deeply nested inner closures, or immediately inner?
15:00 nopaste "barney" at 84.154.20.211 pasted "strings not found in constant table" (19 lines) at http://nopaste.snit.ch/13568
15:00 jonathan OK, so suppose whenever we are about to (a) take a reference to an inner closure or (b) invoke an inner closure, we always call .capture on that closure (can't think of a better name right now), which sets its outer scope to be the current one. Make sense?
15:00 barney I'm just debugging the const string issue with gdb. Right now I'm confused, as the same string seems to be made twice
15:00 jonathan So before we do the clone or the invoke, we do a capture?
15:00 pmichaud the problem is that we may be doing those from a context other than the outer?
15:00 pmichaud s/\?/./
15:01 jonathan OK, in that case .capture is a no-op.
15:01 pmichaud -> $x { sub foo() { say $x; }   if 1 { return &foo; } }
15:01 jonathan OK, so let's take that case.
15:01 pmichaud We can't wait for the &foo step to do the capture, because we're not in the outer context.
15:02 jonathan Ah.
15:02 pmichaud so, we'd have to chase up the caller chain to find the appropriate context in which to perform the capture.  And that's where I think we start to run into difficulties.
15:02 jonathan Yes.
15:04 pmichaud here's what I want to do for for chromatic's case
15:04 jonathan Can you explain what you propose for the case you just wrote above first?
15:04 jonathan While I've got that problem in my head. :-)
15:04 pmichaud sure
15:04 pmichaud as soon as we enter the -> $x { ... }   block, we bind all of its inner closures
15:04 pmichaud (bind == capture)
15:05 pmichaud this would be 'foo' and the immediate block of the if
15:05 jonathan OK, and that can be done by the compiler knowing what the inners are?
15:05 integral joined #parrot
15:05 jonathan Rather than the outer having to know its inners?
15:05 pmichaud yes, the compiler knows all of the inners already
15:05 jonathan OK.
15:05 pmichaud (by definition of lexical scope)
15:06 jonathan Right. So, understand how this one will work. Go for chromatic's one.
15:06 pmichaud okay, chromatic's case is
15:06 pmichaud { my $x;  sub set_x { $x = shift; }    sub get_x { return $x; } }
15:07 pmichaud *but*
15:07 pmichaud someone can call set_x/get_x without the above outer closure having been invoked first
15:08 jonathan OK, understand the code.
15:08 pmichaud currently parrot attempts to handle this by an "autoclosure" -- i.e., when set_x is invoked, it detects that it hasn't had a capture yet so it immediately invokes its outer sub to get a lexical environment and then captures that
15:09 pmichaud Bad.
15:09 jonathan Right. I does a "fake" invocation that builds a lexical environment, but doesn't run the code.
15:10 jonathan s/I/It/
15:10 pmichaud part of the problem is that even though we've "solved" the problem for set_x, the get_x sub isn't bound to that same lexical environment
15:11 jonathan Right. Because get_x realizes it has no outer, and goes and does a fake invocation of its own.
15:12 pmichaud so, what I want to do is separate "create lexical environment" from "invoke"
15:12 pmichaud i.e., make it possible to create a lexical environment without doing an invoke
15:12 pmichaud we have this already via the 'fake' invocation
15:12 pmichaud but
15:12 pmichaud since we don't run the code, we don't get the benefit of doing capture on all of the inner subs
15:12 pmichaud sorry, inner closures
15:13 pmichaud so, what I want to do is...
15:14 pmichaud when we invoke set_x (and perhaps take a reference to it), it detects that it has no outer lexical environment, so it tells its outer sub to create one
15:14 pmichaud and the act of creating a lexical environment automatically binds all inner closures to that lexical environment
15:14 pmichaud but the "automatically binds" means we have to have a list of the inner closures
15:14 jonathan *nod*
15:16 jonathan Makes sense.
15:17 * jonathan wonders if Perl 5 handles it the same kinda way
15:17 pmichaud although, I wonder....
15:17 Zaba joined #parrot
15:17 pmichaud I wonder if it is actually possible to lazily capture the inner closures
15:18 pmichaud right now the autoclosure always invokes its outer sub to build a lexpad
15:18 pmichaud shouldn't that be "invoke the outer sub if it doesn't already have a lexpad"?
15:18 spinclad another case: { my $x = 1;  sub get_x { return $x; } }   # if this block is never entered, but get_x is still seen as defined, what does this mean?
15:18 spinclad # when get_x is called later
15:18 pmichaud spinclad: excellent example
15:18 pmichaud I think that Perl 5 returns an undefined value
15:19 jonathan The only way to get that to give 1 in Perl 6 that I can think of is to have my $x ::= 1;
15:20 pmichaud module Foo { my $x = 1; sub get_x is export { return $x; } }
15:20 jonathan I think that's different?
15:20 pmichaud how so?
15:21 jonathan Because when you "use" module, does the body not get executed?
15:21 pmichaud I wasn't saying "use module"
15:21 jonathan OK
15:21 pmichaud I mean place that wherever we had the { my $x = 1; ... }  earlier
15:21 jonathan But by the time we have done so - and this got hold of get_x - the my $x =1 would have run.
15:22 pmichaud there's an implied BEGIN on the body of modules and classes
15:22 jonathan Right.
15:22 jonathan But the original example - where we haven't got that - we'd just have get_x returning undef.
15:22 pmichaud right.
15:23 jonathan OK, I think we're agreeing here.
15:23 pmichaud so, what do you think of  15:18 <pmichaud> shouldn't that be "invoke the outer sub if it doesn't already have a lexpad"?
15:24 jonathan I sorta thought that's what the code already did...let me check.
15:24 pmichaud oh, I see
15:24 pmichaud the "already have a lexpad" part is in the sub's invoke
15:24 pmichaud ok
15:26 pmichaud no, wait, that can't be right.
15:26 pmichaud invoking a sub always gives it a new lexpad
15:26 jonathan Just staring at the code to be sure of what it really does do...
15:26 pmichaud I think that right now   autoclosures always result in a new lexpad, instead of reusing a previous one
15:27 pmichaud oh, no, I see
15:27 pmichaud line 103, closure.pmc
15:28 jonathan Right, that's the bit I'm looking at too.
15:29 jonathan That seems to make sure if there is a lexpad from a previous invocation, we get it.
15:30 jonathan So in chromatic's example, get and set end up referring to the same thing.
15:30 pmichaud ouch, I think I can come up with an example that screws up even the simple version of what I'm proposing
15:31 Ademan_ joined #parrot
15:31 kid51 joined #parrot
15:31 barney NotFound: Can you look at line 645 of string.c.    Shouldn't the third argument be 'buffer' ?
15:32 pmichaud (writing)
15:35 pmichaud oh, maybe not
15:36 NotFound barney: On the curren version or in my patch?
15:36 barney In SVN HEAD
15:37 pmichaud no, I think that hash_put requires a STRING argument
15:38 pmichaud or something that has a header
15:38 uniejo joined #parrot
15:40 chromatic joined #parrot
15:40 chromatic barney: looks like a bug in src/string.c to me.  Good catch.
15:41 jonathan pmichaud: I think maybe best is to collect together all of these various examples that we are tossing around.
15:41 jonathan That demonstrate various things.
15:42 pmichaud well, that's what I was going to do in my long message
15:42 jonathan (things = use cases)
15:42 jonathan OK, good.
15:42 pmichaud show how the approach would handle each of the use cases
15:42 pmichaud (which is why it would take a few hours to develop)
15:42 jonathan OK. (case analysis)++
15:42 pmichaud but when we're done we could potentially use it as a new pdd20
15:42 pmichaud since the existing pdd20 is obviously not what is implemented
15:43 barney Yes, if you can't find it with a certain key, put it there with the same key
15:43 * jonathan remembers doing proofs on lock-free data structure safety using case analysis...
15:43 jonathan Yes, it'll certainly be wanting an update.
15:44 pmichaud anyway, do we have a good name for the 'capture' operation yet?  ;-)
15:45 chromatic I can explain how Perl 5 handles the situations I posted.
15:45 pmichaud that would be helpful
15:46 jonathan pmichaud: Everything I've named in Parrot, Allison has found reason to give a different name. I'm really not a good person to ask for names. :-)
15:46 pmichaud jonathan: I just need a name that makes sense to whoever is implementing it.  If allison wants to change the name later, that's fine with me.
15:46 jonathan (And she found good reasons to give them different names too - just to be clear...)
15:46 NotFound barney: I'm testing with that change.
15:46 pmichaud (I've had the same experience, btw. :-)
15:46 chromatic NotFound, me too.
15:47 NotFound But my cpu is faster :P
15:47 jonathan pmichaud: I wonder who the likely implementers are... ;-)
15:47 NotFound Just a joke, is 5 year old portable.
15:47 jonathan pmichaud: I'd go for a name that has "outer" in it somewhere though.
15:48 pmichaud jonathan: I just need a name that makes sense to me, you, chromatic, and rgrjr for purposes of discussion, and that we'd be comfortable living with if it existed long-term
15:48 NotFound coretest pass
15:48 jonathan "set_outer" will be confusing because we use that already
15:48 pmichaud right
15:48 jonathan (for dynamically setting the otuer sub)
15:48 pmichaud although I don't think anyone is actually using that yet
15:48 jonathan set_outer_context is long but clear.
15:48 pmichaud set_outer_ctx ?
15:49 jonathan pmichaud: Yeah, I implemented it to unblock implementation of eval, which now exists but doesn't handle lexicals yet so doesn't use it.
15:49 jonathan set_outer_ctx works for me - and ctx is a common abbreviation in Parrot for context.
15:49 pmichaud let's go with that for now.
15:50 NotFound pipp test pass!
15:50 jonathan ok
15:50 pmichaud chromatic: are you writing up an explanation of p5 for email or just busy with something else?
15:50 Zaba joined #parrot
15:50 pmichaud I don't think I need a super-detailed explanation -- just enough to get the key features
15:51 chromatic I'll write one now.
15:51 chromatic I had to take a few minutes to question the Perl 6 code first.
15:51 pmichaud one good result of all of this is that I'm getting a much better picture of lexicals :-)
15:51 pmichaud (or, at least I think I am)
15:51 jonathan Same. I think. :-)
15:52 pmichaud one question I do have....
15:52 pmichaud with   for 1..10 -> $x { sub foo() { ... } }
15:52 pmichaud is that a redeclaration error or not?
15:53 pmichaud i.e., do we treat 'sub foo' as being a redeclaration for each iteration of the loop?
15:54 jonathan No, I don't think so, because it's not being redeclared.
15:54 jonathan The name foo always is attached to the same body.
15:54 jonathan I think declarations are seen from a static, compile time point of view.
15:55 pmichaud fair enough -- was just curious.
15:55 jonathan Don't take me as authoritative, but it's my understanding. :-)
15:56 pmichaud although chromatic just asked if it's actually valid Perl 6 on the m/l :-)
15:56 pmichaud (I hadn't read that before writing my question on irc)
15:57 jonathan In http://dev.perl.org/perl6/doc/design/syn/​S04.html#When_is_a_closure_not_a_closure it uses "my sub"
15:57 jonathan But I thought that just declared the scope of the symbol "bar"
15:58 jonathan oh, the answer's right there
15:58 jonathan "In particular, named subroutines in any scope do not consider themselves closures unless you take a reference to them."
15:58 jonathan Note: in any scope
15:58 NotFound It's the third time this sentence is quote in two days ;)
15:59 jonathan It seems to answer many questions. ;-)
16:00 pmichaud and raise many others.
16:01 pmichaud like, what about
16:02 pmichaud my $foo = { sub bar() { ... } };
16:02 pmichaud is bar() a closure?
16:02 pmichaud s/'()'//
16:03 jonathan I tink we can safely say that this would do newclosure on the block since we're taking a reference to it.
16:03 NotFound pmichaud: I think that scope isa 'any'
16:04 jonathan But bar - hmm.
16:04 pmichaud newclosure on the block -- sure, no problem.
16:04 NotFound pmichaud: sounds like the name of a pop band.
16:05 pmichaud egads, another lightning talk.   "Perl Bands"
16:05 pmichaud newclosures on the block
16:07 jonathan NotFound: Surely a rap band? :-)
16:07 jonathan OK, I need to go to some other $reallife stuff for a while.
16:07 pmichaud okay, thanks jonathan
16:07 NotFound jonathan: that can be a rapture, not a closure.
16:08 dalek r29348 | bernhard++ | trunk:
16:08 dalek : #55842: [BUG] empty .const .String broken
16:08 dalek : The cause was probably  a bug in the function const_string().
16:08 dalek : If a string can't be found in the constant table, create a STRING
16:08 dalek : structure and use the lookup key for storing it.
16:08 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29348
16:08 NotFound barney++
16:09 jonathan pmichaud: Thanks for all the time/effort you're putting in too. This has turned out to be a lot trickier than I'd expected.
16:10 pmichaud well, I don't know if I'm unintentionally making things more difficult by asking questions that aren't really valid
16:10 pmichaud I do know that until the patches you and chromatic did, I couldn't get simple lexical blocks to work
16:10 pmichaud like at all.
16:11 jonathan Aye. We need something that works "generally" though. ;-)
16:11 * jonathan quickly disappears for a bit
16:11 pmichaud chromatic++ (explanation on mailing list)
16:11 chromatic and not ugly
16:12 chromatic barney, we probably need a const cast on that... I'm testing it now.
16:12 pmichaud haven't read it yet, but I'm getting the impression that the fact that we're currently making all :outer flagged subs into Closure PMCs isn't the right thing to do
16:12 pmichaud perhaps :outer flagged subs should remain subs, and we convert them to closures when we take a reference
16:12 pmichaud or otherwise clone them
16:13 chromatic That sounds better.
16:13 chromatic But we do need some sort of compile-time scope bindings for named subs.
16:14 barney chromatic: I tried Parrot_const_cast( char *, buffer ),  but got error
16:14 pmichaud sure, which is also why I think  should be a Sub thing and not a Closure thing
16:14 purl okay, pmichaud.
16:14 NotFound Let that part to me, is my speciality ;)
16:14 TimToady which?
16:14 purl which is why I asked about an alternative method :)
16:14 pmichaud sure, which?
16:14 purl sure, which is what makes it funny! or why I think  should be a Sub thing and not a Closure thing
16:15 NotFound what?
16:15 dalek r29349 | jkeenan++ | parallel:
16:15 dalek : Consolidate multiple tests per configuration step into a single file.  Create Parrot::Configure::Test::re​run_defaults_for_testing() for cases where we need to reset the defaults to conduct multiple tests per file.
16:15 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29349
16:15 chromatic barney, you probably missed adding DECL_CONST_CAST; to the top of the function.
16:15 pmichaud anyway, I've already warned Paula and the kids that I'll be focusing on this issue for much of the day :-)
16:16 pmichaud I'd like to get something new in place for shortly after the release so I don't have to deal with it any longer.
16:16 NotFound Other good name for a band: "Paula and the kids"
16:16 silug joined #parrot
16:17 chromatic Maybe pmichaud could play the tambourine.
16:17 pmichaud bongos.
16:17 barney Probably the argument  key in parrot_hash_put should be a (const void *).
16:17 dalek r29350 | chromatic++ | trunk:
16:17 dalek : [src] Removed a compilation warning from 29348, when caching a constant string
16:17 dalek : in the hash.
16:17 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29350
16:18 kid51 Can anyone comment on the question in my last post to http://rt.perl.org/rt3/Tic​ket/Display.html?id=43310 concerning a possible misspelling?
16:19 pmichaud chromatic: any thoughts about my pdd25cx message, other than "The register allocator sucks"?
16:20 NotFound kid51: looks clearly like a typo, but I don't have a windows environment available to test it.
16:21 pmichaud I agree w/NotFound -- looks like a typo, but I can't test.
16:24 kid51 thx
16:24 NotFound barney: is safer to cast the const string usage, the other way can fool the optimizer when using the function with PMC.
16:25 teknomunk joined #parrot
16:32 dalek r29351 | jkeenan++ | parallel:
16:32 dalek : Consolidate multiple test files per configuration step into a single file.
16:32 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29351
16:32 chromatic pmichaud, no thoughts on the allocator besides "I thought we were using the simple, naive, non-quadratic allocator."
17:01 NotFound We have base64 encoding functions in lua and pipp. Will be good to have some support in core, or in a dynpmc?
17:01 dalek r29352 | jkeenan++ | trunk:
17:01 dalek : Correct spelling error as per
17:01 dalek : http://rt.perl.org/rt3/Tic​ket/Display.html?id=43310:
17:01 dalek : -lncuses --> -lncurses.
17:01 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29352
17:03 dalek r29353 | jkeenan++ | parallel:
17:03 dalek : Correct spelling error (already done in trunk).
17:03 uniejo joined #parrot
17:03 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29353
17:16 uniejo joined #parrot
17:19 uniejo joined #parrot
17:20 dalek r29354 | jkeenan++ | parallel:
17:20 dalek : Consolidate multiple test files per configuration step into a single file.
17:20 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29354
17:40 spinclad perl6: $gen = -> ($n) { sub get_n_1 { return $n; }; return &get_n }; my &g1 = gen(1); my &g2 = gen(2); say g1; say g2;  # will one closure step on the other?
17:40 polyglotbot OUTPUT[Statement not terminated properly at line 1, near "= -> ($n) "␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤called from Sub 'parrot;Perl6::Grammar;eat_terminator' pc 22126 (src/gen_grammar.pir:2813)␤called from Sub
17:40 polyglotbot ..'parrot;Perl6::Grammar;statementlist' pc 21139 (src/gen_grammar.pir:2450)␤called fr...
17:41 spinclad perl6: my &gen = -> ($n) { sub get_n_1 { return $n; }; return &get_n }; my &g1 = gen(1); my &g2 = gen(2); say g1; say g2;  # will one closure step on the other?
17:41 polyglotbot OUTPUT[Statement not terminated properly at line 1, near "= -> ($n) "␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤called from Sub 'parrot;Perl6::Grammar;eat_terminator' pc 22126 (src/gen_grammar.pir:2813)␤called from Sub
17:41 polyglotbot ..'parrot;Perl6::Grammar;statementlist' pc 21139 (src/gen_grammar.pir:2450)␤called fr...
17:41 spinclad perl6: sub gen ($n) { sub get_n_1 { return $n; }; return &get_n }; my &g1 = gen(1); my &g2 = gen(2); say g1; say g2;  # will one closure step on the other?
17:41 polyglotbot OUTPUT[invoke() not implemented in class 'Undef'␤current instr.: '_block11' pc 93 (EVAL_14:29)␤called from Sub 'parrot;PCT::HLLCompiler;eval' pc 806 (src/PCT/HLLCompiler.pir:481)␤called from Sub 'parrot;PCT::HLLCompiler;evalfiles' pc 1088 (src/PCT/HLLCompiler.pir:610)␤called from Sub
17:41 polyglotbot ..'parrot;PCT::HLLCompiler;command_line' pc 1267 (src/PCT/HLLCom...
17:41 spinclad perl6: sub gen ($n) { sub get_n { return $n; }; return &get_n }; my &g1 = gen(1); my &g2 = gen(2); say g1; say g2;  # will one closure step on the other?
17:41 polyglotbot OUTPUT[␤␤]
17:43 spinclad perl6: sub gen ($n) { sub get_n { return $n; }; return &get_n }; gen(1)(); gen(2)();  # will one closure step on the other?
17:43 polyglotbot RESULT[undef]
17:43 spinclad perl6: sub gen ($n) { sub get_n { return $n; }; return &get_n }; say gen(1)(); say gen(2)()
17:43 polyglotbot OUTPUT[␤␤]
17:44 spinclad expected: OUTPUT[1␤2␤]
17:45 NotFound perl6: sub gen ($n) { sub get_n { return $n; }; return &get_n }; say gen(1)(); say gen(2)();
17:45 polyglotbot OUTPUT[␤␤]
17:46 NotFound perl6: sub gen ($n) { sub get_n { return $n; }; return &get_n }; say gen(1)();
17:46 polyglotbot OUTPUT[␤]
17:46 Patterner perl6: sub gen ($n) { sub get_n { return $n; }; return &get_n }; say gen(1)->();
17:46 polyglotbot OUTPUT[Statement not terminated properly at line 1, near "->();"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤called from Sub 'parrot;Perl6::Grammar;eat_terminator' pc 22126 (src/gen_grammar.pir:2813)␤called from Sub 'parrot;Perl6::Grammar;statementlist' pc
17:46 polyglotbot ..21139 (src/gen_grammar.pir:2450)␤called from Su...
17:46 Patterner oops
17:49 NotFound perl6: sub gen ($n) { sub get_n { return $n; }; return &get_n }; my $s = gen(1); $s();
17:49 polyglotbot RESULT[undef]
17:50 NotFound perl6: sub gen ($n) { sub get_n { return $n; }; return &get_n }; my $s = gen(1); say $s();
17:50 polyglotbot OUTPUT[␤]
17:53 Zaba joined #parrot
17:53 dalek r29355 | julianalbo++ | trunk:
17:53 dalek : Fixed const cast in const string hash for C++ compliance
17:53 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29355
17:54 spinclad looks to me that either get_n is declared (closed? not even closed?) at BUILD time before $n is bound, or $n is just lost from the closing.
18:05 Patterner what does Deparse gen(1) say?
18:29 silug joined #parrot
18:30 Theory joined #parrot
18:41 purl joined #parrot
18:43 Whiteknight joined #parrot
18:43 Whiteknight pmichaud, ping
18:43 Whiteknight nopaste?
18:43 clunker3 http://pasta.test-smoke.org/ or http://paste.husk.org/ or http://nopaste.snit.ch:8001/ or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/
18:43 purl nopaste is at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://rafb.net/paste or http://paste.husk.org/ or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or don't bother me while I'm eating or App::Nopaste or tools/dev/nopaste.pl
18:46 nopaste "Whiteknight" at 72.92.19.181 pasted "better multi consistency without any C coding" (23 lines) at http://nopaste.snit.ch/13572
18:47 Whiteknight message pmichaud Check out http://nopaste.snit.ch/13572, removing one line seems to solve our problem. Does get_hll_namespace return a class pmc?
18:47 purl Message for pmichaud stored.
18:48 Zaba_ joined #parrot
18:52 dalek r29356 | julianalbo++ | trunk:
18:52 dalek : Avoid hierarchy loops in class add_parent
18:52 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29356
18:55 Zaba joined #parrot
19:02 Whiteknight karma Whiteknight
19:02 purl whiteknight has karma of 180
19:10 dalek r29357 | Whiteknight++ | gsoc_pdd09:
19:10 dalek : [gsoc_pdd09] update to trunk r29355
19:10 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29357
19:18 spinclad Whiteknight: re http://nopaste.snit.ch/13572, it seems to be using the previous $P1 (from newclass ['ABC';'Bar']), ignoring get_hll_namespace's $P0.
19:19 Whiteknight yeah, it's a typo
19:19 Whiteknight it works still if you replace that $P1 with $P0
19:19 spinclad $P2 = new $P0?
19:19 spinclad ok
19:20 Whiteknight yes, that works for me
19:26 Zaba_ joined #parrot
19:39 Zaba joined #parrot
19:51 rdice joined #parrot
20:08 Limbic_Region joined #parrot
20:12 dalek r29358 | julianalbo++ | trunk:
20:12 dalek : Problem in RT#44811 was already fixed, unskipping the test
20:12 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29358
20:31 silug joined #parrot
20:48 ruoso joined #parrot
20:50 Zaba_ joined #parrot
20:52 Theory joined #parrot
20:52 pmichaud (namespace)   the nopaste still doesn't demonstrate creating a class from a namespace.
21:02 dalek r29359 | rgrjr++ | trunk:
21:02 dalek : * t/op/lexicals-2.t (added), MANIFEST:
21:02 dalek :    + Add three more lexical tests, pursuant to RT#56398.  The second is
21:02 dalek :      "todo", with resolution pending a new closure creation design.
21:02 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29359
21:04 Zaba joined #parrot
21:17 Andy joined #parrot
21:17 Zaba joined #parrot
21:26 dalek r29360 | rgrjr++ | trunk:
21:26 dalek : Install correct SVN metadata.
21:26 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29360
21:29 dalek r29361 | rgrjr++ | trunk:
21:29 dalek : [CORE] Make Emacs coda read-only in generated files (part of #37664).
21:29 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29361
21:41 dalek r29362 | rgrjr++ | trunk:
21:41 dalek : [CORE] Add "taking a continuation promotes RetCs", todo for RT#56458.
21:41 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29362
22:10 Zaba_ joined #parrot
22:26 cognominal joined #parrot
22:30 kid51 joined #parrot
22:36 cognominal joined #parrot
22:44 silug joined #parrot
22:57 jonathan I seriously want to punch everybody responsible for IE6.
22:58 * jonathan has *finally*, after hours of frustration, ironed out a bunch of IE6 CSS bugs.
22:58 NotFound jonathan: Still with the png issue?
22:58 jonathan NotFound: No, we just serve up transparent GIFs.
22:58 jonathan These were layout issues.
22:58 jonathan Some of them bizzare.
22:59 jonathan Not to mention oddities over what you can patch up in-page that was in an imported CSS file, and what you can't.
22:59 jonathan (Or there was some bug lurking deeper...)
22:59 jonathan Anyway, all solved now. Just in time for its deployment.
22:59 * jonathan will be happy to have this project off his plate
23:28 Zaba joined #parrot
23:39 dalek r29363 | jkeenan++ | parallel:
23:39 dalek : Consolidate multiple test files per configuration step into a single file.
23:39 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29363
23:40 Whiteknight joined #parrot
23:45 * jonathan sleeps
23:46 slightlyoff joined #parrot
23:47 slightlyoff left #parrot
23:49 Andy joined #parrot
23:54 Zaba_ joined #parrot

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

Parrot | source cross referenced