|
Parrot 3.1.0 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Goals: Get GSoC ideas on wiki. Merge/review tewk/select. Evaluate attribute_defs, rip out in branch Set by moderator on 1 March 2011. |
|||
|
00:04
bubaflub joined
|
|||
| bubaflub | evening, #parrot | 00:04 | |
| davidfetter | oh hai | 00:05 | |
| whiteknight | plobsing: ping | 00:12 | |
| plobsing | whiteknight: pong | 00:13 | |
| whiteknight | plobsing: I'm writing up a that new API function to wrap an external pointer. I'm going to take an optional size. If a size is provided I should use a PtrBuf, otherwise a Ptr? | 00:14 | |
| plobsing | yes, that is the intended usage | 00:15 | |
| whiteknight | okay, also would it make sense to have an init_int on PtrBuf? | ||
| plobsing | init_int is already used by Ptr to init with pointer | ||
| whiteknight | oh, okay | 00:16 | |
| plobsing | there is another way to see this though | ||
| PtrBuf, when not provided with a size, will act just like a Ptr (but more memory-costly) | 00:17 | ||
| so from a certain consistency perspective, you may want to always return a PtrBuf | |||
| not sure if that is an important concern | 00:18 | ||
| whiteknight | it isn't | 00:20 | |
| basically, I want to give an embedder a way to pass an opaque pointer into Parrot, in a way that it can be retrieved but without Parrot trying to mess with it or do things with it that it shouldn't | 00:21 | ||
| plobsing | then what you've described is exactly what should be done | 00:22 | |
| whiteknight | okay | 00:23 | |
| What's the NCI signature to pass the get_pointer value from a PMC? v? | 00:24 | ||
| p? | |||
| plobsing | p | ||
| whiteknight | okay. and default.get_pointer returns SELF, which is why shockwave was able to use that for his one use | 00:25 | |
| plobsing | yes, it will "work". in the "doesn't obviously break" sense. not in the "actually works" sense. | ||
| whiteknight | right | 00:32 | |
| cotto_work | Perhaps we need more obvious failure modes. | ||
| plobsing | the hidden failure is in a spurious "convenience" vtable on default.pmc | ||
| default shouldn't implement get_pointer | 00:33 | ||
| cotto_work | +1 | ||
| whiteknight | or should with a "You done failz" exception | ||
| default has to provide all vtables. It's the particular behavior that sucks | |||
| cotto_work | whiteknight: why does it have to? | 00:34 | |
| nm | |||
| It can "provide" in the sense of "throwing an exception" | |||
| plobsing | OK, default *does* implement all vtables. so rather, default should provide a non-default implementaiton | 00:35 | |
| pmc2c will provide default, throwing implementations | |||
| whiteknight | right. "return SELF" is probably not the right thing to do there | 00:36 | |
| "return NULL" is probably better | |||
| throw exception might be best | |||
| I shudder to think about all the awful places in Parrot that rely on the current behavior | |||
| cotto_work | Yeah. Turning over that rock will almost certainly reveal all kinds of ugly things. | 00:37 | |
| ttbot | Parrot 7338a80a i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/47640 | 00:54 | |
| whiteknight | plobsing: Can we add an NCI signature item to pass a ParrotInterpreter PMC instead of a raw Interp* like "J" does? | 00:56 | |
| plobsing | getinterp | 00:57 | |
| whiteknight | something like "j" could pass that PMC, which would be very good for embedders | ||
| getinterp? | |||
| plobsing | its an op | ||
| whiteknight | right, but how does that help inside an embedder's NCI callback? | ||
| oh, you're saying to use getinterp and pass it as P | |||
| plobsing | yes | ||
| whiteknight | gotcha. I'm overthinking his | 00:58 | |
| plobsing | exactly that | ||
| whiteknight | this | ||
| cotto_work | plobsing: is your preference for the Select PMC to have it live in core but as a dynpmc? | 01:01 | |
| plobsing | yes, that's a much more preferable situation | 01:02 | |
| cotto_work | plobsing: if you were writing it from scratch, how would you implement it? | 01:04 | |
| dynop, dynpmc, other | |||
| plobsing | I haven't used select or async stuff much, so I'm not sure I'm the best person to ask. | ||
| cotto_work | ok | ||
| plobsing | But I think this somewhat ties in with our threading debacle. | 01:05 | |
| cotto_work | me neither, which is why I ask | ||
| plobsing | I mean, we sort of have a scheduler for async-type stuff | ||
| and it would be great if it tied into that infrastructure (if it still works) | |||
| cotto_work | tewk: ping | ||
| plobsing | but this works *now* which is a pretty strong trump card | 01:06 | |
|
01:06
davidfetter left
|
|||
| cotto_work decommutes | 01:07 | ||
| whiteknight | The more I look at it, the more I think the scheduler, the threads, and all related infrastructure really needs to just get trashed and rewritten | 01:14 | |
| events, timers, all that crap | |||
| plobsing | whiteknight: well volunteered! | 01:15 | |
| whiteknight | trust me, I am volunteering | ||
| last time I volunteered to rip out threads, there was lukewarm reception at best | 01:16 | ||
| and the time before that was no better | |||
| plobsing | oh no. you don't get to do the ripping out. you get to do the rewritting. | 01:18 | |
| and then the rerewritting after the bikeshedding by armchair architects | |||
| whiteknight | blah | 01:21 | |
|
01:22
cognominal joined
|
|||
| plobsing reclines in armchair laughing maniacally | 01:23 | ||
|
01:25
kid51 joined
01:26
lucian_ left
01:30
shockwave joined
|
|||
| shockwave | whiteknight: Thanks for commiting those changes related to passing around void*'s. | 01:31 | |
| whiteknight | shockwave: no problem. It's a useful thing to have | ||
| tewk | cotto_work: pong | 01:32 | |
| kid51 | ~~ | ||
| shockwave | whiteknight: You mentioned that I can start using them right away. Which branch should I download? | ||
| whiteknight | master | ||
| kid51 | re Select: | 01:33 | |
| shockwave | Thanks | ||
| kid51 notes that in the not too distant past, we had a config step, auto::aio | |||
| But since nothing was making use of it, we junked it. | 01:34 | ||
| whiteknight | kid51: it is the circle of life | ||
| kid51 | which is part of why I want a coherent rationale presented for any additions to core in that area | 01:35 | |
| ... or, for that matter, in any other area | |||
| I hope we're past the stage of "It would be really cool if Parrot had X" | |||
| Any new features, I think we should ask: How does that make the performance of our HLL clients better? | 01:36 | ||
| (and, hopefully, have some HLL people concur) | |||
|
01:36
dalek joined
|
|||
| kid51 | dalek ping | 01:37 | |
| Hmm, I see we have a test file with no tests! | 01:38 | ||
| t/compilers/opsc/03-past-macros.t | |||
| plobsing | it is the ghost of macros past | 01:39 | |
| kid51 | actually, inspecting it, I see its the ghost of macro tests yet to come | ||
| plobsing | future-macros.t then? | ||
| cotto | tewk, do you mind making your Select PMC a dynpmc? | 01:40 | |
| kid51 | Unfortunately, the string 'past' is overloaded for us. | 01:41 | |
| plobsing | I guess the time for debating that has passed, but I still can't get past that. | 01:42 | |
|
01:42
ShaneC left
|
|||
| plobsing | kid51: do you have a verdict on infnan2? | 01:43 | |
| kid51 | I should have within 2 hours, but all signs are good. | ||
| I'm trying 4 different combinations on darwin/ppc | |||
| w/wout --optimize X cc=gcc vs cc=g++ | |||
| tewk | cotto: I'm not really interested in doing it, I don't mind if someone else does. | 01:44 | |
| dalek | rrot: 9af067f | bacek++ | / (2 files): Export PMC boxing functions |
||
| ttbot | Parrot 9af067f2 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/47774 | 01:45 | |
| kid51 | plobsing: Since you've got numbers ops on your mind, have you any thoughts about either TT #1978 or TT #1930? | 01:46 | |
| dalek | rtcl: 4b95281 | bacek++ | src/pmc/tclint.pmc: Add workaround for bug #1811. It can be actually proper fix due MMD distance for divide(Int, Default) vs divide(TclInt, TclFloat) can be same. Requiares very recent parrot with exported PMC boxing functions. |
01:48 | |
| plobsing | kid51: sorry, no clue. I'm not really a floating point pro. I just know that some OSes throw big nasty SIGFPE errors and dump core when you try to divide by zero, so we should try to avoid that (which is why I was doing infnan in the first place). | 01:50 | |
|
01:51
ShaneC joined
|
|||
| whiteknight | I'm glad those boxing functions are being useful. | 01:51 | |
| I can't beleive we went so long without having functions to do that in a single place | |||
| cotto | tewk, ok. I'd like it to be a dynpmc before it gets merged. | ||
| kid51 | taptinder reports build errot in src/embed/api.c | 01:52 | |
| whiteknight | +1 on dynpmc | ||
|
02:00
whiteknight left
|
|||
| kid51 | Is there any branch in need of a basic test on linux/i386 tonight? | 02:13 | |
| Was the opsc_full_parse branch merged? | 02:15 | ||
| Appears so. | 02:16 | ||
| plobsing | cotto: I've moved select over to dynpmc in branch | 02:17 | |
| cotto | plobsing, thanks | 02:18 | |
| dalek | rrot/tewk/select: 33afcc1 | plobsing++ | / (6 files): convert Select to dynpmc |
02:19 | |
|
02:24
TimToady joined
02:25
sorear joined
|
|||
| kid51 | plobsing: TT #1813 is all yours | 02:32 | |
|
02:33
kid51 left
|
|||
| dalek | rrot: cc69a53 | plobsing++ | / (7 files): Merge branch 'infnan2' |
02:45 | |
| ttbot | Parrot cc69a530 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/47929 | 02:52 | |
| dalek | TT #1813 closed by plobsing++: t/op/infnan.t: failures on Darwin/PPC | 02:54 | |
| TT #1813: trac.parrot.org/parrot/ticket/1813 | |||
| TT #966 closed by bacek++: segfault in Parrot_string_mark | |||
| TT #966: trac.parrot.org/parrot/ticket/966 | |||
| cotto | bacek++ | 02:55 | |
| dalek | rrot: b65a8ba | bacek++ | src/embed/api.c: Fix braino in api_wrap/unwrap_pointer. |
02:56 | |
| plobsing | C++ type system actually caught a mistake for once | 02:57 | |
| colour me surprised | |||
| shockwave | In NCI, what the difference between p and P, for the signature string? | 03:00 | |
| plobsing | P passes the PMC through, p interprets the PMC as a pointer wrapper, fetching the pointer value with pmc.get_pointer() | 03:01 | |
| P => PMC*, p => void* | |||
| shockwave | plobsing: Thanks | 03:02 | |
| cotto | plobsing, are you fixing that? | 03:04 | |
| dalek | rrot: 54d5026 | plobsing++ | src/embed/api.c: [codetest] correct format of C function doc =item |
03:05 | |
| rrot: edc686b | plobsing++ | src/embed/api.c: cuddled else |
|||
| plobsing | cotto: fixing what? | ||
| bacek_at_work | cotto, it's fixed in b65a8ba | 03:08 | |
| cotto | the thing that bacek just fixed | ||
| shockwave | whiteknight just added a function to the embeed API called 'Parrot_api_wrap_pointer', which creates a PMC for wrapping a void*. | 03:16 | |
| plobsing | shockwave: yes. that is suitable for use as 'p'-type argument | 03:17 | |
| many PMC types are not really at all suitable for this. For example, Integer, as you found out. | 03:18 | ||
| shockwave | if I were to call that callback like so: cb($P0, "foo") The wrapped void* is what should be getting passed, right? | ||
| plobsing | 'P'-type arguments are more for passing objects originating from Parrot which will most likely not get dereferenced. | ||
| shockwave: it depends on what you want to happen. if you want the callback to get the void*, then yes, pass the wrapped void* as a 'p'-arg | 03:20 | ||
| shockwave | This is the prototype of the C callback, which it *is* getting called: void Web_print(void* data, const char* msg) | ||
| The text param is passed correctly, but the program crashes when I try to dereference the void*. | 03:21 | ||
| plobsing | have you pulled the fix commited in b65a8ba? the initial implementation contained a pretty big error. | 03:22 | |
| shockwave | Is that in master? | 03:23 | |
| plobsing | yes | ||
| shockwave | Ok, I'll download the update and rebuild parrot. | ||
| plobsing | sorry for that inconvenience | 03:24 | |
| shockwave | No sweat. | 03:25 | |
|
03:34
bubaflub left
|
|||
| shockwave | plobsing: Beautiful! After I downloaded the fix, I can access the pointer now. This is awesome. | 03:40 | |
| plobsing | \\o/ | ||
|
03:49
shockwave left,
ShaneC left
|
|||
| dalek | TT #691 closed by cotto++: installed pbc_to_exe can't find config.fpmc. | 04:00 | |
| TT #691: trac.parrot.org/parrot/ticket/691 | |||
| TT #1672 closed by cotto++: TT #389 fix introduced regression with globals. | |||
| TT #1672: trac.parrot.org/parrot/ticket/1672 | |||
| rrot: db77547 | bacek++ | lib/Parrot/Pmc2c/PCCMETHOD.pm: Implement :manual_wb for METHODs. Closes #2018. |
04:12 | ||
| bacek_at_work | trac.parrot.org/parrot/report/1 | 04:16 | |
| Results (1 - 50 of 499) | |||
| Less than 500 open tickets :) | |||
| dalek | TT #2018 closed by bacek++: Improve pmc2c to support :manual_wb flag. | ||
| TT #2018: trac.parrot.org/parrot/ticket/2018 | |||
| TT #2006 closed by bacek++: Problem compiling Rakudo's Test.pm on Debian x64 | |||
| TT #2006: trac.parrot.org/parrot/ticket/2006 | |||
| TT #1948 closed by bacek++: Configure with --no-line-directives still produces .c files filled with ... | |||
| TT #1948: trac.parrot.org/parrot/ticket/1948 | |||
| cotto | bacek_at_work, yay! | 04:18 | |
|
04:34
sigue left
04:39
JimmyZ joined
04:47
sigue joined
|
|||
| dalek | TT #2036 created by jimmy++: rakudo runs tests failed on windows XP | 04:49 | |
| TT #2036: trac.parrot.org/parrot/ticket/2036 | |||
| cotto | hi JimmyZ | 04:57 | |
| JimmyZ, I think icu is a hard requirement for Rakudo. Have you checked about that? | 04:58 | ||
| plobsing | rakudo requires ICU if I am not mistaken. perhaps it should detect that it is not present and warn or die during configure/build. | 04:59 | |
| err... what cotto said | |||
| JimmyZ | cotto: I am not sure, but it is not a hard requirement before unicode refactor merge. | 05:08 | |
| cotto: and it doesn't fail on linux | 05:09 | ||
| cotto | Their readme says it's not a hard requirement | 05:10 | |
|
05:10
JimmyZ left
05:11
JimmyZ joined
|
|||
| JimmyZ | cotto: i think it's a retrogression on windows. | 05:13 | |
| cotto | JimmyZ, what makes you think that it's a parrot bug rather than rakudo? | 05:14 | |
| (I'm not saying that I know either way) | |||
| JimmyZ | cotto: there is a function in parrot is NYI, just throw 'Unicode rindex not implemented', I am not sure why it is not called on linux. | 05:15 | |
| cotto: but it's called on windows :( | 05:16 | ||
| cotto | that's a good indicator | 05:17 | |
|
05:18
JimmyZ_ joined
|
|||
| dalek | rrot/mmd-cache-pmc: 18e8849 | cotto++ | / (4 files): make interp->op_mmd_cache a PMC |
05:18 | |
|
05:22
JimmyZ left,
JimmyZ_ is now known as JimmyZ
|
|||
| cotto | Can someone with a speedy machine test that branch with Rakudo's spectest? It should be fine but I want to be sure. | 05:24 | |
| JimmyZ can't run rakudo spectest on windows unless somebody fix the retrogression on windows | 05:26 | ||
| cotto | heh | ||
| sneaky | |||
|
05:36
JimmyZ_ joined
05:39
JimmyZ left,
JimmyZ_ is now known as JimmyZ
|
|||
| bacek_at_work | cotto, you can't remove mmd_destroy function without deprecation notice. | 05:43 | |
| cotto | I guess. | 05:44 | |
| I can gut it though. | |||
| or make it a macro | |||
| thanks for catching that | 05:45 | ||
| bacek_at_work | Just cut guts and put deprecation notice. | 05:50 | |
| cotto | bacek_at_work, yes | 05:51 | |
| though I may have somehow broken the rakudo build | |||
| actually, that's just marked PARROT_EXPORT. Only PARROT_API functions need a deprecation cycle. | 05:53 | ||
|
05:58
Kulag left,
Kulag joined
|
|||
| cotto | partcl looks good with the branch | 06:01 | |
|
06:05
Kulag left,
Kulag joined
|
|||
| cotto | rakudo build still breaks mysteriously | 06:05 | |
| Ah. They're using it. | 06:06 | ||
| dalek | rrot/mmd-cache-pmc: a5571e9 | cotto++ | include/parrot/multidispatch.h: add noop macro for Parrot_mmd_cache_destroy for backwards compatibility |
06:19 | |
|
06:19
rurban_ joined
06:22
rurban left,
rurban_ is now known as rurban
|
|||
| bacek_at_work | cotto, bad commit :) | 06:24 | |
| ah, no. Actually it will work. | |||
| cotto | rakudo's still broken though | 06:29 | |
| bacek_at_work | just leave old function. | 06:31 | |
| cotto | that's an option | ||
| I'm rebuilding and will dig in once it breaks again | |||
|
06:40
shockwave joined
|
|||
| cotto | Hmmm. It works now. | 06:40 | |
| shockwave | What is the proper way to return a value from a called C function to the calling PIR sub? | 06:41 | |
| the called C function is done via NCI | |||
| cotto | bacek_at_work, why would VTABLE_mark in Parrot_mmd_cache_mark cause a Rakudo build failure but Parrot_gc_mark_PMC_alive work? | 06:44 | |
| shockwave, have you looked at the nci tests? Several of them do that. | 06:45 | ||
| bacek_at_work | cotto, because VTABLE_mark mark only PMC children, not PMC itself. | ||
| And VTABLE_mark shouldn't be used outside of GC implementation at all | 06:46 | ||
| cotto | bacek_at_work, thanks for the lesson | 06:47 | |
| dalek | rrot/mmd-cache-pmc: 259ae36 | cotto++ | src/multidispatch.c: fix Parrot_mmd_cache_mark |
06:49 | |
| shockwave | cotto: will do. Thanks. | 06:58 | |
|
07:01
mtk left
07:03
theory left
07:06
mtk joined
07:11
ShaneC joined
07:23
Kulag left,
Kulag joined
|
|||
| tadzik | morning | 07:36 | |
|
07:46
Kulag left
08:13
lucian joined
08:33
lucian left
08:35
fperrad joined
08:37
fperrad_ joined
08:42
fperrad left
08:45
fperrad_ is now known as fperrad
08:57
sigue left
09:03
sigue joined
09:06
fperrad left
09:10
arnsholt_ joined,
arnsholt left,
fperrad joined
09:25
pjcj left
09:30
pjcj joined
09:36
sigue left,
sigue joined
|
|||
| bacek | ~~ | 09:38 | |
|
09:44
JimmyZ left
09:48
plobsing_ joined
09:52
plobsing left
10:00
contingencyplan left
10:12
particle left
10:15
cotto left
10:20
Hackbinary|2 left,
Hackbinary left
10:32
plobsing joined
10:35
plobsing_ left
|
|||
| shockwave | Hello. | 10:38 | |
| I've been able to call C functions using PIR NCI code. | 10:39 | ||
| I have been able to send void* and text to the C function, as well as receive text and ints. | |||
| I mostly understand the process, but there is one signature that is failing, and I wonder what I could be doing wrong. | 10:40 | ||
| The PIR signature looks like this: vpti -- and the C like so: void func(void* data, const char* msg, int type) | 10:41 | ||
| thanks | 10:42 | ||
| On the above PIR signature, if I remove the 'i' and then remove the corresponding C int param, then the function works. | 10:43 | ||
| So, somehow adding that extra int param make the thing not work. | 10:44 | ||
|
11:11
lucian joined
|
|||
| moritz | is the destroy vtable actually called by the GC? | 11:33 | |
| jnthn | I hpoe so...otherwise things ain't going to be freeing memory. :) | ||
| moritz | I just tried to override :vtable('destroy') in Mu.pir, and have no indicaton that is' even being called :/ | 11:35 | |
| jnthn | PIR overrides actually getting called is a separate thing from the vtable itself getting called. | 11:37 | |
| moritz | uhm... why? | ||
| jnthn | See object.pmc - it has code to do the delegation to a PIR override. | ||
| Thing is, running any code in the destroy could lead to the object being brought back to life again. | 11:38 | ||
| I'm not sure how well that situation would be handled. | 11:39 | ||
| It's a trickyish area. | |||
| moritz | but that'st true for C code too, no? | ||
| jnthn | Sure, but I suspect that there's not a situation where we actually do that. | 11:40 | |
| I don't know that there's a way to tell the GC "oh, this object may live on, don't free the PMC header" | |||
|
11:43
particle joined
|
|||
| bacek | jnthn, there is such way. | 11:55 | |
| something like 'abort("OH SHIT, WE DID IT WRONG") | 11:56 | ||
| :) | |||
| jnthn | :) | ||
|
11:57
Tene left
12:00
cotto joined
12:09
bluescreen joined
|
|||
| shockwave | Hello | 12:29 | |
| I have been able to send void* and text to the C function, as well as receive text and ints. | |||
| I mostly understand the process, but there is one signature that is failing, and I wonder what I could be doing wrong. | 12:30 | ||
| The PIR signature looks like this: vpti -- and the C like so: void func(void* data, const char* msg, int type) | |||
| On the above PIR signature, if I remove the 'i' and then remove the corresponding C int param, then the function works. | |||
| So, somehow adding that extra int param make the thing not work. | |||
| Is one able to mix and match these letters freely, or is there a specific/finite way of arranging them? | 12:31 | ||
|
12:32
Hackbinary joined
12:35
PacoLinux_ joined
12:52
lucian left
12:53
PacoLinux_ left,
PacoLinux_ joined
13:05
PacoLinux_ left
13:11
mtk left
13:12
mtk joined
13:16
mtk left
13:20
mtk joined
13:21
Kulag joined
|
|||
| Coke | that mathop.test is still running. now at over 5G used. | 13:34 | |
|
13:34
whiteknight joined
|
|||
| Coke kills the spectest run, as it's clearly gotten worse in the past few years. | 13:34 | ||
| whiteknight | Coke: we are going to need to valgrind partcl eventually, to figure out where the bottlenecks are | 13:36 | |
|
13:36
Tene joined
|
|||
| whiteknight | because most other applications have gotten (or seem to have gotten) quicker in the past few months | 13:36 | |
| Coke | whiteknight: well, hopefully we can keep partcl from getting broken, which will make it at least possible to track when things get slower. | 13:37 | |
| msg bacek: your change seems to break t/cmd_expr.t (I had hoped I'd just get passing TODOs, but it dies early.) | 13:38 | ||
| aloha | OK. I'll deliver the message. | ||
| plobsing | shockwave: there is a fixed set of NCI signatures built-in to Parrot. There is a tool to add more as a dynamically loadable library. There is also optional support for libffi (probed in Configure.pl, used if available). | 13:39 | |
| Coke | bacek - you mean a REALLY recent parrot? ;) | 13:42 | |
| dalek | rtcl: cefe45f | coke++ | Configure.pl: Change diagnostic message to be more user-friendly |
||
| sella: 0ebfdcd | Whiteknight++ | s (2 files): translate test library to winxed |
13:48 | ||
| sella: 319270b | Whiteknight++ | src/core/Error.winxed: +fixes to spelling and formatting |
|||
| sella: f042785 | Whiteknight++ | / (8 files): translate tap_harness to winxed |
|||
| sella: c9ab2bc | Whiteknight++ | src/core/Rosella.winxed: refactor the Rosella.build function. Add in a new Rosella.construct function, which calls the constructor with the same name as the class |
|||
| sella: 83bad94 | Whiteknight++ | src/core/Rosella.winxed: fix |
13:49 | ||
| sella: 306c394 | Whiteknight++ | src/xunit/Standalone.nqp: delete old, empty Standalone.nqp file |
|||
| sella: 115803d | Whiteknight++ | src/xunit/ (4 files): partial translation of the xunit library. it's bigger than the rest |
|||
| Coke | msg bacek yay, it worked, after updated parrot. (need to fix the config check to actually FORCE the check instead of just letting anything through.) | 13:56 | |
| aloha | OK. I'll deliver the message. | ||
| dalek | rtcl: 5a4d0d5 | coke++ | t/cmd_expr.t: Un todo these tests that bacek++ got working again. |
14:04 | |
|
14:08
plobsing left
14:19
rurban_ joined
|
|||
| dalek | tracwiki: v18 | coke++ | ListOfPlatforms | 14:21 | |
| tracwiki: trac.parrot.org/parrot/wiki/ListOfP...ction=diff | |||
|
14:22
rurban left,
rurban_ is now known as rurban
14:32
x3nU joined
|
|||
| Coke | bacek++ # see lots more of closed tickets in parrot queue. | 14:33 | |
|
14:34
JimmyZ joined
|
|||
| moritz | www.mirandabanda.org/cogblog/2011/0...s-you-can/ maybe this is of interest to some folks here | 14:47 | |
| NotFound | I'm glad to see in Rosella winxed code intended to call and be called from nqp. Parrot language interorperability in action :) | 15:17 | |
| dalek | rrot: 18e8849 | cotto++ | / (4 files): make interp->op_mmd_cache a PMC |
15:18 | |
| rrot: a5571e9 | cotto++ | include/parrot/multidispatch.h: add noop macro for Parrot_mmd_cache_destroy for backwards compatibility |
|||
| rrot: 259ae36 | cotto++ | src/multidispatch.c: fix Parrot_mmd_cache_mark |
|||
| rrot: ecc49a6 | cotto++ | / (4 files): Merge branch 'mmd-cache-pmc' |
|||
| jnthn | cotto: Glad that cache is finally getting imrpoved. :) | 15:21 | |
| cotto: oh, the key bit doesn't seem to have changed much though. | 15:22 | ||
|
15:22
plobsing joined
|
|||
| cotto | jnthn, what were you hoping for? | 15:24 | |
| mmd_cache_key_from_types just makes a string | 15:25 | ||
| cotto heads off to $dayjob | 15:26 | ||
| jnthn | cotto: Yeah, GC allocation for every cache lookup is LTA. | ||
| ttbot | Parrot ecc49a66 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/48686 | 15:27 | |
| dalek | TT #2011 closed by cotto++: Replace MMD_cache with Hash PMC. | ||
| TT #2011: trac.parrot.org/parrot/ticket/2011 | |||
| whiteknight | NotFound: yes, language interoperability is a key design goal of Rosella | 15:30 | |
|
15:31
theory joined
|
|||
| NotFound | whiteknight: aye, but I enjoy more seeing working code than plans and goals. | 15:33 | |
| Specially when it's winxed code ;) | 15:34 | ||
| JimmyZ would like see more parrot speedy improvement. | 15:36 | ||
|
15:36
lucian joined
|
|||
| whiteknight | NotFound: does winxed support multiple return values from functions? | 15:43 | |
| NotFound | whiteknight: yes, but there is no syntax for the caller side. | ||
| whiteknight | okay | 15:44 | |
| NotFound | Just use a comma delimited list of values. | ||
| whiteknight | oh, so "foo, bar, baz = func()"? | 15:45 | |
| NotFound | No, I mean in the return side. | 15:46 | |
| whiteknight | okay, so I can't actually call a function with multiple return values yet? | ||
| NotFound | That is. You can write the function, but you can't effectively use it. | 15:47 | |
| plobsing suspects "foo, bar, bazz = func()" syntax is ambiguous with existing syntax | |||
| whiteknight | yeah, I would suspect a conflict there | ||
| NotFound | I've been able yet to figure a syntax and a semantic that makes sense. | ||
| I've not | |||
| JimmyZ | (foo, bar, bazz) = func() ? | 15:48 | |
| NotFound | JimmyZ: hard to pase unambiguously. | ||
| s/pase/parse | 15:49 | ||
| JimmyZ | or just like PHP list(foo, bar, bazz) = func() | ||
| plobsing | NotFound: we don't yet have lvalue brackets do we? | ||
| whiteknight | MATLAB uses [a, b,c] = func() | ||
| plobsing | whiteknight: I think we call all agree to do better than matlab | ||
| moritz | and Mathematica uses {a, b, c} = Func[] :-) | ||
| NotFound | plobsing: brackets are already too overloaded. | ||
| whiteknight | plobsing: in almost all cases, yes. But it does have built-in handling of vectorized assignment operations, and does so in a way that wouldn't create a parse conflict in winxed | 15:50 | |
| properly implementing vectorized assigns was the single biggest roadblock for my work on matrixy | 15:51 | ||
|
15:53
dod joined
|
|||
| whiteknight | of course, that was back before the PCC refactors, and CallContext. It would be much easier now | 15:54 | |
| NotFound | I'm thinking about a convoluted way that may work: calling an inner function with the results. | ||
| Just an idea, not a syntax. | 15:55 | ||
| whiteknight | that's not really optimal, considering PIR handles it directly | 15:56 | |
| hardest part is coming up with a syntax | |||
| NotFound | Yes, but pir is not expressions oriented as Winxed is. | 15:57 | |
| whiteknight | Actually, you could skip the PIR syntax entirely, and build the CallContext yourself, and push in values | ||
| plobsing | multi-return syntax should also be available for yield(). coros can accept arguments on resumption. | 15:58 | |
| NotFound | whiteknight: there is some PIR example or that? | ||
| plobsing: haven't tested that, but should work, | |||
| whiteknight | NotFound: probably not. The set_args opcode builds a CallContext. I'm sure we could duplicate that logic in PIR | ||
| NotFound | yield and return implementations share almost all. | 15:59 | |
| plobsing | NotFound: no, winxed does not support returns from yield. 'var a = yield()' | 16:01 | |
| NotFound | plobsing: ah, you mean returning to the yield. | ||
| Does pir support that? | 16:02 | ||
|
16:02
hercynium joined
|
|||
| cotto_work | jnthn: were you commenting on one of the things I didn't change, then? | 16:02 | |
| plobsing | NotFound: it does now. PCC has supported it since forever, but you had to use get_params. | ||
| now, sequences of .param statements after the yield() achieve the same result. | |||
| NotFound | Amazing. | 16:03 | |
| plobsing | A possible use-case I can see would be an asynchrony framework like POE | 16:04 | |
| but built from coros | |||
| dngor | Reflex gets around it in perl 5 by using emit() instead of return. | 16:06 | |
| Reflex::Callback::Promise collects emitted messages into a queue that the caller can consume using synchronous syntax. The queue waits for a new message if it's empty. | 16:07 | ||
| whiteknight | plobsing: really? you can take params after a .yeild? Was that part of your IMCC grammar change? | ||
| I've wanted that feature for a long time | |||
| moritz | dngor: sounds a bit like gather/take in Perl 6 | 16:08 | |
| NotFound | whiteknight: how can we call a sub with a signature object? Using pasm syntax? | 16:09 | |
|
16:10
lucian left
|
|||
| whiteknight | NotFound: at the moment, I guess we can't. invokecc opcode doesn't let you specify a CallContext like it should | 16:10 | |
| set_params sets that internally | |||
| we really need to refactor that | 16:11 | ||
| set_params should return a CallContext, and we should pass that in to invokecc | |||
| could be some savings there, if we have an optimizer smart enough to reuse those CallContext objects | 16:12 | ||
| but that's neither here nor there | |||
| NotFound | We also don't have yet a :signature modifier, do we? | ||
|
16:12
plobsing left
|
|||
| whiteknight | NotFound: we have :call_sig on the callee side, but not the caller side | 16:13 | |
| that's also something we should implement | |||
| I could probably have that added by next week if you need it | |||
| NotFound | I'm just ruminating possible ways to enable such kind of calls right now. | 16:14 | |
|
16:16
lucian joined
|
|||
| whiteknight | Once you pick a syntax, you can just translate the call down into a PIR call with (a,b,c) = foo() | 16:18 | |
|
16:18
Patterner left,
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
| jnthn | cotto_work: Yes, I thought you were going to do a change along those lines. :-) | 16:22 | |
| Then I saw "oh, just wrapping in a PMC" | |||
| cotto_work | jnthn: I'm open to suggestions. Do you think using an INTVAL key would be feasible? | ||
| jnthn | Ah well, the abstraction is still in place if we want to do something smarter in the future. | ||
| cotto_work: I wrote a much smarter one for nqpclr that didn't get ported to anywhere in Parrot yet. | 16:23 | ||
| cotto_work | jnthn: where does it live? | 16:24 | |
| jnthn | just finding it :) | ||
| moritz | ETOOMANYREPOS | ||
| jnthn | cotto_work: github.com/jnthn/6model/blob/maste...chCache.cs | 16:25 | |
| cotto_work | jnthn: thanks. | 16:29 | |
|
16:38
JimmyZ left
16:39
bluescreen left,
lucian left
16:43
dmalcolm joined
|
|||
| NotFound | whiteknight: :call_sig in the caller seems to work. | 16:53 | |
|
16:58
contingencyplan joined
|
|||
| whiteknight | NotFound: it does? There are no tests for it | 17:03 | |
| nopaste | "NotFound" at 192.168.1.3 pasted "call_sig in results" (19 lines) at nopaste.snit.ch/35187 | 17:05 | |
| whiteknight | oh, okay. yes :call_sig works on the callee side, and a return is a call | 17:07 | |
| so that makes sense | |||
| would love to see a test for it get written | |||
|
17:14
plobsing joined
|
|||
| cotto_work | hi plobsing | 17:26 | |
| nopaste | "NotFound" at 192.168.1.3 pasted "call_sig in results - experimental winxed predef" (13 lines) at nopaste.snit.ch/35191 | 17:28 | |
| NotFound | whiteknight: do you like that as a quick provisional solution? | 17:29 | |
|
17:31
bluescreen joined
|
|||
| whiteknight | NotFound: We don't need anything provisional. I'm not in a rush for multi-returns | 17:31 | |
| it's not bad, but how do you decide when to wrap up the values in a CallContext? | 17:32 | ||
| oh wait, I see. invoke() wraps it | |||
| NotFound | Is just to enable a PIR feature that is no currently accesible, that's all. | ||
|
17:33
jsut_ left
|
|||
| whiteknight | yes, that works very well | 17:33 | |
|
17:33
jsut joined
|
|||
| NotFound | Not in a clean and short way, but accesible at least. | 17:33 | |
| whiteknight | like I said, a lot of that code needs to be refactored at the Parrot/IMCC level. Once we do that we should have better access | 17:34 | |
| NotFound | Ok, I'll commit it in a few minutes. | ||
| Coke | I wonder when TT #1672 was fixed. | 17:35 | |
| cotto_work | Coke: would it be useful to bisect it? | 17:37 | |
| Coke | cotto_work: only from a morbid curiousity standpoint. | ||
| cotto_work | so no | ||
| Coke | I just removed the ugly hack I had introduced into partcl-old to workaround it. | 17:38 | |
| dalek | rtcl: 9a5ce3f | coke++ | / (5 files): Ok to put subs directly in the NameSpace again. |
17:41 | |
| rrot: 872e2cc | cotto++ | src/multidispatch.c: add cast to fix C++ build |
17:48 | ||
| Coke | 9.480 / 0.028 | 17:52 | |
| aloha | 338.571428571429 | ||
| Coke | (# of times slower to just load the tcltest.tcl test file and not do anything between partcl-old & tclsh) | 17:53 | |
| dalek | nxed: r843 | NotFound++ | trunk/winxedst1.winxed: new predef 'invoke' to allow use of multi return values |
18:08 | |
| Coke | Hurm. I wonder how far I could get in terms of replacing raw PIR in partcl-old with NQP subs taken from partcl-nqp | 18:09 | |
| seen pmichaud ? | 18:11 | ||
| aloha | Sorry, I haven't seen pmichaud . | ||
| Coke | seen pmichaud? | ||
| aloha | pmichaud was last seen in #perl6 1 days 23 hours ago saying "good afternoon, #perl6". | ||
| cotto_work | msg bacek aloha needs to be smarter about trimming whitespace. asking aloha "seen pmichaud ?" confuses it. | 18:12 | |
| aloha | OK. I'll deliver the message. | ||
| dalek | nxed: r844 | NotFound++ | trunk/winxedst1.winxed: refactor a bit print, say and cry predefs |
18:14 | |
| nxed: r845 | NotFound++ | trunk/pir/winxed_compiler.pir: update installable compiler |
18:20 | ||
|
18:26
bluescreen left
18:41
bluescreen joined
|
|||
| cotto_work | aloha: seen aloha | 18:48 | |
| aloha | cotto_work: aloha was last seen in #perl6 2 days 19 hours ago joining the channel. | ||
| cotto_work | aloha: seen aloha | ||
| aloha | cotto_work: aloha was last seen in #perl6 2 days 19 hours ago joining the channel. | ||
| cotto_work | also odd | 18:49 | |
| Coke | seen aloha is "that's me!" | 18:53 | |
| aloha | Sorry, I haven't seen aloha is "that's me!". | ||
| Coke | no, seen aloha is "that's me!" | ||
| seen aloha? | |||
| aloha | aloha was last seen in #perl6 2 days 19 hours ago joining the channel. | ||
| Coke | ah well. ;) | ||
| dalek | rrot: 0cf3ffa | (Gerd Pokorra)++ | compilers/data_json/JSON.nqp: add the JSON values "true" and "false" |
18:59 | |
|
19:04
bluescreen left
19:12
jan left
19:18
bluescreen joined
|
|||
| dalek | rrot/gerd/JSON_nqp: 45e5941 | (Gerd Pokorra)++ | t/compilers/data_json/to_parrot.t: look to an other error message |
19:36 | |
|
19:41
bluescreen left
|
|||
| dalek | rrot/gerd/JSON_nqp: 7ac0362 | (Gerd Pokorra)++ | / (70 files): Merge branch 'master' into gerd/JSON_nqp |
19:48 | |
|
19:53
bluescreen joined
|
|||
| cotto_work | msg gerd Are you planning on merging gerd/JSON_nqp? | 19:53 | |
| aloha | OK. I'll deliver the message. | ||
|
20:56
bluescreen left
21:01
plobsing left
|
|||
| dalek | sella: d7b9855 | Whiteknight++ | / (9 files): translate the query library over to winxed. Update tests to work with it, since winxed attributes aren't prefixed with a sigil. This means the NQP version of this library is broken |
21:01 | |
| sella: b14d1db | Whiteknight++ | s (6 files): remove query/*.nqp files. Update setup.nqp so we don't try to build that library. Query is winxed-only |
|||
| tadzik | ~~ | ||
| sella: cbdacf1 | Whiteknight++ | s (32 files): move old NQP files into a separate directory. I'll keep them around, but they won't be changing much |
|||
| sella: a865bb5 | Whiteknight++ | s (13 files): finish initial (untested) translation of xunit library to winxed. Merge into the test library. Several changes, big and small, from the NQP versions |
|||
| sella: 612bff2 | Whiteknight++ | src/test/ (4 files): several fixes so we build and can run some dummy tests |
|||
|
21:03
plobsing joined
21:08
davidfetter joined
21:25
plobsing left
21:28
whiteknight left
21:45
hercynium left
|
|||
| dalek | p/lexical-setting: a32c5f9 | jonathan++ | src/NQP/Compiler.pm: Make sure if we try to use a setting twice it'll work out. |
22:00 | |
| bacek_at_work | ~~ | 22:13 | |
| Coke | bacek_at_work: ~~ | 22:16 | |
| bacek_at_work | aloha, Coke | ||
| dalek | nxed: r846 | NotFound++ | trunk/winxedst1.winxed: refactor Declare statements to avoid the mix between simple variable and array |
22:18 | |
|
22:20
rurban_ joined
|
|||
| bacek_at_work | Coke, how much of mathops.test passed for you before you killed it? | 22:22 | |
|
22:23
elmex left
22:24
elmex joined,
rurban left,
rurban_ is now known as rurban
22:29
mtk left
22:31
mrwall-e joined
|
|||
| bacek_at_work | Coke, mathops.test is stablilized on 357M of memory. Running mathop-7.* tests now. | 22:31 | |
|
22:35
mtk joined
|
|||
| Coke | bacek_at_work: did you change something? | 22:36 | |
| bacek_at_work | nope | ||
| Coke, are you running optimized build of parrot? | 22:37 | ||
| GC GMS in unoptimized build has a lot of internal validations switched on | |||
| Coke | bacek_at_work: something in the 20s. | ||
| I pretty much always run optimized. | |||
| bacek_at_work | Coke, ok. it's on mathop-7.33 on my box now. We'll see how it goes | 22:38 | |
| Coke | I also reverted the workaround for #378 that you pointed out was fixed, which should help, but only slightly. | 22:46 | |
| bacek_at_work | ok | 22:49 | |
|
22:52
lucian joined
22:58
plobsing joined
23:00
lucian_ joined
23:02
lucian left
23:17
davidfetter left
23:21
Andy left
23:29
plobsing left
|
|||
| shockwave | Hello | 23:43 | |
|
23:44
whiteknight joined
|
|||
| shockwave | It seems some NCI C function signatures do not work. | 23:44 | |
| For Example, I can't load a function with this signature: tptt | |||
| Maybe it's something I'm doing. | 23:45 | ||
|
23:45
fperrad left
|
|||
| PerlJam | shockwave: last I looked they needed to be precompiled into parrot. That one probably isn't. | 23:45 | |
| shockwave | PerlJam: Sorry, are you saying the signatures cannot be arbitrary, but that there is an specific, finite amount of acceptable signatures? | 23:46 | |
| PerlJam | shockwave: I am. (but my information is dated. I haven't played with parrot NCI in a long while) | ||
|
23:47
mrwall-e left
|
|||
| shockwave | PerlJam: I'm gonna have to agree with you. There were other signatures I tried and they failed. | 23:47 | |
| PerlJam | shockwave: That state was temporary and there was some work to make arbitrary signatures usable. I don't know what became of it though | ||
|
23:47
mrwall-e joined
|
|||
| PerlJam | shockwave: See src/nci/extra_thunks.nci | 23:54 | |
| jnthn | iiuc, if you have libffi available at Parrot's configure-time it will be used to make any signatures available. | 23:57 | |
| shockwave | Am I able to simple add a signature to extra_thunks.nci, and they will be compiled into Parrot? | 23:59 | |