Parrot 2.5.0 release time is on 15th at 12:00 UTC | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | Priorities: fix io_ops mess in corevm/coretest, review and update documentation before release
Set by moderator on 9 June 2010.
ash_ gist.github.com/ea759b72f3ce3be7f724 line 95 is the bad one i think, or i am just grasping at straws here 00:14
found it, i referenced something wrong 00:44
00:55 plobsing joined
mikehh ash_: any reason you are using for example: i += 1; rather than i++; 00:56
ash_ not really... 00:57
++ gets confusing if you use it in some places, so i kinda avoid it altogether, but i don't mind putting in ++; 00:58
00:59 abqar joined
mikehh ash_: I also think the if .. switch .. else if .. switch .. etc in parse_identifier is far to complex and you could easily get lost there 01:03
ash_ yeah, i need to find some way of simplifying that table
if you have any suggestions let me know, they are subtly different, which is the annoying part
mikehh ash_: I'll have a think about it in a few hours - need sleep now 01:05
ash_ no worries, i'll keep thinking about it too
plobsing ash_: hi! 01:17
ash_ hi
ash_ i wonder if i could get parrot to be somewhat integrated into xcode... it might help with debugging 01:18
my commandline fu is weak
plobsing: i have my signature parser almost completely integrated with the nci pmc 01:19
plobsing I find parrot's low-level debugging facilities to be lacking in general, but that's not as important as making higher level concepts actually work.
ash_: I saw. I've downloaded your nopasted example to try and track the segfault you mentioned (logs++) 01:20
ash_ and by almost it builds the correct ffi_cif object now, but it doesn't invoke them properly
i just updated it, it should work now, in theory, or if you git clone my repo, there is a folder called "throw_away" (i couldn't think of a better name, but i wanted to have my stuff in the repo), you can try building 01:21
i wasn't dereferencing enough on line 98 of the gist 01:23
plobsing &*arg_types[arg_count] ?? 01:24
ash_ yea 01:25
i didn't have the * in there
i needed it
plobsing but (IRCC) & and * have the same precedence and are inverses. somethings fishy 01:26
ash_ i agree with mikehh++ though, i need to simplify parse identifier, the nested if's with switches seems complicated, but i can't think of a better way
either way, i am getting really close to having the current nci system build all of its calls dynamically, this means the core_thunks and extra_thunks are not needed anymore 01:27
arnsholt I'm with plobsing, that statement looks odd 01:28
plobsing ash_: if you have a lot of types, it is going to probably be on that order in length, but I would move the ifs inside the case. The distinction between char and long is more important (IMHO) than the distinction between unsigned long and signed long. 01:32
ash_ yeah, that makes sense 01:35
plobsing so it looks like that's comming together nicely. Do you think you'll have a working demo by next week? 01:42
ash_ plobsing: did you hear that the llvm people have a new debugger for the llvm, which i know was one of the complaints of the unladen swallow people was that the debugging support for the llvm was not great
plobsing: by next week for sure, i'd like to wrap it up asap and start planning the llvm changes... 01:43
if i could just have one good break with the stuff thats keeping me up (mostly debugging the pmc, it's been hard up to this point since i haven't gotten it to run with gdb for whatever reason), i think i could get the basics finished. I still need to work on the config stuff but i'll worry about that once i get the functionality there 01:44
plobsing debugging PMCs with gdb? yeah, I gave up trying to make that work. I tend to extract the vtable to another function and put the breakpoint on the extracted function. crude yet effective. 01:45
ash_ in gdb, can you print a STRING's contents? 01:46
i just got it working (sorta)
plobsing p *s
so long as it doesn't have embedded nulls, strstart (being a char *) will be assumed to be a string
ash_ ah, i didn't think that would be in there
cool, thanks
having the gdb will make this a lot easier...
i was putting in printfs everywhere... 01:47
plobsing AFAIK, gdb can eval arbitrary expressions in supported languages (including C)
ash_ glad i am not doing that now
are strings null terminated? 01:48
plobsing in parrot? not by documentation, but in practice, it seems so.
I think the allocator zeroes memory or something.
ash_ I assume I should use parrot's malloc/calloc right? do those do anything special? or are they just wrappers 01:53
01:53 TiMBuS joined
plobsing ash_: they are wrappers so that we can do special things if we so choose 01:53
so yes, use them 01:54
ash_ alright, i'll switch my mallocs and callocs over to those
plobsing just a heads up before you write too much more code: the codingstd tests will throw a fit on your current code. IWBNI you followed parrot style a little more closely. 01:56
ash_ were are the style guide lines?
plobsing pdd07_codingstd.pod 01:57
purl somebody said pdd07_codingstd.pod was just for parrot source code
plobsing coding style is a lot easier to write than to fix up (unless you're an indent(1) wizard) 01:58
ash_ i'll read over them and start following them as best ican 01:59
plobsing you can register your C files in the appropriate place and then 'make codetest' will call you on anything that isn't kosher 02:00
ash_ k, do i have to add my files to the MANIFEST? 02:02
plobsing I can never remember. I'm currently tracing through the tests to see where they get their "big list of C files".
bacek_at_work tools/dev/mk_manifest_and_skip.pl if you are on svn checkout 02:07
plobsing yes, I'm fairly sure C files get included in the list after adding to MANIFEST and reconfig
or what bacek++ said 02:08
ash_ is there a parrot calloc? 02:16
cotto ash_, include/parrot/memory.h
look for "zeroed" 02:17
ash_ mem_allocate_n_zeroed_typed ?
cotto if you want more than one thing, yes 02:18
ash_ k, is the mem_gc_allocate_* functions the same but integrated into the gc? 02:19
plobsing I would also like to know that. they seem to be used interchangeably in places. 02:20
cotto bacek_at_work, I believe you have a question. ;)
plobsing also why does zeroed imply interior pointers? 02:22
cotto msg khairul Don't forget to run make codingstd_test every now and then. 02:25
purl Message for khairul stored.
02:27 theory joined 02:40 tetragon joined
bacek_at_work Idea behind "mem_gc_*" functions that they are overridable in GC. 02:49
"zeroed" because it's usually used for memory with pointer. 02:50
not mandatory requirements.
Anyway "_with_interior" imply that memory _can_ contains pointer. 02:51
02:51 szabgabx_ joined
ash_ so, if I am using an internal data structure (as in it never sees pir or anywhere outside of the pmc i am working in) i should use the _with_interior? 02:52
bacek_at_work ash_, if it contains pointers - yes 03:02
ash_ alright, they do contain pointers, so i'll have to make sure i don't have any leaky data structures 03:03
03:06 janus joined
bacek_at_work ash_, current GC is precise. So you have to implement custom VTABLE mark. 03:09
dalek rrot: r47523 | tcurtis++ | branches/gsoc_past_optimization (4 files):
Fix a PAST::Pattern.transform bug and add an example of constant folding with PAST::Pattern.
03:10
ash_ thanks, i'll keep that in mind and make the vtable mark appropriate 03:14
03:26 LoganLK joined 03:39 petdance joined 03:40 snarkyboojum joined 04:03 tetragon joined
cotto clock? 05:00
purl cotto: LAX: Wed 10:00pm PDT / CHI: Thu 12:00am CDT / NYC: Thu 1:00am EDT / LON: Thu 6:00am BST / BER: Thu 7:00am CEST / IND: Thu 10:30am IST / TOK: Thu 2:00pm JST / SYD: Thu 3:00pm EST / 05:01
05:02 tetragon_ joined
sorear seen pmichaud 05:13
purl pmichaud was last seen on #parrot 8 hours, 31 minutes and 49 seconds ago, saying: I don't. :-)
05:38 fperrad joined 05:41 fperrad_ joined 05:55 aukjan joined 06:02 uniejo joined
dalek tracwiki: v1 | cotto++ | LoritoSecurity 06:15
tracwiki: initial version, no actual contents
tracwiki: trac.parrot.org/parrot/wiki/LoritoS...ction=diff
tracwiki: v1 | cotto++ | LoritoConcurrency 06:32
tracwiki: initial version, no contents yet
tracwiki: trac.parrot.org/parrot/wiki/LoritoC...ction=diff
tracwiki: v17 | cotto++ | LoritoRoadmap
tracwiki: trac.parrot.org/parrot/wiki/LoritoR...ction=diff
dukeleto seems like Parrot_compreg has no test coverage 06:51
why is it that I can only read the source of IMMC after a few drinks? 06:57
IMCC, even
moritz because it doesn't hurt so much if you can't read straight? 07:02
07:15 baest joined
dukeleto moritz: yes, you are correct 07:16
the 3rd arg of Parrot_compreg is Parrot_compiler_func_t, but that is not in the embed/extend interface 07:19
07:25 he joined
cotto classy 07:32
dukeleto i would like to know how to fix things like this 07:38
dukeleto falls down in yak-filled quicksand 07:39
cotto but you can build a bridge over the yak pit so other people won't have to fall into it! 07:45
Tene build it out of yak hair! 07:48
cotto there's plenty 07:50
and duct tape too
use what you've got
dukeleto there sure is a lot of duct tape in imcc
bacek aloha, humans
cotto aloha, bacek 07:51
bacek aloha, cotto
dukeleto bacek: hello
it seems that Parrot_compile_string can only handle PIR or PASM and errors out on any other language 07:52
i want to compile a rakudo (perl6) string from the embed API
bacek dukeleto, do it via pir.
dukeleto bacek: yeah, that was what I was thinking 07:53
bacek: it is not possible from PIR?
bacek: err, i mean C 07:54
bacek dukeleto, no afaik
dukeleto bacek: i see
bacek: should I make a TT for that, or does one exist? 07:55
bacek dukeleto, I don't think that we have such ticket.
OTOH, I don't think we should able to do it from C 07:56
dukeleto bacek: interesting. why so? 08:03
bacek it's 5 lines pir sub to invoke any other compiler.
And we discourage using of C (in Lorito world) 08:04
And list of available compilers is dynamic.
dukeleto bacek: i am talking about from the embedding API 08:07
bacek: i am hacking on PL/Perl6 on top of PL/Parrot (Parrot in Postgres) 08:08
cotto bacek, you'll like this
bacek dukeleto, from embedding api you can call PIR sub which will invoke any compiler
cotto assuming make test passes
bacek cotto, like what? 08:09
dukeleto bacek: yes, but i have to go from C->PIR->Perl 6->C instead of C->Perl 6->C
cotto using proper multis in opsc
bacek dukeleto, no. You go from C->parrot->C
cotto, yay! It was one of driving ideas for me to implement multis in nqp :) 08:10
dukeleto bacek: yeah, it is about the same
cotto It was really straightforward.
bacek dukeleto, so, why to bother with extending embed api?
dukeleto bacek: what do you mean? 08:11
bacek Time to go and sing anthem.
dukeleto, functionality to invoke any compiler already available from embed API.
All compilers are in PIR (apart IMCC, but I'm working on it) 08:12
So, writing 1 small pir sud doesn't add too much overhead.
afk # ozzying 08:13
dukeleto bacek: yeah, you are write
right, even
dukeleto needs to pass out
cotto bacek, two things for when you get back: 08:15
does PIRATE have something I could hack on without stepping on your toes?
Is there anything else in opsc that you know would be better if rewritten to use multis? 08:16
dalek rrot: r47524 | cotto++ | trunk/compilers/opsc/src/Ops/Op.pm:
[opsc] use proper multis in Ops::Op.process_body_chunk
08:22
08:24 clinton joined
dukeleto i just got imcc to core dump postgres. i should *really* go to sleep. 08:29
cotto wouldn't hurt me either 08:30
dalek kudo: f0e5fe6 | (Patrick Abi Salloum)++ | src/core/MAIN.pm:
Support for multi sub main
08:34
kudo: 811cd66 | (Patrick Abi Salloum)++ | src/core/MAIN.pm:
Support automatic usage
kudo: 6e3624e | (Patrick Abi Salloum)++ | src/core/MAIN.pm:
Better usage message when using -e
kudo: 14d1542 | (Patrick Abi Salloum)++ | src/core/MAIN.pm:
USAGE-one-sub and process-cmd-args don't polute the global namespace anymore,
kudo: 037a9db | (Patrick Abi Salloum)++ | src/core/MAIN.pm:
[minor] added comment removed empty line
kudo: 2c1c3d7 | moritz++ | src/core/MAIN.pm:
Merge remote branch 'patrickas/master'

   - support for multi sub MAIN
   - automatic USAGE message (customizable)
   - remove some functions from user namespace
08:43 mikehh joined 08:51 bacek_mobile joined
bacek_mobile cotto, pirate is blocked by nqp bug with protoregex... 08:53
cotto no workaround? 08:54
bacek_mobile nope. It just failed to parse pir with some hashseeds 08:55
cotto yuck
dalek rrot: r47525 | cotto++ | trunk/compilers/opsc/src/Ops/Op.pm:
[opsc] simplify some multi variants now that they're separate
cotto how to repro?
I could take a shot at making it into a minimal test case
bacek_mobile I did tell about this to pm. Try to find it in irclogs. "bacek nqp hashseed" or something 08:57
cotto wfm
I have a grep and I know how to use it. 08:58
bacek_mobile sigh. nopaste already expired... 09:00
cotto found it
webcache.googleusercontent.com/sear...t.ch/20620 09:01
yay for google's cache
That looks like a fun one. 09:02
bacek_mobile I'll try to reproduce it later tonight
I hope citizenship ceremony woldn't take long
yeah, this one. 09:03
purl yeah, this one is great... dvs1.dvlabs.com/adcritic/spoof-powerlung.mov
bacek_mobile you can put somethink like <?DEBUG> to switch on debugging. 09:04
cotto I can reproduce it fine
bacek_mobile into grammar rules
cotto sounds good 09:05
is that an nqp builtin? 09:06
that's really handy
either way, happy citizenshipping. it's way too late for my debug-fu to be worth anything. 09:08
'night
09:18 bacek_mobile joined
he Hm, short question: I'm trying to convert a packaged parrot to using gmp. Configure.pl says gmp is installed, and it's used during linking. t/op/arithmetics.t says "No integer overflow for 32-bit INTVALs without GMP installed", however. It looks in interp[.IGLOBALS_CONFIG_HASH] -- where do I find that one to dig into what's going on? 09:20
moritz he: maybe parrot_config --dump contains some output of interest for you? 09:22
he ./parrot_config --dump | egrep -i gmp gives me (among others) "gmp => 'define'" 09:23
moritz libs => '-ldl -lm -lpthread -lcrypt -lrt -lgmp -lreadline '
gmp => 'define'
HAS_GMP => '1'
he HAS_GMP => '1' as well, yes.
moritz plus a long line for configuration_steps
he my libs are libs => '-lm -lcrypt -lpthread -lgmp -lintl' 09:24
moritz t/op/arithmetics.t doesn't mention integer overflow here 09:25
he This is with parrot 2.4.0 09:26
10:06 TiMBuS joined 10:30 bkuhn joined 10:42 aukjan joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34298), fulltest) at r47525 - Ubuntu 10.04 i386 (g++) 11:01
t/op/exit.t - TODO passed: 6 in testf
note that the TODO pass does not happen on amd64
11:23 lucian joined 11:26 Coke joined 11:35 whiteknight joined
dalek rrot: r47526 | NotFound++ | trunk/t/pmc/bytebuffer.t:
avoid depending on icu to compile bytebuffer test file and skip some of its tests when no icu, TT #1677
11:38
whiteknight good morning, #parrot 11:40
bacek aloha, humans 11:47
whiteknight, aloha
dalek TT #1677 closed by NotFound++: t/pmc/bytebuffer.t: Fails when ICU is not present 11:50
TT #1677: trac.parrot.org/parrot/ticket/1677
11:55 khairul joined
dalek kudo: b461fd2 | (Solomon Foster)++ | src/c (4 files):
Move Rat.Str to Real (with tweaks), delete Rat.Int tweak other Real.Str methods
11:55
whiteknight good morning, bacek. How are you today? 12:02
bacek whiteknight, I'm an ozzy today. Just got my citizenship couple of hours ago :)
mikehh bacek: Congratulations - I think :-} 12:04
bacek mikehh, thank :) 12:05
whiteknight bacek: awesome 12:06
mikehh rakudo (2c1c3d7) builds on parrot r47525 - make test PASS, spectest_smolder -> #34302 (pugs r31183) PASS - Ubuntu 10.04 i386 (g++) 12:07
19 TODO PASSes in 4 files
got the same results on amd64 (e3153ad) at r47458 12:08
dalek rrot: r47527 | NotFound++ | trunk/t/pmc/bytebuffer.t:
add simpler ByteBuffer get_string tests that doesn't require ICU
12:11
rrot: r47528 | NotFound++ | trunk/t/pmc/bytebuffer.t:
ByteBuffer tests for invalid charset/encoding
12:28
rrot-data-structures: 11a9461 | Whiteknight++ | README.pod:
Fix stupid typo
12:32
rrot-data-structures: d06ea78 | Whiteknight++ | README.pod:
Remove unnecessary stars
12:38
rrot: r47529 | gerd++ | trunk/NEWS:
Add NEWS for 2.5.0 from the last #parrotsketch meeting and something about Lorito
12:44
rrot: r47530 | khairul++ | branches/gsoc_instrument (10 files):
Made the runtime library a single pbc + event notification
rrot: r47531 | NotFound++ | trunk/t/pmc/bytebuffer.t:
ByteBuffer test with content invalid for the charset/encoding asked
rrot: r47532 | NotFound++ | trunk/NEWS:
delete Winxed-only news from NEWS
13:01
rrot: r47533 | NotFound++ | trunk/NEWS:
add ByteBuffer to NEWS
13:02 ambs joined
dalek kudo: 16d9cb0 | (Solomon Foster)++ | src/core/ (3 files):
Add Numeric.Real, Numeric.Int, Numeric.Rat, Numeric.Num, and Real.Real. Change
13:13
13:26 atrodo joined
dalek rrot: r47534 | NotFound++ | trunk (2 files):
fix RIA thaw and add a test for it
13:50
13:56 patspam joined
Coke msg particle I'm going to make Task::Parrot, methinks. 14:35
purl Message for particle stored.
particle ?
Coke Task is the new Bundle 14:36
search.cpan.org/~adamk/Task-1.04/lib/Task.pm
particle ah, yes, good idea
14:36 bubaflub joined
ambs Task? 14:40
purl i think Task is like a Bundle, but listing prereqs in Makefile.PL/Build.PL instead of inside a Pod section or at search.cpan.org/dist/Task/
ambs purl++
14:40 tcurtis joined 14:43 gbacon joined 14:47 lucian_ joined 14:50 estrabd left 14:59 ash_ joined 15:15 Essobi joined
atrodo So let's say I'm in C with embedded parrot, I have an Eval PMC, and I want to pass it data when I invoke it. What's the best way to do that/is that possible? 15:18
Coke ISTR there's a Parrot_invoke* variant for you. 15:23
Parrot_ext_call ?
purl i think Parrot_ext_call is the same as Parrot_pcc_invoke_sub_from_c_args, but is the public interface (and so the one guaranteed to stick around)
Coke yup, that looks promising. 15:24
atrodo Yes, I can call the eval with that, but I'm having issues passing params in unless the Eval is a sub 15:25
Coke Eval isa Sub - should work. 15:27
if not, if you can get us a failing test case, that'd help.
atrodo Hmmm, I think a code chunk may help explain, hold on
dalek rrot: r47535 | NotFound++ | trunk/src/pmc/fixedintegerarray.pmc:
make FIA sort method half-usable
15:28
atrodo gist.github.com/433158 #Sorry if it's a little harder to read since it's in pascal and not c 15:34
Coke what does create_string do? 15:35
atrodo Parrot_new_string
NotFound Pascal? Are you embeding parrot in a Pacal program? Amazing. 15:36
Coke We're missing code here. 15:37
atrodo I am indeed embedding parrot in pascal
Coke what is: "create_string(join(inNode.point.macros))" ?
atrodo Yes, that got by. That should be create_string(code) in this example 15:38
in the real code, I'm pulling the code that gets passed in from another source 15:39
Coke ok. It's hard to debug your code if we don't have it all. =-)
atrodo Understand. I've corrected it
Coke so you've got a PIR sub that should be creating an NQP sub, and then you're trying to invoke /that/ 15:40
purl Hmm. No matches for that, Coke.
Coke ?
er, what is "hll" ?
PIR ?
purl PIR is a bofh at tufts or www.pir.net or Passive Infra Red or Parrot Intermediate Language (and almost an acronym) or the Price is Right. or www.parrotcode.org/docs/art/pp001-intro.html
Coke or NQP?
purl i think NQP is github.com/perl6/nqp-rx or not quite low-level enough for some purposes or Not Quite Perl 6
Coke purl, botsnack of doom.
purl :)
atrodo Correct. It's my work around to getting parrot to compile NQP since I couldn't see a way to do through the embedding interface 15:41
Coke which? =-)
NQP?
purl well, NQP is github.com/perl6/nqp-rx or not quite low-level enough for some purposes or Not Quite Perl 6
atrodo hll is set to "nqp"
NotFound $ winxed -e 'int a[] = [ 3, 7, 1, 9 ]; a.sort(); say(join(", ", a));' -> 1, 3, 7, 9 15:42
Good :)
Coke atrodo: you're blowing away code after you declare sa. do you mean to do this?
atrodo No. That'll teach me to simplify code for example reasons 15:43
NotFound atrodo: in t/src/embed.t there is an example of calling subs 15:47
Coke atrodo: so the problem with /that/ code is... that it prints a blank line? 15:51
you probably want your nqp code to be something like " -> $arg { pir::say $arg }" 15:52
15:52 krunen joined
atrodo Coke> Correct. I'm trying to figure out how to access the passed param from nqp 15:53
Coke so I'd do a PIR only example first. hang on. 15:54
atrodo Cool. 15:56
Coke can't find the load_language for nqp. 15:59
atrodo I had to mess with the path and file name of the nqprx.pbc to get my load_language to work 16:01
dalek rrot: r47536 | NotFound++ | trunk/t/src/embed.t:
add a embed test for passing argument and returning a value to a PIR sub from C
Coke (sorry, had to rebuild parrot...) 16:17
nopaste "coke" at 192.168.1.3 pasted "for atrodo" (16 lines) at nopaste.snit.ch/21152 16:25
Coke atrodo: that help?
atrodo Coke> That's what I was afraid of. 16:26
I'll be defining a lot of these code segments that will get compiled and I was hoping to avoid defining all of them as subs, but that might be what I have to do
nopaste "coke" at 192.168.1.3 pasted "atrodo - ok, here's an anonymous sub varietal" (16 lines) at nopaste.snit.ch/21153 16:29
16:29 patspam1 joined
Coke atrodo: there you go. 16:30
that better?
atrodo Hold on, let me see if this magic incarnation works in my code
NotFound I think you can pass arguments to nqp "main", but must be a string array, as if they where command line arguments. 16:31
atrodo Coke> I'm very behind on Perl6, what's the -> do? 16:34
16:39 clinton joined
moritz it starts a lambda 16:41
or "pointy block"
or anonymous closure
or whatever you want to call it
purl whatever you want to call it is, like, fine
atrodo Ah, so it's equivalent to "sub { }" in perl5? 16:42
moritz not quite, but close enough :-)
atrodo Got it
16:43 cotto_work joined
cotto_work good mornings 16:43
purl good mornings are when all my stocks are up in after hours trading
16:44 AzureStone joined 16:47 perlpilot joined 16:49 davidfetter joined
NotFound cotto_work: Have you sleep well? ;) 17:00
cotto_work definitely more coherent 17:02
NotFound cotto_work: thanks for your testing, anyway.
cotto_work whether my coherency is sufficient is still an open question
davidfetter envies people who achieve any level of coherence
cotto_work sure. When I played with it at home last night, it looks like it dtrt.
atrodo Coke> Thanks for the help. Looks like my magical utopian world still hasn't appeared, but reality will serve me well enough for now 17:04
17:25 bubaflub joined 17:30 theory joined 17:35 whiteknight joined
Coke atrodo: glad to help. now if only someone would help me. =-) 17:37
perlpilot Coke: what do you need help with? 17:38
Coke perlpilot: I would like hacking on partcl to not suck. =-) 17:42
I'm not sure that that is compliant with the current state of parrot, however.
mikehh: I'm not sure if you were testing partcl, but 'partcl' (not partcl-nqp) should currently pass all tests against parrot head. 17:44
msg mikehh I'm not sure if you were testing partcl, but 'partcl' (not partcl-nqp) should currently pass all tests against parrot head. 17:45
purl Message for mikehh stored.
18:03 Maddingue joined 18:04 dukeleto joined
dukeleto 'ello 18:04
Coke BOO
davidfetter hai dukeleto 18:08
dukeleto davidfetter: hola
davidfetter eggyknap asked, "So, that whole dynops break things deal seems to have died off. Is it resolved and I just missed it?" 18:09
<-- ENOCLUE
18:11 dalek joined
dukeleto davidfetter: dynops are still a bit wonky, but it seems that the open/close opcodes will be removed soon 18:12
davidfetter k
dukeleto davidfetter: i made more progess on PL/Perl6 last night 18:13
davidfetter dukeleto, sweet!
dukeleto davidfetter: PL/Parrot can load perl6.pbc and is very close to running Perl 6 code
davidfetter CREATE OR REPLACE FUNCTION scarface() RETURNS TEXT LANGUAGE plperl6 AS $$say "Hello to my little friend!"$$; 18:14
dukeleto davidfetter: that isn't a bad test :)
davidfetter actually, "say" is probably *not* the right thing :(
stdout isn't really available 18:15
dukeleto davidfetter: yeah, return it instead
davidfetter :) 18:16
dukeleto feather seems sick 18:17
what should Filehandle.open do if io_ops are not loaded? 18:18
Coke dukeleto: work? 18:19
purl Work - the curse of the drinking class. (Oscar Wilde)
Coke filehandle.open isn't using any of the IO ops under the covers, is it?
atrodo That'd be an entertaining chick/egg problem 18:20
darbelo It shouldn't be. 18:22
NotFound Coke: nope 18:23
The proof is that you can use it without the dynops being loaded.
dukeleto I thought that FileHandle.open used the open opcode, but perhaps I am wrong about that
Coke dukeleto: I tink FH.open uses the raw C. 18:24
and I think the open op just dispatches to the method.
NotFound Winxed doesn't load any dynop, and uses files without any problem.
Coke so FH should work fine on its own. let us know if it doesn't.
dukeleto i just attempted to build trunk with -j4 and it failed on src/pmc/key.o
i have been compiling with -j4 for a long time, so it must have broken recently 18:25
this usually means there is a bug in Makefile dependencies, right? 18:26
darbelo dukeleto: Yes. 18:29
18:30 lucian joined 18:31 dalek joined 18:49 jan joined
Coke try running tools/dev/checkdepend.pl , see if there's anything obvious. 18:51
(once you have completed make) 18:52
19:22 dalek joined
dalek rrot: r47537 | NotFound++ | trunk/t/src/embed.t:
avoid repeating common code in embed tests
19:22
rrot: r47538 | NotFound++ | trunk/t/src/embed.t:
cosmetic change to embed tests
rrot: r47539 | NotFound++ | trunk/src/pmc/fixedintegerarray.pmc:
explicitly return SELF and some cleaning in FIA sort method
rrot: r47540 | NotFound++ | trunk/t/pmc/fixedintegerarray.t:
test FIA sort
rrot: r47541 | NotFound++ | trunk (4 files):
add the function Parrot_warn_deprecated and use it in a few places
rrot: r47542 | mikehh++ | trunk/src/warnings.c:
fix codetest failure - add ASSERT_ARGS
rrot: r47543 | mikehh++ | trunk/src/pmc/fixedintegerarray.pmc:
fix codetest failure - there should be at least one space between a C keyword and any subsequent open parenthesis
19:23
rrot: r47544 | mikehh++ | trunk/t/pmc/fixedintegerarray.t:
fix codetest failure - trailing whitespace
TT #1661 closed by dukeleto++: Parrot crashes when clicking on Preferences
TT #1661: trac.parrot.org/parrot/ticket/1661
19:23 dukeleto1 joined, PerlJam joined
dukeleto feather is back! 19:23
19:24 Util joined
dalek nxed: r499 | julian.notfound++ | trunk/t/ (2 files):
move ord and chr tests to basic tests
19:24
nxed: r500 | julian.notfound++ | trunk/Makefile:
ooops, forgot to update Makefile
GeJ Bonjour everyone.
Coke Hola 19:26
NotFound mikehh++ thanks for catching my typos. 19:27
19:28 pmichaud joined
cotto_work pmichaud, if I give you a 28-line nqp script that succeeds or fails depending on the hash seed, is that sufficient to get the bug (if it exists) fixed? 19:29
it's mostly a grammar with a tiny bit of driver code 19:30
19:32 dukeleto_ joined
dukeleto_ feather is down again. poopy pants. 19:32
mikehh NotFound: np - that's how I get my karma :-}
nopaste "cotto" at 192.168.1.3 pasted "possible nqp bug for pmichaud" (56 lines) at nopaste.snit.ch/21160 19:33
cotto_work That's holding up PIRATE progress fwiw. 19:35
I guess I scared him off. Sad face. 19:36
19:36 pmichaud joined, dalek joined, PerlPilot joined
dalek kudo: 563cad0 | patrickas++ | CREDITS:
Fame and fortune for patrickas \\o/
19:37
kudo: 3b29cd2 | patrickas++ | src/core/MAIN.pm:
named arguments are always shown first
19:40 dukeleto1 joined 19:41 Util joined
dalek kudo: ec2694e | moritz++ | (2 files):
make @*ARGS writable. This allows us to run S06-other/main.t, so do that
19:48
cotto_work pmichaud: ping 19:56
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34306), fulltest) at r47544 - Ubuntu 10.04 i386 (g++ with --optimize) 19:59
t/op/exit.t - TODO passed: 6 in testf
again note that the TODO does not pass on amd64 20:00
20:03 bkuhn joined, Psyche^ joined
dalek TT #1676 closed by mikehh++: t/pmc/io.t fails make corevm/make coretest 20:13
TT #1676: trac.parrot.org/parrot/ticket/1676
TT #1669 closed by mikehh++: t/pmc/eval.t and t/pmc/threads.t fail during 'make coretest'
TT #1669: trac.parrot.org/parrot/ticket/1669
TT #1666 closed by mikehh++: t/op/sprintf.t and t/pmc/sub.t fail during 'make coretest'
TT #1666: trac.parrot.org/parrot/ticket/1666
20:22 masak joined
masak NotFound: ping 20:22
NotFound masak: pong
masak NotFound: I've just successfully made Str.encode use the new ByteBuffer. 20:23
NotFound Good
masak now I'm looking to do the same for Buf.decode.
dalek kudo: c43bca7 | moritz++ | (2 files):
print USAGE message to $*ERR, just because it feels right-isher
masak in this, I have a small question related to PIR and the .pmc file.
what's the PIR equivalent of the 'VTABLE void init_int(INTVAL initial_size)' method? 20:24
NotFound new ['...'], i
masak thanks.
NotFound There are examples of all usages in t/pmc/bytebuffer.t 20:25
masak oh, goodie.
moritz purl: msg chromatic it would be super helpful if you could release Pod::PseudoPod::LaTeX with the latest patch (see my github clone) 20:26
purl Message for chromatic stored.
20:46 ambs joined
particle pmichaud: you may have missed this from ~80m ago: (12:32:52 PM) nopaste: "cotto" at 192.168.1.3 pasted "possible nqp bug for pmichaud" (56 lines) at nopaste.snit.ch/21160 20:53
ah, crap i'm in scrollbackland
ok, i'm back and that msg is still relevant 20:54
cotto_work I'll make sure it doesn't get missed. ;) 20:55
testing now with latest nqp
same deal 20:56
writing a reliable test for that one will be fun 20:59
clock? 21:08
purl cotto_work: LAX: Thu 2:08pm PDT / CHI: Thu 4:08pm CDT / NYC: Thu 5:08pm EDT / LON: Thu 10:08pm BST / BER: Thu 11:08pm CEST / IND: Fri 2:38am IST / TOK: Fri 6:08am JST / SYD: Fri 7:08am EST /
mikehh rakudo (c43bca7) builds on parrot r47544 - make test PASS, spectest_smolder -> #34308 (pugs r31188) PASS - Ubuntu 10.04 i386 (g++ with --optimize) 21:12
19 TODO PASSes in 4 files
partcl (10737a0) builds on parrot r47544 - make test PASS, make smolder -> #34309 - Ubuntu 10.04 i386 (g++ with --optimize) 21:16
Coke: ping
dalek rrot: r47545 | Chandon++ | branches/gsoc_threads (442 files):
[gsoc threads] Merge from trunk; add coop_threads example.
21:19
rrot: r47546 | darbelo++ | branches/gsoc_nfg/src/string (2 files):
Make sure we grow the table before merging.
masak NotFound: when creating a new ByteBuffer and filling it with values, how advantageous is it to specify the length up front? put differently, how much overhead will it create if I just keep assigning from 0 to $N without giving the length? 21:27
21:28 masak joined
cotto_work masak: it looks like it tries to be smart about resizing so that setting the last element won't have much of a penalty 21:30
masak oki, good. 21:31
NotFound Smart is a bit exagerated... Just avoid to be too wasteful. 21:33
Should be tuned with real usage data.
masak so the ideal of frugality is to actually set the length at the beginning? 21:34
I was mostly wondering if it's worth it.
NotFound If you know it in advance, sure. 21:35
masak I do. I have a Perl 6 array of Ints.
NotFound Then no doubt, set it at creation. 21:36
Coke mikehh: pong 21:39
masak NotFound++ # this is exactly what I need for Str/Buf interconversion! 21:40
mikehh Coke: in partcl make smolder I got extra (doubled up) / and had to remove them and manually enter the curl 21:47
21:47 szabgabx joined
davidfetter waves to gabor 21:52
er, szabgabx*
szabgabx hi davidfetter
Coke mikehh: danke. I think I fixed that in partcl-nqp. 21:54
I'll take care of it.
mikehh Coke: anyway it builds and make test passes (and makew smolder)
make
szabgabx people keep asking me about the status of Parrot 21:55
and which languages has the most advanced compiler to parrot
or if there is any language that has a full implemenation
cxreg lolcode? 21:56
purl well, lolcode is HAI CAN HAS STDIO? VISIBLE "HAI WORLD!" KTHXBYE or at lolcode.com/ or at svn.parrot.org/languages/lolcode/
NotFound sa 22:00
szabgabx: Winxed has a full implementation... because is itself its specification X-) 22:01
darbelo szabgabx: fperrad's lua is pretty complete. 22:02
Coke lua is the best choice, though I don't think it's using the current compiler toolkit. 22:03
rakudo is probably the best for that. 22:04
darbelo Oh, yeah. I keep forgetting that.
bacek aloha, humans
cotto++ # nqp bug hunting!
NotFound Let's start a languages fight!
mikehh well if it ain't bacek, belong land of oz 22:05
darbelo throws an Objective C at NotFound
NotFound counteratacks with a big Cobol!
bacek putting FORTRAN on the table 22:06
mikehh hey we need DYNAMIC languages, in more than one sense of the word 22:07
I haven't tested cardinal recently - how's it going? 22:08
darbelo I think it was undergoing nqprx-ization. 22:09
22:18 Andy joined
Tene mikehh: it's been very abandoned for a while now 22:31
treed has been very busy, and got stalled in the middle of a very large refactor due to problems with parrot 22:32
treed what now
purl hmmm... now is the time for the Kwisatz Haderach to arise and conquer America on a sandworm army
Tene (problems subclassing class)
22:32 tcurtis joined
treed Oh, god, yes. 22:32
I have two messages apparently. 22:33
bacek offers his help updating cardinal to nqp-rx
on may 21st
>_>
mikehh need to reboot - bbiab 22:36
nopaste "cotto" at 192.168.1.3 pasted "more minimal test case for pmichaud" (48 lines) at nopaste.snit.ch/21172 22:39
22:41 whiteknight joined
darbelo realizes he forgot to reconfig, again. 22:45
Chandon Why does t/pmc/timer.t pass timer parameters as a key, value *array* rather than a hash or something? That sort of makes sense if I pretend I'm reading perl5, but it seems like an odd API for a Parrot PMC. 22:50
22:53 snarkyboojum joined 22:56 mikehh joined
whiteknight Chandon: yeah, it's probably a little weird 22:58
I've found a few issues in the scheduler/task API that were a little WTF 22:59
dalek rrot: r47547 | darbelo++ | branches/gsoc_nfg/src/string/api.c:
Add misssing interps and casts.
23:00
whiteknight ...if we accidentally have to clean some of it up soon, I don't think anybody will be too disappointed 23:01
cotto_work unless you make rakudo explode 23:03
darbelo ... or make particl exlode.
eh, partcl
NotFound We've already exploded enough things this month, please be pateient ;)
Tene I hear the US military is discussing using explosions to seal the oil leak in the gulf of mexico. 23:04
cotto_work or particle. Definitely don't make him explode.
darbelo Making particles explode is risky stuff. 23:05
dalek m-dynpmcs: 2d9355b | darbelo++ | t/gdbmhash.t:
Remove diagnostic printerrs.
23:12
23:14 nopaste joined
sorear opbots, names 23:14
dalek rrot: r47548 | tcurtis++ | branches/gsoc_past_optimization/t/library/pastpattern.t:
Fix a bug in the test for .transform.
23:16
rrot: r47549 | darbelo++ | branches/gsoc_nfg/src/string/encoding/nfg.c:
Avoid creating empty grapheme tables. And fix an off by one error.
23:33
pmichaud cotto_work, particle, others: test case noted -- I'll look at it. 23:47
technically, I don't think this test case is a bug, though. 23:48
or, if it is, it's just a LTM bug that isn't likely to be fixed soon. 23:49
actually, it can't even be an LTM bug.
so, I'll claim it's not a bug. :)
or, in the last test instance, it's a bug because all of the results should've been NOK. 23:50
cotto_work can it at least be made deterministic? 23:51
pmichaud only if I somehow mark ordering-of-declaration in the rules.
I haven't quite figured out how to do that yet.
Perl 6 says that what makes it deterministic is the order in which the regexes are declared. NQP doesn't implement that particular feature yet. 23:52
dalek nxed: r501 | julian.notfound++ | trunk/winxedst1.winxed:
update an error message
nxed: r502 | julian.notfound++ | trunk/t/basic/04for.t:
basic tests for for
pmichaud it would require turning the methods hash for a class into an OrderedHash
or otherwise having a useful sort criteria 23:53
I *might* be able to use subid as a comparison -- they tend to be ordered. But that seems icky.
cotto_work agreed
pmichaud looking
yeah, subid might work. 23:55
btw, it can be made deterministic if the :sym<a> and :sym<b> are made different lengths.
nqp-rx has a heuristic cheat at the moment that uses the length of the name of the rule to break ties 23:56
(longer names earlier)
cotto_work That's...
purl That's not portable.
cotto_work surprising.
purl i heard surprising was still surprising
pmichaud so, if :sym<a> were changed to :sym<aa> it would be deterministic.
well, it's done that way to give us *some* control over longest token matching to break ties.
(correct, it's way outside of the Perl 6 spec; it's really supposed to be used only in cases of definite ties, such as this one.) 23:57
cotto_work as long as that's an officially supported feature, it sounds usable 23:58
pmichaud it's officially supported for now in nqp, yes.
i.e., I'd put it through a deprecation cycle before changing it.
so, in that last example, if you wanted to prefer the second rule over the first one, give it a longer name. 23:59
cotto_work I'm checking now to see if I can apply that to PIRATE