Camelia, the Perl 6 bug

IRC log for #parrot, 2012-05-16

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:40 darbelo joined #parrot
00:41 whiteknight That's all I've got in me tonight. I'm going to have to upload the docs later
01:12 cotto ~~
01:26 ttbot Parrot 210ad264 MSWin32-x86-multi-thread make error http://tt.taptinder.org/cmdinfo/85311
01:31 dalek parrot/threads: 1283a07 | Whiteknight++ | / (2 files):
01:31 dalek parrot/threads: Initialize interp->sleep_cond, interp->sleep_mutex and interp->wake_up when we create the initial non-thread interp
01:31 dalek parrot/threads: review: https://github.com/parrot/parrot/commit/1283a07d4f
01:32 benabik joined #parrot
01:48 kurahaupo joined #parrot
01:48 benabik ... Banana Fanna Fo Ferret?
01:50 kid51 http://en.wikipedia.org/wiki/The_Name_Game
01:51 benabik Well, yes.
01:53 whiteknight Parrot Parrot bo barret, banana fanna fo ferret
02:14 adu joined #parrot
02:14 adu Banana Fanna Fo Ferret?
02:15 benabik Me mi mo marret.
02:21 kurahaupo joined #parrot
02:28 darbelo joined #parrot
03:01 nbrown joined #parrot
03:03 nbrown cotto: hey, I haven't had much time for parrot recently and might not for another week or so, but I wanted to pass along my db ideas. Checkout: https://gist.github.com/2706968
03:07 adu joined #parrot
03:16 bacek_at_work joined #parrot
03:16 aloha joined #parrot
04:17 darbelo joined #parrot
04:49 dalek nqp: b6d1a40 | moritz++ | tools/build/PARROT_REVISION:
04:49 dalek nqp: bump parrot version to 4.4.0
04:49 dalek nqp: review: https://github.com/perl6/nqp/commit/b6d1a40dc4
05:43 alin joined #parrot
05:49 particle joined #parrot
05:54 adu joined #parrot
06:02 cotto ~~
06:05 darbelo joined #parrot
06:34 fperrad joined #parrot
07:03 brrt joined #parrot
07:09 wagle joined #parrot
07:40 lucian joined #parrot
07:53 darbelo joined #parrot
08:07 kjs joined #parrot
08:30 lucian joined #parrot
09:22 bacek_at_work joined #parrot
09:35 particle1 joined #parrot
09:42 darbelo joined #parrot
10:10 brrt nice, parrot/api.h has changed between releases
10:12 alin joined #parrot
10:13 brrt ever so slightly, but still :-)
10:55 brambles joined #parrot
11:05 bacek joined #parrot
11:07 JimmyZ joined #parrot
11:22 schmooster joined #parrot
11:22 JimmyZ_ joined #parrot
11:28 JimmyZ_ joined #parrot
11:30 dalek rakudo/world-rethrow: c663f0f | moritz++ | src/ (2 files):
11:30 dalek rakudo/world-rethrow: provide file and line number for method redeclaration errors
11:30 dalek rakudo/world-rethrow: review: https://github.com/rakudo/rakudo/commit/c663f0fa34
11:30 darbelo joined #parrot
11:44 JimmyZ_ joined #parrot
11:52 JimmyZ_ joined #parrot
11:59 brrt oh, you know the thing about the example where you invoke a sub from parrot_api?
11:59 brrt not possible
11:59 brrt that is..
12:01 whiteknight joined #parrot
12:03 moritz brrt: just yesterday I managed to invoke a Perl 6 function from C
12:03 moritz with Parrot_pcc_invoke_from_c_args
12:03 moritz that doesn't quite make me an expert, but confident that it's possible... even if not with the example from parrot_api :-)
12:04 brrt oh, fairly sure it is possible :-) but i kind of try to use parrot_api_* frunctions only
12:05 brrt s/fr/f/
12:05 moritz I'm not sure, but I don't think you'll get very far with that
12:07 JimmyZ joined #parrot
12:08 moritz can you even invoke VTABLEs with them?
12:13 brrt actually
12:13 brrt you can load a bytecode file
12:13 brrt which you can use as an object
12:13 brrt to find a method
12:14 brrt which is a pmc
12:14 brrt and then, you can invoke that pmc
12:14 brrt only thing i have to do is create a signature pmc
12:15 bacek brrt, try Parrot_ext_call instead
12:16 brrt no no, not the point :-)
12:16 moritz is the point to demonstrate how fiddly Parrot_api is for that kind of task? :-)
12:16 brrt the point is, using only parrot_api_* calls, can i load a bytecode file, and invoke a method
12:17 brrt https://github.com/parrot/parrot​/blob/master/docs/embed_new.pod, last 'example'
12:17 brrt where it says 'todo'
12:17 schmooster joined #parrot
12:20 brrt good lord, this is going to be verbose
12:24 brrt what is the name of the signature class?
12:25 JimmyZ joined #parrot
12:25 moritz do you mean CallSignature?
12:26 moritz uhm, I wonder if that still exists
12:26 brrt :-) nice
12:26 moritz ack only finds 5 references to CallSignature in the parrot tree
12:27 moritz though what the section "Function signatures" talks about is simply a C string
12:28 brrt i'll check out the Parrot_api_pmc_invoke function then
12:32 whiteknight Parrot_api_ embedding API is specifically limited. It's designed to get you into executable bytecode quickly
12:33 whiteknight you aren't supposed to be calling lots of vtables from Parrot_api_ functions. You're supposed to call them from bytecode
12:33 whiteknight Also, you can't mix internal and external functions. If you are in an embedding situation you MAY NOT call things like Parrot_ext_call or Parrot_pcc_invoke_*
12:34 whiteknight You'll break the stack and crash the program
12:35 whiteknight If you're embedding, you may only use Parrot_api_* functions. The consolation is that we can add new functions to that API if needed
12:37 whiteknight brrt: if you need an example of how to set up a call with Parrot_api_pmc_invoke, I can probably find one
12:39 brrt whiteknight, i'd like such an example
12:39 brrt also, Parrot_api_pmc_get_class, doesn't work as i would-have-expected
12:40 brrt that, or, you can't get a class from a string
12:48 whiteknight Classes in Parrot are supposed to be accessed by an array of names, not just a string name.
12:48 whiteknight so class "Foo" should be accessed by array ["Foo"]
12:49 whiteknight the key argument in Parrot_api_pmc_get_class should be a string array. You can build one of those from a C char** with Parrot_api_pmc_wrap_string_array
12:51 whiteknight actually, that may be wrong. It does look like Parrot_api_pmc_get_class can indeed take a normal String PMC too
12:51 whiteknight https://github.com/parrot/parrot/b​lob/master/t/src/embed/pmc.t#L253
12:52 whiteknight That's a test that does exactly what you're asking for: Creates a CallContext pmc with arguments and a signature, and then calls Parrot_api_pmc_invoke
12:52 benabik joined #parrot
12:52 whiteknight You're going to need to understand signature strings for that example
12:52 whiteknight upper-case letters are the types, lower-case letters are the modifiers, and -> separates arguments from returns
12:53 PacoAir joined #parrot
12:53 whiteknight Pi is the invocant for a method call. S is STRING, N is FLOATVAL, I is INTVAL
12:54 whiteknight so if you want a method that takes three numbers and returns three integers, the signature would be PiNNN->III
12:54 brrt oh, i see
12:54 brrt wow, that is verbose
12:54 moritz it's C :-)
12:55 whiteknight If you come up with some common use-cases that can be encapsulated behind a smaller set of helper methods, let me know
12:56 whiteknight Looking at this test code, an API call that creates a CallContext with a char* signature instead of having to wrap the STRING first might be helpful
12:56 brrt that was pretty much what i was thinking
12:56 brrt you could even create one using va_args
12:57 crab2313 joined #parrot
12:57 schmooster joined #parrot
12:57 brrt Parrot_api_pmc_create_signature(Parrot_PMC interp, Parrot_String signature, *Parrot_PMC signature_pmc, ...);
12:58 brrt the amount of arguments can be deduced from the signature
12:58 brrt does Pi means PMC invocant?
12:58 whiteknight yes
12:59 brrt could be argued both ways whether to default to imported strings for the arguments
12:59 whiteknight va_list doesn't play well with our call-in and call-out macros, but I can see if I can find something that is more convenient and still works
12:59 JimmyZ_ joined #parrot
13:00 brrt ok cool :-)
13:02 whiteknight how about Parrot_api_pmc_new_signature(interp, &cc), Parrot_api_pmc_setup_signature(interp, cc, char*sig, ...)
13:05 brrt good enough for me
13:05 brrt va_list can work, then?
13:06 whiteknight I will have to test it
13:06 Psyche^ joined #parrot
13:13 JimmyZ joined #parrot
13:17 benabik joined #parrot
13:18 brrt yay, no segfaults
13:18 darbelo joined #parrot
13:19 crab2313 joined #parrot
13:20 crab2313 left #parrot
13:22 crab2313 joined #parrot
13:31 dalek rakudo/lazy: 18f9e41 | moritz++ | / (5 files):
13:31 dalek rakudo/lazy: first shot at "lazy" statement prefix
13:31 dalek rakudo/lazy: review: https://github.com/rakudo/rakudo/commit/18f9e41073
13:38 schmooster joined #parrot
13:53 brrt hmmpf
13:56 dalek rakudo/lazy: e1b8b12 | moritz++ | / (3 files):
13:56 dalek rakudo/lazy: smally cleanups for "lazy"
13:56 dalek rakudo/lazy:
13:56 dalek rakudo/lazy: * do not evaluate the thunk when LazyScalar is being assigned to
13:56 dalek rakudo/lazy: * update ChangeLog
13:56 dalek rakudo/lazy: * run tests
13:56 dalek rakudo/lazy: review: https://github.com/rakudo/rakudo/commit/e1b8b1292e
13:58 brrt fun, i seem to be able to create a signature object using va_list
13:59 brrt but actually invoking my method fails
13:59 whiteknight what api are you calling for that?
13:59 brrt two functions i wrote
13:59 brrt i'll push the whole thing to github, you can inspect it there
14:03 brrt https://github.com/bdw/mod_bart
14:03 brrt https://github.com/bdw/mod_ba​rt/blob/master/parrot-test.c
14:03 whiteknight okay
14:04 brrt efficient it is not
14:05 whiteknight what happens when you try to call the method?
14:05 brrt nothing
14:05 brrt :-)
14:05 whiteknight you end up in that little "Oh noes!" block?
14:05 brrt it fails
14:05 brrt yes
14:06 brrt foo.pbc is generated from foo.winxed
14:06 whiteknight https://github.com/parrot/parrot/blob​/master/frontend/parrot2/main.c#L214
14:06 whiteknight Copy that function from the Parrot frontend to get an exception message and backtrace
14:07 whiteknight if any API functions return a 0, that means there was an unhandled exception, so you can always get information in those cases
14:08 JimmyZ joined #parrot
14:08 whiteknight oh, I see the problem. You're searching for a method foo on the PackfileView PMC. That will return null
14:09 whiteknight functions defined in the packfile are not methods on the packfile
14:11 whiteknight or, it will return PMCNULL
14:11 brrt ah, i see
14:12 whiteknight PMCNULL is a lot like NULL but if you try to use it you get an exception instead of a segfault
14:13 whiteknight I don't know if there's a good way to just get a plain function by name from the packfile. We have routines to get the :main sub, to get subs by tag, and to get methods from objects
14:14 brrt oooo.... nasty
14:14 brrt indeed i get that error
14:15 whiteknight write up a wishlist of any API functions you wish you had. I'll add them tonight
14:15 whiteknight or, if you are feeling adventurous, you can try to add them yourself. Make a branch and open a pull request
14:16 dalek rakudo/nom: 18f9e41 | moritz++ | / (5 files):
14:16 dalek rakudo/nom: first shot at "lazy" statement prefix
14:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/18f9e41073
14:16 dalek rakudo/nom: e1b8b12 | moritz++ | / (3 files):
14:16 dalek rakudo/nom: smally cleanups for "lazy"
14:16 dalek rakudo/nom:
14:16 dalek rakudo/nom: * do not evaluate the thunk when LazyScalar is being assigned to
14:16 brrt i'll do the first, at leat
14:16 dalek rakudo/nom: * update ChangeLog
14:16 dalek rakudo/nom: * run tests
14:16 brrt :-)
14:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e1b8b1292e
14:16 dalek rakudo/nom: a6515f0 | moritz++ | / (7 files):
14:16 dalek rakudo/nom: Merge branch 'lazy' into nom
14:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a6515f02fb
14:16 brrt but, afaik, Parrot_api_pmc_new_signature works, and Parrot_api_setup_signature as well
14:16 brrt which is awesome
14:18 brrt Parrot_api_bytecode_get_sub()
14:18 whiteknight yes, very good job with those
14:18 schmooster joined #parrot
14:18 brrt although i'm thinking about it a bit
14:19 brrt what about making the packfile api - as far as there is one - public?
14:19 brrt or parts of it?
14:19 whiteknight brrt: It is. There are methods on the packfile PMC you can find and invoke
14:20 whiteknight https://github.com/parrot/parrot/bl​ob/master/src/pmc/packfileview.pmc
14:20 brrt oh, right
14:20 whiteknight search for METHOD
14:20 whiteknight We can add more methods there too, if you need more
14:20 whiteknight Or, if you are calling some of those often and want an easier way, we can add a helper to the embedding API to do it
14:20 whiteknight Like I said, give me a wishlist
14:21 whiteknight (The APIs we do have are optimized for the few tasks we use them for. More users means more use-cases and more APIs are needed)
14:21 brrt will do
14:22 whiteknight brrt++
14:33 dalek nqp: 7df35de | duff++ | src/QRegex/P6Regex/ (2 files):
14:33 dalek nqp: Remove **<sep>
14:33 dalek nqp: review: https://github.com/perl6/nqp/commit/7df35de3e6
14:38 darbelo joined #parrot
14:46 dalek nqp: ee757db | duff++ | t/qregex/rx_quantifiers:
14:46 dalek nqp: Remove regex tests for **<sep>
14:46 dalek nqp: review: https://github.com/perl6/nqp/commit/ee757db8a9
14:48 dalek nqp: 3196005 | moritz++ | t/qregex/rx_modifiers:
14:48 dalek nqp: untodo passing qregex tests
14:48 dalek nqp: review: https://github.com/perl6/nqp/commit/3196005b69
15:04 crab2313 joined #parrot
15:13 dmalcolm joined #parrot
15:23 benabik joined #parrot
15:32 davidfetter joined #parrot
16:00 kurahaupo joined #parrot
16:00 alin joined #parrot
16:08 brrt left #parrot
16:46 PacoAir joined #parrot
16:53 Infinoid joined #parrot
16:53 jlaire joined #parrot
16:53 ttbot joined #parrot
16:53 sri joined #parrot
16:53 pmichaud_ joined #parrot
16:53 Coke joined #parrot
16:53 dalek joined #parrot
16:53 PerlJam joined #parrot
16:53 alvis joined #parrot
16:53 awwaiid joined #parrot
16:53 aloha joined #parrot
16:53 crab2313 joined #parrot
16:53 masak joined #parrot
16:53 cosimo joined #parrot
16:53 Maddingue joined #parrot
16:53 simcop2387 joined #parrot
16:53 jevin joined #parrot
16:53 mj41 joined #parrot
16:53 kurahaupo joined #parrot
16:53 dmalcolm joined #parrot
16:53 darbelo joined #parrot
16:53 Patterner joined #parrot
16:53 autark joined #parrot
16:53 contingencyplan joined #parrot
16:53 perlite joined #parrot
16:53 preflex joined #parrot
16:53 mtk joined #parrot
16:53 jtpalmer joined #parrot
16:53 nopaste joined #parrot
16:53 TonyC joined #parrot
16:53 Hunger joined #parrot
16:53 pjcj joined #parrot
16:53 cotto joined #parrot
16:53 tadzik joined #parrot
16:53 szbalint joined #parrot
16:53 cxreg joined #parrot
16:53 Timbus joined #parrot
16:53 knewt joined #parrot
16:53 wendar joined #parrot
16:53 Util joined #parrot
16:53 NotFound joined #parrot
16:53 Kovensky joined #parrot
16:53 rblackwe joined #parrot
16:54 benabik joined #parrot
16:54 schmooster joined #parrot
16:54 particle1 joined #parrot
16:54 wagle joined #parrot
16:54 arnsholt joined #parrot
16:54 Tene joined #parrot
16:54 dngor joined #parrot
16:54 smash joined #parrot
16:54 jsut joined #parrot
16:54 atrodo joined #parrot
16:54 GeJ joined #parrot
16:54 sorear joined #parrot
16:54 elmex joined #parrot
16:54 nine joined #parrot
17:02 smash hello everyone
17:02 tadzik hello smash
17:02 whiteknight joined #parrot
17:03 whiteknight good afternoon, #parrot
17:03 cotto ~~
17:03 whiteknight hello cotto
17:03 cotto hi whiteknight
17:06 whiteknight I've still got to get the docs online from the release, but otherwise it went smoothly as always
17:07 whiteknight I didn't use the auto_release.pl script. I don't know who made that
17:09 moritz git log or blame will tell you
17:09 whiteknight yeah, I just haven't looked at it yet
17:11 moritz rakudo seems to spectest fine with the release. whiteknight++
17:11 whiteknight thanks! I ran it a few days ago, so I'm glad nothing broke leading up to the release
17:11 whiteknight I'm going to be doing a lot of rakudo building and testing with some of the branches planned for merging
17:26 brrt joined #parrot
17:39 janus joined #parrot
17:40 nine Good evening #parrot
17:41 lucian joined #parrot
17:45 whiteknight nine!
17:47 whiteknight actually, I'm reminded that I need to test my last threads fix on windows now
17:48 nine whiteknight: oh thanks for fixing my laziness bugs
17:48 whiteknight I don't know if I've fixed them yet. Testing now
17:49 whiteknight I run windows at work and have visual studio for the debugger, which I can use to test and do light debugging on parrot if I clock out. But I can't write code here, so I have to implement potential fixes at home
17:50 whiteknight ...and miniparrot still segfaults, apparently
17:51 nine sucks
17:51 dalek parrot/threads: 9ab1869 | nine++ | src/ (4 files):
17:51 dalek parrot/threads: Check the correct define for threading.
17:51 dalek parrot/threads:
17:51 dalek parrot/threads: s/HAS_THREADS/PARROT_HAS_THREADS/
17:51 dalek parrot/threads: review: https://github.com/parrot/parrot/commit/9ab186998c
17:51 dalek parrot/threads: 627974b | nine++ | t/src/threads_io.t:
17:51 dalek parrot/threads: Activate t/src/threads_io.t on a threaded Parrot
17:51 dalek parrot/threads: review: https://github.com/parrot/parrot/commit/627974b16d
17:51 dalek parrot/threads: 8f480e3 | nine++ | / (234 files):
17:51 dalek parrot/threads: Merge branch 'threads' of github.com:parrot/parrot into threads
17:51 dalek parrot/threads: review: https://github.com/parrot/parrot/commit/8f480e3392
17:51 dalek parrot/threads: b4e9ae4 | nine++ | t/src/threads_io.t:
17:51 dalek parrot/threads: Fix threads_io.t not finding Parrot::Config
17:51 dalek parrot/threads: review: https://github.com/parrot/parrot/commit/b4e9ae4355
17:52 nine The HAS_THREADS/PARROT_HAS_THREADS is kinda brown paper bagish... it disabled threads everywhere and I didn't notice at first because everything works too well without them...
17:52 isBEKaml joined #parrot
17:53 isBEKaml Oh, hey - name games all! plumage, rosella, winxed and now Banna foo! :)
17:54 * isBEKaml can't spell
18:00 whiteknight nine.... Yeah, it looks like if I remove that #ifdef HAS_THREADS I added to src/interp/api.c miniparrot runs without segfaulting
18:01 whiteknight apparently HAS_THREADS is false there
18:01 whiteknight and it built fine
18:01 nine Yep it's actually PARROT_HAS_THREADS. No idea where I had the wrong one from
18:02 whiteknight isBEKaml! Welcome back
18:03 isBEKaml whiteknight: hey... :) I'm just loitering around..
18:04 isBEKaml can someone confirm that this is the last push/commit to parrot master? d6dfa2?
18:04 whiteknight nine; something is broken though. chameneos.pir seems to hang. moretasks.pir gets up to 244 and hangs
18:04 isBEKaml my git pull didn't pick anything
18:05 nine whiteknight: does it hang without CPU usage?
18:05 whiteknight isBEKaml: should have had one more commit after that
18:06 whiteknight nine: no, it looks like it's pegging one of my corese
18:06 whiteknight no, not pegging, but it's at 25% CPU
18:08 isBEKaml whiteknight: ah, okay
18:10 nine whiteknight: chameneos does only print something on start and exit. But it should exit after 10 seconds. If not, there could be something wrong with timers.
18:11 rich joined #parrot
18:12 whiteknight nine: yeah, it hung for almost a minute before I Ctrl+C'd it
18:13 nine I wonder if it could just be that exit() on Windows does not exit if other threads are still running
18:13 whiteknight is that what you are using to terminate threads?
18:14 nine I do not terminate them explicitely. It just happens to work anyway so this might really be Linux specific behaviour.
18:15 nine whiteknight: did chameneos print some number before hanging?
18:16 whiteknight no
18:16 whiteknight said going to sleep, and was gone forever
18:16 nine Then there must be some other problem as well.
18:17 nine It should print the number of successful exchanges before trying to exit
18:21 nine Just finished implementing a Mandelbrot generator benchmark in winxed. The threaded version shows a 3x speedup on a quad core CPU compared to a single threaded implementation.
18:22 whiteknight thats pretty good
18:26 nine It scales even better than my implementation using the Task Parallel Library on Mono. Of course the absolute runtime is an order of magnitude longer...
18:27 nine Have to go now. Bye.
18:28 dalek rakudo/nom: 2b96819 | moritz++ | / (2 files):
18:28 dalek rakudo/nom: rename "lazy" to "LAZY" to avoid confusion with lazy lists
18:28 dalek rakudo/nom:
18:28 dalek rakudo/nom: this might not be the final name either
18:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2b96819319
18:30 mj41 whiteknight: Hi. Trying to fix ttbot/taptinder's machine 8 (no free space on device). Please ping me next time when ttbot do bad things.
18:30 whiteknight mj41: sure thing
18:32 bluescreen joined #parrot
18:45 dalek rakudo/nom: b390e8b | moritz++ | src/Perl6/Actions.pm:
18:45 dalek rakudo/nom: [LAZY] fix the name in the actions too
18:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b390e8b9f6
18:54 alester joined #parrot
19:11 mdupont joined #parrot
19:25 kjs joined #parrot
19:26 lucian joined #parrot
20:06 brrt joined #parrot
20:18 preflex_ joined #parrot
20:47 dalek rakudo/method-not-found: 65f9d95 | moritz++ | src/core/Exception.pm:
20:47 dalek rakudo/method-not-found: avoid some boxing in print_control
20:47 dalek rakudo/method-not-found: review: https://github.com/rakudo/rakudo/commit/65f9d95d53
20:47 dalek rakudo/method-not-found: 8254a60 | moritz++ | src/core/Exception.pm:
20:47 dalek rakudo/method-not-found: typed exception for "method not found" error
20:47 dalek rakudo/method-not-found: review: https://github.com/rakudo/rakudo/commit/8254a6008e
20:50 brrt yay, submitted gsoc documents
21:09 lucian joined #parrot
21:20 brrt left #parrot
21:26 dalek winxed: 8a44172 | NotFound++ | winxedst2.winxed:
21:26 dalek winxed: fix and simplify a bit CallBuiltinExpr.emit
21:26 dalek winxed: Pass the owner to expand instead of self
21:26 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/8a44172723
21:51 dalek nqp: 45ed99f | (Gerhard R)++ | 3rdparty/dyncall/GNUmakefile:
21:51 dalek nqp: fixes #38
21:51 dalek nqp:
21:51 dalek nqp: use explicit -Wno-strict-prototypes instead of -w, which is ignored by gcc 4.2
21:51 dalek nqp: only necessary on OS X, which comes with a broken version of GNU make
21:51 dalek nqp: review: https://github.com/perl6/nqp/commit/45ed99fd0e
22:08 mdupont joined #parrot
22:17 kjs joined #parrot
22:26 bluescreen joined #parrot
22:51 whiteknight joined #parrot
22:53 whiteknight good afternoon, #parrot
22:59 kjs good evening
23:00 whiteknight hello kjs! Good to see you around here again
23:01 kjs hi whiteknight! thanks :-)
23:01 kjs how are things
23:02 dalek parrot/threads: 03e14e3 | Whiteknight++ | src/interp/api.c:
23:02 dalek parrot/threads: Change HAS_THREADS to the correct PARROT_HAS_THREADS. this enables threaded parrot to build on win32
23:02 dalek parrot/threads: review: https://github.com/parrot/parrot/commit/03e14e310b
23:02 whiteknight things are going pretty well, I think. Release out the door last night, GSOC officially starting on monday. Lots of branches to merge
23:03 kjs ah yes i saw the mail. well done
23:03 kjs i'm interested in this m0/lorito design.
23:04 kjs basically, if i understand correctly, the idea is to reimplement parrot instruction in a c-like language which has parrot calling conventions, rather than c calling conv...
23:04 whiteknight cotto is leading the charge on that
23:05 kjs i spoke to him briefly yday
23:05 whiteknight basically, it's a much simpler opcode set which is designed with ease of JIT in mind
23:06 kjs yes, that would be m0. but you dont want to write m0, you'd want to write m1, a HLL that emits m0, right?
23:06 whiteknight exactly
23:07 kjs ... which is an excellent opportunity to subset C, with only that part of the grammar that's useful and "safe"
23:07 kjs (and also build in parrot's coding conventions)
23:07 whiteknight yes
23:09 cotto not quite a subset of C, but something that'll be very easy for C hackers to pick up
23:09 cotto (yet unspecified)
23:10 kjs I'd say it'd be a good idea to forbid those things that are too complex and error prone
23:10 whiteknight what we need is awesome compiler-developers to work on it...
23:10 kjs ha ha whiteknight ...
23:10 kjs i'm good at parsers, not so sure about the rest.
23:16 kjs ok let me get this straight (I've read chromatic's blog post that outlined the problem with the current C/PIR interactions).
23:16 kjs the plan is to write parrot (or parts of it) in some language m1, which outputs m0, which is interpreted by an interp written in C.
23:17 kjs m1 being the HLL, m0 being the 50-op assembly language that 's the language of the C interp mentioned above.
23:17 kjs this interp takes care of the parrot calling conventions
23:17 kjs is this more or less correct?
23:18 nbrown joined #parrot
23:23 cotto that sounds about right
23:25 kjs so let's say for sake of argument, there would be a little language, C-like, that emits m0, and someone else would implement the m0 assembly language, incl the handing of the PCC, you'd be 80% there.
23:26 cotto that's the idea, yes
23:26 * Coke ~~ @ kjs
23:35 whiteknight the nqp build failed for me with -j, but works without it
23:36 cotto nqp's parallel build is odd
23:36 cotto or has been historically
23:36 whiteknight okay, so long as I'm not the only one seeing it
23:52 aloha joined #parrot
23:53 bacek_at_work joined #parrot

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced