Parrot 2.4.0 "Sulfur Crest" Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere
Set by moderator on 2 June 2010.
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
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
the principles are exactly the same as for hardware (which is also CBV-only, in normal cases)
00:15 theory joined
ash_ but can you do that in parrot? 00:16
sorear " 00:17
"the principles are exactly the same" means yes 00:18
bacek *incoming* 00:21
dalek rrot: r47361 | bacek++ | branches/gc_massacre/src/gc (2 files):
Add GC.is_string_ptr
00:22
rrot: r47362 | bacek++ | branches/gc_massacre/src/gc/system.c:
Switch to use GC_Sys.is_string_ptr in tracing system areas.
rrot: r47363 | bacek++ | branches/gc_massacre/src/gc/gc_ms2.c:
Factor out gc_ms2_sweep_pool helper function.
rrot: r47364 | bacek++ | branches/gc_massacre/src/gc/gc_ms2.c:
Sweep strings pool.
rrot: r47365 | bacek++ | branches/gc_massacre/src/gc/gc_ms2.c:
Shuffle functions around.
rrot: r47366 | bacek++ | branches/gc_massacre/src/gc/gc_ms2.c:
Destroy PMCs during sweep
rrot: r47367 | bacek++ | branches/gc_massacre/src (2 files):
Hack Parrot_str_copy to clone string and implement freeing of string storage in MS2
rrot: r47368 | bacek++ | branches/gc_massacre/src/gc/gc_ms.c:
Implement .is_string_ptr in old GC.
rrot: r47369 | bacek++ | branches/gc_massacre/src/gc/gc_ms2.c:
Don't mark constant PMCs.
rrot: r47370 | bacek++ | branches/gc_massacre/src/gc/gc_ms2.c:
Count string allocations as header allocations.
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!
bacek laughing evilly
cotto_work dang
sorear but Parrot *is* the dark side 00:25
cotto_work I'm sure the Rakudo guys would agree right now.
ash_ is there a way to do: int a = 4; foo(&a); where foo might be: void foo(int*); as its prototype 00:32
00:32 tcurtis joined
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:34
bacek cotto_work, "getting volunteers" will be hardest part :) 00:35
cotto_work likely enough, though I don't mind being persistent and getting warnocked a bit 00:37
bacek I just can't help with it right now... GC taking almost all my attention. 00:38
cotto_work sure
It'll be a little bit before design starts in earnest.
time for home going 00:48
ash_ ping plobsing? 00:54
dalek rrot: r47371 | bacek++ | branches/gc_massacre/src/gc/gc_ms2.c:
Sligtly optimize allocation strategy.
00:56
00:57 patspam joined
jnthn bacek: ŠŸŃ€ŠøŠ²ŠµŃ‚! How's the GC work going? 00:57
bacek jnthn, reasonably well.
jnthn Dobre. :-)
er, EWRONGSLAVICLANGUAGE
bacek :))) 00:58
jnthn bacek: Much performance win?
bacek: Or not at the point where that's really possible to measure yet?
bacek jnthn, nope. Simple M&S at about same speed.
If you can offer some real-life test I can try to measure it. 00:59
jnthn "build Rakudo" ;-)
It's a good benchmark or parsing stuff, at least. 01:00
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.
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
I talked to pmichaud, he says this is actually faster than using real Objects
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...
ash_ sorear: gist.github.com/426157 it seems to pass by reference you have to use a PMC 01:06
jnthn fwiw, after Rakudo * I'm planning to re-do the way Perl 6 objects are handled internally. 01:09
It's silly that every attribute access is a hash lookup.
When we statically know all of the attributes in a given class, and attributes are very private to that class. 01:10
(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
I'm really looking forward to the promised unification of PMCs with objects 01:12
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
When really it should be one with two native doubles in it.
ash_ native doubles? 01:14
sorear 1 object = PMC header + Object attributes allocation + PMC RPA header for HLL attributes + RPA attributes block + RPA storage
jnthn ash_: As in, not objects, but just a FLOATVAL
ash_ got ya
jnthn sorear: "RPA attributes block"? 01:15
01:18 plobsing joined
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:18
jnthn ash_: It'd be along those lines, I gues. 01:19
*guess
Certainly evil stuff to write. :_)
01:19 bacek joined
ash_ plobsing: hey, i got a good ground work for my signature parser working, 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
jnthn: i'd only be worried about subclassing it, as long as the subclass behaved properly with its attributes
jnthn ash_: In Perl 6, you can only access attributes in the current class. 01:22
Which makes things a bit easier.
Things that want to subclass Perl 6 objects are just going to have to cope with its encapsulation rules. :-)
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) $!
er, $!a
ash_ got ya
jnthn So it will work
What you can't write is
ash_ but $!a won't work
jnthn class A { has $.a }; class B is A { method foo { $!a } };
ash_ that makes sense
jnthn That should really fail at compile time. 01:24
bacek nice... Building rakudo almost killed my box... 01:25
01:26 tetragon joined
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:26
jnthn P6opaque should be able to handle storing native things. 01:28
At the moment it's just a subclass of Parrot's Object PMC
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:30
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
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"
that way you don't need long strings of repeated characters as zavolaj does now 01:33
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)
ash_ no, i wasn't planning on validating parameters much, if at all 01:35
only doing basic things like if you asked for an int, making sure its an int
plobsing how do you make sure its an int?
ash_ get_integer? 01:36
jnthn I think the current NCI is more coerce-y than constraint-y.
ash_: Aye, but that's more "make it be" rather than "checking it is". :-)
plobsing exactly. and I think it should remain that way
jnthn ash_: Not that that's a bad thing.
plobsing: Agree. 01:37
plobsing leave the type systems to the HLLs
ash_ Okay, well i mean "make it be" as jnthn puts it
thats fine if it seems to complicated
plobsing although I do like the ability to specify arrays for structs 01:38
ash_ "v(ii)" = void (*)(struct { int; int; } ); "v(i[2])" is functionally equivalent but looks different 01:39
i'll get the postfix [ ] working soon 01:40
also that doesn't have to be in a struct, you can do "vi[3]" or w/e
jnthn Oh, I'd almost expected i[2] to be int*
e.g. a pointer to an array of int 01:41
How do you write the signature for that?
ash_ *i is a pointer to int
i[2] is a C array; like: int a[2];
jnthn OK
ash_ jnthn: 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
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
jnthn plobsing: Thanks, that's what I was trying to get at. :-)
tcurtis ash_: what's the syntax for function pointers? 01:45
ash_ U
dalek rrot: r47372 | bacek++ | branches/gc_massacre (103 files):
Merge branch 'master' into gc_massacre
01:47
plobsing arg. why do I only remember about TPL now? that could have been a useful reference grammar. 01:48
tpl.sourceforge.net/userguide.html
might have been useful 2 weeks ago 01:49
ash_ mines highly inspired by perl 5's pack perldoc.perl.org/functions/pack.html
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?
plobsing there are already
so yes
tcurtis Additional helper functions, rather.
plobsing what's lacking about the current ones? have you even tried them? 01:51
ash_ docs.parrot.org/parrot/latest/html/...l.pod.html has an example with a callback towards the bottom 01:54
tcurtis There are only two possible signatures for callback functions according to said doc. 01:56
plobsing 2 classes of signature. it is somewhat limiting, but without dynamic code generation, you can't really do better than creating thunks 01:57
so in the general case, you can't do better 01:58
ash_ libffi could assist with that, no?
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?
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.
so *depending* on libffi is the wrong way to go. Having its nice features where available is good though. 02:00
ash_ hmm, well, if it doesn't work everything, that makes sense 02:01
maybe i'll make a library for it later
to have other callbacks
plobsing I could look into making a hook for NCI callbacks like I did for NCI thunks. But that didn't really get used...
tcurtis How does python do it? 02:02
plobsing tcurtis: doc url?
tcurtis docs.python.org/library/ctypes.html...-functions
ash_ they use ctypes
err libffi
libffi is bundled with python's core, so they just rely on it for making that trampoline 02:03
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
granted libffi's support is pretty good... according to their readme
github.com/atgreen/libffi/blob/master/README#L52 is an up to date list of supported platforms 02:05
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
(W^X without the ability to toggle bits in regions prevents closures from working)
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:08
plobsing yes, so long as we don't take away the partial support that currently exists for everyone 02:09
ash_ brb making dinner & 02:15
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.
cotto hey purl. 02:33
sorear jnthn: 1 object = 2x PMC (Object, and a ResizablePMCArray to hold the slots) 02:35
jnthn: Object = header + attributes
jnthn: ResizablePMCArray = header + attributes + buffer 02:36
dalek rrot: r47373 | tcurtis++ | branches/gsoc_past_optimization (2 files):
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
02:38 gbacon joined 02:39 ingy joined 02:55 khairul joined
khairul cotto: ping 02:56
bacek khairul, cotto left work about an hour ago. Should be only pretty soon. 03:07
khairul bacek: no problem, its no rush. 03:08
dalek rrot: r47374 | tcurtis++ | branches/gsoc_past_optimization/runtime/parrot/library/PAST/Pattern.nqp:
Remove some debugging output statements I forgot to remove.
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
cotto I have a guest 03:35
khairul, I'll have to catch you later
khairul sure no prob 03:36
03:38 janus joined 03:46 mikehh_ joined
dalek TT #1147 closed by plobsing++: [PATCH] update nci.pmc for pcc_reapply 04:46
TT #1147: trac.parrot.org/parrot/ticket/1147
05:09 eternaleye joined
cotto still alive? 05:33
purl alive (adj.) Possessing a life. Antonym: programmer.
cotto khairul, I seem to be back. 05:34
khairul cotto: see privmsg 05:39
cotto don't mind if I do
06:13 mikehh__ joined 06:29 Maddingue joined 06:30 fperrad joined 06:34 fperrad_ joined
mikehh opbots, names 07:28
dalek rrot: r47375 | mikehh++ | branches/gc_massacre/src/gc/gc_ms2.c:
fix/add ASSERT_ARGS
08:04
mikehh bacek: gc_massacre branch codetest passes except for c++ comments in src/gc/gc_tms.c 08:29
dalek rrot: r47376 | mikehh++ | branches/gc_massacre/src/gc/gc_ms2.c:
add documentation
08:37
rrot: r47377 | mikehh++ | branches/gc_massacre/src/gc/gc_ms.c:
add documentation
10:02 fperrad joined 10:05 LoganLK joined
nopaste "bacek" at 192.168.1.3 pasted "Something like this. MS vs MS2 GC performance." (12 lines) at nopaste.snit.ch/20945 10:06
10:20 Themeruta joined 10:26 aukjan joined 10:52 khairul joined 11:09 gbacon joined
moritz what is ms2? 11:16
bacek moritz, simple mark&sweep as described on GCMassacre wiki page 11:22
11:31 whiteknight joined
bacek whiteknight, aloha 11:35
whiteknight good morning bacek
bacek whiteknight, you'll love my latest 3 commits into trunk... 11:36
whiteknight, trac.parrot.org/parrot/changeset/47378 11:37
dalek rrot: r47378 | bacek++ | trunk/include/parrot/gc_api.h:
Use non-zero value for GC trace flags. Fix a GC trace collection bug which is at least 2 year old.
rrot: r47379 | bacek++ | trunk/src/ops (2 files):
Use predefined flag in op sweep instead of wrong magical 0
rrot: r47380 | bacek++ | trunk/include/parrot/gc_api.h:
Erm. Fix GC flags again to preserve equality of trace_stack and trace_normal flags.
11:38 fperrad_ joined
whiteknight nice 11:41
11:48 khairul joined
dalek kudo: 09314df | (Gerd Pokorra)++ | build/Makefile.in:
Explicitly set --name for perl6.1 man page
12:07
imitivearc: edb8fc7 | (Stefano Dissegna)++ | (22 files):
various bug fixes
12:09
imitivearc: 0d54e92 | (Stefano Dissegna)++ | DIFFERENCES:
started documenting differences with official Arc
rrot: r47381 | khairul++ | branches/gsoc_instrument (2 files):
Added tests for hook insertion and removal.
12:10
12:36 radu joined 12:38 mikehh_ joined 13:49 JimmyZ joined 14:03 ash_ joined
dalek nxed: r489 | julian.notfound++ | trunk/examples/ajax.winxed:
add fake async mode to example ajax
14:09
14:33 radu joined 14:40 lucian joined
JimmyZ parrot builds failed on windows? 14:49
ignore it 14:53
purl ignore it is the secret ingredient
15:08 tetragon joined
dalek kudo: 8c85fb4 | moritz++ | src/Perl6/Grammar.pm:
fix p5 -> p6 regex error message confusion
15:15
15:29 aukjan joined 15:36 ingy joined 16:07 patspam joined 16:28 joeri joined 16:51 theory joined
dalek rrot: r47382 | jonathan++ | trunk/compilers/pct/src/PCT/HLLCompiler.pir:
[pct] Improve backtrace handling so that we resume warning exceptions and actually exit upon exit exceptions.
17:05
moritz jnthn: does that make warnings non-fatal again?
17:13 tcurtis joined
pmichaud ...apparently the "exit $I0" opcode will set the _type_ of the exception to whatever value is passed in $I0. Bug? 17:23
(src/ops/core.ops:826) 17:24
I think we should have an exception type of CONTROL_EXIT, and the exit() opcode uses that.
it appears several places in the ops confuses "exception type" with "exit status" 17:25
*confuse
or, we could use CONTROL_ERROR for the exception type 17:27
but using the exit status as the exception type seems Wrong.
moritz aye
cotto msg khairul You might sync with trunk to see the fix by bacek++ fixes your bug. 17:32
purl Message for khairul stored.
cotto Sheesh. I'm embarrassed for us having such a bug for so long. 17:35
jnthn moritz: Yes. 17:36
17:36 cognominal joined
dalek kudo: 53c3a48 | jonathan++ | build/PARROT_REVISION:
Bump to latest Parrot to get improvements to the backtrace handling code; this
17:40
kudo: c3e84aa | jonathan++ | src/builtins/control.pir:
The default Warning message should not come with a \\n on it already.
kudo: 01583bf | jonathan++ | src/Perl6/BacktracePrinter.pm:
Make backtrace printer smart enough to recognize warnigns - which it is now
17:43 radu joined
tcurtis pmichaud: so.. exit 0 throws a "EXCEPTION_BAD_BUFFER_SIZE" exception? 17:48
pmichaud tcurtis: worse, exit 64 throws a CONTROL_LOOP_NEXT exception 17:49
17:46 <pmichaud> rakudo: for 1..4 { say $_; exit 64; }
17:46 <p6eval> rakudo 8c85fb: OUTPUT«1␤2␤3␤4␤»
18:07 sorear joined 18:09 bluescreen joined
dalek kudo: e67ef33 | moritz++ | t/spectest.data:
run exit.t
18:21
18:42 LoganLK joined, kid51 joined
sorear kid51: both the Linux and FreeBSD man pages are, for the most part, quotations from www.opengroup.org/onlinepubs/009695399/ 18:46
(that's a free copy of POSIX.1) 18:47
kid51 thanks
dalek TT #1067 closed by jkeenan++: t/pmc/objects.t: premature death on Darwin/PPC 18:53
TT #1067: trac.parrot.org/parrot/ticket/1067
TT #1452 closed by jkeenan++: add method debug to $conf object
TT #1452: trac.parrot.org/parrot/ticket/1452
kid51 make fulltest PASS Linux/i386 19:16
Coke man, does partcl-nqp feel slow. 19:24
dalek rrot: r47383 | tcurtis++ | branches/gsoc_past_optimization (2 files):
Traverse children when looking for matches.
19:36
Coke hurm. was there a change at some point to NQP that made CONTROL_RETURN not show as CONTROL {} ? 19:49
or perhaps that changed what 'return' does in nqp? 19:53
Coke digs through github 19:54
pmichaud Coke: I'm not aware of any control changes in NQP. 20:02
20:03 Psyche^ joined
pmichaud I've been thinking of changing nqp's return to not be exception based. Would that be a problem for partcl-nqp? 20:03
dalek kudo: b56b5e6 | jonathan++ | src/metamodel/ClassHOW.pir:
Start to fix up .^attributes somewhat. This at least resolves an RT, but we
20:13
kudo: 6dd7efa | jonathan++ | src/Perl6/Grammar.pm:
Fix a $*MULTINESS leak.
kudo: 01ef15a | jonathan++ | (2 files):
Attribute should inherit from Any; requires a little bit of re-ordering of the
purl builtins are pure perl
Coke pmichaud: at the moment, I have a failing test with [catch]; trying to figure out what's wrong. 20:22
pmichaud: the change wouldn't be a problem, no. would probably let me simplify my code
pmichaud Coke: good to know, will keep it in mind. 20:24
tcurtis purl, tcurtis? 20:30
purl you are Tyler Curtis <mailto:tyler.l.curtis@gmail.com>
tcurtis When did purl start working again?
Coke last few days 20:35
purl last few days are on the machine
mikehh opbots, names 20:36
dalek kudo: 22dcb5c | jonathan++ | t/spectest.data:
Turn on S12-introspection/attributes.t.
20:45 eternaleye joined
dalek kudo: 8befeb2 | jonathan++ | src/core/operators.pm:
Implement the non-role case of does (and thus but, which just delegates to
20:53
bacek aloha, humans 21:04
21:04 davidfetter joined
dalek kudo: 609fd63 | jonathan++ | src/Perl6/Actions.pm:
Add a missing .node in term:sym<name>, which happily gets us reporting sub not
21:05
21:11 plobsing joined
cotto aloha, bacek 21:17
bacek aloha, cotto
mikehh hi bacek 21:26
bacek good morning, mikehh
mikehh bacek: that's ok for you, but I got about an hour and a half to go 21:27
bacek: any way good time zone :-} 21:28
bacek mikehh, :)
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:29
bacek mikehh, I can take a look. 21:30
mikehh in trunk 13 files FAIL in one way or another 21:31
bacek I think I can fix them in couple of hours. 21:32
mikehh which pass BTW in make test
bacek Just need more coffee...
davidfetter DCCs over some coffee 21:33
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 :)
but nopasted list of failures can help 21:35
mikehh ok, comming up 21:36
nopaste "mikehh" at 192.168.1.3 pasted "make corevm/make coretest failures at r47381" (48 lines) at nopaste.snit.ch/20967 21:39
mikehh This is just the Summary 21:40
the whole log is 10870 lines
bacek mikehh, yeah, thanks. Looks about the same as on my box. 21:42
mikehh bacek: anything I can do to help? 21:44
bacek mikehh, I dunno. 21:45
mikehh bacek: well just let me know
I'll be around for a bit
got some other stuff that needs doin', but will check back here every so often 21:46
dalek rrot: r47384 | bacek++ | trunk/src/pmc/orderedhash.pmc:
Use more specific mark_PMC_alive instead of generic PObj version.
21:47
rrot: r47385 | bacek++ | trunk/src/pmc/imageio.pmc:
Fix DRY principe.
rrot: r47386 | bacek++ | trunk/src/dynoplibs/Rules.in:
Quiet ops2c for building dynops.
rrot: r47387 | pmichaud++ | trunk/compilers/pct/src/PAST/Compiler.pir:
[pct]: Convert PAST::Compiler::<@?BLOCK> to be a dynamic lexical.
rrot: r47388 | pmichaud++ | trunk/compilers/pct/src/PAST/Compiler.pir:
[pct]: Convert $?SUB global into $*SUB dynamic lexical.
22:01 bluescreen joined
dalek rrot: r47389 | bacek++ | trunk/t/pmc/stringhandle.t:
Fix test - remove redundant loadlib io_ops.
22:05
rrot: r47390 | bacek++ | trunk/config/gen/config_pm/config_pir.in:
Treat absence of OS pmc same as absence of installed config.fpmc
rrot: r47391 | bacek++ | trunk/t/op/sprintf.t:
Fix test - use FileHandle, _config instead of op sysinfo.
rrot: r47392 | bacek++ | trunk (6 files):
Move getstd* ops back to core.
22:21
rrot: r47393 | bacek++ | trunk/t/op/string_cs.t:
Fix test - remove (now) redundant loadlib io_ops.
rrot: r47394 | NotFound++ | trunk/t/pmc/resizableintegerarray.t:
test for RIA clone
22:38
rrot: r47395 | tcurtis++ | branches/gsoc_past_optimization (9 files):
Refactored so that every attribute and child is a -able object, preparatory to implementing PAST::Pattern::Match result objects.
rrot: r47396 | plobsing++ | trunk (5 files):
function documentation for compilers/imcc/parser_util.c
bacek mikehh, still around? 22:44
mikehh bacek: yes - getting much better 22:48
bacek mikehh, t/pmc/io.t requires some major refactoring. 22:49
Almost all failed tests should be moved into t/pmc/filehandle.t and reimplemented in terms of FileHandle methods.
e.g. "seek"
mikehh bacek: probably - I was never all that happy with that test anyway 22:51
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
mikehh bacek++
dalek rrot: r47397 | bacek++ | trunk/t/pmc/fixedintegerarray.t:
Fix test - use exact comparition instead of regex based. PGE isn't available in corevm.
22:54
rrot: r47398 | bacek++ | trunk/t/pmc/resizablepmcarray.t:
Fix test - use exact comparition instead of regex based. PGE isn't available
rrot: r47399 | bacek++ | trunk/t/pmc/eval.t:
Fix test - just override temp file without unlinking it first.
rrot: r47400 | bacek++ | trunk/t/pmc/io.t:
Partially fix test - use FileHandle
mikehh bacek: make test still passes all tests 22:56
bacek I know :)
pmichaud PGE isnt' available in corevm... but is the regex library available? 22:57
bacek pmichaud, ? 22:58
purl pmichaud, is there an NQP test suitable for profiling?
bacek purl, forget pmichaud
purl bacek: I forgot pmichaud
bacek stupid girl...
pmichaud 22:55 <dalek> parrot: Fix test - use exact comparition instead of regex based. PGE isn't available
even if PGE isn't available, perhaps the Regex library is?
I would normally expect it to be available. :) 22:59
bacek pmichaud, erm. Which regex library?
pmichaud load_bytecode 'Regex.pbc'
the one that comes from nqp-rx
bacek nope.
nqp-rx isn't part of corevm either
pmichaud okeydokey.
jnthn purl: /quit is something you should try more often 23:00
purl ...but /quit is <action> quit...
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...
jnthn
.oO( no, this would be very naughty... )
pmichaud jnthn: I have pasm constants in PAST::Val now :-) 23:02
jnthn pmichaud++
That'll make my commit from earlier a bit neater. :-)
pmichaud fwiw, the reason I'm having to clean up the pasm constants is because I can't add a new exception type
until we can do the symbolic constants
mikehh bacek: we could move it to the library tests
pmichaud otherwise nqp-rx sources fail
jnthn pmichaud: Aww!
pmichaud: Thought it was curious timing. :-) 23:03
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:04
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:05
jnthn pmichaud: Which route did you take in the end? 23:06
pmichaud jnthn: ?
jnthn pmichaud: Which of the various syntaxes? 23:07
pmichaud jnthn: PAST::Val.new( :value<CONTROL_NEXT>, :returns<!exception_types>) # as a PAST node
in nqp, I'm thinking it'll be pasm::exception_types::CONTROL_NEXT
jnthn OK
:returns...
Hmm. OK.
pmichaud we'll generalize to a nicer nqp:: form eventually
yes, I didn't think :returns was correct either, but in looking at the PAST::Compiler code it seems about right. 23:08
each constant is really like an enumeration type
er, an element of an enumeration type
jnthn Yeah, I can kinda see it
I guess the ! prevents collisions in general.
pmichaud right.
also says "something special is going on here" :-)
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.
jnthn Though I was expecting we'd start throwing in a bunch more :returns one day in some type analysis phase.
pmichaud we can still do that. This only affects PAST::Val nodes.
jnthn That's not really going to conflict with this though.
pmichaud right.
jnthn Yeah, I think it's OK. It just wasn't what I expected at first. :-)
pmichaud well, me either :)
dalek rrot: r47401 | plobsing++ | trunk (2 files):
C function docs for compilers/imcc/symreg.c
23:11
rrot: r47402 | bacek++ | trunk/config/gen/makefiles/root.in:
Temporary hack to build dynpmcs in corevm.

libraries.
purl libraries are not usually GPL'd
rrot: r47403 | plobsing++ | trunk (2 files):
C function docs for compilers/imcc/pbc.c
bacek purl, forget libraries 23:17
purl bacek: I forgot libraries
bacek ok. 23:26
that's enough for today's test fighting.
mikehh, what about moving whole t/pmc/io.t into t/dynops/io2.t 23:27
?
dalek rrot: r47404 | bacek++ | trunk/t/pmc (2 files):
Remove few redundant tests
23:28
rrot: r47405 | bacek++ | trunk/t/pmc (2 files):
Move filehandle test into t/pmc/filehandle.t
rrot: r47406 | bacek++ | trunk/t/pmc/io.t:
Remove redundant test.
rrot: r47407 | bacek++ | trunk/t/pmc (2 files):
Move filehandle test into t/pmc/filehadle.t
mikehh bacek: I have no objection 23:41
pmichaud pmichaud@orange:~/parrot/trunk/install/bin$ ./pbc_to_exe 23:42
Can't read '/usr/local/lib/parrot/2.4.0-devel/include/config.fpmc' : No such file or directory
:-(
...why is pbc_to_exe looking in /usr/local/lib in the first place?!
jnthn pmichaud: Not a weird conflict with an installed Parrot by any chance? :-S 23:44
pmichaud well, this *is* an installed Parrot, yes.
jnthn Ah
pmichaud but no, I don't have a parrot installed in /usr/local
afaik
jnthn Then, huh.
pmichaud this is a locally installed parrot
bacek pmichaud, may be my fault.
pmichaud bacek: shall I file a ticket for it?
it's causing nqp-rx to not build from an installed parrot 23:45
bacek pmichaud, not yet. Looking
pmichaud (I presume it would work if the parrot was installed to /usr/local/lib.... but
23:46 kid51 joined
sorear pmichaud: well, it's superior to load_library__sc, which looks in . first 23:48
pmichaud sorear: I'm thinking it should know where parrot is installed and look there. 23:49
bacek pmichaud, problem with config.pir 23:52
pmichaud bacek: eta to fix? 23:56
bacek few minutes - one hour...
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
afk, dinner here.