Parrot 2.3.0 Released | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Priority: apply deprecations, merge branches, test exceptions_refactor branch | welcome our GSoC students
Set by moderator on 27 April 2010.
Coke length and bytelength are not the same. 00:03
NotFound str_byte_length: return STRING_IS_NULL(s) ? 0 : s->strlen; --- str_length: return s->strlen; 00:04
That's the difference. 00:05
00:05 tcurtis joined
Coke at least they didn't used to be. I had tests for that in tcl. 00:05
dalek rrot: r46321 | whiteknight++ | trunk/src/string/api.c:
[string] remove a TODO note that, I think, isn't worthwhile. If we do want this feature, we can create a ticket
00:06
NotFound Coke: they used to be different, but was a mess anyway. Calling char length changed the value of s->strlen
So the next call to bytelength give a different result. 00:07
Coke freaky.
NotFound If we really reach a point when strings are fully immutable, char length can be stored. In the meantime, if we make a real char_length people will complain that is too slow. 00:10
00:11 sorear joined
darbelo Our strings are hopelessly confused on several matters. 00:12
NotFound I'll try a test for that... but maybe tomorrow.
dalek website: tcurtis++ | PAST Optimization 00:13
website: www.parrot.org/content/past-optimization
NotFound darbelo: we can fix it. "Just" need a radical change.
darbelo Strings that don't have an underlying buffer *lie* about the memory adress of the quite nonexistatnt buffer. 00:14
I tried to fix that last week. I ended up somewhere inside io/ feeling confused.
NotFound Strings that don't have a buffer shouldn't exist outside of the internals. The problem is that "the internals" are revolving all around. 00:15
darbelo We need to add encapsulation before we can start telling other susystems what they can or can't do with strings.
I even fixed a few cases of io allocating a STRING structure on the stack and then giving out pointers to it. 00:16
NotFound We need to add the functionality required inside src/strings/ instead of toying with the internals from elsewhere.
darbelo: yes, that was the culprit of several heisenbugs. 00:17
darbelo And that cute little stack-allocated header was getting as far as the freeze code at one time in the past.
00:20 tetragon joined
NotFound Well, too much working and ranting for today, going to bed :O 00:20
darbelo I'm hoping immutable strings can help us review and kill some of the stuff going on with strings. 00:21
But, as you say. Not today ;)
Coke NotFound: hang on. =-) 00:25
(sokay, don't worry about it.)
tcurtis msg chromatic I posted a first blog post about my GSoC project at www.parrot.org/content/past-optimization. 00:27
purl Message for chromatic stored.
darbelo tcurtis++ # Early adopter. 00:31
Coke Is anyone looking at moritz's segfaults? 00:35
darbelo Can anyone *reproduce* moritz's segfaults?
dalek rrot: r46322 | coke++ | branches/codestring (87 files):
merge latest changes from trunk
00:39
Coke darbelo: working on it now.
darbelo ISTR tehy don't hapen on i386, and bacek had tried to reproduce on amd64 but failed. 00:40
sorear darbelo: Not I 00:41
Coke trying on darwin386... 00:56
01:06 khairul joined
Coke yay, I can duplicate his segfault. 01:07
01:24 abqar joined
dalek rrot: r46323 | cotto++ | branches/ops_pct/MANIFEST:
[opsc] generate manifest
01:45
rrot: r46324 | cotto++ | branches/ops_pct/compilers/opsc/t/06-opsfile.t:
[opsc] update test to reflect proper number of ops
kudo: 6e98d29 | (Solomon Foster)++ | src/core/operators.pm:
Refactor infix:<...> a bit and make it handle some edge cases in the non-numerical world.
01:46
01:59 Psyche^ joined 02:10 tcurtis joined 02:11 plobsing joined 02:21 theory joined
bacek_at_work ~~ 02:31
msg tcurtis Why don't use multi-methods for traversing tree? Same as current PAST-to-POST translation. 02:32
purl Message for tcurtis stored.
02:35 janus joined 02:36 parthm joined 02:40 dduncan joined
tcurtis bacek_at_work: Can you do multi-methods in NQP? 02:43
bacek_at_work tcurtis, not in current pure-nqp. But 1) you didn't mention implementation language; 2) afaik kakapo has support for multi-methods. 02:47
kakapo?
purl i think kakapo is a program framework, runtime library, and collection of useful functions for NQP programs. or See code.google.com/p/kakapo-parrot/ for documentation and issue tracking, or gitorious.org/kakapo for source code.
bacek_at_work tcurtis, gitorious.org/kakapo/kakapo/blobs/m...ltisub.nqp 02:53
something like this.
tcurtis Frankly, the reason why I didn't initially decide to use multi-methods is because I forgot about them. I'm a little bit hesitant to make using it in NQP inconvenient, but then again, hopefully, not many people will have to use PAST::Walker. And, I suppose if they are, they could use PAST::Walker::Dynamic or whatever I end up calling it, which would be no less convenient. If they're too worried about performance to use PAST::Walker::Dynamic, they probably wo 02:55
mind overmuch using PIR. So, I'll edit my post to reflect that multi-methods might be better.
03:01 JimmyZ joined
plobsing how do I get another PMC (.dump and .h file) to be a part of the install make target? 03:04
tcurtis Thanks, bacek++
bacek_at_work: I kept the post as it initially was, but added to the end a little bit marked "Update:" mentioning that multi-methods would be better. 03:06
bacek_at_work tcurtis, wfm 03:07
plobsing, MANIFEST.generated. 03:12
plobsing bacek_at_work: on it 03:14
thanks
bacek_at_work plobsing, it's probably good idea to add all generated .dump files into it. 03:19
03:20 JimmyZ_ joined 03:22 patspam joined
dalek rrot: r46325 | plobsing++ | trunk/MANIFEST.generated:
add (Un)?ManagedStruct to installed pmcs
03:23
rrot: r46326 | plobsing++ | trunk/MANIFEST.generated:
Sort MANIFEST.generated as indicated should happen in the top comment. Somehow it has become disordered.
bacek_at_work opbots trust JimmyZ 03:25
slavorg Ok
slavorgn Ok
JimmyZ bacek_at_work: thanks.
slavorgn?
purl slavorgn is run by Infinoid
bacek_at_work JimmyZ, it's usually other way round - you've got op on channel first, than commit bit :) 03:26
JimmyZ bacek_at_work: I don't know what slavorgn do
err, does
dalek kudo: 9709f85 | (Solomon Foster)++ | src/core/ (4 files):
Rename the default $base versions of .log to .log-e and then create a simple .log with $base method that simply calls .log-e twice.
03:29
03:40 Andy joined
dalek rrot: r46327 | petdance++ | trunk (2 files):
consting some args
03:40
03:50 LoganLK joined
dalek rrot: r46328 | plobsing++ | trunk/MANIFEST.generated:
add all core pmcs to install target as suggested by bacek++
03:56
03:59 parthm joined 04:12 atrodo_ joined 04:35 patspam joined 04:41 cotto joined
bacek_at_work plobsing, you can claim TT#1578 and get free karma :) 05:13
also, make sorear little bit more happy
05:14 parthm left
plobsing wow. guess every bug has been seen before. 05:15
dalek rrot: r46329 | plobsing++ | trunk (3 files):
add tests for MANIFEST.generated
05:18
ttbot Parrot trunk/ r46329 i386-linux-thread-multi make error tt.taptinder.org/file/cmdout/296746.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 05:19
plobsing ok, there is no way that's my fault 05:20
wtf
dalek TT #1578 closed by plobsing++: Iterator.dump (among others) not installed 05:22
TT #1578: trac.parrot.org/parrot/ticket/1578
sorear plobsing++
05:42 iblechbot joined 06:10 uniejo joined 06:21 TiMBuS joined 06:23 viklund joined 06:39 dduncan left, aukjan joined 06:43 aukjan1 joined
moritz when I have a pointer to a sub, how can I store something in the lex pad associated with the sub? 07:00
in PIR, that is
sorear you can't. subs don't have lex pads, contexts do 07:01
bacek_at_work $P0 = Sub.get_lexinfo()
sorear double checks that
get_lexinfo will tell you the names of the lexicals that the sub uses, but not their current values 07:02
because the current values are associated with a specific activation of the sub
parrot doesn'
parrot doesn't have protolexpads unless you implement them in your HLL's LexInfo mapping
moritz in my case $P0 holds an instance of a Perl 6 sub 07:03
what I want to do is make $str.subst($regex, $code_block) set $/ for $code_block 07:04
so I want something like $code_block.context.set_var('$/', $my_match_object)
anyway, have to go to a seminar, will play with get_lexinfo() when I come back 07:05
08:11 fperrad joined 08:29 parthm joined
ttbot Parrot trunk/ r46315 cygwin-thread-multi-64int make error tt.taptinder.org/file/cmdout/296815.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 09:03
moritz "no space left on device" 09:05
I had that too, the other day :-)
and bought a 2TB hard disk :-)
09:48 mikehh joined 09:50 parthm joined 09:51 parthm left 09:55 aukjan joined
dalek kudo: 7563a50 | moritz++ | src/core/ (2 files):
Grammar.parse sets $/ in the caller's scope
10:00
bacek moritz, ping 10:24
moritz bacek: pong
(though I'll have to leave for lunch pretty soon) 10:25
bacek moritz, I did fix pbc_to_exe couple of days ago...
moritz bacek: you did? then I'll re-test with a ulimit
bacek: sorry, didn't notice yet
bacek moritz, r46288. Earely join codestring to avoid too much memory consumption in pbc_to_exe
bacek freezing and drinking glühender Wein to keep warm... 10:36
10:37 fperrad_ joined
moritz wow, even with correct umlaut 10:37
moritz impressed
bacek moritz, hey! Do you know some original recipe for it? 10:38
I just made with apple, black pepper, cloves and cinnamon. 10:39
moritz not really; there are some tea-like spice mixtures that you can buy here
I usually use those
bacek Cheater! :)
moritz (they are also tasty when mix different juices at cook them with these spices) 10:40
purl okay, moritz.
bacek purl, forget (they 10:41
purl bacek: I forgot (they
10:44 snarkyboojum joined
dalek rrot: r46330 | bacek++ | branches/stringbuilder:
Branch for developing StringBuilder
10:45
10:51 aukjan joined
dalek rrot: r46331 | bacek++ | trunk (7 files):
Branch for developing StringBuilder
11:01
11:27 snarkyboojum joined 11:43 clinton joined
dalek rrot: r46332 | mikehh++ | trunk/MANIFEST:
re-generate MANIFEST
11:50
rrot: r46333 | mikehh++ | trunk/src/pmc/stringbuilder.pmc:
add svn properties
rrot: r46334 | bacek++ | trunk/src/pmc/stringbuilder.pmc:
Add init/init_pmc/mark/get_string scaffolding.
12:07
rrot: r46335 | bacek++ | trunk/t/pmc/stringbuilder.t:
Add initial tests for StringBuilder.
rrot: r46336 | bacek++ | trunk (2 files):
Initial implementation of StringBuilder.push_string
rrot: r46337 | bacek++ | trunk (2 files):
Add test for sting capacity and fixed bug in capacilty calculation
rrot: r46338 | mikehh++ | trunk/t/distro/manifest_generated.t:
fix percritic failures - hard tabs and two argument open
rrot: r46339 | fperrad++ | trunk (6 files):
[library] add Archive/Zip
moritz bacek: you have committed the initial stringbuilder implementation to trunk, not branch 12:13
bacek moritz, shit...
12:15 sri joined, bluescreen joined 12:18 bluescreen joined
dalek rrot: r46340 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
[distutils] refactor with library Archive/Zip
12:23
rrot: r46341 | mikehh++ | trunk/MANIFEST:
re-generate MANIFEST
rrot: r46342 | mikehh++ | trunk/t/pmc/stringbuilder.t:
add svn properties
rrot: r46343 | mikehh++ | trunk/t/pmc/stringbuilder.t:
add svn properties
rrot: r46344 | mikehh++ | trunk/src/pmc/stringbuilder.pmc:
fix codetest failure - pod syntax
12:28 fperrad_ joined
bacek anyway, StringBuilder is very small and can be used right now already. 12:31
12:32 ruoso joined 12:35 jsut joined
dalek rrot: r46345 | bacek++ | trunk (2 files):
Expose Parrot_str_rep_compatible for use in StringBuilder.
12:39
rrot: r46346 | bacek++ | trunk (2 files):
Add converting of strigns in different encodings to StringBuilder
12:40
rrot: r46347 | bacek++ | trunk/tools/dev/pbc_to_exe.pir:
Migrate pbc_to_exe to StringBuilder.
bacek moritz, can you retest pbc_to_exe on latest trunk? 12:42
moritz bacek: will do in a moment 12:43
bacek moritz, thanks
moritz bacek: out of memory while running ./pbc_to_exe parrot-nqp.pbc 12:49
with a ulimit of 0.75GB virtual mem 12:50
bacek moritz, hmm... interesting...
moritz, in pbc_to_exe? 12:53
moritz yes 12:54
Coke bacek: funny, I had just volunteered yesterday to work on that on the sixperl call. Thank you for making my job easy. =-) 12:55
bacek Coke, :)
Coke bacek: how does it compare speed wise? 12:56
close to original String behaviore?
moritz it dies early, so it exits pretty fast :-) 12:57
bacek I didn't compare it yet... But looks like I "broke" memory consumption.
Coke bacek: did you make anything use the SB yet?
ah, there it is.
was the CodeString in PBC2EXE doing anything that actually required a codestring? 12:58
bacek: you should probably also override the concatenate VTABLES. 13:00
(they can just invoke push_string appropriately)
13:02 whiteknight joined 13:05 jsut_ joined
bacek Failed allocation of 3791279248 bytes 13:05
Sigh...
arnsholt That's, a largish chunk of memory 13:06
13:07 plobsing joined
Coke checks bacek's memory algorithm. 13:07
moritz 3791279248 / 1024 / 1204 13:09
purl 3075.10061513704
moritz erm
typo
still huge :-)
Coke bacek: when you calculate capacity, you're using the currently allocated, not the currently used vs. currently allocated. 13:11
dalek rrot: r46348 | fperrad++ | trunk (2 files):
[gziphandle] fix compress()
rrot: r46349 | fperrad++ | trunk/runtime/parrot/library/Archive/Zip.pir:
[Zip] with compression
Coke no? 13:12
no. nevermind, that looks right.
bacek It's looks strange. When I put debug output of size of reallocated string I've got next: 13:13
ts: 4599808
ts: 4603904
And then it hit the roof.
Almost immediately.
Coke Are you accidentally holding on to the old strings? 13:14
bacek Unlikely. 13:15
Coke (looks like you're just reusing the same header for buffer, and you don't mark the incoming s...
bacek suspect compact_pool...
"mark incoming"?
Coke also, one wonders why we can't just make this part of String.
incoming == s 13:16
(the one that's passed in.)
given that string registers may be immutable, but Strings aren't necessarily.
(unless, I suppose, we want them to be.)
bacek But I don't change it. I just memcopy it to "buffer" 13:17
Coke bacek: right. I'm saying you're not marking it and that's a good thing. (otherwise it might live over-long and chew up memory) 13:19
bacek Ah, yes...
13:20 snarkyboojum joined
Coke tries to duplicate the OOM error. 13:21
13:23 JimmyZ joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33664), fulltest) at r46347 - Ubuntu 10.04 i386 (g++) 13:24
t/pmc/packfile.t - TODO passed: 34 in make coretest, make test, testb, testf and testr
t/op/exit.t - TODO passed: 6 in testf
bacek Heh... 13:26
Shit... 13:27
GC never called...
JimmyZ bacek:~~ 13:30
bacek JimmyZ, hi 13:31
YAY! I found it...
JimmyZ Hello
Coke bacek: yesss? 13:34
bacek Coke, reallocate_string_storage. Commit is coming
r46351 13:36
moritz, can you try again? 13:37
moritz tries
dalek rrot: r46350 | bacek++ | trunk/MANIFEST.generated:
De-dup MANIFEST.generated.
13:44
rrot: r46351 | bacek++ | trunk/src/gc/gc_ms.c:
Update Memory_Block usage in gc_ms_reallocate_string_storage
rrot: r46352 | bacek++ | trunk/src/pmc/stringbuilder.pmc:
Use very large chunks in StringBuilder.
bacek moritz, r46352 should be much faster
moritz with 49 the build succeeded in the ulimit 13:45
(parrot build, haven't tried rakudo yet) 13:46
bacek parrot should build fine. Rakudo was much more interesting :) 13:48
moritz parrot didn't build previously in the ulimit 13:49
because of pbc_to_exe of nqp-rx
bacek ah, ok. 13:51
moritz bacek: yes, pbc_to_exe seems much faster now 13:53
13:54 iblechbot joined 13:55 bluescreen joined 13:59 bluescreen joined
bacek Coke, you volunteered for StringBuilder, ain't you? Now you can start adding VTABLEs into it. Like push_foo, i_concatenate, etc :) 14:02
I will add i_concatenate
And quite bit of documentation will be helpful... 14:06
Coke bacek want me to remove the branch you didn't use? =-) 14:09
bacek YES, PLEASE!
bacek hate svn even more now... 14:10
PerlJam Is there some timeline for git/no-git decisions?
JimmyZ no
dalek rrot: r46353 | bacek++ | trunk/src/gc/gc_ms.c:
Replace "ifs" with asserts in gc_ms_reallocate_string_storage to enforce "immutable stirngs contract".
14:18
Coke PerlJam: no. help dukeleto write the git committer guide.
rrot: r46354 | mikehh++ | trunk/src/pmc/stringbuilder.pmc:
fix codetest failure - trailing spaces
rrot: r46355 | bacek++ | trunk (2 files):
Implement StringBuilder.i_concatenate(_str)
Coke Help cotto with migration plan.
14:20 Andy joined
bacek And organize leather pants for all git-haters :) 14:21
I will lend my favourite baseball bat :)
Coke so, for codestring, I will just make it "isa StringBuilder"; that'll be the plan.
if you want efficient string concat, use the Builder, if you want that plus code-y interpolation, use CodeString 14:22
seem reasonable?
bacek++ for doing the hard work.
moritz seems reasonable.
Coke Or we could just collapse the 2. =-)
sigh. it is very wrong that my build for rakudo is "make -j 7" ... .. ... ^C "make -j1" 14:23
moritz make -j3 works here 14:24
NotFound All your core are belong to make.
Coke I do seriously wonder if we want String PMCs to also be immutable, or just the STRING's they contain. 14:25
(in which case we could just move StringBuilder guts into String) 14:26
(I'm happy to keep them separate for now.)
14:26 plobsing joined
NotFound You can just rename StringBuilder to MutableString 14:26
Coke can someone create an experimental ticket for StringBuilder and add it to Deprecated.pod? 14:27
NotFound Or to String, and String to ImmutbalString
bacek Coke, CodeString should just "has-a" StringBuilder, not RSA. 14:28
Coke bacek: I'm making it ISA SB.
one less PMC to carry around. 14:29
bacek NotFound, why? StringBuilder is common term.
Coke, hmm... You'll save a thousands of PMCs just switching from RSA to SB.
Coke yah, I'm fine with the name; we can keep them separate for now; I just wonder if everyone will end up using SB instead of String. =-)
bacek: why not just go all out? then I don't need to dispatch to my hasa, either, I'll just be invoking the super vtables. 14:30
bacek Which is same as dispatch. 14:31
Coke no, it's not.
if I has a, I have my vtable, and then I have to invoke the contained pmc's vtable. 14:32
if I isa, then I don't have my own vtable function; my vtable points to the parent's directly.
bacek But invokation is same in terms of cost
Coke (handled when the PMC is built, rather than a runtime.) Or am I misremember how pmcs work?
bacek One pointer dereference. 14:33
Coke 2 c functions instead of 1?
no, 2... one for me, one for the contained.
bacek But SB not "is-a" String...
And adding a lot of String methods into it looks... insane. 14:34
Coke Ahhh. ok. yes, that's definitely a good reason.
JimmyZ parrot is more like java and .net
:)
dalek rrot: r46356 | coke++ | branches/stringbuilder:
Most of this work went straight to trunk (bacek++), remove branch.
14:35
rrot: r46357 | bacek++ | trunk (2 files):
Implement StringBuilder.set_string_native
rrot: r46358 | coke++ | branches/codestring (25 files):
merge latest from trunk
rrot: r46359 | mikehh++ | trunk/src/pmc/stringbuilder.pmc:
fix Pod syntax
mikehh damnit - distro_tests FAIL - t/distro/manifest_generated.t - Failed test: 4 - Does not exist - 'include/pmc/pmc_opcode.h' 14:43
how do you regenerate MANIFEST.generated? 14:44
Coke you don't 14:46
it's hand edited.
mikehh 'k - will have a look
moritz it's quite ironic to have .generated file that's not generated 14:47
Coke rant - I shouldn't have to rebuild all of parrot because I changed the install prefix. :P
moritz Coke: it's surely a common operation, and worth optimizing for... NOT 14:48
Coke odd. if I have max memory size (kbytes, -m) 786432 14:50
dalek rrot: r46360 | bacek++ | trunk/runtime/parrot/library/Test (3 files):
Migrate Test::More to StringBuilder
14:51
Coke my rakudo build is still showing a resident size of 4700M or more.
moritz uses ulimit -v 14:52
JimmyZ I found parrot will more slower if I run the same codes in a file 14:55
moritz as opposed to...?
a pipe?
purl well, a pipe is alt+shift+L or 200EUR on rue Saint Denis
moritz forget a pipe
purl moritz: I forgot pipe
JimmyZ moritz: I nopaste it
nopaste
nopaste?
purl nopaste is nopaste.snit.ch (works with the script in $_PARROT/tools/dev/nopaste.pl) or paste.scsys.co.uk or www.extpaste.com or gist.github.com
nopaste "JimmyZ" at 192.168.1.3 pasted "one" (22 lines) at nopaste.snit.ch/20483 14:56
"JimmyZ" at 192.168.1.3 pasted "two" (13 lines) at nopaste.snit.ch/20484 14:57
JimmyZ moritz: two is faster then one 14:58
moritz it does less than one, no?
JimmyZ one outputs: 4.18386197090149 and 6.2562301158905
and two outputs: 4.26384592056274 14:59
moritz maybe memory fragmentation
14:59 whiteknight joined
bacek JimmyZ, first one has more GC pressure 14:59
JimmyZ Yeah 15:00
bacek JimmyZ, you can try to replace SELF.push_string with STATICSELF in i_concatenate and test again 15:01
JimmyZ push syntax use 4.15865683555603 and .= syntax use 4.23602914810181 15:02
bacek: I will try that 15:03
bacek Coke, in my latest commits I started removing of concat_s_s usage. You go further and finally rip it off. 15:04
bacek departing to bed.
Night, humans. 15:05
moritz sleep well, and dream of electric shee^Wparrots
dalek rrot: r46361 | mikehh++ | trunk/MANIFEST.generated:
add include/pmc/pmc_opcode.h to MANIFEST.generated
15:07
rrot: r46362 | bacek++ | trunk/runtime/parrot/library/parrotlib.pir:
Don't use concat_s_s in parrotlib.pir
rrot: r46363 | bacek++ | trunk/runtime/parrot/library/Test/More.pir:
Don't use concat_s_s in Test::More at all.
rrot: r46364 | bacek++ | trunk/runtime/parrot/library/PGE/Dumper.pir:
Migrate PGE::Dumper to StringBuilder and avoid usage of concat_s_s op.
rrot: r46365 | bacek++ | trunk/runtime/parrot/library/Getopt/Obj.pir:
Avoid usage of concat_s_s in Getopt::Obj
JimmyZ bacek: It's a bit faster, but in hash.pmc is a bit slower. 15:09
15:09 khairul joined
JimmyZ 4.4 - 4.2 / 4.2 15:10
purl 3.4
JimmyZ (4.4 - 4.2) / 4.2
purl 0.0476190476190477
JimmyZ in hash.pmc, change it to static is 0.05 slow... 15:11
15:11 PacoLinux joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33669), fulltest) at r46361 - Ubuntu 10.04 i386 (gcc with --optimize) 15:19
t/pmc/packfile.t - TODO passed: 34 in make coretest, make test, testb, testf and testr
t/op/exit.t - TODO passed: 6 in testf
15:25 fperrad joined 15:30 PacoLinux joined 15:54 davidfetter joined
particle bacek: your last commit message explains "what", but not "why". please try to explain why, it's much more important than what. 15:57
15:58 theory joined
Coke particle: concat_s_s is deprecated. 16:00
and stringbuilder is better at doing concats than String.
(I know you mean in general. just answering that specific one.)
particle coke: thanks 16:01
16:02 PerlJam joined
Coke that said, I don't think avoiding .= is the right answer. 16:03
I think fixing it in IMCC so it goes to concat_s_s_s is the right answer.
particle yeah, neither do i, and stringbuilder isn't used there
that can't be a hard fix, after all, it's only imcc.... 16:04
Coke thanks for volunteering!
dalek rrot: r46366 | coke++ | branches/codestring/src/pmc/codestring.pmc:
first pass at converting to has-a StringBuilder
16:13
rrot: r46367 | coke++ | trunk (2 files):
Add push_pmc to StringBuilder
Coke so, any idea why neither 'ulimit -m' or 'ulimit -v' seem to actually limit anything for me? 16:19
(OS X, 10.6)
whiteknight I don't see how .= can be made to work with immutable strings 16:23
the semantics of it get all garbled up, and then you end up with weird problems with broken references
Coke whiteknight: because $S0 = $S0 . 'foo' works. 16:24
whiteknight you certainly have a distinct semantic difference from other X= operators
Coke so you just treat $S0.= 'foo' the same way. 16:25
Strings ain't ints.
er, strings
whiteknight but then $S0 is pointing to a completely different string header
particle and? 16:26
Coke (we could always just make $S0 .= 'foo' an error; I don't particularly have a problem with that, given the recent deprecations, but it seems like making it work is a good thing.
particle $S0 = $S0 . 'foo' now has $S0 pointing at an entirely different string header
Coke whiteknight: yes. so if $S1 was pointing to $S0 before the concat, it's not pointing to the new S0 after the concat.
that's fine.
(i think)
whiteknight that seems unnecessarily confusing
not to mention that PIR's .= operator would be distinctly different semanically from Perl5's Perl6's, and PHP's .= operator 16:27
moritz not quite 16:28
in Perl 6 strings are also immutable
Coke we don't particularly care if the pir operators are different, do we?
moritz so $str ~= 'to_append' sets $str to a new Str object
whiteknight the only reason PIR has symbolic operators like that in the first place is to make it more comfortable for programmers
particle i'm sorry, what does parrot's assembly have to do with dynamic language syntax?
whiteknight those symbolic operators certainly aren't any help in terms of parsability or functionality
Coke whiteknight: ... yes. and I'm suggesting we keep .= and make it do something useful after concat_s_s is gone.
particle php uses + to concat strings
whiteknight Coke: and I'm suggesting we cut .= because we don't do inplace string concatination anymore 16:29
Coke if we just remove concat_s_s (as it's deprecated, being an inplace change of a string), then $S0 .= 'foo' will just die.
whiteknight: ah, thank you.
whiteknight symbolic operators in PIR exist only to make it more familiar to programmers. Why would we add a symbolic operator that confuses programmes?
dalek rrot: r46368 | coke++ | branches/codestring (19 files):
merge latest from trunk
Coke <shrug> WFM - either way requires a change to IMCC>
Coke - you probably want to comment on ... 1540, I think?
particle aye, that deserves comment 16:30
mikehh heading back to amd64 - bbiab
particle so, if you want to use .= in pir, convert the left string to a String and use concat_p_s?
that's fair. 16:31
whiteknight Then we restrict .= to operate on a $P LValue? 16:32
Coke whiteknight: easier just to remove it.
(though that requires more notice)
particle is it easier to remove?
whiteknight easier yes, but it's doable either way 16:33
NotFound Even better, kill that sugar. We said some time ago that pir actually has too much sugar, given that his main intended usage is code generators, not human writers.
particle what are the current concat opcodes? i don't have ops.num handy
whiteknight let me look
particle i'm rebuilding my parrot build env now 16:34
latest ubuntu, etc
16:34 mikehh joined
whiteknight looks like SS, PS, PP, SSS, PPP, PPS 16:35
particle keep P* 16:36
so, we'd be removing one variant, SS 16:37
whiteknight I believe so, yes
particle strings are constant, pmcs aren't
whiteknight righ
16:41 Mokurai1 joined 16:53 lucian joined 16:57 lucian joined 17:04 patspam joined
NotFound Everyone is having "t/pmc/packfile.t TODO passed: 34" in i386? 17:08
17:08 davidfetter joined 17:11 jjore joined
dalek rrot: r46369 | NotFound++ | trunk/src/pmc/packfileannotations.pmc:
read from/write to annotations groups in PackfileAnnotations PMC
17:18
dukeleto 'ello 17:22
17:32 patspam joined
cotto_work good morning dukeleto 17:38
17:50 patspam joined 18:07 patspam joined, jjore joined
cotto_work github.com/davglass/github-trac 18:07
darbelo Nice. How is the other git plugin faring sofar? 18:10
cotto_work I haven't done too much with it in the last few days. It looked usable but really slow. 18:11
s/looked/was/
I'm thinking something like cgit or github would be a better option. 18:12
darbelo Annoying slow or unusable slow?
cotto_work annoying
18:13 chromatic joined
particle cotto_work: see git.openefs.org 18:13
cotto_work yeah. they're using cgit 18:14
particle they is me :)
and hosted at osuosl
and i likey
integrated with trac.openefs.org
cotto_work That's promising. 18:15
Ddi you just set it up? 18:16
nm.
particle i set it up in december and january 18:17
cotto_work How is trac integrated with cgit? 18:19
particle the git engine is gitorious 18:20
the trac plugin is ...
TracGit 0.11.0.2
we use drupalauth to have one username for drupal and trac, with separately managed git access 18:21
darbelo That sounds slightly better than parrot's current situation. 18:22
particle this allows users to create trac tickets and post drupal content with the same username, and lets us limit who has committer rights separately
let's just say i learned a thing or two from setting up and managing parrot.org
darbelo I think it might be nice to have a single auth for all three. 18:24
But unification of Trac and Drupal auth is still better than unification of Trac and VCS auth. 18:25
cotto_work The unified theming is nice. 18:32
particle, is this the plugin: trac-hacks.org/wiki/GitPlugin 18:33
particle cotto_work: aye, that's the plugin 18:34
and thanks, it took me quite a while to get the design to look similar... just don't visit mailman.openefs.org... 18:35
cotto_work How are you using it? I don't see any links to git changesets.
It has its own source browser but you're using cgit instead.
particle cotto_work: i'm not sure i've made any in ticket comments
18:35 jjore joined
particle yes, cgit is prettier 18:35
cotto_work and speedier from what I've seen 18:36
particle aye
cotto_work I still find the idea of a web app written in C to be very strange. 18:38
It's great as long as I don't have to debug it though. 18:42
particle, so GitPlugin is installed but unused? 18:47
if it's reasonably easy to have GitPlugin link to the cgit install for specific changesets, that might be a good solution. 18:49
18:49 joeri joined
chromatic seen plobsing 18:50
purl plobsing was last seen on #parrot 13 hours, 29 minutes and 51 seconds ago, saying: wtf
GeJ Good too-much-morning everyone. 18:52
18:56 cognominal joined
Coke chromatic: so, bacek did all the hard work. 18:58
I will make codestring HASa or ISA SB this evening.
chromatic Excellent.
The only other thing we need to do to make Rakudo build quickly again is fix the lookup for STRINGs when creating PBC. 18:59
Then maybe dukeleto will run some benchmarks again.
cotto_work I don't like cgit's lack of a blame view. Other than that it's nice. 19:01
moritz oh, did you break rakudo again? 19:02
Coke not int he past day or so. =-)
moritz: did you see one of your segfaults is fixed in trunk?
16...12 I think?
I could reproduce it at r<OLD> but not r<HEAD> 19:03
moritz Coke: rebuilding parrot right now
chromatic build *quickly*
moritz build finished 19:05
now compiling rakudo's setting 19:06
Coke I am wondering how StringBuilder can be using a STRING mutably. (clearly they are not as immutable as I was led to believe. =-) 19:24
ttbot Parrot trunk/ r46350 cygwin-thread-multi-64int make error tt.taptinder.org/file/cmdout/298239.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 19:25
Coke ttbot, that's really old. 19:26
chromatic It uses a buffer, not a STRING.
Coke chromatic: the ATTR is a STRING 19:27
ATTR STRING *buffer; /* Mutable string to gather results */
so how is a buffer not a string? 19:28
chromatic Ah, missed that.
Coke er, so how is a STRING a buffer?
ah.
chromatic A STRING points to a buffer. 19:29
Coke ok. so how are we enforcing immutabiliy if we can just <do whatever stringbuilder is doing> ? 19:31
chromatic The same way you enforce anything in C. 19:32
Coke "please only call my API"? 19:33
chromatic Right.
Coke hokay. 19:34
moritz down to 4 segfaults / bus errors in rakudo spectest 19:36
19:40 ash_ joined
Coke [6~/win 2 19:41
particle hands coke window 2 19:42
darbelo I wonder, shouldn't the peek opcode return STRINGNULL in place of a 0-length string? 19:55
dalek kudo: 5713af2 | moritz++ | t/spectest.data:
run two more test files
20:00
20:10 cognominal joined
dalek kudo: badc61d | moritz++ | docs/metamodel.pod:
[docs] perl5o found by ash_++
20:12
20:26 tcurtis joined
nopaste "coke" at 192.168.1.3 pasted "If that looks good, go ahead and apply it in trunk." (27 lines) at nopaste.snit.ch/20486 20:30
"darbelo" at 192.168.1.3 pasted "This passes fulltest here. +1?" (22 lines) at nopaste.snit.ch/20487 20:34
20:34 allison joined
Coke 16:34 <+nopaste> "darbelo" at 192.168.1.3 pasted "This passes fulltest here. +1?" (22 lines) at nopaste.snit.ch/20487 20:36
(for allison)
+0 from me. seems reasonable, but WDIK.
darbelo A 0-length enum_stringrep_one is pretty much the same as a null string. 20:38
NotFound darbelo: enum_stringrep_one is loooong deprecated, avoid that shit. 20:40
cotto_work particle, it looks like links to git changesets are pretty broken on openefs.org. Trying to preview a wiki page with a git hash causes the git plugin to fail. 21:07
particle that's bad :( 21:08
can you submit a bug to openefs for that, or send particle@openefs.org an email with the details? 21:09
cotto_work sure
darbelo pokes dalek.
particle cotto_work++ 21:10
dalek rrot: r46370 | darbelo++ | trunk/src/ops/io.ops:
Make the peek opcode return STRINGNULL instead of freshly allocated 0-length strings.
cotto_work particle: trac.openefs.org/ticket/157 21:15
BTW, trac/drupal integration is really nice. I didn't even have to think about the fact that I was using two different web apps. 21:17
21:17 Whiteknight joined
particle i really tried hard to make them look similar 21:18
it's not perfect, but glad to know it's "good enough"
cotto_work it shows
particle i hope to do the same for parrot.org in my copious free time
darbelo particle++ 21:19
dalek rrot: r46371 | NotFound++ | trunk (3 files):
some sanity in Parrot_str_length and Parrot_str_byte_length meaning and usages
21:26
darbelo NotFound: inline op new(out STR) :base_mem { $1 = Parrot_str_new_noinit(interp, enum_stringrep_one, 0); } 21:36
NotFound Did we have new_s? I wasn't aware of that. 21:38
darbelo Me either, I just acked for enum_stringrep_one.
We have new_s_i too. 21:39
That one does $1 = Parrot_str_new_noinit(interp, enum_stringrep_one, $2);
nopaste "darbelo" at 192.168.1.3 pasted "Recoil in horror, for here is enum_stringrep_one" (25 lines) at nopaste.snit.ch/20490 21:40
NotFound That doesn't make sense with immutable strings.
darbelo It doesn't make sense with mutable strings either. 21:41
ash_ so, nci currently is done with the nci.pmc right? 21:50
dalek tracwiki: v7 | chromatic++ | PerformanceImprovements 21:51
tracwiki: _synchronize is gone
tracwiki: trac.parrot.org/parrot/wiki/Perform...ction=diff
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33673), fulltest) at r46371 - Ubuntu 10.04 amd64 (g++) 21:56
22:11 hercynium joined
nopaste "darbelo" at 192.168.1.3 pasted "Quick hack to keep _provisional keys out of copnfig_lib.pir" (12 lines) at nopaste.snit.ch/20491 22:17
22:20 lucian_ joined
ash_ so... should nci use the nci pmc or should it use built in ops like dlfunc, dlvar, loadlib 22:28
22:28 lucian joined 22:29 TonyC joined 22:30 nopaste joined
darbelo ash_: both? 22:30
I'm not a NCI specialist, but I think those two APIs provide different functionalities. 22:31
dalek rrot: r46372 | coke++ | trunk/src/pmc/stringbuilder.pmc:
small refactor.
22:32
ash_ I am reading the source on both of them, I wasn't sure if it was completely abstracted away behind the NCI.pmc or not, it seems parts of it are, but other parts are still in some of the core ops, like dlfunc and dlvar 22:33
just looking at some of the stuff so I can start figuring out what I need to do for my GSoC
darbelo You can "do NCI" without ever directly instantiating a 'NCI' PMC, if that is what you mean. 22:35
ash_ yeah, thats what I was referring to, i see that now
dlfunc makes an nci pmc for you 22:37
darbelo handle = loadlib 'libwhatever.so'; func = dlfunc handle, name, sig; is the workflow I remember.
I never bothered to look under the covers. 22:38
ash_ yeah, func is an nci.pmc in your example
darbelo Right, I keep forgeting we have invokable PMCs. 22:41
dalek tracwiki: v6 | cotto++ | UsingGitAndSvnInTrac
tracwiki: make intro less stupid
tracwiki: trac.parrot.org/parrot/wiki/UsingGi...ction=diff
cotto_work Next time I post something like like the first part of UsingGitAndSvnInTrac, someone please do me the favor of telling me it's counterproductive. 22:42
chromatic It read accurately to me. 22:47
Tene Looks fine to me.
cotto_work Sure but the tone was not helpful.
chromatic My first patch to this project was almost 9 years ago. 22:49
I started using Subversion around M20.
I have a pretty good understanding of Parrot and source control.
Tene Complaints about "tone" really grate on me. 22:50
chromatic I stopped trusting Subversion merges when one of them failed for a branch on a file I hadn't modified and that no one on trunk had modified.
ash_ If I wanted make a new config step, is there a place in the documentation I should look for how to do that? or should I look at another config step's source
chromatic If you have to modify your workflow to remove your VSC from the process because otherwise you'd lose history, your VCS is getting in the way. 22:51
dalek nxed: r466 | julian.notfound++ | trunk/winxedst1.winxed:
escape non ascii chars in generated pir in stage 1
22:52
cotto_work Sure, but there are ways of expressing those ideas without talking down to anyone who might prefer svn. That's all. 22:53
People who hack on Parrot are generally quite respectful of others with varying skills and preferences. I love that part of the community and don't want to change it. 22:57
darbelo "Here's a nickel kid. Go get yourself a real VCS" 22:58
Tene That's an interesting perspective. I've always seen that as more "The parrot community contains people with diverse and strong opinions, and are comfortable seeing others express opinions that differ from theirs." 23:01
"Comfortable disagreeing" more than "Avoids disagreements"
I'm really horrible at politics, though, so I wouldn't be surprised if I'm way wrong. :)
23:02 tetragon joined
cotto_work I never said anything about avoiding disagreements. 23:02
darbelo Tene: Even while violently disagreeeing, people here are quite respectful of the other side.
Coke having actually read cotto's paragraph there, yah it wasn't helpful. good fix.
Tene Hmm. Okay. Good for me to learn something about tone today, then. :) 23:03
ttbot Parrot trunk/ r46373 i386-linux-thread-multi make error tt.taptinder.org/file/cmdout/298428.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 23:10
NotFound darbelo: I disagree, you dirty moron
;)
darbelo NotFound++
ash_ is it okay if for now I use github instead of svn? for my GSoC project 23:12
cotto_work It'll make life more troublesome for you just because of the mismatch. 23:13
darbelo ash_: You'd have to ask your mentor first too.
cotto_work: Given that GSoC happens in branches, there might be less mismatch trouble for GSoCers... 23:16
ash_ right now, i have a fork of the github mirror on dukeleto's github account, and i am working in a local branch, i was planning on just making patches and sending them wherever if I need to merge back into something else 23:19
dalek rrot: r46373 | darbelo++ | trunk/config/gen/config_pm.pm:
Quick hack to keep _provisional keys out of copnfig_lib.pir
23:21
cotto_work If you and your plobsing are comfortable with that, great.
s/your //
darbelo wants a plobsing.
ash_ i'll have to ask plobsing about it, i haven't seen him online recently, does anyone know if there is a normal time he is online? or should I just email him? 23:22
darbelo I hear they make for great garden decoration.
cotto_work seen plogbsing
purl I haven't seen 'plogbsing', cotto_work
cotto_work seen plobsing
purl plobsing was last seen on #parrot 18 hours, 2 minutes and 0 seconds ago, saying: wtf
ash_ anyone know what timezone he is in? just curious, I am in central US here 23:23
cotto_work plobsing? 23:24
purl plobsing is, like, part of our sanity injection framework or probably canadian or mailto:plobsing@gmail.com
ash_ is there a place on the wiki or somewhere I should put any information about my GSoC work? 23:25
just so i am not keeping anyone out of the loop, if anyone cares :P
darbelo ash_: You can create a wiki page, or (after bugging Coke for the propoer credentials) use a parrot.org blog. 23:26
moderator 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 23:38
ash_ If i have a blog, do i need to let someone know about it? for parrot/perl6 related blog posts 23:42
cotto_work Last year, instead of preposting his #ps report darbelo just posted a link to his latest blog entry. You could do something like that. 23:43
darbelo Also, dukeleto has declared the weekly blogging mandatory for this year.
So, I would talk with him too. 23:44
ash_: More data here: groups.google.com/group/tpf-gsoc-st...37b91423f5 23:45
ash_ yeah, I just found that
darbelo His second mail mentions what you were asking ;) 23:46
23:47 tcurtis joined, particle joined, TiMBuS joined
ash_ so, our mentors will get our blogs onto the blog aggrigators? 23:48
Coke parrot.org is already on the parrot aggregator.
if you have a separate blog, please open a trac ticket to get it added to planet.parrot.org 23:49
er, planet.parrtocode.org
23:51 ruoso joined
ash_ planet.parrotcode.org ? :P 23:52
darbelo Coke: Are there any plans to move that into parrot.org? 23:54
sorear chromatic: What is "M20"? 23:55
darbelo guesses Month 20 ?
Coke darbelo: nope.
cotto_work milestone 20 praps 23:56
Coke ... or a road in the UK?
Coke ->
sorear "i've been using subversion since M20"
darbelo My second choice was a nebula.
Google claims it's a recording studio in Madrid... 23:57
chromatic Milestone 20. 23:59