Parrot 0.8.1 "Tio Richie" Released | parrot.org | 594 RT
Set by moderator on 30 November 2008.
00:05 tak joined 00:07 ruoso joined 00:09 AndyA joined
dalek r33387 | allison++ | pdd22io_part2: 00:21
: [pdd22io] Line buffering always returns at least a newline, unless its at the end of the file.
diff: www.parrotvm.org/svn/parrot/revision?rev=33387
00:41 Khisanth joined
dalek r33388 | Whiteknight++ | trunk: 00:45
: [Book] update the first half of chapter 8, making things less perl-centric and changing tone because this chapter used to be at the begining and now it's towards the end
diff: www.parrotvm.org/svn/parrot/revision?rev=33388
r33389 | allison++ | pdd22io_part2: 01:00
: [pdd22io] Allocate correct size for stored data.
diff: www.parrotvm.org/svn/parrot/revision?rev=33389
01:15 tetragon joined
dalek r33390 | allison++ | pdd22io_part2: 01:17
: [pdd22io] TODO test for StringHandle PMC (a subclass of FileHandle that stores
: to and reads from a string instead of a filehandle).
diff: www.parrotvm.org/svn/parrot/revision?rev=33390
01:22 gmansi joined 01:24 tak joined
dalek r33391 | allison++ | pdd22io_part2: 01:25
: [pdd22io] Fix up bad test, remove duplicate test.
diff: www.parrotvm.org/svn/parrot/revision?rev=33391
01:29 ChrisDavaz joined 01:39 kid51 joined 01:40 apeiron joined 01:41 jimmy joined 01:45 Andy joined
dalek r33392 | allison++ | pdd22io_part2: 01:55
: [pdd22io] Update old way of setting UTF-8 encoding on filehandle.
diff: www.parrotvm.org/svn/parrot/revision?rev=33392
r33393 | allison++ | pdd22io_part2: 02:01
: [pdd22io] Renaming socket files.
diff: www.parrotvm.org/svn/parrot/revision?rev=33393
02:02 apeiron joined
dalek r33394 | allison++ | pdd22io_part2: 02:04
: [pdd22io] Moving socket API functions into their own file.
diff: www.parrotvm.org/svn/parrot/revision?rev=33394
02:13 tak joined 02:16 ChrisDavaz joined
dalek r33395 | allison++ | pdd22io_part2: 02:17
: [pdd22io] Conversion of Socket API functions.
diff: www.parrotvm.org/svn/parrot/revision?rev=33395
02:34 ChrisDavaz joined 02:47 apeiron joined 02:48 Theory joined
dalek r33396 | pmichaud++ | trunk: 02:52
: [rakudo]: !OUTER doesn't work for bare closures, so refactor implicit lexicals to avoid it.
diff: www.parrotvm.org/svn/parrot/revision?rev=33396
02:56 gmansi joined 03:14 tak joined 03:42 particle joined
dalek r33397 | pmichaud++ | trunk: 03:47
: [rakudo]: Clean up handling of implicit lexicals a bit.
diff: www.parrotvm.org/svn/parrot/revision?rev=33397
r33398 | pmichaud++ | trunk:
: [rakudo]: Add :g(lobal) flag to .subst( $regex, $repl )
diff: www.parrotvm.org/svn/parrot/revision?rev=33398
masak yay! 03:48
GeJ what would be the recipe to eval() some PIR code in PIR? 03:51
provided that it's feasible, of course.
hej masak
chromatic You need to get the PIR compiler and invoke it.
masak hoj GeJ
chromatic compreg opcode, I think.
Might look at how HLLCompiler does it.
pmichaud GeJ: $P0 = compreg 'PIR'; $P1 = $P0('PIR CODE'); $P1()
where 'PIR CODE' is a string containing the PIR that you want compiled 03:52
GeJ Thanks all. 03:53
masak pmichaud: there's some trouble with !OUTER in November. it's possible it occurred very recently. investigating. 04:00
pmichaud: says "Could not find non-existent sub !OUTER", and the problem shifts when I try to isolate it. 04:09
pmichaud !OUTER disappeared. 04:12
so it shouldn't be called anymore. 04:13
masak ok.
pmichaud running "ack '!OUTER'" doesn't show it in the source tree any longer....
masak maybe I had old PIR files.
doing an extra check just to be sure. 04:14
yup, that must have been it. 04:16
false alarm. :/
04:18 Andy joined
dalek r33399 | pmichaud++ | trunk: 04:19
: [rakudo]: Add :g(lobal) flag to .subst($str, $repl)
diff: www.parrotvm.org/svn/parrot/revision?rev=33399
r33400 | pmichaud++ | trunk: 04:40
: [rakudo]: Oops! Fix :global on .subst( $regex, $str )
diff: www.parrotvm.org/svn/parrot/revision?rev=33400
r33401 | allison++ | pdd22io_part2: 05:02
: [pdd22io] Removing old ParrotIO PMC.
diff: www.parrotvm.org/svn/parrot/revision?rev=33401
r33402 | allison++ | pdd22io_part2:
: [pdd22io] Updating reference to old ParrotIO PMC in IMCC test.
diff: www.parrotvm.org/svn/parrot/revision?rev=33402
r33403 | allison++ | pdd22io_part2: 05:05
: [pdd22io] Updating reference to old ParrotIO PMC in PMC tests.
diff: www.parrotvm.org/svn/parrot/revision?rev=33403
r33404 | allison++ | pdd22io_part2: 05:06
: [pdd22io] Move the mark function for the STDIN, STDOUT, and STDERR PMCs into
: the new I/O code.
diff: www.parrotvm.org/svn/parrot/revision?rev=33404
r33405 | allison++ | pdd22io_part2: 05:11
: [pdd22io] Remove reference to old ParrotIO PMC from auto-pmc config test.
diff: www.parrotvm.org/svn/parrot/revision?rev=33405
r33406 | allison++ | pdd22io_part2:
: [pdd22io] Remove old I/O files from compilation.
diff: www.parrotvm.org/svn/parrot/revision?rev=33406
r33407 | allison++ | pdd22io_part2: 05:12
: [pdd22io] Update manifest to reflect renaming of socket files and removal of
: old ParrotIO PMC.
diff: www.parrotvm.org/svn/parrot/revision?rev=33407
r33408 | allison++ | pdd22io_part2: 05:22
: [pdd22io] Headerizer updates to I/O header file.
diff: www.parrotvm.org/svn/parrot/revision?rev=33408
jimmy the words both directive and instruction seems to be the same. 05:27
dalek r33409 | allison++ | pdd22io_part2: 05:41
: [pdd22io] Removing old I/O support libraries.
diff: www.parrotvm.org/svn/parrot/revision?rev=33409
r33410 | allison++ | pdd22io_part2: 05:42
: [pdd22io] Removing old I/O support libraries from the manifest.
diff: www.parrotvm.org/svn/parrot/revision?rev=33410
05:48 ChrisDavaz joined 05:53 iblechbot joined
dalek r33411 | allison++ | pdd22io_part2: 05:54
: [pdd22io] Removing a few more old I/O support libraries.
diff: www.parrotvm.org/svn/parrot/revision?rev=33411
r33412 | allison++ | pdd22io_part2: 06:20
: [pdd22io] Don't try to generate .str file for .c file that doesn't exist anymore.
diff: www.parrotvm.org/svn/parrot/revision?rev=33412
06:32 masak joined
dalek r33413 | allison++ | pdd22io_part2: 06:40
: [pdd22io] Remove all socket opcodes.
diff: www.parrotvm.org/svn/parrot/revision?rev=33413
r33414 | allison++ | pdd22io_part2: 07:02
: [pdd22io] Removing a number of unused struct, type, and macro definitions, and
: unused function prototypes.
diff: www.parrotvm.org/svn/parrot/revision?rev=33414
GeJ Thanks all. 07:03
grrrrr...
allison: ping 07:04
allison GeJ: yes?
GeJ I'm currently reading the pdd22_io.pod in trunk and I was wondering if it metched the implementation in trunk or in your branch. 07:05
allison GeJ: in the branch
GeJ: though parts have already been merged into trunk
GeJ is there a rough guesstimate on when your branch would be merged back in trunk? Reading your commit messages, it looks like you're doing some cleanups. 07:06
allison it'll be merged back in as soon as I fix the final few failing tests 07:08
it looks like the failing tests boil down to 3 bugs
GeJ Ok. thank you. 07:09
allison do you have a need for the new I/O?
GeJ nope, not at all... I'm currently browsing the docs from the beginning and I have a small projects in mind that might involve IO at some point. So I was just reading the IOTasklist page on trac then the pdd22 and suddenly noticed the date of the latest change. 07:12
it got me curious, that's all.
Oh, one last thing...
after r33406, it looks like pdd22io_part2/config/gen/makefiles/root.in has an extra "\\" on line 364 07:13
07:23 Hadi joined 07:24 Hadi left 07:25 davidfetter joined 07:26 elmex joined, uniejo joined 07:51 Theory joined 07:57 clunker3 joined 07:58 apeiron_ joined 07:59 ff-wonko joined 08:02 ff-wonko joined
dalek r33415 | fperrad++ | trunk: 08:02
: [docs]
: - docs/art was renamed in r32892
diff: www.parrotvm.org/svn/parrot/revision?rev=33415
allison GeJ: thanks, fixed 08:03
dalek r33416 | allison++ | pdd22io_part2: 08:04
: [pdd22io] Remove extra trailing "\\". GeJ++
diff: www.parrotvm.org/svn/parrot/revision?rev=33416
08:25 iblechbot joined 09:06 bacek joined 09:09 Zaba joined 09:12 Theory joined 09:21 tomyan joined 09:26 register joined 09:40 tomyan joined
dalek r33417 | julianalbo++ | trunk: 10:09
: fix is_same with pmc string and null and with null pmc, parrot-tickets#11
diff: www.parrotvm.org/svn/parrot/revision?rev=33417
10:27 gaz joined 10:29 alvar joined 10:33 kj joined 10:39 cotto joined
cotto ubuntu-- 10:39
dalek r33418 | cotto++ | trunk: 11:23
: [docs] document why all PAST Nodes need the :node attribute
diff: www.parrotvm.org/svn/parrot/revision?rev=33418
11:36 nopaste joined
kj cotto++ # filling out missing details 11:47
cotto: do you think that document about PAST nodes is useful to end-users?
cotto it's not enough by itself, but it's a good piece of the puzzle 11:51
sleep & 11:52
11:54 gmansi joined 12:01 Lorn joined 12:16 ff-wonko joined 12:18 AndyA joined
pmichaud ...it's not true that all PAST nodes need the :node attribute, though. 12:57
13:02 TonyC joined 13:24 gmansi joined 13:26 Lorn_ joined
dalek r33419 | pmichaud++ | trunk: 13:27
: [rakudo]: spectest-progress.csv update: 227 files, 4689 passing, 10 failing
: * 10 failures in S12-methods/multi.t
diff: www.parrotvm.org/svn/parrot/revision?rev=33419
13:31 Lorn joined
kj pmichaud: (:node attribute) what would be the exceptions? Leaf nodes? 13:33
pmichaud we only need :node attributes where we want to annotate a source line 13:35
if an entire subtree is all on the same source line, only the root of that subtree needs the annotation
(it's okay if more/all nodes have the annotation, but it's not a requirement that every node have an annotation) 13:36
kj pmichaud: ah I understand. Thanks. 13:39
Coke pmichaud: can I get a status update on LTM or other PGE speedups? (just curious.) 13:40
pmichaud Coke: still trying to get the other pieces in place first 13:41
Coke Hokay.
dalek r33420 | kjs++ | trunk: 13:47
: [docs] update requirement for :node attribute in PAST.
diff: www.parrotvm.org/svn/parrot/revision?rev=33420
pmichaud Coke: are the strings that you're parsing utf-8 strings? 13:51
13:51 Andy joined
pmichaud i.e., are they stored with utf-8 encoding? 13:51
Coke er, which strings? tcl? 13:52
I am fairly confident that however partcl is doing unicode now, it's doing it wrong. (Getting parse and compile errors when running some of the partcl tests.)
to expedite development, we upgrade a lot of things we probably don't need to. 13:53
pmichaud the strings that pge is being asked to parse 13:55
Coke I am pretty sure tcl allows you to embed utf8 in source, which would mean yes. Let me check.
pmichaud this past week I thought of a significant PGE optimization for when it's being asked to parse utf8 strings, but given that other parts of pct tend to downgrade strings into fixed8 when they can I decided it wasn't worth expending effort on just yet. 13:56
but if tcl is doing a lot of scanning of utf8 strings, the optimization would definitely be worth it. I'm thinking it could be a 15% to 20% speed improvement for long source code lines.
(note that it's utf8 strings that are slow, not just utf8 strings containing codepoints above 128) 13:57
Coke www.tcl.tk/man/tcl8.5/TclCmd/source.htm :: You can, at least, specify an encoding when you source an external file.
so whatever the default encoding is assumed to be, yes, I could specify a utf8 encoding when sourcing a file. 13:58
ah.
pmichaud anyway, it's a useful optimization at any rate, and shouldn't take too long to do, so I might go ahead and implement it and we'll see if we get any improvement.
Coke so you do care about the default case. let me check my source...
pmichaud: I won't be able to use it until my trunk segfault is fixed. 13:59
(just fyi)
pmichaud okay.
Coke I don't appear to be massaging that string: I 'slurp'() in the contents of the file and don't do much processing before it gets passed to PGE 14:01
... I wonder if adding memmap to our slurping would make us go faster. 14:02
pmichaud what's the repo for tcl again? 14:04
Coke partcl?
purl partcl is tcl on parrot or code.google.com/p/partcl or slow, help make it go faster.
14:04 jimmy joined
Coke partcl repo? 14:06
partcl repo is code.google.com/p/partcl/wiki/PartclSource
pmichaud got it, thanks. 14:07
you're right, it doesn't look as though your input programs are utf8
14:08 gryphon joined
Coke but, as I noted, I'm sure I'm not doing it right. =-) 14:09
I think the only place I force-transcoding is on [puts]
lathos I'm kind of cutting in half way here but would it make sense to create a, say, ParrotFileString PMC to abstract out the mmap process? Then you can pass that the the PGE when it expected a string. In general I feel that if mmap is the answer than I probably haven't understood the question. 14:10
Coke lathos: allison is in the middle of redoing the IO stuff anyway. But I would imagine the place to put it would be in the 'slurp' method on the generic IO object, if we were putting it anywhere. 14:11
I /imagine/ it would be faster for the 100 diffent partclsh processes to have their tcl stdlib mmap'ed in instead of read 4K at a time every time, but without a benchmark, Iunno. 14:12
14:18 Theory joined
Coke (basically, make ParrotIO's slurp as smart as CPAN's slurp) 14:19
14:28 PacoLinux joined
tewk pmichaud: about to commit fix so all subflags.pir tests pass except the last one. 14:52
pmichaud tewk: yay!
14:52 ruoso joined 14:53 masak joined
tewk pmichaud: I'm going to comment out the last test and check it in, ok? 14:55
pmichaud yes! 14:56
tewk++
tewk I think I can make subid work with a online change. 14:57
pmichaud Coke: btw, I tried converting src/gen_builtins.pir to be a sequence of .include's, and it didn't work.
I'm not sure why it didn't work, but a bunch of :load/:init subs don't get executed. 14:58
At least, they don't appear to be executed. 14:59
tewk Can you todo pir tests?
pmichaud tewk: yes -- checking.
have to change a call to 'ok' to be a call to 'todo' 15:00
jimmy masak: 15:01
masak: hello
pmichaud personally I wish that 'todo' would work like we're doing it in p6 -- i.e., "mark the next <n> tests as 'todo'"
masak 你儽, jimmy
jimmy masak: bbs.chinaunix.net/viewthread.php?ti...pid9720013
masak jimmy++ 15:02
jimmy masak: ęœ‰äŗ›åœ°ę–¹ēæ»čÆ‘ēš„äøé€šé”ŗļ¼Œę¬¢čæŽęę„č§
masak jimmy: once again, you think too highly of my chinese. sure, I can read it, but I'm unlikely to know when things are correctly translated :) 15:03
kj Coke: regarding your reply on the ticket I replied on: wouldn't it be sufficient to just try to run a NQP script like '$x := 1;', and match the output 'Scope not found for PAST::Var '$x' ? 15:04
jimmy masak: sometimes me too.
masak jimmy: I've put it in my queue, and will read it in due time.
kj masak: you read Chinese?
jimmy thanks 15:05
masak kj: I try to.
jimmy kj is reading chinese too.
masak aye.
jimmy he had been in china.
for a month.
masak hasn't
kj jimmy: bu hui
jimmy kj: once again. 15:06
purl hmmm... once again is lucky
15:07 apeiron joined
masak kj: wo juede ni shi tai shidu. 15:08
jimmy: was that right? :)
jimmy tai shi du ? 15:09
dalek r33421 | tewk++ | trunk:
: [nsentry] passing tests
diff: www.parrotvm.org/svn/parrot/revision?rev=33421
jimmy masak: can you type it in chinese?
masak 太适度
kj I XXX you ten too 10 XXX ??
jimmy and in english?
masak kj: :) 15:10
jimmy: "I think you are being too modest"
kj oh wait. You owe me 10 bucks? :-)
masak (though it seems he wasn't)
15:10 iblechbot joined
jimmy masak: ęˆ‘č§‰å¾—ä½ å¤Ŗč°¦č™šäŗ†ć€‚ 15:10
masak right.
of course.
purl Indubitably.
masak purl: shut up.
purl masak: what?
15:10 Theory joined
dalek r33422 | tewk++ | trunk: 15:11
: [ncigen] Changes to allow ncigen to be called programatically from perl6
masak purl: masak is also greatly tired of purl
dalek diff: www.parrotvm.org/svn/parrot/revision?rev=33422
purl okay, masak.
masak modest = qianxu 15:12
jimmy masak: unlike english, 'shi' is not needed generally.
masak right.
对。
tewk pmichaud: are you using subid right now? 15:15
15:21 Hadi joined, Hadi left, Debolaz joined
Coke kj: how are you going to capture the output and match it? 15:23
kj Coke: well, I haven't looked into nqp tests, but as you said they're written in NQP, it should be possible to match the input 'print "ok 1"' against the output "ok 1", right? 15:24
Coke kj: we're deliberately throwing an exception before we get to the OK line.
how are you going to -catch the exception- and make sure the output is right?
kj so likewise, if the input is "$x := 1", then the output can be matched against the error message
mm.
Coke kj: if you can right a test, awesome.
er, write.
I cannot see how it would work. If you can disprove me with code, go for it. =-) 15:25
kj what about adding a try statement? (A)
Coke I didn't want to touch NQP any more than I had to.
kj Coke: well I'm not convinced myself, but I was just trying to get clear what's the problem
Coke kj: basically, that NQP has no "try".
kj dowe *need* a test for an error message? 15:26
Coke ... yes
kj the ticket's issue is that there should be a proper error message
Coke exactly: how can we verify that we don't regress the error message?
kj why, if I may ask? (just curious here)
eh, yeah, i guess you have a point there 15:27
Coke what if that feature stops generating an error at some point and starts using undef?
kj ok
Coke listens to a mouth-breathing podcast. bha. 15:29
kj Coke: we can do inline PIR code in NQP, right? 15:30
Coke dunno 15:39
15:42 ruoso joined
Coke PIR < say "hi" > ? 15:44
(I wonder if you could wrap the push/pop_eh opcodes around NQP code in the middle.
kj tried that: doesn't work
it's the NQP compiler that we need to test here
it's not a runtime thing
it's a compile-time thing 15:45
nopaste?
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 i think 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 "kjs" at 193.1.104.5 pasted "attempt for coke" (20 lines) at nopaste.snit.ch/14757
Coke clunker3, shut up. 15:46
This is why I didn't just write the test. =-)
kj eh, the 'my $x' part should not be there
but anyway, the NQP compiler check whether the $x is declared during compile time. It won't find it there, so it will throw an exception. It's not a runtime testable thing 15:47
so, only way to test it, afaict now, is to install a EH somewhere in NQP
like a hook or whatever
Coke we could write a perl script that ran parrot/NQP and then tested the result. 15:48
kj yup, that would work
but IANAPP
Coke but I don't know how that would integrate with "make test" in nqp.
Oh: you could put that test in the regular harness, I suppose. 15:49
kj or have NQP slurp up the file and compare that
if they're the same
(slurp the error message, that is)
if they're teh same, print ok
otherwise not ok
nopaste "tewk" at 155.97.237.62 pasted "rakudo" (11 lines) at nopaste.snit.ch/14758 15:54
"tewk" at 155.97.237.62 pasted "rakudo" (11 lines) at nopaste.snit.ch/14759
"tewk" at 155.97.237.62 pasted "rakudo" (11 lines) at nopaste.snit.ch/14760 15:55
tewk 'rakudo failures after subid const support'
moritz tewk: both fail here too, with no local changes 15:59
tewk cool that probably means lexid or subid isn't being used currently. 16:00
or at least I didn't break it
pmichaud tewk: yes, PCT (and all of the compilers) use subid right now 16:05
they have to in order for 'outer' processing to work properly. 16:06
the default-trait.t and multi.t are known failures at the moment. 16:07
16:16 jhorwitz joined
Coke regarding bignum; are we sure it's never used? is it available if someone configures with whatever our recommended bignum library is? 16:23
tewk I thought I just made a change to have const lookups work based off subid, I would have expected something to break. 16:37
dalek r33423 | pmichaud++ | trunk:
: [imcc]: Update todo test for :method in subflags.t .
diff: www.parrotvm.org/svn/parrot/revision?rev=33423
pmichaud I would've expected things to break also. I'm adding tests for proper subid handling now.
16:42 slavorgn joined, rdice joined
nopaste "pmichaud" at 72.181.176.220 pasted "patch to test for .const lookup by subid (current trunk fails)" (29 lines) at nopaste.snit.ch/14761 16:43
tewk I don't think what I changed effected .const sub lookup.
nopaste "pmichaud" at 72.181.176.220 pasted "result of test with patch in 14761" (29 lines) at nopaste.snit.ch/14762 16:44
pmichaud okay, if it didn't affect .const sub lookup, then I'm not surprised that things didn't break (isn't that too many negatives? ;-) 16:45
yes, things will likely break in pct when we adjust .const sub lookups, but it's also a relatively easy fix.
(and having .const sub lookups work properly will allow us to clean up a whole mess of code in Rakudo, so I'm eager for it.) 16:46
tewk gotta go to school, but DEPRECATED shows 0.8.1 for this feature, so I'll get it working tonight and then we can fix up PCT and get it in trunk. 16:47
it should be easy I've just gotta find the right place. 16:48
afk 15
Coke tewk: getting a similar error for trac # 10 on OSX/intel. 16:51
(noted on ticket) 16:52
dalek r33424 | pmichaud++ | trunk: 16:53
: [pge]: Use box opcode instead of new + set.
diff: www.parrotvm.org/svn/parrot/revision?rev=33424
particle hi all 16:54
kj: any particular reason you're entering new bugs in rt instead of trac?
pmichaud anyone besides me think that the 'iter' opcode is misnamed? 16:56
I have a lot of code that reads iter = new 'Iterator', $P0 16:57
this should of course be changed to
iter = iter $P0
but those double "iter"s look menacing to me.
PerlJam why is there an iter opcode for that?
pmichaud different PMCs might return different iterators 16:58
particle the vtable entry is get_iter iirc
P1 = iter P0
pmichaud i.e., iterating a filehandle PMC would likely be different from iterating an Array PMC
particle in that (old parrot) context, 'iter' seems a good name
but now that we use local vars, mainly named 'iter'...
PerlJam get_iter seems like a better name than just iter 16:59
particle i agree, 'iter' should probably be named 'get_iter' now
pmichaud even 'iterate' or 'iterator'
would be better than 'iter'
PerlJam for some reason I expect "iter" to be verby (as in "iterate this thing")
pmichaud opcodes *are* verbs :-)
PerlJam Sure, but in this case it's the wrong verb IMHO
pmichaud yes, I'm not happy with it either. 17:00
my natural instinct is to call the resulting iterator object by the name 'iter'
PerlJam so, you'd write: iter = iter $P0; $P1 = shift iter ?
pmichaud I'd prefer
particle pj: no, you need shift or pop
pmichaud iter = iterator $P0
or
iter = get_iterator $P0
or something like that. 17:01
particle pmichaud: arguably, the vtable entry name should change to match
pmichaud I'm less concerned about the vtable name.
arguably, the get_* vtable names almost never match their opcode counterparts.
particle for some of those, there's a good reason 17:02
pmichaud I think this might be another good reason
in fact, afaict none of the get_* opcodes match their vtable counterparts :-) 17:03
so I'd hate to establish a correspondence that doesn't exist anywhere else :-)
PerlJam beware the hobgoblin of foolish inconsistency :) 17:04
pmichaud I think that inconsistent inconsistency might be a Bad Thing here :)
17:04 Andy joined
pmichaud correction: the get_class opcode _might_ be argued to make use of the get_class vtable, although it does so only indirectly. 17:05
heh.
never mind.
purl Okie dokie
pmichaud actually what the get_class opcode does is something completely different from the get_class vtable, so never mind. 17:06
...bringing me back to my original point. :-)
PerlJam pm: which is you're in a maze of twisty passages, all different? :) 17:10
pmichaud I'd like the 'iter 17:11
drat
I'd like the 'iter' opcode to be named something other than 'iter', and it should not be named 'get_iter'.
although I'd be willing to accept 'get_iter' if it's the only viable alternative to 'iter'. 17:12
dalek r33425 | pmichaud++ | trunk: 17:14
: [pct]: Switch PCT to use box opcode at convenient places.
diff: www.parrotvm.org/svn/parrot/revision?rev=33425
particle pmichaud: have conversions in actions.pm been made to use constant past::vals yet? 17:15
if not, i can arrange for that to happen
pmichaud I'm using it in a few places, but haven't converted actions.pm yet
note that not every instance can be converted
particle ok, i'm running spectest now 17:16
17:16 hercynium joined
particle afterwards, i'll start that refactor. should be easy. 17:16
pmichaud agreed.
string constants that are exposed to user-facing code still need to be PAST::Var
and should become 'Str' instead of 'Perl6Str'
particle noted.
pmichaud I'd like to eliminate the Perl6Str meme from most of the code and only use it where it's actually needed. I think people got confused by the differences between String, Perl6Str, and Str. 17:17
particle i'd be surprised if they didnat
*didn't
moritz probably because it *is+ confusing ;)
pmichaud I'd love to get rid of Perl6Str altogether -- as soon as I can write methods for Str in C 17:18
17:18 johbar joined
particle the vessel with the pestle has the pellet with the poison. the chalice from the palace has the brew that is true. 17:18
pmichaud (oh, I could potentially see about making it an NCI method, but I'd rather have a cleaner way than that, even :-)
moritz particle: wasn't it the other way round? ;-) 17:20
particle :)
pmichaud afk # lunch, errands 17:27
17:32 tomyan left
kj particle: (no trac): not particular, except that I hadn't really realized to submit them to trac, and now you mention it, how to submit them to trac? 17:45
particle trac.parrot.org/parrot
hit 'New Ticket'
kj ok, I'll use that one next time. thanks 17:47
17:57 chromatic joined 18:01 MariachiElf joined 18:04 Lorn_ joined 18:08 Hadi1 joined, Hadi1 left
Coke racudo? 18:09
racudo is probably rakudo.
moritz racudo is also mis-speled(sic) 18:10
purl okay, moritz.
moderator Parrot 0.8.1 "Tio Richie" Released | parrot.org | 588 RT | 11 trac 18:10
18:11 Hadi joined
Coke Didn't someone resolve trac.parrot.org/parrot/ticket/11 ? 18:11
I'm in no rush to replace imcc (the devil you know), but do we have a game plan for making pirc the default? A patch I could apply to make sure all tests pass? 18:13
chromatic I wrote a test harness for kjs; he's working on tests there.
Coke Can we get it checked in so our bus number goes up fractionally?
kj remembers he should write more tests 18:14
kj 's apartment is too cold to sit and write tests
Coke let's rename compilers/imcc to compilers/pir and put the todo'd tests in there?
(or just the latter) 18:15
Infinoid Coke: (ticket 11) well, the test case passes here, so...
Coke ah. 18:16
the response to the ticket doesn't get -attached- to the ticket.
I recommend we make parrot-tickets "read only" to avoid that confusion. 18:17
(writable only by trac)
Coke forward's NotFound's message to the dev list with a Q. 18:19
chromatic Coke, I checked it in. 18:23
Two weeks ago.
Coke where? 18:24
chromatic compilers/pirc/t/harness
Coke danke.
chromatic config/gen/makefiles/pirc.in
kj Coke: in compilers/pirc, type 'make test'
Coke doesn't even build. =-) 18:28
kj linux? 18:29
purl rumour has it linux is linux is linux by another name. or 80% of the world's top 500 super computers right now and the number one embedded system broadcast.oreilly.com/2008/10/how-l...evice.html
Coke nope.
osx /intel.
kj what's the error message?
purl the error message is in op.c
Coke are those tests cribbed from imcc, or are they completely separate?
kj purl, forget error message
purl kj: I forgot error message
nopaste "coke" at 72.228.52.192 pasted "pirc build failure (osx/intel)" (21 lines) at nopaste.snit.ch/14763 18:30
kj Coke: I was planning to write tests for PIRC based on the grammar. My main purpose of having pirc tests is to make sure I don't break any grammar construct (esp. w.r.t. heredocs/macros) if I edit s'thing
interesting errors; never seen those before. 18:31
Coke any tests you write should also be in compilers/immc if they're not already there, if they're based on the grammar.
s/immc/imcc/
Infinoid oh, Coke sees the same errors I was just looking at.
particle a better location is t/compilers/pir/parser
Coke though, as has been pointed out, saving IMCC isn't as important. better to make sure that you eventually pass (or reject) all the imcc tests. 18:32
kj well, I can't run any IMCC tests as long as PIRC doesn't generate PBC
so till then, I'm only worried about correctly parsing/not segfaulting 18:33
particle right, that's a huge blocker. except pir2pasm tests
kj I actually can *write* some PBC ... :-)
Infinoid I'm seeing those build errors because my size_t is 64 bit (unsigned long), but yy_size_t is defined as 32 bit (unsigned int). The yypiralloc() prototype uses yy_size_t, but the definition uses size_t.
kj ... but it will fail when running it :-(
Coke pir2pasm doesn't work with IMCC.
I wouldn't expect PIRC to provide it.
(does it mean to?)
tewk I hope to work on bytecode generation for pirc over christmas, if jonathan or someone else doesn't beat me to it. 18:34
kj tewk: I wrote a test file and put it on the mailing list. the basics are in there. Once that's working, I'm already very happy
particle coke: pasm is human-readable bytecode. so if pirc can produce pbc, it should also be able to produce pasm
kj Infinoid: interesting. It might be a flex bug 18:35
Coke yes, theoretically. is it something we want to put in as a goal and spend cycles on.
or is it just a nice to have?
kj Coke: pirc can generate PASM
Coke kj: from pir?
kj eh, yeah. but I should add it's not complete
particle yes, from pir or pasm
Coke ok. not to sound like a borken record, but if there's plans, write 'em down. 18:36
tewk kj forward it to tewk at tewk dot com and I'll try to look at it tonight.
kj it can do {PASM, PIR} => {PASM, (PASM-style-)PIR}
Coke this mainly to particle, who so very often says something analogous to "yes, that's the plan" and completely takes me by surprise.
Infinoid kj: they have provision to override, I'm working on it 18:37
kj Coke: to complete it? I guess I can file a ticket on it, although it's a work in progress
tewk: will do (the code is slightly scary..)
particle kj: what do you think about making a pbc parser for pirc, so it's assembler and disassembler in one?
Infinoid what's the command line to regenerate stuff from new/pir.l ? 18:38
Coke kj: I just want a mini roadmap for pirc. (Kind of what the meta ticket was meant for originally)
particle figuring out pbc parsing might get you the info you need to properly emit it
Coke particle: ew.
kj Infinoid: in compilers/pirc/new: flex pir.l 18:39
Coke (at least for a phase one "replace imcc" goal.)
kj Coke: I'm keeping a TODO file in compilers/pirc
particle: the disassembler can be stolen from pbc_disassembly I'd say
but yes, it could be integrated at some point
particle coke: the architecture for pirc makes it somewhat straightforward to add parsers/emitters 18:40
Coke kj: If pirc is the new official parse, we should probably migrate that into trac.
particle ...certainly much easier than modifying imcc to do the same
Coke s/parse/compiler/
kj Infinoid: the pir.l file already has some %directives that specify the output file etc.
Infinoid ok, that seems to have worked
kj particle: (flexible): that was the hand-written rec-desc. version I wrote earlier 18:41
Infinoid so the question is... do I want to force lex to use the native size_t, or force the functions to use lex's size_t
kj Infinoid: I would say that always using size_t (native) would be a safe choice.. as long as flex uses that internally then as well 18:42
Infinoid I think I can make that work, one moment. 18:43
Coke q: if it's going to be for pasm as well, is a new name needed?
Infinoid urk. is size_t c89? is sys/types.h c89? 18:45
kj Infinoid: isn't size_t #defined as unsigned int?
Infinoid no, it is typedeffed to unsigned long, at least on glibc machines 18:46
purl okay, Infinoid.
Infinoid purl, forget it
purl Infinoid: I forgot it
Infinoid and that means on linux/x86-64, it is 64 bit, hence the build error
kj what if you #define size_t as unsigned int ? :-) 18:47
chromatic Then everything that relies on size_t being the unsigned integer result of the sizeof operator goes kablooie.
particle Infinoid: size_t is the unsigned integer type returned by sizeof 18:48
it's definitely c89
Infinoid great. so what do I include to get it, so I can typedef yy_size_t to it?
Infinoid doesn't know if sys/types.h is a gnuism or not
kj I thought stdlib.h would do
Infinoid probably, thanks. 18:49
particle stddef.h
chromatic My guess is whatever declares sizeof should have it.
particle stddef.h
Infinoid well, I put stdlib.h in the %top{} block, and it builds now. 18:50
kj oh, great. thanks!
I guess it needs to be in %top {} to be sure it's included in time 18:51
(rather than grouping it with the other #includes)
Infinoid well, I am using the YY_TYPEDEF_YY_SIZE_T override to typedef yy_size_t directly 18:52
if there's a better way, I'm not married to this... I don't know flex very well.
kj I'll check info flex; I learnt a lot of tricks from that 18:53
nopaste "Infinoid" at 96.238.213.50 pasted "pirc size_t diff" (48 lines) at nopaste.snit.ch/14764
kj aaaah now I understand the redefinition stuff 18:54
Infinoid The first hunk is the %top{} hack. Builds are fixed for me with or without that part; the first hunk just makes the type 64 bit.
oh, and All tests successful. 18:56
kj Infinoid++
18:56 cognominal joined
kj On windows, before committing a flex-generated file, I need to re-save the generated file (usually a newline and a backspace, just to touch the file), in order to prevent inconsistent line-ending messages while committing 18:57
not sure if that's needed on linux
Coke kj: you should be able to avoid that by setting eol-style
no? 18:58
kj that's already set.
Coke huh.
Infinoid did the eol-style setting *cause* the error messages?
kj dunno. good point...
Coke I'll try that patch out on osx/intel as soon as it's committed.
Infinoid if the expected line-ending is lf-only, then the files I generated should be fine. and if they weren't, I would have expected a bigger and messier diff
kj ehm. It might be a flex bug... 18:59
dalek r33426 | particle++ | trunk:
: [rakudo] convert some PAST::Val(...) calls to constants
diff: www.parrotvm.org/svn/parrot/revision?rev=33426
kj it doesn't happen with Bison-generated files
Infinoid should I check this in to see how much breaks?
kj please
dalek r33427 | infinoid++ | trunk: 19:06
: [CAGE] Remove trailing whitespace.
diff: www.parrotvm.org/svn/parrot/revision?rev=33427
r33428 | infinoid++ | trunk:
Infinoid ok, r33428. hopefully the generated source files have the right line endings
dalek : [PIRC] Force yy_size_t to be the same type as size_t.
: This fixes builds for me on linux/x86-64.
diff: www.parrotvm.org/svn/parrot/revision?rev=33428
Coke Infinoid++ kj++ # all tests pass. 19:07
kj compiles cleanly on win32
Infinoid++ # (bus number)++
Coke kj: looking in basic.t I see syntax (.const) that doesn't match IMCC. Would you mind if I opened tickets for things I find? 19:08
Infinoid Coke: which platform are you on?
Coke osx/intel
Infinoid is that intel 64-bit, or does it just have 64 bit size_t's?
kj ehm. doesn't match IMCC?
Coke (at least right now.)
.const int x = 42
kj that's correct, right?
Coke oh, that's lowercase. =-) 19:09
I'd of course -test- them before opening tickets. =-)
kj ha ha
Coke Infinoid: er... Iunno
kj feel free to open any tickets on issues that you think should be fixed
Coke Infinoid: any idea how I'd check?
kj good way to ping me on them.
Infinoid Coke: hmm, I know nothing about osx, so no ideas, sorry. 19:10
(I was just curious)
Coke how would you check on linux? 19:11
Infinoid "uname -a"
purl somebody said "uname -a" was sufficient
Coke Darwin slurpee.local 8.11.1 Darwin Kernel Version 8.11.1: Wed Oct 10 18:23:28 PDT 2007; root:xnu-792.25.20~1/RELEASE_I386 i386 i386
that doesn't look like it answers the q, though.
particle coke: you can look in Parrot::Config::Generated.pm to see how parrot's configured of course
Infinoid i386 answers the question, thanks
particle i have 'intsize' => 4 19:12
(win32)
Coke intsize=4.
ah, Infinoid already got it.
Infinoid you just have nifty size_t's that don't match your "int"s
my intsize is 4 also, btw. its just longsize that differs here 19:13
particle ah, my mistake 19:14
what's your ptrsize?
Infinoid 8
these things vary. I think alpha has intsize=8
particle win64 has ptrsize 8 intsize 4 19:15
Infinoid same as linux/x86-64 then
particle which led to wonderful build errors
Infinoid hehe
particle haven't tested that in a while though
Infinoid is looking forward to 128-bit processors 19:16
tewk I believe win64 will report at sizeof(long) as 4, while linux64 will report 8. 19:17
particle tewk: that's right iirc
Infinoid that does sound familiar
tewk www.unix.org/whitepapers/64bit.html 19:18
particle downloads an x64-perl-5.10
Coke I can't actually find where in /usr/include size_t is defined. 19:19
tewk win64 is LLP64, linux64 is LP64
Infinoid Coke: for me, it's in /usr/lib/gcc/<arch>/<version>/include/ 19:20
I guess its a gcc thing, not a glibc thing.
Coke osx is gcc. 19:21
19:22 gmansi joined
Coke (but there's no 'include' dir there.) 19:22
tewk gotta love #include #define abstraction in system header files.
Infinoid well, it'll be somewhere in the output of "gcc -print-search-dirs"
tewk grep -irn "size_t" /usr/include |grep "#define" 19:23
pmichaud (trac #11) I sent a response about it to parrot-dev; there are still some issues with issame in trunk.
Infinoid tewk: it isn't #defined here, it's typedef'd, and not in /usr/include/
Coke $ ack -a 'typedef.*size_t' | wc -l 242 19:24
Infinoid /usr/lib/gcc/i686-pc-linux-gnu/4.3.2/include/stddef.h:214:typedef __SIZE_TYPE__ size_t;
/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.2/include/stddef.h:214:typedef __SIZE_TYPE__ size_t;
I had better luck searching for "size_t;" - the trailing semicolon filters out all the other users 19:25
Infinoid tries building parrot against strawberry perl for the first time in a while. 19:28
Coke near as I can tell, size_t is darwin_size_t which is __SIZE_TYPE__ which is "unsigned long int" 19:29
er, "long unsigned int"
Infinoid same here, without the darwin_size_t step in the middle
Coke so my error makes sense? awesome. 19:30
Infinoid well, maybe you're 64 bit after all, and apple's done a really good job of hiding it from you
if that's true, your longsize should be 8 19:31
Coke nope, 4 19:32
but that could be pulled from a different perl. Iunno. 19:33
Infinoid in that case, I don't have a clue.
doesn't OSX play games with this, to make executables that are compatible with lots of platforms?
Coke I don't know how that works under the covers. 19:34
Infinoid well, it works, that's the important thing :) 19:35
nopaste "tewk" at 155.98.69.7 pasted "sizeof_info.c" (9 lines) at nopaste.snit.ch/14767 19:36
Infinoid 124888 19:37
Coke: if the compiler is invoked multiple times for the various platforms it wants to build for, it may not necessarily have been your platform which got the error 19:38
tewk and uname -a says i386 right? Apple is having fun with you.
Infinoid well, my uname -a says linux/x86-64
tewk that makes sense. 19:39
Infinoid I think Coke could have seen a 64 bit platform error without necessarily being on a 64 bit platform
Coke $ ./a.out
sizeof(char) :1
sizeof(short) :2
sizeof(int) :4
sizeof(long) :4
sizeof(long long) :8
sizeof(size_t) :4
19:40 register joined
tewk I wouldn't be suprised if the sizeofs change based on #defines present. 19:40
Infinoid size_t is overrideable. as for the others ... that's a scary thought. 19:41
(Coke's compiler)++ # for catching the error even on platforms that hide it 19:42
19:57 chromatic joined
mj41 I just found en.opensuse.org/Build_Service ... a tool to create and release open source software for openSUSE and other Linux distributions easily on different hardware architectures and for a broad user audience. 20:00
dalek r33429 | particle++ | trunk: 20:48
: [rakudo] take advantage of parrot's config to make rebase tool more portable
diff: www.parrotvm.org/svn/parrot/revision?rev=33429
21:09 sjansen joined
GeJ Good morning everyone 21:17
21:29 register joined
Coke hurm. I wonder if you can use 'svn diff' to show the first commit to the repository (-r0:1 FAIL) 21:36
pmichaud perhaps -c 1 ?
Coke ESVNTOOOLD
particle 1.3? ouch, that is old 21:37
Coke it scares me that the first commit occurred in 2001 (the day after my anniversary, no less.)
pmichaud -c 2 works, though.
pmichaud@orange:~/parrot/trunk$ svn log -r 1 21:38
------------------------------------------------------------------------
r1 | ask | 2001-08-29 06:36:49 -0500 (Wed, 29 Aug 2001) | 2 lines
first readme.
Coke yes, log works. I was just wondering what the README was. =-)
particle svn export -r 1 ...
nopaste "GeJ" at 202.22.229.27 pasted "First commit evah." (6 lines) at nopaste.snit.ch/14771 21:39
GeJ the first commit with real meat was r3 made by simon. 21:41
there's no plan to have the source and commits available on trac?
Coke yes., there is a plan.
particle we need to finalize the copyright transfer, set up infrastructure, do an svn dump, import, etc 21:42
GeJ Oh, ok. 21:45
tewk and run an authoritative git mirror
Infinoid yay, git 21:50
nopaste "Infinoid" at 96.238.213.50 pasted "this diff causes t/codingstd/c_cppcomments.t to fail, oddly." (18 lines) at nopaste.snit.ch/14772 22:04
Infinoid I think c_cppcomments.t isn't smart enough about quote matching
22:06 donaldh joined
Coke hy is c_cppcomments.t looking at a lex file? 22:06
it should skip the .l and only examine the generated .c
(if that.)
(the problem is that you're removing a single quote on that rule but leaving a single quote in the next rule. 22:07
Infinoid sounds like a good answer to me.
Coke so before they were coincidentally matched.
(that's my guess, anyway)
Infinoid well, I was assuming it stripped out the whole rule until it hit the quote from the header of the next rule
Coke Right. 22:08
Infinoid so by removing a rule, it toggled
not very pretty behavior
anyway, skipping lex works for me.
Coke You could trick it by adding in a /* " */ before that remaining rule, but "evil"
Infinoid uck
Coke =-)
22:08 apeiron joined
Coke skipping better. +1 22:08
->
PerlJam pm: ping 22:11
pm: How do I start matching from some character other than the first? i.e., if I have rulesub = p6regex_compile(pattern); match = rulesub(str) # I want the pattern match to start looking from the 5th character (for instance) 22:13
22:15 Whiteknight joined
dalek r33430 | infinoid++ | trunk: 22:19
: [CAGE] c_cppcomments.t should skip lex files.
: (The quote matching doesn't work very well with lex syntax.)
diff: www.parrotvm.org/svn/parrot/revision?rev=33430
moritz PerlJam: match = regex($S0, 'continue' => start_pos) 22:20
Infinoid Coke: anyway, the lex files were returned as part of $DIST->get_c_language_files(). whether they should be in that list is another question... but now the test filters them out. 22:21
PerlJam moritz: thanks 22:24
moritz: What about making a match start where the last one left off ? 22:26
moritz PerlJam: sorry, that's what 'continue' does
PerlJam: I think the anchor is 'pos' or 'position' or some such
PerlJam Hrm. So, rather than calling match.'next'(), I'd call match = regex(...) again? 22:27
moritz iirc match.next() returns all overlapping matches
PerlJam yeah, that's what I'm trying not to do :)
moritz which is what you want if you build a backtracking re engine ;)
dalek r33431 | cotto++ | trunk: 22:28
: [docs] add the C2 wiki to the release manager guide
diff: www.parrotvm.org/svn/parrot/revision?rev=33431
moritz Rakudo's Str.split is implemented in terms of regex($S0, 'continue'' => ...)
PerlJam ah, that's a good place to look. thanks again. 22:30
pmichaud PerlJam: 'pos' => $I0 "match anchored to $I0" 22:32
'continue' => $I0 "start scanning at position $I0 looking for a match" 22:33
match.'next'() "backtrack successful match and try again"
substr is also implemented in terms of regex($S0, 'continue' => ...) 22:35
*subst
22:35 ruoso joined
PerlJam pm: from languages/perl6/src/builtins/any-str.pir? 22:39
tewk ~/. 22:40
22:40 tak joined
PerlJam ah, I was looking in a different branch. 22:40
pmichaud PerlJam: yes. 22:41
I just updated it last night, so I know it's "correct" in terms of expected usage.
I was also thinking of implementing :2nd, :1st, etc :-)
'foo'.subst($regex, $str, :2nd)
PerlJam pm: I was just familiarizing myself with how things work to see if I could implement :1st, :2nd, etc. :) 22:42
pmichaud then definitely look at .subst 22:43
it would make it "eash"
"easy"
because it already collects all of the matches into a list
as a starting point, write the options as :th($n)
22:44 davidfetter joined
particle perl 6 makes the eash things eash and the hars things possiblw 22:44
PerlJam heh
pmichaud but it destroys your tpying.
22:44 register joined
pmichaud afk # errands 22:45
PerlJam Is it just me or are substr and subst named far too similarly? I can't tell you how many times I've mis-typed one when I meant the other, but it's probably an uncountable number it's so many :) 22:49
dalek r33432 | cotto++ | trunk:
: [pipp] typo fix
diff: www.parrotvm.org/svn/parrot/revision?rev=33432
23:34 TiMBuS joined 23:42 kid51 joined 23:46 Limbic_Region joined 23:47 ruoso joined
jonathan hi all - flying home after visiting friends in the UK tomorrow (uh, today feather time). So will be back online/active on Wed. :-) 23:56
Limbic_Region safe/good flight 23:58
23:59 bacek joined
jonathan Limbic_Region: Thanks! It's a short one back home, just gotta hope the (awful as when I left) UK railway network doesn't make me miss it. :-| 23:59