|
Parrot 0.8.2 "Feliz Loro" Released www.parrot.org/news/2008/Parrot-0.8.2 Set by moderator on 23 December 2008. |
|||
|
00:09
tetragon joined
00:10
AndyA joined
00:34
DietCoke joined
|
|||
| cotto | should new $P0, ['BigInt'] work in PIR? | 01:13 | |
| Tene | cotto: no, only in PASM, iirc | 01:32 | |
| in PIR you need $P0 = new ['BigInt'] | |||
| iirc | |||
| cotto | that make sense | 01:37 | |
|
01:39
gravity joined
|
|||
| particle | can't use $ in pasm, of course | 01:39 | |
| dalek | r35182 | cotto++ | trunk/t/pmc (3 files): | 01:43 | |
| : [t] start moving tests to $P0 = new ['Foo'] syntax | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35182 | |||
|
01:44
kid51 joined
01:46
TiMBuS joined
01:47
Fayland joined
01:52
TimToady joined,
jimmy joined
|
|||
| dalek | r35183 | cotto++ | trunk/t/pmc (9 files): | 01:56 | |
| : [t] bracket more PMC names | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35183 | |||
| chromatic | $P0 = new [ 'Type' ] and new $P0, [ 'Type'] should work identically in PIR. | 01:58 | |
| Only the latter works in PASM. | 01:59 | ||
| particle | no, $P0 doesn't work in pasm. | ||
| chromatic | Right, modulo that. | ||
|
02:02
MariachiElf joined
|
|||
| particle | and in pirc, new $P0 ['type'] doesn't work in pir, either | 02:03 | |
| er, forgot the comma | |||
| chromatic | pirc needs to support that then. | ||
| particle | i think we've done away with that in pir | ||
| i may be wrong | 02:04 | ||
| pir isn't pasm++ anymore | |||
| Whiteknight | pasm-- # karma fairness | 02:05 | |
| pmichaud | please tell me we haven't done away with new $P0, ['Type'] | 02:13 | |
| PCT depends on it. | |||
| chromatic | I don't see how we can avoid it. | 02:18 | |
| Nor do I want to, as much as I hate keys. | |||
| pmichaud | no, I mean the new $P0, $P1 syntax | ||
| it sounds to me as though particle is saying that it has to be $P0 = new $P1 | |||
| i.e., the equals sign is required. | 02:19 | ||
| particle | pmichaud: i *think* that's the direction pir has headed. i may be wrong, and i don't like it either, but that's what i recall | 02:20 | |
| PDD19 likely has the answer | |||
| pmichaud | I don't recall _ever_ hearing that we would disallow new $P0, $P1 | ||
| I do know that we were going to disallow things like $P0 = say | |||
| dalek | r35184 | cotto++ | trunk/t/pmc (10 files): | ||
| : [t] more test updates | |||
| particle | that, for sure, is true | ||
| dalek | review: www.parrotvm.org/svn/parrot/revision?rev=35184 | ||
| GeJ | I'm finishing to migrate t/oo/new.t from Perl to PIR (I'm giving names to the half bazillion of tests). | 02:21 | |
| particle | gej++ | ||
| GeJ | I'm switiching all the $I3 = isa $P1, $S3 to isa_ok($P1, $S3) patterns | 02:22 | |
| pmichaud | GeJ: good, as long as 'isa' isn't the thing being tested :-) | ||
| GeJ | pmichaud: usually the 'isa' line is followed by a is($I3, 1) | 02:23 | |
| pmichaud | GeJ: in that case isa_ok is better. | ||
| cotto | GeJ, are there other tests you're working on? | ||
| GeJ | cotto: t/oo/*.t | ||
| pmichaud | I don't see anything in pdd19 to indicate that new $P0, <whatever> is disallowed in PIR. | ||
| GeJ | new.t is the last one. | ||
| cotto | the rest are committed? | 02:24 | |
| nm. I'm in t/pmc | |||
| particle | is the ? modifier in .*? known as 'non-greedy' or is there another word for it? | ||
| 'minimal matching semantics' perhaps? | 02:25 | ||
| GeJ | not yet. I pastebin'd them for review. chromatic seemed ok with it. But once I'm done with new.t, I'll bundle them in a TT | ||
| pmichaud | particle: "eager" | ||
| particle | the opposite of eager, i want ?'s name | ||
| pmichaud | The ? means "eager" | 02:26 | |
| particle | oh. hrmm. | ||
| pmichaud | without the ? it's "greedy" | ||
| "eager" in the sense of "stop matching as soon as you can" | |||
| particle | so, it's eager to finish the match | ||
| pmichaud | right. | ||
| particle | thanks. | ||
| GeJ | isa/typeof question : if I `isa_ok($P0, $S0)` is it worth it to `$S1 = typeof $P0; is($S1, 'ExpectedClassName')` right after? | 02:29 | |
| pmichaud | GeJ: they test different things. | ||
| GeJ | new.t has a lot of those double checks (one with typeof, and then next with isa) | ||
| pmichaud | isa_ok($P0, $S0) is true if $P0 is of the same type as $S0, or any of $S0's subclasses | 02:30 | |
| GeJ | ok, so I'll keep the typeof tests then. | ||
| pmichaud | the latter form verfies that $P0 is _exactly_ the same type as $S0 | ||
| (modulo my continuing complaint about using string names to identify classes in PIR.) | |||
| GeJ | but just to be sure, it's OK to replace `$I3 = isa $P0, $SO; ok($I3, 1)` with `isa_ok($P0, $S0)` right? | 02:31 | |
| Hinrik | I think I recall the book Mastering Regular Expressions calls the '?' in .*? lazy | ||
| pmichaud | GeJ: yes, I'd accept that for now. There aren't good alternatives at the moment. | ||
| chromatic | Yeah, I remember disallowing $P0 = say, but nothing else. | 02:32 | |
| pmichaud | Hinrik: the Perl 6 synopses say "eager backtracking", so that's the term I've been using. | ||
| cotto | ok. In PIR, new ar, 'FixedPMCArray' works but new ar, ['FixedPMCArray'] doesn't | 02:38 | |
| pmichaud | odd. I think that's a bug. | ||
| in which case I'd report it to trac, and I wouldn't bother trying to convert them all now. | 02:39 | ||
| (because it means that many others are likely to not work also.) | |||
| I think that's something that allison++ needs to review and respond to before going much further. | 02:40 | ||
| cotto | ar = new ['FixedPMCArray'] works fine, so I've just been converting PIR code to use that | ||
| I'll file a TT and find other things to do. | |||
| pmichaud | they're actually the same, though. | ||
| i.e., ar = new ['FixedPMCArray'] means exactly the same opcode as new ar, ['FixedPMCArray'] | |||
| so there must be something else happening there. | |||
| chromatic | Ugh, sounds like an IMCC bug. | 02:43 | |
| cotto | TT'd | 02:49 | |
| dalek | r35185 | cotto++ | trunk/t/pmc (9 files): | 02:50 | |
| : [t] more test updates | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35185 | |||
| cotto | I'll hold of on further test conversions until that bug is fixed. | 02:51 | |
| jimmy | what is the difference? ar = new ['FixedPMCArray'] && ar = new 'FixedPMCArray' | 02:56 | |
|
02:57
Andy joined
|
|||
| chromatic | The former is a Key and the latter is a STRING | 02:58 | |
| new_p_pc versus new_p_sc | 02:59 | ||
| jimmy | I can't understand it completely | 03:02 | |
| cotto | You're a happier person if you don't completely understand Keys. | 03:03 | |
| chromatic | Maybe it's clearer to say that [ 'My'; 'Cool'; 'Class' ] is a three-element Key, while 'My::Cool::Class' is a single-element STRING. | 03:05 | |
| If 'My::Cool::Class' representes a class name with three separate components, it's only because of the convention that '::' separates class components in a class name. | 03:06 | ||
| Parrot doesn't support such a convention for STRINGs used as class names. | |||
| jimmy | maybe I want when I should use 'ar = new ['FixedPMCArray']' and when I should use 'ar = new 'FixedPMCArray'' | ||
| GeJ is confused, typeof can return an empty string, but isa won't match against it. | 03:08 | ||
| is this expected behavior? | |||
| jimmy | null $I0 and then typeof $I0, it will be error too. | 03:09 | |
| NULL != PMCNULL and can't typeof NULL | 03:10 | ||
| GeJ | in this case I have: $P0 = new 'Class'; $P1 = new $P0; $S1 = typeof $P1; is($S1, '') | 03:12 | |
| jimmy | I don't know it is expected behavior. | ||
| cotto: I know what's Keys, but, I don't why we should use it. | 03:15 | ||
| cotto | jimmy, docs/pdds/draft/pdd08_keys.pod (although it's in need of an update) | 03:17 | |
| jimmy | I can't find anything but array && hash. | 03:20 | |
| jimmy is so stupid that he can't understand them. | 03:32 | ||
| GeJ | jimmy: IIRC according to chromatic, nobody is supposed to understand Keys. | 03:33 | |
| jimmy doesn't know how to reply it. | 03:41 | ||
| cotto | jimmy, the pdd should give you an overview of Keys. Some of the Key code (src/pmc/key.pmc and src/key.c) is ugly, but you don't need to look at it unless you're trying to fix something. | 03:52 | |
| jimmy | the pdd_08 describes what's keys only, like php. Did I forget anything? | 04:06 | |
| and, ar = new ['FixedPMCArray'], if FixedPMCArray is a key, i don't know whose key it is? | 04:08 | ||
| dalek | r35186 | pmichaud++ | branches/rvar2/languages/perl6 (3 files): | 04:20 | |
| : [rakudo]: A different approach to handling our class lies -- | |||
| : we maintain a %?CLASSMAP hash enumerating our lies and keep on lying. | |||
| : We'll get rid of these lies when it's safe to tell Parrot the truth | |||
| : (i.e., when RT #43419 and/or TT #71 are fixed). | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35186 | |||
| r35187 | infinoid++ | trunk/languages/befunge (3 files): | |||
| : [cage] Fix some trailing whitespace. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35187 | |||
| r35188 | infinoid++ | trunk/languages/pheme: | |||
| : [cage] Add $Id$ to pheme's new Configure.pl. (It still needs a copyright line) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35188 | |||
| cotto | jimmy, afaict ar = new ['FixedPMCArray'] creates a new key containing the single value 'FixedPMCArray' and uses it on the "new" opcode. | ||
| jimmy | thanks, I think I understand now. | 04:28 | |
|
04:39
ChrisDavaz joined
|
|||
| cotto | Can Keys only contain Integers or STRINGs, or can they also contain PMCs? | 05:00 | |
| i.e. is KEY_pmc_FLAG obselete or still used? | 05:01 | ||
| chromatic | They can definitely contain PMCs, especially String PMCs. | 05:04 | |
| Infinoid | general PMC etiquette question. if PackfileDirectory.get_pmc_keyed_str() can't find a segment of the specified name, should it throw an exception, or return PMCNULL, or what? | 05:08 | |
| chromatic | Depends on the segment and what you're doing with it. | 05:09 | |
| Infinoid | this vtable is the normal mechanism for getting segments from the packfile by name. | 05:11 | |
| failure to find it is roughly equivalent to not finding a key in a hash, I guess | 05:12 | ||
| so can I return PMCNULL? or is that a no-no in PMC-land? | 05:13 | ||
| dalek | r35189 | pmichaud++ | branches/rvar2/languages/perl6/src/classes: | ||
| : [rakudo]: Restore => to build Pairs like it did before. | |||
| : This might not be correct semantics; clarification request | |||
| : sent to p6l. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35189 | |||
| chromatic | PMCNULL is reasonable in general. | 05:15 | |
| Infinoid | ok, thanks. | ||
| chromatic | I'm just thinking about what happens if you find a malformed packfile. | ||
| For example, what if the packfile has no directory or no constant table. | |||
| Infinoid | maybe we should throw an exception in that case. But this code is run way after the parsing phase. | 05:16 | |
|
05:16
masak joined
|
|||
| chromatic | PMCNULL seems fine then. | 05:17 | |
|
05:42
On joined
05:43
On joined
|
|||
| jimmy | the $ id: $ line in CREDITS displays ' <feff> # $Id: CREDITS 35120 2009-01-07 13:09:43Z jkeenan ' here by using vim. seems that there is a special character. | 06:18 | |
| masak | jimmy: ę©äøå„½! | 06:21 | |
| jimmy | masak: ę©äøå„½ | 06:22 | |
| masak | jimmy: ä½ ęåęä¹ę ·? (did I say that right?) | 06:26 | |
| nopaste | "infinoid" at 75.28.74.113 pasted "Implement compare() for the binary charset plugin. Is there any reason why this isn't a good idea?" (36 lines) at nopaste.snit.ch/15239 | 06:31 | |
| Infinoid | (yes, it assumes the same encoding. I'm not sure how all of that stuff works yet.) | 06:33 | |
| chromatic | As a first order approximation, it's better than nothing! | 06:34 | |
| Infinoid | I'm not sure a binary compare with an encoding other than FIXED_8 makes any sense... | ||
| but making sure the two are equal may be more generally useful. | 06:35 | ||
| dalek | r35190 | infinoid++ | trunk/src/charset: | 06:53 | |
| : Make a first stab at implementing compare() for the binary charset plugin. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35190 | |||
| r35191 | infinoid++ | trunk/docs/pdds: | |||
| : [pdd13] Clarify a TODO item somewhat regarding the potential use of | |||
| : ManagedStruct and/or UnmanagedStruct. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35191 | |||
| r35192 | infinoid++ | trunk/src/pmc (2 files): | |||
| : [pdd13] packfile.pmc's class-name is "Packfile". Rework some of the exception | |||
| : strings, to avoid confusion over the capitalization. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35192 | |||
| r35193 | infinoid++ | trunk (4 files): | 06:54 | ||
| : [pdd13] Implement PackfileDirectory.get_pmc_keyed_str (fetch segment by name) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35193 | |||
| r35194 | chromatic++ | branches/pdd09gc_part2 (9 files): | 07:30 | ||
| : [GC] Refactored GC functions into files which better reflect the division of | |||
| : responsibilities. In particular: | |||
| : - functions used throughout Parrot go in src/gc/api.c | |||
| : - individual collectors have their own files | |||
| : - src/smallobject.c has become src/gc/mark_sweep.c | |||
| : - src/gc/mark_sweep.c contains functions shared between the incremental and | |||
| : generational mark and sweep collectors | |||
| : There should be no functional changes visible to the rest of Parrot, assuming I | |||
| : have the headers correct. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35194 | |||
| chromatic | Hm, svn merge is slow. | 07:34 | |
| Tene | chromatic: speaking of, did you get that email about git that you asked for? | 07:35 | |
| chromatic | I did. | 07:38 | |
| I heard Stephen Hawking. "To bake an apple pie, you must first create the universe." | 07:39 | ||
| Then I played Guitar Hero. | |||
| Tene | Man, I haven't played GH in ages. | ||
| chromatic | I am a better and worse drummer than I remember. | 07:40 | |
| cotto | That'd better be a *really* good pie. | 07:44 | |
| Tene | It's the only pie. | ||
| masak | Want pie now! | 07:45 | |
| cotto | pie? | ||
| purl | rumour has it pie is true. or www.piecouncil.org/national.htm or london.randomness.org.uk/wiki.cgi?a..._value=Pie or www.austinthirdgen.org/upload/piechart.jpg or www.weebls-stuff.com/wab/ or flickr.com/photos/cowfish/3137913195/ | ||
| chromatic | In function ātrace_system_areasā: | 07:49 | |
| src/cpu_dep.c:67: error: āASSERT_ARGS_trace_system_areasā undeclared (first use in this function) | |||
| hmm | |||
| dalek | r35195 | chromatic++ | branches (499 files): | 08:22 | |
| : Brought the GC refactoring branch up to date with trunk r35194. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35195 | |||
|
08:36
tomyan joined
08:48
namenlos joined
08:53
iblechbot joined
09:06
Zaba joined
09:15
Zaba_ joined
|
|||
| chromatic | msg Infinoid r35190 (binary compare) seems to have broken Rakudo's t/00-parrot/07-op-string.t. | 09:15 | |
| purl | Message for infinoid stored. | ||
|
09:17
elmex joined
09:22
alvar joined
09:39
Zaba joined
10:42
mberends left
11:01
GeJ joined
11:07
ruoso joined
11:12
ruoso_ joined
11:14
ruoso_ joined
11:19
slavorg joined
11:22
clunker3 joined
11:41
gaz joined
11:58
donaldh joined
|
|||
| masak | mod_lolcode currently gives 53 Google hits. | 12:04 | |
|
12:04
Zaba_ joined,
riffraff joined
|
|||
| riffraff | hi | 12:04 | |
| purl | privet, riffraff. | ||
| masak | pmichaud: are there examples somewhere of PIR actions and assertions in Rakudo regexes? | 12:08 | |
| jonathan | masak: {{ PIR HERE }} and <?{{ PIR HERE }}> should be the syntax | 12:10 | |
| masak | jonathan: excellent, thank you. | ||
| I have an OpenID, but I still can't log in to the Perl 6 wiki at www.perlfoundation.org -- how do I know what my OpenID URL is? I've never needed it for other pages. | 12:15 | ||
|
12:15
Zaba joined
|
|||
| moritz | masak: what's your openid-provider? | 12:15 | |
| masak | moritz: myOpenID | 12:16 | |
| purl | myOpenID is pretty easy, but it *feels* confusing | ||
| masak | moritz: thanks, that helped! :) | 12:17 | |
| moritz | masak: you're welcome | ||
| ususually it's masak.myopenid/ or myopenid/masak | |||
| masak | it was carl.masak.myopenid.com/ -- I found out by Gmail-searching for 'myopenid' | 12:18 | |
| moritz | :) | 12:19 | |
|
12:23
Zaba_ joined
|
|||
| riffraff | how do I throw an exception in pir? I' grepping the sources but I'm finding only "rethrow" | 12:24 | |
| moritz | riffraff: take a look at languages/perl6/src/builtins/control.pir | 12:25 | |
| riffraff: and search for sub '!FAIL' | 12:26 | ||
| riffraff | ah I see | ||
| thanks | |||
| moritz | no, sub die | ||
| riffraff | I was looking at src/classes/Failure | ||
| moritz | 'throw ex', it seems | ||
| riffraff | yes, but with an exception pmc | 12:27 | |
| I assumed I could throw anything so I was trying with a string and got "no opcode", should have thought better | |||
| thanks again | |||
| jonathan | riffraff: Use "die" opcode to create an exception from a string. | 12:33 | |
| riffraff | oh, useful, thank you | ||
| masak | purl: check again? | 13:09 | |
| purl | masak: no idea | ||
| masak | purl: could you check again? | 13:10 | |
| purl | bugger all, i dunno, masak | ||
|
13:18
Wknight8111 joined
|
|||
| Coke | from yesterday at 6pm eastern; what is the difference between << new $P0, ['BigInt'] >> and << $P0 = new ['BigInt'] >> ? isn't the assignment syntax just PIR sugar? (Or is there sugar for new in the way of the sugar for the assignment syntax?) | 13:26 | |
| jonathan | I'd expect the two to be identical. | 13:28 | |
| If they're not, IMO it's a bug. | |||
| Whiteknight | yeah, the two should almost definitely be the same | 13:33 | |
| dalek | r35196 | rurban++ | trunk/ext/SQLite3: | 13:35 | |
| : Fix implib names for cygwin and mingw. | |||
| : Remove unneeded macros. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35196 | |||
| pmichaud | agreed, they should be the same. I think particle was misremembering some other changes being made to PIR. | 13:36 | |
| jonathan | pmichaud: OH HAI | 13:42 | |
| pmichaud | good morning | ||
| jonathan | See you got us lying to ourselves properly again. ;-) | ||
| pmichaud | yes. | ||
| and now have enumerated the lies we tell :) | 13:43 | ||
| jonathan | Did that pairs fix deal with some of the failing S29 tests? | ||
| pmichaud | yes. | ||
| jonathan | Great. | ||
| pmichaud | well, sort of. | ||
| I now have a question. | |||
| jonathan | Yes, I saw the p6l post. | ||
| Well, skimmed it...didn't think it over much yet. | |||
| pmichaud | this is another question I have, though | ||
| my $x = 100; my $p = Pair.new( :key<something>, :value($x) ); $p.value++; # $x changed? | 13:44 | ||
| more generally, do the attributes to .new cause assignment or binding? | |||
| (because the trunk version of rakudo currently does binding) | |||
| perl6: my $x = 100; my $p = Pair.new( :key<something>, :value($x) ); $p.value++; say $x; | 13:45 | ||
| polyglotbot | OUTPUT[100ā¤] | ||
| pmichaud | hmmm | ||
| okay, that's weird. | |||
| perl6: my $x = 100; my $p = ( something => $x ); $p.value++; say $x; | |||
| polyglotbot | OUTPUT[100ā¤] | ||
| jonathan | perl6: class Foo { has Int $.x }; say Foo.new(x => "OH HAI").x | 13:46 | |
| polyglotbot | OUTPUT[OH HAIā¤] | ||
| jonathan | Not going through infix:= then, or we'd get a type check error there. | ||
| perl6: class Foo { has Int $.x }; Foo.new.x = "OH HAI"; | |||
| polyglotbot | OUTPUT[Cannot assign to readonly variable.ā¤current instr.: 'die' pc 14950 (src/builtins/control.pir:204)ā¤called from Sub 'infix:=' pc 13316 (src/builtins/assign.pir:24)ā¤called from Sub '_block14' pc 98 (EVAL_12:47)ā¤called from Sub '!UNIT_START' pc 16311 (src/builtins/guts.pir:327)ā¤called from Sub | ||
| ..'parrot;PCT;HLLCompiler;eval' pc 950 (src/PCT/HLL... | |||
| jonathan | perl6: class Foo { has Int $.x is rw }; Foo.new.x = "OH HAI"; | 13:47 | |
| polyglotbot | OUTPUT[Type mismatch in assignment.ā¤current instr.: 'die' pc 14950 (src/builtins/control.pir:204)ā¤called from Sub 'infix:=' pc 13352 (src/builtins/assign.pir:32)ā¤called from Sub '_block14' pc 98 (EVAL_12:47)ā¤called from Sub '!UNIT_START' pc 16311 (src/builtins/guts.pir:327)ā¤called from Sub | ||
| ..'parrot;PCT;HLLCompiler;eval' pc 950 (src/PCT/HLLCompile... | |||
| pmichaud | perl6: my $x = 100; class Foo { has $.y; method set { $.y = 'xyz' } }; my $obj = Foo.new( y => $x ); $obj.set; say $x; | ||
| polyglotbot | OUTPUT[Cannot assign to readonly variable.ā¤current instr.: 'die' pc 14950 (src/builtins/control.pir:204)ā¤called from Sub 'infix:=' pc 13316 (src/builtins/assign.pir:24)ā¤called from Sub 'parrot;Foo;set' pc 315 (EVAL_12:126)ā¤called from Sub '_block14' pc 129 (EVAL_12:59)ā¤called from Sub '!UNIT_START' | ||
| ..pc 16311 (src/builtins/guts.pir:327)ā¤called fro... | |||
| pmichaud | perl6: my $x = 100; class Foo { has $!y; method set { $!y = 'xyz' } }; my $obj = Foo.new( y => $x ); $obj.set; say $x; | ||
| jonathan | That's another question. ;-) | ||
| polyglotbot | OUTPUT[xyzā¤] | ||
| pmichaud | that's my real question, there. | ||
| jonathan | Ah. | 13:48 | |
| pmichaud | (it doesn't work this way in rvar, but I'm wondering "how should it work"?) | ||
| jonathan | I *think* assignment. | ||
| pmichaud | I'm pretty sure the attribute should not be bound to the argument. | ||
| jonathan | Aye. Feels wrong. | ||
| pmichaud | but that was the source of the pairs bug I ran into | ||
| because we were using => to create Pairs | |||
| which in turn was calling Pair.new( key => ..., value => ...) | 13:49 | ||
| which in trunk does a binding | |||
| but in rvar2 it's now doing an assignment | |||
| which means the list of Pairs is not bound to the original values | |||
| jonathan | *nod* | ||
| pmichaud | which is where I said "okay, what _should_ this be doing?" and bumped it up to p6l. :-) | ||
| jonathan | I think for classes in general we should assign not bind. | 13:50 | |
| Pairs may or may not be a special case. | |||
| pmichaud | I agree, assign not bind. But then that begs the question of what Pairs should do. | ||
| jonathan | Well, see what p6l says. :-) | ||
| pmichaud | Personally, I would be surprised if my $pair = (key => $x); meant that we could then modify $x via the Pair | ||
| moritz | same here | 13:51 | |
| pmichaud | anyway, I've gone ahead and set rvar2 to use the same Pair semantics as trunk, so that we can pass tests until we know what the real answers are. | 13:54 | |
| jonathan | pmichaud: Got Slovak lesson now - back in 1h30 | ||
| pmichaud | okay, that works fine for me. | ||
| enjoy | |||
| jonathan | Please fix the rest of rvar2 fails ;-) | ||
| pmichaud | that's my only real task for the day. | ||
| jonathan | w00t! :-) | 13:55 | |
| I'll come and help later on. :-) | |||
| pmichaud | and Paula said she'd try to be less interruptive | ||
| (which she always does anyway) | |||
|
14:10
Andy joined
14:13
Zaba joined
14:21
iblechbot joined
14:30
Lorn joined
|
|||
| Whiteknight | does anybody use morph? | 14:34 | |
| and a follow-up question: would anybody be interested in the ability to override morph in PIR? | 14:35 | ||
| pmichaud | I've been thinking that it would be really nice to be able to use morph to change the type of a Sub PMC | 14:36 | |
| Whiteknight | I'm trying to fix vtable overrides of morph, I'm just sort of looking for some use cases to justify it | ||
| pmichaud | I'm not entirely certain what niche morph is intended to fill. | 14:37 | |
| but I do know that at some point I need the ability to change the type of a Sub PMC to a different type | 14:38 | ||
| Whiteknight | what I'm wondering is how exactly an overridden morph will work | 14:39 | |
| pmichaud | I don't know. | ||
| Whiteknight | will we say "self = new 'OtherType'"? | ||
| Coke | Infinoid: thanks for updating the configure.pl; i took the original one from tcl, which doesn't have same strictures. | 14:40 | |
| pmichaud | that would be something different. | ||
| one would have to probably use the 'copy' opcode | |||
| or maybe 'assign' | |||
|
14:40
alvar joined,
weechat_user joined
|
|||
| Coke | Whiteknight: same way an overridden morph works in PMCs? | 14:40 | |
| Whiteknight | well, however it happens. Can you fundamentaly change "self" in a vtable override? | ||
| pmichaud | Whiteknight: sure, Rakudo does it. | ||
| you just can't do it with a simple 'set' | 14:41 | ||
| Whiteknight | okay | ||
|
14:50
gryphon joined
|
|||
| masak | masak? | 15:10 | |
| purl | it has been said that masak is _not_ my best friend! or the cause of much confusion for purl or my worst nemesis or the anti-purl or out to get you or greatly tired of purl | ||
| dalek | r35197 | pmichaud++ | trunk/languages/perl6/docs: | ||
| : [rakudo]: spectest-progress.csv update: 279 files, 6175 passing, 0 failing | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35197 | |||
|
15:11
Andy joined
|
|||
| Whiteknight | I take it that masak and purl don't get along well? | 15:15 | |
| moritz | masak is *the* purl hater in #parrot | 15:16 | |
| masak? | |||
| purl | i heard masak was _not_ my best friend! or the cause of much confusion for purl or my worst nemesis or the anti-purl or out to get you or greatly tired of purl | ||
| moritz | it didn't capture that :-) | ||
|
15:16
kj joined
|
|||
| pmichaud | masak is also *the* purl hater in #parrot | 15:17 | |
| purl | okay, pmichaud. | ||
| pmichaud | it captured that. :-) | ||
| masak | thanks. | ||
| Whiteknight | whiteknight? | ||
| pmichaud | purl, whiteknight? | ||
| purl | pmichaud: bugger all, i dunno | ||
| Whiteknight | Whiteknight? | ||
| wknight8111? | |||
| purl | wknight8111 is, like, going to find some spare time this week and hack in some better error messages into PCT or seeing A LOT of warnings about incompatible type conversions | ||
| Whiteknight | haha, neither of those are accurate anymore | 15:18 | |
| purl forget wknight8111 | |||
| purl | Whiteknight: I forgot wknight8111 | ||
| moritz | moritz? | ||
| purl | somebody said moritz was Moritz Lenz, mailto:moritz@faui2k3.org | ||
| moritz | how very boring | 15:19 | |
| dalek | r35198 | Whiteknight++ | branches/jit_h_files/src/jit/i386 (2 files): | ||
| : [jit_h_files] move a few more functions over | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35198 | |||
| particle | moritz is also very boring | 15:21 | |
| purl | okay, particle. | ||
| particle | better? ;) | ||
| moritz | sure | ||
| masak | particle? | 15:23 | |
| purl | mailto:jerry.gay@gmail.com | ||
| masak | oh, and _that's_ not boring? :P | ||
| moritz | purl: particle is also thinking that others are boring | 15:25 | |
| purl | okay, moritz. | ||
| moritz | :-) | ||
| jonathan | back | 15:27 | |
| purl, jonathan | 15:28 | ||
| purl | you are mailto:jnthn@jnthn.net or trying to put together a grant application. | ||
| jonathan | It'll probably be true at some point in the future... | 15:29 | |
| pmichaud | big set of commits coming to rvar2, as soon as I finish some tests | ||
| jonathan | pmichaud: Happily, I have no local diffs. :-) | 15:32 | |
| dalek | r35199 | Whiteknight++ | branches/jit_h_files/src/jit/i386 (2 files): | ||
| : [jit_h_files] another handful of functions | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35199 | |||
|
15:33
AndyA joined
|
|||
| dalek | r35200 | pmichaud++ | branches/rvar2/src/pmc: | 15:41 | |
| : [core]: Improve 'key' method on CodeString PMC. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35200 | |||
| r35201 | pmichaud++ | branches/rvar2/compilers/pge/PGE: | |||
| : [pge]: Improve handling of 'namespace' and 'grammar' options. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35201 | |||
| r35202 | pmichaud++ | branches/rvar2/compilers/pct/src/POST: | 15:42 | ||
| : [pct]: Improve handling of namespaces, especially for hll_pir. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35202 | |||
| r35203 | pmichaud++ | branches/rvar2/t/pmc: | |||
| : [core]: Some additional tests for 'key' method of CodeString PMC. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35203 | |||
|
15:42
davidfetter joined
|
|||
| dalek | r35204 | pmichaud++ | branches/rvar2/languages/perl6/src (2 files): | 15:42 | |
| : [rakudo]: Make sure grammars are in correct namespace, subclass of Grammar. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35204 | |||
| pmichaud | time for another spectest run to see what's left. | 15:44 | |
| masak | looks like somebody had fun offline. | ||
| pmichaud | I tend to make sure changes to different major components are committed separately. | 15:45 | |
| makes them easier to investigate later, and to back out if needed. | |||
| masak | sounds sane. | ||
| atomic commits FTW. | 15:46 | ||
| jonathan | pmichaud: spectest'ing here too | 15:51 | |
| pmichaud | latest commits seem to have resolved the S05 fails. | 15:53 | |
| jonathan | pmichaud: is make test broken for you? | 15:55 | |
| pmichaud | might be. | ||
| jonathan | 'tis for me. | ||
| donaldh | Is the purpose of the Pointer PMC to hold an unmanaged pointer? | ||
| pmichaud | jonathan: yes, broken here also. | ||
| moritz | t/00-parrot/07-op-string.t is also broken in trunk | 15:57 | |
| oh, but not in the branch :) | |||
| Infinoid | donaldh: yes, where (if I understand correctly) "unmanaged" means "not subject to GC" | 15:58 | |
| donaldh | Infinoid: yes, that's what I need. | ||
| I think we spoke about this before. I'm pretty sure that mark() should do nothing then. Or not be overridden? | |||
| jonathan | pmichaud: That's odd. | 15:59 | |
| Oh! I know why. | |||
| My fault. | |||
| Infinoid | donaldh: mark() is nice for the case when the struct or whatever your pointing to is not GC'd, but it contains pointers to other things which are | ||
| s/your/you're/ | |||
| jonathan | pmichaud: Gotta sort out some boring web scripts for someone, and then I'll fix those and look at what remains failing. | ||
| pmichaud | okay. they don't seem to be affecting spectests significantly. | 16:00 | |
| jonathan | No, they won't. | ||
| pmichaud | yay, all of the S05 tests pass in rvar2. | ||
| jonathan | It's just the name changes to where we stick types for MMD. | ||
| pmichaud | I'll work on placeholders in S06, I think. | ||
| jonathan | I didn't update the tests. | ||
| Yes, placeholders would be a good fix. | 16:01 | ||
| donaldh | Infinoid: so Pointer.mark() is broken because PMC_struct_val(SELF) is always set (to PMC_NULL?) so it always corrupts the data, or tries to dereference at least. | 16:02 | |
| Question is should it do anything at all ? | 16:03 | ||
| dalek | r35205 | Whiteknight++ | branches/jit_h_files/src/jit/i386 (2 files): | 16:04 | |
| : [jit_h_files] a few more functions | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35205 | |||
| Infinoid | oh, I see. Pointer.mark() is only checking it against NULL, not PMCNULL | ||
| donaldh | Yup. Is the intention that you can set a custom mark function as a struct val? | 16:05 | |
| Infinoid | yeah. if it's been given a custom mark function (and PMC_struct_val is where we put that), then it should call it | ||
| jonathan | pmichaud: Looking good. No S05 fails, and only one S29 | ||
| Infinoid | sounds like its just the NULL check that's off | ||
| donaldh | k, I can fix that. | ||
| pmichaud | excellent. | ||
| Infinoid | (this used to work. is some new PMC setting it to PMCNULL instead of NULL?) | 16:06 | |
|
16:06
riffraff joined
|
|||
| jonathan | If you fix t\\spec\\S06-signature\\code.t it would probably win back an integration tests too. | 16:06 | |
| pmichaud | okay. | ||
| after placeholders. | |||
| jonathan | Cool. | ||
| particle | jonathan: did you get a new pc? | 16:10 | |
| or am i wrong in thinking your tests run quicker now | |||
| pmichaud | or just perhaps rakudo and parrot are faster now :-) | 16:11 | |
| Coke | implements the same type of solutions in a different language for a different client. | ||
|
16:12
ruoso joined
|
|||
| particle | pmichaud: i think i'd notice that here, too :P | 16:12 | |
| donaldh | Infinoid: all PMCs seem to be initialised with PMCNULL in these fields. | ||
| jonathan | particle: Nope, same old. | 16:15 | |
| particle: My desktop hasn't been that bad on 'em. | |||
| It's my laptop that is horribly slow. | |||
| particle | ah, that explains it :) | ||
| jonathan | I use my laptop infrequently enough that it doesn't ever bother me enough to spend money on a new one. | 16:16 | |
| "Hmm...buy a new laptop which I'll use a couple of weeks a year...or go on a week's vacation..." | |||
| I'll have to at some point, but I'm not really the shiny-new-stuff-for-the-sake-of-it kind. :-) | |||
| particle | boy, those annotations would really help in debugging this stuff | 16:20 | |
| Null PMC access in get_string() | |||
| current instr.: '!meta_compose' pc 16757 (src\\builtins\\guts.pir:444) | |||
| called from Sub 'parrot;Str;_block1113' pc 2277 (EVAL_21:483) | |||
| how do i find _block1113's perl 6 code? | |||
| jonathan | particle: I fear you don't, because that's initialization code. | 16:21 | |
| particle | ayep. | ||
| pmichaud | --target=pir, search for _block1113 | ||
| jonathan | particle: --target=pir it | ||
| particle | ok | ||
| Infinoid | cool, I think I found a rakudo bug | ||
| particle | i'm looking at S02-... | ||
| Infinoid | string operators like ~| and ~&= appear to result in a STRING whose charset is binary, not ascii | 16:22 | |
| pmichaud | rakudo doesn't distinguish binary from other strings yet. | ||
| Infinoid | until yesterday (r35190), compare on binary strings always returned 0 (true, equal) | ||
| that's fine, parrot should be able to handle it | 16:23 | ||
| but now that binary compare actually compares, t/00-parrot/07-op-string.t fails a couple of tests (14 and 15) | |||
| I've set a breakpoint on the compare function, and the strings its being fed are very obviously wrong | |||
| s/wrong/different/ | |||
| test 14 in that file, for example, seems to rely on " " being equal to "A" | 16:24 | ||
| trouble is, I don't know enough perl6 to know what's supposed to be happening here | |||
| pmichaud | Infinoid: no, it relies on 'a' & ' ' being 'A' | 16:25 | |
| which I think might be wrong. | |||
| Infinoid | at the point the comparison function is run, $s contains " " | 16:26 | |
| whether it should or not is the bit I don't know | |||
| pmichaud | thinking. | ||
| purl | Oooh he is soooo fine!!! | ||
| particle | perl: ord('a') | ||
| pmichaud | 'a' is 01100001 | ||
| particle | :) | ||
| pmichaud | ' ' is 00100000 | ||
| so the result should be ' ' | |||
| so I think the test is wrong. | |||
| Infinoid | great, I can fix that | 16:27 | |
| pmichaud | Infinoid++ | ||
| Infinoid | and I'm guessing test 15 should be a string of spaces, for the same reason? | ||
| pmichaud | yes. | ||
| Infinoid | ok, thanks for helping. I grepped S03 for "~&=" but didn't find anything | 16:28 | |
| dalek | r35206 | pmichaud++ | branches/rvar2/languages/perl6/src/parser: | ||
| : [rakudo]: Remove some more helper subs that we no longer use. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35206 | |||
| donaldh | Infinoid: weird, in my testcase the Pointer pmc's struct val ends up being a Pointer pmc, not PMCNULL | ||
| particle | Infinoid: in the future, try grepping for the thing without the trailing = | 16:29 | |
| Infinoid | ah, ok. | 16:30 | |
| donaldh: a Pointer pointing to a Pointer PMC instead of a mark function? | 16:32 | ||
| donaldh | Yup, something like that. | 16:33 | |
| Infinoid | beautiful. yeah, that sounds like a bug | ||
| dalek | r35207 | infinoid++ | trunk/languages/perl6/t/00-parrot: | 16:34 | |
| : [rakudo] Fix a couple of broken tests uncovered by r35190 (implementing the binary compare function). | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35207 | |||
| particle | class Str is also { method id() { self } } # Null PMC access in get_string(); current instr.: '!meta_compose' pc 16757 (src\\builtins\\guts.pir:444) | 16:41 | |
| pmichaud, jonathan: are one of you working on this, or should i jump in? | |||
| pmichaud | you can jump in if you want :-) | ||
| particle | now i've got to figure out how... | ||
| pmichaud | start by looking at the PIR that is generated for that line | 16:42 | |
| especially the call to !meta_compose | |||
| particle | i have it now | ||
| pmichaud | actually, I suspect the problem is in meta_compose itself. | ||
| it might not know how to deal with is_also | |||
| particle | or meta_create | ||
| pmichaud | actually, I'm certain that's the case. | ||
| particle | ok, i'll look there. great. | 16:43 | |
| pmichaud | that's a bug I just introduced, I think. | ||
| particle | it's the first failure i saw in the test suite, in S02-... | ||
| pmichaud | $P0 = getprop 'pkgtype', metaclass | ||
| particle | figured i'd take a stab at fixing it | 16:44 | |
| yep, that's the line | |||
| pmichaud | need to deal with the case where 'pkgtype' isn't set. | ||
| particle | ok then. | ||
| pmichaud | if $P0 comes back null, skip the 'register' line (because the class is already registered) | ||
|
16:44
kj joined
|
|||
| pmichaud | i.e., skip beyond the call to .'register' | 16:44 | |
| alternately, change !meta_create so that it always sets 'pkgtype' on class | 16:45 | ||
| but I think I prefer the former solution | |||
| particle | i'll rebuild as soon as my original test run finishes | ||
| pmichaud | (we shouldn't allow a declaration to change a class' pkgtype) | 16:46 | |
| particle | it's on S29-num now, so close. | ||
| pmichaud | (don't need to trap for that yet) | ||
|
16:49
hercynium joined
|
|||
| dalek | r35208 | Whiteknight++ | branches/jit_h_files/src/jit/i386 (2 files): | 16:52 | |
| : [jit_h_files] moved the remainder of the functions over to the .c file. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35208 | |||
|
16:52
slavorgn joined
|
|||
| particle downloads windows 7 beta x64 | 16:58 | ||
| donaldh wonders if particle is mad, or just very very brave | 16:59 | ||
| particle | it's just another virtual machine, so i'll have 15 total. | ||
| interested to see how parrot builds there, though :) | 17:00 | ||
| Infinoid guesses it might fail a test or two :) | |||
| PerlJam | particle++ pioneerism is good | 17:02 | |
| pmichaud shoots arrows at particle's back. :-P | 17:04 | ||
| okay, they're not really arrows. More like "Nerf darts", of which we have an abundance around here lately. | |||
| particle | i've been wondering why you're hacking and not building something out of legos this season | ||
| pmichaud | oh, I'm doing legos also. | 17:05 | |
| dalek | r35209 | particle++ | branches/rvar2/languages/perl6/src/builtins: | ||
| : [rakudo] don't try to register already registered classes; +52 tests | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35209 | |||
| pmichaud | Matthew got a couple of nice Lego sets for christmas. We built one quickly -- we're in the midst of building another. | ||
| dalek | r35210 | Whiteknight++ | branches/jit_h_files/src/jit/i386 (2 files): | ||
| : [jit_h_files] Use the header file directly, kill duplicate definitions, some random cleanups | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35210 | |||
| pmichaud | but he has homework to do in the evenings so Lego-building time is limited. | ||
| Whiteknight LOVES legos | 17:06 | ||
| moritz to | 17:07 | ||
| pmichaud | I need to take more photos of our collection, which has grown quite a bit. | ||
| Whiteknight | I had so many as a kid it was a public menace | ||
| moritz | pmichaud: does the ~ thing in grammars work in rakudo? | ||
| pmichaud | moritz: it should. | ||
| moritz: same engine. | |||
| moritz | ah, "needs tests" status ;-) | ||
| dalek | r35211 | pmichaud++ | branches/rvar2/languages/perl6/src/parser: | 17:08 | |
| : [rakudo]: A bit more signature refactoring, placeholders generate a | |||
| : proper Signature object. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35211 | |||
| pmichaud | PGE has some tests for it, but Rakudo doesn't. | ||
| okay, let's see how much is cleared up by r35211. | |||
| particle | pmichaud: sub f{*%p) { my %p; } # should you get a redeclaration error? | 17:10 | |
| or should it be a warning? | |||
| pmichaud | particle: jonathan and I both think that should be an error or warning. | 17:11 | |
| particle | me too, but which? | ||
| particle consults S02 | |||
| moritz | my $x; my $x; # is a warning | ||
| PerlJam | aren't redeclarations a warning in the absence of a pragma to fatalize them? | 17:12 | |
| I seem to recall TimToady saying something like that. | |||
| moritz | it would make sense to apply the same for signatures/lexicals | ||
| pmichaud | or in the absence of a 'proto' | ||
| PerlJam | right. | ||
| pmichaud | I don't have a convenient warn-from-compiler mechanism yet. | ||
| particle | ok, then. now i know what to look for to make a fix | ||
| pmichaud | so I chose to fatal them for now. | ||
| particle | ah. well, we have a test that does that, not sure why.... | ||
| pmichaud | particle: if you want to try to change the "Redeclare..." error message to be a warning, that'd be fine. | ||
| might be as simple as calling warn(). | 17:13 | ||
| particle | yep, trying now | ||
| Whiteknight | pmichaud, what do you mean a "warn from compiler mechanism"? Would such a beast be hard to implement? | ||
| pmichaud | Whiteknight: right now compiler error messages in Rakudo are generated by calling .panic on the match object. | 17:14 | |
| we don't have a .warn method . | |||
| not hard to implement, more a design decision about how/where to do it. | |||
| if calling warn(...) works, then I say to use that :-) | |||
| Whiteknight | okay, because I'm always looking for little projects to do | 17:15 | |
| I'm loaded up on big projects :) | |||
| pmichaud | I'd really like to see TT #8 fixed. :-) | ||
| particle | pmichaud: why do i see getprop foo, 'bar', baz and not foo = getprop 'bar', baz in rakudo code? | 17:19 | |
| pmichaud | particle: I don't understand the question. | ||
| particle | pasm syntax rather than pir syntax | ||
| jonathan | particle: Both are valid PIR. | ||
| pmichaud | pasm opcode syntax is pir opcode syntax | ||
| particle | yes, do you have a style preference? | 17:20 | |
| pmichaud | whatever style is more readable. | ||
| jonathan | Whatever keys the fingers hit. | ||
| ;-0 | |||
| pmichaud | getprop is odd because of the way it orders arguments, however. | ||
| particle | ok. i find C<foo = getprop> more readable | ||
| pmichaud | (relative to setprop) | ||
| jonathan | We use that form for getprop consistently. | ||
| I think. | |||
|
17:20
Theory joined
|
|||
| pmichaud | I might've used the non-PIR form | 17:20 | |
| jonathan | pmichaud: Yes, the parameter ordering on that op trips me up all over. | ||
| I think I've tended to use the non-PIR form. | 17:21 | ||
| Dunno why. | |||
| particle | we need that opcode review done | ||
| getprop is an ugly op :( | |||
| jonathan | Changing that ops operands around would be a deprecation cycle. :-( | ||
| pmichaud | well, the opcode review was only going to suggest opcodes for deprecation -- I wasn't going to change any existing opcode semantics that we were going to keep. | ||
| particle | yes, and this is our last chance for deprecation before march | ||
| jonathan | I don't think it's so past we gotta change it. | ||
| pmichaud | jonathan: we could just introduce a new opcode with the correct sequence | ||
| jonathan | If that were our biggest problem, well, I'd be happy. | ||
| pmichaud: Yes, true. But we'd want to deprecate the old too. | 17:22 | ||
| pmichaud | we can leave the old one around for a few cycles if needed. | ||
| particle | sure, like get_prop :) | ||
| pmichaud | I agree with jonathan -- it's waaaaaay down my list of things that bug me at the moment. | ||
| particle | there's something to opcode name consistency | ||
| pmichaud | please, not get_prop | 17:23 | |
| particle | sure, just checking, since it's been a while | ||
| pmichaud: i'm not making any design decisions here | |||
| just pointing out opcode inconsistencies that bother me | |||
| pmichaud | okay, looks like placeholders are working again. | 17:24 | |
| jonathan | pmichaud++ | 17:25 | |
| particle: Which bug is it you're looking at tracking down, so we don't dupe effort? | |||
| pmichaud | the list is definitely getting shorter. | ||
| okay, time for lunch for me. | |||
| particle | S04-declarations/my.rakudo aborted 47 test(s) | ||
| pmichaud | particle: if you just change that to be a warning, then it should pass. | ||
| (a redeclaration warning, that is) | |||
| particle | no, there are other bugs in that file | 17:26 | |
| dalek | r35212 | Whiteknight++ | branches/jit_h_files/src/jit/i386: | ||
| : [jit_h_files] various cleanups and fixes | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35212 | |||
|
17:26
tomyan left
|
|||
| particle | Null PMC access in getprop() | 17:26 | |
| current instr.: 'infix:=' pc 13475 (src\\builtins\\assign.pir:21) | |||
| getprop ro, 'readonly', cont | |||
| so cont is null | 17:27 | ||
| pmichaud | oh | 17:28 | |
| in addition to changing the .panic to a null, you have to make sure the rest of the variable_declarator function isn't run. | |||
| particle | ah, .panic to warn(), and gotcha! | ||
| pmichaud | although that's not entirely enough either | 17:29 | |
| we have to somehow tell scope_declarator that this is a redeclaration, and not to handle it. | |||
| perhaps just avoiding the .isdecl(1) call would be sufficient | 17:30 | ||
| i.e., put $var.isdecl(1) as an else clause to the 'if' | |||
| particle | i'll try an else clause | ||
| :) | |||
| pmichaud | internally the problem is that the PAST is resulting in two .lex statements in PIR | ||
| because the same lexical is being :isdecl'd twice. | 17:31 | ||
| someday I hope to fix PAST::Compiler to detect and route around that. | |||
| (currently PAST::Compiler considers re-definition as undefined and likely broken behavior) | |||
| particle | a lexical registry? | ||
| pmichaud | more generally there's going to be an internal registry | 17:32 | |
| particle | sure, with different types to track | ||
| pmichaud | in particular, PAST::Compiler will be able to figure out when a given PAST::Var node is already associated with a register and re-use that register | ||
| instead of doing a separate fetch. | |||
| particle | else isn't enouph | 17:33 | |
| pmichaud | yeah, we'll need to flag the variable as a redeclaration somehow so that scope_declarator doesn't try reprocessing it. | ||
| that's why I was calling .panic, I guess :-) | 17:34 | ||
| anyway, lunchtime for me. | 17:35 | ||
| (fwiw, I'm willing to temporarily regress on the my.t and multiple.t tests if it allows us to merge back to trunk. | 17:36 | ||
| jonathan fixes make test | |||
| particle | jonathan: did you see infinoid++'s commits to trunk? | 17:37 | |
| dalek | r35213 | jonathan++ | branches/rvar2/languages/perl6/t/pmc (3 files): | ||
| : [rakudo] Update Perl6MultiSub PMC tests. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35213 | |||
| Whiteknight | yay! I think I've finally finished with this damn branch | ||
| dalek | r35214 | Whiteknight++ | branches/jit_h_files/src/jit/i386: | ||
| : [jit_h_files] cleanups: codingstd and whitespace fixes for consistency | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35214 | |||
| jonathan | particle: Which ones? | ||
| particle | for rakudo's make test | ||
| jonathan | No, I missed those... | ||
| particle | www.parrotvm.org/svn/parrot/revision?rev=35207 | 17:38 | |
| that might be the only relevant commit | |||
| jonathan | oh, nice | 17:39 | |
| Infinoid++ | |||
| OK, why does we epic fail S12-class/anonymous.t... | 17:40 | ||
| Segfault. Epic indeed. | |||
| ...in the COW strings code. :-| | 17:42 | ||
| particle | got lexicals problems, too | 17:44 | |
| dalek | r35215 | jonathan++ | branches/rvar2/src/pmc: | 17:45 | |
| : [core] Add missing null check (string_copy is marked as not expecting a NULL). | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35215 | |||
|
17:46
pdcawley joined
|
|||
| jonathan | That stops us segfaulting, but of course doesn't fix the test. | 17:46 | |
| particle: Really? Ouch. | 17:48 | ||
| particle | my $d = ''; | ||
| class Int is also { method some_meth_1 { $d = $d ~ self } }; | |||
| for 0 .. 5 { .some_meth_1 }; | |||
| # Lexical '$d' not found | |||
| jonathan | particle: Oh, that's not new. | 17:51 | |
| purl | so bite me | ||
| jonathan | particle: We haz that in trunk also. | ||
| particle | oh? | ||
| jonathan | Interaction between :init :load (or one of 'em) and :outer, IIRC. | ||
| As in, bad interaction. | |||
| particle | so it seems | ||
| .sub "some_meth_1" :subid("13") :method :outer("12") | 17:52 | ||
| .sub "_block22" :load :init :subid("12") | |||
| jonathan | Right. We don't emit a :outer there as it triggers parrotbug. | ||
| particle | .lex '$d' is in :subid("11") | 17:53 | |
| grr. | |||
| however, i do see | |||
| .sub "" :load :init :subid("post16") :outer("10") | |||
| in the same file | |||
| which has :load, :init, and :outer | |||
| jonathan | Oh, hmm. | ||
|
18:01
alvar joined,
donaldh joined
|
|||
| donaldh | wahoo. I've finally tracked down my elusive bug. | 18:03 | |
| Whiteknight | donaldh++ | ||
| donaldh | All PMCs returned from the free pool have their _struct_val pointing back into the free pool. | 18:04 | |
| nopaste | "donaldh" at 144.254.91.104 pasted "PATCH: zero the _struct_val pointer before returning an object from the free pool" (12 lines) at nopaste.snit.ch/15241 | ||
| Infinoid | as discussed in #ps, I've just created TT #138 to request moving to git when we switch from svn.perl.org to git. If anyone has an opinion (or even just +1 or -1), please comment. | 18:07 | |
| PerlJam | assuming s:2nd/git/parrot.org/ :-) +1 from me | 18:08 | |
| donaldh needs to start using git | 18:09 | ||
| Infinoid | though, even if the main repository isn't using git, some sort of bidirectional mirror/gateway would get a +1 for me. | ||
| jonathan hasn't tried git yet | |||
| PerlJam | jonathan: understanding that there this thing called the "index" that's a staging area for commits is the biggest hurdle IMHO. The rest is just knowing that there are git-commands for everything | 18:10 | |
| (some people around here might find git-bisect very useful for instance :) | |||
| Coke | (moving to git) so by that request, svn would no longer be supported? | 18:11 | |
| donaldh | Can someone look at my nopasted patch? | ||
| Tene | Infinoid: +1 | ||
| purl | 1 | ||
| Infinoid | Coke: I don't know how the details would work out yet. It's possible that we can do some gatewaying, one way or the other | 18:12 | |
| jonathan | PerlJam: How is support on various platforms? | 18:13 | |
| donaldh | I can submit a bug but it might be worth patching sooner than later. | ||
| jonathan | PerlJam: Win32 support is my main concern. | ||
| donaldh: looking | |||
| PerlJam | jonathan: I figured you were going to say that ... I've never used it on windows. | ||
| Tene | jonathan: I'm told that win32 support is just fine these days | 18:14 | |
| jonathan | donaldh: Makes sense. | ||
| donaldh: However, why 0 and not NULL? | |||
| Tene | I've never used it myself, as I have no win32 boxes. | ||
| jonathan | 0 may cause warnings? | ||
| donaldh | jonathan: sure, is that the codingstd? | ||
| jonathan | It's a pointer, so I'd expect to set it to NULL. | ||
| donaldh | np | 18:15 | |
| jonathan | But that aside, the patch makes sense and it wouldn't surprise me if it helps with bugs other than that you were searching for, or avoids them in the future. | ||
| dalek | r35216 | jonathan++ | branches/rvar2/languages/perl6/src (2 files): | 18:17 | |
| : [rakudo] Mostly fix anonymous classes; only problem now is that .WHAT doesn't hand back the empty string, but should be easily fixable. 9/10 tests pass. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35216 | |||
| donaldh | Fantastic. I'm a step closer to a reliable rakudo / sqlite / mod_parrot app. | 18:19 | |
| Infinoid | donaldh++ | ||
| donaldh wasn't expecting to become a parrot internals hacker along the way. | 18:20 | ||
| jonathan | donaldh: You have my sympathies. ;-) | ||
| donaldh | jonathan: code.google.com/p/msysgit/ | 18:21 | |
| dalek | r35217 | rurban++ | branches/pdd30install_stage4/t/pmc: | 18:22 | |
| : TT#121 also on cygwin. same as trunk. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35217 | |||
| Tene | I really wish someone could help me with the loadlib/HLL bug I posted about. I'm not looking forward to diving into that part of the internals. | 18:25 | |
| jonathan | Tene: Nor is whoever you might sucker into helping you, I suspect. :-) | ||
| Tene | Well, yeah, but obviously my feelings count more than anyone else's. | 18:26 | |
| jonathan | Tene: My main cycles at the moment are going on rvar branch, since I can't do much else on Rakudo until it's done. | 18:27 | |
| Tene: But once that's merged, I'll see if I can come up with anything. | |||
| moritz | (make -j)++ | 18:28 | |
| Whiteknight | Tene, what's the ticket number? | ||
| Tene | jonathan: that's fine. I'm supposed to be spending cycles on $realjob right now anyway. :) | ||
| Whiteknight | I've got a tuit or twoits to spare today | ||
| Tene | Whiteknight: I haven't gotten it into a ticket yet. Web interfaces bug me. | ||
| "load_bytecode, loadlib, and HLL" on parrot-dev | 18:29 | ||
| if you want to post it to a ticket, that would be great. | |||
| Whiteknight | great...now I have to go digging through my email inbox | ||
| Whiteknight gets way too much email | |||
| Tene | I could send 100k copies to you with randomly generated subjects and from: addresses if that would help. | 18:30 | |
| Infinoid | Whiteknight: Subject: load_bytecode, loadlib, and HLL | ||
| ah, Tene++ already said it. oops :) | |||
| Whiteknight | wow, that issue looks like a doozy | 18:32 | |
| what does Parrot_register_HLL_lib do? | |||
| Tene | I'm not sure. | ||
| dalek | r35218 | Whiteknight++ | (6 files): | 18:38 | |
| : [jit_h_files] merging this branch into trunk. Should only affect JIT on i386 platforms, so if anybody sees and ill-effects anywhere else, let me know. | |||
| : Messes with the makefile, so you might need to do a make realclean && perl Configure.pl after this. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35218 | |||
| Whiteknight | it appears Parrot_register_HLL_lib only adds the library to the list of HLL libraries. says to me that it expects that library to define a new HLL | 18:43 | |
| moritz | nopaste.snit.ch/15243 | 18:51 | |
| Whiteknight: I get the build failure in the above (JIT stuff) | 18:52 | ||
| Whiteknight | urg | ||
| moritz | that was with make -j 2 | ||
| I now try a serial make | |||
| Whiteknight | I've been testing the hell out of that branch, how did I miss this error? | 18:53 | |
| moritz | also fails for a serial build | ||
| Whiteknight | ...I'm looking at it again now | ||
| did you make realclean? | |||
| moritz | this is Debian Stable, on i386 32 bit | ||
| yes | |||
| Whiteknight | I'm running it again. that stupid JIT_EMIT macro is the thing that's been making this work so hard | 18:55 | |
| mj41 | Whiteknight: tt.ro.vutbr.cz/report/pr-Parrot/rp-trunk/ | 18:56 | |
| Whiteknight | thanks | 18:57 | |
| dalek | r35219 | Whiteknight++ | trunk/src/jit/i386: | 19:01 | |
| : [JIT] fix tests for a macro which might actually not be defined everywhere (eventually, JIT_EMIT is going to disappear entirely) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35219 | |||
| Whiteknight | moritz, can you svn up and try it again please? | 19:02 | |
| dalek | r35220 | jonathan++ | branches/rvar2/languages/perl6/src/parser: | ||
| : [rakudo] Restore handling of : param separator for the invocant somewhat. This fixes some tests, and is a step towards getting multimethods working again. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35220 | |||
| moritz | Whiteknight: svn-upping right nwo | ||
| Whiteknight | thanks | ||
| I'm going to be so happy when I can delete that stupid macro once and for all | 19:03 | ||
| moritz | Whiteknight: src/jit_defs.c:2632: error: non-static declaration of āarch_infoā follows static declaration | ||
|
19:03
chromatic joined
|
|||
| moritz | src/jit_emit.h:1898: error: previous declaration of āarch_infoā was here | 19:03 | |
| Whiteknight | why don't any of these errors show up in my compiler? | 19:05 | |
| dalek | r35221 | Whiteknight++ | trunk/src/jit/i386: | ||
| : [JIT] fix extraneous "static" modifier, which should have been an "extern" instead. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35221 | |||
| Whiteknight | as far as MSVC is concerned, the code is perfect | 19:06 | |
| moritz | Whiteknight: build gets much further than before | 19:07 | |
| no errors so far | 19:08 | ||
| jonathan | pmichaud: Going for dinner. Next up for me is getting multi-methods working again, which should win us back a decent few more tests. | ||
| Whiteknight | haha! I keep hoping it's going to go all the way | ||
| moritz | ... and succeeds. Now for 'make test' | ||
| Whiteknight | moritz++ | ||
|
19:10
clunker3 joined
19:11
petdance joined
|
|||
| Whiteknight | okay make test passed for me with no failures | 19:14 | |
| moritz | same here | ||
| Whiteknight | w00t | ||
| I'm running make testj too, just to be sure. | |||
|
19:15
jsut|work joined
|
|||
| particle logs in to windows 7 | 19:17 | ||
| moritz bisects a perl5 bug | 19:18 | ||
| git-bisect++ | |||
| pmichaud | particle: (Lexical $d not found) -- I marked that as skip in t/spec, I thought. | 19:21 | |
| particle | maybe i need to update t/spec... | ||
| moritz | Whiteknight: I even got two TODO passed in `make testj' | 19:22 | |
|
19:22
geof joined
|
|||
| Whiteknight | nice, I only got 1 TODO to pass | 19:23 | |
| chromatic | One of those TODO is probably a mis-pass, in the annotations tests. | ||
| moritz | /op/debuginfo 8 and t/pmc/exception 30 | 19:24 | |
| particle | gotta figure out how to fix the smoke failures i keep getting notified about. they're rolling in like nobody's business. | ||
| Coke | I think we should adopt a policy that if a test fails on a platform consistently, we should todo it. | ||
| particle | pmichaud: down to 344 failing tests here, but i'll re-run for.t | ||
| Coke | (if we're going to rely on smolder to tell us when new things are broken.) | ||
| particle | we should fix it, and if not possible, todo it. | 19:25 | |
| Coke | sorry, implied that with teh consistently. should have been explicit. | ||
| particle | eventually (soon, i hope) failing tests will become #1 priority | ||
| chromatic | We don't already have that policy? | ||
| I TODO tests I see failing consistently on other platforms. | |||
| particle | it's not enforced. | ||
| chromatic | I suppose that's predicated on people actually reporting failures. | 19:26 | |
| Coke | chromatic: arguably, running 'make smoke' /is/ reporting them. | ||
|
19:27
dtg joined
|
|||
| chromatic | Someone (sigh, why does it always end up being me?) should look at trends there then. | 19:28 | |
| Coke | I would rather you stayed on GC. =-) | ||
| it doesn't even need to be someone with commit bits. | |||
| mostly just knowing test::more in perl would do. | |||
| particle | 344-37 | 19:29 | |
| purl | 307 | ||
| particle | 5895+37 | ||
| purl | 5932 | ||
| particle | pmichaud: got 5932 passing, 307 failing atm | ||
| pmichaud | okay. | ||
| I'm running an updated spectest on my box to see what's left. | 19:30 | ||
| particle | shall we delete the jit code for these non-core archs? | 19:32 | |
| it's virtually untestable, so should it appear in 1.0? | 19:33 | ||
| chromatic | I'd hate to have to recreate it. | ||
| But it's not that stable. | |||
| And it's not going to get maintained without a platform champion. | 19:34 | ||
| particle | we do have svn log | ||
| NEWS: removed jit code for non-core platforms | |||
| chromatic | How about we deprecate it, pending the appearance of a platform champion, then whack it if no progress in a month. | ||
| particle | worksforme | 19:35 | |
|
19:35
gmansi joined
|
|||
| Whiteknight | works for me, then we can just close those tickets I opened | 19:48 | |
|
19:51
riffraff joined
|
|||
| pmichaud | jonathan: ping (when you get back) | 20:01 | |
| purl | I can't find (when in the DNS. | ||
|
20:06
alvar joined
|
|||
| Whiteknight | purl is also retarded | 20:13 | |
| purl | okay, Whiteknight. | ||
| Whiteknight | purl purl? | 20:28 | |
| purl | purl is, like, a she. or captain obvious or so corny sometimes or creepy or a he or is also is also is also or retarded | ||
| riffraff | does someone else feels that PAST::Val would be slightly nicer with a key arg named :as('foo') instead of :returns('foo') ? | 20:31 | |
| pmichaud | not me. :-) | 20:32 | |
| Whiteknight | pmichaud, why aren't more of the rakudo classes and builtins defined in NQP? | 20:36 | |
| ...if you don't mind me asking... | |||
| pmichaud | Whiteknight: because they're going to be defined in rakudo. | 20:37 | |
| also, NQP can't handle all of the special signature requirements that the Perl 6 builtins will need. | |||
| (i.e., NQP doesn't know anything about multimethods) | |||
| Whiteknight | well, I'm talking about a lot of the *.pir files, like the various classes | ||
| pmichaud | I'm talking about those also. | ||
| Whiteknight | oh, okay | ||
| pmichaud | nearly all of the Perl 6 builtins are multis | ||
| and NQP doesn't have any clue how to handle those | 20:38 | ||
| Whiteknight | how hard would it be to add multi support to NQP? | ||
| pmichaud | also NQP doesn't know how to coerce arguments into arrays or hashes if there's an array or hash signature | ||
| also NQP doesn't support assignment | |||
| and... | |||
| well, you get the picture. | |||
| Whiteknight | ...I get the point | ||
| pmichaud | it's better to just write them directly in Perl 6 | ||
| which we will do as soon as we can get parameter passing working | |||
| which is the whole point of the rvar branch :_) | |||
| Whiteknight | so all those .pir files are eventually going to be bootstrapped in Perl 6? | 20:39 | |
| pmichaud | many, not all. | ||
| some things don't bootstrap well into Perl 6 | |||
| if you can tell me how to write substr() in Perl 6, I'm all ears. :-) | |||
| Whiteknight | you could probably do it with some creative regexs | 20:40 | |
| pmichaud | possibly. But that kinda throws efficiency out the window :-) | ||
| I'll give another example, the: implement infix:<+> in Perl 6 :-) :-) | 20:41 | ||
| Whiteknight | $string =~ . ** $start (. ** $num), or however it's written | ||
| pmichaud | s/the/then/ | ||
| Whiteknight | i didn't say anythng about efficiency! | ||
| particle | multi infix:<+> (Any $x, Any $y) { q:PIR { $P0 = find_lex '$x' ; ... } } :P | 20:43 | |
| Tene | multi sub infix:<+> { ('.' x $^a ~ '.' x $^b).chars } | ||
| pmichaud | okay, define infix:<x> and infix:<~> then :-) | ||
| and you can't use infix:<+> :-) | |||
| Tene | multi sub infix:<~> { $^a ~~ s/$$/$^b/ } | 20:44 | |
| particle | hint, use substr :) | ||
| Tene | multi sub infix:<x> { [~] gather { take $^a for 1..$^b } } | 20:45 | |
| jonathan is back | 20:47 | ||
| PerlJam | Tene: is this some sort of contest? :-) | ||
| pmichaud | jonathan: I think I know why multimethods fail -- we don't have an entry in the signature for implicit self | ||
| jonathan | pmichaud: That was going to be my first guess. :-) | ||
| pmichaud | getting one there is a bit tricky, though. | ||
| jonathan | Yes, it was last time around too. :-P | 20:48 | |
| pmichaud | okay, I'm about to commit a change that might help. | ||
| Tene | PerlJam: I'm dodging $realjob ;) | ||
| pmichaud | or might make things worse. | ||
| jonathan | My plan (but you'll maybe not like it) is to add a method !add_implicit_self to Signature | ||
| And If we see we have a method, we'll emit a call to it. | |||
| pmichaud | oh, that might work. | 20:49 | |
| jonathan | And it will check, do we have something marked invocant. | ||
| and if not unshift one. | |||
| I can't remember how I do it in trunk. | |||
| s/do/did/ | |||
| pmichaud | but we also have to make sure it doesn't try to do anything funny when SIGNATURE_BIND is called. | ||
| jonathan | That's OK, it'll be labelled invocant | ||
| (Unless what you're about to commit undoes that...) | |||
| So we can spot that and skip it. | |||
| pmichaud | don't we also need to potentially do type checking on the invocant, though? | 20:50 | |
| jonathan | Yeah, we should do that. | ||
| pmichaud | okay. | ||
| anyway, you gave me the answer | |||
| I like add_implicit_self better than the approach I was taking. | |||
| jonathan | Ah, nice. | ||
| jonathan must be on form after dinner :-) | |||
| Curry for the win! | 20:51 | ||
| Do you know what came of the code that handled 'is default'? | |||
| pmichaud | it's probably gone. | ||
| jonathan | e.g. do you know if it's still there, or was it likely removed? | ||
| Gah, OK. | |||
| Tene | $jonathan.assumming('curry'); | ||
| pmichaud | what does 'is default' do again? | ||
| jonathan | Marks a multi candidate as being the default one to go for if there's a conflict. | ||
| pmichaud | okay. | 20:52 | |
| we don't do any traits on subs yet. | |||
| I need to do that for 'is export' though. | |||
| jonathan | OK. | ||
| I'll let you put that in how you like it (if you already have a plan, anyways...) | |||
| pmichaud | I have most of a plan. | ||
|
20:52
davidfetter joined
|
|||
| jonathan | And then can add is default on top of that, if you don't beat me to it. | 20:52 | |
| It should be trivial. | |||
| pmichaud | how about I let you take over multimethods, since you've got a good handle on it. | 20:53 | |
| jonathan | IIRC, just sets a default property. | ||
| pmichaud | the change I'm making at the moment is to emit | ||
| jonathan | Well, once the invocant thing is fixed up, and we have is default back in, we should be passing the bunch of multi-method tests again. | ||
| pmichaud | .lex '$invocant', self | ||
| instead of | |||
| .lex '$invocant', $Pnn | 20:54 | ||
| set $Pnn, self | |||
| jonathan | Oh, I wondered how to do that. :-) | ||
| pmichaud | I think I prefer that the lexical be directly bound to self | ||
| jonathan | Agree - I just couldn't think of what PAST to make. | ||
| GeJ | Good morning everyone | ||
| jonathan | morning GeJ | 20:55 | |
| Infinoid | hi GeJ | ||
| dalek | r35222 | pmichaud++ | branches/rvar2/languages/perl6/src/parser: | ||
| : [rakudo]: Bind invocants directly to self. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35222 | |||
| pmichaud | when handling the implicit invocant parameter, make sure that we have some way of telling BIND_SIGNATURE not to try to look in the caller's lexical for it (since it won't exist) | ||
| with that I'll switch over to routine traits | |||
| (sorry, SIGNATURE_BIND) | 20:56 | ||
| the approach I was going to take was to add an entry to the Signature for lexical 'self' | 20:57 | ||
| (since we know it's there.) | |||
| actually, you could probably do that and it would just work. | |||
| i.e., in SIGNATURE_BIND, if varname == 'self' then skip further checking. | |||
| jonathan | pmichaud: The thing is that we may have something else that we bind to. | 20:59 | |
| Wait, let me try and get straight in my head what you're suggesting... | |||
| pmichaud | I'll rephrase it. | ||
| (1) create !add_implicit_self, which is called by method_def. This checks to see if an invocant param has already been added, if not it unshifts a new entry for 'self' onto the params list. | 21:00 | ||
| that means the Signature is correct for MMD. | |||
| jonathan | Right, with you so far. | ||
| pmichaud | (2) in SIGNATURE_BIND, we currently walk through all of the variables in the signature so that they can be adjusted/re-bound and typechecked as necessary. | ||
| If we come across a parameter named 'self', skip it. | 21:01 | ||
| I think that's it. | |||
| jonathan | Ah, gotcha. | ||
| Should do it. | |||
| pmichaud | we don't need to do rebinding or typechecking of (implicit) self. | 21:02 | |
| jonathan | Right. | ||
| pmichaud | we would only need to do typechecking if an explicit invocant was listed. | ||
| jonathan | So you want me to put those two bits in? | ||
| pmichaud | yes. | ||
| jonathan | OK, let me make a cuppa, and I'll get onto it. | ||
| pmichaud | and r35222 shows how I bound lexicals directly to self, if you're curious. | ||
| jonathan | Yes, I am. :-) | ||
| I was writing the bind thinking, "wish I didn't need this..." :-) | 21:03 | ||
| pmichaud | We're down to 25 failing test files. | ||
| I'm thinking we can finish this branch today. :-) | 21:04 | ||
| (especially since I'm feeling better today than yesterday) | |||
| chromatic | Yes please! | 21:05 | |
| Merge soon! | |||
| jonathan | pmichaud: moze byt! | 21:10 | |
| er | |||
| maybe! | |||
|
21:18
kj joined
21:23
confound joined
21:24
confound joined
|
|||
| moritz | pbc_to_exe seems quite slow | 21:24 | |
| pmichaud | it can be, yes. It's doing a bunch of string concatenations. | ||
| and byte conversions. | |||
| moritz | rakudo: for undef, 1 { say .?sqrt } | 21:26 | |
|
21:26
kjs_ joined
|
|||
| polyglotbot | OUTPUT[Use of uninitialized valueā¤0ā¤1ā¤] | 21:26 | |
| moritz is fairly impressed | |||
| jonathan | .? is a cool operator. :-) | 21:27 | |
| moritz | class { something }\\n for ... { } doesn't parse for me | 21:28 | |
| adding a ; after the closing curly of the class works | |||
| pmichaud | yes, long known bug. | ||
| moritz | ok | ||
| pmichaud | needs parsing fix. | ||
| same bug as the one that trips up | |||
| sub { } \\n while ... | |||
| moritz | I remebered something like that, but I thought you fixed somethiing like that recently | ||
| pmichaud | I fixed it for regex { } \\n while, yes. | 21:29 | |
| moritz | that was it, aye | ||
| jonathan | .? is great when an object may have a role mixed in that provides a method, and you want to call it if it's there, but don't care if not. | ||
| pmichaud | omg | ||
| is <trait> on sub is now soooo easy | |||
| will be even easier once we start doing traits-as-roles | 21:30 | ||
|
21:35
kj joined
|
|||
| PerlJam | jonathan: so what happens with $foo = $obj.?method; when method() doesn't exist for that object? What value does $foo get? (An appropriate version of undef I would assume) | 21:35 | |
| pmichaud | rakudo: $foo = 3.?nosuchmethod; say $foo.PARROT; | 21:36 | |
| polyglotbot | OUTPUT[Scope not found for PAST::Var '$foo'ā¤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)ā¤called from Sub 'parrot;PAST;Compiler;post_children' pc 2008 (src/PAST/Compiler.pir:411)ā¤called from Sub 'parrot;PAST;Compiler;call' pc 4219 | ||
| ..(src/PAST/Compiler.pir:1091)ā¤called from Sub 'parrot;PAST;Compiler;post_childr... | |||
| pmichaud | rakudo: my $foo = 3.?nosuchmethod; say $foo.PARROT; | ||
| polyglotbot | OUTPUT[ObjectRef->Failureā¤] | ||
| pmichaud | returns a Failure (undef) | ||
|
21:37
dngor joined,
kjs_ joined
|
|||
| cotto | year of the perdue wonder chicken? | 21:37 | |
| jonathan | PerlJam: An undef, but then you can use // to pick a default quite neatly too. | 21:38 | |
| pmichaud | rakudo: my $foo = 3.?nosuchmethod // 'yay!'; say $foo.PARROT; | ||
| polyglotbot | OUTPUT[Strā¤] | ||
| chromatic | cotto, see "Infinite Jest" by David Foster Wallace. | ||
|
21:39
mberends joined
|
|||
| cotto | thanks | 21:41 | |
| Coke | rakudo: my $foo = 3; say $foo.PARROT; say $foo.WHAT | ||
| polyglotbot | OUTPUT[Intā¤Intā¤] | ||
| Coke | hurm. pmichaud, why was your .PARROT a Str? | ||
| pmichaud | because 'yay!' is a Str ? | ||
| moritz | $a // $b is the same as defined($a) ?? $a !! $b; | 21:42 | |
| (except that $a is evaluated only once) | |||
| pmichaud | 3.?nosuchmethod returned undef | ||
| so $foo was given the value 'yay!' | |||
| and $foo.PARROT came back with 'Str' | |||
| Coke | ah, danke. | 21:43 | |
| jonathan | pmichaud: Seem to have multimeths working again. | ||
| pmichaud | jonathan: yay. | ||
| Coke | Missed that $foo did not have 3 at that point. | ||
| jonathan | Doing spectest to make sure I didn't break other stuff. | ||
| pmichaud | okay. | ||
| in the branch it's okay to commit-then-test :-) | |||
| I think I almost have the basic "is export" working. | 21:44 | ||
| jonathan | pmichaud: I've been doing that somewhat, but want to know now what side-effects this patch has, if any (I expect none, toher than those I intend...) | 21:49 | |
|
21:50
polyglotbot joined
|
|||
| kj | good evening | 21:51 | |
| kj moved to a new apartment :-) | |||
| If I need to PARROT_EXPORT some new functions, do I need to rerun the headerizer? Or just add PARROT_EXPORT to them? | 21:52 | ||
| PIRC needs access to the PackFile_Annotate functions recently added | |||
| jonathan | kj: If you're going to do it by hand, just be sure to update both the .c and the .h file. | 21:53 | |
| kj | jonathan: that's doable | ||
| jonathan | kj: But I made sure make headerizer worked on them. | ||
| kj | I'm not entirely clear on how I should use the headerizer | ||
| jonathan | kj: So it's fine to add them to the C file and then nmake headerizer | ||
| pmichaud | it's just "make headerizer" and then make sure everything still tests properly. | 21:54 | |
|
21:54
polyglotbot joined
|
|||
| kj | k | 21:54 | |
| dalek | r35223 | jonathan++ | branches/rvar2/languages/perl6/src (2 files): | 21:55 | |
| : [rakudo] Make sure we always get an implicit self for methods. Also fix up .perl on Signatures. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35223 | |||
|
21:56
polyglotbot joined
|
|||
| jonathan | pmichaud: If you get the latest change I put in, and then implement is default to just setprop default to a true value on the sub, you should pass S12-multi/default.t :-) | 21:56 | |
| pmichaud | okay. | ||
| I'll have to merge your changes with mine, there's likely to be a small conflict. | 21:57 | ||
| jonathan | OK. | ||
| pmichaud | wheeee | ||
| jonathan looks at what we're still failing. | |||
| moritz | t/spec/S02-builtin_data_types/nested_arrays.t....................ok | ||
| ===( 525;39 1/48 0/? )===========================================Null PMC access in type() | |||
| the first remaining failure | 21:58 | ||
| Infinoid | well... in the process of trying to add a "partcl" alias for tcl, I've totally broken polyglotbot. Stay tuned. | ||
| jonathan | Oh, that's scary, that's pms. :-) | ||
| moritz | no, it's actually in t/spec/S02-builtin_data_types/num | ||
| the parallel testing output just skewed that line | |||
| Infinoid | is there a Configure.pl flag to turn jit *off*? | 22:02 | |
| jonathan | Hmm. We don't parse anonymous methods any more... | ||
| Infinoid: --jit-capable=0 maybe | |||
| pmichaud | ...we don't _parse_ them? | ||
| jonathan | rule method_def { [ | <longname=name> [ <multisig> | <trait> ]* ] | ||
| we end up parsing method { ... } as a sub call passing a block. :-) | 22:03 | ||
| jonathan checks STD.pm | |||
| pmichaud | rule method_def { [ | <[ ! ^ ]>?<longname> [ <multisig> | <trait> ]* | <multisig> <trait>* | ||
| we're probably missing the | <multisig> <trait>* part. | 22:04 | ||
| jonathan | yes | ||
| jonathan just adds it hopefully | 22:05 | ||
| davidfetter | jonathan++ for using "hopefully" as an adverb | ||
| Infinoid | jonathan++ # looks like that will work, and probably get polyglotbot working again | 22:06 | |
| jonathan | pmichaud: Not quite. | ||
| As we don't have a signature in this case. | |||
| pmichaud: What does this line mean | |||
| | <?> | |||
| pmichaud | same as | <null> | ||
| jonathan | Ah, that'd be the one that handles this case. | ||
| pmichaud | PGE doesn't support it yet, but should. | 22:07 | |
| jonathan | Which one? | ||
| Either? | |||
| purl | hmmm... Either is correct | ||
| pmichaud | <?> | ||
| pge supports <null> | |||
| jonathan does <null> | |||
| pmichaud | but you can also use :: | ||
| :: is cheaper | |||
|
22:07
confound joined
|
|||
| pmichaud | (because it doesn't involve a subrule call) | 22:07 | |
| jonathan | What does it mean? | 22:08 | |
| pmichaud | it's a "cut" | ||
| jonathan | Ah, OK. | ||
| pmichaud | backtracking over that point fails the alternative | ||
| jonathan | cut meaning, at this point we match? | ||
| ah, gotcha. | |||
| pmichaud | (since we're in a token/rule anyway, it's a noop. | ||
| dalek | r35224 | jonathan++ | branches/rvar2/languages/perl6/src/parser: | 22:09 | |
| : [rakudo] Handle anonymous methods. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35224 | |||
| jonathan | indirect_notation.t passes all that it does in trunk again. | ||
| PerlJam | so who runs parrot.org? | ||
| pmichaud | yay | ||
| PerlJam | i'm interested in setting up gitosis and a git repo clone of the svn repo | 22:10 | |
| dalek | r35225 | pmichaud++ | branches/rvar2/languages/perl6/src (2 files): | ||
| : [rakudo]: Some basic trait handling for subs. | |||
| : I'll probably want to refactor this (to avoid the code | |||
| : duplication) but this works for now. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35225 | |||
| pmichaud | PerlJam: see particle | ||
| jonathan: after r35225 you can probably trivially implement "is default" | 22:11 | ||
| I'm still working on the parameterized forms of "is export" | |||
| jonathan | Thanks. | ||
| pmichaud | jonathan: hint: "!sub_trait_default" | 22:12 | |
| (see "!sub_trait_export" for model in guts.pir) | |||
| (eventually these will be done with mmd dispatch.) | |||
| jonathan | pmichaud: Yup, I see the pattern. | 22:13 | |
| pmichaud | it's so nice to not have all of these cases in actions.pm, and to be moving towards mmd for them :-) | 22:14 | |
| jonathan | *nod* | 22:16 | |
| PerlJam | I wish I wasn't so ADD. | 22:18 | |
| pm: your last statement makes me want to go read actions.pm in rvar2 now | |||
| pmichaud | pj: then I need to be making more of these statements. | ||
| Tene | Can someone remind me of the big advantages Parrot has over the other big VMs? dotnet/jvm? | 22:20 | |
| I'm giving a presentation on Parrot to the local LUG next week. | |||
| dalek | r35226 | jonathan++ | branches/rvar2/languages/perl6/src/builtins: | ||
| : [rakudo] Add back 'is default' trait. Passes S12-multi/default-trait.t. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35226 | |||
|
22:20
Casan joined
|
|||
| Tene | I know nearly nothing about .net or jvm. | 22:20 | |
| jonathan | Tene: The compiler toolchain we hvae has gotta be one of them. | 22:21 | |
| PerlJam | Tene: parrot is designed for dynamic languages whereas .net/jvm are for static languages. | ||
| moritz | Tene: 1) designed for dynamical(ly typed) languages | ||
| jonathan | Tene: Also, built from the ground up for...yes, aht pj said. | ||
| moritz | Tene: 2) language interop | ||
| pmichaud | there ought to be a parrot wiki page where we collect the answers to this question. | ||
| also, open source. | |||
| Tene | moritz: what type of design choices matter for dynamic vs. static in a VM? | ||
| pmichaud | (parrot is open source while .net and jvm would be difficult to get modifications added to.) | ||
| jonathan | Tene: You can probably find some inspiration in some of the Parrot-y talks I've given... www.jnthn.net/articles.shtml | 22:22 | |
| PerlJam boggles that there isn't already a wiki page or something for this. | |||
| pmichaud | PerlJam: too many coders, not enough writers. | ||
| Tene | moritz: how are the other VMs more restrictive in hll interop? I remember hearing that one of them only allows one language per bytecode file or something... | ||
| moritz | Tene: in .net and jvm the byte code relies heavily on type annotations... | ||
| chromatic | Tene, the JVM doesn't allow dynamic dispatch. | ||
| You have to roll your own dispatch mechanism if you want later-than-compile-time binding. | 22:23 | ||
| moritz | Tene: whereas parrot makes untyped variables very easy, and type coercions, context, ... | ||
| PerlJam | Hmm. this IRC discussion + what's at www.parrotcode.org/faq/ would make a good start | ||
| Tene | PerlJam: volunteering? | ||
| purl | somebody said volunteering was dangerous | ||
| moritz | Tene: re hll interop - dunno what's better than in onther VMs | ||
| pmichaud wonders what he could say to make PerlJam want to go author a wiki page. :-) | 22:24 | ||
| PerlJam | Tene: sure! Someone point me at a good place to write it. | ||
| pm: Tene already said it :) | |||
| pmichaud | PerlJam: trac.parrot.org | ||
| purl | hmmm... trac.parrot.org is giving me "Internal Server Error" | ||
|
22:25
bacek joined
|
|||
| Tene | purl: forget trac.parrot.org | 22:25 | |
| purl | Tene: I forgot trac.parrot.org | ||
| szabgab | chromatic: there are a few ticktes I opened in trac with tests script for Parrot::Embed | ||
| PerlJam | What's the relationship between www.parrot.org and trac.parrot.org? | ||
| moritz | PerlJam: maybe start trac.parrot.org/parrot/wiki/About | 22:26 | |
| szabgab | whom should I nag to get them added to the repository ? or how can I get commit bit to add them myself ? | ||
| pmichaud | www.parrot.org is the parrot foundation site | ||
| while trac.parrot.org is the "working" site | |||
| chromatic | szabgab, if you submit a CLA, I'm happy to have to poking at Parrot::Embed and writing tests and such. | ||
| pmichaud | (and yes, we're still working out the details) | ||
| chromatic | to have YOU I mean | ||
| szabgab | CLA ? | 22:27 | |
| purl | rumour has it CLA is Contributor License Agreement or www.perlfoundation.org/contributor_..._agreement or www.parrot.org/foundation/legal | ||
| PerlJam | When I want to know stuff about perl, I go to perl.org or perl.com. When I want to know stuff about parrot, I'd go to parrot.org, only all of the useful info seems to be on trac.parrot.org | ||
| pmichaud | PerlJam: I agree with you -- forward to particle :-) | ||
| particle seems to be the primary *.parrot.org person | |||
| szabgab | I printed it, shall I sign it and snail mail it ? | ||
| chromatic | Yes. | 22:28 | |
| pmichaud | szabgab: I think scan+email works also. | ||
| chromatic | That too. | ||
| particle | perljam: email directors@parrot.org please, or submit a trac ticket | ||
| i don't own parrot.org, i just work there | |||
| Infinoid | ok, polyglotbot should be happy again. some issues with lolcode, but APL, rakudo and tcl seem to work. | ||
| szabgab | ok, I can fax it to my fax2email address and send you the copy | ||
| chromatic | legal@parrot.org for CLAs? | 22:29 | |
| particle | doesn't it say on the cla? | ||
| chromatic | I don't remember my middle name some days. | ||
| (it's "Danger") | |||
| szabgab | I think I only see snail mail address | ||
| Tene | tcl: omg | ||
| polyglotbot | OUTPUT[invalid command name "omg"ā¤] | ||
| particle | ok, well directors@ or legal@ go to the same place | 22:30 | |
| PerlJam | chromatic: you've got more than one name? :) | ||
| particle | chroDANGERmatic | ||
| Tene | chroDANGERmatic | 22:31 | |
| ^5 particle | |||
| jonathan | pmichaud: S12-attributes\\clone.t needlessly redeclared a var (accidental rather than a feature of the test) so I've made it not do so. | ||
| So it now runs...apart from we fail the last few. Geck. | |||
| pmichaud | jonathan: yes, I've run across some of those also. Same solution. | ||
| szabgab | ok I'll do it tomorrow morning, | ||
|
22:31
Limbic_Region joined
|
|||
| chromatic | I mean my legal name. Brian Danger Ingerson. | 22:34 | |
| Infinoid | you forgot the dƶt | ||
| jonathan | pmichaud: Ah. We don't built method forms of attributes accessors any more. | ||
| chromatic | Where do you think he got it? | ||
| pmichaud | jonathan: do we need them? | ||
| jonathan | .clone relied on them | 22:35 | |
| pmichaud | what form do you mean? | ||
| you mean '!x' ? | |||
| jonathan | The S12-sort-of-half-implies-it-but-wob-knows form. ;-) | ||
| pmichaud | right. | ||
| jonathan | class Foo { has $!x } | ||
| pmichaud | make clone use the attributes directly for now, I think. | ||
| jonathan | Foo.new!x # is callable? | 22:36 | |
| And does $!x call it or access the underlying storage? | |||
| pmichaud | let me re-review S12 again | ||
| jonathan | (S12 says underlying storage. But later, from what I remember of this, implied it could be the other thing too.) | ||
| pmichaud | right now it's underlying storage. | ||
| jonathan | Yeah. I have argued both sides to myself out of S12 so far. :-) | 22:37 | |
| Aye, and that's I've been thinking for much time. | |||
| pmichaud | I'd like to keep it as underlying storage for the branch, if possible. | ||
| if we need to move to private method, perhaps after branch merge sometime. | |||
| jonathan | The awkard bit is | 22:38 | |
| For a call on your own private method, you may also use the attribute-ish form: | |||
| $!think($pinky) | |||
| szabgab | oh I see there are two CLAs, one for TPF and one for the Parrot foundation? | ||
| pmichaud | yes | ||
| particle | yes, indeed | ||
| jonathan | But what happens if we have a method that takes no args? Can we call it as $!thingy? | ||
| pmichaud | but I think even STD.pm isn't parsing that. | ||
| PerlJam tried emailing directors@parrot.org and is was rejected with "user unknown" | |||
| jonathan | OK, in that case I'll choose not to care. :-) | ||
| particle | szabgab: just send the parrot cla | 22:39 | |
| pmichaud | or if it is, then it's as postcircumfix on a var | ||
| jonathan modifies clone to directly touch attributes. | |||
| pmichaud | oh, that's probably what it is. | ||
| moritz | particle: since your recent Makefile updates, 'make spectest' doesn't work if t/spec is a symlink | ||
| szabgab | particle: ok, that will wait as I don't have a printer here | ||
| PerlJam | szabgab: does this mean that you're going to work in parrot as much as padre? :) | ||
| moritz | particle: it tries to checkout pugs to that, and fails | ||
| pmichaud | anyway, $!think($pinky) makes me think there's a spec inconsistency there | ||
| PerlJam | s/in/on/ | ||
| szabgab | PerlJam: I hardly work on Padre nowdays | 22:40 | |
| pmichaud | what if $!think is actually my $!think = sub { ... } ? | ||
| szabgab | and I would like to finish the Parrot integration into Padre | ||
| particle | moritz: i don't know how i changed the functionality, i just renamed 't/spec :' to 'spectest_checkout :' | ||
| pmichaud | so _maybe_ what really happens is that my method think { ... } creates a $!think attribute? | ||
| PerlJam | szabgab++ | ||
| szabgab | so we can swicth to run part of our code on Rakudo | ||
| jonathan | pmichaud: I don't like that way of looking at it. | 22:41 | |
| pmichaud: But I totally agree, the spec is inconsistent. | |||
| pmichaud | anyway, merge branch first, clarify later :-) | ||
| jonathan | Sure | ||
| szabgab | pressure is growing to use Moose in Padre, but I'd rather go for the real thing :-) | ||
| moritz | particle: the difference is that 't/spec' won't run if 't/spec' exists, and is up-to-date (whatever this means) | 22:42 | |
| PerlJam | szabgab++ again! | ||
| szabgab | PerlJam: collecting them :-) | ||
| jonathan | Oh, I know why I wanted the !attr method. Because we don't have to know the sigil of the attribute we're setting. | ||
| jonathan does the bigger change to clone. | |||
| pmichaud | right. | ||
| but if we're cloning, we already know the sigils of the attributes, yes? | |||
| jonathan | $x.clone(attr => ...) | 22:43 | |
| So what sigil does attr has? Well, we gotta go look it up. :-) | |||
| Tene | pmichaud: what's the big goal of the rvar branch? Just "rewrite variable handling to eliminate hacks" or something specific? | ||
| pmichaud | use whatever BUILD is using now. | ||
| szabgab | has anyone tried Padre and the Perl6 plugin of azawawi here? | ||
| pmichaud | Tene: it's a major refactor of variable handling, yes. | ||
| particle | moritz: will it work to have: | ||
| spectest_update : t/spec | |||
| t/spec : | |||
| -cd t/spec && svn up | |||
| pmichaud | the way we were doing things was long-term-unsustainable. | ||
| particle | moritz: if so, change it, because i can't test that right now | 22:44 | |
| pmichaud | (and we had reached the point of unsustainability) | ||
| chromatic | I could forward it on if you like. | ||
| jonathan | pmichaud: It's iterating over the attributes that the class knows about. | ||
| PerlJam | szabgab: I've been meaning to, but there's already enough other stuff running around in my brain. | ||
| jonathan | pmichaud: Which is what I figured we'd have to do. | ||
| pmichaud | jonathan: isn't there just a way to call .new to make a clone? | ||
| moritz | particle: aye, works. Committing. Thanks! | ||
| szabgab | and the fact that you can write plugins to Padre in PASM ? | ||
| particle | moritz++ | 22:45 | |
| pmichaud | jonathan: nm, I can see why that might be difficult. | ||
| PerlJam | particle: okay, if directors@parrot.org doesn't work, where should I email? | ||
| jonathan | pmichaud: I'm looking at BUILD thinking, hey, we could call that... ;-) | ||
| But fear it'll only burn us later. :-) | |||
| pmichaud | yes, I was just thinking the same thing. | ||
| jonathan | When somebody defines there won. | ||
| *own | 22:46 | ||
| pmichaud | well, BUILD just does things from a candidate object. | ||
| particle | pj: rejected, not moderated? hrmm. particle@parrot.org is fine. | ||
| jonathan | And then is like "huh? why is clone broken" | ||
| pmichaud | so if the candidate object is a clone, and then we call BUILD to handle any "extra" args, it might just work. | ||
| dalek | r35227 | moritz++ | trunk/languages/perl6/config/makefiles: | ||
| : [rakudo] 'make spectest' works again if t/spec is a symbolic link, particle++ | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35227 | |||
| pmichaud | anyway, make it work for today and we can worry about subtleties later. | ||
| PerlJam | particle: "user unknown" from google-land (for directors@parrot.org) | ||
| jonathan | pmichaud: Ah, calling BUILD won't fly. | 22:49 | |
| particle | PerlJam: my mistake, it's directors@lists.parrot.org | ||
| jonathan | pmichaud: Because it goes re-inits existing attrs! | ||
| particle | i'll forward there, and copy you | ||
| pmichaud | jonathan: feel free to update BUILD to make it fly :-) | ||
| again, whatever is simplest at this point. | |||
| jonathan | pmichaud: That'd be horribly nasty. I'll just do what I originally planned. It's no harder. | 22:50 | |
| pmichaud | sounds good. | ||
| PerlJam | particle: thanks. | 22:51 | |
| dalek | r35228 | jonathan++ | branches/rvar2/languages/perl6/src/classes: | 22:54 | |
| : [rakudo] Get clone to at least somewhat work, while we get S12's method/storage location stuff sussed. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35228 | |||
| jonathan | pmichaud: Committed, clone.t passes. | ||
| pmichaud | jonathan: yay | ||
| jonathan | Oh, no. Nasty... | 22:58 | |
| pmichaud braces for nastiness. | 22:59 | ||
|
22:59
Whiteknight joined
|
|||
| jonathan | perl6: class WHAT_test { has WHAT_test $.b is rw; }; WHAT_test.new() | 22:59 | |
| polyglotbot | RESULT[Method 'perl' not found for invocant of class 'WHAT_test'ā¤current instr.: '_block14' pc 64 (EVAL_13:39)ā¤called from Sub '!UNIT_START' pc 16311 (src/builtins/guts.pir:327)ā¤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 950 (src/PCT/HLLCompiler.pir:527)ā¤called from Sub | ||
| ..'parrot;PCT;HLLCompiler;evalfiles' pc 1275 (src/PCT/HLLCompiler.pir:68... | |||
| jonathan | perl6: class WHAT_test { has WHAT_test $.b is rw; }; say WHAT_test.new().WHAT | ||
| polyglotbot | OUTPUT[WHAT_testā¤] | ||
| jonathan | pmichaud: In the branch we get | ||
| Method 'ACCEPTS' not found for invocant of class 'WHAT_test' | 23:00 | ||
| current instr.: 'infix:=' pc 13601 (src\\builtins\\assign.pir:30) | |||
| called from Sub 'parrot;Perl6Object;BUILD' pc 516 (src\\classes\\Object.pir:326) | |||
| pmichaud | is this for clone or build? | ||
| jonathan | I'm fearing it's an ordering thingy. | ||
| Buld. | |||
| *build | |||
| It's what we get for the example I just fed perl6 bot above. | |||
| pmichaud | I don't think it's an ordering thingy. Or if it is, it's actually just a minor issue somewhere. | 23:01 | |
| oh. | |||
| jonathan | Yes. | ||
| Oh. :-) | |||
| I think we're looking up the proto before it exists to set the type of the attribute. | |||
| pmichaud | in which case we're going to need protoprotos | 23:02 | |
| particle | isn't that what knowhows are for? | ||
| chromatic | Those little rolled up chocolate pastries? | ||
| jonathan | Yes, we are. | ||
| particle: no. | |||
| pmichaud | how many tests do we lose if we don't implement that feature right now? | ||
| jonathan | Well, in that script only a handful. | 23:03 | |
| pmichaud | I'm thinking we regress it. | ||
| jonathan | But not being able to define recursive typed data structures is a loss. | ||
| I don't know either way for sure, but it woudln't surprise me if we broke November. | |||
| pmichaud | it shouldn't be a long regression. | ||
| no, we just disable the typechecking in that case. | |||
| i.e., if we attempt to assign a constraint that isn't fully formed yet, just ignore the constraint for now. | 23:04 | ||
| particle | do you know the names of constraints that aren't "fully formed" or do you mean a constraint that isn't known | 23:05 | |
| jonathan | pmichaud: Can we go from a Parrot class to its proto? | ||
| pmichaud | either that or we figure out some way to apply the constraints at !meta_compose time. | ||
| jonathan: I'll be adding a way to go from Parrot class to proto at some point in the very near future, yes. | |||
| jonathan | pmichaud: I'm thinking more that, we can detect if we have a Parrot class when applying the constraints and fix it up. | ||
| pmichaud: Of course, for now we can skip it and not enforce the cons. | |||
| pmichaud | we'll come back to it very soon if we regress it. | 23:06 | |
|
23:06
mberends left
|
|||
| dalek | r35229 | Whiteknight++ | branches: | 23:06 | |
| : deleting branch that's already been merged | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35229 | |||
| jonathan spots '!CALLMETHOD' and gets all curious what that's for... | 23:07 | ||
| pmichaud | it's a cheap way to get 'Any' methods to apply to objects from outside rakudo. | 23:08 | |
| s/cheap way/cheap and dirty hack/ | |||
| in particulary, it's used when I want to ask an object for its Scalar, Array, or Hash coercion | 23:09 | ||
| which doesn't work if we happen to get an object from "somewhere else" that doesn't define Scalar, Array, or Hash | |||
| (I think PGE is the prime suspect at the moment.) | |||
| dalek | r35230 | jonathan++ | branches/rvar2/languages/perl6/src/builtins: | 23:13 | |
| : [rakudo] Disable type checking in the case that we have captured a type before it's been full defined. We'll have to come back and re-visit this later, this this gets us through another test. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35230 | |||
| r35231 | pmichaud++ | branches/rvar2/languages/perl6/src (2 files): | |||
| : [rakudo]: Add more complete 'is export' handling. S11-modules/export.t passes. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35231 | |||
| jonathan | Between those two commits, that's 44 more subtests passing. | ||
| us++ | 23:14 | ||
| chromatic | Valgrind 3.4.0 release announcement: Memcheck can now report the origin of uninitialised values! | ||
| jonathan | Shiny! | ||
| pmichaud tries a new 'make localtest' to see what's left. | 23:15 | ||
| jonathan is make spectest'ing also | 23:16 | ||
| pmichaud: hmm | 23:17 | ||
| t\\spec\\S02-builtin_data_types\\hash........................Null PMC access in get | |||
| _string() | |||
| current instr.: '!sub_trait' pc 17247 (src\\builtins\\guts.pir:636) | |||
| called from Sub '' pc 3997 (EVAL_15:997) | |||
| You seeing that one? | |||
| pmichaud | no, hadn't seen that yet. Wasn't testing it yet. | 23:18 | |
| from my previous subset of 25 failing files we only have seven left. | |||
| I'll do a full make spectest. | |||
| moritz | did somebody re-enable the undef warnings in the branch? | ||
| or did that happen by accident? | |||
| pmichaud | by accident. | ||
| purl | by accident is probably fine! | ||
| pmichaud | I'm not sure what happened there. | 23:19 | |
| I probably removed something that was initializing it. | |||
| okay, I see the problem with hash. | 23:24 | ||
| fixing. | |||
| (there's a 'returns' trait on one of the subs) | 23:25 | ||
| nopaste | "moritz" at 91.10.153.135 pasted "test summary in rvar2" (93 lines) at nopaste.snit.ch/15245 | ||
| jonathan | Ah. | ||
| pmichaud | I'm actually just going to modify the test. :-) | 23:26 | |
| since that's not something we're testing there. | |||
| jonathan | Makes sense. | ||
| nopaste | "jonathan" at 85.216.157.73 pasted "rvar2 here" (29 lines) at nopaste.snit.ch/15246 | ||
|
23:26
mberends joined
|
|||
| jonathan | Failed 23/279 test scripts. 122/7812 subtests failed. | 23:27 | |
| pmichaud | 16 subtests unexpectedly succeeded?!? | 23:28 | |
| :-) | |||
| jonathan | Yeah! I noticed that. :-) | ||
| I bet an autounfudge run would find more too. | |||
| t\\spec\\S03-operators\\arith.rakudo is a major source of fail | 23:29 | ||
| particle | jonathan: those are trunk failures, too, related to Inf/NaN | ||
| pmichaud | odd, it only fails 5 tests on my box. | ||
| particle | they're win32 failures | 23:30 | |
| jonathan | pmichaud: It fails 153-194 | ||
| For me. | |||
| pmichaud | right, win32 failure. | ||
| particle | actually, non-linux failures, i think they fail on sun and bsd too | ||
| jonathan | portability fail | ||
| Divide by zero | |||
| purl | DOES NOT COMPUTE | ||
| jonathan | current instr.: 'infix:/' pc 19418 (src\\builtins\\op.pir:178) | ||
| Taht's where the test dies. | 23:31 | ||
| particle | yeah, that's annoying | ||
| msvc is too smart or gcc is too stoopid | |||
| pmichaud | maybe parrot can check for NaN there and dtrt? | ||
| chromatic | I'm open to that idea. | ||
| jonathan | What's the root cause of the failure? | ||
| pmichaud | NaN support on Win32 is broken. | 23:32 | |
| (root cause.) | |||
| jonathan | Ugh. | ||
| pmichaud | -or- | ||
| Parrot has insufficient support for NaN. | |||
| depending on your perspective. | |||
| chromatic | Both are true. | ||
| pmichaud | okay, not -xor- then :-) | ||
| jonathan | Is this a case of, problem when dividing by NaN? | 23:33 | |
| Because it treats it as a 0? | |||
| pmichaud | I don't have Win32 here, so I can't say. | 23:34 | |
| nopaste | "pmichaud" at 72.181.176.220 pasted "my rvar2 failure summary" (28 lines) at nopaste.snit.ch/15247 | ||
| jonathan | is 100/Inf, 0; I think | 23:35 | |
| > say 100/Inf | 23:36 | ||
| Divide by zero | |||
| purl | DOES NOT COMPUTE | ||
| jonathan | perl6: say 100/Inf | ||
| polyglotbot | OUTPUT[0ā¤] | ||
| jonathan | perl6: say Inf | ||
| polyglotbot | OUTPUT[infā¤] | ||
| jonathan | > say Inf | ||
| 0 | |||
| Hmm. | |||
| pmichaud | rakudo just passes inf/nan to Parrot to handle. | 23:37 | |
| jonathan | pmichaud: Where do we set up Inf? | ||
| pmichaud | globals.pir, I suspect. | 23:38 | |
| no, that's not it. | |||
| ummm.... | |||
| src/builtins/Math.pir | |||
| jonathan | Of it's a sub | ||
| *oh | |||
| pmichaud | it's currently handled as a named_0ary | ||
| right | |||
| I wonder if changing $N0 = 'Inf' to $N0 = 'inf' would fix it in Win32 :-) | 23:39 | ||
|
23:40
kid51 joined
|
|||
| jonathan | pmichaud: Just tried that. | 23:40 | |
| pmichaud | how does Parrot test inf/nan on Win32? | ||
| jonathan | No difference. | 23:41 | |
| Hmm, good question. | |||
| purl | Yeah, it is. I'm stumped. | ||
| particle | parrot should have its own inf/nan | 23:43 | |
| now it relies on the platform implementations | |||
| chromatic | We need to normalize that in src/platform/ | 23:44 | |
| particle | ayep | ||
| need to deal with -0, too | |||
| chromatic | I wish I had some idea of how to do that. | 23:45 | |
| jonathan | There's code to deal with -0 in string_to_num | ||
| Under MSVC++ | |||
| chromatic | That still leaves NaN and Inf. | 23:47 | |
| particle | that should move to a platform-dependent file | ||
|
23:47
TiMBuS joined
|
|||
| kid51 is just joining this conversation, but notes that we experience similar failures on OpenBSD ... but not Free* or Net*. | 23:47 | ||
| Cf.: rt.perl.org/rt3/Ticket/Display.html?id=60312 | 23:48 | ||
| particle | i assume perl 5 punts to the platform | ||
| wonder what java does | |||
| kid51 | Andy D wrote in that RT on Nov 13: "I'm pretty sure Perl 5 just does whatever the underlying system does. At | 23:49 | |
| lesat I don't remember ever writing any Configure tests to do otherwise ..." | |||
| jonathan can't believe that there isn't a constant for INF | 23:54 | ||
| In the headers. | |||
| pmichaud | there's not. I was surprised also. | ||
| jonathan | Or at least, if it is, it's documentation is well hidden. | ||
| kid51 | Whiteknight ping | ||
| pmichaud | I even looked in my "Standard C Library" (Plaguer) and it doesn't have one. | 23:55 | |
| chromatic | It's difficult to search for on the Internet. | ||
| jonathan | I just looked in the MSDN and see no sign. | ||
| There is a function to test if a value is infinity. | |||
| But nothing to create one. | |||
| kid51 notes that, unlike RT, in Trac we don't have a "this ticket refers to this other one" feature. | 23:56 | ||
| pmichaud | just use "TT #nn" and it's automatically turned into a link. | ||
| Limbic_Region | w | ||
| kid51 doesn't see a dependency feature either. | 23:57 | ||
| pmichaud | haven't seen an official "dependency" feature, no. | ||
| kid51 | Problem with "TT #nn" is that it doesn't create anything on the ticket being linked to, does it? | ||
| In RT, both the referrer and the referree got links. | 23:58 | ||
| TonyC | C99 includes an INFINITY constant, but Plauger is C89 (unless there was a second edition) | 23:59 | |
| chromatic | We're stuck with C89, thank you incompetent compiler developers. | ||