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