Camelia, the Perl 6 bug

IRC log for #parrot, 2011-03-03

Parrot | source cross referenced

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

All times shown according to UTC.

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

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

Parrot | source cross referenced