Parrot 2.6.0 | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | fix 'make html' (talk to Coke), merge gc_* branches, fix/replace/optimize hashing
Set by moderator on 3 August 2010.
bacek_at_work aloha, humans 00:00
Austin whiteknight: link? 00:07
purl link is for me?
00:09 brianwisti joined
whiteknight Austin: science.slashdot.org/story/10/08/08...P?from=rss 00:13
00:19 Patterner joined, Chandon joined, bacek joined, cotto joined, contingencyplan joined, workbench joined, bacek_at_work joined, particle joined, TonyC joined, jhelwig joined, japhb joined, jdv79 joined, Khisanth joined, GeJ joined, mattp joined, p6eval joined, dzoe joined, sri joined, mikegrb joined, atrodo joined, Maddingue joined, frodwith joined, tewk_ joined, szbalint joined, confound joined, sorear joined, Tene joined, Infinoid joined
Austin sings, "Someday soon I'll leave this world of pain and toil and sin." 00:31
Austin sings, "The Lord will take my by the hand to join all of me kin'" 00:32
Austin sings, "Me only wish is when the savior comes for me and you..."
Austin sings, "He kills the cast of Riverdance, and Michael Flatley, too!"
cotto brings a tear to my eye 00:47
Austin DaVinci's Notebook, "Another Irish Drinking Song" 01:05
01:37 rurban_ joined
Austin Jeez. It's about time! bootstrap/Pmc/Hash.nqp passes, finally. 01:55
Austin ++
01:56 kid51 joined
dalek rrot: r48351 | jkeenan++ | branches/tt1726_pmc_pod/t/codingstd/pmc_docs.t:
Refactor internals so as to create a data structure where the documentation

iteration through this data structure. Some changes to output.
01:58
purl Since Thu Aug 5 20:55:17 2010, there have been 286 modifications and 210 questions. I have been awake for 3 days, 5 hours, 3 minutes, 39 seconds this session, and currently reference 853176 factoids. Addressing is in optional mode.
cotto stupid bot 01:59
purl Bad programmer, no cookie!
Austin vomit, hurl, whorf, fail. 02:04
02:11 jimk joined
cotto My student seems to have come up with something of non-trivial shininess. 02:18
not quite perfect, but shiny 02:20
nopaste "cotto" at 192.168.1.3 pasted "explodey code for khairul" (64 lines) at nopaste.snit.ch/22634 02:24
02:32 khairul joined 02:35 janus joined 02:37 Andy joined 02:48 dduncan joined
khairul cotto: ping 02:52
cotto khairul, pong 02:53
nopaste.snit.ch/22634
I heard you like segfaults.
nopaste "cotto" at 192.168.1.3 pasted "more minimal test case for khairul" (33 lines) at nopaste.snit.ch/22635 03:04
03:05 plobsing joined 03:10 bacek joined 03:15 aloha joined 03:27 hercynium joined
nopaste "cotto" at 192.168.1.3 pasted "diff from trunk and khairul's branch" (49 lines) at nopaste.snit.ch/22636 03:29
"cotto" at 192.168.1.3 pasted "diff from trunk and khairul's branch, v2" (33 lines) at nopaste.snit.ch/22637 03:34
03:35 LoganLK joined
nopaste "cotto" at 192.168.1.3 pasted "gsoc_instrument test failures on ubuntu 10.04 x86 for khairul" (22 lines) at nopaste.snit.ch/22638 03:39
dalek kudo: ded33e1 | pmichaud++ | docs/release_guide.pod:
Update release guide to note new publication strategy for
03:45
rrot: r48352 | cotto++ | branches/gsoc_instrument/src/pmc/task.pmc:
remove some unneeded changes to Task
03:55
rrot: r48353 | khairul++ | branches/gsoc_instrument/t/dynpmc/instrumentclass.t:
Fixed copy-paste error.
rrot: r48354 | cotto++ | trunk (2 files):
store a reference to a thrown exception in the runloop struct
04:11
kudo: 38f9f12 | duff++ | docs/release_guide.pod:
volunteer for the Oct release
04:14
04:23 khairul joined
dalek rrot: r48355 | khairul++ | branches/gsoc_instrument/src/dynpmc/instrument.pmc:
Mark attr->event_handlers.
04:28
04:43 brianwisti joined
Austin ++ # Array bootstrap works 04:49
cotto msg khairul t/dynpmc/instrument.t passes with r48355 04:53
purl Message for khairul stored.
cotto if you want to karma yourself, you can always abuse nopaste 05:03
05:05 Casan joined 05:09 petdance joined
Austin Surprising how frustrating this is... 05:28
I don't really want karma. I'm just giving myself a moral pat on the back... 05:29
sorear why abuse nopaste when you can abuse dalek instead 05:30
Austin sings, "... and I'm all strung out on heroin on the outskirts of town" 05:33
Hmm 05:34
Maybe something is wrong with String.defined
05:41 dduncan left 05:48 somebody_ joined
dalek rrot: r48356 | plobsing++ | branches/dynop_mapping (51 files):
sync with trunk
05:51
06:08 AndyA joined, uniejo joined
Austin Ahh. Undef.defined now returns 1... 06:39
purl, make me a sandwich 06:50
purl Austin: what?
Austin purl, sudo make me a sandwich
purl Austin: excuse me?
Austin :(
06:55 Casan joined 07:14 fperrad joined
dalek TT #1734 created by moritz++: PCT::Compiler should null temporaries when they are no longer needed 07:34
TT #1734: trac.parrot.org/parrot/ticket/1734
08:29 janus joined 08:44 AndyA joined
dalek kudo: c1e19af | moritz++ | docs/ChangeLog:
update ChangeLog a bit
08:50
09:38 rurban_ joined 09:40 NotFound joined
NotFound Hi 09:40
purl privet, NotFound.
mikehh All tests PASS (pre/post-config, make corevm/make coretest, test, fulltest) at r48356 - Ubuntu 10.04 amd64 (g++ with --optimize) 10:37
winxed r585 builds on parrot r48659, make test/test1/test2 PASS - Ubuntu 10.04 amd64 (g++ with --optimize) 10:46
partcl-nqp (7548f1a) builds on parrot r48356 - make test PASS (t/cmd_expr.t - TODO passed: 287) - Ubuntu 10.04 amd64 (g++ with --optimize) 10:51
oops - the winxed is at parrot r48656, (don't know where the 9 came in, must check what I type before hittin' enter) 10:54
10:59 bacek joined, aloha joined
Austin NotFound++ ; TT update 11:26
11:31 NotFound joined 12:05 dafrito joined 12:12 lucian joined 12:25 whiteknight joined
dalek rrot: r48357 | NotFound++ | trunk/src/call/args.c:
fix pcc handling of slurpy after optional, TT #1733
12:33
12:33 Andy joined 12:50 bluescreen joined
nopaste "bluescreen" at 192.168.1.3 pasted "Don't know if this is the expected behavior or not" (23 lines) at nopaste.snit.ch/22644 12:51
bluescreen when I execute that I get Method 'someMethod' not found for invocant of class 'String' 12:52
Austin_away .lex creates an alias for self. Looks okay to me. 12:53
Coke wonders how long lua was dead when we were saying it was the only complete impl. =-)
bluescreen so, so when i store something in var1 it overwrites self? 12:54
moritz bluescreen: you're calling 'someMethod' on a string. What else would you expect?
bluescreen I thought .lex was some sort of var1 declaration not an alias
moritz it says "declare variable var1, and associate it with self"
bluescreen that code is generated through NQP-rx, when i create a Variable var1 with value self 12:56
and use the .isdecl(1)
Coke nqp-rx only has :=
bluescreen so, should do it in some other way?
Coke can you show us the nqp-rx code?
Austin_away I think he means "Past"
bluescreen well yes! i meant PAST 12:57
Coke past is a library, not a language. =-)
anyway, if you can show us the /source/ of what you're doing, we can help you figure out if that's what you mean to do.
bluescreen my $variable := PAST::Var.new(:name($name), 12:58
:scope<lexical>,
:viviself<Undef>,
:node($/) );
$variable.isdecl(1);
NotFound Coke: I think It broke recently with some pcc optimiations
bluescreen this is from parrot 2.4.9
2.4.0
Coke NotFound: (recently) well, that's something. NotFound++ for fixing it!
Austin_away I don't see self
moritz bluescreen: first step: update to 2.6.0 12:59
NotFound Coke: probably was me who broke it, so the world is balanced ;)
Austin_away NotFound-- # for breaking it
Coke focuses on $DAYJOB. 13:00
bluescreen Austin_away: Its a long code and part of an HLL and I don't want to bore everyone, I now know that .lex are aliases
thanks, Coke, moritz, NotFound and Austin_away 13:01
moritz basically you shouldn't have to care what variables they are being aliased to
Austin_away bluescreen: This may still be an optimization bug. Beware.
moritz unless you want to interface with the generated PIR in some non-standard way
bluescreen and you saying this is something that is broken since 2.4.0? 13:02
guys what would be a good go-to site when I try to understand for instance the expected behavior of ".lex" and other directives/opcodes ? 13:17
Austin_away #parrot on irc. :) 13:18
bluescreen lol.. I guess doc is not up-to-date 13:20
mikehh rakudo (c1e19af) builds on parrot r48356 - make test PASS, make stresstest (pugs r31933) FAIL - Ubuntu 10.04 amd64 (g++ with --optimize) 13:22
t/spec/S03-smartmatch/any-bool.t - No subtests run
Austin_away bluescreen: docs.parrot.org/parrot/latest/html/...r.pod.html 13:23
The $_PARROT/docs directory contains these pod files, too, so you don't have to be online. 13:24
bluescreen thanks Austin_away, looks good
Austin_away What it doesn't make clear is the relation between .local and .lex
In your case, "self" is a built-in .local symbol, that creates an alias 'self' for some register ($P14, say) 13:25
13:25 smash joined
smash hello everyone 13:26
Austin_away So saying .lex 'var1', self
is the same as saying .lex 'var1', $P14
The thing is, either approach to modifying $P14 -- using self or using 'var1' -- changes both aliases.
bluescreen thanks! 13:29
13:45 plobsing joined 14:20 ruoso joined 14:23 clinton joined 14:24 bubaflub joined
Austin_away What happened to the File pmc? 14:33
Coke probably a dynpmc now. 14:36
hai. there it is. 14:37
plobsing ping NotFound 14:39
Austin_away coke++ #found it 14:40
Coke I am using the OS pmc in partcl-old, damned if I see how I'm loading it.
Austin_away Me too. It must be loaded by something basic 14:43
plobsing HLL.pbc loads it (trial and error) 14:44
14:45 jsut joined
jdv79 pmichaud: are your talks from the YAPCs this year online anywhere? 14:52
moritz pmichaud.com/2010/pres/ has some slides 14:53
jdv79 ah, i just realized i should look harder. thanks.
moritz afaict the video recordings from YAPC::EU aren't online yet 14:54
there are some talks from YAPC::NA on www.presentingperl.org/yn2010/
plobsing msg NotFound I've entered a couple issues in the winxed issue tracker (not sure how often you check there) 14:55
purl Message for notfound stored.
15:04 theory joined 15:14 brianwisti joined 15:24 Andy joined
dalek kudo: 6d9691d | petdance++ | src/binder/bind.c:
Fix a problem of setting *error with itself. (RT #77098)
16:02
Andy yay me
Coke Andy++ 16:06
Andy I like to be fixin' the stuff.
Coke ok. tell me how to make git show me the short id. =-) 16:07
Andy heh, dunno. 16:10
Coke ah, git log --abbrev-commit # not --abbrev.
dafrito Coke: git log --oneline is useful for a brief summary, if you were wondering :) It also abbreviates commits 16:13
Coke dafrito: danke. 16:14
dafrito And you can combine it with an alias, too, for brevity's sake. This will make 'git ol' output the 10 most recent commits, in oneline form: git config --global --add alias.ol 'log --oneline -10' 16:19
I like aliasing up ones like that, along with things like ci=commit, rb=rebase, and so forth
16:27 luben_work joined 16:31 lucian_ joined 16:34 luben_work joined, luben_work_ joined 16:35 luben_work_ left 16:36 luben_work joined
Coke evalbot? 16:38
purl evalbot is probably set to do something when people say something
Coke purlbot?
purl i think purlbot is moderation accurate there
16:40 luben_work joined 16:46 cotto_work joined
dalek rtcl-nqp: 3d4dff5 | Coke++ | (2 files):
[namespace qualifiers] Austin++ for nqp syntax help.
16:55
cotto_work was really hoping for P = NP 17:17
Chandon Someone offered you really good odds in a bet? 17:19
cotto_work Nah. It's unlikely but it'd really shake things up. I wouldn't bet on it. 17:21
17:28 bubaflub joined 17:29 dafrito joined 17:30 lucian joined
cotto_work dafrito, you pinged me earlier? 17:31
dafrito cotto_work: Yeah, I did some more looking-into with the svn-to-git stuff 17:32
I tweaked my script a bit, and let it list out commits that are unmapped. I hosted it on github: github.com/dafrito/map-svn 17:33
Coke dafrito?
ENOPURLTIDBIT
cotto_work You don't exist if purl doesn't know anything about you. 17:34
;)
dafrito I'm absurdly new
cotto_work purl, dafrito is absurdly new
purl OK, cotto_work.
dafrito haha
I also found some stuff that git has/creates that could help. It looks like it creates a revision db of its own. It also has 'git svn find-rev' that will find a commit for a given SVN revision 17:35
cotto_work nice
that should make it trivial 17:36
dafrito git svn find-rev was slow for me, but that might be because my repo is a clone of a clone, so it has no SVN metadata
Do you have one?
17:38 rurban__ joined
dalek kudo: 4bd4783 | pmichaud++ | docs/ROADMAP:
Add operator precedence traits to ROADMAP.
17:42
dukeleto 'ello 17:43
17:43 ruoso joined
cotto_work hi 17:43
purl what's up, cotto_work.
cotto_work dukeleto: what do you use for your git clone of Parrot on github? 17:47
dukeleto cotto_work: git svn 17:48
moritz Coke: I ran perl Configure.pl --gen-parrot in partcl-nqp, and it did run parrot's configure, but not make (or make install) 17:52
Coke: so the subsequent version detection of parrot failed
dafrito dukeleto: would you mind putting your .git/svn directory for that repo somewhere?
dukeleto attempts to update the parrot mirror on github
dafrito: what are you trying to do? 17:53
moritz Coke: ... and there's no 'make install' target, which I would kinda expect 17:54
dafrito dukeleto: I wrote a script to parse the git-svn-id's in the commits, but I think git already keeps a database for itself called rev.db or something similar
dukeleto dafrito: this is probably more useful for you technosorcery.net/system/parrot-git-svn.tbz
dafrito: which is linked from trac.parrot.org/parrot/wiki/git-svn-tutorial
dafrito dukeleto: ooh, awesome, thank you 17:55
that's probably what cotto pointed me to the other day, too. silly me :( 17:56
moritz Coke: I can deal with all that, just wanted to tell you about my experiences 17:57
17:58 p6eval joined
moritz partcl-nqp: put 3 17:58
p6eval partcl-nqp: OUTPUT«Could not find sub put␤current instr.: '_block11' pc 12 (EVAL_1:10)␤called from Sub 'tcl;HLL;Compiler;_block470' pc 24271 (ext/nqp-rx/src/stage0/HLL-s0.pir:7848)␤called from Sub 'tcl;HLL;Compiler;eval' pc 24151 (ext/nqp-rx/src/stage0/HLL-s0.pir:0)␤called from Sub
..'tcl;PCT;HLLCompil…
Coke partcl-nqp: puts moritz++ 17:59
p6eval partcl-nqp: OUTPUT«moritz++␤»
moritz Coke: or do you want it as 'partcl' only? 18:00
18:01 p6eval joined 18:05 tcurtis joined
Coke no, -nqp is fine. partcl is still something else. 18:05
purl okay, Coke.
Coke *facepalm*
moritz: I never use --gen-parrot - I'll fix that up and add an install target. no one has asked for it before. =-) 18:06
moritz++
partcl-nqp: puts \\u6666 18:07
p6eval partcl-nqp: OUTPUT«晦␤»
Coke partcl-nqp: puts \\u1234
p6eval partcl-nqp: OUTPUT«ሓ␤»
Coke partcl-nqp: puts [string totitle PARROT end-4 4] 18:08
p6eval partcl-nqp: OUTPUT«PArroT␤»
Coke bounces! 18:09
dafrito cotto_work: yeah, using the git-svn tarball, "git svn find-rev r34542" is quick and does what you were looking for :) 18:12
18:12 luben joined
cotto_work Great. It sounds like the problem of getting the map is solved. 18:12
dukeleto updated the parrot mirror on github 18:16
bubaflub dukeleto: hola 18:21
purl hi, bubaflub.
dukeleto bubaflub: hola 18:22
purl que tal, dukeleto.
dukeleto notes that today is the soft "pencils down" date for GSoC
bubaflub dukeleto: yeah, that's a bummer... 18:23
dukeleto bubaflub: you still have a week until the hard "pencils down" date 18:25
bubaflub dukeleto: yeah, which means sprint to the finish
dukeleto: i definitely didn't hit all my targets )-:
dukeleto bubaflub: what do you think you can get done in the next week?
bubaflub dukeleto: i might be able to finish up the out of directory building, i'm almost finished with that 18:26
combined with my earlier work on getting Configure.pl to work with cross compiling stuff, that'll build a libparrot to link with embedded targets
18:27 AndyA joined 18:28 Paul_the_Greek joined
Paul_the_Greek Hey folks. 18:28
Do we have the usual chat meeting tomorrow at 4:30?
dukeleto Paul_the_Greek: are you talking about #parrotsketch ? 4:30 without a timezone doesn't mean much to anybody 18:29
bubaflub purl: parrotsketch?
purl parrotsketch is a status meeting for parrot core committers held every Tuesday at 20:30 UTC in #parrotsketch
bubaflub i believe that's 4:30 on the eastern coast of the US 18:30
Paul_the_Greek Oops, pardon my parochialism. Yes, the meeting at 20:30 UTC.
dukeleto bubaflub: i think you should put all your concentration into getting out of directory building working
Paul_the_Greek: no worries, timezones are the devils work
bubaflub Paul_the_Greek: I haven't heard / read otherwise 18:31
dukeleto: okey dokey. i got a good amount done over this weekend - only thing i need to do now is fix some of the gen:: steps
Paul_the_Greek Is that the venue to discuss potential fixes to bugs?
dukeleto Paul_the_Greek: possibly, but here is fine as well
Paul_the_Greek: #ps is mostly to have everyone at the same place so that the group can make decisions and decide on priorities 18:32
Paul_the_Greek Okay, then I'll annotate the ticket with my questions and point people here to it. 18:33
Where are types like INTVAL defined? 18:36
dukeleto bubaflub: ok, ask questions if you get stumped by something. 18:38
Paul_the_Greek I found INTVAL. Never mind.
Can someone check this ticket: trac.parrot.org/parrot/ticket/1245 18:39
bubaflub dukeleto: hah, was just about to PM you with one. what i'm stuck on right now are some steps (the gen:: ones) where a template gets copied. some of those templates exist in subfolders (like include/parrot). those subfolders don't exist in the build directory.
dukeleto: should i have the configure script copy all of those files just to the build dir (without the subfolder structure) and modify the makefile? or should i make the configure script create those folders if they don't exist 18:40
Paul_the_Greek Never mind that ticket. I answered my own question.
Coke Paul_the_Greek: check it for what now?
... WIN!
Paul_the_Greek I assigned that ticket to myself. Seems like a good way to learn something about PMCs. 18:41
dukeleto bubaflub: which is the easier thing to do? which has fewer bad effects? what does Chris say? 18:51
bubaflub dukeleto: hmmm... maybe mirroring the directory structure. i won't have to modify the Makefile (which itself is a beast)
well, won't have to modify the paths to those files
Paul_the_Greek If anyone has an opinion on this ticket: trac.parrot.org/parrot/ticket/1731 18:52
I'd appreciate it. The last note summarizes the issue. 18:53
19:05 brianwisti joined
Coke partcl-nqp: foreach {i j} {a b c d e f} { puts "$i..$j"} 19:11
p6eval partcl-nqp: OUTPUT«a..b␤c..d␤e..f␤»
dalek ee-optimization: c7ba4aa | tcurtis++ | s (5 files):
Add PAST::Optimizer and PAST::Optimizer::Pass.
19:13
ee-optimization: b608fde | tcurtis++ | t/tree-optimizer.t:
Test deeper trees with :combine.
Coke see, tcl is a lot like perl6. =-) 19:14
tcurtis Coke: I don't know. foreach? sounds a little five-y. :)
Coke wonders if it would be at all worthwhile to write any of partcl in tcl. 19:15
atrodo Coke> That's pretty cool. Does the bot stay up to date?
Coke atrodo: moritz++, I assume it's as up to date as rakudo. 19:17
rakudo: "what".say
p6eval rakudo 4bd478: OUTPUT«what␤»
Coke moritz: hey, is there anything I can do to faciliate the sha1 showing up for partcl?
msg moritz hey, is there anything I can do to faciliate the sha1 showing up for partcl? (right, he's many TZ away) 19:18
purl Message for moritz stored.
19:23 brianwisti left
dalek ee-optimization: 1bb674a | tcurtis++ | src/PAST/Transformer.nqp:
Strings and Integers don't have children. Don't try walking them.
19:38
Paul_the_Greek Can someone explain the relationship between default.pmc, scalar.pmc, and integer.pmc?
cotto_work Default provides default implementations of all VTABLE functions. If a PMC doesn't implement a VTABLE function, it gets Default's version. 19:39
I'm not entirely clear on why we have Scalar.
I'd think it'd have been nuked if it were useless, but that's not a safe assumption in Parrot. 19:41
Paul_the_Greek scalar.pmc has neg, for example, while integer.pmc has absolute.
(for integers) 19:42
cotto_work Some PMCs seem to extend it. 19:43
Paul_the_Greek Oh, let's see ...
Coke scalar is a leftover from the "our pmcs should be like perl5" days, I think.
I'm not sure that it would survive a rethink.
Paul_the_Greek I'll leave it alone.
Coke default is basically a placeholder for default method/vtable implementations. 19:44
Paul_the_Greek How does the dispatching work, though? How can all the neg vtable functions have the same signature?
cotto_work If you felt ambitious, I suspect it could go away.
Coke I think it's just a convenience because we didn't have roles. I also don't think it would survive a rethink.
Paul_the_Greek Ah, I see. The compiled .c files have expanded the signatures to include the file name. 19:45
I'll start with this simple ticket: trac.parrot.org/parrot/ticket/1245
I bet that same bug exists in negate. 19:46
Yes, it does. 19:49
purl if you say so...
GeJ Bonjour everyone. 20:15
20:16 hercynium joined
NotFound msg plobsing Issues accepted, thanks 20:29
purl Message for plobsing stored.
tcurtis Hi, GeJ, 20:31
cotto_work +1 to applying the patch from TT #1402 (after running headerizer) if anyone wants some easy karma 20:34
cotto can take care of it if nobody else does before he can get to it 20:35
moritz Coke: easist way: write the SHA1 to file when 'make' is run
Coke: I haven't yet installed an automatic rebuild script, so currently nothing is updated 20:36
Coke moritz: understood. 20:40
20:43 bluescreen joined
bubaflub cotto_work: i can apply that patch. what is the command to run the headerizer? 20:45
cotto_work make headerizer
bubaflub hahaha. ok 20:46
cotto_work: should i credit Paul_the_Greek for this one? 20:51
20:51 whiteknight joined
cotto_work It'd be nice. 20:54
20:55 darbelo joined
bubaflub alright, r48358 is out 20:55
i'll close the ticket as well
darbelo is back
cotto_work Wheee. paul_the_greek's first commit 20:56
you might add him to CREDITS too
dalek rrot: r48358 | bubaflub++ | trunk (2 files):
Deprecate mem_internal_*alloc functions [TT #1402] Paul_the_Greek++
bubaflub purl, Paul_the_Greek? 20:58
purl i haven't a clue, bubaflub
cotto_work Paul C. Anagnostopoulos on trac
bubaflub cotto_work: r48359 has him in the credits 21:00
dalek TT #1402 closed by bubaflub++: Deprecate mem_internal_*alloc functions. 21:05
TT #1402: trac.parrot.org/parrot/ticket/1402
darbelo And now that I have net access again... It's dcommit time! 21:06
bacek: ping. 21:07
cotto_work Does that branch actually build without strstart? 21:08
nm. next commit answers that question 21:09
darbelo cotto_work: builds and passess tests! 21:10
cotto_work darbelo++
also, sed++
;)
darbelo sed-- # leaving out the casts :) 21:11
cotto_work it's only as smart as its user
darbelo That was allways unix's most crippling limitation. In my experience. 21:12
:)
cotto_work M7 should fix that 21:13
it
dalek rrot: r48363 | darbelo++ | branches/unshared_buffers/include/parrot/pobj.h:
Remove strstart from the string definition. I knew I'd eventually eliminate this sucker!
cotto_work 's a smop
rrot: r48364 | darbelo++ | branches/unshared_buffers/src (31 files):
Mindless strstart replacement. All hail Buffer_bufstart()!
rrot: r48365 | darbelo++ | branches/unshared_buffers/src/gc/alloc_resources.c:
Minor update to src/gc/alloc_resources to better work on the new world of unshared buffers.
rrot: r48366 | darbelo++ | branches/unshared_buffers/src (3 files):
Minor typo fixes. Also, add some casts here and there.
rrot: r48367 | darbelo++ | branches/unshared_buffers (2 files):
Boostrap ops.
rrot: r48368 | darbelo++ | branches/unshared_buffers/docs/pdds/pdd28_strings.pod:
Update the strings PDD a bit.
rrot: r48369 | darbelo++ | branches/unshared_buffers/t/op/string_mem.t:
Remove test for a feature that no longer exists.
rrot: r48370 | darbelo++ | branches/unshared_buffers/src (9 files):
Fix the c++ build.
rrot: r48371 | darbelo++ | branches/unshared_buffers/src/string/api.c:
Make codetest happy.
rrot: r48372 | darbelo++ | branches/unshared_buffers (4 files):
Remove the buffer flags used to tag the low bits of the pool pointer. They are irrelevant if we aren't sharing buffers anymore.
darbelo Okay. Now it's benchmarking time. I'll take suggestions from the audiemce. 21:15
21:17 lucian joined
bacek Good morning, humans. 21:20
darbelo, pong
cotto_work good morning, baceks 21:21
darbelo bacek: I'm experimenting with 'unsharing' string buffers. It works now, but I wanted to know if there's any optimizations that would enable.
bacek darbelo, "precise" buffer compacting at least. 21:22
sorear darbelo: you can probably use your increased simplicity to make compact_pool less stupid
darbelo I removed strstart from the string header, and the 'shared' and 'moved' buffer flags so far.
sorear interning would also be pretty spiffy
darbelo bacek: What do you mean 'precise'? 21:23
bacek darbelo, currently we can't tell if previously shared buffer isn't used anymore. 21:24
darbelo, check C<free_buffer> in src/gc/mark_sweep.c 21:26
/* We can have shared buffers. Don't count them (yet) */
if (!(*buffer_flags & Buffer_shared_FLAG)) { 21:27
block->freed += ALIGNED_STRING_SIZE(Buffer_buflen(b));
}
darbelo Right, I already removed that :)
bacek I hope you just removed "if", but left "block->freed += ..." :) 21:28
darbelo Well, yeah.
nopaste "darbelo" at 192.168.1.3 pasted "free_buffer" (29 lines) at nopaste.snit.ch/22653 21:29
bacek darbelo, leftover comment is wrong :)
darbelo I was wondering about "XXX Jarkko reported that on irix pool->mem_pool was NULL" too. 21:30
bacek How differ examples/benchmarks/stress_strings.pir between branch and trunk?
(In terms of performance)
darbelo Haven't finished callgrinding it. My linux box isn't all that fast. 21:31
bacek wallclock should be good enough for initial benchmarking 21:32
21:32 Coke joined
darbelo Given the way callgrind's hogging the cpu, I doubt wallclock will be very useful right now :) 21:34
bacek callgrind is 10-100 times slower than raw speed :) 21:36
nopaste "darbelo" at 192.168.1.3 pasted "Lots of meaningless numbers!" (35 lines) at nopaste.snit.ch/22654 21:42
21:42 Paul_the_Greek joined
bacek purl, (23588786662 - 21159680036) / 23588786662 * 100 21:43
purl 10.2977175587973
bacek 10%. Looks about all right :)
Real world test - wallclock for rakudo compilation. 21:44
darbelo And peak memory usage.
bacek yes.
I suspect it will be _lower_ due precise compacting and lots of short-lived substrings. 21:45
darbelo++ # good job!
darbelo I'll get on that. Do you have any recomendations for good measuring of parrot memory usage?
bacek darbelo, no, sorry. I use top usually. 21:46
sorear darbelo: the Great Language Shootout has a tool 21:48
bacek afk # get ready for $dayjob
sorear darbelo: /usr/bin/free can report peak memory usage exactly. This doesn't work on Linux, but if you should happen to have a BSD or OSX VM lying around, you could use that 21:50
Paul_the_Greek Is there a way to get make to run one specific test? 21:51
cotto_work you can run them manually with prove 21:52
there are also makefile targets to run a subset of the full test suite 21:53
Paul_the_Greek Wow. How come I can enter 'prove' in my top-level parrot directory? 21:59
darbelo It's already installed, prove comes with perl. 22:01
Paul_the_Greek Oh.
Silly me.
Okay, here's a question: How do we determine whether PARROT_INTVAL_MIN needs to be handled specially? 22:03
See if -PARROT_INTVAL_MAX != PARROT_INTVAL_MIN ?
bubaflub Paul_the_Greek: not totally sure if this helps, but those values are determined at configuration time 22:04
Paul_the_Greek Yes, but what we don't know is whether it's a two's-complement machine. 22:05
bubaflub Paul_the_Greek: ah, i see what you're saying
i'm not sure if or how we test for that
someone more knowledgable about the configuration system will have to answer that one
Paul_the_Greek Looking around ... 22:07
Chandon What machine isn't two's complement, anyway? 22:10
Paul_the_Greek It doesn't appear that we know if it's a two's-complement machine.
These days? ... hmm ... let me see.
CDC Cyber 170. Probably none running now. 22:14
I could add an assertion somewhere that -PARROT_INTVAL_MAX != PARROT_INTVAL_MIN. 22:15
sorear Paul_the_Greek: Perl 5 requires a twos complement machine or else the SvIV -> SvNV failover code will break horribly 22:24
Paul_the_Greek: therefore, Configure.pl can automatically assume twos complement 22:25
also, Perl 5 assumes CHAR_BIT == 8
Paul_the_Greek Okay, so we'll assume that. I'm trying out an assertion for it in config.h
sorear the weirdest machines Perl 5 supports, CPU wise, are ones where sizeof(short) == 8 (Cray) or sizeof(double) <= sizeof(void*) (Alpha) 22:26
Paul_the_Greek Glad I'm working on the Memory_Block allocation problem, then. 22:27
sorear ? 22:28
Paul_the_Greek Hang on ... 22:30
This one: trac.parrot.org/parrot/ticket/1731
Wait a minute, how big are doubles and pointers on the Alpha?
sorear both 64 bits 22:32
Paul_the_Greek Oh, I missed the = in <=
sorear I don't see the issue with #1731
it doesn't sound broken to me
Paul_the_Greek The allocation of space in a Memory_Block assumes that the alignment of the memory space should be exactly the size of a pointer. 22:33
That is, it assumes that in some places and explicitly does not assume it in others.
This is not a problem now because no one requests an alignment other than on a pointer boundary. 22:34
22:38 kid51 joined
kid51 msg mikehh When you get a chance, comment sought on trac.parrot.org/parrot/ticket/1726. 22:40
purl Message for mikehh stored.
Austin_away Effing W00t! Kakapo full loads and runs p6object bootstrap tests! 22:42
Austin ++
whiteknight Austin: !!! 22:44
Austin Whiteknight!!!
purl whiteknight is, like, mailto:wknight8111@gmail.com or the grand master funk or wknight8111.blogspot.com/
mikehh kid51: looking at it now
whiteknight Austin: Which branch, yours on gitorious?
Austin Mine on my local hdd
whiteknight push that shit! I needs to get me some
Austin Heh
22:47 aloha joined, bacek joined
tcurtis aloha, bacek. 22:48
Austin whiteknight: push failed. non fast-forward merge 22:50
:(
Paul_the_Greek So is config.h the correct place to test for two's-complement-ness? 22:51
Austin Mandatory restart cause by git upgrade... 22:54
biab
cotto_work wonders
22:56 aloha joined
whiteknight Austin: you're breaking my heart 22:56
sorear Paul_the_Greek: you would be wise to be very careful about fixing things that aren't completely broken 22:57
Paul_the_Greek True.
I'm about to fix the negate and absolute Integer operations, which are broken. 22:58
The fix only works on a two's-complement machine, so I figure it makes sense to check for that.
sorear Define broken
22:59 bacek joined
Paul_the_Greek The negative/absolute value of the minimum integer value do not work. 22:59
trac.parrot.org/parrot/ticket/1245
sorear you'll need to run a deprecation cycle for that and wait until after 2.9 to merge your changes 23:01
particle we're pretty much assuming 2's complement, since we purport to follow IEEE 754 23:04
Paul_the_Greek Oh my. Is this sort of bug something we have to deprecate? 23:05
particle which stores floats as 2's compliment.
Paul_the_Greek Right, and also because Perl assumes it, apparently.
particle yes, and perl's pretty portable.
Paul_the_Greek I just figure it makes sense to check the assumption. No?
sorear Yes, but please #error if it's not met 23:06
particle where are you checking, in config?
sorear Also, do it in Configure.pl
NOT C
Our builds are slow enough already
particle the check should be during the configure stage, and set a value that can be looked up from c, perl, pir, etc
it's a simple probe, probably added to an existing config step 23:07
Paul_the_Greek Okay, in configure.pl, not in config.h.
More on this deprecation requirement: Why do you think this is something that must be deprecated? 23:08
Coke ROTFLS at the parrot appropriate: twitter.com/rjbs/status/20721483991 23:11
sorear: if it's /a bug/, we don't need a deprecation cycle. 23:13
sorear Paul_the_Greek: Also, you still haven't said exactly what you plan to change it *to*
Paul_the_Greek Since Integers are supposed to promote to Bigints, I think this is a bug.
Negating or absoluting the minimum integer should produce a Bigint. 23:14
cotto_work I thought we didn't want Parrot doing autopromoting.
leave it to the hlls
Paul_the_Greek It does for addition and such.
Ah, actually, it's conditionalized. Perhaps it's set to simply raise overflow.
cotto_work consistency, your name is not parrot 23:15
Paul_the_Greek I be attempting to introduce consistency.
The operations on native integers do not to any promoting.
sorear all young project members think they can introduce consistency 23:16
they all go mad
23:16 Austin joined
Paul_the_Greek I take it one ticket at a time. Otherwise y'all would kick me out the door in a flash. 23:17
Coke sorear: please don't scary away the new guys. Thanks.
whiteknight Austin: you're breaking my heart 23:18
Austin ?? 23:19
whiteknight Austin: I'm waiting for Kakapo goodness!!! 23:21
Austin Yeah. 23:23
Hold that thought.
Just a few conflicts... 23:29
kid51 Paul_the_Greek: Let me provide a bit of historical background on trac.parrot.org/parrot/ticket/1245
Paul_the_Greek Appreciated. 23:30
23:30 Andy joined
kid51 About 3 years ago, Paul Cochrane wrote a program which transformed all TODO, XXX, etc. comments in the source code into tickets in RT, which was then our bug tracking system. 23:30
cotto_work not a great idea, btw
kid51 About 2 years ago, we began working in Trac, and eventually we moved all remaining unresolved RTs into TTs. 23:31
So the TODO comment has been sitting there since pre-2007 ... possibly 3-5 years before that!
And we probably cannot determine who made the TODO comment in the first place. 23:32
So we can't query the OP.
And we have survived with this TODO item for several years.
Chandon How is this particular issue not just "not a bug, that's how integers work"?
kid51 So the TODO may be valid ... or it may be completely off the wall.
So, if you are going to take the TT, you will need to independently confirm whether the TODO is valid or not. 23:33
I am very glad to see you taking these old tickets. 23:34
cotto_work What do you mean "And we probably cannot determine who made the TODO comment in the first place."? Isn't that what vcs is for?
Paul_the_Greek Hang on one sec ...
kid51 I simply caution that they may be murkier than they first appear.
Some of these TODOs have been in the code since we kept it in CVS.
cotto_work oh 23:35
Paul_the_Greek I looked at things like add for Integer PMCs and it promotes to BigInt.
mikehh kid51: ran the test with prove -v in the branch - looks good to me
Paul_the_Greek If add does it, then negate and absolute should, too, I believe.
kid51 cotto_work When I was involved in converting RTs to TTs, I tried to locate the source of the TODO ... (well, some of the time). 23:36
Some times I was successful; sometimes not.
Paul_the_Greek Or it overflows, dpending on PARROT_ERRORS_OVERFLOW_FLAG.
kid51 Paul_the_Greek: Just attach any patch to the TT so that everyone who had a shot at this issue over the years can comment.
Paul_the_Greek I certainly will. 23:37
kid51 makes no claim to understand the specific issue
Paul_the_Greek I will also add tests for it.
kid51 mikehh: Do you think we can discontinue the "needs POD" output in make headerizer?
Tests! Paul_the_Greek++
Coke note that all the CVS commits are in the svn repository as well. 23:38
kid51 If you need to manipulate any of the configuration steps, I am available for consultation.
Chandon Where does interp->current_runloop_id get incremented?
kid51 Coke: True, but to dig back that far you usually have to svn cat -r {some old revision} of the file in which the TODO occurs ... and then do an 'svn blame' on that. 23:39
High work/benefit ratio, IMO
A job for a cage cleaner. 23:40
Oh, wait, I *am* a cage cleaner.
23:40 dngor joined
Chandon Ha! Found it. Obviously the variable needed a different name just for that line of code. 23:40
23:44 davidfetter joined
Paul_the_Greek I'm getting the feeling that there is a little bit of black art in writing tests. 23:46
davidfetter o/` more than a feeling o/` 23:47
mikehh kid51: certainly for PMC files if we have that test, I am not sure what we should do about the compilers/imcc/imcc.y and compilers/pirc/src/*.c files 23:48
Paul_the_Greek What does 'No plan found in TAP output' mean?
mikehh Paul_the_Greek: generally that the test fialed before it set the plan 23:49
Paul_the_Greek And "set the plan" means?
sorear plan 5; if you're using a Test module
otherwise print "1..5\\n"
Paul_the_Greek Maybe I should read documentation on TAP.
whiteknight Chandon: you found interp->current_runloop_id? 23:50
sorear Paul_the_Greek: a TAP test script prints 1..2\\nok 1\\n ok 2
Paul_the_Greek: any deviation from that format = test failure
Chandon whiteknight: Every instance of it, none of which were the increment. But I found that too so it's all good.
Paul_the_Greek Oh.
23:50 workbench joined
mikehh Paul_the_Greek: in our TAP we usually set the number of tests to run, using the plan() function or tell it there is no plan, the message comes if the test did get that far 23:51
sorear there is a lot of legalese in the TAP spec, but the principle is extremely simple
Paul_the_Greek Right, I see the plan() count. The trick is to get the output formatted correctly.
kid51 Paul_the_Greek: For tests written in Perl 5: perldoc Test::More
Paul_the_Greek It's in PIR. I presume is(...) generates the correct output? 23:52
sorear For tests not written in Perl 5, perldoc Test::More anyway, because its API is what everything else emulates
ok($bool) = print ($bool ? "" : "not ") . "ok " . ($testnum++) . "\\n"; 23:53
is($x,$y) = ok($x == $y)
kid51 mikehh: Well, as far as "compilers/pirc/src/*.c files" to, I guess we have the larger question: What are we going to do about PIRC?
And since imcc.y is one of those Melvin Smith files, we face a similar problem there. 23:54
sorear Melvin Smith? 23:55
kid51 i.e., whether 'make headerizer' tells us something about those files' POD is not a big worry.
mikehh kid51: not sure, we have the problem that kjs++ stopped working on it and seems to have had a very low bus number
kid51 mikehh: Yes, exactly.
mikehh kid51: also we have new ideas in terms of pir/PIRATE etc 23:56
kid51 If the code is, for the time being, abandoned, we shouldn't worry too much about how thorough its POD is.
I'd rather focus on writing POD for those .pmc files.
In fact, what I thought I would do is to (i), put the =item entries where they should be, even without real documentation ... 23:57
mikehh kid51: exactly, but we should retain the facility to test it if it proves necessary at some stage
kid51 ... which would move them from 'missing' to 'boilerplate'
mikehh: Okay, so in the branch I'll cut out the message to terminal except for the non-.pmc files. 23:58
... and then I would, ermm, seek assistance in getting real information into those =item sections. 23:59
mikehh kid51: I think that is valid, certainly for me, haven't heard any other comments there
23:59 Psyche^ joined