Parrot 4.4.0 "Banana Fanna Fo Ferret" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 12 June 2012.
00:09 whiteknight joined 00:11 kjs_ joined
whiteknight good evening, #parrot 00:14
kjs good evening 00:26
well, there is good news, and there's bad news
the good news is that multi dimensional arrays seem to work, I don't dare to test more compelx cases than x[1][2] = 3; y = x[1][2]; print(y) // prints 3! 00:27
the bad news is that half the tests break now.
I'll leave that for another day.
00:43 kid51 joined
dalek rrot: fb9b5ba | jkeenan++ | config/gen/makefiles/root.in:
Enter comment as to why we have to use suffix rules rather than pattern rules.
01:17
rrot: 78e570c | jkeenan++ | config/gen/makefiles/root.in:
Restore one comment, to be consistent with other suffix rules.
01:36
rrot: 8e59342 | jkeenan++ | lib/Parrot/Pmc2c/Emitter.pm:
Begin to write POD for Emitter.pm.
02:10
rrot: 85ea384 | jkeenan++ | lib/Parrot/Pmc2c/Emitter.pm:
Begin to document and refactor text(). FAILING TO BUILD.
rrot: 380d597 | jkeenan++ | lib/Parrot/Pmc2c/Emitter.pm:
Revert "Begin to document and refactor text(). FAILING TO BUILD."

This reverts commit 85ea38423a6c09772d35e372cef8b3c4ef8280cf.
rrot: 6bed7f1 | jkeenan++ | lib/Parrot/Pmc2c/Emitter.pm:
Start to add documentation to Parrot::Pmc2c::Emitter in POD format.
rrot: dc9baac | jkeenan++ | lib/Parrot/Pmc2c/Emitter.pm:
Simplify syntax of new().
rrot: a1965e0 | jkeenan++ | lib/Parrot/Pmc2c/Emitter.pm:
Simplify text() along same lines as new().
rrot: e9b024c | jkeenan++ | lib/Parrot/Pmc2c/PMC.pm:
Correct spelling of method in its declaration and single instance.
rrot: 500836e | jkeenan++ | lib/Parrot/Pmc2c/P (2 files):
In Parrot::Pmc2c::PCCMETHOD, change $self to $method to make clear that these are subroutines (with other class's objects as arguments) rather than methods of this package.
rrot: 95e6f6c | jkeenan++ | lib/Parrot/Pmc2c/Emitter.pm:
Write preliminary documentation in POD format for find(), subst() and replace()..
rrot: a608886 | jkeenan++ | lib/Parrot/Pmc2c/Emitter.pm:
pmc2c.pl is in tools/build/, not tools/dev.
rrot: e25901d | jkeenan++ | / (2 files):
Update branch with recent config system updates in master.
rrot: 5bd740f | jkeenan++ | / (20 files):
Update branch from master, then resolve some merge conflicts in PCCMETHOD.pm.
rrot: 3292295 | jkeenan++ | lib/Parrot/Pmc2c/Pmc2cMain.pm:
Add documentation identifying where each method is tested.
rrot: 998cd1c | jkeenan++ | lib/Parrot/Pmc2c/ (4 files):
Merge branch 'pmc_emitter_document'
04:57 crab2313 joined 06:31 dduncan joined 06:45 kuku joined 08:17 brrt joined 08:38 rich joined, JimmyZ joined 08:44 rich left 09:16 kjs joined 09:59 brrt joined 10:04 lucian joined 10:12 JimmyZ joined 10:22 whiteknight joined
dalek d_parrot: c2833c4 | (Bart Wiegmans)++ | / (6 files):
Halfway through adding reading
10:24
d_parrot: 1f456ee | (Bart Wiegmans)++ | / (6 files):
Reading is unreliable, but kind of works
whiteknight good morning, #parrot 10:26
kjs hi whiteknight
dalek : 5db27cc | kjs++ | src/gencode.c:
multi-d arrays seem to work. in process of recovering tests.
10:27
whiteknight hello kjs 10:29
dalek : 6b6f6be | kjs++ | / (3 files):
more cleaning up and fixes for assignments. fix some warnings too.
11:10
whiteknight okay, I think I've got my socket issues figured out 11:23
finding a good, non-hack fix for it is harder
11:25 PacoAir joined
dalek : c83dc1c | kjs++ | src/gencode.c:
add a bit of comments and remove wrapper functions.
11:28
: cbd4fd7 | kjs++ | src/gencode.c:
cleanups, refactoring and replacement.
11:39
rrot/whiteknight/io_cleanup1: 7ee3530 | Whiteknight++ | / (6 files):
Fix socket tests, though I'm not happy with this fix.

If we do a recv for X bytes but only receive Y (Y < X), we shouldn't try to recv again to get more because recv can hang if there's no data incoming. Notice that this 'fix' fails for very large reads where we fill the buffer and could legitimately recv more bytes but do not.
11:41
11:41 JimmyZ_ joined
kjs JimmyZ: pig 11:43
eh
ping
JimmyZ_ kjs: pong 11:44
kjs JimmyZ_: I made a bunch of changes. I think/hope for the good
assigning and multi-dimensional array access is a pain
broke a bunch of tests; strings is broke because types are not hanlded correclty, and structs are broken because I refactored the code for multi-dim access. 11:45
JimmyZ_ kjs: yeah, I saw it. multi-dimensional is a real pain
kjs i think i got it but don't dare to test beyond 2 dimensions :-
:-)
it might blow up
JimmyZ ->afk, dinner& 11:46
11:48 birdwindupbird joined
dalek : 2d2e797 | jimmy++ | src/gencode.c:
fixed test t/struct.m1
12:56
12:57 JimmyZ joined
dalek : ddb6411 | jimmy++ | src/gencode.c:
a bit clean up
13:02
JimmyZ kjs: hmm, I may broke multi-dimensional array 13:05
13:09 Psyche^ joined
kjs JimmyZ: with what code does it fail? 13:31
13:31 dduncan joined
kjs JimmyZ: code clean up is best done /after/ it works ;-) 13:32
13:37 JimmyZ joined
JimmyZ kjs: yeah, with that code it fails 13:37
kjs structs or strings/
eh
arrays
?
JimmyZ kjs: struct.m1 13:38
kjs by fixing structs you broke multi-d arrays?
that's separate code, no?
JimmyZ kjs: don't know, I don't have multi-d arrays test 13:39
kjs sorry. i thought you just said "I may broke mult-dimensional array"...
JimmyZ kjs: I'm not good at enlish enough, I'm Chinese ;) 13:40
kjs your english is fine I think ;-)
I'll have a look 13:41
JimmyZ kjs: thanks
dalek : 498d225 | kjs++ | t/multidimarray.m1:
add simple test for multi dim arrays.
13:43
: 5230aac | kjs++ | / (2 files):
add simple struct test. this runs.
13:51
kjs JimmyZ: t/struct works for me 13:53
dont have nested structs yet. that mightn't work
JimmyZ kjs: there a unused instruction in t/struct.m0 13:57
kjs unused instruction?
as in, dead code?
JimmyZ kjs: yeah
kjs leave it :-)
which one?
we can optimize later.
JimmyZ deref I3, I0, I2 # dead code
set_ref I0, I2, I1
kjs getting it to work is hard enough
JimmyZ kjs: aye 13:58
kjs i suspected that already that the deref generated in gencode_obj() for OBJECT_FIELD case is not necessary
that's the one!
14:00 JimmyZ_ joined
dalek : 1681400 | jimmy++ | src/gencode.c:
clean up unused code
14:03
JimmyZ kjs++, who did/do the most hard work 14:04
dalek : 155c856 | kjs++ | / (3 files):
update basic struct test. remove comments.
14:07
: 789e16f | kjs++ | src/gencode.c:
fix conflict
: 2acf1f8 | kjs++ | src/gencode.c:
remove unused code that jimmy++ already had removed. I don't know what happened.
14:13
14:45 zby_home joined
dalek : 57ed238 | kjs++ | / (3 files):
implement bitwise not in terms of -x -1. add a test for this.
14:46
14:48 brrt joined
brrt ping whiteknight 14:48
whiteknight pong 14:51
brrt good :-) i am in need of advice 14:52
about io, even 14:53
point made very simply, i'm implementing an input handle
that uses NCI and PtrBuf and ByteBuffer and all that to fetch data from the apache layer into parrot 14:54
which works! hurray 14:55
but now I'm at the point of either (A): implementing some buffering mechanism and supporting readline() or (B) not do it
dalek : b3f0d4f | kjs++ | docs/TODO.txt:
Update TODO file with status.
14:56
brrt and since I read your blog post and I know you are working on getting 'generic buffers' to work.. what should you think?
(i'm strongly leaning to 'don't bother readline()' camp, by the way) 14:58
whiteknight readline isn't too big an issue at the PIR level 15:03
ByteBuffer should automatically set you up with codepoint logic, so you can get a string from your ByteBuffer and search for a delimiter
then substr that
if you want 15:04
dalek : a83c607 | kjs++ | src/m1.y:
minor improvements in parser.
brrt hmm
that is probably not a good idea in my current setup 15:05
because my current setup involves no buffers at all
(except one for apache to write in) 15:08
whiteknight okay, then don't worry about it 15:09
if users start begging for readline, we can set that up later
brrt i doubt it, really, its for POST data
but true enough
whiteknight ok 15:10
brrt hows the rewrite going? 15:14
oh, much more importantly 15:16
i need to copy a subet of the bytebuffer to a string
not the whole thing
.. never mind, i've found it :-) 15:17
get_chars will do
dalek : 111b5a1 | kjs++ | / (3 files):
implement array constructors. int x[10] = {1, 2, 3}; add test.
15:18
brrt blegh, this stuff is hard 15:21
... ah, thats much better 15:22
whiteknight brrt: The rewrite is going very well. I've got only a handful of failing tests left, which appear to mostly deal with errors in reading multi-byte characters 15:23
brrt oh, thats very nice 15:24
whiteknight I know the build is going to be broken on windows too, since I renamed some platform-specific functions 15:25
JimmyZ kjs: ping 15:32
dalek : 91bdbf0 | jimmy++ | src/gencode.c:
improve mult-dimensional array code generation
kjs JimmyZ: poing 15:33
JimmyZ kjs: I got some idea about mult-dimensional array code generation
kjs: I think we can flat mult-dimensional array to a single-dimensional array at compiling time 15:35
kjs: sorry, I'm wrong, if index is dynamic 15:36
15:36 jashwanth joined
kjs JimmyZ: it /is/ flattened 15:37
not sure if that's what you mean, but see gencode_obj(); there's an explanation there. 15:38
JimmyZ kjs: I meant at compiling time, but that's a later optimization
JimmyZ always wants premature feture :P 15:39
dalek rrot/whiteknight/io_cleanup1: ef77aa2 | Whiteknight++ | t/pmc/io.t:
Fix a test in t/pmc/io.t. The test was asking to read 7 characters, but then testing that we only received 6. The new (correct) behavior is to ask for 6 characters and get 6 characters.
15:42
whiteknight I couldn't understand why this test was failing, because it was doing read(7) and getting 7 characters
but, it turns out that the test only wanted 6 characters 15:43
AWESOMENESS LEVEL 100
JimmyZ hmm, mult-dimensional is still tricky, I think I commit wrong code 15:44
kjs JimmyZ: I'm ntot sure what you mean by flattening at compile time; that is already done. 15:46
JimmyZ: does that latest commit of yours break any tests?
JimmyZ kjs: nope, 15:47
15:47 brrt1 joined
dalek rrot/whiteknight/io_cleanup1: 94edbda | Whiteknight++ | t/pmc/io.t:
Fix a UTF16 IO test in the same way. The test was doing .read(9) and expecting to only get back 5 characters. The expectation, I think, is that the 9 is a number of bytes and the internal read routines will automatically round up to get the next full multi-byte character. This is nonsensical. In the new system, when you ask for 9 characters, you get 9 characters with no magic.
15:48
kjs JimmyZ: I don't understand the code that is removed.
it doesnt seem to make much sense to me
whiteknight brrt: See my last two commits for an idea of the kinds of problems I'm seeing
JimmyZ kjs: me too.
kjs JimmyZ: I don't think its a good idea, because there's still some hacks there. 15:49
I understand what you want now; for each dimension it adds another number
and you want to do that in 1 go
but that's should be done separately, by an optimizer, otherwise the code generator becomes to messy
JimmyZ kjs: so I always want premature feture 15:50
kjs well it's good to optimize
but it's not even working without optimization :-)
whiteknight The old IO code is so wrong at almost every level
kjs it's better to revert that latest commit
JimmyZ *feature 15:51
dalek : ce95615 | jimmy++ | src/gencode.c:
Revert "improve mult-dimensional array code generation"

This reverts commit 91bdbf0a1878bbb8918edbd9f59c8cbf6f1ced60.
kjs JimmyZ: there are no proper tests yet for multi-dimensional. It works at the moment, but I'm not convinced it does for the more general case 15:52
there's a hack in there, but it takes a few hours to get that sorted. dont' have the tuits for that now
JimmyZ kjs: aye
JimmyZ prepares sleeping
kjs JimmyZ: thanks for the efforts, though :-) 15:53
JimmyZ did nothing :(
whiteknight hmmm....I think the io dynops are deprecated, aren't they? 16:10
16:26 lucian joined
dalek d_parrot: c0f8bdd | (Bart Wiegmans)++ | / (4 files):
Added direct post reading with NCI, and it works, too
16:44
whiteknight brrt++ 16:48
dalek : 2f3e875 | kjs++ | / (6 files):
Work in progress; Move struct members into a symbol table to unify the code in gencode_obj(). Doesn't work well yet, more to come later.
16:51
brrt1 it reduces code size, too, so that makes me happy 16:52
17:01 PacoAir_ joined
cotto seen dukeleto 18:25
aloha dukeleto was last seen in #parrot 1 days ago saying "+1 to setting a timeout on child interps".
dalek rrot/whiteknight/io_cleanup1: 9041126 | Whiteknight++ | src/ (2 files):
Update a few of the IO dynops
18:58
rrot/whiteknight/io_cleanup1: 75e2d71 | Whiteknight++ | / (3 files):
Change most instances of IO_VTABLE* to const IO_VTABLE*. Add function-level documentation to src/io/api.c
18:59 brrt1 left 19:54 kuku joined 20:01 contingencyplan joined 20:12 lucian joined 20:33 kjs joined 20:37 kjs joined 21:09 perlite joined
dalek : 836f3b0 | kjs++ | / (8 files):
Refactored structs and pmcs; they're now using symbol tables. Mostly works now.
22:01
: 02a3faa | kjs++ | src/m1.y:
fix minor bug to properly calculate offsets of struct members.
22:32
: e780f6c | kjs++ | src/ (2 files):
various updates to semcheck. few comments to parser
22:53
: db023f4 | kjs++ | src/ (3 files):
refactored pmc attribute AST nodes. Added handling of extends clause of PMCs, AST only.
23:11
: f5962c8 | kjs++ | src/ (3 files):
more handling of PMC methods. AST level only.
23:21
: cf042f0 | kjs++ | src/m1.y:
minor refactoring in parser. Also disallow array constructors to be used too often; only allowed in decls of arrays.
23:30
23:31 brambles joined 23:32 brambles_ joined 23:36 brambles joined
dalek : 037f2af | kjs++ | / (3 files):
Make built-in print statement accept multiple arguments. Add a test for this as well. Fix up order of arguments in AST.
23:37
: c55a542 | kjs++ | src/ (2 files):
params and args are for now best left in reverse order. Consider this in mult-arg print; go recursively to the end, then emit code to print them.
23:48
rrot/whiteknight/io_cleanup1: 9b419fc | Whiteknight++ | / (2 files):
Add function-level documentation to src/io/buffer.c. A few small fixes along the way
23:53
rrot/whiteknight/io_cleanup1: 55621fe | Whiteknight++ | src/io/ (2 files):
Function-level documentation and a few small fixes to src/io/utilities.c
rrot/whiteknight/io_cleanup1: d48b17a | Whiteknight++ | src/io/ (2 files):
Function-level documentation and some fixes for src/io/filehandle.c