Parrot 2.3.0 Released | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Priority: apply deprecations, merge branches, testexceptions_refactor branch | GSoC students, please read trac.parrot.org/parrot/wiki/GSoCersStartHere
Set by moderator on 6 May 2010.
Coke bacek: now there's a segfault in a pge test! 00:04
so, I'm doing very poorly, apparently. =-)
taking a break with some facebook poker. =-)
bacek Coke, which platform?
Because it's passed on Linux/i386... 00:05
mikehh bacek: I got it on amd64 - but that was about 12 hours ago - haven't checked recently 00:06
bacek mikehh, ok. I'll try on amd64 00:07
Coke bacek: darin/x86 00:08
darwin
bacek Sigh... They do pass in chrooted amd64... 00:15
mikehh bacek: seems to pass for me now at r46396 00:16
00:17 eternaleye joined
bacek thinking about installing "real" amd64... 00:18
mikehh it passes with both g++ and gcc with --optimize at r46396 - was failing on both at r46384 00:22
cotto_work I see a failure in t/compilers/pge/pge_examples.t 00:23
mikehh that was t/compilers/pct/past.t and post.t
bacek cotto_work, btw, if we can cleanup build in ops_pct we can merge it back :) 00:26
cotto_work, nothing can stop us now because all old runcores are gone.
cotto_work I'm hesitant to do that without speeding it up some, even if it won't need to be run very often.
Yup. That was my motivation. 00:27
do dynops work?
or is that part of the cleanup you're talking about?
bacek and this one too 00:28
cotto_work I don't know if it's a reasonable goal but I'd like to see it in the 30s range. 00:31
otoh, it's a good way to expose Parrot's performance to the build process. 00:32
bacek Indeed :)
cotto_work Now that I think about it, we should merge as soon as we can. There's nothing preventing optimizations from happening after the merge. 00:33
bacek <bacek> cotto_work, btw, if we can cleanup build in ops_pct we can merge it back :) 00:34
That's exactly what I'm talking about
purl talking about is "Yeah, you're alway talking and talking and talking. Shut up and code."
cotto_work bacek++ 00:35
purl++
bacek purl++
dalek rrot: r46397 | mikehh++ | trunk/src/packout.c:
fix codetest failure - trailing spaces
00:37
00:38 s1n joined 00:41 snarkyboojum joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33700), fulltest) at r46397 - Ubuntu 10.04 amd64 (g++) 00:52
cotto ohai 01:00
01:04 davidfetter joined
mikehh opbots names 01:08
bacek going to reboot into Debian/amd64 installer. 01:21
dalek rrot: r46398 | cotto++ | branches/ops_pct/compilers/opsc (2 files):
[opsc] simplify opsc.pir, remove an obsolete todo item
01:43
01:49 kurahaupo joined 01:59 Psyche^ joined 02:06 jsut joined
dalek rrot: r46399 | cotto++ | branches/ops_pct (53 files):
sync branch with trunk
02:16
02:36 janus joined 03:31 Andy joined 03:37 khairul joined 03:59 JimmyZ joined 04:09 snarkyboojum joined 04:37 jsut joined 05:56 snarkyboojum joined 06:22 JimmyZ joined 07:03 bacek joined
bacek aloha 07:03
JimmyZ hi 07:05
07:09 dalek joined
JimmyZ roadmap? 07:17
purl roadmap is icanhaz.com/parrotroadmap or trac.parrot.org/parrot/wiki/ParrotRoadmap
JimmyZ no, roadmap is icanhaz.com/parrotroadmap or trac.parrot.org/parrot/roadmap 07:19
purl okay, JimmyZ.
07:23 plobsing joined
plobsing ping bacek 07:30
bacek plobsing: pong 07:31
plobsing your consttable caching patch used an RSA. why not a hash? 07:32
s/RSA/R*A/
bacek It uses Hash of RSA
Just because we don't have Tuple
plobsing needs to read that closer
bacek There is explanation of storage in packout.c :) 07:33
"foo" is hash key
07:33 fperrad joined
bacek Actually it should be Hash of List of Tuple 07:34
plobsing I have a hash compare function that considers encodings and charsets to be different. That would be simpler IMHO. 07:35
bacek Yes.
But our Hashes doesn't support overriding of hashing functions (yet). 07:36
And going to "low-level C hash" isn't very desirable for me :)
plobsing why don't our normal hashes consider these distinct? 07:37
bacek because they are some kind of "HLL Hashes" 07:38
And from HLL perspective strings in different encodings are same 07:39
plobsing different strings being the same just seems like a recipe for fail 07:40
bacek nope
String are same.
Byte representations are different.
plobsing different but the same simultaneously = fail
bacek I don't disagree with it. 07:41
I personally hate our string subsystem.
Especially mixing of "byte array" and "string" concepts... 07:42
s/ / for /
plobsing agreed 07:46
07:48 fperrad_ joined
plobsing anyways, the currently implemented cache is inefficient on misses (which likely happen often) 07:48
it seems to me that it would be much more efficient to populate the cache on string insertion
bacek It was way too much for me at 2:30 AM :)
Actually, "misses" just happens twice per string. Not a big deal. 07:51
fperrad ping bacek 07:52
bacek But implementing pair of functions Parrot_str_totally_equals (or something) and STRING_totally_compare will be useful.
fperrad: pong
.oO( I didn't broke Lua! I swear! )
07:53
fperrad bacek new segfault on github.com/fperrad/digest-dynpmcs/ in Parrot_str_concat
when running parrot setup.pir
bacek Does it use StringBuilder by any chance?
plobsing bacek: strings get added for things you might not expect (eg: every PMC constant is actually a string under the covers) 07:54
fperrad bacek, I think no
bacek fperrad: fixed in r46400 07:59
fperrad bacek thanks 08:01
dalek rrot: r46400 | bacek++ | trunk/src/string/api.c:
Don't try to set shared flag for string without allocated buffer. fperrad++
08:03
rrot: r46401 | bacek++ | trunk (2 files):
Drop str->hashval in StringBuilder.set_string_native instead of get_string
08:20
rrot: r46402 | bacek++ | trunk/t/pmc/default.t:
Rewrite test for 'new default?'
rrot: r46403 | bacek++ | trunk/t/pmc/default.t:
Add more tests for 'new default?'
bacek msg Infinoid dalek clobber commit messages somehow. Check r46402 and r46403 for example. 08:21
purl Message for infinoid stored.
nopaste "plobsing" at 192.168.1.3 pasted "packfile const table w/ custom compare and cache on insert" (177 lines) at nopaste.snit.ch/20499 08:43
08:49 snarkyboojum joined 08:51 dalek joined 09:00 snarkyboojum joined
dalek kudo: c49d32b | moritz++ | t/spectest.data:
run S04-phasers/rvalues.t
09:08
a: d7b16d1 | fperrad++ | (2 files):
fix string.format with %%
09:10
09:32 clinton joined
dalek rrot: r46404 | plobsing++ | trunk (4 files):
cache pbc strings upon insertion
09:43
bacek plobsing: ping. 09:49
09:55 JimmyZ joined 10:14 Whiteknight joined 10:19 joeri joined 10:52 bacek joined
dalek rrot: r46405 | fperrad++ | trunk/t/dynpmc/gziphandle.t:
[GzipHandle] more tests
11:05
bacek moritz: ping...
moritz bacek: pong 11:06
bacek moritz: I installed real Linux/amd64. And still can't reproduce rakudo's crashes... 11:07
moritz :(
bacek Are you still able to do it on recent trunk? 11:08
moritz on 46403 I still get craches 11:09
*crashes
bacek Sigh... Which test?
moritz I don't know if any of them fails reproducible at the moment... let me check 11:10
t/spec/S05-mass/properties-block.rakudo just aborted 11:13
moritz looks if that one is a segfault
bacek "No ICU lib loaded" on my box... 11:15
moritz rx.t also aborted... might be due to memory limit 11:18
runs fine without memory limit
(that's a huge file)
bacek Yeah... 11:19
My spectest run is up to S06-traits. Still no segfaults...
moritz: can you check value in /proc/sys/kernel/randomize_va_space on your box? 11:20
moritz 2 11:21
bacek can you set it to 0?
moritz hm, don't see any segfaults either...
not yet finished, but already at S32-trig
typically they would appear in S03, S06 and S05 11:22
bacek We fixed few small bugs with strings recently.
dalek kudo: ab01a92 | moritz++ | t/spectest.data:
correct a test name, moritz--
11:23
moritz I could have sworn I've seen some today already
bacek t/spec/S14-roles/anonymous................................ok 1/13get_string() not implemented in class 'Timer' 11:24
Is it "expected"?
moritz never noticed it before 11:25
bacek oookey.
nopaste "moritz" at 192.168.1.3 pasted "test summary for bacek++" (20 lines) at nopaste.snit.ch/20500
moritz two aborted, otherwise onlynon-zero exit status 11:26
I'm doing another run with ulimit now, hoping that the two S05 aborts go away them 11:27
bacek They are failing on my box with "No ICU loaded".
moritz well, I have ICU
bacek I will too. Soon :) 11:28
But it makes sense.
Recent str_byte_length vs str_length handling.
... changes.
moritz right 11:29
11:41 joeri joined
bacek moritz: interesting. This test still failing with "ICU not loaded". However I've installed ICU... 11:55
moritz and reconfigured parrot? 11:56
darbelo ... and reinstalled parrot too.
I've wasted hours by forgetting to reinstall after a rebuild. 11:57
bacek Of course! 11:58
But let me check...
parrot_config has_icu reports 1 11:59
Installed parrot_config 12:00
purl i think Installed parrot_config is linked with build tree libparrot, not with installed libparrot
bacek purl: forget installed parrot_config
purl bacek: I forgot installed parrot_config
bacek you stupid girl...
moritz and of course you also reconfigured rakudo after that
bacek hmmm...
Probably not, just rebuild.
It will take some time to rebuild rakudo... 12:01
darbelo There's your incentive to make it faster :) 12:02
bacek burn darbelo with phasers 12:03
12:10 barney joined
bacek Bah... 3 runs of S05-mass - passed. 12:19
moritz just got an abort in t/spec/S12-methods/class-and-instance.t 12:23
not reproducible
:(
bacek I having some kind of deja-vu. I spend almost 2 weeks before 1.6 release fighting with GC... 12:28
12:31 jsut joined
darbelo starts beating the strings subsystem with a sledgehammer. 12:32
dalek TT #1614 created by jkeenan++: t/pmc/packfile.t: implement todo-ed item: pack produced same result twice
TT #1614: trac.parrot.org/parrot/ticket/1614
TT #1615 created by jkeenan++: t/pmc/class.t: implement todo-ed item: classes and methods
TT #1615: trac.parrot.org/parrot/ticket/1615
rrot: r46406 | jkeenan++ | trunk/t/pmc/packfile.t:
Include reference to TT in todo-ed item.
12:42
rrot: r46407 | darbelo++ | trunk/.gitignore:
Update .gitignore.
12:42 kid51 joined
dalek rrot: r46408 | jkeenan++ | trunk/t/pmc/class.t:
Include reference to TT in todo-ed item.
12:42
12:46 JimmyZ joined, khairul joined
darbelo stares in awe at lines 1070 to 1073 of src/string/api.c 12:47
dalek TT #1616 created by jkeenan++: t/pmc/bigint.t: implement 2 todo-ed items: Minint conversions 12:48
TT #1616: trac.parrot.org/parrot/ticket/1616
12:49 iblechbot joined
darbelo bacek: I'm seeing segfaults in mark_object_cache() on OpenBSD amd64, is this the code you are fighting now? 12:49
bacek darbelo: I'm just trying to reproduce any segfault... 12:50
nopaste "darbelo" at 192.168.1.3 pasted "Here's mine." (73 lines) at nopaste.snit.ch/20501 12:51
darbelo e->pmc is pointing into lala-land
bacek Which "type" and "entry" do you have? 12:53
darbelo Where do I find those?
bacek gdb 12:54
> p type
>p entry
dalek kudo: 7810dbe | (Solomon Foster)++ | build/PARROT_REVISION:
Bump parrot version to get string fixes.
kudo: f8ca417 | (Solomon Foster)++ | src/core/Real.pm:
Add Real and Num versions of the numeric comparison operators.
darbelo (gdb) p type
$5 = 35
(gdb) p entry
$6 = 478
bacek 478???
35 is Namespace. But 478 different namespaces looks... weird 12:55
darbelo p *e 12:56
$10 = {strstart = 0x27746f7272617027, pmc = 0x617a69736552273b, next = 0x7241434d50656c62}
bacek erm... 12:57
I couldn't read 64-bits pointers.
Is "0x617a69736552273b" looks like valid pointer? 12:58
darbelo Pointing into outer space.
Two meters left of the oort cloud.
dalek rrot: r46409 | jkeenan++ | trunk/t/pmc (2 files):
Correct syntax of PIR todo() function.,
bacek Looks about all right. At least it's in same parsec! 12:59
darbelo It's trying to mark e->pmc when it traces the root set, which ends up rather badly, given that it points out fo the solar system. 13:00
dalek TT #1617 created by jkeenan++: t/library/p6object.t: implement todo-ed item: ResizablePMCArray_obj 13:05
TT #1617: trac.parrot.org/parrot/ticket/1617
TT #1618 created by jkeenan++: t/oo/metamodel.t: implement todo-ed item: tail attribute type 13:06
TT #1618: trac.parrot.org/parrot/ticket/1618
bacek darbelo: are you on some kind of BSD?
dalek rrot: r46410 | jkeenan++ | trunk/t/library/p6object.t:
Include reference to TT in todo-ed item.
13:16
rrot: r46411 | jkeenan++ | trunk/t/oo/metamodel.t:
Include reference to TT in todo-ed item.
rrot: r46412 | jkeenan++ | trunk/t/oo/metamodel.t:
Include reference to TT in todo-ed item.
darbelo bacek: OpenBSD
dalek TT #1619 created by jkeenan++: t/oo/metamodel.t: implement todo-ed item: new opcode makes working ... 13:22
TT #1619: trac.parrot.org/parrot/ticket/1619
14:20 cognominal_ joined 14:28 JimmyZ joined 14:39 JimmyZ joined
dalek kudo: 91501c7 | (Martin Berends)++ | Test.pm:
[Test.pm] emit per-test timestamps only if PERL6_TEST_TIMES is set
14:47
kudo: e30bcb0 | (Martin Berends)++ | tools/test_summary.pl:
[tools/test_summary.pl] record test timings in JSON format in docs/test_summary.times
15:10 plobsing joined
dalek rrot: r46413 | fperrad++ | trunk/tools/dev/fetch_languages.pl:
[languages] pynie has moved on bitbucket
15:10
kudo: 30ac13b | jonathan++ | src/Perl6/Compiler/Role.pm:
Partially fix the role + lexical setting issue (but not completely :-/).
15:22
kudo: b52bbee | jonathan++ | src/glue/dispatch.pir:
Make $obj.RoleName::method() calls work.
15:58 jsut_ joined 16:05 Mokurai joined 16:34 theory joined 16:41 Mokurai left 17:37 fedov joined 17:49 fedov left 17:55 tcurtis joined
moritz allison: the link on search.cpan.org/~arandal/Pod-Pseudo...eudoPod.pm to Pod::PseudoPod::Tutorial is a 404 17:57
18:26 ash_ joined 19:29 Mokurai joined 20:01 rurban joined
dalek tracwiki: v127 | fperrad++ | Languages 20:27
tracwiki: pynie has moved on bitbucket
tracwiki: trac.parrot.org/parrot/wiki/Languag...ction=diff
sorear Are there any rules of thumb for when I can get away with not realcleaning before svn up? 20:32
20:43 Coke joined 20:55 shockwave joined
shockwave purl paste 20:56
purl somebody said paste was (see: nopaste) or like glue but a little safer to sniff. or nopaste.snit.ch:8001/ or scsys.co.uk:8001/ anywhere shadowpaste is or mmm, sticky paste or You there! Eating the paste. or <see> 2 girls, 1 paste or App::Nopaste or toxic for bots and humans
nopaste "shockwave" at 192.168.1.3 pasted "Bug?" (21 lines) at nopaste.snit.ch/20503 20:59
shockwave I'm encountering something that could be qualified as a bug.
20:59 lucian joined
shockwave I'm working on Windows. 21:00
My Compiler outputs PIR to files which include new-line and carriage return combo that's usual of Windows text files: \\n\\r
The code I pasted above shows how the file looks in VIM. 21:01
moritz shockwave: they are not a problem; the newlines between the .param directives are
shockwave The ^M at the end of the lines are the Carriage returns VIM displays
moritz, yep, I realize that.
But that is a problem.
That should be ignored.
It should not cause an error. 21:02
moritz it's the same with unix line endings too
just don't emit those newlines
shockwave moritz, That cannot not be qualified as a bug. 21:03
That behavior doesn't happen in other places, afaik.
moritz hasn't read the PIR spec
hm, not documented in pdd19, it seems 21:04
sorear sounds like an imcc bug
shockwave I'm going to file a bug report.
moritz feel free 21:05
I found it neither in pdd19 nor in the PIR book
sorear Coke: How goes codestring? 21:06
Coke have not touched since last night. hope to find some time to fight with it tonight 21:09
Coke does a quick sync with trunk.
shockwave Issue filed as: trac.parrot.org/parrot/ticket/1620
NotFound_gf shockwave: I think there is already a ticket for that.
Coke there is. 21:10
shockwave NotFound, I'll look for it. If there is one, I'll kill the one I entered.
Coke 1035
that predats the move to trac. 21:11
(there's even a test for it alrady)
iirc
shockwave Coke: Thanks. That one only mentions comments. I'll add a note about the blank lines, and also remove the ticket I created. 21:12
I can't close/delete the issue I created. Can someone close it, and add a note to it mentioning 1035? Thanks 21:15
dalek TT #1620 created by shockwave++: Blank lines between or before param declarations cause errors. 21:19
TT #1620: trac.parrot.org/parrot/ticket/1620
shockwave Also, can someone up the priority on 1035? I can work around it for now, but ultimately I'll need to be able to output new lines/comments before/between params.
plobsing shockwave: I'm working on it as we speak. With any luck I'll have it done by end of day. 21:20
Coke shockwave: sure, I got it.
plobsing: on fixing IMCC? whoa, good luck. =-)
moritz shockwave: I've closed tt#1620
plobsing Coke: it looks like a small bison fix
Coke plobsing++ 21:23
plobsing check out r46414. does that address all the issues?
where's a good place to throw the tests for these things? 21:25
21:26 shockwave joined
dalek rrot: r46414 | plobsing++ | trunk/compilers/imcc (3 files):
allow empty lines between .param statements in PIR
21:26
Coke plobsing: there are already tests . ack t for 1035
shockwave Sorry, I'm at my Girlfriends house. She tripped over my laptop's cable and disconnected me in the middle typing.
Luckily MiRC keeps logs: 21:29
[17:19] <@moritz> shockwave: I've closed tt#1620
Thanks, moritz
<@plobsing> shockwave: I'm working on it as we speak. With any luck I'll have it done by end of day.
dalek kudo: 7247277 | moritz++ | Configure.pl:
[Configure] experimental timing option for Makefile
shockwave plobsing, u da man
Also, thanks Coke. 21:30
sorear I live in the past. Where I live, networks don't autoconfigure; your cable falling out just means a few lost packets, TCP connections survive
shockwave sorear, she tripped over the power cable :S. (Actually, she disconnected it on purpose to vacum. For some reason, she must vacuum while I'm there). My laptops battery gave our a few days ago...bam lost work, etc. 21:32
plobsing afk # shopping
Coke whoops. I misread sh* as so* earlier. shockwave, do you need this for a language? 21:33
shockwave Coke, yep.
Coke er, plobsing says he fixed it. checking tests...
shockwave Dang. He's fast. 21:34
Coke ... where the hell was he 5 years ago? =-)
shockwave lol
Coke msg plobsing hey, we have more imcc bugs for you... get back here. =-)
purl Message for plobsing stored.
shockwave I wish IMCC wouldn't have been written in Bison. I've come to dislike it. 21:35
I now use Lemon exclusively.
dalek TT #1620 closed by moritz++: Blank lines between or before param declarations cause errors.
TT #1620: trac.parrot.org/parrot/ticket/1620
TT #1620 reopened by coke++: Blank lines between or before param declarations cause errors.
TT #1620: trac.parrot.org/parrot/ticket/1620
TT #1620 closed by coke++: Blank lines between or before param declarations cause errors.
TT #1620: trac.parrot.org/parrot/ticket/1620
TT #1620 reopened by coke++: Blank lines between or before param declarations cause errors.
TT #1620: trac.parrot.org/parrot/ticket/1620
TT #1620 closed by coke++: Blank lines between or before param declarations cause errors.
TT #1620: trac.parrot.org/parrot/ticket/1620
TT #1035 closed by plobsing++: PIR should allow comments between .param lines
TT #1035: trac.parrot.org/parrot/ticket/1035 21:36
Coke yah, sorry about that. =-)
shockwave Coke, did you write it?
Coke I mean the tickets.
shockwave ah
Coke no, imcc was originally written by... melvin smith? it was probably about 7 or 8 years ago 21:37
sorear is imcc actually parrot's most hated subsystem?
Coke yah, 2002
it's on the list, anyway.
moritz IMCC and GC?
cloesly followed by PCC? 21:38
Coke <shrug> hate what you like, patch it all. =-)
shockwave I used to get so confused by all those PCC, IMCC, PAST, PASM, PIR, PCT, etc.
I just ignore everything now, except PIR :)
bacek Good morning, humans. 21:40
moritz: PCC is in much better shape now. Just bloody slow... 21:42
dalek rrot: r46415 | plobsing++ | trunk/t/compilers/imcc/syn/regressions.t:
enable todoed TT1035 tests
21:43
rrot: r46416 | coke++ | branches/codestring (31 files):
merge latest from trunk
ash_ pcc reminds me of ppc
shockwave ash_, I used to always confuse it for it. 21:44
ash_ "oh ya my pearbook runs on a power core ... capacitor?" 21:45
arnsholt PCC is calling conventions, right? 21:46
shockwave arnsholt, yep.
moritz right
Coke PCC? 21:51
purl Welcome to Perl Community College, where we, for free, and at your convenience, teach you all of an intro-CS curriculum, such as you should have learned in college or by simply reading on your own. Please also visit the Perl Crisis Clinic, where we do all your job for you. or Parrot Calling Convention or Proof Carrying Code or en.wikipedia.org/wiki/Portable_C_Compiler
shockwave plobsing, I don't think you caused the error, but I get a build error when trying to compile. 21:52
arnsholt Occasionally, I <3 purl ^^
shockwave I built in in DOS command prompt. DOS sucks, it doesn't let me copy and paste. Arg!
I'll type out the message:
Coke I'm getting test failures in trunk.' 21:53
doing a realclen.
ash_ shockwave: The command prompt in Windows XP or higher? 21:54
shockwave ash_, yep.
ash_ you can copy and paste, but not with hot key
s
shockwave I can't select with the mouse. 21:55
I'm switching to PowerShell.
I shoul be able to do it there.
ash_ you have to click on the top left icon of the window, drop down to Mark, then select it and hit enter or go back to the menu and select Copy
there is also a Paste in that menu
you just have to use your mouse
Coke command -> alt-space, properties, options, "quickedit mode" 21:56
shockwave ash_, I see a select all now. Thanks for the heads up. It's building using Powershell now, though. 21:57
Coke, nice tip.
purl paste 21:58
purl somebody said paste was (see: nopaste) or like glue but a little safer to sniff. or nopaste.snit.ch:8001/ or scsys.co.uk:8001/ anywhere shadowpaste is or mmm, sticky paste or You there! Eating the paste. or <see> 2 girls, 1 paste or App::Nopaste or toxic for bots and humans
nopaste "shockwave" at 192.168.1.3 pasted "error message." (20 lines) at nopaste.snit.ch/20505
shockwave I'm building using the Strawberry Perl, as mentioned in: README_win32.pod 22:00
Essentially:
1) perl Configure.pl 22:01
2) mingw32-make
....
error
How do lines like this get added to files?: # $Id: fetch_languages.pl 46226 2010-05-03 04:54:26Z plobsing $ 22:04
What tool does that?
sorear svn 22:06
\\$Id:.*\\$ is magical to subversion and gets altered on checkout
similarly for a few other names
shockwave sorear, I see. Thanks. 22:07
I wonder if these build errors are Win32 specific (or specific to my machine). I tried building parrot a few versions ago and got a similar error. 22:09
22:15 rurban joined
bacek Yay. 22:21
I reproduced segfault.
sorear \\o/
bacek Not in rakudo, but in codestring branch pct test.
But in same mark_object_cache
sorear any fixed segfault is a good thing. 22:22
sorear needs to try to debug the rakudo codestring failure later today
22:22 jan joined
bacek moritz: can you try r46420? I want to believe that I fixed main reason for rakudo's segfaults... 22:32
dalek rrot: r46417 | bacek++ | branches/codestring/src/oo.c:
Use zeroing allocating of method cache to avoid conflict with GC
rrot: r46418 | bacek++ | trunk/src/string/charset (3 files):
Use str_lenght instead of str_byte_length in charset validation functions
rrot: r46419 | bacek++ | trunk/src/string/api.c:
Use str_length instead of str_byte_length in various string api functions.
rrot: r46420 | bacek++ | trunk/src/oo.c:
Use zeroing allocating of method cache to avoid conflict with GC
bacek msg Coke Are anything blocking merging codestring? (Assuming r46417 should fix segfault) 22:34
purl Message for coke stored.
ash_ whats the max length of a string in parrot?
bacek MAX_INT-1? 22:35
ash_ MAX_INT? or MAX_UINT? 22:40
22:42 lucian joined
bacek I think MAX_INT is safer assumption 22:43
22:43 TiMBuS joined
ash_ i only ask because (for instance) Parrot_str_length returns an unsigned value, and signed vs unsigned makes a difference in that 22:44
s/unsigned value/signed value (INTVAL not UINTVAL)/ 22:45
bacek Because of INTVAL registers...
ash_ ah
sorear for address space fragmentation reasons you should avoid working with strings larger than MAX_INT**0.5 22:55
the parrot string engine is not yet smart enough to do discontiguous storage itself
ash_ I guess the "right way" to do things then is to use a file and IO from there? 22:56
bacek "discontiguous storage"?
sorear bacek: allocate strings in 4k or 64k blocks when they get very large
rather than a single segment 22:57
bacek it's way too far away from optimisation perspective... 22:58
dalek TT #1621 created by shockwave++: Build errors on Windows
TT #1621: trac.parrot.org/parrot/ticket/1621
sorear you mean not on the roadmap?
I agree
bacek We don't have basic algorithmic optimisations for PCT (yet)
sorear optimizing multi-megabyte strings is not and should not be a pre-R* priority
exactly 22:59
bacek agreed
sorear dreams of PCT where CodeString.emit is actually write()
and the only O(n) thing is slurping the source code
bacek Why .write? 23:00
sorear write(2)
purl well, write(2) is guaranteed atomic only for BUFSIZ, riht?
sorear or maybe fprintf(3)
bacek Why?
sorear because holding all that PIR in memory is wasteful
parse->past, past->post, post->pir, and pir->file (or ->code segment) should, eventually, be interleaved 23:01
sending it to RAM buffers is just emptying the L2 cache for no reason
bacek PCT holds all CalllContext during parsing...
And last two steps should be replaced with single one: post->pbc 23:02
dalek rrot: r46421 | bacek++ | branches/codestring/src/gc/gc_ms.c:
Fix DRY violation in gc_ms_allocate_pmc_attributes.
23:05
rrot: r46422 | bacek++ | branches/codestring/src/gc/gc_ms.c:
Fill allocated memory with some garbage to simplify tracing of memory errors
ash_ a post->pbc step would be awesome
sorear You see very well where I am going with this.
I wonder how much less memory PCT would use if PCT::Node used actual Object attributes for node attributes 23:16
Instead of keeping them all in a $!attributes hash
(each PCT::Node subclass has a fixed set of valid attribute names...)
ash_ how is the overhead of multiple objects compared to one hash? 23:19
sorear ash_: The multiple objects exist regardless. It's an object-valued hash. 23:21
Actually, PCT::Node inherits from Capture
putting PMCProxy into the equation can't help.
Actually I can test this myself very easily. 23:22
23:22 shockwave joined 23:24 LoganLK joined
Coke bacek: codestring now passing all parrot tests... 23:30
bacek++
bacek Coke: merge it! :) 23:34
Coke can someone tell me that it makes building rakudo a little faster or memory cheaper with it? 23:38
sorear is it merged? 23:40
Coke no, it's in branches/codestring atm.
nopaste "bacek" at 192.168.1.3 pasted "Patch for string compacting." (32 lines) at nopaste.snit.ch/20506 23:46
bacek If someone can confirm that we have very-very big memory regression in rakudo I'll commit this patch.
ash_ how would I need to confirm that? 23:48
bacek Just try to build rakudo 23:50
Coke bacek: I am pretty sure I still have it in the CS branch. 23:51
trying your patch.
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33713), fulltest) at r46422 - Ubuntu 10.04 amd64 (gcc with --optimize) 23:54
Coke the patch is missing a */ 23:55
bacek Sorry... I just copied it from terminal 23:56
Coke grammar.pm up to 8M RES ... 23:58
er, 8G
bacek yak... With patch? 23:59
Coke ... but I have 3G and I didn't ulimit.
bacek: yes.
it actually /finished/ grammar.pm this time, so it's an improvement.