Parrot 1.2.0 released | parrot.org/ | 304 RTs left | Weekly Priority: Profiling
Set by moderator on 26 May 2009.
Coke 00:08
00:09 bacek_ joined
dalek cnum-dynpmcs: r67 | darbelo++ | trunk/t/data/ (50 files):
set svn:eol-style to native.
00:12
Coke NotFound++ 00:18
(his patch for namespace leakage works for me.) 00:20
00:21 eternaleye joined
dalek rrot: r39206 | whiteknight++ | branches/io_rewiring/src (2 files):
[io_rewiring] convert the 'open' method to call Parrot_io_open, not the other way around. Initial prototype for how the rest of this branch will progress
00:29
00:30 eternaleye_ joined
dalek rrot: r39207 | whiteknight++ | branches/io_rewiring/src/io/api.c:
[io_rewiring] Parrot_io_open checks for PMCs that does 'file'
00:32
00:35 eternaleye joined, bobke joined
dalek rrot: r39208 | whiteknight++ | branches/io_rewiring/src (2 files):
[io_rewiring] convert Parrot_io_close to not use PCCINVOKE
00:39
rrot: r39209 | whiteknight++ | branches/io_rewiring/src (2 files):
[io_rewiring] convert Parrot_io_is_closed. Also, clean up a few things, and start differentiating IO PMCs based on roles
00:49
rrot: r39210 | whiteknight++ | branches/io_rewiring/src (2 files):
[io_rewiring] convert a few more things, add support in some functions for StringHandle
01:02
01:12 japhb joined 01:18 eternaleye joined
dalek rrot: r39211 | whiteknight++ | branches/io_rewiring/src (3 files):
[io_rewiring] update Parrot_io_flush
01:25
01:35 Limbic_Region joined 01:54 Maghnus_ joined 02:26 darbelo joined 02:33 Andy joined 02:35 janus joined 02:59 mikehh joined 03:10 cotto joined 03:20 donaldh joined
dalek kudo: 0501c3e | pmichaud++ | (2 files):
Add .import method to Perl6::Compiler.
03:42
kudo: 1d8c5bf | pmichaud++ | :
Merge branch 'master' of git@github.com:rakudo/rakudo
kudo: 84b4e1c | pmichaud++ | (2 files):
Revise setting imports to use Perl6::Compiler.import .
kudo: 4e3a1e8 | pmichaud++ | src/setting/IO.pm:
IO.print() and IO.say() shouldn't be exported yet.
kudo: 10707f1 | pmichaud++ | build/gen_setting_pm.pl:
Add back %*INC settings, clean up code generation slightly.
kudo: ae90998 | pmichaud++ | src/setting/IO.pm:
Don't export IO.slurp yet either.
kudo: b325177 | pmichaud++ | src/setting/ (2 files):
Fix a few more export declarations in settings.
04:05 dduncan joined 04:13 dduncan left 04:14 tetragon joined 04:18 cottoo joined 04:45 cotto joined 05:26 flh joined 05:28 Maghnus joined 05:38 Coke joined
dalek kudo: 8690273 | pmichaud++ | src/ (2 files):
Move .get from PIR to setting.
05:42
rrot: r39212 | allison++ | trunk/config/auto/gcc.pm:
[cage] On Ubuntu karmic, the lpia architecture builds with -Os by

things, -Os disables the -falign-functions optimization (in order to save space). Parrot can build with or without aligned function pointers, but it was detecting lpia as ordinary i386, and so expecting them, and failing on an assert in src/multidispatch.c. This config patch detects the lpia architecture using the "-gnulp" element of the archname (which is unique to lpia), and correctly sets Parrot's config value for
  "aligned_funcptr" to 0. Parrot now successfully builds on karmic lpia.
06:39
cotto That might be a record for the ratio between the size of the commit message and the size of the diff. 06:41
lpia is lwn.net/Articles/247003/ 06:43
lpia?
purl lpia is lwn.net/Articles/247003/
cotto lpia is also low power in Intel architecture 06:44
purl okay, cotto.
dalek nie: r66 | isop44++ | trunk/Grammar/Actions.nqp:
Register function parameters in the function's symbol table as 'lexical' vars
06:56
nie: r67 | isop44++ | trunk/src/builtins/funcs.pir:
Add an XXX line
06:57 iblechbot joined
dalek rrot: r39213 | allison++ | trunk/ports/ubuntu/lpia_no_aligned_funcptr.patch:
[ubuntu] Capture the relevant patch for building the 1.0 packages. Can
06:58
07:20 donaldh joined
GeJ purl source? 07:39
purl i guess source is really ugly anyway :) or You probably want www.infobot.org
GeJ thanks
07:41 Austin_Hastings joined
dalek nie: r68 | isop44++ | trunk/Lib/test/parrot/functions.py:
Add 2 tests for simple closures
07:55
kudo: a16083e | moritz++ | src/setting/IO.pm:
implement IO.lines in terms of IO.get
08:05
rrot: r39214 | chromatic++ | trunk (4 files):
[STRING] Added string_make_from_charset() which makes a STRING given a charset

have dyncharsets yet), thawing a STRING meant getting the charset's name by number, then calling string_make() which uses the number to look up the appropriate charset's name. Parrots are better than that.
08:08
08:29 masak joined 08:47 silug joined
dalek rrot: r39215 | chromatic++ | trunk/src/gc/gc_ms.c:
[GC] Flipped the Arena replenish level check in gc_ms_more_traceable_objects().

doesn't make sense to try to reclaim more objects in the pool during the next GC run. With the current parameter value, we assert that an arena with 30% or more free objects isn't likely to fill up before the next run. Rakudo's hello world program is 6.79% faster with this small change.
08:52
wayland76 @seen bacek 09:04
(sorry) 09:05
moritz seen bacek 09:07
purl bacek was last seen on #parrot 11 hours, 41 minutes and 36 seconds ago, saying: morning, good morning
09:11 Austin_Hastings joined 09:43 bacek joined 09:44 cognominal joined
bacek hi there 10:48
wayland76 bacek: We have a question for you 10:49
bacek wayland76: O RLY? :) 10:50
wayland76 We were wondering around the tea-table tonight how "Ey ukhnem" translates into English
And I may've written it wrong :)
(Ey uknyem?)
bacek Ah! "Эй ŃƒŃ…Š½ŠµŠ¼" :) 10:51
Austin_Hastings Why on earth would you be wondering such a thing?
wayland76 The standard English translation is "Yo heave ho". But we wondered if their might be something more accurate
bacek: I'll take your word for it
bacek "ey ukhnem" is mostly right
wayland76 Austin_Hastings: Because its the refrain to the song often referred to as "The Volga Boatmen song" 10:52
Austin_Hastings Aha.
I was curious about the back story. Perhaps a cabbie shouted it at you while making an obscene gesture and driving across the sidewalk... 10:53
wayland76 bacek: But we want /translation/, not /transliteration/
Austin_Hastings: Those things don't usually happen to me :)
Austin_Hastings Didn't you hear? One reason why Perl6 is taking so long is that the tr// function is a LOT more advanced.
:)
bacek wayland76: I'm not quite sure about correct semantic translation to English. It requires a lot of background that I don't have. 10:54
wayland76 Ok. Should I ask ilya then?
Austin_Hastings $greeting = tr <<Good morning!>>, "Spanish";
bacek wayland76: You can try.
Austin_Hastings say $greeting; # ”Buenos Dias! 10:55
10:55 burmas joined
bacek wayland76: closest thing is gnome's "Hey hoh" from Snow White. But without all happinnes 10:56
Austin_Hastings: it's big world. tr/// should accept timezone as argument. 10:57
Austin_Hastings bacek: I think it's local time unless you do something tricksy. 10:58
bacek say $greeting; # Buenos Noches Australia :)
wayland76 bacek: Thanks
I like Nachos too :)
(Sorry ;) )
Austin_Hastings bacek: Recall that $greeting = tr <<Good Morning>>, "es"; 10:59
wayland76 No.
It was "Shpanich" :)
Austin_Hastings Or maybe: $greeting = tr/Hello/en-au/; # Oy!
So running perl now either requires an internet connection, or a really big binary. 11:00
cotto $greeting = tr/Hello/en-lol/; #ohai
I'm liking perl6 more every day.
wayland76 I think that's "G'day"
Austin_Hastings No, it's not. I've seen the movie. 11:01
wayland76 tr <<Oy>>.WhatLanguage()
Austin_Hastings :)
lol
fakeevalbot "Oy" not part of any recognised polite language. Try Yiddish for "Oy Vey". 11:02
bacek fetched his favourite yarmulke 11:04
seen Infinoid
purl Infinoid was last seen on purl 6 hours, 18 minutes and 15 seconds ago, saying: <private message>
bacek msg Infinoid I'm going to scrap tt452_reduce_mmd branch. It's totally wrong from strategic point of view. 11:05
purl Message for infinoid stored.
11:08 bobke joined
Austin_Hastings Why can I, in NQP, say "namespace_block(self, $/, $key)" to call a method, but I cannot say "self.namespace_block($/, $key)"? Or better still, just "namespace_block($/, $key)"? 11:10
11:10 burmas left 11:12 whoppix joined
jonathan Austin_Hastings: I think self isn't implemented in NQP. 11:13
Austin_Hastings But it works as a parameter?
jonathan oh, hmm
OK, that's odd. 11:14
Austin_Hastings Odd's a word.
jonathan Might be nqpbug.
Austin_Hastings So long as it works, I'm okay with doing it. I just wondered what was up.
jonathan self.namespace_block($/, $key) I would expect to work.
Austin_Hastings I was really expecting the implicit self to work: "method()"
jonathan No, that's always a sub call.
Austin_Hastings Would it be .method()? 11:15
jonathan No implicit passing of self.
.method() is like $_.method
Austin_Hastings grrr
So the short way for one method to call another is what?
jonathan Another method in the same class? In Perl 6 that'd be $.method_name() 11:16
Austin_Hastings Or is $_ := self at the start of each method?
Aha!
$.method()
jonathan But NQP I'm pretty sure doesn't support that.
Austin_Hastings Does that work in NQP?
okay.
jonathan Rakudo doesn't get it quite right yet either.
Austin_Hastings Rakudo. Eh. 11:17
I'm okay with method(self, ...), as long as that's the current best thing.
jonathan I fear it is.
But self.method(...) really should work too, I think that's probably a bug. 11:18
Austin_Hastings Actually, is there a way to do something like "is parsed(...)" for rules?
Because that's what I'm doing - just a redirect.
11:20 donaldh joined
Austin_Hastings Laugh! 11:20
My compiler now generates: .namespace ["1"] 11:21
whoops.
jonathan Heh, been there, done that one.
Probably you have a <foo>? and did some :namespace(~$<foo>) 11:22
But actually need ~$<foo>[0]
Austin_Hastings Nope. I have a $past<namespace> := 1
jonathan oh
OK well, there's more than one way to screw it up. :-)
Austin_Hastings :)
jonathan At least we've found different ways. ;)
Austin_Hastings Copy/paste error. Should have called it $past<adjectives><is_namespace>, but I'm a slouch.
The problem with adding namespace support is that once you start, it turns out every other symbol is in the wrong $$#%#% namespace. 11:35
wayland76 Not in the wrong οαρςθιγν namespace? 11:36
Or maybe the wrong ×©×³×Ø×Ÿ××œ×¢×Ÿ namespace? 11:37
Austin_Hastings * tr/$$#%#%/gr-coptic/;
11:41 ZuLuuuuuu joined
wayland76 Where's the documentation on making external libraries work with Parrot? 11:42
Are we still using NCI? 11:43
Austin_Hastings What else is there?
wayland76 I'll take that as a yes, and seek doco :) 11:44
Austin_Hastings Please don't.
wayland76 Why not? 11:45
Austin_Hastings Interpreting anything I say as informative would almost certainly be wrong.
For all values Γ representing things I know about using Parrot and the PGE/PCT system, the value ε representing things I know about the internals of Parrot is guaranteed to be strictly less than Γ. And Γ is really, really small. 11:47
wayland76 Is ε > 0? 11:49
Austin_Hastings It currently is, although there seems to be little guarantee it will stay that way. 11:50
wayland76 Because if so, you're ahead of me. My knowledge was just enough to add the -X option to parrot, mostly by exposing already existing functionality
Austin_Hastings Things I thought I knew have turned out to be not true.
What's the -X option?
wayland76 Parrot --help says "-X --dynext add path to dynamic extension search" 11:51
Austin_Hastings Ahh. Add path to dynamic extension search
wayland76 Basically, you can specify where your .so files live
Austin_Hastings I take it that's related to loading external compiled code?
wayland76 I forget. I think it was related to loading .so files that Parrot created for itself 11:52
(if you're on windows, .so = .dll)
Anyway, the path was already there inside the program, and it was implemented the same way as the other two paths, and just didn't have a command line option 11:53
So I just had to add that
(although I admittedly also added the path to the error message :) )
Austin_Hastings Hmm. So much for blocks keeping the namespace of their containing block.
wayland76 But I don't claim to have even a vague idea of the layout of things, except the Parrot::Install library 11:54
Austin_Hastings :)
I know where the pmcs are located. :)
wayland76 I don't :)
Austin_Hastings They're in src/pmc
or pmcs.
I forget.
But bash will remind me.
wayland76 pmc. I just looked 11:55
Austin_Hastings Yep
wayland76 Rakudo has a src/pmc directory too
Austin_Hastings They deserve it.
So what are you working on?
wayland76 (Not in Parrot, in their own source tree)
cotto wayland76, nci is your best bet for working with external libraries 11:56
wayland76 Well, I've just gotten the Rakudo RPM to work yesterday, so I'm fiddling with various different things, seeing if any of the things that catch my fancy are easily doable yet
cotto: Thanks. Is there an improved replacement planned, or will NCI be it for the forseeable future? 11:57
cotto If you need to add a signature, edit src/call_list.txt and rebuild
wayland76 Austin_Hastings: And you?
cotto: I'll ask again when I can make sense of that. Reading documentation now :) 11:58
Austin_Hastings A compiler for 'close'.
cotto There was a GSoC project to generate NCI stubs as needed, but I don't think it's currently usable.
wayland76 Oh, ok. 11:59
Austin_Hastings: Link?
(ie. to info about 'close')
cotto That'd be nice. I tried searching for it, but that's not an easy name to search for.
Austin_Hastings wayland76: No such animal. It's coming right out of my head. 12:00
bacek Austin_Hastings: I've implemented "self" in NQP. O wait. It was in pmc_pct branch
wayland76 Austin_Hastings: What's good about it? 12:01
Austin_Hastings bacek: :)
bacek just wrote one the biggest letter in his life. To parrot-dev@.
Austin_Hastings wayland76: nopaste.com/p/aHs3oN9T4
If you leave out the first line, that code runs. 12:02
bacek Austin_Hastings: but t was approved by pmichaud so I can chrerry-pick it into trunk
Austin_Hastings bacek: Cool. What self did you add? The self.method(...) one? 12:03
bacek Austin_Hastings: yes
Austin_Hastings bacek: Sweet. Thanks.
wayland76 Austin_Hastings: Thanks, but that doesn't explain why. Just for fun/Parrot learning?
jonathan bacek: Ahhh...that explains why I thought we had it... 12:04
Austin_Hastings wayland76: Yeah, mostly.
wayland76 ok
bacek jonathan: indeed :)
12:10 deetah joined
deetah can an ELF binary be translated into PIR code? 12:10
wayland76 deetah: Elf the Perl6 implementation, or ELF the linux library format? 12:11
deetah linux library format.
wayland76 s/library/binary/
deetah yeah.
wayland76 Either way, though, not that I know of
Although it may be theoretically possible 12:12
if someone wrote the tool to do it
deetah ummm.
dalek rrot: r39216 | bacek++ | trunk/compilers/nqp (4 files):
[nqp] Cherry-pick handling of "self" from pmc_pct branch.
deetah would parrot's memory management comply with x86 assembler's ones?
bacek msg pmichaud Can you please review r39216? It's NQP "self" implementation from pmc_pct branch
purl Message for pmichaud stored.
deetah would parrot's memory management comply with x86 assembler's ones?
bacek Austin_Hastings: now you can use self.method() :) 12:13
jonathan deetah: Parrot doesn't provide direct memory access.
deetah would it be possible to translate, say, MIPS, ARM and x86 ELF's to PIR?
wayland76 deetah: I'm no expert. You'd have to ask someone else 12:14
deetah and make them architeture-free?
jonathan: does that mean it'd be technically impossible?
jonathan deetah: Probably not, but it'd be (1) probably quite hard and (2) probably hard to make performant. 12:15
Austin_Hastings bacek: Not until I get the update. :)
deetah it'd be pretty interesting, I think.
jonathan I mean, Parrot is Turing Complete, so I guess at *some* level it's gotta be possible. ;-) 12:16
But whether it's be practical is a whole different matter.
I worked once on translating .Net bytecode to PIR, but .Net bytecdoe is already code intended to run on a VM rather than hardware. 12:17
So it wasn't so hard.
cotto deetah, that's an interesting idea, but it'd be *very* slow if you tried it with a current Parrot 12:18
deetah thinking of, say, lame, how would it slow things down, theoretically? 12:19
cotto I guess you could use an UnManagedStruct for memory access.
lame? 12:20
purl lame is LAME Ain't an MP3 Encoder! or a free Unix mp3 encoder at www.sulaco.org/mp3/ OR lame filter metalab.unc.edu/dbarberi/lame/
deetah right.
cotto Ok. You mean for some pure computational problem. 12:21
deetah mhm
cotto you'd get a lot of unnecessary overhead since Parrot's designed for dynamic languages, although it might be possible to limit that to startup and a relatively constant penalty, since CPU emulation wouldn't need many dynamic features 12:24
deetah so it'd be a better idea to build some C(XX) to parrot compiler? 12:25
cotto it'd be less inefficient
deetah and which one would take longer to implement? 12:26
wayland76 is smoke the constant running of regression tests?
cotto wayland76, it's not exactly constant, but yes
it depends on how people have their machines configured 12:27
wayland76 Oh. Is it reports from users then?
cotto deetah, I don't know.
yes
wayland76 I'm really wondering about tools/install/smoke.pl and the like
deetah mkay, i've found out what I wanted. thanks for the info and cya! 12:28
cotto deetah, it'd be an interesting exercise either way
bye
wayland76 o/
12:28 deetah left
cotto wayland76, what about it? 12:28
12:28 Coke joined
wayland76 I'm trying to figure out what it''s for 12:28
Is it for checking that your Parrot isn't broken? 12:29
cotto wayland76, my best guess is that it's for smoking an installed Parrot
no idea how well it works 12:31
s/well // also applies ;)
wayland76 Ok. I'll keep looking around and see what I can find :)
12:34 szabgab joined
bacek cotto: ping 12:35
cotto bacek, pong
bacek cotto: any plans for pmc_pct branch? 12:36
cotto what's up?
purl Your face, cotto. That's what.
cotto Hmm. I kinda lost steam there.
Coke cotto: are there any other commits like r38000 ?
cotto I need to do a better job wrapping my head around PAST. Once my mind is sufficiently warped, I'll jump back in. 12:37
Coke, checking...
bacek yeah... I spent time on digging how pmc works...
Coke: (r38000) nope iirc.
Coke ok. If someone can revert that, they can get karam and close out #713. =-) 12:38
(or apply infinoid's modified patch.)
(if that looks right)
Coke wishes he had timings on "make test" for partcl, not just "make spectest" 12:39
cotto Coke, the only similar one was r37998. I didn't get very far because I ran into the same thing bacek is dealing with.
bacek Coke: I've got better plan (described in my latest mail to parrot-dev@). If you can provide some feedback it will be very helpful.
cotto I don't entirely trust my state of mind to back out that commit, but I'll do it after some sleep if nobody beats me to it. 12:40
Coke bacek; other than "don't break my language", I'm not sure I can provide much practical advice. I'll double check today, though.
bacek Coke: thanks.
Infinoid bacek: (scrapping tt452_reduce_mmd) Ouch. is there nothing we can salvage?
12:41 skids joined
bacek Infinoid: implementation of "op" in terms of "i_op" 12:41
Infinoid I just read your parrot-dev post, sounds good 12:50
By pushing it into pmc2c, I think subclasses like Perl6Int and Tclint will be able to get the performance improvement too, for free 12:52
bacek Infinoid: no. TclInt.base_type != enum_class_Integer 12:53
Infinoid No, but TclInt will have its own switch statement that checks for dynpmc_TclInt
bacek But if I can change it without braking stuff...
Infinoid or at least, it *can* have that
cotto vtable->base_type is a deceptive name 12:54
Infinoid very much so
Austin_Hastings Is there any kind of known issue with .HLL/.namespace and get_global not working? 12:55
12:56 jsut joined
bacek Infinoid: I'll check what we can do with dynpmcs in this case. But I'm very conservative about possibilities. There is no pre-defined enum_class_TclInt. 12:58
Coke codetest failures: smolder.plusthree.com/app/public_pr...ails/22848
Infinoid: I think making dynpmcs that subclass core classes have to add code (even automatically at C time) seems wrong. 12:59
Infinoid bacek: I know. the value is only available from within the dynpmc itself, you can't check it from core
Coke: The entire purpose of pmc2c is to automatically generate C code for pmcs and dynpmcs. Are you saying the existence of pmc2c is wrong? 13:00
Coke strawman, no. 13:01
Infinoid (seems like a bit of an overreaction, to me.)
Coke Infinoid: it's certainly better than having to manually roll anything.
13:02 gryphon joined, szabgab joined
Coke In general, I think the approach of "avoid MMD because it's expensive" is wrong, and we should work to make MMD faster. 13:02
but IANACP. nor an architect.
bacek Coke: MMD isn't slow... PCC is 13:03
Coke then let's make that faster. =-)
<shrug> don't mind me. 13:04
bacek looking as pcc_rewiring branch
Infinoid As I understand TT #452, I think the argument is more like "avoid MMD because it is wrong for vtables"
cotto is tempted to do the same
Infinoid but I'm not an architect, either.
bacek is architect. Not for parrot though :) 13:05
Coke Infinoid: that gets back to the schizophrenia of our architecture. at one point that was a good thing. =-)
Infinoid true. Anyway, if we appear to be working around MMD/PCC, it's because staring at that code causes madness. 13:06
13:06 HG` joined
bacek ok. Sleep time. I'll try to mockup some code on weekend. 13:11
pmichaud I wonder to what degree "avoid MMD" is because "it fails", though. 13:12
13:13 Whiteknight joined
dalek rrot: r39217 | pmichaud++ | trunk/compilers/nqp/src/Grammar/Actions.pir:
[nqp]: Some small cleanups to bacek++'s changes in r39216.
13:13
Austin_Hastings pmichaud: Question about root_new, etc.: Isn't this issue a very-low-level version of "import"? 13:20
pmichaud Austin_Hastings: I don't quite understand. 13:25
Austin_Hastings The original thread seemed to be "new cannot accept a rooted path, so there's no way to create and object from a remote hll's namespace."
So root_new takes a rooted path, enabling [parrot;Integer] to be created from within .HLL "tcl" or whatever 13:26
pmichaud it's more that "new is doing bad things, and we need a way to create an object from a PMC type declared in a remote namespace"
Austin_Hastings But the bad thing in question is creating a proxy, right? 13:27
pmichaud creating a PMCProxy in the hll's namespace
creating the PMCProxy itself isn't bad.
Austin_Hastings What namespace would it be in otherwise?
dalek rtcl: r377 | coke++ | wiki/ParrotIssues.wiki:
add another bug; classify bugs as MUST fix vs. must fix. =-)
pmichaud the namespace that the PMC type itself operates in -- usually 'parrot'
dalek rtcl: r378 | coke++ | wiki/ParrotIssues.wiki:
whoops; we can build against an installed parrot now, remove this issue.
Austin_Hastings Why would there be a proxy there at all? 13:28
dalek TT #716 created by doughera++: [PATCH] Remove incorrect check for function pointer alignment
Austin_Hastings (Here's me not understanding what a proxy is for, really.)
pmichaud all PMC types end up with PMCProxy
Austin_Hastings Okay.
pmichaud a PMCProxy object is the representation of a PMC's "class object"
for example
Austin_Hastings So wouldn't the proxy already exist?
pmichaud Parrot tries to be lazy about creating PMCProxy objects when they're needed 13:29
Austin_Hastings Okay.
pmichaud internally Parrot doesn't use class objects for the PMC types
but if I do $P0 = get_class 'Integer'
I have to have something that represents the Integer PMC type. That's what a PMCProxy does
Austin_Hastings So if this is the very first time someone does a "new Integer" then the Integer PMCProxy needs to be created, yeah?
pmichaud correct.
Austin_Hastings And that should be in the same nsp that the class is defined in -- [parrot;Integer] in this case. 13:30
pmichaud or anything else that wants an oo-based representation of the Integer PMC type
correct.
Austin_Hastings But when I want to instantiate a new object of type perl6::Test::More, I have to import the namespace, get the default symbols, etc. 13:31
(Something which is conspicuously tagged as NYI in the docs.)
pmichaud Yes and no.
Coke NYI?
Austin_Hastings not yet impl
Coke NYI is not yet implemented
Coke was checking the bot. =-) 13:32
Austin_Hastings okl
ok
pmichaud keep in mind that the docs you're looking at are likely more speculative than descriptive
Austin_Hastings sorry
:)
I was wondering how pissed people would get if I created a table of parrot vocabulary in trac.
Coke there is already a glossary file in the docs. 13:33
Austin_Hastings But anyway, why yes and no?
pmichaud in the parrot sense, the way someone would create a new object of type perl6::Test::More would be $P0 = root_new ['perl6';'Test';'More']
no importing required.
Austin_Hastings Coke: I was thinking along the lines of a list of opcodes and directives and whatever-elses, with links.
pmichaud that's the "no" part 13:34
Austin_Hastings okay...
Austin_Hastings is skeptical.
pmichaud in the perl6 sense, creation of objects is really done through the protoobject's "new" method, so that the correct mechanism for creating something would be
$P0 = get_root_global ['perl6';'Test'], 'More'
$P1 = $P0.'new'()
Austin_Hastings Okay, that looks better. 13:35
pmichaud at least, that's how it would be done until perl6 is able to define its VTABLE_instantiate interface in terms of protoobjects and .new
Austin_Hastings What happens if you do the new [perl6;Test;More] ?
pmichaud You'd get a [perl6;Test;More] object, but it would be uninitialized and perl6 might not understand why not. 13:36
Austin_Hastings Okay.
pmichaud again, at least until perl6 is able to implement a proper vtable interface for it.
Austin_Hastings So I don't need to import things if I can call new on them directly. And I can call new only on things in my .HLL. But I can call root_new on anything.
pmichaud if using the keyed/array/string interface to new, it only works for the current HLL 13:37
(the argument to new can be a namespace, which can be anywhere)
the primary reason for root_new was to avoid
$P0 = get_root_namespace ['parrot';'Integer'] 13:38
$P1 = new $P0
Austin_Hastings So is root_new a macro? :)
pmichaud which would otherwise occur *a lot*
no, it's an opcode.
probably could've been a macro -- was easier to write it as an opcode.
dalek rrot: r39218 | Infinoid++ | trunk/src/pmc/integer.pmc:
[core] Revert r38000. See TT #713.
13:39
rrot: r39219 | Infinoid++ | trunk (3 files):
[config] Apply patch from doughera++ in TT #716.
Austin_Hastings Okay, thanks. I was thinking proxies were import-related. 13:40
New question: I am calling load_bytecode with a non-existent path. Why does it hang? 13:42
Coke Infinoid++ #713
Infinoid - any chance you can apply the patch in #715? 13:43
13:43 iblechbot joined
Coke (that would remove all the blockers I have right now.) 13:43
Austin_Hastings nopaste.com/p/aFQ4Ffepk = code that hangs
dalek TT #716 closed by Infinoid++: [PATCH] Remove incorrect check for function pointer alignment
Coke Infinoid: also, check out 37998. 13:45
pmichaud I'd be very happy to see the #715 patch applied, I think it may speed up Rakudo again.
Infinoid Coke: I don't feel qualified to review/apply changes in that section of parrot 13:46
pmichaud Infinoid: I think it's a good patch. Blame me if anything breaks.
dalek TT #713 closed by Infinoid++: Too little MMD? i_add doesn't know about subclasses. 13:47
Infinoid Ok, I'll monster the patch (but is it something we should add tests for?)
pmichaud Infinoid: add the test examples I gave in the ticket
(with suitable modification)
essentially, we want to make sure that the 'isa' step isn't creating a proxy in the HLL namespace 13:48
or I can perhaps do that when I get back (have to run errands)
Infinoid that would be great, I'm running out of time here
Coke Infinoid++ 13:52
Infinoid Coke: Is r37998 a problem? Do you have a TclBigInt which it breaks? 13:53
(or do you plan to?)
Coke Infinoid: when I pinged cotto if there were any other patches like r38000, that's the only other one he mentioend. 13:55
I do plan to have bigint support at some point, yes.
Infinoid it is indeed the same kind of weird logic that we might be trying to get rid of, but in this case, the default case looks reasonable
Coke I just tried to reverse it and the patch failed locally.
I'm not getting any failures from it, though. 13:56
Infinoid it will cause failures if you made a dynpmc subclassing bigint and then tried to compare huge numbers (that overflow the return type of VTABLE_get_integer)
Coke well, I will do that eventually. =-) 13:57
Infinoid ok, I gotta go
Coke ~~
he_ Hm, test success rate seems to have slid a bit lately, now at 25 failed tests, ref. smolder.plusthree.com/app/public_pr...ils/22868, and I see others with more failures. 14:02
BTW, it doesn't appear to be possible to look at the details of each failure via the web interface, at least not without login -- is that as designed? 14:03
dalek kudo: a85758b | pmichaud++ | src/parser/grammar.pg:
Add a "s/// not implemented" error. Fix q(), s(), etc to be function calls.
14:09
Coke he_: you need JS, but it should work. 14:14
you can see the generated TAP.
he_ Coke: when I visit smolder.plusthree.com/app/public_pr.../22868/141 I get an empty document (that's the href for the first failure in smolder.plusthree.com/app/public_pr...ils/22868) 14:16
or ... actually, I get an incomplete html document; no document header, no <html>, no <body> just a <table>. 14:17
...which firefox renders as ... "nothing". 14:18
...and it ended up that way because I chose "open URL in new tab". Of course it works if I just click on it directly. 14:19
14:20 frodwith joined
he_ In other words, "ignore what I said about the smolder problems" 14:23
14:24 Theory joined
dalek rrot: r39220 | NotFound++ | trunk/src/oo.c:
[core] don't create proxies in foreign namespaces, TT #715
14:32
14:38 skids joined
Coke NotFound++ 14:59
Whiteknight NotFound++ indeed 15:11
that PMCProxy code has needed a major refactor for a while now 15:12
NotFound Looks much better that the quick attempt, doesn't it? :) 15:13
Whiteknight Much
Coke NotFound: oh, I should test and make sure this new version works, huh? =-)
Whiteknight I wonder if the functions in src/pmc.c are supposed to be renamed "Parrot_pmc_*" 15:14
NotFound Coke: I already tested partcl in C and in C++ build
Whiteknight that will make a fun, if tedious, project
Coke NotFound++
Yay. only remaining bug is something that I'm not sure was working before we shut off the lights in january. 15:15
15:16 riffraff joined
dalek rrot: r39221 | NotFound++ | trunk/src/oo.c:
[cage] update headerizing
15:18
15:20 donaldh joined
Coke If anyone's bored, I could use some tests converted from Perl invoking parrot invoking partcl to all-tcl. plenty of examples to work from. =-) 15:22
(last bug) HA. the tests are already todo'd out, but getting run anyway. harness bug, not unexpected bug. 15:23
'make test' for partcl should now be 100% again. 15:26
NotFound++
pmichaud++
Infinoid++
NotFound Coke++
Don't forget pmichaud++
Oh, i didn't see well 15:27
Coke you guys, with your identical length psuedos... 15:28
NotFound Coke: I can help writing tcl compilers, but not tcl code
Coke the tcl code is already written, it's just wrapped in PIR. =-) 15:29
er, Perl.
but I'll take help on the compiler end!
NotFound Coke: BTW, the code annotations thing, I know something about using it, but nothing about generating it other than from pure pir. 15:31
15:31 Andy joined
dalek rtcl: r379 | coke++ | trunk/t/cmd_parray.t:
Fix TODO handling.

With this commit, 'make test' is now expected to pass 100% against parrot HEAD, installed.
15:31
purl installed is easy as well.
Coke NotFound: I'd be happy for help on #71, which involves some updates to our TGE rules. 15:34
NotFound Coke: I'll take a look, maybe I can laern some TGE ;) 15:35
Coke basically, we see if the command the user tried to invoke exists; if not, we throw an error; instead, we need to load the 'unknown' sub (provided by init.tcl) and invoke it, and it will handle things for us.
so if I call "spork", and spork isn't defined, [unknown spork] is called instead. 15:36
(which may then compile a version of spork and pass off control to it.) 15:37
NotFound That type of things always amaze poor static languages guys like me ;) 15:38
Coke tcl is pretty evil.
presumably in a good way. =-)
(preloading init.tcl, btw, is one of the reasons to avoid invoking the entire runtime for each of 80 tests in a file. =-)
NotFound Coke: t/cmd_lsort (Wstat: 256 Tests: 22 Failed: 0) Non-zero exit status: 1 15:48
$ prove -v t/cmd_lsort.t (...) attempt to access code outside of current code segment 15:49
Coke NotFound: there's an rt for that. 15:52
NotFound Other than that, 100%
Coke rt.perl.org/rt3//Public/Bug/Display...l?id=57088
the individual tests pass, but parrot's non-0 exit code makes harness (rightfully) squawk. 15:53
that could use some love too. oooold bug.
(and all parrot's fault. =-)
NotFound Same result in C++ build 15:55
Don't we have a t/ subdir for hll things? 15:58
t/oo/proxy.t wil be a good place for TT #715 tests? 16:00
Coke +1
purl 1
16:11 Theory joined
dalek rrot: r39222 | NotFound++ | trunk/t/oo/proxy.t:
[test] check example in TT #715
16:25
TT #717 created by Util++: parrot_config segfaults when invoked with the --dump option 16:43
16:47 whoppix joined 16:52 davidfetter joined
NotFound TT #717: Parrot_io_write is the uglier abuse of string internals I've ever seen. 16:55
17:10 Debolaz joined 17:26 donaldh left 17:31 darbelo joined
dalek rrot: r39223 | NotFound++ | trunk/src/ops/io.ops:
[io] use putps instad of puts to emit newline in say, inspired by TT #717
17:34
Coke TimToady: ". there must" should be ". There must" in S05-regex.pod 17:52
i'll fix it later if no one gets to it. 17:53
TimToady Coke++ 17:55
17:57 iblechbot joined
Coke NotFound: would CONST_STRING work there? 18:00
NotFound Coke: I tried, no.
Coke k.
I can never remember which magic contexts those work in. =-)
NotFound ETOOMUCHMAGIC 18:01
Whiteknight it should "work" everywhere 18:03
even if it's converted to just a simple macro
18:04 Limbic_Region joined
Coke is >< close to being able to setup a cron job to build parrot, install it to a temp dir, build partcl against it, and run 'make test'. 18:05
hurm. I could probably do that on feather today. 18:06
dalek rrot: r39224 | NotFound++ | trunk (3 files):
[io] implement setstdin opcode, TT #680, flh++
18:31
TT #680 closed by NotFound++: Add a setstdin opcode 18:34
moritz seen dcantrell 18:35
purl I haven't seen 'dcantrell', moritz
moritz does he have a different nick?
18:49 riffraff joined 18:53 Zak joined, bobke joined
Coke dcantrell? 18:57
apparently not. =-)
/CPAN/authors/id/D/DC/DCANTRELL/ ?
19:10 darbelo joined 19:13 Theory joined 19:18 hudnix joined 19:48 Whiteknight joined
GeJ Good morning everyone 19:52
dalek cnum-dynpmcs: r68 | darbelo++ | trunk/src/pmc/decnum.pmc:
Add absolute, i_absolute, neg and i_neg VTABLES.
19:55
Coke GeJ: hio. 20:01
dalek rrot: r39225 | allison++ | trunk/ports/ubuntu/changelog:
Adding the changelog from most recent (successful) PPA build.
20:09
rrot: r39226 | allison++ | trunk/ports/ubuntu/changelog:
[ubuntu] Preparing for 1.0 package sync.
20:16
Coke msg chromatic Now that tcl builds again, can I interest you profiling some partcl again? 20:18
purl Message for chromatic stored.
20:34 AndyA joined 20:39 dolmen joined
dalek rrot: r39227 | chromatic++ | trunk/src/pmc_freeze.c:
[GC] Removed a manual GC run from run_thaw(). When loading a lot of PBC files,

generational GC, that would be more appropriate here.) Deleting this line improves Rakudo startup by 6.06% and the 10k subs benchmark by 7.12%.
20:46
Coke good timing. =-) 20:47
NotFound I'm wondering if we must locate and delete all manual gc runs. 20:49
Maybe all are attempts of optimization that really are pesimizing, in addition of causing obscure bugs 20:50
20:50 bacek joined
NotFound Mmmm... looks like someone already killed most 21:04
21:10 Whiteknight joined 21:19 bacek joined 21:22 szabgab joined
bacek Good morning 21:29
purl Here I am, brain the size of a planet, and all they say is 'Good Morning'
21:30 eternaleye_ joined
bacek stupid bot 21:30
purl i think stupid bot is bad programmer, no cookie!
21:49 riffraff joined 22:05 szabgab joined
Infinoid purl is in fine form today 22:11
darbelo cotto: ping 22:21
cotto darbelo, I see your ping and raise your a pong 22:30
22:31 kid51 joined, rg1 joined, ZuLuuuuuu joined
darbelo I've been looking at the VTABLEs imlemented by BigInt and BigNum. And I think I'm past the halfway mark, do you have any thougts on what else DecNum should implement? 22:32
cotto checks 22:33
PerlJam darbelo: you're past 50% done on the first 90%? :)
darbelo More like past 50% on the first 30%. 22:34
moderator Parrot 1.2.0 released | parrot.org/ | 303 RTs left | Weekly Priority: Profiling 22:34
cotto I'm realizing that it's been a while since I looked at the code rather than the diffs 22:35
darbelo Heh. Diffs mask the bloat. 22:36
I think it's getting big enough to start on the tests. 22:37
cotto >20 lines is big enough to start on tests 22:38
;)
I'd recommend pow, mod, and freeze/thaw/visit. 22:39
also is_equal, but that's easy to implement in terms of cmp
but yeah, tests are a very good idea 22:40
darbelo There's an issue with the shift_{left,right} stuff I wanted to mention, too 22:41
cotto shift to the left
shift to the right 22:42
stand up
purl stand up are you crazy
cotto sit down
purl bring me a fainting couch! - I do believe I have a case of the vapors
cotto fight fight fight!
darbelo decNumber's idea of a shift is rather decimal.
cotto I don't see how it'd be useful.
That's one of the more questionable VTABLE functions. 22:43
darbelo Fast multiply/divide by ten?
Oh wait. Decimal bitmasks!
cotto I guess.
darbelo It has a decNumberXor function for that too! 22:44
Some of the things in this library confuse the hell out of me. 22:45
dalek kudo: 6062528 | duff++ | perl6.pir:
Update copyright. StephenPollei++
22:46
darbelo cotto: Are there gudelines on what should be a VTABLE and what should be a method? 22:49
cotto I don't know of any, but it'd be a good idea of we had some. 22:50
darbelo for example: pow is a vtable, but I haven't seen a sqrt one. 22:51
bacek ETOOMANYVTABLEs
22:53 skids joined
cotto You could do sqrt in terms of pow. 22:53
nm 22:54
darbelo But the decNumberSquareRoot would be jealous :)
cotto it's mathematically true, but the implementation needs to be smart enough to dtrt
darbelo decNumberPower should be smart enough, but a dedicated sqrt function should be faster. 22:57
cotto true and true
how are you thinking about running the test suite? 22:58
darbelo make test 22:59
;)
I want to translate the current tests into runnable pir.
They look regular enough to automate the conversion. 23:00
cotto ok. that's the approach I was thinking about too 23:01
dalek rrot: r39228 | jkeenan++ | trunk (3 files):
Move most description of MANIFEST to lib/Parrot/Manifest.pm and improve it. wayland++
23:02
darbelo Right now I'm pushing down the side of me that drools at new stuff and wants to implement the translator with PCT. 23:03
cotto go for it! at this rate you'll have plenty of time to do that sort of thing 23:04
bacek darbelo: welcome to pmc_pct branch! :)
darbelo But I can still hear the side of me that likes to get things done fast whispering in my ear. 23:05
23:05 wayland76 joined 23:06 uniejo joined
darbelo "Bash it together in perl. It's quick one off script, noone will care. C'mon, you can feel the regexes pushing to get out." 23:06
cotto pct is teh shiiiiinnnnyyyyy 23:07
darbelo gives in to the power of shiny 23:08
cotto btw, did you get your card yet? 23:09
or did it at least leave Memphis? ;)
darbelo Left Menphis, arrived here.
I HAZ GOOGLES MONNIEZ! 23:13
I activated it, but haven't set the PIN so I can't use it on an ATM yet. 23:18
cotto I like automatic atm machines
darbelo No way man! Manual ATMs are the way to go. 23:19
cotto "Please take $40 from this giant stack of $20s. We'll trust you."
darbelo "Please take only $40 from this giant stack of $20s. We'll hunt you down if you don't" 23:20
cotto Craigslist occasionally wins: seattle.craigslist.org/est/zip/1192551608.html 23:21
23:24 Limbic_Region joined
darbelo I'm too far from seattle, but I've heard rainbow fish are tasty :) 23:26
"No such thing as a free meal" they said. Pfft. 23:27
cotto My rental agreement says no pets, but I imagine that in this market my landlord can make an exception. 23:28
23:30 rdice joined
darbelo "You can keep 'em but they have to sleep outide. And you have to clean up if they mess the carpet" 23:30
23:37 Austin_Hastings joined
Austin_Hastings Hola, #parrot. 23:37
dalek rtcl: r380 | coke++ | branches/stable:
Remove defunct branch. trunk is the new stable
23:52
23:53 patspam joined