Camelia, the Perl 6 bug

IRC log for #parrot, 2010-06-05

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:14 ash_ does parrot have call by reference? or is there anyway for a parameter to be modified by a function?
00:14 sorear all calls in Parrot are by value
00:15 sorear if you want to modify the caller's version of an argument, dust off your compilers book and look up call-by-reference implementation
00:15 sorear the principles are exactly the same as for hardware (which is also CBV-only, in normal cases)
00:15 theory joined #parrot
00:16 ash_ but can you do that in parrot?
00:17 sorear "
00:18 sorear "the principles are exactly the same" means yes
00:21 bacek *incoming*
00:22 dalek parrot: r47361 | bacek++ | branches/gc_massacre/src/gc (2 files):
00:23 dalek parrot: Add GC.is_string_ptr
00:23 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47361/
00:23 dalek parrot: r47362 | bacek++ | branches/gc_massacre/src/gc/system.c:
00:23 dalek parrot: Switch to use GC_Sys.is_string_ptr in tracing system areas.
00:23 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47362/
00:23 dalek parrot: r47363 | bacek++ | branches/gc_massacre/src/gc/gc_ms2.c:
00:23 dalek parrot: Factor out gc_ms2_sweep_pool helper function.
00:23 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47363/
00:23 dalek parrot: r47364 | bacek++ | branches/gc_massacre/src/gc/gc_ms2.c:
00:23 dalek parrot: Sweep strings pool.
00:23 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47364/
00:23 dalek parrot: r47365 | bacek++ | branches/gc_massacre/src/gc/gc_ms2.c:
00:23 dalek parrot: Shuffle functions around.
00:23 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47365/
00:23 dalek parrot: r47366 | bacek++ | branches/gc_massacre/src/gc/gc_ms2.c:
00:23 dalek parrot: Destroy PMCs during sweep
00:23 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47366/
00:23 dalek parrot: r47367 | bacek++ | branches/gc_massacre/src (2 files):
00:23 dalek parrot: Hack Parrot_str_copy to clone string and implement freeing of string storage in MS2
00:23 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47367/
00:23 dalek parrot: r47368 | bacek++ | branches/gc_massacre/src/gc/gc_ms.c:
00:23 dalek parrot: Implement .is_string_ptr in old GC.
00:23 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47368/
00:23 dalek parrot: r47369 | bacek++ | branches/gc_massacre/src/gc/gc_ms2.c:
00:23 dalek parrot: Don't mark constant PMCs.
00:23 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47369/
00:23 dalek parrot: r47370 | bacek++ | branches/gc_massacre/src/gc/gc_ms2.c:
00:23 dalek parrot: Count string allocations as header allocations.
00:23 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47370/
00:24 cotto_work We're in trouble if bacek ever chooses to use his powers for evil.
00:24 bacek cotto_work, I choose it already!
00:24 * bacek laughing evilly
00:24 cotto_work dang
00:25 sorear but Parrot *is* the dark side
00:25 cotto_work I'm sure the Rakudo guys would agree right now.
00:32 ash_ is there a way to do:   int a = 4; foo(&a);   where foo might be: void foo(int*); as its prototype
00:32 tcurtis joined #parrot
00:34 cotto_work bacek, I'm thinking of how to get a decent design for Lorito hammered out.  Can you think of anything better than getting volunteers to write up design docs on the wiki?
00:35 bacek cotto_work, "getting volunteers" will be hardest part :)
00:37 cotto_work likely enough, though I don't mind being persistent and getting warnocked a bit
00:38 bacek I just can't help with it right now... GC taking almost all my attention.
00:38 cotto_work sure
00:38 cotto_work It'll be a little bit before design starts in earnest.
00:48 cotto_work time for home going
00:54 ash_ ping plobsing?
00:56 dalek parrot: r47371 | bacek++ | branches/gc_massacre/src/gc/gc_ms2.c:
00:56 dalek parrot: Sligtly optimize allocation strategy.
00:56 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47371/
00:57 patspam joined #parrot
00:57 jnthn bacek: Привет! How's the GC work going?
00:57 bacek jnthn, reasonably well.
00:57 jnthn Dobre. :-)
00:57 jnthn er, EWRONGSLAVICLANGUAGE
00:58 bacek :)))
00:58 jnthn bacek: Much performance win?
00:58 jnthn bacek: Or not at the point where that's really possible to measure yet?
00:58 bacek jnthn, nope. Simple M&S at about same speed.
00:59 bacek If you can offer some real-life test I can try to measure it.
00:59 jnthn "build Rakudo" ;-)
01:00 jnthn It's a good benchmark or parsing stuff, at least.
01:00 jnthn I suspect that since we build some sizeable and fairly long-lived trees, though, that unless what you're hacking on is a more generational scheme we may not see epic wins.
01:02 sorear if you want to see a huge win building rakudo, make our hash tables faster for the special case of 10ks of hash tables all containing the same ~6 keys
01:02 sorear I talked to pmichaud, he says this is actually faster than using real Objects
01:03 tcurtis sorear: That's all PCT::Nodes are(and an array part, too, for the children).
01:03 sorear tcurtis: yes, that's why there are so many of them...
01:06 ash_ sorear: http://gist.github.com/426157 it seems to pass by reference you have to use a PMC
01:09 jnthn fwiw, after Rakudo * I'm planning to re-do the way Perl 6 objects are handled internally.
01:09 jnthn It's silly that every attribute access is a hash lookup.
01:10 jnthn When we statically know all of the attributes in a given class, and attributes are very private to that class.
01:11 jnthn (Of course, named lookup still has to be possible, and would be.)
01:11 sorear it's also silly that a single 'Object' represents five distinct memory allocations
01:12 sorear I'm really looking forward to the promised unification of PMCs with objects
01:13 jnthn sorear: Really bad for Rakudo ATM is if you consider a Complex, for example. So that's an object, which has two attributes. Say those are Nums. Those Nums then use a Parrot Float PMC attribute for the actual storage. Thus 1 complex number = 5 objects, essentially.
01:13 jnthn When really it should be one with two native doubles in it.
01:14 ash_ native doubles?
01:14 sorear 1 object = PMC header + Object attributes allocation + PMC RPA header for HLL attributes + RPA attributes block + RPA storage
01:14 jnthn ash_: As in, not objects, but just a FLOATVAL
01:14 ash_ got ya
01:15 jnthn sorear: "RPA attributes block"?
01:18 plobsing joined #parrot
01:18 ash_ I wonder if using a ManagedStruct would be beneficial for object storage...  you could define the struct to be your two native double's, but i don't know what the access time is like on that, if its more or less expensive than what's going on currently
01:19 jnthn ash_: It'd be along those lines, I gues.
01:19 jnthn *guess
01:19 jnthn Certainly evil stuff to write. :_)
01:19 bacek joined #parrot
01:20 ash_ plobsing: hey, i got a good ground work for my signature parser working, https://gist.github.com/5361a2d1bc4e0868eeb4 if you want to see it, but i am a little stumped on how to integrate it with the current pmc
01:20 ash_ jnthn: i'd only be worried about subclassing it, as long as the subclass behaved properly with its attributes
01:22 jnthn ash_: In Perl 6, you can only access attributes in the current class.
01:22 jnthn Which makes things a bit easier.
01:22 jnthn Things that want to subclass Perl 6 objects are just going to have to cope with its encapsulation rules. :-)
01:23 ash_ so class A { has $.a }; class B is A { method foo { $.a } }; will fail? or call a function on A?
01:23 jnthn $.a means you generate a (virtual) accessor method for the (class-private) $!
01:23 jnthn er, $!a
01:23 ash_ got ya
01:23 jnthn So it will work
01:23 jnthn What you can't write is
01:23 ash_ but $!a won't work
01:23 jnthn class A { has $.a }; class B is A { method foo { $!a } };
01:23 ash_ that makes sense
01:24 jnthn That should really fail at compile time.
01:25 bacek nice... Building rakudo almost killed my box...
01:26 tetragon joined #parrot
01:26 ash_ could you achieve that by changing the base object your building off of? instead of P6opaque to something else? Like a ManagedStruct (in the Rat case)
01:28 jnthn P6opaque should be able to handle storing native things.
01:28 jnthn At the moment it's just a subclass of Parrot's Object PMC
01:30 plobsing ash_: looks like you have something. looks a little complicated (do you really want all of prefix, postfix, and circumfix?), but good on the whole.
01:31 plobsing might need some minor tweaks before inclusion in parrot (eg: macro args don't meet codetest standards)
01:31 ash_ I am sure there are ways I can simplifiy it, and currently i don't have keys on structs or C arrays working, you can do c arrays by doing say int a[4] == "iiii" and the keys seem optional for now
01:32 ash_ i wanted to get this working before i did either of those two
01:32 plobsing ash_: I was hoping arrays of structs (or arrays of primitives which is a subset) could simply be "$P0 = 'i'\n$P0 = 4"
01:33 plobsing that way you don't need long strings of repeated characters as zavolaj does now
01:34 ash_ well, i was planning on doing i[4] so you can do it that way in the signature parser
01:34 plobsing would the signature parser for routines validate that (I don't think it should)
01:35 ash_ no, i wasn't planning on validating parameters much, if at all
01:35 ash_ only doing basic things like if you asked for an int, making sure its an int
01:35 plobsing how do you make sure its an int?
01:36 ash_ get_integer?
01:36 jnthn I think the current NCI is more coerce-y than constraint-y.
01:36 jnthn ash_: Aye, but that's more "make it be" rather than "checking it is". :-)
01:36 plobsing exactly. and I think it should remain that way
01:36 jnthn ash_: Not that that's a bad thing.
01:37 jnthn plobsing: Agree.
01:37 plobsing leave the type systems to the HLLs
01:37 ash_ Okay, well i mean "make it be" as jnthn puts it
01:37 ash_ thats fine if it seems to complicated
01:38 plobsing although I do like the ability to specify arrays for structs
01:39 ash_ "v(ii)" = void (*)(struct { int; int; } );   "v(i[2])" is functionally equivalent but looks different
01:40 ash_ i'll get the postfix [ ] working soon
01:40 ash_ also that doesn't have to be in a struct, you can do "vi[3]" or w/e
01:40 jnthn Oh, I'd almost expected i[2] to be int*
01:41 jnthn e.g. a pointer to an array of int
01:41 jnthn How do you write the signature for that?
01:41 ash_ *i is a pointer to int
01:41 ash_ i[2] is a C array; like: int a[2];
01:41 jnthn OK
01:42 ash_ jnthn: http://gist.github.com/412727 is my current proposal
01:42 plobsing ash_: C arrays are pass-by-ref, so pass by value semantics of "vi[2]" is somewhat confusing
01:44 plobsing not that having "vi[2]" as pass-by-ref would be useful when you already have "v*i"
01:44 ash_ hmmm, your right, i forgot about that :-\ i'll have to check to make sure they are in a struct, otherwise thats more of a *i
01:44 jnthn plobsing: Thanks, that's what I was trying to get at. :-)
01:45 tcurtis ash_:  what's the syntax for function pointers?
01:45 ash_ U
01:47 dalek parrot: r47372 | bacek++ | branches/gc_massacre (103 files):
01:47 dalek parrot: Merge branch 'master' into gc_massacre
01:47 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47372/
01:48 plobsing arg. why do I only remember about TPL now? that could have been a useful reference grammar.
01:48 plobsing http://tpl.sourceforge.net/userguide.html
01:49 plobsing might have been useful 2 weeks ago
01:49 ash_ mines highly inspired by perl 5's pack  http://perldoc.perl.org/functions/pack.html
01:50 ash_ parts of it are directly copied from pack actually
01:50 tcurtis Will there be any helper functions for making callbacks from parrot subs to pass into C?
01:50 plobsing there are already
01:50 plobsing so yes
01:50 tcurtis Additional helper functions, rather.
01:51 plobsing what's lacking about the current ones? have you even tried them?
01:54 ash_ http://docs.parrot.org/parrot/latest/html/​docs/pdds/draft/pdd16_native_call.pod.html has an example with a callback towards the bottom
01:56 tcurtis There are only two possible signatures for callback functions according to said doc.
01:57 plobsing 2 classes of signature. it is somewhat limiting, but without dynamic code generation, you can't really do better than creating thunks
01:58 plobsing so in the general case, you can't do better
01:58 ash_ libffi could assist with that, no?
01:59 plobsing I suppose an analogue of nci_thunk_gen could be created, but that tool doesn't seem to be very popular, so I doubt a callback version would be any bettter
01:59 ash_ plobsing: do you have libffi's documentation downloaded?
01:59 plobsing ash_: libffi does support making trampolines, but only on certain platforms. And there are platforms and security contexts where it is *impossible* to do.
02:00 plobsing so *depending* on libffi is the wrong way to go. Having its nice features where available is good though.
02:01 ash_ hmm, well, if it doesn't work everything, that makes sense
02:01 ash_ maybe i'll make a library for it later
02:01 ash_ to have other callbacks
02:01 plobsing I could look into making a hook for NCI callbacks like I did for NCI thunks. But that didn't really get used...
02:02 tcurtis How does python do it?
02:02 plobsing tcurtis: doc url?
02:02 tcurtis http://docs.python.org/library/​ctypes.html#callback-functions
02:02 ash_ they use ctypes
02:02 ash_ err libffi
02:03 ash_ libffi is bundled with python's core, so they just rely on it for making that trampoline
02:04 plobsing and they'll fail hard when libffi's approach fails
02:04 ash_ they probably don't even support platforms libffi doesn't support
02:04 ash_ granted libffi's support is pretty good...  according to their readme
02:05 ash_ http://github.com/atgreen/li​bffi/blob/master/README#L52 is an up to date list of supported platforms
02:07 plobsing yes, but platforms that strictly enforce W^X are more common than you might think. You can get linux or BSD to do that (and some ppl run that way).
02:07 plobsing (W^X without the ability to toggle bits in regions prevents closures from working)
02:08 ash_ well, either way, it could be made as a library for systems/configurations that do support it, and having something is better than having nothing as it currently stands
02:09 plobsing yes, so long as we don't take away the partial support that currently exists for everyone
02:15 ash_ brb making dinner &
02:32 cotto msg Khairul It turns out I might not be around tonight.  Ping me and we'll see.
02:32 purl Message for khairul stored.
02:33 cotto hey purl.
02:35 sorear jnthn: 1 object = 2x PMC (Object, and a ResizablePMCArray to hold the slots)
02:35 sorear jnthn: Object = header + attributes
02:36 sorear jnthn: ResizablePMCArray = header + attributes + buffer
02:37 dalek parrot: r47373 | tcurtis++ | branches/gsoc_past_optimization (2 files):
02:37 dalek parrot: Boolean matching based on node type, exact attribute/children values, .ACCEPTS(attr/child), or result of a closure invoked with an attribute/child, implemented and tested.
02:37 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47373/
02:38 gbacon joined #parrot
02:39 ingy joined #parrot
02:55 khairul joined #parrot
02:56 khairul cotto: ping
03:07 bacek khairul, cotto left work about an hour ago. Should be only pretty soon.
03:08 khairul bacek: no problem, its no rush.
03:10 dalek parrot: r47374 | tcurtis++ | branches/gsoc_past_optimization/runt​ime/parrot/library/PAST/Pattern.nqp:
03:10 dalek parrot: Remove some debugging output statements I forgot to remove.
03:10 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47374/
03:10 bacek khairul, but if you want to ask some not-very-specific-gcos-question just shout it here. Probably someone can help
03:13 TiMBuS joined #parrot
03:35 cotto I have a guest
03:35 cotto khairul, I'll have to catch you later
03:36 khairul sure no prob
03:38 janus joined #parrot
03:46 mikehh_ joined #parrot
04:46 dalek TT #1147 closed by plobsing++: [PATCH] update nci.pmc for pcc_reapply
04:46 dalek TT #1147: http://trac.parrot.org/parrot/ticket/1147
05:09 eternaleye joined #parrot
05:33 cotto still alive?
05:33 purl alive (adj.) Possessing a life. Antonym: programmer.
05:34 cotto khairul, I seem to be back.
05:39 khairul cotto: see privmsg
05:39 cotto don't mind if I do
06:13 mikehh__ joined #parrot
06:29 Maddingue joined #parrot
06:30 fperrad joined #parrot
06:34 fperrad_ joined #parrot
07:28 mikehh opbots, names
08:04 dalek parrot: r47375 | mikehh++ | branches/gc_massacre/src/gc/gc_ms2.c:
08:04 dalek parrot: fix/add ASSERT_ARGS
08:04 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47375/
08:29 mikehh bacek: gc_massacre branch codetest passes except for c++ comments in src/gc/gc_tms.c
08:37 dalek parrot: r47376 | mikehh++ | branches/gc_massacre/src/gc/gc_ms2.c:
08:37 dalek parrot: add documentation
08:37 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47376/
08:37 dalek parrot: r47377 | mikehh++ | branches/gc_massacre/src/gc/gc_ms.c:
08:37 dalek parrot: add documentation
08:37 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47377/
10:02 fperrad joined #parrot
10:05 LoganLK joined #parrot
10:06 nopaste "bacek" at 192.168.1.3 pasted "Something like this. MS vs MS2 GC performance." (12 lines) at http://nopaste.snit.ch/20945
10:20 Themeruta joined #parrot
10:26 aukjan joined #parrot
10:52 khairul joined #parrot
11:09 gbacon joined #parrot
11:16 moritz what is ms2?
11:22 bacek moritz, simple mark&sweep as described on GCMassacre wiki page
11:31 whiteknight joined #parrot
11:35 bacek whiteknight, aloha
11:35 whiteknight good morning bacek
11:36 bacek whiteknight, you'll love my latest 3 commits into trunk...
11:37 bacek whiteknight, http://trac.parrot.org/parrot/changeset/47378
11:37 dalek parrot: r47378 | bacek++ | trunk/include/parrot/gc_api.h:
11:38 dalek parrot: Use non-zero value for GC trace flags. Fix a GC trace collection bug which is at least 2 year old.
11:38 dalek parrot: Short explanation (flags & GC_trace_stack_FLAG) always produce FALSE if GC_trace_stack_FLAG is zero.
11:38 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47378/
11:38 dalek parrot: r47379 | bacek++ | trunk/src/ops (2 files):
11:38 dalek parrot: Use predefined flag in op sweep instead of wrong magical 0
11:38 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47379/
11:38 dalek parrot: r47380 | bacek++ | trunk/include/parrot/gc_api.h:
11:38 dalek parrot: Erm. Fix GC flags again to preserve equality of trace_stack and trace_normal flags.
11:38 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47380/
11:38 fperrad_ joined #parrot
11:41 whiteknight nice
11:48 khairul joined #parrot
12:07 dalek rakudo: 09314df | (Gerd Pokorra)++ | build/Makefile.in:
12:07 dalek rakudo: Explicitly set --name for perl6.1 man page
12:07 dalek rakudo: Signed-off-by: Moritz Lenz <moritz@faui2k3.org>
12:07 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​9314dfd280fbd3ba146d3aa84a66f0c05703308
12:09 dalek primitivearc: edb8fc7 | (Stefano Dissegna)++ |  (22 files):
12:09 dalek primitivearc: various bug fixes
12:09 dalek primitivearc: review: http://github.com/stefano/primitivearc/comm​it/edb8fc7e412114455fadd43c638dc131c0a95538
12:09 dalek primitivearc: 0d54e92 | (Stefano Dissegna)++ | DIFFERENCES:
12:09 dalek primitivearc: started documenting differences with official Arc
12:09 dalek primitivearc: review: http://github.com/stefano/primitivearc/comm​it/0d54e927df714f29ebef03eb878cc624f582fa06
12:10 dalek parrot: r47381 | khairul++ | branches/gsoc_instrument (2 files):
12:10 dalek parrot: Added tests for hook insertion and removal.
12:10 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47381/
12:36 radu joined #parrot
12:38 mikehh_ joined #parrot
13:49 JimmyZ joined #parrot
14:03 ash_ joined #parrot
14:09 dalek winxed: r489 | julian.notfound++ | trunk/examples/ajax.winxed:
14:09 dalek winxed: add fake async mode to example ajax
14:09 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=489
14:33 radu joined #parrot
14:40 lucian joined #parrot
14:49 JimmyZ parrot builds failed on windows?
14:53 JimmyZ ignore it
14:53 purl ignore it is the secret ingredient
15:08 tetragon joined #parrot
15:15 dalek rakudo: 8c85fb4 | moritz++ | src/Perl6/Grammar.pm:
15:15 dalek rakudo: fix p5 -> p6 regex error message confusion
15:15 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​c85fb4211a222018350f0aa8506215a3cbccf3d
15:29 aukjan joined #parrot
15:36 ingy joined #parrot
16:07 patspam joined #parrot
16:28 joeri joined #parrot
16:51 theory joined #parrot
17:05 dalek parrot: r47382 | jonathan++ | trunk/compilers/pct/src/PCT/HLLCompiler.pir:
17:06 dalek parrot: [pct] Improve backtrace handling so that we resume warning exceptions and actually exit upon exit exceptions.
17:06 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47382/
17:06 moritz jnthn: does that make warnings non-fatal again?
17:13 tcurtis joined #parrot
17:23 pmichaud ...apparently the "exit $I0" opcode will set the _type_ of the exception to whatever value is passed in $I0.  Bug?
17:24 pmichaud (src/ops/core.ops:826)
17:24 pmichaud I think we should have an exception type of CONTROL_EXIT, and the exit() opcode uses that.
17:25 pmichaud it appears several places in the ops confuses "exception type" with "exit status"
17:25 pmichaud *confuse
17:27 pmichaud or, we could use CONTROL_ERROR for the exception type
17:27 pmichaud but using the exit status as the exception type seems Wrong.
17:27 moritz aye
17:32 cotto msg khairul You might sync with trunk to see the fix by bacek++ fixes your bug.
17:32 purl Message for khairul stored.
17:35 cotto Sheesh.  I'm embarrassed for us having such a bug for so long.
17:36 jnthn moritz: Yes.
17:36 cognominal joined #parrot
17:40 dalek rakudo: 53c3a48 | jonathan++ | build/PARROT_REVISION:
17:40 dalek rakudo: Bump to latest Parrot to get improvements to the backtrace handling code; this
17:40 dalek rakudo: fixes the exit bug.
17:40 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​3c3a4836c767d7c095afe3ada997e56c2f1b440
17:40 dalek rakudo: c3e84aa | jonathan++ | src/builtins/control.pir:
17:40 dalek rakudo: The default Warning message should not come with a \n on it already.
17:40 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​3e84aa12c329584fdbe1d6be8bac9c01c6fc592
17:40 dalek rakudo: 01583bf | jonathan++ | src/Perl6/BacktracePrinter.pm:
17:40 dalek rakudo: Make backtrace printer smart enough to recognize warnigns - which it is now
17:40 dalek rakudo: passed - and just emit the warning along with a line number.
17:40 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​1583bf91edeb1184517dc2c68492c69c40c77a6
17:43 radu joined #parrot
17:48 tcurtis pmichaud: so.. exit 0 throws a "EXCEPTION_BAD_BUFFER_SIZE" exception?
17:49 pmichaud tcurtis: worse,  exit 64 throws a CONTROL_LOOP_NEXT exception
17:49 pmichaud 17:46 <pmichaud> rakudo:  for 1..4 { say $_;  exit 64; }
17:49 pmichaud 17:46 <p6eval> rakudo 8c85fb: OUTPUT«1␤2␤3␤4␤»
18:07 sorear joined #parrot
18:09 bluescreen joined #parrot
18:21 dalek rakudo: e67ef33 | moritz++ | t/spectest.data:
18:21 dalek rakudo: run exit.t
18:21 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​67ef33a6df8b247e6b4e4da834045668a6ecae3
18:42 LoganLK joined #parrot
18:42 kid51 joined #parrot
18:46 sorear kid51: both the Linux and FreeBSD man pages are, for the most part, quotations from http://www.opengroup.org/onlinepubs/009695399/
18:47 sorear (that's a free copy of POSIX.1)
18:47 kid51 thanks
18:53 dalek TT #1067 closed by jkeenan++: t/pmc/objects.t:  premature death on Darwin/PPC
18:53 dalek TT #1067: http://trac.parrot.org/parrot/ticket/1067
18:53 dalek TT #1452 closed by jkeenan++: add method debug to $conf object
18:53 dalek TT #1452: http://trac.parrot.org/parrot/ticket/1452
19:16 kid51 make fulltest PASS Linux/i386
19:24 Coke man, does partcl-nqp feel slow.
19:36 dalek parrot: r47383 | tcurtis++ | branches/gsoc_past_optimization (2 files):
19:36 dalek parrot: Traverse children when looking for matches.
19:36 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47383/
19:49 Coke hurm. was there a change at some point to NQP that made CONTROL_RETURN not show as CONTROL {} ?
19:53 Coke or perhaps that changed what 'return' does in nqp?
19:54 * Coke digs through github
20:02 pmichaud Coke: I'm not aware of any control changes in NQP.
20:03 Psyche^ joined #parrot
20:03 pmichaud I've been thinking of changing nqp's return to not be exception based.  Would that be a problem for partcl-nqp?
20:13 dalek rakudo: b56b5e6 | jonathan++ | src/metamodel/ClassHOW.pir:
20:13 dalek rakudo: Start to fix up .^attributes somewhat. This at least resolves an RT, but we
20:13 dalek rakudo: can't pass S12-introspection/attributes.t just yet.
20:13 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​56b5e6c5c927cad22b878b53b5d08da0f220821
20:13 dalek rakudo: 6dd7efa | jonathan++ | src/Perl6/Grammar.pm:
20:13 dalek rakudo: Fix a $*MULTINESS leak.
20:13 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​dd7efac4ae63b074582d088122ee12059a465c3
20:13 dalek rakudo: 01ef15a | jonathan++ |  (2 files):
20:13 dalek rakudo: Attribute should inherit from Any; requires a little bit of re-ordering of the
20:13 dalek rakudo: builtins.
20:13 purl builtins are pure perl
20:13 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​1ef15a1686e45d79fa31ea375c136588d1dc331
20:22 Coke pmichaud: at the moment, I have a failing test with [catch]; trying to figure out what's wrong.
20:22 Coke pmichaud: the change wouldn't be a problem, no. would probably let me simplify my code
20:24 pmichaud Coke: good to know, will keep it in mind.
20:30 tcurtis purl, tcurtis?
20:30 purl you are Tyler Curtis <mailto:tyler.l.curtis@gmail.com>
20:30 tcurtis When did purl start working again?
20:35 Coke last few days
20:35 purl last few days are on the machine
20:36 mikehh opbots, names
20:36 dalek rakudo: 22dcb5c | jonathan++ | t/spectest.data:
20:36 dalek rakudo: Turn on S12-introspection/attributes.t.
20:36 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​2dcb5cfa6c38d2f3a9fb216105c10ea400b37e4
20:45 eternaleye joined #parrot
20:53 dalek rakudo: 8befeb2 | jonathan++ | src/core/operators.pm:
20:53 dalek rakudo: Implement the non-role case of does (and thus but, which just delegates to
20:53 dalek rakudo: does), as per S14.
20:53 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​befeb206ead3a7661024cc76c9d9c3584c06edb
21:04 bacek aloha, humans
21:04 davidfetter joined #parrot
21:05 dalek rakudo: 609fd63 | jonathan++ | src/Perl6/Actions.pm:
21:05 dalek rakudo: Add a missing .node in term:sym<name>, which happily gets us reporting sub not
21:05 dalek rakudo: found line numbers more accurately.
21:05 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​09fd63013f231173b535809f35462acd59b29c9
21:11 plobsing joined #parrot
21:17 cotto aloha, bacek
21:17 bacek aloha, cotto
21:26 mikehh hi bacek
21:26 bacek good morning, mikehh
21:27 mikehh bacek: that's ok for you, but I got about an hour and a half to go
21:28 mikehh bacek: any way good time zone :-}
21:28 bacek mikehh, :)
21:29 mikehh bacek: have you had any thoughts on make corevm/make coretest - which is still failing a bunch of tests (both in trunk and elsewhere)
21:30 bacek mikehh, I can take a look.
21:31 mikehh in trunk 13 files FAIL in one way or another
21:32 bacek I think I can fix them in couple of hours.
21:32 mikehh which pass BTW in make test
21:32 bacek Just need more coffee...
21:33 * davidfetter DCCs over some coffee
21:34 mikehh bacek: please have a go, I don't think anyone has opened a ticket on it - will do so after you have had a go at it if necessary
21:34 bacek nope. I can just fix it :)
21:35 bacek but nopasted list of failures can help
21:36 mikehh ok, comming up
21:39 nopaste "mikehh" at 192.168.1.3 pasted "make corevm/make coretest failures at r47381" (48 lines) at http://nopaste.snit.ch/20967
21:40 mikehh This is just the Summary
21:40 mikehh the whole log is 10870 lines
21:42 bacek mikehh, yeah, thanks. Looks about the same as on my box.
21:44 mikehh bacek: anything I can do to help?
21:45 bacek mikehh, I dunno.
21:45 mikehh bacek: well just let me know
21:45 mikehh I'll be around for a bit
21:46 mikehh got some other stuff that needs doin', but will check back here every so often
21:47 dalek parrot: r47384 | bacek++ | trunk/src/pmc/orderedhash.pmc:
21:48 dalek parrot: Use more specific mark_PMC_alive instead of generic PObj version.
21:48 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47384/
21:48 dalek parrot: r47385 | bacek++ | trunk/src/pmc/imageio.pmc:
21:48 dalek parrot: Fix DRY principe.
21:48 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47385/
21:48 dalek parrot: r47386 | bacek++ | trunk/src/dynoplibs/Rules.in:
21:48 dalek parrot: Quiet ops2c for building dynops.
21:48 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47386/
21:48 dalek parrot: r47387 | pmichaud++ | trunk/compilers/pct/src/PAST/Compiler.pir:
21:48 dalek parrot: [pct]:  Convert PAST::Compiler::<@?BLOCK> to be a dynamic lexical.
21:48 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47387/
21:48 dalek parrot: r47388 | pmichaud++ | trunk/compilers/pct/src/PAST/Compiler.pir:
21:48 dalek parrot: [pct]:  Convert $?SUB global into $*SUB dynamic lexical.
21:48 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47388/
22:01 bluescreen joined #parrot
22:05 dalek parrot: r47389 | bacek++ | trunk/t/pmc/stringhandle.t:
22:05 dalek parrot: Fix test - remove redundant loadlib io_ops.
22:05 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47389/
22:05 dalek parrot: r47390 | bacek++ | trunk/config/gen/config_pm/config_pir.in:
22:05 dalek parrot: Treat absence of OS pmc same as absence of installed config.fpmc
22:05 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47390/
22:05 dalek parrot: r47391 | bacek++ | trunk/t/op/sprintf.t:
22:05 dalek parrot: Fix test - use FileHandle, _config instead of op sysinfo.
22:05 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47391/
22:21 dalek parrot: r47392 | bacek++ | trunk (6 files):
22:21 dalek parrot: Move getstd* ops back to core.
22:21 dalek parrot: We can move them back to dynops after deciding of replacement in core.
22:21 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47392/
22:21 dalek parrot: r47393 | bacek++ | trunk/t/op/string_cs.t:
22:22 dalek parrot: Fix test - remove (now) redundant loadlib io_ops.
22:22 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47393/
22:38 dalek parrot: r47394 | NotFound++ | trunk/t/pmc/resizableintegerarray.t:
22:38 dalek parrot: test for RIA clone
22:38 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47394/
22:38 dalek parrot: r47395 | tcurtis++ | branches/gsoc_past_optimization (9 files):
22:38 dalek parrot: Refactored so that every attribute and child is a -able object, preparatory to implementing PAST::Pattern::Match result objects.
22:38 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47395/
22:38 dalek parrot: r47396 | plobsing++ | trunk (5 files):
22:38 dalek parrot: function documentation for compilers/imcc/parser_util.c
22:38 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47396/
22:44 bacek mikehh, still around?
22:48 mikehh bacek: yes - getting much better
22:49 bacek mikehh, t/pmc/io.t requires some major refactoring.
22:49 bacek Almost all failed tests should be moved into t/pmc/filehandle.t and reimplemented in terms of FileHandle methods.
22:49 bacek e.g. "seek"
22:51 mikehh bacek: probably - I was never all that happy with that test anyway
22:53 mikehh bacek: other than t/pmc/io.t (Tests: 45 Failed: 23) I get 1 failure in t/pmc/threads.t - Failed test:  14
22:53 bacek working on it
22:53 mikehh bacek++
22:54 dalek parrot: r47397 | bacek++ | trunk/t/pmc/fixedintegerarray.t:
22:55 dalek parrot: Fix test - use exact comparition instead of regex based. PGE isn't available in corevm.
22:55 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47397/
22:55 dalek parrot: r47398 | bacek++ | trunk/t/pmc/resizablepmcarray.t:
22:55 dalek parrot: Fix test - use exact comparition instead of regex based. PGE isn't available
22:55 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47398/
22:55 dalek parrot: r47399 | bacek++ | trunk/t/pmc/eval.t:
22:55 dalek parrot: Fix test - just override temp file without unlinking it first.
22:55 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47399/
22:55 dalek parrot: r47400 | bacek++ | trunk/t/pmc/io.t:
22:55 dalek parrot: Partially fix test - use FileHandle
22:55 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47400/
22:56 mikehh bacek: make test still passes all tests
22:56 bacek I know :)
22:57 pmichaud PGE isnt' available in corevm... but is the regex library available?
22:58 bacek pmichaud, ?
22:58 purl pmichaud, is there an NQP test suitable for profiling?
22:58 bacek purl, forget pmichaud
22:58 purl bacek: I forgot pmichaud
22:58 bacek stupid girl...
22:58 pmichaud 22:55 <dalek> parrot: Fix test - use exact comparition instead of regex based. PGE isn't available
22:58 pmichaud even if PGE isn't available, perhaps the Regex library is?
22:59 pmichaud I would normally expect it to be available.  :)
22:59 bacek pmichaud, erm. Which regex library?
22:59 pmichaud load_bytecode 'Regex.pbc'
22:59 pmichaud the one that comes from nqp-rx
22:59 bacek nope.
22:59 bacek nqp-rx isn't part of corevm either
22:59 pmichaud okeydokey.
23:00 jnthn purl: /quit is something you should try more often
23:00 purl ...but /quit is <action> quit...
23:00 bacek mikehh, ok. I've put DYNPMCs into corevm target. Not particularly happy with it, but I can't figure out way of skip this test in coretest...
23:00 jnthn .oO( no, this would be very naughty... )
23:02 pmichaud jnthn: I have pasm constants in PAST::Val now :-)
23:02 jnthn pmichaud++
23:02 jnthn That'll make my commit from earlier a bit neater. :-)
23:02 pmichaud fwiw, the reason I'm having to clean up the pasm constants is because I can't add a new exception type
23:02 pmichaud until we can do the symbolic constants
23:02 mikehh bacek: we could move it to the library tests
23:02 pmichaud otherwise nqp-rx sources fail
23:02 jnthn pmichaud: Aww!
23:03 jnthn pmichaud: Thought it was curious timing. :-)
23:04 mikehh bacek: maybe split in two - the parts thaty pass make corevm/make coretest and move the rest to a new test which is not run as part of coretest
23:05 bacek mikehh, it will work. Problem is "ParrotInterp" is part of corevm. And should be fully tested in coretest. (At least it's my expectations)
23:06 jnthn pmichaud: Which route did you take in the end?
23:06 pmichaud jnthn: ?
23:07 jnthn pmichaud: Which of the various syntaxes?
23:07 pmichaud jnthn: PAST::Val.new( :value<CONTROL_NEXT>, :returns<!exception_types>)   # as a PAST node
23:07 pmichaud in nqp, I'm thinking it'll be   pasm::exception_types::CONTROL_NEXT
23:07 jnthn OK
23:07 jnthn :returns...
23:07 jnthn Hmm. OK.
23:07 pmichaud we'll generalize to a nicer nqp:: form eventually
23:08 pmichaud yes, I didn't think :returns was correct either, but in looking at the PAST::Compiler code it seems about right.
23:08 pmichaud each constant is really like an enumeration type
23:08 pmichaud er, an element of an enumeration type
23:08 jnthn Yeah, I can kinda see it
23:08 jnthn I guess the ! prevents collisions in general.
23:08 pmichaud right.
23:08 pmichaud also says "something special is going on here"  :-)
23:09 jnthn Yeah
23:09 pmichaud Someday we'll have a cleaner mechanism, but this can be supported for a while w/o too much difficulty.
23:09 jnthn Though I was expecting we'd start throwing in a bunch more :returns one day in some type analysis phase.
23:09 pmichaud we can still do that.  This only affects PAST::Val nodes.
23:09 jnthn That's not really going to conflict with this though.
23:09 pmichaud right.
23:09 jnthn Yeah, I think it's OK. It just wasn't what I expected at first. :-)
23:09 pmichaud well, me either :)
23:11 dalek parrot: r47401 | plobsing++ | trunk (2 files):
23:11 dalek parrot: C function docs for compilers/imcc/symreg.c
23:11 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47401/
23:11 dalek parrot: r47402 | bacek++ | trunk/config/gen/makefiles/root.in:
23:11 dalek parrot: Temporary hack to build dynpmcs in corevm.
23:11 dalek parrot: This is necessary evil to test Thread PMCs ability to clone dynamic
23:11 dalek parrot: libraries.
23:11 purl libraries are not usually GPL'd
23:11 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47402/
23:11 dalek parrot: r47403 | plobsing++ | trunk (2 files):
23:11 dalek parrot: C function docs for compilers/imcc/pbc.c
23:11 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47403/
23:17 bacek purl, forget libraries
23:17 purl bacek: I forgot libraries
23:26 bacek ok.
23:26 bacek that's enough for today's test fighting.
23:27 bacek mikehh, what about moving whole t/pmc/io.t into t/dynops/io2.t
23:27 bacek ?
23:28 dalek parrot: r47404 | bacek++ | trunk/t/pmc (2 files):
23:28 dalek parrot: Remove few redundant tests
23:28 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47404/
23:28 dalek parrot: r47405 | bacek++ | trunk/t/pmc (2 files):
23:28 dalek parrot: Move filehandle test into t/pmc/filehandle.t
23:28 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47405/
23:28 dalek parrot: r47406 | bacek++ | trunk/t/pmc/io.t:
23:28 dalek parrot: Remove redundant test.
23:28 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47406/
23:28 dalek parrot: r47407 | bacek++ | trunk/t/pmc (2 files):
23:28 dalek parrot: Move filehandle test into t/pmc/filehadle.t
23:28 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47407/
23:41 mikehh bacek: I have no objection
23:42 pmichaud pmichaud@orange:~/parrot/trunk/install/bin$ ./pbc_to_exe
23:42 pmichaud Can't read '/usr/local/lib/parrot/2.4.0​-devel/include/config.fpmc' : No such file or directory
23:42 pmichaud :-(
23:42 pmichaud ...why is pbc_to_exe looking in /usr/local/lib in the first place?!
23:44 jnthn pmichaud: Not a weird conflict with an installed Parrot by any chance? :-S
23:44 pmichaud well, this *is* an installed Parrot, yes.
23:44 jnthn Ah
23:44 pmichaud but no, I don't have a parrot installed in /usr/local
23:44 pmichaud afaik
23:44 jnthn Then, huh.
23:44 pmichaud this is a locally installed parrot
23:44 bacek pmichaud, may be my fault.
23:44 pmichaud bacek: shall I file a ticket for it?
23:45 pmichaud it's causing nqp-rx to not build from an installed parrot
23:45 bacek pmichaud, not yet. Looking
23:45 pmichaud (I presume it would work if the parrot was installed to /usr/local/lib.... but
23:46 kid51 joined #parrot
23:48 sorear pmichaud: well, it's superior to load_library__sc, which looks in . first
23:49 pmichaud sorear: I'm thinking it should know where parrot is installed and look there.
23:52 bacek pmichaud, problem with config.pir
23:56 pmichaud bacek: eta to fix?
23:56 bacek few minutes - one hour...
23:57 pmichaud okay.  I'm kinda blocked until that's fixed, or I can see about replaying my local commits to an earlier commit of parrot and working from there.
23:57 pmichaud afk, dinner here.

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

Parrot | source cross referenced