#parrot Parrot 2.2.0 "Like Clockwork" Released! | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Tasks: Fix compact_pool shenanigans | Fix HLL bugs (TT #389, #1040) | Prioritize Rakudo Needs
Set by moderator on 20 March 2010.
00:16 mberends joined 00:21 dngor_ joined
mberends there seems to be an inconsistency when running `parrot_config --dump | grep ExtUtils` 00:27
darbelo mberends: inconsistency ?
purl hmmm... inconsistency is the hobgoblin of ... consistent people
mberends the latest addition, chmod, from changeset 42418, does contain the same kind of command line as the rest 00:28
compare:
mv => '$(PERL) -MExtUtils::Command -e mv'
chmod => '$(PERL) -MExtUtils::Command -e ExtUtils::Command::chmod'
darbelo Never noticed that before. 00:29
dalek kudo: cddc8a7 | (Solomon Foster)++ | src/core/operators.pm:
Add infix:<X> too. moritz++
mberends Rakudo works around this by hardcoding a different chmod definition
Austin Is it possible that they're looking for a particular set of chmod semantics ?
mberends unlikely
00:30 payload joined
darbelo mberends: Why do that insted of asking us to change it? 00:30
mberends I this as it stands the parrot_config output for chmod is broken
rakudo probably added chmod before parrot got it 00:31
darbelo mberends: nopaste.snit.ch/20113 ? 00:32
I just noticed parrot doesn't chmod anything in the Makefile.
mberends darbelo: that looks right 00:33
darbelo mberends: committed 00:35
mberends there may have been a reason why chmod was different, but I cannot think of one
darbelo: thanks!
dalek rrot: r45193 | darbelo++ | trunk/config/init/defaults.pm:
Bring chmod into line with the the other ExtUtils commands.
00:36
darbelo It doesn't really affect parrot, so there's no reason not to change it.
mberends it straightens out a little kink in Rakudo's build/Makefile.in 00:37
darbelo Glad to be of use.
But I'd like it better if Rakudo moved to distutils. 00:38
sorear I'd like to move Parrot to distutils. I'm still working out the technicalities, though 00:40
mberends currently the Rakudo tuits are in short supply, so that might only happen if it makes a critical difference. I'm currently experimenting with changes to Makefiles and Configure, so I'll also bear the advice in mind. 00:41
cotto Moving Parrot to distutils is a tricky proposition.
darbelo mberends: Amusingly, migrating rakudo to distutils is a matter of dropping a single file into the repo. 00:42
mberends ooh!
darbelo fperrad (distutils's author) mailed a setup.nqp to the list.
Austin Yes, yes.
Tell us the build time.
darbelo Austin: Shh! I'm selling stuff here. 00:43
Austin Selling cigarettes, it looks like..
mberends well, we all smoke
Austin Not by choice... 00:44
Man, can this really by the way Tcl behaves?
cotto We'd definitely need cross-compiling before a distutils-based Parrot build would work. 00:45
chromatic Austin, based on my experience with Tcl, I can confidently say that the answer to that question is almost always "Yes, can you dig it?" 00:48
Austin Bah 00:49
chromatic: Do you have any kind of tcl specification handy?
00:49 dngor joined
Austin (Google is *not* my friend, here...) 00:49
sorear cotto: My plans were a bit more... interesting
cotto: they involved writing a retargetable NQP compiler and then pretending distutils was autoconf
kid51 make test, make buildtools_tests, make codetest all PASS at r45192 00:50
chromatic Austin, I don't. I haven't used Tcl in seriousness for a few years. 00:52
Austin Urg
00:52 joeri joined
Austin The code I've got shows that (string tolower "foo") would lowercase the entire "foo". Okay. 00:52
And that (string tolower "foo" 1 2) would lowercase the string starting at index 1 and going to index 2 (inclusive). Also okay. 00:53
*And* that (string tolower "foo" 1) would lowercase the single character at index 1, then stop. Huh?
cotto sorear, you mean like nqp to something that's not pbc? I'd call that more interesting. 00:56
00:59 dngor_ joined
dalek rrot: r45194 | chromatic++ | trunk/src (4 files):
[PCC] Made Parrot_pcc_split_signature_string() *not* allocate memory for the

that memory can ever leak. This makes the API simpler, removes code, *and* improves PCC speed.
01:08
rrot: r45195 | chromatic++ | trunk/src/call/args.c:
[PCC] Reduced (mostly) unnecessary uses of strlen() on argument and return

a good tradeoff for now.
01:11 sjn_ joined
sorear mmm pcc refactoring 01:15
dalek rrot: r45196 | chromatic++ | trunk/src/call/args.c:
[PCC] Revised Parrot_pcc_split_signature_string() to handle the case of no

when parsing signatures, mark that there are no incoming arguments correctly.
01:24
mberends chromatic++ # more pcc goodness 01:25
01:26 dngor_ joined
dalek rrot: r45197 | chromatic++ | trunk/src/pmc/hash.pmc:
[PMC] Optimized Hash's set_value_type() method slightly to avoid recreating

guts of the method into src/hash.c.
01:40
cotto What's nqp for super()? 01:57
Austin In kakapo, it's "super()". 01:58
Not in kakapo, it's "good luck, buddy."
sorear How is kakapo super implemented? 01:59
Austin search the mro until the method lookup matches the calling sub, then keep searching until it changes.
cotto Goodie. 02:00
Austin Or, if that's what you meant, "in NQP" 02:01
gitorious.org/kakapo/kakapo/blobs/1...nqp#line31 02:02
cotto I guess I can still call it manually. 02:03
02:08 particle1 joined 02:12 dalek joined 02:27 payload joined
Austin src/call/context.c:800: failed assertion 'Parrot_pcc_get_regs_used(interp, ctx, REGNO_STR) > idx' 03:00
03:44 Andy joined 03:48 janus joined 04:10 bubaflub joined 04:12 bubaflub left 04:22 mikehh joined
Coke chmod is only used by hpux & cygwin, IIRC. 04:46
Austin: ping. 04:50
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32864), fulltest) at r45199 - Ubuntu 9.10 amd64 (gcc with --optimize) 05:03
05:06 bacek joined
bacek o hai 05:07
mikehh hi bacek 05:11
bacek mikehh, aloha
cotto hi 05:20
bacek Good news. I'm on holidays next week. So I can squeeze in couple of full working days for parrot :) 05:24
cotto That's good news indeed.
bacek Bad news... Replacement motherboard for my laptop will not arrive in next couple of weeks... I'm still using spare one. 05:25
cotto if you don't want to go outside or something )
That's less good.
bacek I'm going to attend bike riding course next week. 05:26
Anyway, today is "formula one" qualification day. See you in couple of hours. 05:27
(If you have any good ideas what we need most (apart from compact_pool, #389 and MMD shenanigans) - msg me) 05:28
06:05 chromatic joined 06:21 bubaflub joined
sorear hmm, I need to write a better test suite for blizkost 06:43
dalek's gone :( 06:44
ok, before I can improve the tests I need someone to help me rewrite the test harness 06:49
blizkost is set up as a parrot /language/ 06:50
purl Hmm. No matches for that, sorear.
sorear which is entirely wrong
for testing
because we know Perl 5 works
passing files through the eval layer is very poor coverage
maybe I should strip out the build system and try and get blizkost running on distutils 06:53
Tene how would you prefer the test harness work?
sorear I would prefer the test harness to run bits of NQP/PIR
instead of bits of P5 06:54
Tene nods.
sorear very little of Blizkost is exposed and testable from P5
07:09 bacek joined
bacek ~~ 07:10
sorear hello 07:18
rumor has it you know a lot about GC 07:19
what is the status of the dynplug GC system
I want to write a "GC" plugin
bacek sorear, it's "almost" pluggable. 07:24
sorear, I've spend "reasonable amount of time" moving all allocations behind interp->gc_sys. 07:25
It's not done yet, but you can write new GC easily then before
07:39 cotto joined 07:42 riffraff joined 07:54 fperrad joined
sorear Where does NQP keep the magic that rewrites pir::opname(x,y) into an inline op? 08:05
cotto method term:sym<pir::op> in src/NQP/Actions.pm in nqp's git repo 08:13
which is kinda meta because the method right above it uses such an op 08:14
time for sleep
night 08:15
sorear nqp's git repo?
I'm using the version of nqp bundled with Parrot
is this a mistake
bacek sorear, nqp-rx shipped with parrot is bootstrapped one 08:16
nqp-rx?
purl nqp-rx is github.com/perl6/nqp-rx
bacek purl, nqp?
purl i think nqp is github.com/perl6/nqp-rx
bacek stupid bot...
purl Bad programmer, no cookie!
sorear bacek: Is 'parrot-nqp' considered obsolete? 08:17
bacek sorear, nope. 'parrot_nqp' is (afair) 08:18
sorear, one that built from ./compilers/nqp. ext/nqp is current one 08:19
sorear I see.
So ext/nqp is generated -from- the nqp-rx git repo? 08:20
Tene yes 08:22
sorear What is nqp-ese for defined()? 08:38
10:05 bacek joined 10:35 jsut joined
Austin sorear: pir::defined($x) 10:53
coke: pong 10:54
hey, coke: I'm wanting some more test cases, when you get one of those round tuits. 11:31
11:41 payload1 joined 12:29 clinton joined 12:48 joeri joined 12:54 fperrad joined
Austin msg Coke: partcl grammar.pm doesn't seem to have a rule for parsing doubles. How is that going to work? 12:56
purl Message for coke stored.
13:14 Andy joined 13:18 kid51 joined 13:19 lucian joined 13:23 dukeleto joined 13:48 Whiteknight joined
Austin Good morning, Whiteknight 13:51
Whiteknight hello Austin
how are you today?
Austin Toothless, and unhappy.
Yourself?
dukeleto is awake too early
Whiteknight toothless? Get in a bar fight or a hockey game recently? 13:53
Austin No. I lost a filling Thursday night, and went to the dentist yesterday.
Turns out he was the "NASCAR dentist." 13:54
14 seconds, and out.
Whiteknight oh, great 13:55
Austin "That's got to come out." 13:56
"Gah?"
<YANK!>
"Gack!"
Whiteknight I went to a dentist once who forgot to use novacaine when drilling a cavity. When I mentioned I was in pain she told me to "take it like a man"
Austin "Okay, now spit."
So you married her...
Whiteknight haha, nice 13:57
arnsholt I think I'm gonna have a look at the continuations code in Parrot. Wish me luck =) 14:18
Austin Arnsholt: good luck 14:19
purl You'll need it.
arnsholt I think purl is right on that one ^^
Whiteknight arnsholt: still trying to fix that bug? 14:21
arnsholt That's what I ws hoping, yes =)
Gonna test the latest SVN copy first, but after that I figured I might as well take a look at the code 14:22
14:24 Coke joined
Whiteknight arnsholt: okay, let me know if you have any questions 14:26
arnsholt There probably will be =) 14:27
14:28 Andy joined
Coke hurm. I get a pull request from github... how do I ... view it? 14:28
msg Austin I was unsure how to deal with doubles, since parrot only has $N. 14:29
purl Message for austin stored.
Austin messages erase
Coke: I think it's more "you should consider pulling from this repo"
Coke ... that's kind of useless. 14:30
Austin I've never got one, so I don't know what they look like.. 14:32
Coke reads github.com/guides/pull-requests
Austin But anyway, what's a double in tcl?
Coke Austin: "All internal computations involving floating-point are done with the C type double." 14:33
(per www.tcl.tk/man/tcl8.5/TclCmd/expr.htm#M23)
so I think that's just a float on the user-facing side.
Austin Sounds like a $N register. 14:34
Coke yup.
Austin Do they require support for other than decimal expression? (E.g., C recognizes hex doubles)
Coke I don't know off the top of my head; I know there's various int support (most of which is in the grammar or the old grammar) 14:35
but certainly we can get pretty far without it.
(even if it turns out to be needed.)
nothing in t/ requires it.
(more test cases) 14:36
for tcl?
Austin Does anything other than string actually know about doubles? I mean, are they a natural part of expressions?
Coke yes.
Austin Heh 14:37
So we come to my problem.
Coke but both the [expr] mini language and [string is] should use the same rule.
Austin The test cases in "string is double" want to recognize "7" as a double.
Which I suspect expr will probably NOT want to do.
Coke in partcl (not -nqp), there is 'toNumber' and 'toInteger' - the former returns a TclInt or TclFloat as appropriate and dies if it matches neither. 14:38
the latte returns a TclInt or dies.
those have not yet been ported over to -nqp.
mm, latte.
14:39 dalek joined
Austin I think we can get by with just a little hackery. But I wanted to double-check the expected behavior.. 14:39
Coke I was pondering adding a 'toFloat' and having 'toNumber' just call them both in order.
the tests in t/ can be verified by running them through tclsh8.5 14:40
... I'm very excited that you're asking all these questions, btw. =-)
I knew if I showed you some crappy NQP you'd not be able to resist!
Austin Heh.
The tooth is gone, the scotch has just about worn off. Time ir running out... 14:41
*is
Coke ok. I think I know what to do for your merge request. be nice if you could say "these are the commits I want you to look at."
Austin Did you get anything from my pull request?
"Check out string.pm" was what I sent.
Anyway, back to the questions: Should "is double" really return true on "7"? (no dot) 14:43
Coke ayup. 14:46
Austin okay. added. 14:47
And what's the story with map?
Is that mapping an array, or some other data type?
14:47 theory joined
Coke ok. I did a git remote add, git fetch. not to figure out how to ... git. 14:49
*now
Austin: it's kind of like tr// but crazier. 14:50
Austin Yeah, I noticed.
Coke there is a working implementation in PIR.
Austin Heh.
Coke (in partcl's runtime/builtin/string.pir
Austin Are you on the master branch?
Coke gotta run. back soon.
Austin Okay.
Coke of yours? yes. it's the only one I see.
-> gs
14:55 snarkyboojum joined 14:57 patspam joined 15:01 payload joined 15:07 snarkyboojum joined
Coke <- 15:12
IWBNI if I could say "show me all the commits on this branch that were only done on that branch. 15:16
ok. I'm looking at the first commit now. there's a LOT of new infrastructure in there. 15:24
dukeleto Coke: which interface/vcs are you asking for that? 15:44
Coke git.
15:44 ash_ joined
Coke doesn't matter right now as there are only 2 commits, and I can easily tell. 15:44
dukeleto Coke: i can help you do that
Coke but IWBNI for future pull requests. 15:45
dukeleto Coke: git diff foo..bar
Coke (and I'm doing a cherry pick to merge in the individual commits instead of merge.)
dukeleto: that shows me the /diff/. I want the /log/
no?
dukeleto Coke: git log foo..bar :)
Coke: git log -p foo..bar is nice too
Coke ... if I didn't already cherry pick... =-)
holy crap. Austin - that only fails 3 tests on t/cmd_string!? 15:46
dukeleto sorear: i would love to help you improve Blizkosts test infrastructure
Austin I told you I needed more test cases.
Coke Austin++
more tests exists, but they are locked in 'spectest' and we need to run more of tcl to be able to run test.tcl 15:47
Austin Also, there are 0 for map.
Coke yah. I had gotten to the point where I was relying on 'make spectest' in partcl.
(but partcl-nqp isn't there yet.) 15:48
Austin: your changes have been pushed!
Austin++
Austin: can I give you a commit bit on partcl/partcl-nqp ?
Austin Kind of late now, eh? 15:49
But sure.
Next time I lose a filling, I'll know where to go..
Coke so, he ripped out the /filling/ or the /tooth/ ?
Austin The filling came out on its own. He ripped out the tooth. 15:50
Coke ugggggh.
Austin Hmm... having trouble with signs.. 15:51
I'm going to punt on the signs, Coke. You'll have to add a parser rule. 15:53
(for "is double +2.")
dalek rtcl-nqp: 1881a21 | Austin_Hastings++ | src/Partcl/commands/string.pm:
Implemented a bunch of string functions.
rtcl-nqp: c1312b0 | Austin_Hastings++ | src/Partcl/commands/string.pm:
Added wideinteger.
Austin Oh, yeah. There aren't any wideinteger tests, either. My wideinteger is just integer. 15:54
Coke added aghast to partcl/partcl-nqp
as long as tests keep passing, have fun. =-) 15:56
(wideint) yah. we'd need gmp for that, I think. 15:57
there are stubs in the same dir for other "big if" subcommands that could use the same treatment. 15:59
in the meantime, I can todo those last 3 tests.
Austin It's not them. 16:00
It's the +/- tests in double. (There's more updates...)
Coke "the last 3 (FAILING) tests" 16:02
not the last 3 tests (IN THE FILE). 16:03
(sorry about the ambiguity. =-)
... ok. I will avoid todo'ing them for now and await your updates. =)
(also:)
Austin++ !
Austin Hmm... method getList not found for invocant of class String 16:05
Shouldn't that be TclString?
Ah. My bad. {{ in the .t file 16:06
Coke yah, I find that error is always hiding some other error.
Austin Hmm 16:09
Is {...} a string?
Coke: The first arg to string map is shown as {abc 1 ab 2 ...}. How do I convert that to an array? 16:11
16:13 Mokurai1 joined
dukeleto Mokurai1: howdy 16:15
Coke Austin: in general, /everything/ is a string. 16:18
but yes. "" is like qq{}, and {} is like q{}
Austin Frabjous.
So is there a "right" way to go from { a 1 b 2} to an array?
Coke .getList()
Austin Aha.
Coke if it's a list, it returns itself, if it's a string,it DTRT.
(also, for extra confusion: in tcl, array means hash, and list means array. =-) 16:19
Austin Coke++
Let's give it a try, and see what happens.
Coke fyi, in tcl, there are 2 kinds of data: arrays (associate arrays, or one-level-deep hashes), and "everything else" (strings, lists, dictionaries, int, float...) 16:20
all the everything elses can be converted back and forth (presuming their string representation is OK).
Austin Man, I'm *really* wanting 'last' here... 16:31
Grrr...concat_vPP vs. concat__PP 16:33
ok 154 - string map example 16:34
woot
ok 155 - string map reordered example
Austin sings, "She's from the southern part of Texas... and she was born in a hurricane." 16:37
dalek TT #1532 created by dukeleto++: Dynloadable runcores 16:39
TT #1532: trac.parrot.org/parrot/ticket/1532
Coke Austin: instead of last, use break()
Austin You have that?
Coke it's the tcl version of perl6's last, yes. =-)
other control exceptions available as HLL functions in main.pm in the same dir as string.pm 16:44
break, error, return, continue, and ... um... 16:47
amazing how much nicer this looks than the PIR version. 16:48
17:08 Austin joined
arnsholt How do I compile Parrot with -g again? 17:11
17:18 am0c_ joined
am0c hello 17:18
I have a question that I'm trying to generate a pir file with rakudo(perl6) but it emits an error. 17:19
./perl6 --target=pir -e 'say "hi"' > hi.pir and then ./parrot/parrot hi.pir 17:20
then error:imcc:syntax error, unexpected PREG, expecting '(' ('$P17')
in file 'hi.pir' line 29
error:imcc:syntax error, unexpected PREG, expecting '(' ('$P19')
in file 'hi.pir' line 33
error:imcc:syntax error, unexpected PREG, expecting '(' ('$P21')
17:21 chromatic joined
Austin msg Coke: Just pushed the "string map" changes to partcl-nqp. I stole the test cases from the manual. 17:24
purl Message for coke stored.
dalek rtcl-nqp: 0d3431f | Austin_Hastings++ | src/Partcl/commands/string.pm:
Implemented a bunch of string functions.
17:25
rtcl-nqp: 28674d6 | Austin_Hastings++ | src/Partcl/commands/string.pm:
Added wideinteger.
rtcl-nqp: 1160287 | Austin_Hastings++ | (2 files):
Improved behavior of "string is double", but still having problems with signs. Need a parser rule, I think.

Signed-off-by: Austin Hastings <Austin_Hastings@Yahoo.com>
rtcl-nqp: b98b5c2 | Austin_Hastings++ | src/Partcl/commands/string.pm:
Replaced various conditional gyrations with break(). Thanks, Coke++.
rtcl-nqp: 63d595a | Austin_Hastings++ | :
Trying to merge with no differences...
17:56 theory joined 18:04 payload joined
chromatic msg allison It's worse than I mentioned: *iterating* a STRING requires making a COW header. See get_bytes() in src/string/encoding/fixed_8.c. 18:10
purl Message for allison stored.
arnsholt What does the pcc signature stuff do? 18:17
Whiteknight: Up a line
chromatic It manages the types and numbers of arguments and returns used in Parrot's calling conventions. 18:18
arnsholt Ah, right
Whiteknight arnsholt: every PCC call has a signature that describes it
arnsholt Right. That explains why the continuations need to fiddle with that 18:21
chromatic Wow, getting rid of Unicode iteration in Parrot_str_to_hashval() speeds up Rakudo by 5.383%. 18:22
Whiteknight just for unicode iteration? 18:26
nopaste "chromatic" at 173.50.130.127 pasted "whiteknight: naive hashing iteration" (39 lines) at nopaste.snit.ch/20116 18:27
arnsholt Running parrot -E on my PIR file causes a segfault. That's not supposed to happen, right? 18:28
Whiteknight chromatic: nice
chromatic Right.
Whiteknight what's -E?
purl -e as an argument to perl itself, as in perl -ne 'print if /foo/;' is great for one-liners; -e is also the file test operator (perldoc -f -X) for existence of a file or perldoc -f -x
Whiteknight oh, preprocess 18:29
chromatic Whiteknight, that patch fails a couple of tests because it doesn't handle Unicode properly, but if we pushed the hashing into the encoding-specific files and called them instead, we'd avoid the in-and-out function calls of iterating over each codepoint.
Oh, wow. Look at *this*.
nopaste "chromatic" at 173.50.130.127 pasted "whiteknight: this gives a 2.346 speedup" (13 lines) at nopaste.snit.ch/20117 18:30
arnsholt Is there a quick way to get parrot to output the PASM code for some PIR, or to convert a .pbc to PASM? 18:32
chromatic the -o flag with a .pasm extension, I believe (though I type from memory) 18:33
arnsholt That worked. Cheers! 18:34
Coke IIRC, that isn't gauranteed to create runnable pasm.
arnsholt Heh. You're right, it doesn't run 18:35
I'm trying to figure out why I get these problems with continuations 18:39
A start would be knowing if it's a problem with the env stored on creation, or a problem with the restoration
Whiteknight chromatic: holy crap 18:40
purl only in the Vatican, my friend
cotto no, holy crap is <reply>only in the Vatican 18:41
purl okay, cotto.
cotto purl has no friends
purl cotto: what?
arnsholt Whiteknight: Do you happen know where I can find out how the .tailcall directive is implemented? 18:47
Whiteknight arnsholt. it's basically the same as any other function call, but uses the "tailcall" op instead of the "invokecc" op
src/ops/core.ops
chromatic: how does that hash algorithm not handle unicode correctly? 18:49
dalek rrot: r45203 | chromatic++ | trunk/src/string/api.c:
[str] Added an early return to Parrot_str_to_hashval() for STRINGs with no

Rakudo benchmark by 2.346%.
arnsholt Whiteknight: Cheers. I'm hoping it might give some insight on why things go south 18:51
Whiteknight arnsholt: what is the ticket number again?
arnsholt The problems go away with .tailcall, so that code does something to paper over the problem
'sec
TT #1528 18:52
Whiteknight arnsholt: in the conttest.patch file, there's a problem with choose 18:56
Coke chromatic++
Whiteknight if do_tailcall is 0, it calls choose, returns, then fallsthrough and does .tailcall anyway
arnsholt Whiteknight: Oh?
purl it has been said that Oh is there a link where i can read more about that?
arnsholt Oh. Excellent point
Whiteknight I'm testing the fix locally to see if that changes the test result 18:57
arnsholt: fixing that, the test passes 18:58
arnsholt Hmm.
Whiteknight so is the test bad, or is the issue fixed?
arnsholt I think it has to be the test
Unless the bug got fixed since this morning 18:59
Coke SQUEE! I did a 'git pull' AND STUFF WAS PULLED 19:00
SQUEEEEEEEEEEEEEEEE
nopaste "arnsholt" at 81.229.93.131 pasted "Continuation issue, without .tailcall" (67 lines) at nopaste.snit.ch/20118 19:01
arnsholt Whiteknight: Try that paste. If you run it as is, you should get the same problem as my original bug, but if you uncomment the .tailcal line and comment out the other one, it should work fine
Whiteknight arnsholt: in the choose function, you never take the return value of choose. 19:02
PIR isn't like perl, the last value in the block is not returned automatically
on line 22, $P0 = 'choose'(...), .return($P0) and it works 19:03
that's what tailcall does, mostly.
so when you take out the tailcall, you need to replace it with a return or you lose the return value
19:03 bacek joined
arnsholt D'oh. That is, of course an excellent point >.< 19:04
Whiteknight :)
arnsholt Thank you for pointing out the error of my ways =)
Whiteknight no problem. I'm sorry I didn't notice it sooner
bacek yawns 19:05
Whiteknight good morning bacek!
bacek Good morning 19:06
arnsholt Right. Someone with the autoritah to do so can close #1528 in that case 19:07
bacek Whiteknight, then just commit test and close it. Cheap karma ftw :) 19:09
Whiteknight Done 19:10
chromatic Whiteknight, you can't walk char-wise over codepoints for encodings where individual codepoints are wider than eight bits. 19:15
Whiteknight chromatic: assuming that's the way we consistantly calculate the hash, I don't see why the existance of "codepoints" has anything to do with it 19:17
walk over the buffer as if it's any arbitrary data buffer, byte-at-a-time and calculate a hash
chromatic You increase the possibility of collisions that way. 19:19
Whiteknight that doesn't make sense to me, but I'm hardly an expert on hashing algorithms 19:20
chromatic Tests fail; that's as much mathematician as I can get right now. 19:21
bacek Which tests? 19:22
purl Which tests are failing?
chromatic t/op/stringu.t and one other. 19:23
bacek, nopaste.snit.ch/20116 19:24
dalek rrot: r45204 | whiteknight++ | trunk/t/pmc/continuation.t:
Applying patch from #1528, plus small correction to make the test pass. Resolves T #1528
19:24 tetragon joined
bacek chromatic, of course. Code inside str_to_hashval should produce same hashval independent of string encoding. 19:25
dalek TT #1528 closed by whiteknight++: Continuations still interact badly with .return
TT #1528: trac.parrot.org/parrot/ticket/1528
bacek chromatic, even worth - I wrote it :) 19:26
erm. Or it's "worse"?
chromatic bacek, my patch improves Rakudo performance by 3%. 19:27
... at the cost of some failing tests, as you well know.
bacek chromatic, yes. But it's incorrect patch.
chromatic We can consider moving hashing into the encoding-specific files.
bacek Or store all string in single encoding internally.
chromatic Well yes, but that's a bigger patch.
bacek Fixed-width. 19:28
Single fixed-width encoding non-modifiable strings...
bacek still dreaming and need more coffee
chromatic Moving the hashing into those files is an easier win. 19:29
bacek modulo maintenance overhead.
chromatic Duplicating the hash algorithm, you mean? 19:30
bacek yes
chromatic That's what macros are for.
bacek Or templates...
purl i guess templates is a bit specific or should be a stupid as possible
chromatic ADD_CODEPOINT_TO_HASH(hashval, c)
19:35 dukeleto joined, Andy joined
bacek chromatic, can you quick test performance if we always convert string to utf16 in str_to_hashval 19:39
?
chromatic I doubt it'll make much difference; it looks like the overhead of creating the iterator and always making a function call to get the next codepoint. 19:41
I can test a patch though.
bacek (And remove iterator of course) 19:42
I.e. "your patch" + "always use same encoding" 19:43
chromatic Yes, that would make a difference.
bacek Just be careful with constant strings... 19:44
sorear Infinoid: ping 19:46
bacek
.oO( It two days enough to implement Generational GC? )
19:47
arnsholt bacek: Time to find out? =) 19:48
sorear Infinoid: Un-ping
bacek sorear, what kind of GC did you want to implement? 19:50
19:50 ferdinand joined 19:51 Austin_away joined
sorear A fake GC, which didn't actually collect anything, but instead generates detailed statistics on heap objects 19:52
i.o.w. a heap profiler
bacek sorear, ah... Check INF GC. It's semibroken but easily to resurrect. 19:53
Coke hurm. todo tests are borked in partcl-nqp 20:00
Austin Heh. 20:01
Coke I tried to TODO the last 2 tests and the whole thing go boom.
ew, I use regsub. 20:02
Austin Yeah, eww. 20:03
(?)
20:09 iblechbot joined
Coke just a lot of processing for something so basic. I made TODOs much dumber so we can use them. (committed). string tests are now by default with "make testj" 20:11
er, pushed.
dalek rtcl-nqp: 74e52c9 | Coke++ | lib/test_more.tcl:
allow TODO tests to be run...
20:16
rtcl-nqp: c580178 | Coke++ | (2 files):
TODO a few remaining failing tests in cmd_string and now run it by default.

  Austin++ for getting all these to pass!
bacek sorear, INF GC fixed now. You can use it as base for your "GC". 20:22
dalek rrot: r45205 | bacek++ | trunk/src/gc/gc_ms.c:
Remove redundant code duplication.
20:34
rrot: r45206 | bacek++ | trunk/src/gc/api.c:
Remove mark/sweep block/unblock functions from mandatory list of GC Subsystem.
rrot: r45207 | bacek++ | trunk/src/gc/gc_inf.c:
Cargo-culting memory chunks allocation from GC MS to GC INF.
TT #1498 closed by bacek++: gc_inf core breaks build. 20:36
TT #1498: trac.parrot.org/parrot/ticket/1498
20:38 theory joined
dalek rrot: r45208 | chromatic++ | trunk/src/gc/gc_ms.c:
[GC] Reordered conditionals in gc_ms_get_free_object() in terms of descending
21:09
21:14 bacek joined 21:26 payload left 21:35 lucian_ joined
dalek rrot: r45209 | chromatic++ | trunk/src/packfile/pf_items.c:
[PF] Inlined an inlinable memcpy() within fetch_op_le_4(), avoiding yet another

the Rakudo startup benchmark by 2.771%.
21:42
rrot: r45210 | chromatic++ | trunk/src/packfile/pf_items.c:
[PF] Tidied code in PF_fetch_string() to give the compiler slightly better

functional changes and minor performance improvements.
rrot: r45211 | mikehh++ | trunk/src/gc/gc_inf.c:
fix codetest failure - unused assert macros
sorear How does one measure Rakudo startup time to 5 significant figures 21:43
chromatic Callgrind 21:47
purl Callgrind is a very intresting profiling tool for linux with details at kcachegrind.sourceforge.net/cgi-bin/show.cgi
21:50 lucian__ joined
cotto also required, patience while callgrind runs 21:54
21:56 tetragon joined
dalek rrot: r45212 | mikehh++ | trunk/src/gc/gc_inf.c:
fix codetest failure - add missing c function docs
21:59
bacek is ultimate codetest breaker... 22:03
cotto That's fine as long as you're fixing something while you're breaking codetest. 22:15
22:19 ruoso joined
mikehh the g++ build is broken at the moment - it does not like char * = const char * 22:31
src/call/args.c line 1462 && 1464 22:33
(it builds ok in gcc) 22:35
bacek blame chromatic :)
mikehh yes I figgered that out already
attempting to fix caused more problems 22:36
you used to be able to do that with g++ but g++ 4.4.1 and after blew up on that 22:38
mikehh needs to work out how to get around this 22:39
you have const char *signature and are returning the address of it and itterating over it 22:41
chromatic DECL_CONST_CAST ? 22:43
bacek mikehh, fixed. 22:45
r45213
22:46 kid51 joined
dalek rrot: r45213 | bacek++ | trunk (5 files):
Fix build with g++
22:49
mikehh well that works - didn't know you could iterate using a const char * 23:02
cotto What's the right way to have an nqp sub call another sub, passing the exact same arguments?
dalek rrot: r45214 | cotto++ | branches/profiling_testing (5 files):
[profiling] more profiling testing updates, possibly closer to usable
23:06
rrot: r45215 | cotto++ | branches/profiling_testing/config/gen/makefiles/root.in:
[profiling] add a makefile target for ProfTest.pbc
arnsholt Will <rule:foo> do what I want it to do (that is, match against the thing marked :foo in my proto-regex rule) in nqp-rx's grammars? 23:16
23:19 bacek joined
dalek rrot: r45216 | cotto++ | branches/profiling_testing (2 files):
[profiling] make tests run, though only one passes before everything explodes
23:23
23:38 theory joined
cotto more different error 23:59
time for afk