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 15 May 2012.
dalek rrot: 6b46960 | jkeenan++ | config/gen/makefiles/root.in:
Add to test-clean target *.pbc files created under t/compilers/imcc/reg/.
00:14
rrot: 6c22780 | jkeenan++ | config/gen/makefiles/root.in:
Add files to test-clean or prog-clean targets.
rrot/whiteknight/io_cleanup1: 9ce3625 | Whiteknight++ | / (7 files):
Several cleanups and codestd. Remove a few unnecessary entries from the io vtable. Improved implementations of readline, peek and a few other things.
01:51
rrot/whiteknight/io_cleanup1: 8ec293c | Whiteknight++ | src/ (11 files):
Start cleaning up sockets. Move API routines from src/io/socket.c to src/io/api.c. Rename them. Implement most socket IO_VTABLE routines. Rename functions in src/platform/xxx/socket.c to Parrot_io_internal_ to match conventions. Implement the new get_pointer_keyed_int and set_pointer_keyed_int vtables for most handle types
whiteknight Cleaning up this much funk is exhausting
...off to bed 01:53
Coke aloha: tell whiteknight you closed trac.parrot.org/parrot/ticket/783 as a wishlist, but it's causing the memory leak in rt.perl.org/rt3/Ticket/Display.html?id=77644 03:05
aloha: mgs whiteknight you closed trac.parrot.org/parrot/ticket/783 as a wishlist, but it's causing the memory leak in rt.perl.org/rt3/Ticket/Display.html?id=77644
aloha: msg whiteknight you closed trac.parrot.org/parrot/ticket/783 as a wishlist, but it's causing the memory leak in rt.perl.org/rt3/Ticket/Display.html?id=77644
aloha Coke: OK. I'll deliver the message.
03:36 kurahaupo joined 04:00 kurahaupo joined 04:27 kurahaupo joined
dalek kudo/nom: d0b9784 | moritz++ | src/core/ (2 files):
typed exception for unsupported inheritance
06:27
06:37 kjs joined
cotto hio kjs 07:15
07:15 brrt joined
cotto and he's gone 07:16
like the wind
07:33 brrt left 07:42 lucian joined 07:52 kjs joined
dalek kudo/nom: 3029a84 | moritz++ | src/core/ (2 files):
typed exception for "is export" name clash
07:52
kudo/nom: 197e0bd | moritz++ | src/core/ (2 files):
typed exception when non-dwimmy hyperop has lists of unequal length
08:20
08:23 lucian_ joined 08:30 brrt joined
dalek p: db80a11 | diakopter++ | src/QRegex/ (2 files):
get %/%% working for real this time. all nqp and rakudo spectests pass. extremely ugly code. terrible, even. but there is a lot of unexpected behavior here that I can't explain if I change little things here and there, attepmting to optimize. This ugly hot mess is the best I can do safely. apologies.
08:42
p: 2aee15e | diakopter++ | src/QRegex/ (2 files):
Merge branch 'nfaquant'
d_parrot: b19cbbf | (Bart Wiegmans)++ | mod_parrot (2 files):
Fixed CGI names for HTTP headers
09:12
09:16 brrt joined 09:32 schm00ster joined
dalek : 382e010 | (kj, kjs)++ | m1_gencode.c:
implement == operator
10:03
: eb50e33 | (kj, kjs)++ | eq.m1:
add test for == operator
: eacb4f5 | (kj, kjs)++ | / (2 files):
implement != operator and add test for this
10:07
10:10 crab2313 joined
dalek : 73135e1 | (kj, kjs)++ | / (2 files):
refactor code just checked in, update TODO
10:16
10:43 whiteknight joined
dalek : 68879ea | (kj, kjs)++ | m1. (2 files):
add other assignops
10:48
10:50 JimmyZ joined
whiteknight good morning, #parrot 11:05
11:06 JimmyZ_ joined
dalek : 7ceda91 | (kj, kjs)++ | m1_gencode.c:
fix problem with ++/--
11:10
: c852133 | (kj, kjs)++ | / (2 files):
update todo and remove unnecessary code
11:12
: 7b30981 | (kj, kjs)++ | TODO.txt:
add a how to help section to TODO
11:22
JimmyZ blog.fallingsnow.net/2008/05/23/sim...with-llvm/ # this code is very like the m0 :P 11:34
dalek rrot/whiteknight/io_cleanup1: 2dbddd8 | Whiteknight++ | src/ (6 files):
Add a mark routine for buffers, since they may hold a PMC reference. Start updating PMCs to use the new API calls in a standard way instead of implementing things themselves. Fill in the StringHandle vtable with existing logic and new never-before-supported operations.
11:59
12:08 crab2313 joined 12:20 kjs joined
kjs JimmyZ++ # thanks for link 12:25
That seems like an excellent idea to do for M0!
JimmyZ kjs :P 12:26
kjs I'd be very interested in getting that running for M0. 12:27
JimmyZ that's a good step 12:28
at least a good prototype
kjs M0's interpreter in C is fairly straightforward, and as you said looks a bit like this example in the article. Might be worthwhile to investigate. 12:29
JimmyZ aye 12:30
12:35 woosley joined, woosley left 12:36 eternaleye joined 12:46 crab2313 joined 12:56 PacoAir joined
kjs I found that it was difficult to find libjit that actually compiles on mac. This is a link to an article that explains how to d/l and build, works for mac. 13:00
www.google.com/url?sa=t&rct=j&a...D-43mku20w
(for those who's interested)
13:07 Psyche^ joined
JimmyZ well, libjit seems latest version is 2008 ? 13:11
kjs yeah but if it still works 13:14
might be useful to try both llvm and libjit and compare
JimmyZ what's what most people want, I think 13:18
*that's 13:19
13:19 brrt joined 13:32 not_gerd joined
not_gerd kjs: libjit is maintained by Aleksey Demakov: demakov.com/projects/ 13:32
kjs not_gerd: thakns for pointer. seems libjit is still at v 0.1.2 13:35
not_gerd kjs: last I tried, the git version was + 13:36
kjs + means good? :-)
not_gerd reasonably stable
no, mistype ;)
kjs that doesnt sound _very_ convincing for a production system...
13:37 JimmyZ joined 13:38 crab2313_ joined
not_gerd kjs: afaik Aleksey just publishes the changes he made while using it in production 13:39
13:40 kid51 joined
kjs not_gerd: it seems to be used by some people alright. I think it would be good to try to use it for M0 13:40
dalek d_parrot: a97b976 | (Bart Wiegmans)++ | mod_parrot_run.c:
Add network parameters to script options
kjs ... so we can see how much performance will improve.
brrt also, i should figure out how to make dalek believe it is my nick, i want my pluspluses :-p
karma Bart Wiegmans 13:41
kjs I'm missing out on all of them! :-(
aloha Bart Wiegmans has karma of 0.
brrt kjs, do you need setup infomration?
i have it somewhere
kid51 karma kid51
aloha kid51 has karma of 98.
kid51 karma jkeenan
aloha jkeenan has karma of 668.
kid51 Split personality
brrt karma whiteknight 13:42
aloha whiteknight has karma of 2707.
brrt karma moritz
aloha moritz has karma of 3185.
brrt wow
not_gerd kjs: I'm planning to port the M0 C interpreter to LLVM IR once it has stabilized
you can't really write fast interpreters in C, but thanks to blockaddress and indirectbr, you can in LLVM IR
proof of concept: github.com/gerdr/x3
kjs not_gerd: it's stable, it's stable! :-)
whiteknight karma brrt 13:43
aloha brrt has karma of 7.
kjs not_gerd: awesome, btw, looking forward to it
brrt: setup information?
whiteknight brrt: dalek reads the CREDITS file and should automatically convert commit pluspluses under that name to your nickname
kjs whiteknight: ah, I'll change the credits file so
not_gerd btw, you also need different ops for signed and unsigned integer div and mod 13:44
whiteknight kjs: it's an inexact science
not_gerd that's missing from both M0 spec and implementation
kjs not_gerd: ok. well those details are kindof beyond my expertise, though I suppose I should add the "unsigned" keyword to M1 :-) 13:45
JimmyZ still wants typed regeisters
registers
not_gerd kjs: in two's complement, most integer ops are identical for signed and unsigned - however, anything which depends on division is not
kjs not_gerd: ah ok. btw; there was a link earlier to an example of using llvm. you might be interested in that 13:46
JimmyZ blog.fallingsnow.net/2008/05/23/sim...with-llvm/
dalek rrot: a9b7258 | jkeenan++ | CREDITS:
Add an alias.
13:47
not_gerd kjs, JimmyZ: I saw the link in the log
kid51 Let's see if this works.
karma jkeenan
aloha jkeenan has karma of 668.
kid51 karma kid51
aloha kid51 has karma of 98.
kid51 Doesn't seem to have made a difference. 13:48
not_gerd the planning to do an actual interpreter first, though (ie there's still be a runloop)
brrt i see
(from whiteknights comments)
not_gerd s/^the/I'm7
brrt i think the (initial) c part is shaping up nicely enough
kjs the C impl of M0 is there..
not_gerd lots of typing fail today
kjs that seems to be quite clean code. 13:49
brrt but still a lot to do
kid51 I didn't really expect dalek to pick up on that; after all, the string 'whiteknight' does not occur in the CREDITS
brrt configuration, for one thing, needs to be thought out
whiteknight kid51: All I know is the theory, not the reality
JimmyZ and there was a m0 debuger: github.com/nbrown/parrot/tree/m0-debugger
whiteknight I think dalek is case-insensitive
JimmyZ kjs: you may like it 13:50
kjs not_gerd: do you think you can start with the C impl of M0?
JimmyZ: does it work? :-)
13:51 not_gerd_ joined
JimmyZ kjs: yep, for simply debug 13:51
13:55 not_gerd joined 13:57 not_gerd joined
not_gerd kjs: porting it to LLVM IR or implementing the missing bits? 13:57
kjs not_gerd: porting
not sure if there's many bits missing...
I'd say there might be a few things that are missing, but implementing those would be straightforward I think. Once the majority of ops can be implemented on llvm, basically get things running, then it's easy to make complete, i expect. 13:59
not_gerd kjs: I could start a port, yes 14:01
kjs I believe going depth-first with this system would give good insights into the feasibility 14:02
dalek Heuristic branch merge: pushed 23 commits to parrot/m0-debugger by zhuomingliang
kjs so if we have an interpreter M0, a JIT for M0, and a HLL M1 that compiles down to M0, we have a basic infrastructure that could be tested and optimized. 14:03
dalek : 567a434 | (kj, kjs)++ | m1. (2 files):
add unsigned keyword in anticipation of a JIT
14:07
14:13 bluescreen joined
not_gerd is there a reason why the segment structures aren't flattened into the chunk structure in m0_mob_structures.h 14:22
kjs I believe cotto++ worked on M0. I have little knowledge of that. 14:24
not_gerd git blames chromatic 14:25
it's not really important, but I just wondered if there's a need for all these seperate allocations 14:26
14:28 JimmyZ joined
kjs no idea. I would expect that at some point the memory allocation bits would be improved anyway. Currently, gc_alloc op is an alias for malloc. 14:28
dalek d_bart: 3bd2b3b | (Bart Wiegmans)++ | / (4 files):
Compiler API example (winxed)
14:40
14:40 brrt left 15:11 benabik joined 15:18 Hunger joined
dalek nxed: 94ebe06 | NotFound++ | winxedst (2 files):
fix nargs usage in builtin substr const evaluation
15:28
nxed: c1241c1 | NotFound++ | winxedst1.winxed:
delete remaining of float literals in stage 1
nxed: d3fa0b7 | NotFound++ | winxedst1.winxed:
drop optimization in Ifstatement.emit from stage 1
rrot: 94629c3 | benabik++ | src/pmc/key.pmc:
Key: Add method to introspect type of value

Returns an integer based on PCC's type flags. I'd rather not expose Key's flag values to the outside world, so let's rely on values already exposed for simplicity/consistency.
15:32
CT: b5b757b | benabik++ | src/disasm.winxed:
Use call_bits.pasm, not hand-rolled constants
CT: 1e6d6ac | benabik++ | src/disasm.winxed:
Use new key methods to introspect keys

Now we can actually display keys instead of just giving up.
  whiteknight++
rrot/whiteknight/io_cleanup1: 171d85d | Whiteknight++ | / (15 files):
Update Makefile, MANIFEST. Several fixes so that we can run headerizer, then I ran it.
15:40
rrot/whiteknight/io_cleanup1: 2599900 | Whiteknight++ | / (4 files):
fix headerization. Headerizer behaves very badly in the presence of C++-style comments so remove some of those and replace them with the much more verbose and padded Parrot-style comments.
rrot/whiteknight/io_cleanup1: b22b7d7 | Whiteknight++ | / (7 files):
Several fixes. Add a new API method to easily set up buffering on an existing handle.
whiteknight benabik: Did those key methods work for you? I haven't really tested them at all
actually, no time to hear the answer, have to go! 15:43
15:50 crab2313 joined
dalek : 9d67918 | (kj, kjs)++ | CREDITS:
update nick in credits file
15:51
JimmyZ kjs: I think you want to update this one: github.com/parrot/parrot/blob/master/CREDITS 15:53
kjs JimmyZ: I don't have commit access I think to that one. not sure
JimmyZ kjs: you have 15:55
kjs i tried to git push the change 15:56
but didn't work
JimmyZ kjs: you may clone the readonly url 15:57
kjs: right one is git@github.com:parrot/parrot.git
kjs it says: You can't push to git://github.com/parrot/parrot.git 15:58
Use git@github.com:parrot/parrot.git
JimmyZ kjs: git://github.com/parrot/parrot.git is readonly url
kjs ok. what should i type or do to commit? 15:59
15:59 kurahaupo joined
JimmyZ git remote add origin git@github.com:parrot/parrot.git 15:59
to replace the readonly one 16:00
kjs remote origin already exists.
JimmyZ try git remote rm origin first :) 16:02
kjs ok that works. thanks! 16:03
JimmyZ sleeps
cotto kjs, would you be happy with adding isgt and isge to the m0 spec? 16:19
kjs cotto: yes can do 16:20
do you want me to add it?
cotto let's go with that then. It doesn't matter. I have a few minutes.
kjs cool thanks. it solves a small piece in the M1 puzzle 16:21
I believe not_gerd indicated interest in doing llvm port of M0, once it's stable 16:22
cotto I saw that. not_gerd++ 16:28
dalek rrot/m0: 44c0b79 | cotto++ | / (2 files):
add some comparison ops to the spec (no implementations or tests yet)
16:31
16:31 kurahaupo joined
cotto kjs++ for agitating about those 16:31
kjs cotto++ for taking timely action :-) 16:32
cotto are you interested in adding an implementation and some tests? 16:37
kjs I'm coding it into M1 as we speak 16:38
cotto it won'
t do much good until one of the m0 implementations supports it 16:39
kjs for the M0 C code, I can give it a try once I have a bit more time
(leaving in a bit) 16:40
16:44 not_gerd joined
cotto apparently I haven't run m0 since upgrading to 12.04 a few days ago 16:45
not_gerd cotto: are m0 callframes variably-sized?
if so, the config value CFGCFSZ doesn't make much sense
not_gerd reading m0 spec
cotto I'd like to make it possible, since they'll usually not need all 255 registers 16:46
kjs cotto: I suppose I should do a proper review of the spec, but one thing , before I forget it again, is that i was wondering about the "types" of regs (I, N, S, P), if in fact they can be all used alike. 16:47
if you can store ints in S registers, why have the types as all, as you may run out of I register ,and then spill those, whereas you might as well use S regs as well. 16:48
not_gerd as I understand it, the register types are just by convention (ie syntactic sugar of the assembler)
that doesn't play well with variably-sized callframes though - it might a good idea to annotate callframe allocations with the number of INSP registers so you could have custom mappings 16:50
dalek rrot/m0: a2cb0ea | cotto++ | / (6 files):
add untested implementations of the comparison ops to c-m0 and p5-m0
16:58
: d17445f | (kj, kjs)++ | m1_gencode.c:
first bits of lt, gt, etc. ops. needs more work
16:59
18:13 bluescreen joined 18:22 bacek_at_work joined 18:27 aloha joined 18:39 benabik joined
benabik ~~ 18:41
19:22 lucian joined 19:30 pjcj joined 19:50 isBEKaml joined 20:24 isBEKaml joined
dalek p: 6aef784 | diakopter++ | src/QRegex/NFA.nqp:
implement NFA builder for ranged quantifiers. npq/rakudo spectest all green.
20:47
21:39 dngor joined 23:01 kid51 joined 23:16 whiteknight joined
whiteknight good evening, #parrot 23:33
23:43 kurahaupo joined
sorear hello, whiteknight. 23:44
whiteknight hello sorear
sorear: I hadn't realized it, but I wasn't following you or Niecza on github until yesterday. I didn't realize what I was missing! 23:54
I don't normally give the feed of changes more than a quick glance, but I still want to follow along with such important projects 23:55