|
Parrot 0.8.2 "Feliz Loro" Released www.parrot.org/news/2008/Parrot-0.8.2 Set by moderator on 23 December 2008. |
|||
| kid51 | Why stuck so? | 00:00 | |
| kid51 is ignorant of these issues. | |||
| Infinoid didn't do it | |||
| C99 has NAN too | 00:01 | ||
| chromatic | We're stuck because we can't rely on certain compilers on certain platforms implementing a decade old specification. | ||
| By which I mean "Microsoft can't get C99 working in Visual Studio." | 00:02 | ||
| pmichaud | ouch. | 00:03 | |
| Infinoid | so instead of working around MSVC, we're working around C89 | 00:04 | |
| pmichaud | my $b = sub ($arg) { $a := $arg }; | ||
| chromatic | Exactly. | ||
| pmichaud | actually, ouch for: | ||
| my $b = sub ($arg) { ... } # contents don't matter | 00:05 | ||
| jonathan | pmichaud: What happens with that? | ||
| kid51 | chromatic: thanks for the explan. | 00:06 | |
| jonathan | Oh, lexical subs. | ||
| pmichaud | cloning a sub doesn't clone its properties. | ||
| jonathan | ah, jebat... | ||
| We can probably fix that. | |||
| pmichaud | except.... | ||
| purl | i heard except was it easy to setup? | ||
| pmichaud | we've already gone through and fixed things to make sure that cloning didn't copy properties. | ||
| jonathan | We did? | 00:07 | |
| Ah, we have the copy op do it, right? | |||
| pmichaud | yes, because we don't want my $b = $a; to suddenly cause $b to be readonly just because $a is. | ||
| jonathan | Ah. | ||
| Yes. | |||
| So basically, the sub loses it's sig? | 00:08 | ||
| pmichaud | yes. | ||
| jonathan | Ouch. | ||
|
00:09
AndyA joined
|
|||
| pmichaud | I wonder if we really want an ObjectRef here. | 00:10 | |
| although that doesn't do it, because the properties are still on the Sub. | |||
| I could special-case it in infix:=, but that seems wrongish. | |||
| jonathan | It's not exactly performant. | 00:11 | |
| jonathan has a fix for Inf/NaN on MSVC but you do nee wanna see it. | 00:12 | ||
| pmichaud eagerly awaits the patch/diff/whatever for MSVC :-) | |||
| pmichaud does so want to see it. | |||
| nopaste | "jonathan" at 85.216.157.73 pasted "sick, wrong, works great" (18 lines) at nopaste.snit.ch/15248 | 00:13 | |
| pmichaud | note that the standard is case-insensitive Inf and NaN | ||
| also, " Inf" and " nan " should work. | |||
| jonathan | I did say it was wrong. ;-) | 00:14 | |
| But anyway, if we fixed up detection of these two cases, we could do something like this. | |||
| Apart from, we'd need to maintain it for every platform... :-S | |||
| pmichaud | what does 0/f do? | 00:15 | |
| jonathan | f is set to 0.0 earlier on | ||
| pmichaud | oh | ||
| 0/0.0 | |||
| jonathan | 0/0 is NaN | ||
| pmichaud | okay. | ||
| jonathan | If you write a literal 0/0 the compiler gives an error. | ||
| pmichaud | ah. | ||
| MSVC FTL | |||
| jonathan | MSVC FAIL | 00:16 | |
| pmichaud | anyway, I'd be infavor of the patch. | ||
| jonathan | Detecting endianness and just setting the right bit-pattern may end up being easier... | ||
| Infinoid | that will probably vary depending on IEEE float-ness | ||
| jonathan | In its current form, or after I fix up spacing and casing? | ||
| Sadly, it still doesn't get us right through arith.t. | 00:17 | ||
| Though further. | |||
| Hmm. NaN/NaN still fails :-S | 00:18 | ||
| Somehow on Win32 it seems dividing by a NaN is a divide by zero?! | 00:19 | ||
| Infinoid | well, that is what the code says | 00:20 | |
| jonathan | Infinoid: Huh? Which code? | 00:22 | |
| Infinoid | can you get some hex output of what a NaN float actually contains? it may actually look like a 0, from the CPU's perspective | ||
| or close enough to make it trigger a math exception | |||
| jonathan | You're suggesting Win32 NaNs don't look the same as Linux NaNs? | ||
| Infinoid | I kinda doubt it, since ours don't SIGFPE | 00:24 | |
| jonathan | Gah. | ||
| What a mess. | |||
| purl | PLEASE DO NOT MAKE A MESS IN HERE | ||
| jonathan makes a mess all over purl | 00:25 | ||
| Whiteknight | NAN is specified in the IEEE standard. they don't change per platform | ||
| jonathan | Right, that's what I thought. | ||
| Infinoid | that's true of platforms conforming to the IEEE standard | ||
| Whiteknight | Since all the NAN/INF stuff happens in the processor hardware, I find it hard to believe that it is different on Win32/Linux | ||
| Infinoid | well, lets find out. get a NaN, cast it to long and printf(%x) it | 00:26 | |
| for me, it's 0x80000000 | |||
| dalek | r35232 | pmichaud++ | branches/rvar2/languages/perl6/src/builtins: | 00:27 | |
| : [rakudo]: If we copy a sub, make sure its $!signature property follows. | |||
| : It might be better at some point to have a way associate signatures | |||
| : with Subs by something other than properties. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35232 | |||
| jonathan | Infinoid: It's quite late here, I'd rather sleep. ;-) But will try and look at it a bit more tomorrow. | 00:28 | |
| particle | jonathan: could you at least make that #define PARROT_NAN_QUIET and #define PARROT_INFINITY_POSITIVE inna header somewhere? | ||
| Whiteknight | hmmmm, NaN should have all 1s in the exponent | ||
| jonathan | particle: Which bit? | ||
| purl | Which bit is probably the time part? Anyone? | ||
| Infinoid | strange, NaN and Inf both give me the same thing. either the casting logic is munging my bits or I'm not seeing the whole thing | ||
| jonathan | Infinoid: I think the casting logic will be doing something. | ||
| particle | whiteknight: NaN has a range of values according to the ieee 748 spec | ||
| jonathan | -s it and read the assembly to be sure ;-) | ||
| Infinoid | right, time to do evil things with pointers. | 00:29 | |
| Whiteknight | Infinoid, you must not be seeing the whole thing. I guarantee that 0x80000000 is not NaN | ||
| pmichaud | 0x80000000 looks like -0 to me :-) | ||
| Whiteknight | IEEE 748 says that NaN should have all ones in the exponent, and a non-zero significand | ||
| jonathan | Infinoid: It's more a coercion than a cast to go from a floating point type to a long. | ||
| particle | if (strcmp(p, "Inf") == 0) | ||
| f = PARROT_INFINITY_POSITIVE; | |||
| and of course, some platforms have Inf, INF, or inf | 00:30 | ||
| Infinoid | Inf=0x7f800000 NaN=0xffc00000 NaN/NaN=0xffc00000 | ||
| that's using evil pointers instead of casts | 00:31 | ||
| particle | evil pointer arithmetic is fine | ||
| nopaste | "Infinoid" at 96.238.213.50 pasted "float introspection" (24 lines) at nopaste.snit.ch/15249 | ||
| particle | we also need to force NaN != NaN, because some platforms don't do that correctly | 00:32 | |
| however, i think core parrot 1.0 platforms all get that part right | |||
| Whiteknight | evil pointer arithmetic is the only real way to do it | 00:33 | |
| Infinoid | yeah, makes sense. | ||
| particle | with C89, perhaps | ||
| Infinoid | does C99 have a printf format to dump float bits in hex? | ||
| particle | any volunteers to update the appropriate pdd with some names for these? | ||
| Infinoid | (heh, hex floats, there's another portability nightmare) | 00:34 | |
| jonathan | OK, I'm going to take some rest. | 00:37 | |
| Infinoid | sleep well, jonathan | ||
| pmichaud | great work today, jonathan++ | ||
| jonathan | pmichaud: Thanks. Good luck with getting as close to merge as possible. :-) | 00:38 | |
| pmichaud | we're definitely closing in on it. | ||
| Infinoid | I've done a lot of platform coding on ARM processors. Over there, the float format changes completely depending on what processor you're running on, and how you built your gcc. | 00:39 | |
| since then, I've been avoiding floating point like the plague | |||
| Whiteknight | It might be worthwhile for us to come up with a custom NaN and INF format, and write our own logic to check for them | 00:40 | |
| It's going to be really hard to keep track of platform-specific stuff, especially non-IEEE formats | 00:41 | ||
| Infinoid | a lot of projects do that, it makes sense to me. | ||
| to be fair, it's mostly VMS, OS/390, and embedded platforms we're talking about here | 00:42 | ||
| IEEE covers most of the rest | |||
| dalek | r35233 | pmichaud++ | branches/rvar2/languages/perl6/src/parser: | 00:43 | |
| : [rakudo]: handle &-sigil in parameters | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35233 | |||
| Infinoid | so a strategy of "use IEEE where it works, and do it ourselves otherwise" seems reasonable to me. | ||
| for some possibly very strict value of "works" | 00:44 | ||
| chromatic | I'm comfortable drawing a line around Windows, Mac OS X, Linux, and whatever BSD we can get working and saying that we'll deal with everything else when we get reliable testing on them. | ||
| Whiteknight | yeah, I guess we can deal with more portable floating point routines when we expand to cover more platforms | ||
| right now, all our target platforms are IEEE-compliant | 00:45 | ||
| Infinoid | compiler breakage aside | ||
| Whiteknight | right | 00:48 | |
| I had to write an IEEE743 floating point unit in Verilog once. If you have the chance, pass | 00:49 | ||
| particle | yep | ||
| let's not think about 24- or 80-bit floats | 00:50 | ||
| Infinoid | speaking of oddly sized floats, I'm hoping we don't use "long double" anywhere (96 bits on my platform) | 00:51 | |
| cool, I have some spare time tonight. hoping to bang away on the packfile pmcs a little more | 00:52 | ||
|
00:52
clunker3__ joined
|
|||
| dalek | r35234 | pmichaud++ | branches/rvar2/languages/perl6/src/parser: | 00:58 | |
| : [rakudo]: Make pointy block parameters readonly again. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35234 | |||
|
01:02
Fayland joined
|
|||
| GeJ | I'm still confused about the difference between typeof and isa. | 01:25 | |
|
01:25
jimmy joined
|
|||
| GeJ | typeof returns 'Foo;Bar', but 'Foo;Bar' won't match with isa. | 01:26 | |
| chromatic | typeof has to return a string. | ||
| isa can take a key | |||
| GeJ | ['Foo';'Bar'] will match indeed. I was just wondering why 'Foo;Bar' wouldn't. But it's most certainly due to wrong assumptions on my side of the keyboard. | 01:28 | |
| chromatic | It's possible to go from a Key to a STRING without losing too much information, but the opposite is not true. | 01:29 | |
|
01:29
Debolaz joined
|
|||
| jimmy | I run make on ubunut but failed. | 01:32 | |
| s/ubunut/ubuntu/ | |||
| a configure script displayed syntax error | 01:33 | ||
| Infinoid | jimmy: nopaste it please | 01:39 | |
| purl | it has been said that nopaste it is See /who is nopaste for the URL. | ||
|
01:40
MariachiElf joined
|
|||
| GeJ | purl: pastebin ? | 01:41 | |
| purl | somebody said pastebin was see nopaste. or see shadowpaste | ||
| GeJ | purl: nopaste ? | ||
| purl | nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others) | ||
| jimmy | Infinoid: I run it yesterday, and I had no network night. | 01:45 | |
| s/run/ran/ | |||
| Coke | chromatic: we could add typeof_p_p | 01:52 | |
| chromatic | I'm not sure that's useful though. | ||
| Coke | we could make a key lime pie with it. | ||
| chromatic | I do like pie. | ||
| Coke | mmmm. | ||
| Coke is about another week away from having his `home office' not look like compusa from 1992 exploded. | 01:53 | ||
| pmichaud | we already have typeof_p_p | 01:55 | |
| and it does what you would want | |||
| $P0 = typeof $P1 | |||
| $I0 = isa $P1, $P0 # generally true | 01:56 | ||
| Coke learns not to trust chromatic. | |||
| Infinoid | jimmy: oh, ok. sadly, I don't see that syntax error here | ||
| pmichaud | P6object, PCT, and other things heavily rely on typeof_p_p | ||
| jimmy | do we have typeof_p_n? n means null | ||
| chromatic | I don't think we have any ops with n type. | ||
| Coke | the _p _s _i _n correspond to the registers; null isn't a register type, it's a value for P or S | 01:57 | |
| you could do "null $P1; typeof $P2, $P1" | |||
| pmichaud | using typeof on a null PMC gives a "null PMC" exception. | ||
| Coke | pmichaud: Doctor, it hoits when I do dis. | ||
| pmichaud | to check if a PMC is null, use $I0 = isnull $P0 | 01:58 | |
| or "if null $P0 goto <label>" | |||
| jimmy | yes, it gives a exception | ||
| Infinoid | wait, what? I thought "n" was NUMVAL | ||
| Coke | it is. | ||
| pmichaud | it is. | 01:59 | |
| chromatic | I meant n for NULL | ||
| jimmy | everytimes before I want 'typeof $P', i need 'if null $P0 goto ...'? | ||
| pmichaud | if you think that your register might be null, yes. | ||
| Coke | or you can register an exception handler. | ||
| pmichaud | that also. | ||
| Coke wonders if "errorson" covers that case. | |||
| jimmy | I think I can typeof $P0 directly | ||
| without if null goto <lable> | 02:00 | ||
| do we need typeof_p_n? | 02:01 | ||
| pmichaud | no. | ||
| Coke | there is no _n | ||
| pmichaud | (note that _n normally means "num") | ||
| Coke | (pmichaud said it better) | 02:02 | |
| pmichaud | but assuming you mean "do we need typeof to work on null PMC?", the standard answer to date has been that we throw an exception whenever trying to use the null PMC. The only (very recent) exception to that rule is 'isa' | ||
| jimmy | but I should use 'if null $P0 goto <label>' before I want to use 'typeof $P0' | ||
| pmichaud | jimmy: if $P0 might be null, yes. | ||
| jimmy: or you can set an exception handler to catch the exception if/when it comes. | 02:03 | ||
| jimmy | typeof works fro PMCNULL, but does not work for NULL | ||
| s/fro/for/ | |||
| Coke | you shouldn't see NULL in bytecode. | ||
| only PMCNULL. | 02:04 | ||
| and when we've been saying null here, we mean parrot PMCNULL, not C NULL | |||
| pmichaud | sorry, I've only been talking about bytecode. Coke is correct, that NULL should never arise in bytecode. If it does, then that's an error on the part of whatever produced the NULL. | ||
| jimmy | I can create NULL in pir. | ||
| Coke | jimmy: how? | ||
| jimmy | in pipp: var_dump(var_dump($)); because var_dump is void , that creates NULL | 02:05 | |
| it returns NULL. | |||
| pmichaud | a pipp NULL isn't the same as a C NULL. | ||
| Coke | ... do we really need null_i and null_n ? | 02:06 | |
| pmichaud | PHP has its own idea of the meaning of "NULL", but it doesn't mean the same a C's NULL. | ||
| jimmy | no, not PHPćNULL | ||
| not PHP NULL, if it is ,we can typeof it. | |||
| pmichaud | then whatever is handling var_dump in PIPP is a bug, because we should never see NULL at the PIR level. | 02:07 | |
| jimmy | so in var_dump , before I use typeof $P0, I must use if null $P0 goto <label>, I don't like that. | ||
| pmichaud | that's the way it is. | ||
| dalek | r35235 | coke++ | trunk/src/ops: | ||
| : [docs] minor doc clarification. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35235 | |||
| Coke | jimmy: if you're checking it with null $P0, that's a PMCNULL. | ||
| pmichaud | if you don't like doing the extra check, then need to talk to the PIR designers about it :-| | 02:08 | |
| jimmy | yes, because the user can crreate NULL with void function | ||
| pmichaud | I've asked before and was basically told we shouldn't do that. | ||
| chromatic | That's a bug in the code then. | ||
| Coke | jimmy: void /pir/ function? | ||
| jimmy | a function just use .return in pir | ||
| Coke | ok. moment. | 02:09 | |
| jimmy | you can remove if null $P0 goto .... in var_dump, and then make test will failed. | ||
| pmichaud | sure, because you get a null PMC exception. | 02:10 | |
| jimmy | yes. | ||
| Coke | bare ".return" is a syntax error. | ||
| do you mean ".return()" ? | |||
| jimmy | yes. | 02:11 | |
| nopaste | "Coke" at 72.228.52.192 pasted "some confusion between NULL and PMCNULL" (12 lines) at nopaste.snit.ch/15250 | ||
| Coke | in PIR, 'null' refers to what's defined as PMCNULL in C. | 02:12 | |
| when you say "NULL" it makes us think C's NULL, which is something else. | |||
| if parrot hits a PMCNULL, it usually gives you a nice exception. If it gets a NULL, it will probably segfault. | |||
| chromatic | Does anyone else have to Ctrl-D twice with parrot -? | ||
| Coke | chromatic: "option -? not known" | 02:13 | |
| pmichaud | "parrot -" | ||
| purl | rumour has it "parrot -" is different from "parrot perl6.pbc" | ||
| pmichaud | not "parrot -?" | ||
| jimmy | it is that, if you use 'null $P0' and 'typeof $P0' will give you a exception | ||
| Coke | jimmy: yes. | ||
| jimmy | .return() is the same as null | 02:14 | |
| pmichaud | yes, I have to Ctrl-D twice. | ||
| Coke | chromatic: I do not. | ||
| jimmy | .return() is the same as null $P0 | ||
| Coke | I hit it once, I get: | ||
| pmichaud | I have to Ctrl-D twice if I enter code. I do not if I do it first. | ||
| Coke | error:imcc:syntax error, unexpected $end in file '-' line 1 | ||
| chromatic: I only have to do it once, even with code (invalid or valid) | 02:15 | ||
| jimmy | coke: why we can't typeof $P0 directly? | ||
| chromatic | You *can*. | ||
| Coke | an exception isn't a fatal thing. | ||
| you can catch it. | |||
| jimmy | in pipp, it is not a exception. | 02:17 | |
| nopaste | "coke" at 72.228.52.192 pasted "itle" (11 lines) at nopaste.snit.ch/15251 | 02:18 | |
| jimmy | maybe pipp is a exception? | ||
| chromatic | I don't know how Pipp's and PIR's semantics differ; certainly they're not the same. | ||
| pmichaud | pipp needs to know how to handle PMCNULL when it sees it. | ||
| nopaste | "coke" at 72.228.52.192 pasted "slight fixup to last post" (12 lines) at nopaste.snit.ch/15252 | ||
| pmichaud | In this case, I suspect that means checking for null prior to using typeof. | 02:19 | |
| Coke | jimmy: parrot isn't going to be an exact match for each high level language. | ||
| as I am sadly aware. =-) | |||
| jimmy | Coke++ | 02:20 | |
| Coke | tcl: puts Coke-- | ||
| polyglotbot | OUTPUT[Coke--ā¤] | ||
| jimmy | the code at nopaste works well | ||
| Coke | oh. one more fix, needs a 'pop_eh' after the eek: | ||
| Infinoid | eek pop, eh? | 02:21 | |
| Coke | I have not yet memorized the new syntax. | ||
| eekee pop. hes famous. | |||
| Coke is tired of looking at this mess and goes upstairs to kill giant walking mushrooms with the force and a lightsaber. | 02:22 | ||
| chromatic | TimToady, ping. If you don't send in your bio, we'll make something up, and I have in mind leprechauns and aliens and Sean Connery. | 02:33 | |
|
02:50
gravity joined
02:51
kid51 joined
03:24
Fayland joined
|
|||
| jimmy | msg masak you say ļ¼ ä½ ęåęä¹ę ·ļ¼ should beļ¼ ä½ ęčæęä¹ę ·ļ¼ i think. | 04:33 | |
| purl | Message for masak stored. | ||
| dalek | r35236 | infinoid++ | trunk/t/pmc (3 files): | 04:38 | |
| : [pdd13] Split the tests in packfile.t into per-pmc test files | |||
| : (packfiledirectory and packfilesegment for now). | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35236 | |||
| r35237 | infinoid++ | trunk (2 files): | |||
| : [pdd13] Implement and test PackfileRawSegment methods. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35237 | |||
| r35238 | infinoid++ | trunk (2 files): | |||
| : [pdd13] Implement and test PackfileConstantTable methods. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35238 | |||
| r35239 | pmichaud++ | branches/rvar2/compilers/pct/src/PAST: | 04:52 | ||
| : [pct]: Allow PAST::Val nodes to serve as block references. | |||
| : Adjust capture_lex for anonymous blocks. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35239 | |||
| r35240 | pmichaud++ | branches/rvar2/languages/perl6/src/parser: | 04:53 | ||
| : [rakudo]: Refactor handling of lexical type names in parameters. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35240 | |||
| r35241 | pmichaud++ | branches/rvar2/languages/perl6/src/parser: | 05:06 | ||
| : [rakudo]: Fix global * twigil. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35241 | |||
| r35242 | pmichaud++ | branches/rvar2/languages/perl6/src/classes: | 05:12 | ||
| : [rakudo]: Update 'is copy' trait. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35242 | |||
|
05:14
TiMBuS joined
05:22
TiMBuS joined
|
|||
| dalek | r35243 | pmichaud++ | branches/rvar2/languages/perl6/src/builtins: | 05:39 | |
| : [rakudo]: Converting Role methods to PERL6MULTISUB requires extra work. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35243 | |||
|
05:44
TiMBuS joined
05:45
rhr joined
|
|||
| dalek | r35244 | pmichaud++ | branches/rvar2/languages/perl6/src/parser: | 06:03 | |
| : [rakudo]: Make variable redeclarations a warning instead of fatal. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35244 | |||
| r35245 | pmichaud++ | branches/rvar2/languages/perl6/src/parser: | 06:12 | ||
| : [rakudo]: ::Typename is declarational only in a declarational context. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35245 | |||
|
06:15
TiMBuS joined
06:25
mberends joined
|
|||
| dalek | r35246 | pmichaud++ | branches/rvar2/languages/perl6/src/parser: | 06:34 | |
| : [rakudo]: Corrected version of ::Type in declarational context. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35246 | |||
|
06:42
jimmy joined
07:09
chromatic joined
|
|||
| dalek | r35247 | petdance++ | trunk/compilers/imcc: | 07:16 | |
| : consting, and using strcat the way it should be. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35247 | |||
|
07:38
jrockway joined
07:54
pdcawley joined
08:02
iblechbot joined
08:20
jrockway joined
08:36
elmex joined
|
|||
| dalek | r35248 | jquelin++ | trunk/languages/befunge: | 08:48 | |
| : tabs to spaces | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35248 | |||
| r35249 | jquelin++ | trunk/languages/befunge: | 09:07 | ||
| : new sub stack__pop() | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35249 | |||
| r35250 | jquelin++ | trunk/languages/befunge: | 09:09 | ||
| : using stack__pop() in stack__duplicate() | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35250 | |||
|
09:11
masak joined
09:16
Eevee joined
|
|||
| dalek | r35251 | jquelin++ | trunk/languages/befunge (2 files): | 09:17 | |
| : instruction p implemented (put value) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35251 | |||
| r35252 | jquelin++ | trunk/languages/befunge: | 09:22 | ||
| : new sub stack__push() | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35252 | |||
| r35253 | jquelin++ | trunk/languages/befunge (2 files): | 09:24 | ||
| : instruction ! implemented (logical not) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35253 | |||
| r35254 | jquelin++ | trunk/languages/befunge: | 09:26 | ||
| : using stack__push() in maths__push_number() | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35254 | |||
|
09:26
Eevee joined
|
|||
| dalek | r35255 | jquelin++ | trunk/languages/befunge (2 files): | 09:39 | |
| : instruction | implemented (vertical if) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35255 | |||
| r35256 | jquelin++ | trunk/languages/befunge: | 09:42 | ||
| : typo: ! and | are different, dammit! | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35256 | |||
|
09:43
kj joined
|
|||
| dalek | r35257 | jquelin++ | trunk/languages/befunge (2 files): | 09:46 | |
| : new instuction g implemented (get value from playfield) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35257 | |||
| r35258 | jquelin++ | trunk/languages/befunge (2 files): | 09:48 | ||
| : cleaning sub names | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35258 | |||
| r35259 | jquelin++ | trunk/languages/befunge: | |||
| : bad copy'n'paste... get value is g, not p | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35259 | |||
| r35260 | jquelin++ | trunk/languages/befunge (2 files): | 09:51 | ||
| : instruction - implemented (substraction) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35260 | |||
| jimmy | trac.parrot.org/parrot/timeline is too slow, | 09:53 | |
|
09:55
alvar joined
|
|||
| dalek | r35261 | jquelin++ | trunk/languages/befunge (2 files): | 09:55 | |
| : instruction # implemented (trampoline) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35261 | |||
| r35262 | jquelin++ | trunk/languages/befunge: | 10:06 | ||
| : fix: trampoline flag is 2, not 1 | |||
| : using _flow__flag_set() for better readability | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35262 | |||
| r35263 | jquelin++ | trunk/languages/befunge: | 10:13 | ||
| : comment update | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35263 | |||
| r35264 | moritz++ | trunk/languages/befunge/config/makefiles: | 10:14 | ||
| : [befunge] s/pasm/pir/g in the Makefile | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35264 | |||
| r35265 | jquelin++ | trunk/languages/befunge (2 files): | 10:16 | ||
| : instruction , implemented (output char) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35265 | |||
| r35266 | jquelin++ | trunk/languages/befunge: | 10:18 | ||
| : instruction $ implemented (pop stack) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35266 | |||
| r35267 | jquelin++ | trunk/languages/befunge (2 files): | 10:23 | ||
| : instruction ` implemented (compare) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35267 | |||
| r35268 | jquelin++ | trunk/languages/befunge (2 files): | 10:29 | ||
| : instruction + implemented (addition) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35268 | |||
| r35269 | jquelin++ | trunk/languages/befunge (2 files): | 10:31 | ||
| : instruction / implemented (division) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35269 | |||
| r35270 | jquelin++ | trunk/languages/befunge (2 files): | 10:33 | ||
| : instruction % implemented (modulus) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35270 | |||
| r35271 | jquelin++ | trunk/languages/befunge (2 files): | 10:36 | ||
| : instruction \\ implemented (swap stack) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35271 | |||
| r35272 | jquelin++ | trunk/languages/befunge: | 10:37 | ||
| : clean up old pasm + fix comments | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35272 | |||
| jimmy | masak: have you recieved my message? | ||
| masak | jimmy: don't think so. which one? | ||
| ah, now I got something :) | 10:38 | ||
| jimmy | yes. | ||
| masak | ah, makes sense. ä½ ęčæęä¹ę ·ļ¼ | ||
|
10:39
tomyan joined
|
|||
| jimmy | čæå„½ļ¼ē°åØåØäøē | 10:39 | |
| ä½ č¦äøēåļ¼ | |||
| dalek | r35273 | jquelin++ | trunk/languages/befunge (2 files): | 10:40 | |
| : instruction . implemented (integer output) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35273 | |||
| masak | 儽ļ¼å„½ | ||
| moritz | that last time I saw such characters was on perlmonks: www.perlmonks.org/?node_id=735022 ;-) | 10:41 | |
| masak | jimmy: did you ask whether I want work? | ||
| jimmy | I asked whether you are working now. | ||
| dalek | r35274 | jquelin++ | trunk/languages/befunge: | ||
| : removing comment about porting in progress | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35274 | |||
| masak | jimmy: I thought č¦ meant 'want'. | 10:42 | |
| jimmy: 对,ęē°åØä¹åØäøē | 10:43 | ||
| lunch & | 10:46 | ||
| dalek | r35275 | jquelin++ | trunk/languages/befunge (2 files): | ||
| : instruction @ implemented (end) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35275 | |||
| r35276 | jquelin++ | trunk/languages/befunge: | 10:49 | ||
| : sub reordering + maths__mul() implemented | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35276 | |||
| r35277 | jquelin++ | trunk/languages/befunge: | |||
| : instruction * implemented (multiplication) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35277 | |||
| r35278 | jquelin++ | trunk/languages/befunge: | 10:51 | ||
| : cleaning main prog a bit | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35278 | |||
| r35279 | jquelin++ | trunk/languages/befunge (2 files): | 10:58 | ||
| : instruction ? implemented (go away) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35279 | |||
| r35280 | jquelin++ | trunk/languages/befunge (2 files): | 11:00 | ||
| : cleaning pseudo random stuff, now done with Random pmc | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35280 | |||
|
11:02
cotto joined
|
|||
| dalek | r35281 | jquelin++ | trunk/languages/befunge: | 11:02 | |
| : fix vertical if direction | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35281 | |||
| r35282 | jquelin++ | trunk/languages/befunge: | 11:06 | ||
| : fix comments | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35282 | |||
| r35283 | jquelin++ | trunk/languages/befunge: | 11:07 | ||
| : fix comments | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35283 | |||
|
11:19
ruoso joined
|
|||
| dalek | r35284 | jquelin++ | trunk/languages/befunge (2 files): | 11:24 | |
| : instruction & implemented (integer input) -- not tested | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35284 | 11:25 | ||
| r35285 | jquelin++ | trunk/languages/befunge (2 files): | 11:30 | ||
| : instruction ~ implemented (input char) -- not tested | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35285 | |||
| r35286 | jquelin++ | trunk/languages/befunge: | 11:36 | ||
| : remove legacy pasm comments | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35286 | |||
|
11:46
alvar joined
11:47
riffraff joined
11:48
gaz joined
|
|||
| dalek | r35287 | jquelin++ | trunk/languages/befunge: | 11:58 | |
| : removing unknown instruction catch-all | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35287 | |||
| r35288 | jquelin++ | trunk/languages/befunge: | |||
| : end doesn't need a flag | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35288 | |||
|
11:59
kid51 joined
|
|||
| dalek | r35289 | jquelin++ | trunk/languages/befunge (2 files): | 12:00 | |
| : fix io__input_integer call (bad sub name) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35289 | |||
| kid51 | Is there a problem with our mailing lists? The last post I see on parrot-dev was dated 9:16 am ET yesterday -- 22 hours ago. | ||
| dalek | r35290 | jquelin++ | trunk/languages/befunge: | 12:01 | |
| : handling division by zero | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35290 | |||
| r35291 | jquelin++ | trunk/languages/befunge: | 12:03 | ||
| : chomping line when inputing | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35291 | |||
|
12:20
jimmy joined
|
|||
| dalek | r35292 | jquelin++ | trunk/languages/befunge: | 12:20 | |
| : implemented status in debug mode | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35292 | |||
|
12:22
ruoso joined
|
|||
| dalek | r35293 | jquelin++ | trunk/languages/befunge: | 12:24 | |
| : adding breakpoint implemented | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35293 | |||
| r35294 | jquelin++ | trunk/languages/befunge (2 files): | 12:30 | ||
| : fix col breakpoint checking | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35294 | |||
| r35295 | jquelin++ | trunk/languages/befunge: | 12:31 | ||
| : removing legacy pasm comments | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35295 | |||
| r35296 | jquelin++ | trunk/languages/befunge: | 12:38 | ||
| : fix breakpoint adding | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35296 | |||
| kid51 | okay, I made a successful post on parrot-dev. So I guess there was simply no activity during those hours. | 12:39 | |
| dalek | r35297 | jquelin++ | trunk/languages/befunge: | 12:41 | |
| : removing breakpoint implemented | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35297 | |||
| r35298 | jquelin++ | trunk/languages/befunge: | 12:42 | ||
| : updated changes | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35298 | |||
| r35299 | jquelin++ | trunk: | 12:44 | ||
| : announcing befunge is working to world | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35299 | |||
| GeJ | jq: bravo | 12:50 | |
| moritz | now you need some more test cases | 12:51 | |
| jq | i'm going to send a mail to parrot@ | 12:52 | |
|
12:52
Lorn joined
13:05
cotto joined
|
|||
| jonathan | hi all | 13:15 | |
| moritz | hi jonathan | ||
| jonathan does a spectest run on rvar2 while he eats lunch | 13:18 | ||
| kid51 to $job | 13:19 | ||
| masak | ahoj jonathan | ||
| pmichaud | hello, jonathan | 13:21 | |
| jq | jquelin.blogspot.com/2009/01/befung...r-now.html | 13:22 | |
| shorten | jq's url is at xrl.us/bebytm | ||
| Coke_away | world, please file helpful bug reports. thanks. | ||
| pmichaud | jonathan: we pass all of the non-integration tests except for S12-class/parent_attributes.t and S12-subset/subtypes.t | 13:23 | |
| I know how to fix the first; I haven't looked at subtypes.t yet. | |||
| masak | jq++ | 13:24 | |
| pmichaud | afk, kids to school | ||
|
13:25
Whiteknight joined
|
|||
| jonathan | pmichaud: After nomming sandwich, I'll look at S12-subset/subtypes.t. | 13:25 | |
| jimmy | masak: č¦ meant need | 13:30 | |
| masak | jimmy: ah. makes sense. | ||
| so "I need to work", right? | |||
| jimmy | sometimes meant want | ||
| č¦ sometimes meant éč¦ļ¼ sometimes meant ę³č¦ | 13:31 | ||
| moritz | it's nice if you can make your needs being your wants also ;-) | ||
| jimmy | the former meant needļ¼ and the later meant want. | ||
| masak | right. | ||
| and the meaning of just č¦ is determined by context. | 13:32 | ||
| jimmy | in perlļ¼ it needs context | ||
| masak: yep | 13:33 | ||
| masak | gotcha. | ||
| kj | jq++ # befunge revival | 13:35 | |
| Whiteknight | jp++ | 13:36 | |
| moritz | karma jq | ||
| purl | jq has karma of 77 | ||
| masak | karma moritz | ||
| purl | moritz has karma of 409 | ||
| Whiteknight | karma Whiteknight | 13:37 | |
| purl | whiteknight has karma of 541 | ||
| Whiteknight | !!! | ||
| shit, I didn't think it was anywhere near that high | |||
| jimmy | karma jimmy | ||
| purl | jimmy has karma of 46 | ||
| jq | funny thing is that jquelin (my svn account) has now more karma than me :-) | ||
| moritz | karma jquelin | ||
| purl | jquelin has karma of 96 | ||
| jimmy | karma: masak | 13:38 | |
| karma masak | |||
| purl | masak has karma of 73 | ||
| Whiteknight | karma C | ||
| purl | c has karma of 7422 | ||
| jimmy | karma parrot | ||
| purl | parrot has karma of 24 | ||
| Whiteknight | parrot++ | ||
| :) | |||
| masak | karma Whiteknight | ||
| moritz | karma C++ | ||
| purl | whiteknight has karma of 541 | ||
| c++ has karma of -80 | |||
| masak | (c++)-- | ||
| Whiteknight | (c++)-- | ||
| jimmy | karma åęäŗ® | ||
| purl | åęäŗ® has neutral karma | ||
| masak | åęäŗ®++ | 13:39 | |
| jimmy | karma Zhuo Mingliang | ||
| purl | zhuo mingliang has neutral karma | ||
| jimmy | karma Mai Gao | ||
| purl | mai gao has neutral karma | ||
| jimmy | maigao++ | ||
| masak prefers to keep all eggs in one basket in this case :) | |||
|
13:49
jimmy joined
|
|||
| jimmy | Parrot::OpsFile: Unrecognized line: 'inline op end() :base_core :check_event :flow { | 13:49 | |
| '! | |||
| make: *** [lib/Parrot/OpLib/core.pm] é误 9 | |||
| I can't run 'make' On ubuntu | 13:50 | ||
| make: *** [lib/Parrot/OpLib/core.pm] error 9 | |||
| moritz | jimmy: did you do a 'make realclean' before? | ||
| jimmy | yes | 13:51 | |
| moritz | if not, try that first | ||
|
13:51
mj41 joined
|
|||
| jimmy | nopaste? | 13:51 | |
| clunker3 | pasta.test-smoke.org/ or paste.husk.org/ or nopaste.snit.ch:8001/ or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/ | ||
| purl | nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others) | ||
| nopaste | "jimmy" at 121.34.38.123 pasted "make failed on ubuntu" (9 lines) at nopaste.snit.ch/15254 | 13:52 | |
| Coke | jimmy: does 'svn st' report any local mods to your checkout? | 13:54 | |
| dalek | r35300 | moritz++ | trunk/languages/perl6/t: | 13:55 | |
| : [rakudo] add test for ~ in regexes to spectest.data | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35300 | |||
| jimmy | Coke: I don't know. I check out parrot on windows | 13:56 | |
| moritz | why? | ||
| jimmy | I usually use windows. | 13:57 | |
| Coke | svn st is just the commandline version of "what local modifications do I have | ||
| " | |||
| If you're using tortoisesvn,you can "check for modifications", IIRC. | |||
| dalek | r35301 | Whiteknight++ | trunk/docs/book: | 13:58 | |
| : [Book] Add more stuff about exceptions and handlers | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35301 | |||
| jimmy | yep, i am using tortoisesvn | ||
| but i ran make on windows didn't fail | 13:59 | ||
| Coke | ... ok. on ubuntu, do you have an svn checkout? | 14:00 | |
| jimmy | yes | ||
| Coke | are you using the command line svn client there? | ||
| jimmy | no | ||
| Coke | ok. however that client works on ubuntu, check for local modifications. | 14:01 | |
| jimmy | using 'svn st'? | ||
| moritz | aye | ||
| Coke | I am very confused. | 14:02 | |
| jonathan | pmichaud++ # Failed 10/279 test scripts. 70/7933 subtests failed. | ||
| Coke | you just said you didn't have the command line svn client there. how did you check out parrot on ubuntu? | ||
| jimmy | I had used it. but failed again. | ||
| Coke: i check out parrot on windows. | |||
| pmichaud | jonathan: I'm thinking of just regressing on the integration/ tests | 14:03 | |
| jimmy | but make it on ubuntu | ||
| Coke | did you move the source? | ||
| pmichaud | the man-or-boy.t test doesn't lend itself to troubleshooting very easily, although I suspect it has something to do with making copies of subs. | ||
| jimmy | nope. | ||
| Coke | then use the /windows/ svn client to check for local modifications. | ||
| jonathan | pmichaud: I'm a tad uncomfortable on that. | ||
| jimmy | I installed ubuntu by using wu-bi | ||
| jonathan | pmichaud: Because if we're failing those, it means we're likely to fail real world code. | 14:04 | |
| moritz | pmichaud: that test just passes subs around, I don't think it copies them | ||
| pmichaud | jonathan: nah, the tests we're failing in integration/ are very non-real-worldish | ||
| jimmy | Coke: why it didn't fail on windows? | ||
| jonathan | pmichaud: If I can hear that November builds/runs on rvar2, I'll feel a lot more comfortable. | ||
| pmichaud | moritz: closures get cloned. | ||
| Coke | jimmy: I have no idea. | 14:05 | |
| pmichaud | jonathan: oh, I can test november. | ||
| Coke | I'm just trying to find out if it's not building on ubuntu because you've changed anything. | ||
| just ruling things out. | |||
| perhaps the files have windows line endings because you checked them out there, and ubuntu doesn't like that. | 14:06 | ||
| nopaste | "jonathan" at 85.216.157.73 pasted "pmichaud - current status on Win32 (local patch making arith fail less epicly)" (17 lines) at nopaste.snit.ch/15255 | ||
| pmichaud | jonathan: you might svn up t/spec, just to make sure. | ||
| how does that nopaste compare with trunk? | 14:07 | ||
| jimmy | will svn replace line edings with different platform? | ||
| moritz | yes | 14:08 | |
| jonathan | pmichaud: Will find out - let me check. | ||
| pmichaud: I did make spectest, which I saw do an svn up | |||
| pmichaud | okay. | ||
| sprintf.t #39 is another nan/inf issue. | 14:09 | ||
|
14:09
AndyA joined
|
|||
| jonathan | pmichaud: Does any of arith.t fail for you? | 14:09 | |
| pmichaud | jonathan: no. | ||
|
14:10
alvar joined
|
|||
| jonathan | pmichaud: OK. I think all the ones that do fail in there are Inf and NaN related. | 14:10 | |
| So I'll not worry about thsoe. | |||
| How is your t\\spec\\S16-filehandles\\io.rakudo | |||
| ? | |||
| pmichaud | it passes for me... but look at the bottom of the test file. | ||
| weird. | |||
| looks like it forces a fail on Win32 | |||
| jonathan | pmichaud: Yeah, that looks bad. | 14:11 | |
| pmichaud | I'm fine with todo'ing that test. | 14:12 | |
| jonathan | I vote to remvoe the Win32 test alltogether and fudge it for Pugs. | ||
| pmichaud | or that. | ||
| whatever works -- I don't have an easy way to test it. | |||
| jonathan | unlink on Win32 doesn't to my knowledge have issues. | ||
| pmichaud: What about t\\spec\\S03-operators\\context-forcers.rakudo? | 14:13 | ||
| pmichaud | passes for me. | ||
| jonathan | I wonder if it's Inf and NaN again. | ||
| pmichaud | more inf/nan | ||
| yes. | |||
|
14:13
alvar joined
|
|||
| pmichaud | is +"Inf", Inf, "+ context forcer works (7)"; | 14:13 | |
| is +"-Inf", -Inf, "+ context forcer works (8)"; | |||
| is +"NaN", NaN, "+ context forcer works (9)"; | |||
| jonathan | Right. | ||
| So skip it. | |||
| erm | |||
| I mean, I'll disregard it. | 14:14 | ||
| t\\spec\\S03-operators\\numeric-context.rakudo is presumably those too? | |||
| pmichaud | yes. | ||
| jimmy is re-trying co parrot on ubuntu && making again. | |||
|
14:14
donaldh joined
|
|||
| pmichaud | numeric-context.t is mostly inf/nan tests. | 14:14 | |
| jonathan | Then that leaves me with the two you mentioned and 3 integration tests failing. | 14:15 | |
| pmichaud | I know how to fix parent_attributes.t | ||
|
14:15
gryphon joined
|
|||
| jonathan | OK. | 14:15 | |
| Whiteknight | irc logs? | ||
| purl | irc logs are nothing like http logs... very low overhead and storage | ||
| jonathan | I'll take on subtypes.t | ||
| pmichaud | so if you focus on subtypes we should be in good shape. | ||
| Whiteknight | Hey, where are the irc logs stored? | ||
| (I can never remember the damn url) | |||
| pmichaud | irclog? | ||
| purl | irclog is irclog.perlgeek.de/parrot/today or see also: infrared clogs | ||
| kj | Whiteknight: there's also a link on the developers section on parrot.org | 14:16 | |
| s/on/in/ | |||
| jonathan | pmichaud: Oh, odd. harness says | ||
| t\\spec\\S12-subset\\subtypes.rakudo 21 6 1-3 22-24 | |||
| But when I run it at the command line, I only get 1 through 3 failing... :-| | |||
| moritz | jonathan: maybe a bad plan? | 14:17 | |
| jonathan | moritz: maybe | ||
| pmichaud | bad plan, yes. | ||
| plan currently says 21 | |||
| moritz | november fails more tests in rvar than in trunk | ||
| pmichaud | moritz: rvar, or rvar2 ? | ||
| moritz | rvar2 | ||
| pmichaud | okay, just confirming. | 14:18 | |
| donaldh | the log url used to be in the motd too | ||
| pmichaud | I wonder how many things november did to workaround our param-passing bugs (or relied on our param-passing bugs), though. | ||
| moritz | for example t/uri/01.t dies with "still alive | ||
| sorry | |||
| dies with | |||
| Null PMC access in get_string() | |||
| current instr.: 'parrot;Perl6Object;CREATE' pc 619 (src/classes/Object.pir:371) | |||
| after the first test | |||
| pmichaud | okay -- I have to run an errand, then will do parent_attributes.t, then will look at November. | 14:19 | |
| donaldh | speaking of which, the motd / Topic is empty | ||
| moritz | donaldh: no, it's not ;) | ||
| pmichaud | I also have an $otherjob phone call in 1h40 | ||
| moritz | donaldh: it might be a synchronization problem between the various irc.perl.org servers | 14:20 | |
| donaldh | ah. | ||
| dalek | r35302 | jonathan++ | branches/rvar2/languages/perl6/src/parser: | ||
| : [rakudo] Correct sub name that we call. Fixes subtypes.t | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35302 | |||
| moritz | 15:19 -!- Topic for #parrot: Parrot 0.8.2 "Feliz Loro" Released www.parrot.org/news/2008/Parrot-0.8.2 | ||
| jimmy | after re-co parrot, make works now. | 14:21 | |
| donaldh | jonathan: going back to our real_self discussion from a couple of days ago | 14:22 | |
| szabgab | who is here from legal@parrot ? | ||
| I got Your message to parrot-directors awaits moderator approval | |||
| donaldh | jonathan: the only way real_self could be changed is using memcpy in methods like clone(). | 14:23 | |
| jonathan | donaldh: OK. Did you try removing it/references to it? | ||
| donaldh | I did. | 14:24 | |
| Spectests all pass. | |||
| jonathan | Did anything change? | ||
| OK | |||
| In that case, I expect it must now be unused. | |||
| donaldh | The only behaviour that could possibly change is that gc would mark the original that was cloned, for example. | ||
| But without real_self it won't. | 14:25 | ||
| That looked like an unintended side-effect. | |||
|
14:25
AndyA joined
|
|||
| jonathan | Sounds like one to me. | 14:25 | |
| I'd post the patch to the list to see if anyone objects. | |||
| donaldh | If it was intended then it would need to be signposted. | ||
| Whiteknight | I'm not sure there's any benefit to GC marking the original after a clone is created | 14:30 | |
| Unless cloning is a shallower copy then I suspected | |||
| s/shallower/more shallow/ | |||
| nopaste | "donaldh" at 144.254.91.104 pasted "PATCH: removing real_self from struct PMC" (56 lines) at nopaste.snit.ch/15256 | 14:33 | |
| Whiteknight | donaldh, I'm testing that patch now | 14:37 | |
| Maybe you should post something from the list or to trac to get some feedback. There might be a hidden use of this value that I am not aware of | 14:38 | ||
| donaldh | Are rt and trac synced? | 14:40 | |
| moritz | no | ||
| donaldh | perlbug goes to rt right? | ||
| moritz | new patches/tickets should go to trac | ||
| pmichaud | ...removing real_self? I was kinda hoping/wondering if that would be useful for Subs to maintain a pointer to their original PMC | 14:41 | |
| but perhaps that's actually something different. | 14:42 | ||
| jonathan | pmichaud: That was about exactly the opposite of what real_self was added for. :-) | ||
| pmichaud | jonathan: okay. | ||
| dalek | r35303 | Whiteknight++ | trunk/include/parrot: | ||
| : [include] Fix small comment typo | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35303 | |||
| jonathan | pmichaud: subtypes.t is sorted out | ||
| I'm looking at integration tests now; left pa one to you. | |||
| donaldh | I'll create a ticket on trac | ||
| Whiteknight | jonathan, what was real_self added for in the first place? | 14:43 | |
| jonathan | Whiteknight: So that when a PMC was acting as just storage for attributes when it was subclassed as a HLL object, we could still dispatch vtable and methods calls back down to the HLL object. | 14:44 | |
| So we got overriding right. | |||
| It worked pretty well. | |||
| I've no idea, how Allison has it works these days. | |||
| I've not looked. | |||
| I *hope* the answer isn't, that it doesn't work. | |||
| But I imagine we'd have had people complain by now if it didn't work. | 14:45 | ||
| Whiteknight | Judging by a quick grep, it really doesn't appear to have any purpose anymore | ||
| jonathan | *nod* | ||
| donaldh tried removing it and there were no ill effects | |||
| donaldh | Whiteknight: It gets clobbered whenever the PMC header gets memcpyed e.g. during clone. So more side-effects than code. | 14:46 | |
| The bug submission instructions on trac are out of date (still rt) trac.parrot.org/parrot/wiki/NewPar...loperGuide | 14:47 | ||
| Whiteknight | yeah, those instructions need major help | ||
|
14:51
pdcawley joined
|
|||
| jonathan | pmichaud: ping | 14:54 | |
| pmichaud | jonathan: pong | ||
| dalek | r35304 | pmichaud++ | branches/rvar2/languages/perl6/src/classes: | ||
| : [rakudo]: Restore WHENCE properties on .new. | |||
| : t/spec/S12-class/parent_attributes.t passes again. | 14:55 | ||
| review: www.parrotvm.org/svn/parrot/revision?rev=35304 | |||
| jonathan | pmichaud: Question or maybe bug. | ||
| I have a loop that looks like | |||
| PerlJam | jonathan: is that like truth or dare? | ||
| jonathan | for prime_factors_mult($n) -> @a { | ||
| PerlJam | :) | ||
| jonathan | :) | ||
| If I do | |||
| say prime_factors_mult($n).perl; | |||
| I get things like | |||
| [[2, 2], [5, 1]] | 14:56 | ||
| So, an array of arrays of 2 elements | |||
| However | |||
| pmichaud | wait | ||
| jonathan | for prime_factors_mult($n) -> @a { | ||
| say @a.WHAT; | |||
| say @a.elems; | |||
| pmichaud | [[2, 2], [5, 1]] doesn't have to be an array of arrays | ||
| it could be Lists | |||
| jonathan | Hmm, this is likely the problem. | 14:57 | |
| We do one iteration of the loop it seems | |||
| pmichaud | because List and Array both perl-ify the same. | ||
| dalek | r35305 | infinoid++ | trunk (10 files): | ||
| : [cage] Fix some "make codetest" failures (c_code_coda, c_indent, c_parens, | |||
| : linelength, tabs, trailing_space). | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35305 | |||
| jonathan | oh no | ||
| dalek | r35306 | infinoid++ | trunk/src/charset: | ||
| : [cage] Apply updates from "make headerizer". | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35306 | |||
| jonathan | We do an iteation for each of them | ||
| The thing is that @a.WHAT there gives Array as I'd expect | |||
| But @a.elems gives 1. | |||
| pmichaud | well, yes | ||
| jonathan | Where I'd expect 2. | ||
| pmichaud | @a forces things into an Array | ||
| let's assume that prime factors returns ((2,2), (5,1)) | 14:58 | ||
| (which it probably does) | |||
| then the for loop evaluates that result in list context | |||
| which is flattening | |||
| so we end up with (2, 2, 5, 1) | |||
| each of those elements is then passed to the block | |||
| jonathan | pmichaud: OK, here's a very short example to discuss. | ||
| pmichaud | the block has -> @a | ||
| jonathan | > my @a = [1,2],[3,4]; for @a -> @b { say @b.elems } | ||
| 1 | |||
| perl6: my @a = [1,2],[3,4]; for @a -> @b { say @b.elems } | 14:59 | ||
| polyglotbot | OUTPUT[2ā¤2ā¤] | ||
| pmichaud | yes ys | ||
| I know | |||
| we had a discussion about this on #perl6 a little earlier today (more) | |||
| consider this one: | |||
| sub foo(@a) { say @a.elems; }; foo([1,2,3]); | |||
| jonathan | (first result is for rvar2 - this is what underlies the failure in 99problems-31-to-40.rakudo) | ||
| pmichaud | current consensus on #perl6 is that this returns 1. | 15:00 | |
| jonathan | Right. | ||
| pmichaud | so, your short example would do the same. | ||
| jonathan | OK. That would suggest that the test is, therefore, wrong. | ||
| pmichaud | yes. | ||
| which is why I was thinking of regressing the integration tests. many are wrong. | 15:01 | ||
| because they mis-interpret array parameter passing. | |||
| (either that or the rvar2 branch does, but I'm betting it's the tests that are wrong.) | |||
| PerlJam | Is there some signature syntax for "unpacking" [1,2,3] into @a automatically in that sub? | 15:02 | |
| jonathan | -> [$a, $b] { ... } # is I think valid Perl 6 | ||
| PerlJam | (treat it as if you'd done foo(1,2,3) instead) | ||
| jonathan | But maybe won't do what you want. | ||
| pmichaud | PerlJam: note that foo(1,2,3) is entirely different. | ||
| PerlJam: you probably meant foo((1,2,3)) | |||
| PerlJam | pm: er, yes thanks :) | 15:03 | |
| pmichaud runs another spectest in rvar2 | |||
| jonathan | pmichaud: OK, if we're regressing them because they are wrong, that's different to regressing them because we have bugs. | ||
| And not really regressing in some senses. :-) | 15:04 | ||
| pmichaud | jonathan: ...and we don't know yet if the tests are wrong or if we have bugs. | ||
|
15:04
AndyA joined
|
|||
| pmichaud | but I don't want to hold the branch to find out. | 15:04 | |
| we have good reason to believe the tests may be wrong :-) | |||
| jonathan | Right. | ||
| OK, I agree. | |||
| For the merge. | |||
| pmichaud | I'm running one final spectest. If all of the tests sans t/spec/integration/ pass then I think I can start the merge. And there will be much rejoicing. | 15:05 | |
| jonathan | pmichaud: I think that, other than tests that fail for NaN/Inf reasons, we are looking good on Win32. | 15:06 | |
| (modulo integration tests which we agree on regressing on) | |||
| pmichaud | This branch has been incredibly productive/useful. | ||
| jonathan | Yes. | 15:07 | |
| pmichaud++ | |||
| pmichaud | We can also go through and clear out our unused "helper functions" that we might've missed. :-) | ||
| jonathan | pmichaud: Did you do much with enums? | ||
| jonathan hasn't looke dyet | |||
| pmichaud | no. | ||
| didn't touch them at all. | |||
|
15:08
davidfetter joined
|
|||
| jonathan | Ah, but they pass...OK. | 15:08 | |
| pmichaud | since they appear to work in the branch, I'll .... right. | ||
| jonathan | OK, the problems they have must have been unrelated. | ||
| erm | |||
| PerlJam | git diff master..rvar2 actions.pm # so very useful to see just the changes :) | ||
| jonathan | damm, that's not at all what I mant to type | ||
| The problems they had must have been related to other things which we've now fixed. | |||
| pmichaud | I mainly want to get them to generate code in guts.pir or somewhere like that instead of actions.pm | ||
| jonathan | Sure. | 15:09 | |
| Once you do that, !keyword_role and !keyword_has can be ripped out of guts.pir, I expect. | |||
| pmichaud | (if that ends up making more sense, which I think it does) | ||
| jonathan | It may do. | ||
| But don't want them too dynamic either. | |||
| pmichaud | agreed, there's a balance to be struck there. | 15:10 | |
| jonathan | We need to register a bunch of type names from them in the actions. | ||
| (for type registry stuff) | |||
| Which I can now work on again. w00t. | |||
| pmichaud | I can go clear up a bunch of tickets :-) | 15:13 | |
| dalek | r35307 | pmichaud++ | trunk/languages/perl6/docs: | 15:14 | |
| : [rakudo]: spectest-progress.csv update: 279 files, 6172 passing, 0 failing | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35307 | |||
| pmichaud optimistically starts the branch merge even before his spectest run is complete. | |||
| jonathan | Go for it. :-) | ||
|
15:15
particle joined
|
|||
| pmichaud | yay, no merge conflicts. | 15:18 | |
| now let's see what broke. | |||
| jonathan wonders how much effort to write actions for svn.chrisdolan.net/languages/java/s...grammar.pg | |||
| Whiteknight | wow, quite a large grammar | 15:20 | |
| jonathan | Whiteknight: Yeah. But may be able to get some actions together for some of it quite fast. | 15:21 | |
| Maybe a little project for one evening on the weekend, over some whisky. :-) | |||
| jonathan has had a bottle of it left in his care | 15:22 | ||
| pmichaud would need whiskey, or something stronger, to work on Java. | |||
| jonathan | pmichaud: I can handle working on the compiler, but no way am I going to write the tests. ;-) | ||
| Whiteknight | Last weekend I threw together the beginnings of a BCPL grammar. One day I'll try to write some actions for that | 15:23 | |
| jonathan | OH NO NOT THAT LANGUAGE!! | ||
| kj | wasn't that where B came from? | ||
| jonathan was lectured by its creator. | |||
| Whiteknight | I found a COBOL grammar online and was thinking about converting it, but I don't have that kind of time or energy | ||
| jonathan | kj: Apparently. | 15:24 | |
| kj | Whiteknight: haha, I tried that as well :-) Too much work | ||
| jonathan | His lectures were enough to make me never want to look at the langague. | ||
| pmichaud | "I found a COBOL grammar online and was thinking about converting it, but I don't want repetitive stress injury." | ||
| kj | ISTR B is not, or at least very weakly typed | ||
| Whiteknight | pmichaud: that too. COBOL isn't just bad for the mind, it's also bad for the fingers | ||
| jonathan | "I found a COBOL grammar online and was thinking about converting it, but I did the one for English instead becasue it was easier." | ||
| pmichaud | lol | ||
| jonathan | kj: I think it was described as untyped. | 15:25 | |
| Whiteknight | "COBOL: Gets the job done, but you die on the inside" | ||
| jonathan | kj: It had one type. | ||
| pmichaud | so far all of the language tests post-merge are passing. :-) | ||
| jonathan | Which was the 32-bit integer. IIRC. | ||
| kj | jonathan: well, that's kind of interesting :-) | ||
| jonathan | Well, it was more interesting than the lecture. | 15:26 | |
| kj | java grammar: it's big, but all the alternatives-rules, they're trivial, and that would be a large part | ||
| jonathan is fascinated with programming language design, but that course only left me feeling I could have delivered it better... | 15:27 | ||
| dalek | r35308 | pmichaud++ | trunk (5 files): | 15:31 | |
| : [core]: Changes to core merged from rvar2 branch. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35308 | |||
| r35309 | pmichaud++ | trunk/compilers/pge/PGE: | |||
| : [pge]: Merged changes from rvar2 branch. | |||
| : * Updated handling of namespace and grammar options | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35309 | |||
| r35310 | pmichaud++ | trunk/compilers/pct/src (5 files): | |||
| : [pct]: Merged changes from rvar2 branch. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35310 | |||
| pmichaud | only thing remaining is merging rakudo itself, and there I'm just waiting for the spectest run to complete. | 15:32 | |
| jonathan waits patiently | 15:46 | ||
| Coke pokes jonathan. | 15:47 | ||
| jonathan bites Coke's finger | 15:48 | ||
| particle | rakudo: my @x = 1, 2, 3; say "2nd is {@x[1]}"; | 15:49 | |
| polyglotbot | OUTPUT[2nd is 2ā¤] | ||
| pmichaud | r35311. | 15:50 | |
| dalek | r35311 | pmichaud++ | trunk (25 files): | 15:51 | |
| : [rakudo]: Merge rvar2 branch to trunk. | |||
| : This is a major refactor of variable and parameter handling in Rakudo. | |||
| : jonathan++, particle++, and others for assistance with the branch. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35311 | |||
| jonathan | Nice! | 15:52 | |
| PerlJam builds. | |||
|
15:53
jsut|work joined
|
|||
| pmichaud runs a test summary to see what this has done to our test count. | 15:53 | ||
| (and to find passing TODOs) | |||
| jonathan does a make spectest in trunk, so he knows what is broken. | 15:55 | ||
| particle | pmichaud++ # i *jut* cancelled spectest in rvar, will build trunk now | 16:00 | |
|
16:05
Andy joined
|
|||
| jonathan | pmichaud: I got some post-merge curiosities. :-| | 16:06 | |
| t\\spec\\S05-metasyntax\\regex.rakudo 1 256 14 20 5-14 | |||
| t\\spec\\S06-multi\\type-based.rakudo 1 256 ?? ?? ?? | |||
|
16:06
Andy joined
16:07
jsut|work joined
|
|||
| jonathan | particle: Will be curious to know if you see the two fails I just pasted. | 16:10 | |
|
16:12
Eevee joined
|
|||
| dalek | r35312 | infinoid++ | trunk (5 files): | 16:12 | |
| : [cage] More trailing whitespace fixes. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35312 | |||
| pmichaud | I show no spectest failures in trunk. | 16:13 | |
| jonathan | Oddness. | ||
| purl | i guess oddness is that the icons are on top of the google ads | ||
| jonathan has no local diffs | |||
| pmichaud | did you rebuild parrot and pct? | ||
| and pge? | |||
| purl | pge is the Parser Grammar Engine | ||
| jonathan | I believe so. | ||
| pmichaud | hmm. | ||
| jonathan | Let me do a realclean just to be sure. | ||
| pmichaud | after merge we're down to 6132 passing spectests in trunk. I can live with that. | 16:14 | |
| jonathan | Have we untodo'd any of the unexpected WIN yet? | ||
| Hopefully autounfudge will win us something too. | 16:15 | ||
| lu_zero | fudge? | 16:16 | |
| purl | i think fudge is compsoc.dur.ac.uk/~tsp | ||
| lu_zero | o_O | 16:18 | |
| jonathan | Sorry for false alarm. | ||
| make realclean helped | |||
| lu_zero: It's tasty. :-) | 16:19 | ||
| pmichaud | I'm looking at passing todo's now. | ||
| lu_zero | O_o | 16:21 | |
| Whiteknight | fudge is also a tasty confection | 16:25 | |
| purl | okay, Whiteknight. | ||
| Whiteknight | fudge is also how we make problems go away | ||
| purl | okay, Whiteknight. | ||
| jonathan | bbiab | ||
|
16:29
jan joined
16:32
polyglotbot joined
|
|||
| Infinoid | befunge: <@,,,"Hi!" | 16:32 | |
| polyglotbot | OUTPUT[Hi!] | ||
| Infinoid | jq++ | 16:33 | |
|
16:35
Eevee joined
16:38
AndyA joined
16:39
jhorwitz joined
|
|||
| jq | hi Infinoid! | 16:40 | |
| Whiteknight | befunge: >"!iH",,,@ | 16:41 | |
| befunge: >"!iH",,,$ | |||
| jq | Whiteknight: uh, your second example is an infinite program | 16:42 | |
| Whiteknight doesn't know enough befunge to make this work | |||
| lathos | That's a good thing, though, right? | ||
| Infinoid | I don't think polyglotbot has a timeout. | ||
| Infinoid kills it | 16:43 | ||
| polyglotbot | OUTPUT[Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!H | ||
| ..i!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!H... | |||
| OUTPUT[Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!H | |||
| ..i!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!H... | |||
| Whiteknight | sorry for breaking it | ||
| pmichaud | fudge is how we sweep our problems under a suitably large rug. :-) | ||
| Infinoid | its ok. its not going to be very good for befunge anyway, as we're limited to unefunge and it will strip out some of the whitespace | ||
| Whiteknight | how do I make it just go right, print out something, and then stop? | 16:44 | |
| Infinoid | (and I don't know why your first eval didn't work; it looks good to me.) | ||
| jq | Whiteknight: stop is @ | ||
| Infinoid | befunge: "!iH",,,@ | ||
| Whiteknight | befunge: >"!iH",,,@ | ||
| befunge: <"!iH",,,@ | 16:45 | ||
| Zaba | befunge: 91+"!dlrow olleH">:#,_@ | ||
| Whiteknight | befunge: <@,,,"!iH" | ||
| Infinoid | I think it's just slow. | 16:46 | |
| Whiteknight | you know what would be a fun game? Making well-formed XML that also was valid befunge programs | ||
| Zaba | we'll find out not soon then! | ||
| Whiteknight | it would be like golfing, only terrible! | ||
| Zaba | Whiteknight, it would be pretty easy actually | ||
| jq | Infinoid: but some small programs like that don't even take a second! | ||
| Zaba | <![CDATA[ v | ||
| it will go left and go down to _whatever_ is in the cdata block | 16:47 | ||
| Infinoid | jq: its running in a virtual machine that's going into swap right now, and also rebuilding another copy of parrot in the background | ||
| jq | Infinoid: oh, ok | ||
| Infinoid | also, for some reason, >"!iH",,,@ seems to be infinite | 16:49 | |
| Infinoid wonders if it's chopping off the last character when loading the program | |||
| but if that were true, my example shouldn't work either... | |||
|
16:50
polyglotbot joined
|
|||
| Zaba | befunge: 91+"!dlrow olleH">:#,_@ | 16:51 | |
| polyglotbot | OUTPUT[Hello world!ā¤Hello world!ā¤Hello world!ā¤Hello world!ā¤Hello world!ā¤Hello world!ā¤Hello world!ā¤Hello world!ā¤Hello world!ā¤Hello world!ā¤Hello world!ā¤Hello world!ā¤Hello world!ā¤Hello world!ā¤Hello world!ā¤Hello world!ā¤Hello world!ā¤Hello world!ā¤Hello world!ā¤Hello world!ā¤Hello world!ā¤Hello world!ā¤Hello | 16:52 | |
| ..world!ā¤Hello world!ā¤Hello world!ā¤Hello world!ā¤He... | |||
| Zaba | it does seem to strip the @.. | ||
| Infinoid | or do a laheyspace loop one character too early | 16:53 | |
| or something. | |||
| befunge: "!iH",,,@ | 16:54 | ||
| polyglotbot | OUTPUT[Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!H | ||
| ..i!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!H... | |||
| Infinoid | it's being run as: ./parrot languages/befunge/befunge.pbc /tmp/9ZGpsyfaCt | 16:55 | |
| and the tmpfile does contain the @. but no newline | |||
| Zaba | is it befunge93 or 98? | ||
| Infinoid | its befunge93 | ||
| I can reproduce it on the command line here | 16:56 | ||
| particle | Infinoid: what happens if you add the newline? | ||
| Infinoid | it works. | 16:57 | |
| particle | well then. | ||
|
16:57
peters joined
|
|||
| peters | Hello | 16:57 | |
| purl | hey, peters. | ||
| Infinoid | the befunge debugger looks like the @ isn't ending up in the laheyspace | ||
| (5,0) - ',' (ord=44) dir=1 - stack=33,105,72 | |||
| bef> | |||
| H(6,0) - ',' (ord=44) dir=1 - stack=33,105 | |||
| bef> | |||
| i(7,0) - ',' (ord=44) dir=1 - stack=33 | |||
| bef> | |||
| !(8,0) - ' ' (ord=32) dir=1 - stack= | |||
| bef> | |||
| particle | hi there, peters | 16:58 | |
| Infinoid | I think the "chopn line, 1" in load.pir is the culprit | 16:59 | |
| peters | recent commit (r35311) gives a [get_string() not implemented in class 'ResizableStringArray'] when I'm matching a grammar | 17:00 | |
| .. in rakudo | |||
| peters tries to produce a small test case | |||
| pmichaud | peters: how are you matching the grammar? | 17:01 | |
| peters | ('foo:bar@localhost:0001/foo/bar/?foo#0' ~~ /^<Grammar::RFC3986::URI>$/).dump; | 17:02 | |
| pmichaud | yes, I need a small test case to track that one down. | ||
| peters | I will try to reduce it | 17:03 | |
| dalek | r35313 | infinoid++ | trunk/languages/befunge: | 17:07 | |
| : [befunge] Don't chop off characters for source files which don't contain a trailing newline. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35313 | |||
| Infinoid | befunge: "!iH",,,@ | ||
| polyglotbot | OUTPUT[Hi!] | 17:08 | |
| Infinoid | Whiteknight++ # spotting a bug on the very first attempt | ||
| Whiteknight must be a totally awesome debugger | 17:09 | ||
| Infinoid | Whiteknight> bt | ||
| Zaba | hm | 17:10 | |
| parrot befunge does spaces like sgml, i.e. not as in standards | |||
| otherwise it passes mycology! | |||
| peters | pmichaud: I'm fumbling in the dark (tried some obvious cases without luck), would it be ok if I nopaste my current code? | 17:13 | |
|
17:13
hercynium joined
|
|||
| szabgab | particle: CLA was sent | 17:13 | |
| Whiteknight | befunge: >"!iH",,,@ | ||
| polyglotbot | OUTPUT[Hi!] | ||
| Whiteknight | !!! | ||
| Whiteknight adds "Befunge Programming" to his resume :) | |||
| PerlJam wonders what job would have that as a "useful to know" skill | 17:14 | ||
| or worse, a _required_ skill | |||
| nopaste | "mpeters" at 83.183.129.106 pasted "Grammar/RFC5234.pm" (6 lines) at nopaste.snit.ch/15258 | ||
| "mpeters" at 83.183.129.106 pasted "Grammar/RFC5234.pm" (152 lines) at nopaste.snit.ch/15259 | |||
| "mpeters" at 83.183.129.106 pasted "uri.p6" (9 lines) at nopaste.snit.ch/15260 | |||
| Infinoid | I use it for AI stuff. it's a lot easier than most languages, to generate random jibberish and run it | ||
| which means you can use genetic algorithms on it, directly | 17:15 | ||
| aside from a few corner cases, there's no such thing as a parse error in befunge. :) | 17:16 | ||
| peters | pmichaud: It worked before "major" commit | ||
| first nopaste should have been titled Grammar/RFC5234.pm | 17:17 | ||
| and second Grammar/RFC3986.pm | 17:18 | ||
| Whiteknight | Infinoid: that's actually very clever! Using genetic algorithms to generate Befunge programs | 17:20 | |
| Infinoid | Whiteknight: Thanks, been a hobby of mine for years. Looking to release it to CPAN in the near future. | ||
| Whiteknight | Let me know when you do, I'd be very interested to see that | 17:21 | |
| Infinoid | Whiteknight: in the meantime, squawk.glines.org/wiki/evfunge is outdated but available. | ||
| pmichaud | does rakudo implement ".parse" yet? | 17:24 | |
| Whiteknight | evfunge looks very cool! | 17:26 | |
| nopaste | "mpeters" at 83.183.129.106 pasted "minimal test case for pmichaud" (26 lines) at nopaste.snit.ch/15261 | ||
| pmichaud | having "grammar Foo;" and "grammar Bar is Foo;" in the same file is incorrect p6. | 17:27 | |
| needs to be "grammar Foo { ... }" and "grammar Bar is Foo { ... }" | |||
| oh, sorry, they're in different files | |||
| PerlJam | pm: they're in different files. | ||
| pmichaud | didn't see that | ||
| never mind. | |||
| purl | Okie dokie | ||
| peters | I missed 'use Grammar::Bar;' in Grammar::Bar but the error is the same | 17:28 | |
| s/use Grammar::Bar/use Grammar::Foo/ | 17:29 | ||
| pmichaud | okay, checking | ||
| shouldn't that just be <Bar::any> ? | 17:31 | ||
| yes, I now get the ResizableStringArray error. | |||
| checking. | |||
| jonathan is back | 17:32 | ||
| pmichaud | I wonder how this used to work. | 17:34 | |
| peters | pmichaud: You are right, should have been /^<Bar::any>$/ but the reported error is the same | 17:36 | |
| pmichaud | peters: yes, I see it now. | ||
| I don't know why it would've worked before r35311 though. | |||
| peters | I can ensure you it did work before, | ||
| my previous nopaste, worked | |||
|
17:38
tomyan left
|
|||
| peters | It worked until a couple of hours ago when I decided to svn up and complie | 17:38 | |
| nopaste | "mpeters" at 83.183.129.106 pasted "URI.pm (suck API wise but it did work before)" (142 lines) at nopaste.snit.ch/15262 | 17:39 | |
| pmichaud | I believe you that it did work, I just don't know why. | ||
| looks like it has to do with 'use' semantics | 17:40 | ||
| nopaste | "mpeters" at 83.183.129.106 pasted "URI/Grammar.pm (for completeness)" (58 lines) at nopaste.snit.ch/15263 | ||
| "pmichaud" at 72.181.176.220 pasted "this version works in current trunk" (21 lines) at nopaste.snit.ch/15264 | 17:41 | ||
| peters | strange, almost the same | 17:42 | |
| pmichaud | right, it has to do with 'use' | ||
| peters | true | ||
| pmichaud | ah, here we are. | ||
| I now see the bug.. just have to decide how to fix. | 17:43 | ||
| peters | pmichaud++ =) | 17:44 | |
| jonathan digs back into his Hague Grant. | 17:47 | ||
| My schedule at present is looking fairly empty of stuff next week. So hoping to get in lots of progress and get caught up. | |||
| lathos | I'm planning to start hacking on string stuff very soon. It might make sense for me to branch. | 17:48 | |
| I'm getting my head around ICU at the moment. | |||
| jonathan | lathos++ # yay! :-D | ||
| ICU working it out pretty soon. ;-) | |||
| lathos | Argh. | ||
| Whiteknight | I was half-interested in setting up an EBCDIC charset, I don't know if ICU supports that | 17:51 | |
|
17:55
quatrix joined
|
|||
| peters | what would it take to convince Failure object to return -1?, index("bar" ) == 0 wont work, would have to use a regex or 'bar' eq $input.substr(3) | 17:55 | |
| pmichaud | I think that index returns a StrPos | 17:56 | |
| jq | befunge: "> <",,,,,@ | ||
| polyglotbot | OUTPUT[< >] | ||
| pmichaud | but regardless, I think you can check for definedness of .index | ||
| jq | Zaba: ==> it doesn't do spaces as sgml | ||
| Zaba: i guess it's a bug in mycology | |||
| (as i indicates in my blog post) | 17:57 | ||
| Zaba | jq, maybe. | ||
| peters | pmichaud: sure can, but a bit ugly IMHO, if my $pos = .index('bar') && $pos == 0 {} | ||
| Zaba | jq, its author is cooperative enough to possibly find out for sure, though | ||
| jq | Zaba: i know, i've worked with him to enhance language::befunge (in perl5) | ||
| Whiteknight | jq, what's your blog url? | ||
| jq | Whiteknight: jquelin.blogspot.com | 17:58 | |
| Whiteknight: ... but i sent the content of last post to parrot@ | |||
| Whiteknight | nice | 18:01 | |
| Tene | jonathan: think you could look at the loadlib stuff sometime? | 18:05 | |
| jonathan | Tene: Got the link to the ticket for it handy? | 18:06 | |
| peters | is C's inet_ntop/inet_pton exposed in any library? | ||
| pmichaud | peters: isn't it just | ||
| peters | ok | 18:07 | |
| pmichaud | my $pos = .index('bar'); | ||
| peters was looking fore some existing code to normalize IPv6 hosts | |||
| dalek | r35314 | jonathan++ | trunk/languages/perl6/src/builtins (2 files): | ||
| : [rakudo] Get rid of !TYPECHECKPARAM, and make the one thing use it just do the check itself (will go away once we get Perl 6 prelude). | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35314 | |||
| pmichaud | $pos // fail 'bar not found' | ||
| quatrix | hey, i just started checking out parrot and perl6, what's the correct way to use perl6 with parrot? what i've done is at top of my script "#!/usr/bin/parrot /usr/bin/perl6.pbc", which works, but looks little hackish :) | 18:08 | |
| PerlJam | quatrix: make perl6 | ||
| pmichaud | quatrix: we still don't have a good #! handler yet | ||
| PerlJam | oops | ||
| quatrix | so what i'm doing is fine? :) | ||
| PerlJam | quatrix: or you could use the perl6 binary as I do. | 18:09 | |
| pmichaud | quatrix: it's about as good as we have at the moment. | 18:10 | |
| jonathan++ # ripping out code we don't need | |||
| peters: I know what's causing the bug you're seeing, I just need a bit of time to be able to work it out. | 18:11 | ||
| jonathan | pmichaud: Just wait until you see the next patch... | ||
| pmichaud | peters: it's my #1 priority bug, if that's helpful. | ||
| peters | pmichaud: no hurry, just glad you have identified it | ||
| PerlJam | jonathan++ # removing the mud so we can see the beautiful sculpture underneath | 18:12 | |
| dalek | r35315 | jonathan++ | trunk/languages/perl6/src/builtins: | 18:13 | |
| : [rakudo] Rip out more unused code. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35315 | |||
| quatrix | PerlJam, oh, pbc_to_exe, nice! thanks | ||
| peters | pmichaud: re .index: given "baz" { when my $pos = .index('foo') && $pos == 0 { ... } when my $pos = .index('foo') && $pos == 0 { ... } default { .. } } # quite ugly IMHO | 18:14 | |
| quatrix | another little question, i'm following some tutorial, that i think was written for pugs, and some of the stuff like 'readline' don't work for me using parrot. what should i make of this? | ||
| pmichaud | peters: only because you're making it ugly :-) | 18:15 | |
| peters | .. if all you want is to match beginning of a string | ||
| pmichaud | given "baz".index('foo') { when .defined { ... } default { ... } } | ||
| if you want to match the beginning of a string, then | 18:16 | ||
| dalek | r35316 | fperrad++ | trunk/languages/lua (2 files): | 18:17 | |
| : [Lua] | |||
| : - refactor dotty() with FileHandler.readline_interactive() | |||
| : - increment Copyright millesime | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35316 | |||
| r35317 | jonathan++ | trunk/languages/perl6/src/builtins: | |||
| : [rakudo] One more unused function I missed last time that we can now rip out. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35317 | |||
| pmichaud | if substr("baz", 0, 3) eq 'foo' { ... } | ||
| anyway, I don't design the language, I just implement it. | |||
| If you want the return value of .index to be something different, you'll need to ask p6l :-) | 18:18 | ||
| jonathan | And now I've ripped a load of stuff out, I'll add some things. :-) | ||
| nopaste | "mpeters" at 83.183.129.106 pasted "pmichaud: I ended up using substr() but i whished index() would DWIM" (26 lines) at nopaste.snit.ch/15265 | 18:20 | |
|
18:21
chromatic joined
|
|||
| pmichaud | why not use regexes for that? | 18:22 | |
| when /^ '../' / | 18:23 | ||
| when /^ './' / | 18:24 | ||
| when /^ '/.' / | |||
| peters | pmichaud: because IMHO it ended up more unreadable: nopaste.snit.ch/15266 | ||
| but then, perhaps I'm a purist ;) | 18:25 | ||
| PerlJam | aside from the @output.pop business those all look like you could use subst() on them. (Note the lack of an "r" :) | ||
|
18:25
braceta joined
|
|||
| pmichaud | or even .trans | 18:25 | |
| although I don't know if .trans works on regex -- don't remember. | |||
| but .trans allows whole arrays of substitutions to take place, like this is doing. | 18:26 | ||
|
18:26
braceta joined
|
|||
| peters | hmm, so it would be possible to rewrite nopaste.snit.ch/15266 or nopaste.snit.ch/15265 using .trans, I'll look into that tomorrow | 18:28 | |
|
18:30
geof joined
|
|||
| peters | my C implementation was more logical and prettier IMO ;) nopaste.snit.ch/15267 | 18:31 | |
| nopaste | "pmichaud" at 72.181.176.220 pasted "This version of the matching example works (for peters++)" (30 lines) at nopaste.snit.ch/15268 | ||
| pmichaud | peters: I recommend using the curly forms for now. | 18:32 | |
| In particular, I'm not sure that the semi-forms that you have are valid p6. | |||
| I don't know if "use Foo; module Bar is Foo;" is allowed. | 18:33 | ||
| peters | ok, thanks | ||
| pmichaud++ | |||
| pmichaud | (because a "module" statement using a semicolon has to be the first statement in the file) | ||
|
18:35
ask_ joined,
Theory joined
|
|||
| pmichaud | anyway, lunch and errands -- bbiaw | 18:35 | |
| peters | but: class Bar { is Foo; ... } would be legal? | ||
| PerlJam | peters: sure, but then you tried to write perl 6 like it was C :) | ||
| pmichaud | class Bar { is Foo; } is legal, yes. | 18:36 | |
| Except that we don't know how to parse the "is Foo" part inside of the curlies yet. | |||
| peters | ok | ||
| pmichaud | it's not clear how STD.pm does it, even. | ||
| jonathan | pmichaud: It's parsed as a package_declarator. | 18:37 | |
| pmichaud | jonathan: the 'is' is parsed as a package_declarator? | ||
| jonathan | Oh, hmm. | ||
| OK, does is. | |||
| peters | PerlJam: true, I ported p5 C/XS code to p6, I'll try to make it more p6:ish ;) | ||
| jonathan | And trusts is. | ||
| token package_declarator:does { <sym> <.ws> <typename> | |||
| } | |||
| I assumed is would be as well. | |||
| pmichaud | if 'is' is a package declarator, that kinda blows away is() as a function from Test.pm :-) | 18:38 | |
| jonathan | That is true. | ||
| peters | PerlJam: but still I would prefer the p5 behavior of index() | ||
| PerlJam | only because you're used to it probably. | 18:39 | |
| does rakudo actually implement StrPos and StrLen ? | 18:41 | ||
| peters | I can't argue since I'm just a newbi at p6 syntax/language/features | ||
| PerlJam | looks like not | ||
| jonathan | PerlJam: I don't think so. | 18:42 | |
| peters | rakudo: 'Foo'.index('Bar').WHAT.say | 18:43 | |
| polyglotbot | OUTPUT[Failureā¤] | ||
| Whiteknight | rakudo: 'Foo'.index('o').WHAT.say | 18:44 | |
| polyglotbot | OUTPUT[Intā¤] | ||
| Whiteknight | rakudo: 'Foo'.index('o').say | 18:45 | |
| polyglotbot | OUTPUT[1ā¤] | ||
| Whiteknight adds "Perl 6 Programming" to his resume :) | |||
| peters | rakudo: if 'Foo'.index('Bar') == 0 { say 'Foo' } | 18:46 | |
| polyglotbot | OUTPUT[Use of uninitialized valueā¤Fooā¤] | ||
|
18:46
Theory joined
|
|||
| particle gets 60 rakudo failures in trunk | 18:56 | ||
| jonathan | particle: About the same. | 18:57 | |
| It's Nan/Inf stuff. | |||
| particle | ayep | ||
| i'm looking for the appropriate header to put things in | |||
| jonathan | Things like? | ||
| particle | PARROT_INFINITY_POSITIVE etc | 18:58 | |
| PARROT_NAN_QUIET | |||
| chromatic | include/parrot/datatypes.h | 18:59 | |
| particle | config.h has PARROT_INTVAL_MAX LONG_MAX | ||
| interpreter.h has PARROT_INTMAX 9 | |||
| that's ugly naming, as i assume they're very different things | 19:00 | ||
| PerlJam | where's that page that lists the parrot features and things that aren't implemented yet? | 19:01 | |
| never mind | 19:02 | ||
| purl | Okie dokie | ||
| PerlJam still never knows where to look | |||
| I was thinking "rakudo" but wrote "parrot" anyway | 19:03 | ||
| dalek | r35318 | jonathan++ | trunk (5 files): | 19:06 | |
| : [rakudo] Start getting the type registry stuff in place. This patch adds (currently stub) add_type and is_type method on Perl6::Grammar and inserts calls to them, following the STD.pm approach. No functional changes. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35318 | |||
|
19:08
Theory joined
19:10
PacoLinux joined
|
|||
| Tene | jonathan: trac.parrot.org/parrot/ticket/150 | 19:12 | |
| jonathan | Tene: Thanks. Just going for a pizza now...will look on my return. :-) | 19:15 | |
| Tene | Thank you. | 19:16 | |
| Coke | rakudo todo? | 19:25 | |
| (aka raktudo.) | |||
|
19:37
gp5st joined
|
|||
| gp5st | Hello! so I found my way to www.parrotcode.org/docs/ops/ but I can't find where the list of values for each opcode is; i'd like to write/build an extreamly small version of the vm | 19:40 | |
| i was thinking of just using p-code, but parrot seems to be a little more fun:) | 19:41 | ||
| chromatic | gp5st, what do you mean by "list of values"? | 19:42 | |
| gp5st | opcode values, like exit would be 0x0000 | 19:45 | |
| PerlJam | gp5st: so ... what would you use these values for if you had them? | 19:46 | |
| chromatic | include/parrot/oplib/ops.h in a configured Parrot source tree. | 19:47 | |
| gp5st | i want to write a very small vm | ||
| ah, i guess i didn't even think to look at the current source, i just thought there would be an overarching doc | |||
| by really small I mean 8k | 19:48 | ||
| PerlJam | gp5st: or perhaps src/ops/ops.num | ||
| gp5st | and as little memory overhead as humanly possible | ||
| lathos | Rotsa ruck. | ||
| PerlJam | gp5st: and where does parrot fall in, because it sounds like you're barking up the wrong tree so far :) | ||
| chromatic | Do you want to execute Parrot bytecode or Parrot source code? | ||
| PerlJam | gp5st: note that parrot has some 1300 or so opcodes. | 19:50 | |
| gp5st | bytecode | ||
| purl | bytecode is the actual code that is executed | ||
| gp5st | yeah, i know i'm barking up the wrong tree:-p | ||
| i would like to build an implementation (very simple one) for a microcontroller | |||
| i'd end up leaving out a lot of the IO system and prob the concurrency one was well, along with other things i deam less important that working:-p but those discisons will come as I write it and study it not before hand | 19:51 | ||
| i mean, programming embedded devices with perl or ruby or tickle would just be plain fun:) | 19:52 | ||
| lathos | Also note that those opcodes often operate on complex object-oriented structures. | 19:53 | |
| gp5st | there also wouldn't be a jit | ||
| i know | |||
| lathos | Well, if you can write a small fast interpreter for running Parrot bytecode, I recommend you call it "Parrot". | ||
| gp5st | like i said, i was going to do p-code (from pascal) but this seemed more challenging:) | 19:54 | |
| lol | |||
| well, we'll see how well i do at this | |||
| lathos | I'm being serious. The reason Parrot is big and heavy is because it needs to be. | ||
| gp5st | 8k is...not forgiving | ||
| i know, i don't claim to be a better programmer than the rest of everyone; i'll end up probably sacrificing a lot | 19:55 | ||
| and not having a very good stdlib on chip | |||
| particle | gp5st: take a look at examples\\c\\nanoparrot.c | ||
| gp5st | hmm | 19:56 | |
| hey | |||
| sorry | |||
| got to go | |||
| thanks | |||
| ttyl | |||
| lathos | Was that a troll? | ||
| chromatic | I hope not. | ||
| I'd like to see Parrot 2.0 get a lot smaller. | |||
| lathos | Oh, sure. I'd also love for it to be run faster, on 8k chips, and implemented by a single programmer as a college project. Doesn't mean that's going to happen though. | 19:57 | |
| Whiteknight | I think he was talking about a drastic subset of Parrot | 19:58 | |
| particle | maybe there will be something positive that comes out of it, like compared to parrot, that idea is Real Vaporware | 19:59 | |
| Whiteknight | not just a smaller better one | ||
| particle | parrot supposedly has the ability to compile in fewer opcodes and pmc types, but it's never been tested | ||
| lathos | Whiteknight: I don't think he understood the magnitude of what he was taking on. | ||
| PerlJam | he never said better | ||
| particle | would be nice of someone tried | ||
| chromatic | 8k is awfully small. | ||
| Whiteknight | It's similar to an idea I had a while back of designing a processor that used parrot bytecode natively | 20:00 | |
| Coke | perhaps gnu lightning would be a better fit there. | ||
| Whiteknight | I was inspired by a processor design I saw that used Java bytecode natively | ||
| chromatic | I told Allison the other day that I think we could drop C for PMCs and opcodes and write everything in terms of a language with 64 or 128 ops. | ||
| lathos | How many ops does C have? | ||
| chromatic | malloc/free, set value <width>, read value <width>, call by name, goto.... | 20:01 | |
| compare | |||
| You could do C with 64 ops. | 20:02 | ||
| Memory management would be even more painful. | |||
| Whiteknight | chromatic, that's not a ad idea, but you'd need to design that language and implement a compiler for it | ||
| s/ad/bad/ | |||
| lathos | Whiteknight: Right, because more layers of indirection always make Parrot more efficient. | ||
| chromatic | This one might not. | ||
| lathos | That was sarcasm. | ||
| chromatic | Provided we have a working JIT. | ||
| lathos | Hrm. | ||
| So, instead of using a language for which we have thirty years of compiler design experience, we get to write our own new language and create a compiler and a JIT for it. | 20:03 | ||
| chromatic | If we can avoid using C calling conventions for some things and Parrot calling conventions from other things and C's execution model for some things and Parrot's execution model for other things, we avoid a lot of bottlenecks. | ||
| particle | Whiteknight: we can compile it with perl 6! | ||
| Whiteknight | chromatic, I like what you're saying and I'd like to subscribe to your newsletter | ||
| chromatic | The Smalltalk people have been doing this for some 35 years. | 20:04 | |
| I'm not saying it's easy or that it's definitely the best approach for Parrot, but it is possible. | |||
| lathos | Or Haskell. Maybe we should write it in Haskell. | ||
| particle | let's hire randal | ||
| PerlJam | chromatic: it'll sure put a kink in that 1.0 release if you start that now ;) | ||
| chromatic | Oh, I'm definitely not starting this now. | ||
|
20:04
masak joined
|
|||
| Whiteknight | on a related note, how are we planning to wean parrot off the Perl 5 build system? What are we going to replace it with? | 20:05 | |
| chromatic | The interesting thing about JIT tracing is that you can inline a lot of calls to backing functions this way. | ||
| jonathan | *sigh* We can't even get a "is this number than that number" comparrison to take a bloody sane amount of time under current Parrot. | ||
| PerlJam | Whiteknight: parrot! :) | ||
| jonathan | (If it's a PMC.) | ||
| But I can't be bothered with that discussion again. | |||
| chromatic | jonathan, exactly, thanks to the repeated conversions between calling conventions and such. | ||
| jonathan | Indeed. | 20:06 | |
| lathos | I don't understand "Parrot calling conventions". Such a thing should not exist. | ||
| Whiteknight | lathos, PCC is how PIR subroutines are invoked | ||
| masak wants speed in Parrot -- the more, the better | |||
| Whiteknight | PCC is actually very fast, when you're just jumping from address to address | 20:07 | |
| chromatic | Until you hit Parrot_pass_args. | ||
| lathos | Yep, and the original hypothesis was "we can write core bits of Parrot in PIR without loss of speed." That hypothesis has been disproved, so we should now move on. | ||
| Whiteknight | it's when you have to call a PIR function from C that takes forever | ||
| jonathan | When we did a lookup in a 2D array that gaves us a function pointer and passed values from registers to it using the *C* calling conventions we were fast _and_ it was jittable. | 20:08 | |
| Whiteknight | well, once all the calling conventions get refactored and improved, we should see speed improvements | ||
| PerlJam | why does it suddenly sound like there's a revolution brewing? | ||
| jonathan | And yes, I'm sure there were reasons why we switched from that. | ||
| Anyways... | |||
| chromatic | I don't know what the reason was for switching between "Look up parameters in known sets of registers" to "Pretend you don't have a register machine and pop registers as if they were on a stack." | ||
| Whiteknight | The first way sounds much faster | 20:09 | |
| lathos | Oh, I know the reason. | ||
| chromatic | It was. | ||
| jonathan does something useful other than whining about design decisions he doesn't like and looks at Tene's ticket. | |||
| lathos | People didn't actually understand the design. | ||
| And stack machines are far, far easier to implement. | |||
| chromatic | I'll say. | 20:10 | |
| We should have saved a PMC register for a hash mapping :named names to register positions. | 20:11 | ||
| There, now we can do named parameters. | |||
| Slurpy? We know how to do that. Same with flat. | |||
| Tene | jonathan++ | ||
| Whiteknight | The calling conventions system is definitely slated for overhaul. If we're going to do it we should definitely do it right | 20:12 | |
| lathos | We *did* do it right. | 20:13 | |
| Whiteknight | okay so we should re-do it right | ||
| masak | :) | ||
| chromatic | I don't know if I'd call the first version completely right, but I don't know when all of the context information spread out into various bits and pieces of parrot_interpreter_t rather than being in context_t. | 20:14 | |
| Certainly any version of the calling conventions that didn't shuffle back and forth between varargs was much, much righter than this version. | |||
| Whiteknight | see, I haven't been hacking on parrot to remember any of this stuff | ||
| ...haven't been doing it long enough... | 20:15 | ||
| lathos | The bottom of ChangeLog scares me. | 20:16 | |
| chromatic | Not the whole thing? | ||
| lathos | And I *still* haven't got string stuff right. It's depressing. | ||
| jonathan | Tene: Did you have a patch that got Rakudo using .HLL? | 20:17 | |
| Tene: And did this bug show with that patch applied? | |||
| Tene | jonathan: yes, I do. PM asked me to wait until after the rvar merge to apply | ||
| particle | rvar is in! | ||
| Tene | jonathan: this bug shows with trunk right now | ||
| Whiteknight | While we have some people here,are there any objections to applying that real_self patch? | 20:19 | |
|
20:19
cjfields joined
|
|||
| chromatic | +1 | 20:19 | |
| purl | 1 | ||
| jonathan | Tene: Did you try it with Rakudo using .HLL though? | 20:20 | |
| +1 | |||
| purl | 1 | ||
| Whiteknight | okay, I'm going to put it through | 20:21 | |
| Tene | jonathan: I tried it with .HLL 'parrot' in perl6.pir | ||
| particle | looks like headerizer is busted due to some jit changes | 20:23 | |
| Whiteknight | damnit | ||
| particle | $ nmake headerizer | ||
| Couldn't handle "void call_func(Parrot_jit_info_t *jit_info, void (*addr) (void))" at tools\\build\\headerizer.pl line 210. | |||
| dalek | r35319 | Whiteknight++ | trunk (3 files): | ||
| : [Core] Remove real_self member from PMC structure, because it's currently unused and possibly broken. Patch courtesy donaldh++ | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35319 | |||
| Whiteknight | how do you mark a file for headerizer to ignore it? | 20:24 | |
| particle | /* HEADERIZER HFILE: none */ | 20:25 | |
| /* HEADERIZER STOP */ | |||
| Tene | jonathan: do you need me to apply .HLL 'perl6' ? | 20:26 | |
| Whiteknight | actually, I've got a fix coming down the pipeline for it | 20:27 | |
| just testing it now | |||
| PerlJam boggles at how amazingly fast git can update his working copy of parrot | 20:28 | ||
| Tene | PerlJam: what system are you comparing it to? | 20:29 | |
| PerlJam | I just checked out the very first checkin to see what it looked like and it was nigh on instantaneous. | ||
| particle boggles at how amazingly persistent git fanboys are | |||
| Infinoid | it's not that git is fast, it's just that svn is slow. | ||
| cvs is a lot faster than svn, too. | |||
| PerlJam | Infinoid: yeah, true. | ||
| jonathan | Tene: If it makes no more spectests fail than without it, +1 from me. | ||
| Infinoid | that whole-tree locking thing has a ton of overhead | 20:30 | |
| PerlJam | particle: because git is scm done right :) | ||
| particle | i think the git mascot should be a penguin in a black turtleneck | ||
| jonathan | :-D | ||
| particle: And a "CHANGE" speech bubble, right? | |||
| pmichaud | certainly we should be able to do .HLL 'parrot' and still have everything work. | ||
| particle | jonathan++ | 20:31 | |
| PerlJam | heh | ||
| jonathan | pmichaud: In Rakudo? | ||
| Or in the thing that's using it? | |||
| pmichaud | yes, in Rakudo. | ||
| adding .HLL 'parrot' to perl6.pir _ought_ to be a no-op. | |||
| if it's not, something is probably broken. :-) | 20:32 | ||
| jonathan | Aye, true. | ||
| jonathan digs into trying to work it out. | 20:33 | ||
| pmichaud | yes, switching Rakudo to .HLL 'perl6' is where we want to end up. But I think a lot of other things have to change internally for that to work, so I'd like to see it as a patch/branch/whatever before putting it in trunk. | ||
| Tene | pmichaud: it's a no-op afaict | 20:34 | |
| pmichaud | Tene: even for the load_bytecode issue you've been having? | ||
| Tene | pmichaud: it's a no-op for the load_bytecode issues I'm having. | ||
| pmichaud | okay. | ||
| for some reason I had been thinking it wasn't. | |||
| Tene | I can make a test case work when I run load_bytecode in .HLL 'parrot' in the demo.pir file. | 20:35 | |
| dalek | r35320 | Whiteknight++ | trunk/src/jit/i386: | 20:36 | |
| : [JIT] this file should be ignored by headerize | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35320 | |||
| pmichaud | *sigh* we're going to have to fix our containers at some point again. Oh well. | 20:40 | |
| jonathan | pmichaud: How so? | ||
| pmichaud | we'll need to distinguish different types of ObjectRef | 20:41 | |
| sometimes we have ObjectRef that act as parameter wrappers, sometimes we have ObjectRef that act like scalars. | |||
| jonathan | Ah. | ||
| pmichaud | anyway, the current factoring will make that easy to do. | ||
| particle | is that decomposable into roles? | 20:42 | |
| pmichaud | might be. | 20:44 | |
| but I might also be able to make the scalar container a subclass of ObjectRef and then do mmd based on it | 20:45 | ||
| we'll see. | |||
| jonathan | Tene: Writing .HLL 'parrot' makes it work for me... | ||
| Tene | jonathan: in perl6.pir ? | 20:47 | |
| jonathan | Tene: No | ||
| .HLL 'parrot' | |||
| .sub main :main load_bytecode 'perl6.pbc' say "lived" | |||
| .end | |||
| For me (with line breaks inserted) prints "lived" and no errors. | |||
| Tene | jonathan: that's the problem. the issue is that when I run load_bytecode from a different HLL, it fails. | ||
| jonathan | However, if I change that to say, HLL | 20:48 | |
| oops, PH | |||
| P | |||
| Null PMC access in get_string() | |||
| current instr.: 'parrot;P6metaclass;add_parent' pc 106 (runtime\\parrot\\library\\P | |||
| 6object.pir:146) | |||
| I get that. | |||
| Coke | I presume p6.pbc starts with a .HLL 'parrot' ? | ||
| jonathan | Coke: Think it doesn't have one. | ||
| Tene | Coke: not right now. that's the default. nothing changes if that's added, though. | ||
| jonathan | Tene: But yes, problem is with Perl6Str | 20:49 | |
| Coke | it sounds like there's a lookup in perl6.pbc that going after the current NS instead of the specific one it's in. | ||
| Tene | Coke: loadlib in a pbc should work the same regardless of the HLL of the code loading it, no? | 20:50 | |
| Coke | wait, perl6string is a pmc? | ||
| Tene | Coke: yes. | ||
| pmichaud | Perl6Str might need to be defined in the perl6 hll | 20:51 | |
| Coke | perl6str is defined in the hll 'Perl6' | ||
| shouldn't that be 'parrot' ? | |||
| (until the switch) | |||
| pmichaud | it's been working fine as Perl6 :-) | 20:52 | |
| Tene | Interesting. | ||
| jonathan | pmichaud: Yeah, but we ain't been trying to make it work from other .HLLs either. | ||
| Coke | tene: ticket number? | ||
| Tene | Coke: 150 | ||
| pmichaud | hmmm, I think I'm misunderstanding the issue you all are looking at (I know there are several) | ||
| Coke wonders if mdiep will return this week. | 20:53 | ||
| pmichaud | we're trying to get it so that we can load the perl6.pbc bytecode from an HLL other than 'perl6'? | ||
| Tene | pmichaud: yes | ||
| jonathan | Right. | ||
| pmichaud | okay. | ||
| that's different from what I was thinking. | |||
| and we run into the problem if perl6.pir is defined .HLL 'parrot' ? | |||
| Tene | pmichaud: no | ||
| pmichaud | we get it if perl6.pir is defined .HLL 'perl6' then? | 20:54 | |
| Tene | pmichaud: well, it already is. that's not relevant. the .HLL of perl6.pir isn't what mappers. | ||
| pmichaud | okay. | ||
| I should go read the ticket. | |||
| Tene | pmichaud: the problem is when the .HLL of the file *loading* perl6.pbc isn't the same HLL as perl6.pir | ||
| pmichaud | and this is true for any .pbc, or just the perl6.pbc ? | ||
| Tene | pmichaud: anything that uses loadlib | 20:55 | |
| nopaste | "Coke" at 65.91.151.195 pasted "this works." (9 lines) at nopaste.snit.ch/15270 | ||
| jonathan | Changing the hll line in the Perl6Str PMC to not be there, or to parrot, doesn't help, | ||
| Coke: Aha. | 20:56 | ||
| pmichaud | Tene: loadlib directive, loadlib opcode, or both? | ||
| Tene | pmichaud: both | ||
| afaict | |||
| Coke | also, tene, you need to use {{{ }}} around code snippets in trac. =-) | ||
| jonathan | Coke: That works for me too. | ||
| OK, my guess is | |||
| pmichaud | Tene: okay, thanks for walking me through the problem-to-date. | ||
| Tene | trac.parrot.org/parrot/ticket/150 | ||
| Coke: feel free to edit the ticket. | 20:57 | ||
| jonathan | When IMCC hits a .loadlib, it does load it | ||
| But somehow when we load_bytecode a library that uses one, we somehow miss it. | |||
| Coke | tene;already doing so. | ||
| jonathan | Oh, but wait | ||
| That woudln't explain why it does work | |||
| pmichaud | jonathan: I dsagree. | ||
| jonathan | When you have a different HLL. | ||
| pmichaud | because when we do --target=pir, the .loadlib does get run from a load_bytecode opcode | ||
| jonathan | *nod* | 20:58 | |
| pmichaud | (when we later run the .pir) | ||
| jonathan | That too. | ||
| Hmm. | |||
| OK, certainly HLL related then. | |||
| pmichaud | my guess is that running loadlib from load_bytecode gets confused about the current HLL | ||
| Coke | cd ../ | 20:59 | |
| ww | |||
| pmichaud | cd ww/ | ||
| .. | |||
| Tene | sudo getent shadow $USER | 21:00 | |
| jonathan | Does interp->class_hash stay the same, or change when the HLL does? | ||
| Coke | Tene: note that a similar problem does not seem to manifest when loading 'tcl.pbc' | ||
| I wonder if perl6 needs to have more .HLL directives spread about. | 21:03 | ||
| pmichaud | but currently perl6 is running in the 'parrot' namespace, iiuc | ||
| i.e., it doesn't have _any_ .HLL directives. | |||
| Tene | Coke: I added .HLL 'parrot' to perl6.pir and it didn't help. | 21:04 | |
| Coke | p6meta = get_hll_global ['Perl6Object'], '$!P6META' | ||
| that's in the sub where string is getting invoked from. you're changing the HLL in effect. | |||
| It's not surprising that it doesn't work. | |||
| pmichaud | ...changing the hll in effect? how so? | ||
| Coke | pmichaud: ... in his original code, he sets an HLL and then loads perl6.pbc | ||
| pmichaud | yes, but perl6.pbc still retains its original .HLL, yes? | 21:05 | |
| it doesn't take on the .HLL of whatever is loading it. | |||
| Coke | You'd expect that, yes. | ||
| jonathan | I'd hope taht's the case... | ||
| Tene | It *does* keep its .HLL | ||
| otherwise this wouldn't work: | 21:06 | ||
| perl6: eval('(write "OMG!")', :lang<pheme>); | |||
| polyglotbot | RESULT[undef] | ||
| Tene | ... heh. | ||
| jonathan | OK< it's subtle. | 21:07 | |
| Tene | I really need to make that fail more verbosely. | ||
| jonathan | We are somewhat loading the Perl6Str. | ||
| Because if I add before the call into P6Object that fails | |||
| $P0 = new 'Perl6Str' | |||
| $S0 = typeof $P0 | |||
| say $S0 | |||
|
21:07
bacek joined
|
|||
| jonathan | (eg in Str.pir) | 21:07 | |
| Then it prints Perl6Str | |||
| Coke | k. | 21:08 | |
| jonathan | So, how does P6Object look up a parent that it's passed? | ||
| jonathan goes to look | |||
| Tene | pmichaud: should the PMCs set HLL 'perl6' instead of 'Perl6' ? | ||
| pmichaud | Tene: I have no idea. I think I copied from Tcl. | 21:09 | |
| jonathan: P6Object shouldn't really care, though, as it's also in the 'parrot' namespace. | |||
| jonathan | These lines worry me a little. | ||
| item = get_root_global $P0, $S0 | |||
| self.'add_parent'(item, 'to'=>parrotclass) | |||
| TimToady | consider the full name of a language probably includes :ver and :auth | 21:10 | |
| jonathan | It is looking it up as parrot;Perl6Str. | 21:12 | |
| Which is what we'd expect. | 21:13 | ||
| Which implies that the PMC is getting stuck in the wrong place. | |||
| (The lookup of it under parrot;Perl6Str gives null, just to be clear.) | 21:14 | ||
| Coke | p6object's new_class makes some stuff up if hll isn't present. | ||
| is it possible that that snippet of code is behaving incorrectly? | |||
| jonathan | Coke: Possibly, but since Perl6 doesn't declare a HLL at the moment, trying to look the PMC up in parrot;Perl6Str would, you'd expect, work. | 21:15 | |
| Coke | the problem isn't with Perl6Str, it's with Str, near as I can tell. | 21:16 | |
| er. | |||
| (nevermind, the code is IN str, but that's getting found and invoked) | |||
| jonathan | Thing is, I'm struggling to see where the PMC gets a namespace entry. | 21:22 | |
| Coke | trying to find the parent class in get_parrotclass is unexpectedly returning a null pmc there. | 21:23 | |
| jonathan | Coke: Yes. | 21:25 | |
| That's what I wrote above. :-) | |||
| However, I'm no closer at all to why. :-( | |||
| Tene | jonathan: does it find it under parrot;Perl6Str when run directly? | 21:34 | |
| GeJ | Good morning everyone | ||
|
21:35
donaldh joined
|
|||
| jonathan | Tene: With no .HLL or with .HLL 'parrot', yes. | 21:36 | |
| Tene: So it looks to be something to do with where dynpmcs that get loaded are inserted into the NS. | 21:37 | ||
| However, I'm having little luck finding the code that does that. | |||
| Tene | is it Parrot_register_HLL_lib ? | 21:38 | |
| jonathan | looking | 21:39 | |
| Tene | Wait, that can't be right. | 21:40 | |
| jonathan | Tene: I don't think so - don't see it doing anything like that. | ||
| dalek | r35321 | util++ | trunk/docs/pct: | 21:41 | |
| : [docs] Typo - s/ precendence / precedence / in pct_optable_guide.pod | |||
| jonathan | I'm rather confused how it works normally. | ||
| dalek | review: www.parrotvm.org/svn/parrot/revision?rev=35321 | ||
| Tene | Yeah, was just thinking out loud. That rarely leads to useful help. | ||
| jonathan | :-) | ||
| pmichaud | it's possible that it doesn't load dynpmcs into the NS | 21:43 | |
| or that it's loading them into the wrong NS | 21:44 | ||
| Tene | I really need to fix this compulsion to spew into IRC whenever I'm working on code. | 21:45 | |
| jonathan | pmichaud: But we find them there usually. | ||
| So think it's loading them into the wrong NS | 21:46 | ||
| But I can't find the code that does that! | |||
| pmichaud | I suspect "load into NS" isn't exactly correct. | 21:47 | |
| My guess is that it makes the NS entry at the point of the oo_get_class call, when it can't find anything. | |||
| src/oo.c:222 | 21:48 | ||
| jonathan | ooooh.... | 21:49 | |
| pmc.c | |||
| comment at line 734 | |||
| Maybe relevant. | |||
| pmichaud | there are also many issues with sending arrays to the various class/related opcodes | 21:50 | |
| see TT #8, as well as the recent discussion between Allison and me on parrot-dev | |||
| Infinoid | for how much IRC discussion my earlier mention of TT#138 (requesting a git.parrot.org) caused, I'm surprised the ticket only seemed to get a single comment, and it was a negative one. | 21:55 | |
| Infinoid starts passing out penguins in black turtlenecks | |||
| pmichaud | Infinoid: I have no opinion either for or against moving to git. | 21:56 | |
| If it will be a disruption to our current development progress, then -1. | |||
| If it involves taking tuits away from someone who we need to be doing other things, then -1. | |||
| Infinoid | those are reasonable comments. I just wish they were on the ticket. (would starting a flame war on the mailing list be easier?) | 21:57 | |
| pmichaud | feel free to add them. :-) | ||
| for the past week+ I've been very focused on getting the rvar branch working, and so haven't had tuits to spare to respond to things not directly related to that. | 21:58 | ||
| (this is still true, fwiw.) | |||
| or, another way of looking at it, I tend to prioritize handling rakudo-specific tickets before getting to the "generic Parrot" ones. :-) | |||
| Infinoid | understandable. | 21:59 | |
| if it helps, tests passed here after this morning's merge | |||
| jonathan | If git is going to make my life as a Win32 developer harder, I'd rather skip it. If somebody sets up a Parrot repo under GIT and there are binaries (no, I can't be bothered with compiling my own GIT, and we shouldn't make that a barrier to entry for Win32 developers) that run on Win32 (no, not cygwin, I don't do my primary development there), I'm happy to test it out. | 22:00 | |
| I don't mind learning how to use GIT. But I do mind things that get in my way. | 22:01 | ||
| Coke | I'd be willing to pay a small price for getting better merge support. | ||
| jonathan | Coke: I too would like the better merge support, *if* it's not going to make everything else harder. | ||
| masak | git is very nice. | ||
| Coke | so we keep hearing. =-) | 22:02 | |
| Infinoid | I want a git server with an svn gateway, so that in most cases you won't even need the binary. (it does have a learning curve which I don't feel is absolutely necessary for everyone to climb.) | ||
| donaldh | There are msys git binaries available for Win32 | ||
| Coke | perhaps it would be a good idea to add a wiki page. | ||
| jonathan | donaldh: Sounds encouraging, then. | ||
| Tene: I ain't getting much further with tracking this down, beyond that reference. | 22:03 | ||
| Coke | so the root cause seems to be that .loadlib's effect works at runtime, but not at load_bytecode time? | 22:04 | |
| pmichaud | I echo jonathan++'s comment, I don't at all mind learning how to use git, if there's an easy source of materials with which to do that. When I moved from cvs to svn, having the red-bean book was invaluable. | ||
| Tene | Coke: the problem is the same if you use the loadlib op at runtime. | ||
| pmichaud | Coke: and load_bytecode does work in some instances. | ||
| Tene | Coke: I do all of my merges through git-svn | 22:05 | |
| Coke | pmichaud: (having the book) I think if we're entertaining switching, we should probably go a little further for our existing svn committers and give them a tutorial. | ||
| tene: that doesn't mean anything to me though, in terms of answering the question on the ticket. | |||
| jonathan | Coke: It appears that PMCs get associated with the wrong namespace. | 22:06 | |
| And then the lookup fails. | |||
| pmichaud | Coke: (tutorial) that would work for me also. | 22:07 | |
| Tene | Coke: I wrote up a tutorial at chromatic's request. I'm still waiting on feedback about whether that's what he wanted and where to post it. | ||
| Coke | Tene: ... on the wiki? | ||
| pmichaud | Tene: just post it on the wiki, and let us all look at it :-) | ||
| Tene | What wiki? Where? | ||
| Coke | trac.parrot.org | ||
| chromatic | Go ahead and post it. | 22:08 | |
| Tene | Coke: my merge comment was just pointing out that you can already use git's merge instead of svn's merge. | ||
| trac has a wiki? /me looks. | |||
| Coke | trac IS a wiki. | ||
| pmichaud | trac *is* a wiki. | ||
| jonathan | Tene: Yes, that's what it is. | ||
| Coke smacks pmichaud. | |||
| pmichaud wonders how many times he can duplicate what Coke says :-) | |||
| Coke | "you owe me a coke." | ||
| pmichaud | "I only drink Dr. Pepper" | 22:09 | |
| nopaste | "jonathan" at 85.216.157.73 pasted "tene - apply this patch, and compare output with the various examples - should be revealing" (20 lines) at nopaste.snit.ch/15271 | ||
| pmichaud | s/\\.// | ||
| Tene | trac.parrot.org/parrot/wiki/git-svn-tutorial | 22:13 | |
| go add comments and requests for more information | 22:15 | ||
| donaldh wonders if we're DDOSing svn.perl.org yet. | 22:16 | ||
| Tene | jonathan: I can try to do that tonight. | 22:17 | |
| jonathan | s/slashdot effect/git effect/ | ||
| Tene: OK. I want to do a little more on Rakudo stuff today. But hopefully I've tracked it down somewhat enough to give you more clues. | 22:18 | ||
| Basically though, that shows that we register PMCs with the wrong namespace. | |||
| Tene | I can offer a tarball of the git repository up until now, if someone wants the whole history. | ||
| Infinoid | I've got one of those too | ||
| actually I've got a git server that I can make publically available, that syncs against svn.perl.org once every 10 minutes | 22:20 | ||
| Tene | nice | 22:21 | |
|
22:26
mberends joined
|
|||
| Infinoid | commits are the problem, though. a bidirectional gateway would be preferred | 22:27 | |
|
22:36
Whiteknight joined
22:40
Limbic_Region joined
22:45
riffraff joined
|
|||
| riffraff | I have two tests for my tiny language: one goes throu Parrot::Test::Harness normally, and I minimally implemented TAP so it works fine. But I have an example directory and some script to check the results, in ruby, is there a way I could make it part of the normal test run ? (bar relying on cardinal :) | 22:51 | |
| it seems that the exec arg to test::harness allows me to run a script before each test, but i'd need to run it just once | 22:56 | ||
|
22:58
pdcawley joined
|
|||
| riffraff | mh works with two use nstructions, though the path seems messed up, cool :) | 23:15 | |
| dalek | r35322 | util++ | trunk/tools/util: | 23:17 | |
| : [tools] Typo - s/hueristic/heuristic/ in pgegrep | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35322 | |||
| jonathan | pmichaud: ping | 23:28 | |
| pmichaud | jonathan: pong | 23:30 | |
| jonathan | pmichaud: I'm playing with class registry stuff. | 23:31 | |
| Well, type reg. | |||
| I've hit upon a bit of an issue. | |||
| STD.pm calls add_type when it sees a type name. | |||
| In, say, a package_def | |||
| Trouble is, if we then go and stick something in the namespace, and it turns out to be a class Foo is also { ... } we clobber what's already there. | 23:32 | ||
| I guess we can just check for that, mind... | |||
| Hmm...why didn't I think of that before. :-| | |||
| pmichaud | yes, I would only stick something there if it doesn't already exist. | ||
| jonathan | OK, that'd solve that issue. | ||
| I am also however seeing weird issues. | |||
| purl | okay, jonathan. | ||
| jonathan | Like | ||
| get_hll_namespace returning null | 23:33 | ||
| pmichaud | for...? | ||
| jonathan | in !meta_trait | ||
| Where we looked up the namespace, then get_class'd it. | |||
| pmichaud | in meta_trait? | ||
| or meta_create? | |||
| jonathan | *Sometimes* in !meta_create too. | 23:34 | |
| But in !meta_trait for sure. | |||
| In !meata_trait, looking up with get_hll_global to get the proto and then get_parrotclass'ing it works. | |||
| pmichaud | that would seem to happen only if it's passed a type name that doesn't exist yet. | ||
| jonathan | *but* I think that's hiding an underlying problem. | ||
|
23:35
leto joined
|
|||
| jonathan | It's the same issue we were hitting before, when I had the clean-up code. | 23:35 | |
| (Or rather, it's the reason I had the cleanup code.) | |||
| I really don't want that, though... :-( | |||
| pmichaud | me either. | ||
| I'd need an example to work from. | |||
| jonathan | I can give you my diff. | ||
| pmichaud | okay, that works. | 23:36 | |
| jonathan | Or actually, I can commit something close to what I want to commit. | ||
| pmichaud | as long as it doesn't break spectest :-) | ||
| jonathan | But that doesn't actually install anything in the ns. | ||
| OK, one moment... | 23:37 | ||
| pmichaud: OK, ci'd. | 23:39 | ||
| dalek | r35323 | jonathan++ | trunk (5 files): | ||
| : [rakudo] Get an UnderConstructionProto class added, and create it. However, don't put it in the namespace just yet - that causes breakage. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=35323 | |||
| jonathan | In src/parser/methods.pir see line below # XXX Uncomment this to see breakage. | ||
| Tiny example that shows it: perl6.pbc -e "class A { }; class B is A { }" | 23:41 | ||
| pmichaud | looking | 23:45 | |
|
23:48
TiMBuS joined
|
|||
| pmichaud | I wonder if p6object's "register" method is refusing to overwrite an existing object. | 23:49 | |
| no, that doesn't seem right. | |||
| jonathan | I did investigate that path. | ||
| I put in some debug statements. | |||
| I looked like register was doing the right thing. | |||
| pmichaud | yeah, I'm pretty sure that it is. | ||
| jonathan | Not to mention that if you change the meta_trait cdoe to look up the protoobject, it finds the right thing (not an UnderConstructionProto, but rather what it's meant to find). | 23:50 | |
| I think it may be some weird thing with namespaces being typed, but you wrote a test case for that last time around that suggested not too. :-S | 23:51 | ||
| pmichaud | yeah, I don't think it's that. We would have seen many other weird errors long before this. | ||
| jonathan | Aye. | ||
| But that leaves me out of guesses. :-( | 23:52 | ||
|
23:52
kid51 joined
|
|||
| pmichaud | oh! | 23:52 | |
| wait, maybe no. | 23:53 | ||