|
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 | : e46ca53 | (kj, kjs)++ | m1parser.h: dont need generated file |
00:00 | |
| : 9db097f | (kj, kjs)++ | m1lexer.h: dont need generated file |
|||
| cotto | much better | ||
| : 95915c7 | (kj, kjs)++ | Makefile: add dependency for m1.l/flex |
|||
|
00:13
whiteknight joined
|
|||
| whiteknight | good evening, #parrot | 00:13 | |
|
00:14
diakopter joined
|
|||
| cotto | hio whiteknight | 00:15 | |
| whiteknight | hello cotto | 00:21 | |
| moritz: ping | 00:25 | ||
|
00:45
diakopter left
|
|||
| whiteknight | t/codingstd/pod_description.t tells us that we have 240 files without DESCRIPTION sections | 00:47 | |
| I humbly submit to whoever is listening that this is an insurmountable problem to which we will not devote any concerted effort | |||
| Instead I suggest that we declare DESCRIPTION sections to be non-required, and remove the test | 00:48 | ||
| cotto | They're nice when they exist. | 00:52 | |
| dalek | rrot: 195402a | Whiteknight++ | / (6 files): Add a new Parrot_io_socket_recv_to_buffer to read from a socket to a preexisting buffer. Refactor most of the guts of the FileHandle.read_bytes method into a new Parrot_io_read_byte_buffer_pmc. Move the read_bytes method from FileHandle to Handle to we can inherit it to Socket too. |
00:53 | |
| rrot: 3747017 | Whiteknight++ | / (4 files): Add a new .write_bytes() method to Handle, which will be inherited by FileHandle and Socket. This method reads bytes from a ByteBuffer and outputs to the handle. Untested and several codestd problems. |
|||
| rrot: 93584d0 | Whiteknight++ | / (17 files): Merge branch 'master' into whiteknight/gh_610 |
|||
|
00:53
mtk joined
|
|||
| rrot: c93f492 | Whiteknight++ | api.yaml: Add note about .read_bytes and .write_bytes to api.yaml |
|||
| rrot: 968bb3d | Whiteknight++ | src/io/ (2 files): Fix several codetests |
|||
| rrot: 8ce52c0 | Whiteknight++ | ChangeLog: Update ChangeLog with some of my activities since 4.4.0. |
|||
| whiteknight | sure are, but missing it from 240 files? That's like saying "we don't do this" | ||
| cotto | some of them do have a description | 00:56 | |
| just not all caps | |||
| I wonder how much would break if the code were made to not care about case | 00:58 | ||
| 231 | 01:00 | ||
| so no big win there | |||
| actually, the first one I checked has a description | |||
| clearly a lta test | 01:01 | ||
| *an | |||
| whiteknight | If you're looking for me to say "yes, this is all worth while!", you're going to be waiting for a while | 01:03 | |
| cotto | I'm not | ||
| whiteknight | The test doesn't waste too much time, but it's clearly not testing for something we enforce. or care about at all | ||
| cotto | It'd be a good newbie issue. | ||
| I'm content to file an issue and leave it at that. | 01:04 | ||
|
01:04
travis-ci joined
|
|||
| travis-ci | [travis-ci] parrot/parrot#380 (master - 8ce52c0 : Whiteknight): The build was broken. | 01:04 | |
| [travis-ci] Change view : github.com/parrot/parrot/compare/6......8ce52c0 | |||
| [travis-ci] Build details : travis-ci.org/parrot/parrot/builds/1406626 | |||
|
01:04
travis-ci left
|
|||
| whiteknight | F you, travis | 01:04 | |
| dalek | rrot: 43531db | Whiteknight++ | / (2 files): Add a test for .FileHandle.write_bytes. Already found (and fixed) a bug where we initialize ByteBuffer with a String instead of a raw char* |
01:05 | |
| Heuristic branch merge: pushed 29 commits to parrot/whiteknight/gh_610 by Whiteknight | |||
| whiteknight | cotto: yeah, a ticket works well here. It's obviously not a big enough problem that I'm going to fix it now | ||
| somehow, I don't think the program is going to care if I pass an "unsigned char *" to a function instead of a "char *" | 01:07 | ||
| I suspect things will keep on working as if nothing was wrong | 01:08 | ||
| dalek | rrot: 758cf9e | Whiteknight++ | / (2 files): Fix the number of tests. Add a cast to make g++ happy |
01:12 | |
|
01:12
kid51 joined
|
|||
| dalek | rrot: 8c6f9b8 | Whiteknight++ | t/pmc/filehandle.t: + a test for FileHandle.read_bytes, modeled after other FileHandle tests |
01:16 | |
| aloha | (parrot/parrot) Issues opened : 774 (pod_description.t TODOs) by cotto : github.com/parrot/parrot/issues/774 | 01:25 | |
| whiteknight | If we have input buffers, we could have a semantic where we close a FileHandle but are still able to read from it because there's still data in the buffer | 01:26 | |
| It's a little bit weird to think about, but it makes sense in such a system | |||
| cotto | what'd be a use case for that? | 01:27 | |
| whiteknight | of course, we also end up with cool situations with e.g. threads, where we read from a buffer quickly, and the buffer is replenished in the background | ||
|
01:27
travis-ci joined
|
|||
| travis-ci | [travis-ci] parrot/parrot#382 (master - 758cf9e : Whiteknight): The build was fixed. | 01:27 | |
| [travis-ci] Change view : github.com/parrot/parrot/compare/4......758cf9e | |||
| [travis-ci] Build details : travis-ci.org/parrot/parrot/builds/1406703 | |||
|
01:27
travis-ci left
|
|||
| whiteknight | cotto: Well, if there's data in the buffer we have to decide what to do with it. Trash it when we close the handle? Hold onto it until the handle is re-opened? Make it readable anyway? | 01:28 | |
| I guess we just need to decide what we want to do (or make it configurable) | |||
| And, I suppose, mmap can just be a transparent feature of the buffer | 01:36 | ||
| or, have a flag somewhere | |||
| If we set it up correctly, an in-memory buffer struct could be isomorphic with an mmap-based buffer | 01:37 | ||
| it looks like our system is supposed to have some sort of support for this kind of stuff | |||
| but, as usual, I suspect the reality falls far short of the mark | |||
| dalek | Heuristic branch merge: pushed 39 commits to parrot/whiteknight/io_cleanup1 by Whiteknight | 01:50 | |
| whiteknight | whiteknight, out! | 02:01 | |
| bacek_at_work | ~~ | 02:18 | |
|
02:30
benabik joined
|
|||
| benabik | ~~ | 02:36 | |
|
03:31
kurahaupo joined
05:19
nbrown joined
05:29
bacek_at_work joined
05:53
fperrad joined
06:04
brrt joined
06:37
brrt left
06:50
dngor joined
07:06
brrt joined
07:30
kjs joined
08:11
lucian joined
08:48
kjs joined
|
|||
| dalek | kudo/nom: a90efc7 | moritz++ | src/Perl6/Grammar.pm: unbreak -M command line option |
08:52 | |
| brrt | aloha: tell whiteknight i found a method to use parrot libraries with apxs, greatly simplifying building | 08:53 | |
| aloha: msg whiteknight i found a method to use parrot libraries with apxs, which makes building much simpler | |||
| aloha | brrt: OK. I'll deliver the message. | ||
| moritz | \\o/ | 08:54 | |
|
09:09
bacek_at_work joined
|
|||
| dalek | : 4caa405 | (kj, kjs)++ | m1.y: add new expr |
09:11 | |
| : ccc1e9e | (kj, kjs)++ | m1_ast.c: fix new expr |
|||
| : 16eab45 | (kj, kjs)++ | m1_ast.h: fix new expr |
|||
|
09:19
bacek_at_work joined
10:24
donaldh joined
11:00
JimmyZ joined
12:12
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 12:12 | |
| brrt | noon | 12:13 | |
| whiteknight | good noon, brrt | ||
| brrt | :-) | ||
| just pushed a commit to mod_bart | |||
| am now testing the waters with regards to StringHandle | 12:14 | ||
| but anyway, i can link parrot using apxs, which makes building a huge amount simpler | 12:15 | ||
| i'm so happy about that fact i have repeated it at least three times | |||
| whiteknight | good! | 12:16 | |
|
12:18
donaldh joined
|
|||
| brrt | also found out empircally that underclocking doesn't do much good when compiling | 12:19 | |
| JimmyZ | there was a mod_parrot project and some codes. seem it was lost? | ||
| brrt | JimmyZ: mine or the old one? | ||
| whiteknight | JimmyZ: bitrotten. Very old, too old to salvage | ||
| brrt | also, rather complex | ||
| JimmyZ agrees | 12:20 | ||
| brrt | i want to make something that is simple for administrators to understand | ||
| the drag-and-drop thing of cgi / php, that would be nice | |||
| more power for those that need /want it | |||
| moritz | brrt: you should really set up commit notifications for that repo in here | ||
| brrt | you mean using the bot? | 12:21 | |
| dalek: help | |||
| moritz | yes | ||
| brrt: github.com/perl6/mu/blob/master/mi...k-push.txt | |||
| brrt | will do | 12:22 | |
| dalek | d_bart: d6b6a00 | (Bart Wiegmans)++ | / (7 files): A mess of files |
12:25 | |
| d_bart: b8afe3f | (Bart Wiegmans)++ | / (2 files): Apache handling script |
|||
| d_bart: c6c76ba | (Bart Wiegmans)++ | / (4 files): Link mod_parrot.c to parrot |
|||
| brrt | it works | ||
| moritz | \\o/ | ||
| tadzik | nice :) | 12:26 | |
|
12:28
kjs joined
12:43
bluescreen joined
|
|||
| whiteknight | brrt++ | 12:44 | |
| brrt: You should probably have your name added to the CREDITS file in the Parrot repo. Fork Parrot, edit that file and open a pull request | 12:48 | ||
| dalek | : e91fce7 | (kj, kjs)++ | m1 (5 files): various updates. Still a few things to fix to get hello world running |
12:49 | |
|
12:52
PacoAir joined
|
|||
| brrt | whiteknight: how do i get a result string from the parrot api when i call a method | 13:04 | |
|
13:05
Util joined
|
|||
| brrt | and, is there a way in github to 'update' my fork to recent? | 13:06 | |
|
13:07
Psyche^ joined
|
|||
| moritz | git pull parrot; git push origin; # or so | 13:07 | |
| help.github.com/fork-a-repo/ section 'Pull in upstream changes' | 13:08 | ||
|
13:10
bluescreen joined
|
|||
| brrt | moritz++ | 13:10 | |
| aloha | (parrot/parrot) Issues opened : 775 (Add my name) by bdw : github.com/parrot/parrot/issues/775 | 13:20 | |
| dalek | rrot: 452cfd1 | (Bart Wiegmans)++ | CREDITS: Added myself to credits |
13:23 | |
| rrot: 0d41939 | moritz++ | CREDITS: Merge pull request #775 from bdw/master Add my name |
|||
| d_bart: 74ae59a | (Bart Wiegmans)++ | Makefile: Add cleanup to makefile |
|||
| d_bart: f53a121 | (Bart Wiegmans)++ | / (3 files): Clean up makefile, test StringHandle PMC |
|||
| aloha | (parrot/parrot) Issues closed : 775 (Add my name) by bdw : github.com/parrot/parrot/issues/775 | 13:25 | |
| whiteknight | brrt: After the invoke, the CallContext object should contain the return values | 13:35 | |
| if there's a single return CallContext[0] should be it. | |||
| it doesn't look like we have any tests for that. I need to add some | |||
| moritz | is a CallContext a C array? | 13:36 | |
| whiteknight | no, it's a PMC | ||
| so you'd do a get_*_keyed_int on it | |||
| moritz | ah, so it's a vtable call | ||
| whiteknight | right | ||
| brrt | oh, clearly | 13:37 | |
| whiteknight | moritz: we couldn't just use a C array here, because Subs can return named parameters, etc | 13:38 | |
| moritz | whiteknight: I thought so; I was just surprised about your use of [0], because I was thinking of C level at that time, not PIR | 13:39 | |
| whiteknight | I meant that like the PIR syntax. Sorry about the confusion | ||
|
13:52
nbrown joined
|
|||
| dalek | : 9e9b0b6 | (kj, kjs)++ | m1_gencode.c: hello world now works; compile with m1, assemble and run with m0. yay. |
13:56 | |
| JimmyZ | kjs++ | 13:57 | |
| tadzik | niice | 13:58 | |
| dalek | : 20d17c0 | (kj, kjs)++ | hello.m1: add hello.m1 as example for lazy people |
13:59 | |
| JimmyZ | congratulations, a new language! m1 is born. | 14:05 | |
| kjs | JimmyZ: weren't you invovled in M0? | 14:09 | |
| JimmyZ | kjs: yeah, but didn't do much | 14:11 | |
| kjs | you want to step up one level? :-) | ||
| JimmyZ | just interesting | 14:13 | |
| kjs | it's easy to contribute ;-) | ||
| JimmyZ | \\o, just build a m1 | 14:17 | |
| kjs | yay :-) | 14:18 | |
| you're the first customer! | |||
| JimmyZ | yep | 14:20 | |
| kjs | I'll write a proper README and HOW TO HELP document soon | ||
| meanwhile, if you're interested in hacking, let me know. A few things are not too difficult but need fixing. | 14:21 | ||
| JimmyZ | will do, though I'm not sure now | 14:22 | |
| brrt | note to self: wrong file signature specifications means segmentation faults] | 14:33 | |
| whiteknight | brrt: Yeah, therein lies the problem | 14:34 | |
| brrt | s/file/method | 14:38 | |
|
14:41
mtk joined
|
|||
| Coke | whiteknight: is wanting DESCRIPTIONs a ticket, or a wiki wishlist? | 14:41 | |
| whiteknight | Coke: I don't know. We have a TODO'd codetest for it which tells us we have 240+ files without that section | 14:42 | |
| and that number implies we aren't working towards fixing it, and might not be able to fix it with any reasonable effort | |||
| I mean, 240 files is a heck of a lot of effort for something that's just "nice to have" | 14:43 | ||
| cotto suspects the test might be bonkers with false positives and the real number may be lower | 14:44 | ||
| dalek | d_bart: 5f3e2cb | (Bart Wiegmans)++ | / (3 files): Can't write to stringhandle (and i don't know why) |
14:48 | |
| whiteknight | brrt: What's the output there? What error are you getting? | 14:49 | |
| dalek | p/toqast: 694648e | masak++ | / (2 files): [qast] implement while/until |
14:51 | |
| brrt | Cannot write to a filehandle not opened for write | 14:53 | |
| current instr.: 'main' pc 0 (bar.pir:11) | |||
|
14:55
dmalcolm joined,
contingencyplan joined
14:56
isBEKaml joined
|
|||
| brrt | where that line of the file is just 'say "hello, world" | 14:56 | |
| hmm, wait | 14:57 | ||
| ah, whats more | |||
| if I change the signature to PiSS and add the arguments "", "w" then it fails | 14:58 | ||
| isBEKaml | it's a pissed signature? | 14:59 | |
| hello, btw :) | 15:00 | ||
| whiteknight | try something stupid for the first argument, like "foo.txt" | ||
| I have to go back and look at stringhandle | |||
| good morning isBEKaml | |||
| brrt | in Parrot_io_parse_open_flags | ||
| is probably it | |||
| isBEKaml | whiteknight: cursed timezones! :D it's 2030 hrs here. :) | 15:01 | |
| brrt | (gdb is awesome btw) | ||
| isBEKaml | whiteknight: good mornin', whiteknight. | ||
| whiteknight | isBEKaml: no worries, it will be morning soon. Where do you live? | ||
| isBEKaml | whiteknight: India | ||
| whiteknight | isBEKaml: ah, nice. Where in india? We have a few contributors from there | 15:02 | |
| isBEKaml | whiteknight: down south. I have seen the CREDITS file. There were quite a few Indian names. :) | 15:03 | |
|
15:03
davidfetter joined
|
|||
| brrt | const INTVAL s = STRING_ord(interp, mode_str, i); | 15:03 | |
| is the line of evil | |||
| isBEKaml | whiteknight: that was so long ago when I was looking over my single (and only) contribution to rakudo. :) Btw, I'm from Chennai. | 15:04 | |
| whiteknight | isBEKaml: oh, nice. I don't think we have any others from Chennai | ||
| brrt: what's wrong there, is mode_str null? | 15:05 | ||
| isBEKaml | whiteknight: I just saw the chatlogs from y'day. If I were you, I wouldn't fret too much over language/familiarity issues. As long as we have competent folks to help newbies. | 15:06 | |
| erm, s/language/programming &/ | 15:07 | ||
| brrt | no, mode_str is a constant (unimported) char* | 15:08 | |
| it works when i pre-import the thing | |||
| isBEKaml | whiteknight: I may not be a data point, but I didn't have much difficulty navigating parrot source. | ||
| brrt: what does pre-import mean in C? | 15:09 | ||
| whiteknight | isBEKaml: that's good to hear. Some of the source is still a little messy, but much of it has been cleaned | ||
| brrt | that is to say, i import the string with Parrot_api_string_import_ascii() | 15:10 | |
| and pass that (instead of the raw char *) | |||
| in which case | |||
| the thing runs without a hitch | 15:11 | ||
| isBEKaml | brrt: Just a guess, isn't that defined somewhere via a header file? why not #include that header file? | ||
| brrt: if it's a const char*, that is. | |||
| whiteknight | brrt: good. We like no hitches | ||
| brrt: depending on what compiler you are using, you might be able to add a flag to catch those kinds of pointer differences and turn them into errors so the compiler can catch them for you | 15:12 | ||
| brrt | no, its defined in my sourcecode :-) when you call a function with a string literal, the type is a const char * | ||
| i'm using gcc | |||
| whiteknight | Parrot has a whole horde of flags for that purpose | ||
| brrt | also, Makefile is really intelligent about compiling | ||
| at least when you are using c | 15:13 | ||
| can you check the arguments to a varargs method? | |||
| whiteknight | not that I know of | 15:14 | |
|
15:14
benabik joined
|
|||
| isBEKaml | whiteknight: messy source code - is that part of your io_cleanup activity? | 15:15 | |
| benabik | ~~ | ||
| isBEKaml | hello, benabik. | ||
| benabik | o/ isBEKaml | ||
| brrt | its probably my own confusion, then | 15:16 | |
| alester | oooh hoooboy blogs.perl.org/users/rurban/2012/05...eased.html | ||
| whiteknight | isBEKaml: part of it. IO is poorly designed right now. | 15:18 | |
| isBEKaml | alester: wasn't address sanitizer originally from Google? | 15:19 | |
| whiteknight: ah, I see. | 15:20 | ||
| alester | isBEKaml: Yes, it is. | ||
| whiteknight | alester: rurban++ has already run it on Parrot a few times. There is one outstanding ticket related to it but otherwise I think we should be clean | ||
| alester | whiteknight: I know, but this makes me happy because asan seems to be bundled with LLVM, and I wasn't able to get the two to play together in the past. | 15:21 | |
| whiteknight | oh, okay | ||
| I actually had a lot of trouble last time I tried to use it on Parrot. I need to revisit | |||
|
15:22
lucian joined
15:50
kjs joined
15:57
jsut_ joined
|
|||
| dalek | : a2fe603 | (kj, kjs)++ | m1_instr.c: start with write_xxx functions for instructions. Easy to finish; easy to get started hacking on M1! Contributors welcome |
16:06 | |
| tadzik | that sounds tempting | ||
| dalek | d_bart: 2ceac18 | (Bart Wiegmans)++ | / (2 files): Read strings from StringHandle |
16:07 | |
| whiteknight | kjs++ # the salesman! | 16:14 | |
| benabik | What is mod_bart? | 16:17 | |
| whiteknight | it's brrt's current GSoC repo | 16:25 | |
| I think it's currently a testing platform to prep for mod_parrot | |||
|
16:26
crab2313 joined
|
|||
| benabik | cool | 16:33 | |
|
16:38
crab2313 joined
17:00
PacoAir joined
|
|||
| cotto | ~~ | 17:05 | |
| benabik | Hm. Awesome, my installed parrot is pre-4.4. Now I get to rebuild parrot, NQP, and Rakudo. That'll occupy my computer for a while. | 17:06 | |
| cotto | if you're cold, make -j will warm you up pretty quick | ||
| benabik | My build scripts all default to parallel. | ||
| I'm actually currently doing parallel git and Parrot tests. (The two of them in parallel both running tests in parallel.) My computer is getting a little laggy. | 17:07 | ||
| whiteknight | that will show your computer who's boss | 17:10 | |
| do this and this and this. ALL OF IT | 17:11 | ||
| benabik | It would be even better if I was at home and Time Machine kicked in. :-D | ||
| The biggest cause of lag on my MacBook Pro is disk I/O. The whole system bogs down if I have too much disk access going on. | |||
| I started running git tests on a ramdisk to ease the pressure quite a while ago. | 17:12 | ||
| Hm. That's new. Hanging in alarm.t | 17:16 | ||
| Well, new for me. | |||
| whiteknight | on master? | 17:17 | |
| benabik | Yes. | ||
| whiteknight | blah | ||
|
17:17
davidfetter joined
|
|||
| benabik | Hm. Just re-ran it without hanging. Must be timing sensitive. | 17:18 | |
|
17:19
estrabd joined
|
|||
| whiteknight | suboptimal | 17:19 | |
| benabik | Yeah, just ran the full test suite without problems. | 17:24 | |
| Just have been some timing glitch with running both parrot and git and whatever else was running. | 17:25 | ||
| whiteknight | I'm sure that test has a timeout somewhere, that I'm sure is set just high enough that it *shoudn't* be a problem | 17:26 | |
| benabik | Hm. Parrot didn't grab ICU. I wonder how that happened. | 17:36 | |
| Got it this time. | 17:37 | ||
| benabik sighs. | |||
| cotto | github.com/jashkenas/coffee-script...pile-to-JS | ||
| benabik | Huh. | 17:46 | |
| Compiling Rakudo: "/usr/local/include/parrot/4.4.0-devel/parrot/parrot.h:94:19: error: ffi.h: No such file or directory" | |||
| It seems to be spelled ffi/ffi.h on my machine... But why did rebuilding Parrot cause this to break? | 17:47 | ||
| "GMP version 5.0.5 is buggy with huge digit multiply - please upgrade" Upgrade to what? | 18:07 | ||
| What versions is this test _trying_ to warn about? | 18:12 | ||
| I _think_ it's trying to warn about GMP < 4.1.4 | 18:14 | ||
| This code, it does not do what you think it does. | 18:15 | ||
| Coke | benabik: did you rebuild parrot but not rakudo? | 18:19 | |
| benabik | Coke: That was me trying to rebuild rakudo after rebuilding parrot. I think my build script got goofed. | ||
| dalek | rrot: 2ec5d01 | benabik++ | t/pmc/bignum.t: Fix warning in t/pmc/bignum.t for GMP 5 This code was trying to warn about GMP prior to 4.1.4, but instead was warning about any version before x.1.4. I rearranged the logic to make the intent more clear and to not warn about GMP 5+. |
18:27 | |
|
18:29
kjs joined
|
|||
| benabik | Hm. bignum.t fails on my machine with --optimize | 18:32 | |
| whiteknight | blah | 18:41 | |
| benabik | test "35 - set overflow Integer" fails with "error:imcc:add_1_const:Integer overflow '9223372036854775808'" | 18:54 | |
| Ah. dukeleto also got the same error on Ubuntu - gh744 | 19:01 | ||
| Okay, after some sidetracking with optimize and bignum, I have Rakudo building again. Problem was with the build script. | 19:05 | ||
| whiteknight | fun | 19:06 | |
|
19:26
brrt joined
19:36
brrt left
|
|||
| dalek | : 404eae4 | (kj, kjs)++ | m1 (7 files): fixes for making it reentrant, and also trying to get funcalls working. Crashes M0 interp at moment. |
19:36 | |
| cotto | wheee | 19:39 | |
| kjs | ah. i found the problem | 19:40 | |
| constants need to be sorted | |||
| but then funcalls work! woohoo | |||
| cotto | that's ... big | 19:41 | |
| kjs | (for documenting purposes on this IRC log: constants in the M0b format for M0 interpreter need to be sorted, from 0 to n. not random 3, 2, 0, 1.) | ||
| this is the easy part :-) assignments would be BIG. | |||
| cotto | actually the numbers are for documentation only | 19:42 | |
| kjs | m0 crashes on it, the C interp | ||
| apparently... | |||
| also it complained about memory being freed that wasnt allocated. I removed all calls to free() for the time being. | |||
| (in the m0 interp) | 19:43 | ||
| cotto: since there's no stack, the implementation of pointers may be a bit lame, as in, not possible for local variables. | 19:45 | ||
| cotto | are you implementing function calls in the same way as the poke_caller test? | 19:47 | |
| kjs | i looked at m0_chunk_test something | ||
| cotto | (I should actually rewrite that now that register names are implemented) | ||
| kjs | in the t/ folder | ||
| aloha ,nopast? | 19:48 | ||
| aloha | kjs: Dunno. | ||
| kjs | aloha, nopaste? | ||
| aloha | kjs: nopaste is is nopaste.snit.ch (works with the script in $_PARROT/tools/dev/nopaste.pl) | ||
| nopaste | "kjs" at 89.101.178.50 pasted "generated code (and manually reordered constants) from M1 compiler" (41 lines) at nopaste.snit.ch/142391 | 19:49 | |
| cotto | goto_chunk? | ||
| kjs | yes | ||
| the generated code is kind of awful, as there's no reuse of numbers, but i guess that can be fixed later. | 19:50 | ||
| cotto | it's exciting to see this taking shape | 19:51 | |
| kjs++ | |||
| kjs | cotto: I have some doubts about keeping M0 so minimal. whenever you need a number, it needs a "load" (set_imm) op before you can use it. | 19:52 | |
| I hope you know what you're doing :-) | 19:53 | ||
| cotto | Ideas for improvements are welcome. | 19:54 | |
| kjs | probably better to optimize later. | 19:55 | |
| cotto: do you know how to /return/ from a function? | 19:56 | ||
| do you need to do a goto_chunk and then use the offset of where you left off? | |||
| cotto | that's what RETPC is for | 19:57 | |
| I think that poke_caller is the only test that makes use of it | |||
| kjs | ah i hadn't looked at that one yet. | 19:58 | |
| cotto | it's fun | ||
| kjs | ... :-) | ||
| that's a lot of code. | |||
| cotto | I think there are more bytes of comment than code. | ||
|
20:00
benabik joined
|
|||
| kjs | cotto: I think it would be quite useful to develop this idea of a vm implemented on a mini-vm depth-first. In other words, if the goal is to be easy JIT-able, then it would be good to do that and look at performance | 20:04 | |
| benabik | ~~ | 20:11 | |
| cotto | kjs, the issue with that is that someone has to write the jit | 20:12 | |
| hi benabik | 20:13 | ||
| benabik, how goes the gsoccing? | |||
| kjs | yes :-) perhaps llvm could be a target. i don't know. but before going this route too far, it might be wise to proof the concept. | 20:16 | |
| cotto | something relatively simple like libjit or gnu lightning wouldn't be a bad place to start | 20:17 | |
| I'm starting to like the idea of having a libjit-based C m0 interp for experimenting. | 20:22 | ||
| we have enough tests to shake out basic bugs pretty quickly | |||
| whiteknight | JITing individual functions is a good start. A "real" JIT will probably do more complicated tracing but getting the basics in place to learn from is good | 20:23 | |
| kjs | I'll try to clean up most of M1,sanitize a bit, so that once my availability goes down, it's still usable. | 20:25 | |
| whiteknight | kjs++ | 20:26 | |
| cotto | kjs++ | ||
| dalek | kudo/nom: 3aba24b | masak++ | src/Perl6/Compiler.nqp: [Perl6::Compiler] add --help line about --optimize tadzik++, cognominal++, for discovering that it was missing, and what it should be, respectively. |
20:27 | |
| kjs | $REALLIFE's calling. good evening. | ||
| whiteknight | ditto. Later | ||
| dalek | kudo/nom: 5e7559a | masak++ | src/core/Match.pm: [src/core/Match.pm] changed <> to q[] in .gist Suggested by pmichaud++. It may or may not be worth it to also escape all ']' in the matched text itself. |
20:28 | |
| kudo/nom: 7f40758 | masak++ | src/core/Match.pm: [src/core/Match.pm] removed root-level '=> ' |
|||
| kudo/nom: 038718f | masak++ | docs/ChangeLog: [docs/ChangeLog] mention Match.gist |
20:29 | ||
| benabik | cotto: Starting to dig in into whiteknight++'s changes to Key | 20:31 | |
|
20:42
bluescreen joined
|
|||
| dalek | kudo/nom: 558fd04 | duff++ | src/Perl6/Actions.pm: Make statement into a closure for map |
21:14 | |
|
21:18
kurahaupo joined
21:28
lucian joined
|
|||
| benabik | The Key code is horrendous. Key.get_string calls Parrot_key_string, which if it's a PMC Key called Key.get_string. | 21:32 | |
| Granted, raw PMC keys don't work in several places. But that's pretty bad. | 21:33 | ||
|
21:38
alester joined
21:40
schmooster joined
21:48
whiteknight joined
21:49
kjs joined
|
|||
| cotto | benabik, I have to be careful when tracing that code so I don't end up going in an infinite loop | 22:10 | |
| dalek | : d269c61 | (kj, kjs)++ | m1 (3 files): pass compiler as first arg. |
22:18 | |
| whiteknight | good evening, #parrot | 22:19 | |
| kjs is building libjit... | 22:24 | ||
|
22:40
kjs_ joined
22:56
lucian joined
|
|||
| dalek | : f667aad | (kj, kjs)++ | m1_ (2 files): attempt at unary - and not operator gencode. ugh. |
23:02 | |
|
23:06
Khisanth joined
23:10
kid51 joined
|
|||
| whiteknight | blah, the io buffering code is worse than I thought | 23:36 | |
| instead of using a nice circular buffer, it's doing memcpy | |||
| and all the GETATTR accesses are not any better | |||