Parrot 1.1.0 Released | parrot.org/ | 322 RTs left | Weekly Priority: Remove Deprecated Items
Set by moderator on 6 May 2009.
dalek rrot: r38558 | cotto++ | branches/pmc_pct (306 files):
sync pmc_pct with trunk
00:06
rrot: r38559 | whiteknight++ | branches/gc_api/src/stacks.c:
[gc_api] I cant find any case where StackChunks use sysmem, so there's no reason why it should call Parrot_gc_free_sysmem here.
00:10
00:19 mikehh_ joined 00:20 bacek_ joined
dalek rrot: r38560 | whiteknight++ | branches/gc_api (4 files):
[gc_api] change src/stacks.c to not be monkeying around in the internals of the gc
00:30
rrot: r38561 | whiteknight++ | branches/gc_api/src/pmc/array.pmc:
[gc_api] array.pmc does not need to be accessing Small_Object_Pool here directly.
00:33 mikehh_ joined
dalek rrot: r38562 | whiteknight++ | branches/gc_api/src/gc (3 files):
[gc_api] remove the function Parrot_gc_free_sysmem. It was only used with bufferlike pools, which in turn were only used in src/list.c and src/stacks.c, neither of which used sysmem anyway.
00:43
00:44 mikehh_ joined
dalek rrot: r38563 | whiteknight++ | branches/gc_api (5 files):
[gc_api] Parrot_gc_free_pmc is not an API function. move it and rename it to reflect that
00:53
rrot: r38564 | chromatic++ | trunk/docs/book/ch05_pge.pod:
[book] Edited chapter 5 of the book for language; added some editorial and
rrot: r38565 | chromatic++ | trunk/src/oo.c:
[oo] Avoided a dual-lookup for vtable overrides in class cache.
00:57
rrot: r38566 | chromatic++ | trunk/src/pmc/object.pmc:
[PMC] Avoided a dual lookup for methods in Object PMC.
rrot: r38567 | chromatic++ | trunk/src/pmc/resizablepmcarray.pmc:
[PMC] Added delete_keyed_int VTABLE entry and rewrote delete_keyed entry for

an Integer PMC which immediately gets unboxed back into an INTVAL. This improves Rakudo startup by a minor but measurable 1.34%.
rrot: r38568 | chromatic++ | trunk/src/string/api.c:
[src] Tidied some string subsystem initialization code; no functional changes.
01:00
rrot: r38569 | whiteknight++ | branches/gc_api (3 files):
[gc_api] Parrot_gc_free_buffer_malloc is not an API function. moving it and making it static
Whiteknight yay! Lots of commits tonight 01:03
some nights this week it has been dead in here
cotto and only half of them are yours
bacek_ hi there 01:06
cotto hi bacek_
bacek_ cotto: did you try to 02/parse-all.t in pmc_pct branch? It probably will fail on functions pointers in ATTRibutes. 01:07
cotto I have it only testing 10 PMCs to speed up make test.
If there are failures, I should probably find some better pmcs.
s/are/should be/ 01:08
managedstruct looks like a good test case 01:09
bacek_ yes. managedstruct... 01:10
cotto and it fails 01:11
bacek_ We have to steal more stuff from languages/c99/grammar.pg
cotto If you want to work on it, don't forget to update. I renamed the compiler to pmcc and updated from trunk 01:13
.
dalek rrot: r38570 | whiteknight++ | branches/gc_api (5 files):
[gc_api] Parrot_gc_free_buffer is not an API function. Parrot_gc_profile_start is not either. Move these elsewhere
rrot: r38571 | whiteknight++ | branches/gc_api (6 files):
[gc_api] move a few more functions
01:17
cotto bacek_, managedstruct is added to the parsing tests
01:19 mikehh_ joined
dalek rrot: r38572 | cotto++ | branches/pmc_pct/compilers/pmcc/t/02-parse-all-pmcs.t:
[t] add managedstruct to the pmcc tests to check for successful parsing of function pointers
01:20
rrot: r38573 | chromatic++ | trunk/src (14 files):
[PMC] Replaced all uses of key_integer() outside of Key PMC and src/key.c with

really a Key?" check.
01:27
rrot: r38574 | whiteknight++ | branches/gc_api (14 files):
[gc_api] rename Parrot_do_gc_run to Parrot_gc_mark_and_sweep
01:30
01:33 eternaleye joined
dalek rrot: r38575 | whiteknight++ | branches/gc_api/src/gc (2 files):
[gc_api] move the global flag CONSERVATIVE_POINTER_CHASING out of the API
01:33
rrot: r38576 | chromatic++ | trunk/src (7 files):
[PMC] Changed some key_next() calls to VTABLE_shift_pmc calls on Key PMCs where
01:37
rrot: r38577 | chromatic++ | trunk/src/pmc/retcontinuation.pmc:
[PMC] Enabled RetContinuation recycling on invoke(). This is slightly

offers a 2.27% improvement to Rakudo startup, and the effect is more dramatic for benchmarks with a lot of PIR function calls.
01:40
Whiteknight chromatic++ # that key system needed a huge amount of work 01:43
cotto s/needed/needs/ 01:44
Whiteknight he's doing a huge amount of work
cotto yes
bacek_, are you still not going to be able to work on pmc_pct until the weekend? I'm thinking that the next step needs to be smarter ATTR type parsing. 01:46
chromatic It still needs a huge amount of work. 01:49
It's a little bit cleaner, and every little bit of performance helps (especially if it's measurable and things end up cleaner).
dalek rrot: r38578 | whiteknight++ | branches/gc_api (9 files):
[gc_api] move the subsystem initialization routine (now named Parrot_gc_initialize) to the API, and move a lot of function prototypes to the gc_private.h header file where they are hidden from the rest of Parrot
01:50
cotto chromatic, where do your measurements come from?
bacek_ cotto: go ahead and improve parsing. I'll jump on this train later
cotto ok.
chromatic callgrind and kcachegrind 01:51
Whiteknight I had forgotten how messy and crufty the GC was 01:53
it's like a traumatic experience that I blocked out of my memory
02:27 Andy joined 02:35 janus joined
dalek rrot: r38579 | petdance++ | trunk/compilers/imcc/pbc.c:
hoisted a subexpression into a local var
02:39
03:06 amoc joined 03:15 japhb joined, bacek joined
dalek rrot: r38580 | petdance++ | trunk/src/string/api.c:
removed unused variable declaration and DECL_CONST_CAST
03:18
rrot: r38581 | petdance++ | trunk/src/sub.c:
removed some unused DECL_CONST_CAST and renamed a variable
03:20 donaldh joined
dalek rrot: r38582 | petdance++ | trunk/src/scheduler.c:
const some timers
03:25
03:46 mikehh_ joined
dalek rrot: r38583 | petdance++ | trunk/config/gen/makefiles/root.in:
lots of organizing of splint flags
04:11
rrot: r38584 | petdance++ | trunk/src/scheduler.c:
consted some strings, and fixed incorrect indentation
04:21
04:22 particle2 left 04:28 amoc joined 04:33 tetragon joined 04:36 particle1 joined
dalek rrot: r38585 | petdance++ | trunk/include/parrot/misc.h:
Added ARGIN() to sprintf function pointers
04:37
rrot: r38586 | petdance++ | trunk/include/parrot/stacks.h:
Add ARGIN() to a funciton pointer type
05:00
rrot: r38587 | petdance++ | trunk/config/gen/makefiles/root.in:
Disallow using 0 instead of NULL
05:49
rrot: r38588 | petdance++ | trunk (2 files):
make Parrot_io_printf() not have to have its return value checked
rrot: r38589 | petdance++ | trunk/src/hash.c:
consted a pointer
06:02
cotto What do I need to do to use _dumper in nqp? 06:04
bacek_ cotto: wish 06:14
cotto didn't work 06:15
purl That's because you can't just stick someone else's code into your program and expect it to do what you want, Retardo!
cotto < purl-- >
got it 06:18
no thanks to purl
I'm not entirely sure it's proper to use inline PIR to call load_bytecode, but it seems to work. 06:19
bacek_ james-iry.blogspot.com/2009/05/brie...wrong.html 06:33
1987 - Larry Wall falls asleep and hits Larry Wall's forehead on the keyboard. Upon waking Larry Wall decides that the string of characters on Larry Wall's monitor isn't random but an example program in a programming language that God wants His prophet, Larry Wall, to design. Perl is born. 06:34
davidfetter heh 06:36
06:41 japhb joined
cotto golden 06:42
06:42 iblechbot joined
dalek kudo: 966ea72 | moritz++ | docs/ChangeLog:
[docs] update ChangeLog
06:58
07:20 donaldh joined
dalek rrot: r38590 | cotto++ | branches/pmc_pct/compilers/pmcc/src/emitter/pmc.pm:
[pmcc] add incomplete code to create ATTR accessors
07:27
mj41 Hi. I fixed Parrot branch list on TapTinder. tt.ro.vutbr.cz/report/pr-Parrot/ New list shown 12x 2009, 8x 2008, 2x 2007 and 1x 2006 07:44
moritz news.perlfoundation.org/2009/05/200...ect_1.html anybody recognizes the applicant? 07:47
if yes, under which nick did he commit?
cotto He hasn't committed, but he's submitted a couple patches. 08:01
What do you want to know? He sends from quevlar at ymail, if you want to look into his past contributions. 08:03
moritz cotto: thanks 08:04
I was a bit puzzled because he was not in the CREDITS file 08:06
cotto I'll fix that. He at least helped rewrite some kind of test coverage test. 08:07
done 08:13
dalek rrot: r38591 | cotto++ | trunk/CREDITS:
[CREDITS] add previously-overlooked credit for a test coverage extension
cotto credit for him, karma for me 08:19
everyone wins
Hmm. No response from purl. 08:20
moritz svn?
purl well, svn is f'd up for me too.
moritz jonathan++
cotto karma jonathan 08:22
purl jonathan has karma of 1286
cotto karma jnthn
purl jnthn has karma of 201
cotto karma j
purl NEGATIVE EIGHT BILLION!
cotto purl wins 08:23
purl MENTALITY!
09:10 cognominal joined
bacek OH HI 09:23
purl privet, bacek.
bacek purl: privet
purl privet is the bane of Shoalhaven or an aggressive environmental weed requiring control to halt its spread and prevent further degradation or Ligustrum Vulgare, often grown as a hedge
bacek oh shi... 09:24
jonathan bacek: Use Cyrillic next time. :-) 09:25
dalek rrot: r38592 | bacek++ | branches/tt631_part3:
Last part of TT#631 - fixing RO handling and final cleanup
bacek jonathan: привет!
purl i guess привет is hello
bacek oh shi x2 09:26
purl: smart girl
purl bacek: what?
bacek not so smart...
bacek hides 10:40
cotto cool. Are you going to be merging today? 10:42
That's a big pile of commits. 10:43
dalek rrot: r38593 | bacek++ | branches/tt631_part3/lib/Parrot/Pmc2c/PMC/default.pm:
Remove unused code in default.pm
rrot: r38594 | bacek++ | branches/tt631_part3/src/pmc/default.pmc:
Add stub for read-only methods in default.pmc
cotto Heh. dalek looks clogged.
rrot: r38595 | bacek++ | branches/tt631_part3/lib/Parrot/Pmc2c/PMC/default.pm:
Generate default's ro variants of vtable methods
rrot: r38596 | bacek++ | branches/tt631_part3/lib/Parrot/Pmc2c/PMCEmitter.pm:
Always generate Parrot_Foo_ro_update_vtable function.
rrot: r38597 | bacek++ | branches/tt631_part3/lib/Parrot/Pmc2c/PMC/default.pm:
Generates default_ro_get_vtable
rrot: r38598 | bacek++ | branches/tt631_part3/lib/Parrot/Pmc2c/PMCEmitter.pm:
Simplify (and make it correct) generating of Foo_ro_get_vtable.
rrot: r38599 | bacek++ | branches/tt631_part3/lib/Parrot/Pmc2c/PMC/default.pm:
Generate default_ro_find_method and handle it ro_get_vtable.
rrot: r38600 | bacek++ | branches/tt631_part3/lib/Parrot/Pmc2c/PMC/RO.pm:
Avoid generating a lot of useless methods in RO.pm
cotto fsvo today 10:45
bacek cotto: no. I'll need full smoking of branch 10:59
cotto hands bacek a cigar 11:00
is it ready for smoking now?
bacek not yet.
rotest.pmc is pain in... in every single part of my body
bacek lighter a cigar waiting for prove t/pmc t/dynpmc 11:01
$%$%$#%$ 11:02
cotto needs more * 11:04
and a ! or two 11:05
bacek *&*^&^%@!#)(*$!
!!!oneone
find_method!!! 11:10
purl find_method is looking only it the class'es namespace, isn't it?
bacek cursing day when he decided to implement pmc compiler in pct... 11:15
here we go. 11:17
bacek hands cotto a cigar. You can smoke now. 11:18
cotto You should do ro_variant_vtable->ro_variant_vtable->ro_variant_vtable a couple more times for good measure. 11:19
just to be sure
dalek rrot: r38601 | bacek++ | branches/tt631_part3/lib/Parrot/Pmc2c/PMC/default.pm:
r38603 | bacek++ | trunk (4 files):
11:20
bacek yeah...
11:20 dalek joined
bacek odd number of times 11:20
11:20 donaldh joined
bacek yak. I killed dalek again. 11:20
afk # 11:21
cotto bacek, all tests pass here (Ubuntu Hardy i386) 11:36
11:39 dalek joined 11:46 iblechbot joined 11:47 masak joined 11:58 bacek joined
bacek hi again 12:00
purl oh, you're back!
bacek we need win32 testers...
jonathan oh hai 12:01
bacek jonathan: привет :) 12:03
can you test tt631_part3 on win32?
jonathan da
bacek spasibo 12:04
jonathan я магу
.oO( did I spell that right... )
bacek "могу" 12:05
o. You finally got irc client with unicode support! 12:06
seen fperrad
purl fperrad was last seen on #parrot 1 days, 19 hours, 10 minutes and 5 seconds ago, saying: - or add the missing generated code [May 6 16:54:05 2009]
jonathan bacek: Ah, yes. 12:07
bacek: Stressed/unstressed vowels are a nuisance. :-) 12:08
You've no idea how happy I am that Slovak doesn't do that. :-)
bacek Much easy than in English :)
jonathan Yes, ture. English spelling is ridiculous.
Russian spelling always seemd to me, that issue aside, pretty straightforward. 12:09
moritz compare spelling and pronouncataion of 'word' and 'sword'
bacek "gaol"!!! 12:11
jonathan bacek: building that branch 12:13
bacek jonathan: ok. Waiting for results :) 12:14
jonathan bacek: built; running make test 12:18
bacek hooray. 12:19
I can brake parrot again merging my branch! O wait...
jonathan bacek: only if make test passes :-P
bacek it will :) I hope... 12:20
Who know how I can test lua? 12:21
rg have you tried the usual configure/make/make test? 12:27
bacek rg: yes. But lua requires to be inside parrot/languages. 12:30
jonathan bacek: Branch is WIN.
bacek jonathan: Hooray!
moritz bacek: then check it out int parrot/languages, no? 12:31
jonathan (didn't check it against Rakudo...is it likely to cause issues?)
bacek jonathan: 50/50
purl 1
bacek << purl-- >> # bad girl 12:32
12:32 ruoso joined
jonathan She was correct. 12:32
bacek :)
actually it's very unlikely to have failures in Rakudo. 12:33
cotto bacek, t/03-past.t in pmc_pct isn't doing what I think you wanted it to do. 12:34
rg ping smolder.plusthree.com
purl 10 packets transmitted, 0 received, +6 errors, 100% packet loss, time 9008ms 12:35
bacek cotto: I didn't find way to dump PAST into string...
oh...
cotto ok. I'm looking for that now too.
jonathan Just use dumper
And pass it the tree.
bacek it dumps it to STDOUT... 12:36
jonathan If you're using PCT, then note your compiler automatically gets --target=PAST too
Oh, that isn't what you want?
Hmm.
bacek no... I don't want to create bunch of temporary files during tests... 12:38
12:40 rg1 joined
bacek How long it takes for "make spectest" in Rakudo? 12:41
rg1 about 30 mins on a reasonably fast machine ;)
bacek ouch... Time for optimise parrot for speed.
Ok. I'll merge branch into trunk. If rakudo isn't crashed yet it very unlikely to crash in next 25 minutes. 12:44
bacek I'll probably will create tt631_part4 branch for killing RO.pm entirely... It's useless and misleading. 12:46
ETOOMANYWILLS
moritz bacek: in your experiences, how well does git-svn play with svn branches? 12:47
bacek moritz: very well. But you'll need svn checkout for setting properties.
Coke where there's a will there's a coke.
Infinoid heh 12:48
bacek have coke in a glass.
cotto where there's more will, there's diet coke
moritz bacek: hm... so far I've failed to create a complete git mirror of parrot with all branches 12:49
bacek Time to add some whisky.
moritz: erm. "git svn fetch"?
rg moritz: i thought infinoid had one
Infinoid I do. It took a while to make it, but it's working great 12:50
moritz: Want a tarball?
moritz Infinoid: or a clone url... whatever you prefer
bacek: that didn't make git branches for svn branches, somehow
bacek moritz: git checkout branch; git reset --hard remotes/branch
Infinoid "clone" wouldn't work unless I explicitly went through and told it to export all the origin/* branches... otherwise you'd just get trunk 12:51
moritz then a tarball, please
bacek git checkout -b branch...
moritz bacek: I know how to check out branches, but only if they exists in the repo :-)
and 'git branch -a' didn't show up any 12:52
nopaste "bacek" at 123.243.38.218 pasted "git svn branching for moritz" (9 lines) at nopaste.snit.ch/16500 12:54
bacek moritz: wfm...
moritz bacek: thanks 12:55
Infinoid waiting for bzip2 12:59
cotto You should use lame. 13:00
13:00 gryphon joined
moritz bzip2 on a git repo won't be a huge win 13:00
Infinoid well, nevermind then. quack.glines.org/upload/infinoid/p...r38603.tar 13:01
moritz Infinoid: did you include the checkout? 13:03
Infinoid yes
moritz ah, .git would have been enough
Infinoid compared to .git, I doubt a source checkout is very big
22M total (non-.git) 13:04
639M .git
moritz oh
Infinoid anyway, hope it works for you
moritz sure, it does
downloading now, thanks
that's unusally huge for a git repo... 13:05
szbalint git gc ?
moritz repack, more likely
Infinoid thought it did that automatically once in a while 13:06
moritz gc, yes. repack, no
bacek gc --prune ftw 13:07
Infinoid k, I'll repack before I make any more tarballs
638M after git repack -a -d 13:12
bacek Infinoid: git gc --prune? 13:14
hmm... It will not help. 13:16
moritz repack -d already prunes, methinks
Infinoid 637M. :P
bacek hooray! We saved 2 megabytes! :) 13:19
Infinoid feels like git outsmarted him somehow
bacek always feels it... 13:21
git++
karma git
purl git has karma of 205
bacek karma svn
purl svn has karma of 28
bacek Looks about alright :)
moritz thinks that many nerds like git because it's a system you can grok, and then you're happy to find solutions which other SCMs would simply provide via a GUI :-) 13:22
bacek "wouldn't provide"
moritz depends.
rg git supposedly also has a gui ... if you're willing to install tk 13:23
Infinoid that's only for history browsing, I think.
bacek "git reset HEAD~2; git checkout -b new_feature; git commit"
And "rebase --interactive" :)
moritz rebase -i is way cool 13:24
Infinoid the vast majority of this checkout size is taken up by .git/svn (520M) 13:27
dalek rrot: r38604 | Infinoid++ | trunk (2 files):
[cage] Fix some codetest failures (c_parens.t, trailing_space.t).
13:28
szbalint haha
typical :)
Infinoid hmm. and the majority of that is the unhandled metadata changes file from vtable_morph_change@36392
Infinoid has no idea why. 13:29
moritz what would happen if I just removed that? 13:30
.git reduced to 113M :) 13:31
bacek moritz: now try "git svn fetch". 13:32
Infinoid svn metadata must die.
r38588 introduced some new warnings... src/ops/io.ops:386: warning: ignoring return value of 'Parrot_io_peek', declared with attribute warn_unused_result
moritz bacek: that still works 13:33
bacek good.
svn--
moritz Infinoid++ # thanks, now I have good git mirror! 13:34
bacek moritz: ship it! :) 13:35
moritz looks into mirrors, not ships them
Infinoid moritz: No problem. I might just leave that tarball up, it should save people a few days 13:36
moritz Infinoid: and if you rm that one metadata file, it'll safe your 500MB per download :-)
13:37 gryphon joined
Infinoid That server uses a pitiful percentage of its monthly bandwidth quota. I don't mind the extra bandwidth (though I wonder if those files serve any purpose at all) 13:37
dalek rrot: r38605 | jonathan++ | trunk (2 files):
[core] In add_parent we were checking if we already inherited from another class by name; this should always just be done by pointer equality (which is cheaper too). Fix and add a test.
13:38
Infinoid So, um, if we must check the return value of Parrot_io_peek now, what should the peek op do if it receives the error? Return ""? Toss an exception? 13:39
bacek Eat kittens? 13:40
O wait...
Infinoid mmm, kittens
eating kittens is not O(1) tho
bacek hmm.. O(n) isn't bad either
Infinoid Parrot_io_kittens_eat(interp, pmc_new(enum_class_Kitten)) 13:41
I'll make it return "" and see whether tests pass. 13:42
bacek Hmm... We can add Kitten in Core PMCs.
Are you sure that it should be _io_ prefixed?
Infinoid Eating kittens seems like an input operation to me
moritz Parrot_i_kittens_eat(...) :-) 13:43
Infinoid maybe it should be classified as parsing, though.
bacek It will require some output later :)
moritz no, kittens are physcally unique in that they can be turned into free energy, to 100% 13:44
purl okay, moritz.
jonathan purl, kittens?
purl Please! Think of the kittens!
moritz
.oO( what did I do?)
heh
jonathan kittens?
purl Please! Think of the kittens!
jonathan awww
dalek kudo: 14cd976 | jnthn++ | src/ (2 files):
Refactor the way we handle the composition of role cronies to be more in line with the spec. Fixes RT#63330 and almost fixes RT#63332 (that needs us bumping up to a fixed Parrot).
13:45
bacek purl: kittens is also pure energy 13:46
purl okay, bacek.
bacek kittens?
purl Please! Think of the kittens! or pure energy
bacek ok. Enough kitte^W hacking for today. Good night everyone 13:50
Infinoid goodnight bacek
dalek tracwiki: v13 | Infinoid++ | ParrotQuotes 13:57
tracwiki: I love you guys.
tracwiki: trac.parrot.org/parrot/wiki/Parrot...ction=diff
13:59 rdice joined 14:00 iblechbot joined 14:05 buildbot joined
Infinoid I'm not sure we have enough bots in here yet 14:06
dalek rrot: r38606 | Infinoid++ | trunk/src/ops/io.ops:
[ops] Fix a couple warnings introduced by r38588.

I'm not sure this is the expected behavior, but at least "make test" passes.
14:07
rg no peeking at errors? does that mean peek has quite a different signature from read? 14:10
ah you said opcode. is there a read opcode? what would that do? 14:11
Infinoid presumably, it would read
rg i guess it would throw an exception on error?
Infinoid (I'm not entirely convinced r38588 was correct, btw. Feel free to revert my warnings fix if you have a better plan.) 14:12
I guess it would have to. It can't return "", that typically mean "eof"
rg i'm just musing. i would expect peek to behave just like read only without actually removing the data. 14:13
Infinoid and only working for a single byte, but yeah, good point 14:14
The fact that "make test" passed might just mean we need more tests here.
rg which leaves you with the problem: how do you provoke a read error? 14:15
dalek kudo: 52419be | jnthn++ | build/PARROT_REVISION:
Bump us up to Parrot revision with the string comparison to determine class identity in inheritance ripped out.
14:19
Coke summons damian 14:22
particle1 rg: try to read from a closed filehandle? 14:24
particle- switches hotels 14:25
Coke anyone here familiar with Perl6::Form? 14:26
Infinoid rg: Well, reading on a closed filehandle is one easy way 14:36
or reading from a handle opened for writing... 14:37
or reading past eof
rg reading past eof is just eof
Infinoid which is a sort of a special case we also need to make sure we handle properly 14:38
NotFound Reading past eof must not be an error for pick, isn't it?
Infinoid or reading from a nonblocking handle where no data is available (this case is not supported by parrot yet)
or reading from a non-filehandle pmc :) 14:39
maybe I'm just pathological, but I think there are lots of ways to get errors from read(). 14:40
NotFound How we decide if something is a handle or not? Inheritance, role, duck typing...?
rg ok, now write them as tests. then copy them for peek ;)
Infinoid probably it just has to implement the right file-handley methods
I wonder if read() throws errors when the handle is set for utf8 encoding but the file has encoding errors 14:42
NotFound I think we need some type of permissive encoding. For example, a path can have a chunk with latin-1 accented chars and other with utf8 ones. I have several of them in systems at work. 14:44
Infinoid autocode?
NotFound I'd like utf-8 with a scheme to map invalid encoding chars, using a unicode user range, for example. 14:46
Something that allows restoring to the original form when required.
Infinoid Something that doesn't add any more overhead in the general case 14:47
I'm all for handling invalid input gracefully, but I don't want to punish everyone else either
string handling needs to be fast :)
NotFound The way to not punish may be to use that encoding only for reading untrusted sources: file paths, environment vars, of from files when the user wants it. 14:48
Infinoid hmm, ok 14:49
NotFound And maybe remap then to utf8 if the read finishes without reaching any malformed char.
Infinoid Heh, nice idea. 14:50
NotFound But maybe not easy to implement.
Infinoid it would be invaluable for taint mode and similar things tho 14:52
14:56 Eevee joined 15:10 mikehh joined, Theory joined 15:24 particle1 joined 15:34 braceta joined 15:39 jan joined 15:51 mberends joined
Coke msg chromatic IWBNI "use Modern::Perl" satisfied the 'use strict;use warnings' requirement for the codetest. 15:53
purl Message for chromatic stored.
Infinoid If we actually use that anywhere, it will require perl 5.10.0 and a nonstandard cpan module 15:55
Coke yes. 16:00
and I'm even going to commit it to the repository.
but I meant in genereal it would be nice if the PC stricture recognized it.
"general"
(it's just a one off script for generating the BranchDescriptions page) 16:01
16:16 iblechbot joined 16:24 darbelo joined
Infinoid well, I'm sure we can adjust the test 16:38
17:00 gaurav joined
dalek tracwiki: v10 | coke++ | BranchDescriptions 17:32
tracwiki: trac.parrot.org/parrot/wiki/Branch...ction=diff
rrot: r38607 | coke++ | trunk (2 files):
[cage] Add a script to give some information about current branches in svn.
Coke Infinoid: I ended up not using Modern::Perl. NBD. 17:44
Infinoid aaw
dalek tracwiki: v11 | coke++ | BranchDescriptions 17:45
tracwiki: trac.parrot.org/parrot/wiki/Branch...ction=diff
rrot: r38608 | coke++ | trunk/tools/dev/branch_status.pl:
[cage] fix bug in merge log checking.
tracwiki: v12 | coke++ | BranchDescriptions 17:49
tracwiki: remove parrot-bundle
tracwiki: trac.parrot.org/parrot/wiki/Branch...ction=diff
rrot: r38609 | coke++ | branches/bundle-parrot:
remove old branch (particle++)
Infinoid Nice tool. Quite a lot of those branches have clearly passed their use-by dates 17:52
17:53 Whiteknight joined 17:56 silug joined 18:01 Andy joined 18:11 iblechbot joined
Coke "what'd you call me?" 18:12
particle1 Infinoid: re tt#647... why not enable it only for gcc, if it's gcc-specific?
Infinoid if I can find a way to get it working for the HPUX compiler, I will. In the meantime, that seems reasonable 18:13
particle1 sweet
Infinoid I wish the seatbelt was more generally useful, but I'll take what I can get 18:20
Infinoid wonders if HP has a remote-access portability program 18:23
Coke ditto Apple. 18:24
whatever happened to our MS remote access? 18:25
dalek rrot: r38610 | Infinoid++ | trunk (2 files):
[cage] ASSERT_ARGS is gcc-specific, so instead of blacklisting MSVC, whitelist gcc. particle++ for suggesting this approach.
18:31
rrot: r38611 | Infinoid++ | trunk/src/ops/io.ops:
[cage] Fix a c_parens.t failure during codetest. This was fallout from my previous r38606 checkin.
rrot: r38612 | Infinoid++ | trunk/tools/dev/nopaste.pl:
[cage] Undo an unintended change that snuck into r38610.
Infinoid wait... ASSERT_ARGS works fine on HPUX, it's just complaining about va_list not being a pointer type (netbsd/alpha has the same problem) 18:34
18:42 hudnix joined 18:45 darbelo joined
particle1 hp testdrive 18:48
purl hp testdrive is, like, moving and will be unavailable from September 12 - 26
particle1 used to have an account 18:49
Infinoid is working on a reply for #648, but has to do some research along the way
18:53 Andy joined
darbelo cotto: ping 18:58
Infinoid Andy: I'm sorry, I had to ruin your nicely lined up opening parens in misc.h, they caused c_parens.t to fail. (see trac.parrot.org/parrot/changeset/38604/) 19:08
Andy oh whoops, sorry
Infinoid I hated to do it, I thought it looked better your way 19:09
Andy Yeah, mostly I wanted the ARGIN() on those pointers.
My splinting is getting more and more good stuff
I found an unintentioanl fallthru in a switch last night
I think it's unintentional.
Infinoid nice!
Coke Andy: can you take a look at the splint branch and see if anything is salvagable there? 19:10
(and if not, delete it?)
Andy did I start it?
Coke nope. was ptc.
(and it's old)
Andy probably not anything worthwhile
Mostly I'm just organizing switches.
I'm pretty proud of it, considering the amount of stuff I have to slog thru 19:11
but yeah, I'll look
ok, bbiab
and if anyone wants to weigh in and counter "Your job is SUPPOSED TO SUCK!" folks at theworkinggeek.com/ please feel free. 19:12
Coke supposed to, no. expected to with a high probability? meh.
I try to aim high, though. =-)
cotto darbelo, pong
Coke Andy+ 19:13
Andy++ , even.
Infinoid hmm, I have to wonder whether src/gc/system.c:trace_system_areas() is called once per thread, or whether threads allocate from different pools, or what
I see code to flush the register windows, but nothing to flush other process contexts
darbelo I'm doing the singleton decContext wrapper. But I can't really find docs on what {get,set}_pointer should be doing. 19:14
cotto darbelo, it's arbitrary 19:15
Infinoid If you have a pointer, they should get and set it
What that actually means is up to you
cotto what he said
purl i guess he said is was heavy into php and drupal.
Infinoid (That stuff shouldn't be visible to the PIR level) 19:16
cotto I'll update the relevant docs. 19:17
darbelo It's C, I have nearly limitless supply of pointers :)
Infinoid well, if you don't need the get/set_pointer vtables, I suggest not implementing them
darbelo set_pointer() not implemented in class 'DecContext' 19:18
cotto The Hash PMC is a good example. It's basically a wrapper around a Hash*.
So for it, it makes sense for set_pointer to change the Hash*. 19:19
darbelo So implementing the looks kind of required for singletons.
cotto The get/set_pointers are currently exposed to PIR, but they shouldn't be and there's a tt about it.
interesting. Can you commit?
Infinoid yeah. the packfile*.pmc pointers are wrappers around C PackFile* objects, so they use them in the same way
darbelo An empty get_pointer() segfaults. But returning SELF works. 19:22
Infinoid do you know what's calling it? 19:23
purl calling it is lame. i want to call it from a controller and i have to use $c twice
19:23 cghene joined
Infinoid purl, forget calling it 19:23
purl Infinoid: I forgot calling it
Infinoid purl, forget he said
purl Infinoid: I forgot he said
darbelo I haven't checked. 19:24
Ah. The segfault happened in create_class_pmc (src/pmc.c:687) 19:25
Which make sense, when you ask for a singleton you should always get the same instance. 19:28
Whiteknight Infinoid: src/gc/system.c is a known mess and I'm working on it as we speak
hopefully will get much cleaner over the weekend
Infinoid Whiteknight: Great. There's an eager HPUX user in TT #648, if you're looking to test some of the weirder code in that file 19:30
Apparently the IA64 code was written for linux and didn't quite work on PA-RISC/hpux
Whiteknight Infinoid: yeah, I replied to that ticket already. All on my to-do list 19:31
Infinoid Whiteknight++
Whiteknight Infinoid++ # All the analysis you did for the ticket
that's a good question too about the thread contexts, I am not sure about that one 19:32
I suspect (and need to double-check) that the function is going to be called from within each thread, because each thread has it's own interpreter object
...and in turn will have it's own arenas, it's own GC instance, etc 19:33
cotto still wishes the company was called Packet-Hewlett. 19:34
Whiteknight PHUX? nice
Infinoid ok. I've done a little research in order to figure out how appliable the hpux patch is, but I know very little about hpux and pa-risc/ia64 19:35
if each thread has its own interpreter object, does that mean they allocate from different pools?
Whiteknight I think so, yes
Infinoid I can imagine some serious breakage if data gets passed between threads, but otherwise, that sounds good. 19:36
Whiteknight data passed between threads is "shared" and that's all taken care of in a thread-safe wa
way
or, it seems safe anyway
darbelo I'm guessing {get,set}_pointer() deal with pointers to the guts of the PMC, so that all the PMC headers share tha same data. Does that sound plausible?
Infinoid darbelo: normally the pointer is to some other C object the PMC is encapsulating 19:37
Whiteknight darbelo: There is no common way of using {get;set}_pointer(), some PMCs return SELF, some return PMC_data() and some return other things entirely
it's completely non-standard
Infinoid that's why I'm surprised it would be called by generic code.
Whiteknight for instance, in a Continuation PMC set_pointer and get_pointer refer to the opcode_t* address to continue from
in a Hash PMC get_pointer returns the underlying Hash* structure, while in RPA it returns SELF 19:38
Infinoid yeah. and Hash points to a hash struct, Packfile points to a PackFile struct, Pointer/CPointer/UnManagedStruct/ManagedStruct point to something completely unknown, it's just completely pmc-specific 19:39
what hWhiteknight said :)
-h
others (like Boolean, Integer and Scalar) don't seem to implement it at all 19:40
cotto heh. from env.pmc (referring to get/set_pointer):
These two functions are part of the singleton creation interface. For more
information see F<src/pmc.c>.
That definitely needs to be documented in somewhere easier to find. 19:41
darbelo The infrmation i got from src/pmc.c didn't help that much either:
/*
* singletons (monadic objects) exist only once
* the interface * with the class is:
* - get_pointer: return NULL or a pointer to the single instance
* - set_pointer: set the only instance once
*
* - singletons are created in the constant pmc pool
*/ 19:42
Infinoid ok... that seems to imply you should have a static variable in the file to store the singleton pointer
cotto the env PMC does that
as do os and file. it seems to be a pattern. 19:43
davidfetter cotto, going to yapc? 19:44
Infinoid sounds like something a Singleton base class should do, but that's EOUTOFSCOPE
cotto davidfetter, I'm leaning toward yes 19:45
(and yes, I'll have to decide pretty soon) 19:46
19:49 HG` joined
darbelo Hmm. When I return NULL or SELF the PMC seems to fail at the whole 'there can oly be one' thing. 19:51
pmichaud purl, going to yapc10? 19:52
purl going to yapc10 is kid51
pmichaud going to yapc10 is also pmichaud
purl okay, pmichaud.
pmichaud looks like I have a busy monday at yapc10 :-) 19:53
cotto darbelo, have you tried having a static PMC* and implementing get/set_pointer and class_init like the other singletons 19:54
davidfetter pmichaud, cool :) 19:55
darbelo cotto: Working on it.
Whiteknight are lots of people going to be at YAPC? 19:58
I'll go to it if lots of cool parrot people are going to be there
davidfetter well, they asked me to speak
Whiteknight and even if some of the uncool ones go :)
davidfetter heh
pmichaud there will be lots of parrot people there, yes.
I highly recommend YAPCs. By far some of the best conferences I go to (and a terrific bargain when one considers the price) 19:59
Whiteknight okay, then I will try to go to YAPC then
I've been torn beween trying to attend YAPC and OSCON, but maybe YAPC is the better choice
it's certainly much closer
Coke (and cheaper)
pmichaud YAPC is very perl focused. yapc10 will have a very strong parrot presence this year. 20:00
OSCON covers much more open source stuff.... there's a lot more options of things to do at OSCON, but unless you're presenting it's really expensive
Coke and will probably have the foundations first annual vote!
pmichaud (or otherwise have some way of getting into OSCON without paying personal funds for it :-) 20:01
Whiteknight what are we voting on, tabs vs spaces?
Coke I believe we have to vote on the board.
it's in the bylaws.
pmichaud anyway, attending yapc10 will be (afaik) allison, chromatic, particle, pmichaud, jhorwitz, kid51. (If I've missed anyone, add yourself to the "going to yapc10" factoid :-) 20:02
I'm still holding out hope that Coke will attend. :-)
Coke pmichaud: I cannot afford to take 3 days off from work. 20:05
pmichaud Coke: understood; I can still hope for some mysterious turn of events to occur that makes it possible (but otherwise does not cause you negative impact :-) 20:06
strange things can happen :-)
Coke IWBN.
besides, if I don't go, I can't get voted in!
PerlJam Coke: you can't come down with some mysterious, yet unspecified illness that forces you to visit doctors in pittsburgh? 20:07
pmichaud Coke: Says who?!?
Coke: I figure by not being there, you may end up with a lot more responsibilities. :-)
Coke :P
I hope that we have many eager volunteers so that won't be necessary. =-)
pmichaud I'm still holding out hope that PerlJam will attend. :-) 20:08
davidfetter going to yapc10 is also davidfetter 20:09
purl okay, davidfetter.
pmichaud \\o/! 20:10
davidfetter lol 20:11
now, to figure out how i'm gonna get this paid for ;)
20:16 whoppix joined
Coke davidfetter: oh! apparently I did that in the wrong order. 20:24
20:25 Andy joined
davidfetter Coke, ? 20:25
purl Coke, is there any way you could run my test in a loop inside of the tcl code? That might be a fairer test...
Coke purl, forget Coke, 20:26
purl Coke: I forgot coke,
Coke davidfetter: I figured I couldn't get it paid for, and am not going. :|
davidfetter Coke, well, there are funding sources 20:27
Coke, i usually hit up SPI through the PG funds group
well, they're my funder of last resort
the nice people at malaysia linux are supposed to be throwing down for me 20:28
for their do
Coke SPI?
purl SPI is Software in the Public Interest, Debian's parent org or PostgreSQL's language plugin facility
Coke PG?
purl well, PG is Panzer General, a neat SSI game which Stupid_ will whip lej's ass in. or short for PostgreSQL or PurlGurl or peter gabriel or a lot more "familiar" than mysql for oracle converts or one of the "if i don't understand it, it's not necessary" types or Paul Graham
Coke Do they pay you for your time, or just travel/expenses? 20:29
davidfetter travel/expenses
Coke (lost salary is by far the biggest expense for me.)
davidfetter i'd *love* for them to pay time
well, i'm a consultant for pgexperts.com 20:30
Coke I could probably even convince the PaFo to fund travel/expenses.
davidfetter but you're right, there's an opportunity cost
20:32 kaether joined
pmichaud arrgh, I won't be able to see davidfetter's talk on Monday :-| 20:37
dalek kudo: a579f31 | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 383 files, 11032 passing, 0 failing
davidfetter i'm on monday?
pmichaud Date: Monday, June 22, 2009 01:55 PM 20:38
davidfetter oh, right
well, recursion should be nothing new in most languages
it's just new in SQL :)
21:08 rob joined
dalek rrot: r38613 | Infinoid++ | trunk/src/gc (2 files):
[gc] Apply patch from rrauenza++ in TT #648, to help builds on HPUX/IA64.
21:17
Infinoid all right. is everyone happy with dalek now? I don't *think* I have any more pending issues 21:18
21:19 Whiteknight joined
darbelo cotto, Whiteknight : prototype singleton DecContext PMC is in svn. I *think* it DTRT, but review and sanity-checking would be appreciated. 21:41
Whiteknight darbelo: awesome, I'll take a look at it 21:42
you can haz blog yet?
dalek cnum-dynpmcs: r24 | darbelo++ | trunk/ (3 files):
Add barely-functional prototype for singleton DecContext PMC, along with

Add it to Makefile.
purl examples is, like, shorl.com/bynygruhofrebru
darbelo Also, found out why {get,set}_pointer worked as 'generic pointer to stuff' for other people but not me. Will probabbly blog about that. 21:43
Whiteknight: www.parrot.org/blog/341 21:44
Infinoid sounds like singletons have repurposed it for their own, uh, purposes
21:52 donaldh joined
darbelo The code inside pmc.c thiks that it returns a pointer to the PMC. 21:52
But you can probably trick it if you return a pointer to another PMC (ie, your data) 21:53
bacek good morning 21:59
darbelo Morning.
Infinoid hi bacek 22:00
bacek trying to find complains about last merge.
No one???
Infinoid I didn't even notice it :) 22:01
darbelo Same here.
jonathan bacek: Rakudo builds fine under it.
bacek Hooray! 22:02
jonathan bacek: In fact, Rakudo uses it, because I had to patch another Parrot issue later on today and Rakudo depends on that fix.
Infinoid bacek++
bacek jonathan: Can you comment my questions in trac.parrot.org/parrot/ticket/504 ? 22:04
jonathan looking 22:05
bacek: Point 1 - agree. 22:06
dalek cnum-dynpmcs: r25 | darbelo++ | trunk/build/ (3 files):
Makefiles cleanup:

   Remove the not-always functional and not very useful 'make Makefile' target.
jonathan On 2 and 3...some of this is probably going to be a tad messy. Remember that you *must* (really must) handle mmap. 22:07
dalek kudo: f01d5d6 | jnthn++ | src/ (2 files):
Make the default parameter type of routines be Any, and the default type of pointy blocks and others be Object. Resolves RT#63920 and brings us in line with the spec.
bacek jonathan: ok. Strategic question - are we going to use Packfile PMCs during evaluation inside of interp? 22:09
jonathan Really my goal in pack and unpack is to encapsulate the processing of each segment inside the PMC that relates to it.
interp - yes, but interp should most likely hold pointers to the underlying stuff for fast access too. 22:10
That is, constant access should not go through the packfile PMC interface everytime. That'll just be too slow.
bacek hmm... 22:11
jonathan otoh it should most likely be the PMCs that are responsible for the memory management.
bacek thinking. 11% compete...
jonathan Essentially, I see the pointers directly to the data as kinda optimization. 22:12
bacek And then Whiteknight will implement compacting GC...
jonathan I'm fine if we need to tweak things a bit.
pmichaud And then Perl 6 will be released, followed shortly by Duke Nukem Forever. :-P
jonathan Erm. Compacting GC in Parrot is going to have to solve a bunch more assumptions than this first. 22:13
bacek pmichaud: 3DReamls was closed 2 days ago...
pmichaud bacek: yes, I know. :-)
Infinoid bacek: Did you see TT #651?
pmichaud I wonder if we should open an RT ticket that says "Implement Duke Nukem Forever in Rakudo. :-P"
bacek Infinoid: looking 22:14
jonathan pmichaud: Well, if we can unblock japhb on the OpenGL... ;-)
japhb wakes up
LOL
22:14 Whiteknight joined
bacek Infinoid: hmm. Why we should share vtable functions between different pmc? 22:15
japhb I have a renderer for Classic Doom levels in Perl 5 (not full gameplay, just fly around the levels). It would be fun to port that to Rakudo ....
Infinoid bacek: DRY, I guess
I can contribute some cheesy rocket-exploding noises 22:16
japhb Mmmm, gib splortch
bacek Infinoid: Either #651 or #640 invalid. 22:18
dalek kudo: 43f257d | pmichaud++ | :
Merge branch 'master' of git@github.com:rakudo/rakudo
22:19
kudo: 1f4ec5d | pmichaud++ | Configure.pl:
Configure now verifies sufficient parrot revision (or dies).
Infinoid bacek: I agree, I just thought it was funny :)
Maybe there should be some syntax to *un*staticify a vtable function, I dunno. 22:20
In a way, I really hate calling vtable functions directly, because then we can't change the internal vtable function API as easily
(not that I plan to do so every week) 22:21
bacek But there is good point in fperrad ticket. He uses LuaNumber.n.i_neg() syntax. Which should be expanded to something else that direct call
22:22 allison joined
bacek Yeah.. MethodEmitter.pm. Line 322 22:23
# Rewrite OtherClass.object.other_method(args...) 22:25
Looks very suspicious.
dalek rrot: r38614 | whiteknight++ | branches/gc_api (7 files):
[gc_api] lots of changes, trying to keep gc-private things more private, and getting everything else into the API. Trying to condense some header files
22:32
rrot: r38615 | whiteknight++ | branches/gc_api/include/parrot/gc_pools.h:
[gc_api] remove empty header file gc_pools.c
rrot: r38616 | whiteknight++ | branches/gc_api/MANIFEST:
[gc_api] remove gc_pools.h from manifest, should have done that in last edit
Infinoid purl, rrauenza? 22:39
purl infinoid: no idea
kaether I need
Infinoid purl, rrauenza is Rich Rauenzahn <mailto:rrauenza@hp.com> 22:41
purl OK, Infinoid.
dalek rrot: r38617 | whiteknight++ | branches/gc_api (6 files):
[gc_api] move a few more functions around, making sure that they are visible where they need to be and no further
22:55
22:59 tetragon joined
dalek cnum-dynpmcs: r26 | darbelo++ | trunk/src/pmc/deccontext.pmc:
Be alittle more faithful to the singleton creation API.
23:00
rrot: r38618 | whiteknight++ | branches/gc_api (5 files):
[gc_api] move all the content out of the resources.h file. Will go through the pains of deleting it outright next
23:05
23:28 particle1 joined
dalek rrot: r38619 | whiteknight++ | branches/gc_api (7 files):
[gc_api] kill resources.h. public-facing functions go into the api, private ones go into gc_private.h
23:28