Parrot 1.7.0 "African Grey" is out! | Testing hackathon November 14 and 15 -- improve opcode coverage | find out what's up with the slice opcode | Latest modified TT's: icanhaz.com/parrotbugs
Set by moderator on 10 November 2009.
plobsing thats how I retest. I find the makefile too "conservative" in what it considers dependancies 00:00
slows the process somewhat
hmmm prove t/pmc/nci.t passes here (x86_64 arch linux). making fulltest 00:01
what libjit are you using?
cotto_work 0.1.2 00:02
00:04 hercynium joined
plobsing 0.1.2-1? 00:04
nevermind 00:05
the 1 is added by my package manager
--optimize?
cotto_work nope 00:06
plobsing shouldn't matter
cotto_work what are you on that has a libjit package? 00:07
00:07 eternaleye joined
plobsing arch linux. 00:07
purl arch linux is not as cool as demi linux.
plobsing its in AUR
darbelo AUR?
plobsing arch user repository or somesuch
00:07 eternaleye joined
darbelo Ah. 00:08
plobsing I should add a debugging interface to NCI pmcs 00:09
00:11 tetragon joined
nopaste "plobsing" at 76.67.61.178 pasted "libjit_framebulder patch + primitive debugging" (27 lines) at nopaste.snit.ch/18645 00:15
"plobsing" at 76.67.61.178 pasted "failing PASM test (libjit_framebuilder)" (16 lines) at nopaste.snit.ch/18646
plobsing cotto_work: can you apply the patch, make corevm, and run against the nopasted PASM file? 00:16
cotto_work: and then nopaste the printed assembly?
darbelo plobsing: cotto_work can't commit from work, let me know when you want something to go into the repo. 00:17
plobsing not against svn. local, for testing
when you have time
cotto_work error:imcc:syntax error, unexpected PARROT_OP ('loadlib') 00:18
00:18 abqar joined
plobsing you are running it as pasm correct? 00:19
cotto_work If I add enough code to make it PIR, it segfaults before printing out anything interesting
I forgot that filename extensions mattered. 00:20
as pasm, it still segfaults before doing anything interesting
plobsing yes, thats evil
cotto_work nopaste.snit.ch/18647 00:21
plobsing hmmm... maybe your libjit is using the interpreter for some reason (I have no idea why libjit thinks its a good idea to more-or-less silently fall back to an interpreter) 00:24
nopaste "plobsing" at 76.67.61.178 pasted "libjit interpreter check" (22 lines) at nopaste.snit.ch/18648 00:25
cotto_work 0 00:26
(assuming -ljit is what I want to use)
plobsing yes
well, I'm stumped. I'll try installing ubuntu to try and reproduce it 00:28
cotto_work ok. I'm going home soon anyway. 00:29
I'll be mostly available tomorrow for round 2.
plobsing thanks 00:30
cotto_work Thanks for your framebuilder work.
Whiteknight how do I display a backtrace in PIR?
cotto_work backtrace 00:31
purl it has been said that backtrace is not sufficient?
Whiteknight backtrace the method on the Exception object?
cotto_work there's an op
cotto_work goes home 00:32
00:39 kiwichris joined
Whiteknight no, how do I get the backtrace from an exception 00:41
except.'backtrace'() I know 00:42
but I can't print that in any reasonable way 00:43
00:44 Austin joined
nopaste "NotFound" at 213.96.228.50 pasted "backtrace the Winxed way" (23 lines) at nopaste.snit.ch/18649 00:45
NotFound Whiteknight: maybe that Winxed example is helpful
called from Sub 'test' pc 161 (examples/annotations.pir:28) 00:46
examples/annotations.winxed: 17
Whiteknight urg, that is disgusting
NotFound called from Sub 'main' pc 173 (examples/annotations.pir:1)
examples/annotations.winxed: 22
Whiteknight why can't it just be easy?
NotFound If looks uneasy in Winxed, try in pir ;)
Whiteknight exactly! I don't want to do it in PIR 00:47
NotFound I also don't want, I wrote Winxed because of that :D
BTW note the very wrong pir line numbers. 00:49
dalek TT #1265 created by bubaflub++: [PATCH] src/pmc/object.pmc fails t/codingstd/linelength.t
Whiteknight I'm just not going to use a backtrace then
if it's such a goddamn hassle 00:50
darbelo NotFound: you should probably open a ticket for those very wrong pir line numbers.
NotFound darbelo: I think there are already several tickets about that.
darbelo Bonus point if you can turn them into a test.
NotFound darbelo: Why, to have it immediatelt todoed or skipped and forgotten? 00:51
Maybe is faster to write a pir compiler in Winxed ;) 00:53
darbelo chromatic had a standing offer of fixing bugs in exchange for tests. And the test hackathon on saturday is a good moment to give IMCC line numbers a whack. 00:54
NotFound I'm better thinking about skipping the pir number segment generation and relying only in code annotations. 00:55
darbelo Anyways, I need to get some sleeps.
See y'all later.
japhb darbelo, chromatic has taken a whack at the IMCC line numbers several times.
Actually, he asked me for a test case for one of my bugs in his most recent attempt, come to think of it. 00:56
NotFound japhb: is imcc. Someone fix today, tomorrow gets broken other way.
japhb ENOTIMECUZWORKNSTUFF
darbelo NotFound: If you leave a test behind, the new breakage gets noticed.
But, as I said, I need some sleep. 00:57
Laters.
NotFound darbelo: there alrady tests and tickets for wrong pir line numbers.
japhb Oh sure, get out of it that way.
dalek rrot: r42432 | jkeenan++ | branches/platform_determine_earlier (2 files):
Refactor _report_verbose() a bit. Add tests.
NotFound And people just todo or skip to have a clean release. 00:58
japhb
.oO( Ugh. If this Perl 5 code was Perl 6, it would be SO much easier to refactor ... )
00:59
01:14 mokurai joined
dalek p-rx: d185789 | pmichaud++ | t/nqp/11-sub.t:
Revise test in 11-sub.t because subs default to lexical scoping. diakopter++
01:35
01:39 dalek left, dalek joined 02:13 kid51 joined 02:21 mokurai left 02:43 tetragon joined
Whiteknight incoming 02:52
purl duck!
kid51 dalek hasn't been reporting for > 30 minutes 02:58
Not since 0213 at least.
purl, wazzup with dalek? 03:00
purl no idea, kid51
dukeleto 'ello 03:04
dukeleto is at the pdx.pm meeting
kid51 Wazzup?
03:06 plobsing joined
dukeleto not much 03:06
purl same here, dude
dukeleto t/src/warnings.t is still failing
kid51 on which platforms? amd64?
dukeleto darwin/x86
kid51 Well, I have it passing on darwin/ppc 03:31
see: smolder.plusthree.com/app/public_pr...ails/29829
dukeleto kid51: darwin/ppc is a totally different platform :) 03:33
msg Util are you working on TT 1217/1218? you assigned them to yourself, but made no comments on the ticket 03:41
purl Message for util stored.
03:41 plobsing joined 03:42 janus joined 03:51 theory joined 03:56 abqar_ joined
Util msg dukeleto I am working on TT#1217 & TT#1218. Summary: When testing DynPMCs via `loadlib`, each test must run as a separate instance of Parrot. The first patch, while otherwise perfect, causes false negatives; every test after the first successful test will pass, even if the PMC cannot be loaded, because it was *already* loaded by the prior test. Details->tickets when I return in 12 hours; going offline. 04:01
purl Message for dukeleto stored.
kid51 Does anyone know which human tends to dalek? 04:02
hachi? 04:03
purl somebody said hachi was extremely slow at it or kuiki.net/ or kuiki.net/hachi or dateless or duct-taped to the channel or (see kyuu) or the sound you make when you sneeze or not really named Sharls Davis Kendy or a geeky fanboy, people should keep a tazer nearby to fend me off or okra or not okra or Japanese for 8 or full or (920) 420-0656 or dreamy or works for LiveJournal (news.livejournal.com/92408.html)
kid51 diakopter?
purl i think diakopter is the person currently maintaining dalek
diakopter hm 04:04
kid51 msg diakopter dalek has not been reporting commits to Parrot (and, presumably, other) repositories since coming back on channel at 0139 Nov 12
purl Message for diakopter stored.
kid51 OH HAI!
diakopter PAST on the brain 04:05
hachi kid51: hello? 04:08
purl Raise your hand in the back if you can't hear me.
hachi ahh, not me anyways, good job 04:09
kid51 hachi: hello, I was looking for dalek's minder
diakopter is on the case
04:11 dalek joined
diakopter well 04:14
kid51 must sleep 04:16
purl $kid51->sleep(8 * 3600);
japhb dukeleto, darbelo, Tene, pmichaud: Any thoughts on fperrad++'s suggestion to move the build system for Plumage itself from Configure.nqp & make to his new setup.pir &distutils.pbc system? 04:52
I would personally prefer a setup.nqp instead of setup.pir, but looking at the setup.pir he sent me for Plumage, most of the code is setting up multi-level configuration hashes, and then calling into his framework. Unfortunately right now NQP doesn't do very well at declaring hash structures, so it's not a huge win to convert at the moment. 04:54
dukeleto japhb: this is the first i am hearing about it 05:27
japhb dukeleto, That's why I'm bringing it up here. He sent me a personal email, rather than to the list. 05:29
05:30 darbelo joined
darbelo hates insomnia. 05:30
japhb darbelo: did you see my question from about 40 minutes ago? 05:31
pmichaud parrot doesn't do very well at declaring hash structures either :-|
darbelo I'll check the irclogs 05:32
japhb pmichaud, no, it's certainly not pretty. But current NQP isn't a heck of a lot better, unfortunately.
pmichaud, and I think I found a bug in [], but it may just be me; currently testing
pmichaud on the other hand.... the regex engine is very good at creating hash structures :-)
japhb That's an interesting thought .... 05:33
pmichaud so, if you have a configuration string that can be parsed into the hash structure you want/need.... 05:34
japhb chuckles at the thought of setup.nqp starting off with a grammar extension to parse the rest of itself
darbelo japhb: Hmmm. I've been meaning to give the distutils a spin, see if they can hadle decnum-dynpmcs's build. 05:35
Freeing plumage from the shackles of make sounds tempting...
pmichaud I could also see about getting nqp to build hashes 05:36
depends on what kind of hash structure you need. :-|
japhb pmichaud, quite cool that would be
pmichaud maybe nopaste the setup.pir ?
japhb pmichaud, I was just about to do that. :-)
nopaste "japhb" at 76.191.190.8 pasted "fperrad++'s suggested setup.pir for plumage" (56 lines) at nopaste.snit.ch/18650 05:38
japhb Fairly simple HoH structure, with strings for all keys and values
(leaf node values, I mean)
pmichaud I'm trying to decide how difficult it'd be to build a hash from NQP 05:41
diakopter :)
pmichaud (hash structure, actually ... hashes are pretty easy)
05:42 mokurai joined
nopaste "japhb" at 76.191.190.8 pasted "[BUG] nqp -target=pir of foo(["a", "b"])" (8 lines) at nopaste.snit.ch/18651 05:44
pmichaud yeah, looks like a bug 05:45
the keys in the setup.pir instance aren't identifiers, either
hmmmm
that would mean we'd have to parse the 'foo' => 'bar' form
japhb Is that particularly difficult to add? It looks like "just" an infix operator, if you leave aside autoquoting the LHS 05:46
which NQP can just say is Off The Table
05:47 theory joined
pmichaud the parsing part isn't too bad, it's the code generation 05:47
it does make a difference though, because 'a' => 3 and a => 3 mean something different inside of function calls 05:48
dukeleto japhb: can you maybe forward the email about setup.pir ? i won't be able to backlog for a while (or never)
diakopter (never?)
dukeleto diakopter: life got busy, backlogging has become unbounded => doesn't happen as often 05:53
japhb bak
dukeleto, in typical fperrad fashion, the content of the email is just one line: 'since Parrot r42421, you could build/test/clean Plumage with this setup.pir' -- followed by the attachment. :-) 05:54
pmichaud, a => 3 versus 'a' => 3 is named argument versus positional pair, right? 05:56
diakopter nqp: sub a($b) { say($b.pop) }; a([[5 <= 6]]); # get_pmc_keyed() not implemented in class 'Integer'␤current instr.: 'a' pc 56 (EVAL_1:0)
er 05:57
nqp: sub a($b) { say($b.pop)[0] }; a([[5 <= 6]]); # get_pmc_keyed() not implemented in class 'Integer'␤current instr.: 'a' pc 56 (EVAL_1:0) 05:58
nqp: sub a($b) { say($b.pop) }; a([[5 <= 6]]); # 1
pmichaud japhb: yes, named argument versus positional pair 05:59
but only in an argument list
inside of a hash constructor, they're both pairs
japhb oh ah. 06:01
still, you could do the quoting-only (pair always) form for now, and leave the argument list named argument problem for another time. 06:02
pmichaud it's still slightly tricky -- need to find the case where a closure is nothing but a list of pairs :-| 06:03
or a single pair
japhb If the first child is a pair, isn't that enough to make it a hash?
pmichaud in p6 it's enough to say "this is a hash closure" if nothing else invalidates it 06:04
japhb Oh, so it just changes the default, ew.
I thought it forced hash, and then anything non-pairish was an error.
pmichaud that could be true also 06:05
diakopter pmichaud: rakudo is failing to rebuild on p6eval
rakudo.pastebin.com/d5326ef60
pmichaud diakopter: that looks like a blitzkost error 06:06
since it's talking about p5invocation 06:07
diakopter I wonder why it's trying to build that
japhb I believe jonathon said that blizkost was a victim of the PCC merge, and hasn't been fixed
diakopter ok 06:09
plobsing msg cotto_work installed ubuntu 9.10 amd64. could not reproduce bug. 06:15
purl Message for cotto_work stored.
pmichaud anyway, I'll have to think about hash constructors a bit more
japhb pmichaud, is it something where the action for {} could produce an op that's actually a function call to something that converts a list of keys and values into a hash? 06:18
Not super efficient, but at least it would probably work ...
pmichaud "function call to something" implies runtime library.
japhb pmichaud, oh gak, I keep forgetting that 06:19
well, I suppose you could do it inline!
pmichaud producing a function call to something is the way Rakudo does it, yes :)
yeah, inline is how it would ahve to be done. I'm trying to convince myself I can do that reasonably well :-)
06:20 kiwichris joined
japhb Come to think of it, you don't even have to build up the list at run time and then convert it; you can loop at AST time building a bunch of $P0[$P1] = $P2 nodes, and just iterate over the AST children setting $P1 and $P2 (or $S0 and $P1 if the keys are forced to be strings) 06:23
It's a long block of pir, but should be fast as you can get for building at runtime 06:24
I'm feeling stupid because I'm clearly missing the hard part.
pmichaud it's not so much that this part is hard, it's a question of how it might need to fit in with the other pieces 06:26
in particular, detecting the pairs, and knowing what to do with them when we *aren't* in a hash constructor
japhb But that's my point: basically say: "You can only use pairs in a hash constructor, and only in quoted form. Everything else is not supported yet." 06:27
Punt, in other words.
I don't think it backs you into a corner to do that. 06:28
pmichaud please, don't push right now. I'm a bit distracted in other areas at the moment.
japhb (Backing into a corner being the most obvious objection I can think of.)
Oh, sorry, didn't mean to push, honestly.
pmichaud no problem
japhb Was just trying to understand.
pmichaud yes, I'd like to get hash constructors in
it's likely to happen, I don't know if it'll happen in the next day or two
japhb fair enough. 06:29
pmichaud right now I'm trying to fix the [...] bug
japhb The foo(["a", "b"]) fix is definitely more important to me.
:-)
pmichaud fixed in 5ea3604 06:40
NotFound japhb: if nqp doesn't fit, you can use Winxed. It intializes hashes as easily as javascript. 06:41
Or you can use the json reader. 06:42
pmichaud yeah, but does winxed do regexes? ;-)
NotFound pmichaud: parrot does.
darbelo NotFound: So, winxed is a 'javascrity' syntax on top of pir functionality? 06:45
s/javascrity/javascript-ish/ 06:46
NotFound darbelo: I'm looking for a good one line description. Yours is not bad.
darbelo Not exactly my favourite syntax, but still pretty cool. 06:48
NotFound darbelo: far better than hand written pir ;)
darbelo I can only think of one thing worse than hand-written PIR, and it's hand-written PASM ;) 06:49
NotFound darbelo: please stop, Halloween has passed ;) 06:50
darbelo But I'm weird enough to *like* writing microcontroller asm code. So I'm hardly a good control subject. 06:54
pmichaud japhb: for argument flattening, did you just need it for positional args or were you looking for named argument flattening as well? 07:01
NotFound darbelo: I don't like writing assembly code, but I enjoy writing assemblers. 07:05
So when I say that imcc sucks as macroassembler, I know what I'm talking about }:) 07:06
darbelo The problem as I see it, is that parrot has high-level semantics, and PIR/PASM have a low-level syntax. 07:07
I mean, exception hanlders as labels, what? 07:08
NotFound Low level syntax is not bad, as long as you don't need to hand write it too frequently,
darbelo: I don't think that label eh are so bad. Having also a sub'ed way will be good, but in addition, not instead, IMO. 07:09
pmichaud labels are just targets for continuations. 07:10
NotFound Winxed is already using a try .. catch syntax in top of label handlers without any problem.
07:11 uniejo joined
darbelo You can think of parrot exceptions as microcontroller interrupts. And we are missing a 'RETI' instruction. 07:12
pmichaud what would RETI mean, exactly?
NotFound RETurn from Interruption. 07:13
darbelo RETurn from Interrupt
pmichaud right, I knew that part
but what does it mean internally?
NotFound In Z80 for example it just reset a flag.
pmichaud in parrot's case, we'd expect execution to resume after the throw, or ... ?
NotFound That flag is used for the interrupt controlling hardware.
darbelo Mostly, it's just like a RET, but it clear the 'I'm in an interrupt' flag. 07:14
pmichaud yes, but returns to where?
darbelo Often you can just push a return adress onthe the uc stack and it'll return there.
pmichaud I mean in parrot.
darbelo After the throw point, unless the programmer wants to make it go someplece else. 07:15
pmichaud oh. we already have a way to return to the throw point 07:16
NotFound darbelo: I want. Always.
pmichaud what we're missing is a way to say "return to this other point, rolling up the caller chain"
NotFound try { something bad } catch () { something nasty} IWantGoHere 07:17
darbelo pmichaud: Exactly, but we also can't detect 'recursive exceptions'
NotFound We can't detect recursive exceptions because design doesn't want. 07:18
pmichaud anyway, I agree we need some sort of operation that allows us to roll up the caller chain
we don't have that at the moment
returning to the point of the throw we have.
NotFound pmichaud: There is some actual resume usage? 07:19
pmichaud NotFound: sure. We use it for gather/take in rakudo quite a bit.
NotFound pmichaud: I mean other than control exceptions.
darbelo NotFound: Then the design needs a revision. If microcontrollers were getting it right before the '80s why are getting it wrong now? 07:20
pmichaud take will throw an exception with a return value, gather collects the return value and then resumes the exception in order to continue after the 'take'
oh, I don't know if it gets used outside of control exceptions 07:21
anyway, getting late here so I'll turn in for a while
see you all later
cotto clock? 07:23
purl cotto: LAX: Wed 11:23pm PST / CHI: Thu 1:23am CST / NYC: Thu 2:23am EST / LON: Thu 7:23am GMT / BER: Thu 8:23am CET / IND: Thu 12:53pm IST / TOK: Thu 4:23pm JST / SYD: Thu 6:23pm EST /
darbelo Is there a way to add timezones to purl's clock? 07:25
cotto Nope. It's a way of indirectly saying how important various parts of the world are. 07:26
alternately, you could join #purl and ask there 07:27
literal clock
purl cotto: clock =is= <rss="rjbs.manxome.org/rss/clock.cgi">
cotto nm. That's where the data are coming from.
if you want to host your own rss feed, you could point purl at that 07:28
(if you do, also add a "days to release" feed)
darbelo It was mostly curiosity, I can just reverse pm/am for TOK in my head to know the local time.
But, a 'days to release' RSS would be seriously cool. I'll have to look into that. 07:29
cotto oh PHP. So crappy, yet so profitable. 07:34
actually, I've got an account on feather. If I could remember the password, that'd be a good place to put something like that.
darbelo Speaking of php. Is anyone maintainig pipp? 07:35
cotto not atm 07:36
There'll be some serious bitrot when someone (i.e. barney, fperrad or me) gets back to it. 07:37
but I'm sure nqp-rx will make life nicer
darbelo I had forgotten it even existed, but just saw it on the smolder project list. The last smolder looks like it's rotting badly. 07:38
cotto and lorito-based PMCs, should we ever get around to making those possible
bitrot is such an ugly word
yet fitting
darbelo Yeah, bitrust doesn't have the same ring. 07:39
But parrot moves so fast, even the deprecation policy can't keep stuff from breking all over. 07:40
diakopter bitblur 07:46
darbelo bitdecay?
cotto bitmold 07:47
(because finding a new word for bitrot is easier than actually fixing it)
darbelo bitlichen! 07:48
cotto night 07:50
darbelo That doesnt start with bit... 07:51
cotto kicks ... purl 07:55
with a botsnack
purl thanks cotto :)
08:00 fperrad joined 08:01 uniejo joined 08:04 barney joined 08:24 TiMBuS joined 08:40 zak_ joined
japhb NotFound, can't use Winxed, because it doesn't ship with Parrot. Plumage can only use tools that ship with Parrot ... anything else that is *currently* being used only lasts during bootstrapping. 08:57
NotFound, also, Plumage currently is using the JSON parser to initialize some big hashes, but I end up having to do a second pass over the data to programmatically fix up JSON's lack of data types. Sucky. 08:58
pmichaud, ISTR that I need both positional flattening and named flattening, but positional is definitely by far the more immediate issue. I've got PIR code that exists for no reason but to manually flatten arg arrays in certain ways. Ew. 09:00
09:02 bacek joined
japhb pmichaud, so far, foo(["a", "b"]) bug indeed looks fixed. Thank you! 09:08
bacek o hai 09:19
mikehh bacek: chromatic said you had fixed include/parrot/context.h for --optimize - we need it in trunk 09:32
09:44 bacek joined
bacek mikehh, it's merged. 09:53
ttbot Parrot trunk/ r42440 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/140129.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 09:55
bacek mikehh, r42440 - it requires some svn stuff fixed 09:56
Anyone on win32 here? lib/Parrot/Pmc2c/UtilFunctions.pm line 286 requires some love 09:59
10:04 mokurai1 joined
bacek dalek turned to zombie? 10:20
szbalint braaaanes
bacek ENOBRAINZ 10:22
ttbot Parrot trunk/ r42441 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/140189.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 10:23
bacek mj41++ # Yay! ttbot is colourful!
ttbot Parrot trunk/ r42442 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/140204.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 10:24
Parrot trunk/ r42443 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/140249.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 10:32
10:41 mokurai1 left 10:53 payload joined, dalek joined 10:55 davidfetter joined
Infinoid how long has dalek been out to lunch? 10:55
10:57 dalek joined 10:58 dalek joined
Infinoid dalek's startup log is looking happier now. it needed XML::Atom::Client and XML::RAI, which had gone missing from feather 11:00
bacek Infinoid++ # Master of pupp^W robots! 11:01
dalek rrot: r42444 | bacek++ | trunk (2 files):
Always generate Context accessor functions with _func suffix. Map old

optimized build. Suggested by chromatic++.
11:05
11:06 payload joined
ttbot Parrot trunk/ r42444 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/140324.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 11:10
bacek barney, we won back almost all speed penalty from PCC refactor. 11:15
11:16 payload joined
moritz but wasn't it supposed to speed things up? 11:17
bacek moritz, may be... 11:19
moritz at least that was my impression from reading both #parrot and #parrotsketch 11:20
bacek Nope. Right after merge it was ~2.5 times slower.
moritz I'm talking about expectations, not observations 11:21
bacek (on fib.pir, which is very simple test)
I have no idea about "expectations". 11:22
allison moritz: the expectation is that it will speed it up, after we remove the backward-compatibility features in 2.1 11:26
moritz allison: ok, thanks for the info 11:29
bacek allison, how backward-compatible features slowing down current PCC? 11:34
barney bacek: tnx, I've updated NEWS 11:50
11:52 KatrinaTheLamia joined 12:10 bluescreen joined
dalek rrot: r42445 | mikehh++ | trunk/MANIFEST:
regenerate manifest
12:20
rrot: r42446 | mikehh++ | trunk/include/pmc/dummy:
set svn properties
ttbot Parrot trunk/ r42445 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/140382.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 12:21
Parrot trunk/ r42446 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/140413.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 12:25
mikehh bacek: perlcritic don't like the TODO at line 25 of tools/dev/checkdepend.pl 12:30
bacek mikehh, yay. This line can be removed. 12:31
dalek rrot: r42447 | mikehh++ | trunk/tools/dev/checkdepend.pl:
fix codetest failure - remove TODO
12:36
fperrad bacek, on Windows, I run : perl tools\\build\\pmc2c.pl --c src\\pmc\\context.pmc 12:37
it try to create : src\\pmc\\context.c & src\\pmc\\include/pmc/pmc_context.h
that fails because the directory src/pmc/include/pmc doesn't exist,
and it's not the good path
12:38 payload joined
ttbot Parrot trunk/ r42447 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/140464.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 12:39
mikehh bacek: looks good 12:40
All tests PASS (pre/post-config, smoke (#26838) fulltest) at r42447 - Ubuntu 9.10 amd64 (g++ --optimize) 12:42
12:43 bacek joined
bacek fperrad, I fixed slashes. But I don't understand why on windows it trying to create src\\pmc\\include\\pmc\\pmc_foo.h 12:44
fperrad, on linux it creates include/pmc/pmc_foo.h properly
mikehh I still have a testr problem with gcc and also on i386 (g++ --optimize) with t/op/comp.t - Failed test: 9 12:45
12:45 joeri joined
bacek mikehh, can you nopaste output? 12:46
12:46 bluescreen joined
mikehh bacek: got to go out for a bit - will look at it again when I get back - bbiab 12:47
12:48 payload joined
fperrad bacek, on Windows, the perlfunc open works well with /, so don't use File::Spec in this case 12:48
File::Spec is useful only for command, because shell needs \\
my $exe = catfile('some', 'where', 'perl.exe');
system($exe);
12:49 kid51 joined
bacek fperrad, than why it put redundant "src/pmc" in front of generated filename? 12:49
mikehh bacek: see TT #1176 and my comment there - got to go now - bbl 12:50
bacek mikehh, ah, ok. At least this one isn't MY failure :) 12:51
12:53 xenoterracide joined
bacek fperrad, looks like nmake (?) change cwd during build... 12:53
fperrad bacek, I use only gmake 12:54
bacek fperrad, strange... I'm out of ideas why results are different on linux vs windows.
fperrad, can you replace 's{' with 's{^' and test it? 12:56
fperrad bacek, UtilFunctions.pm line 287 ? 12:57
bacek fperrad, yes
12:59 xenoterracide joined
bacek Friday, 13th here already... 13:00
13:01 plobsing joined
fperrad bacek, new failure 13:05
$ perl tools\\build\\pmc2c.pl --dump src\\pmc\\context.pmc
No pmclass found
bacek yak...
13:06 xenoterracide joined 13:08 whoppix joined
bacek fperrad, erm... I didn't touch context.pmc (apart from changing #include line)... 13:08
13:09 whiteknight joined
fperrad bacek, I run 'make realclean', all needs to be rebuidl 13:10
bacek fperrad, ouch... Make realclean will not be sufficient (or it can be). Easiest way - clean checkout. (Because headers are moved and "new" realclean will not remove "old" headers) 13:13
whiteknight chromatic, allison: ping 13:16
13:39 xenoterracide joined 13:41 xenoterracide joined
whiteknight is there anybody around who knows about CLAs? 13:45
13:50 payload joined
pmichaud whiteknight: I might know 13:50
whiteknight pmichaud: I tried to fax my new CLA in this morning and the fax number provided didn't work 13:51
pmichaud checking
whiteknight there's a non-zero chance that I just used the damn fax machine wrong, but my process seemed reasonable
pmichaud the fax number in the CLA doesn't seem to match the fax service that the directors have been using 13:53
oh, wait 13:54
I'm reading the message wrong
still searching.
purl hmmm... searching is what I care about here.
whiteknight okay, thanks 13:56
pmichaud fax number provided "didn't work" in the sense of "wouldn't accept a fax" or "wasn't a fax machine"?
whiteknight it buzzed and bleeped for a while, then said "this number is no longer in service, if you would like to make a call please hang up and try again"
pmichaud hmmm 13:57
whiteknight at least, I think that is what it said, I was listening to it through the fax machine speaker
pmichaud can I verify the fax number you were sending to? 13:58
whiteknight The one I got off the CLA itself was: +1-206-299-3492 13:59
pmichaud yeah
okay, let me see what I get from here
whiteknight I may be able to track down a scanner and send it via email
pmichaud when I call that number directly I definitely get a fax machine. 14:00
maybe a pbx in the way, or an over-eager fax machine dialer?
whiteknight I'll give it another try later then. Thanks! 14:01
pmichaud I *think* I can see incoming faxes to the directors list, so if you send it I can let you know it was received.
14:02 patspam joined
particle yes, incoming faxes hit the directors list 14:26
they may need to be moderated by coke or allison, though
dalek rrot: r42448 | fperrad++ | trunk/lib/Parrot/Pmc2c/UtilFunctions.pm:
fix merge pmc_headers_move (r42440) on Windows
14:37
mj41 bacek ... colourful and now not so slow too ... tt.ro.vutbr.cz/buildstatus/pr-Parrot/rp-trunk 14:47
dalek p-rx: 3795f33 | pmichaud++ | README:
README update.
14:58
15:19 Psyche^ joined
NotFound japhb: you don't need to depend on winxed being installed to use it in package, just ship the generated pir. 15:29
japhb NotFound, ah, so Winxed is like NQP and has zero runtime library footprint? 15:47
15:48 mikehh joined
NotFound japhb: yeah 15:48
japhb NotFound, OK, I will think about it then. Staying with one implementation language for Plumage does have its appeal, but we'll see what pmichaud comes up with. 15:49
NotFound, however, I'm easily happy for Plumage to support other projects having setup.winxed or what have you. That seems like a no-brainer. 15:50
NotFound japhb: I suppose that if there is a way to look for setup.pir, doesn't matter how that .pir is written or generated, 15:51
japhb NotFound, oh sure. setup.pir already works. I was just saying I don't mind supporting the winxed source directly. 15:52
:-)
BTW, how is that pronounced? x => ks or x => k ?
NotFound The project maintainer just needs to update a generated pir in the place of the repository where plunage looks for it.
japhb: ks, I think 15:54
japhb okie-dokie
dalek TT #1266 created by doughera++: void function cannot return a value 15:55
kudo: d04cce9 | (Solomon Foster)++ | build/PARROT_REVISION:
Bump PARROT_REVISION to 42431.
15:59
16:00 whiteknight joined 16:05 jsut|work joined 16:06 iblechbot joined
whiteknight internet connection is teh suxxor 16:08
pmichaud 15:29 <NotFound> japhb: you don't need to depend on winxed being installed to use it in package, just ship the generated pir. 16:14
the same is true for nqp, fwiw :)
NotFound pmichaud: we became competitors ;)
But I think our target audiences have very differente tastes for syntax. 16:15
16:15 theory joined
pmichaud indeed, they do :) 16:16
particle := vs =
pmichaud well, according to Damian Conway, the use of ":=" in a language generally dooms it
so NQP has a big hurdle there :)
NotFound No problem, I introduced := :D
particle it's Not Quite Doomed yet
NotFound I mean, =: 16:17
pmichaud I've thought a few times about making '=' be an alias for ':=' in NQP 16:19
but semantically I think that's very suspect
whiteknight but then when parrot starts doing assignment correctly, we break a lot of old NQP code
pmichaud right
so I think I'd rather live with the annoying syntax a bit more than the future incorrect semantics 16:20
16:20 darbelo joined
pmichaud (actually, present incorrect semantics, if people expect '=' to be assignment) 16:20
NotFound pmichaud: People don't expect, just copy&paste from other people's code. 16:21
whiteknight Yeah, I don't think anybody has ever written a piece of new NQP code 16:23
I'm still copy+pasting from stone tablets in my basement 16:24
pmichaud I think japhb has written a fair bit of new NQP code.
darbelo dukeleto too.
NotFound Please don't let reality interfere with my jokes.
whiteknight for realz 16:25
mikehh I am getting a segfault in t/op/annotate.t with gcc (no --optimize) which passes with --optimize and with g++ - Ubuntu 9.10 amd64 16:56
dalek p-rx: 660234b | pmichaud++ | src/stage0/ (3 files):
Update bootstrapping.
16:57
mikehh it passes up to ok 29 then fails 16:58
NotFound mikehh: In annotate? Amazing! 17:04
mikehh it fails in all the cores as well - t/op/annotate.t - Non-zero wait status: 11 - Parse errors: Bad plan. You planned 33 tests but ran 29. 17:05
it passes however with gcc with --optimize and g++ with or withouit --optimize 17:06
that's on Ubuntu 9.10 amd64 at r42448 17:07
dalek nxed: r170 | julian.notfound++ | trunk/examples/parser.winxed:
add a few temporary things in the parser example to be able to self compile and
mikehh I haven't run the tests on i386 today but will do later 17:08
NotFound Oh, I must write better commit messages now.
mikehh: doesn't fail in debian 5.0 amd64 17:09
mikehh with or without --optimize, gcc or g++? 17:10
NotFound gcc without --optimize 17:11
gcc 4.3.2
I'll try now with Ubuntu 9.10 i386 17:13
mikehh hmmn - I'm with gcc 4.4.1 - but it passes with --optimize and with g++ - I'll probably test on 9.04 later 17:14
17:18 fperrad joined
darbelo Agh, the parallel build is broken again. 17:18
NotFound mikehh: passes in Ubuntu 9.10 i386, gcc 4.4.1 without --optimize 17:20
Looks highly specific.
17:25 workbench joined 17:27 dngor_ joined
mikehh I did a clean co and still get the same results - t/op/annotate.t - Non-zero wait status: 11 - Parse errors: Bad plan. You planned 33 tests but ran 29. - and fails all cores in fulltest 17:32
NotFound mikehh: backtrace? 17:33
purl i heard backtrace was not sufficient?
mikehh but passes the other 3 options (gcc wityh --optimize, and g++ with or without --optimize) 17:34
I'll see if I can get it
dalek rrot: r42449 | barney++ | trunk/NEWS:
Added today's NEWS and rephrased some stuff.
17:41 cognominal joined
mikehh ok - how do you get a backtrace? 17:41
dalek a: 79b1f0b | fperrad++ | (2 files):
fix metamethod __call
17:43
17:43 Andy_ joined 17:55 payload joined
mikehh bah - if I extract the first 29 tests in t/op/annotate it passes and if I extract the last 4 tests it passes - but seqfaults together after ok 29 18:08
NotFound Maybe a Heisenbug, maybe a problem with that gcc version. 18:09
pmichaud ...is there a way to get copyright.t to skip certain files? 18:15
or, even better, the ext/nqp-rx directory altogether? ;-)
dalek rrot: r42450 | darbelo++ | trunk/config/gen/makefiles/root.in:
Add header dependencies to two IMCC files. Fixes parallel builds with BSD make.
18:17
pmichaud decides to take a slightly different approach for now.
mikehh oh great I ran the test as ./parrot -t t/op/annotate.t and it didn't segfault 18:18
particle where is copyright.t? t/distro?
pmichaud yes.
particle ah, no, codingstd 18:19
how will those files appear in manifest? marked external somehow? 18:20
pmichaud well, they're in the ext/ subdir
I don't know what else to do with them
particle i believe the correct fix should be in Parrot::Distribution
pmichaud looks like you're correct. 18:21
well, it's able to list perl exemptions and c exemptions, but not PIR. 18:22
particle perhaps adding ext_file_directories(), ext_files() etc, and filtering out
i think we should ignore coding standards checks on all external files 18:23
not just pir files in ext/
however, for now, working trumps good
darbelo Ideally, we should put all external files in ext/ and just ignore that dir.
particle and a tt can inspire a cage cleaner 18:24
dalek nxed: r171 | julian.notfound++ | trunk/winxed.cpp:
fix '||' operator
18:25
pmichaud in the meantime, okay if I don't include the nqp sources in ext yet? just the generated PIR? 18:28
maybe leave the nqp sources for a cage cleaner as well...?
dalek nxed: r172 | julian.notfound++ | trunk/examples/parser.winxed:
example parser: parse int literals, check print arguments, some cleaning
18:30
mikehh and if I run with the parrot_debugger it don't segfault either :-{ 18:31
NotFound mikehh: so it looks runcore specific, but fails with all cores minus trace and debug %-) 18:34
dalek rrot-plumage: 4d158e8 | darbelo++ | :
The decnum-dynpmcs Configure stage calls out to a perl script, reflect t...
mikehh ./parrot t/op/annotate.t - segmantation fault after ok 29, no segfault with ./parrot -t or ./parrot_debugger
and that is only with gcc ver 4.4.1 on amd64 without --optimize 18:35
NotFound mikehh: for the backtrace: ulimit -c unlimited ; run-the-test ; gdb ./parrot core ba 18:36
ba --> in gdb prompt
dukeleto 'ello 18:37
18:41 payload joined 18:42 cognominal joined
nopaste "mikehh" at 81.149.189.7 pasted "backtrace from t/op/annotate.t following instructions from NotFound++" (19 lines) at nopaste.snit.ch/18654 18:44
mikehh I don't know if you can make any sense of that 18:45
dukeleto mikehh: it looks like a NCI call is causing a segfault 18:47
NotFound Not sure, but looks like is getting something wrong as exception object in handler, and die when calling his 'backtrace' method. 18:54
particle pmichaud: that's okay with me... you know what you're doing 18:55
pmichaud particle: I'll go ahead and set up the nqp stuff to be compiled and installed. Adding the original source can be almost purely a cage task, since it doesn't affect any of the other components at all. 18:59
particle pmichaud++
dukeleto is nqp-rx going into parrot core sometime soon? 19:01
pmichaud dukeleto: working on that right now.
dukeleto while(1){ pmichaud++ }
particle are you *trying* to crash purl?
pmichaud (crash purl)++ 19:02
NotFound mikehh: I don't see anything that may depend on optimizations or compiler.
darbelo purl: crash!
purl CRASH AND BURN!!!
NotFound purl: hcf
purl i think hcf is halt and catch fire or (: foldoc hcf) or en.wikipedia.org/wiki/Halt_and_Catch_Fire or an experimental parrot opcode
particle is bxand around anymore? 19:03
that was a fun one to write
darbelo purl: seen bxand? 19:04
purl I haven't seen 'bxand', darbelo
particle A and B but not both.
cotto_work foldoc hcf
darbelo particle: That's 0. 19:05
particle gives darbelo a cookie
i wrote it as an april fool's opcode some years ago
19:06 payload1 joined
darbelo is enlightened. 19:06
particle darbelo: have you ssh access to osuosl? 19:13
darbelo osuosl?
particle have you done a parrot release? 19:14
ssh -l <user_name> ftp-osl.osuosl.org
dalek p-rx: 7b4f3e7 | pmichaud++ | src/stage0/ (4 files):
More bootstrap file regeneration.
p-rx: 0b3c754 | pmichaud++ | (27 files):
Remove trailing spaces from a lot of files, to make Parrot happier.
darbelo Nopes.
particle if you have an ssh pubkey installed there, you should be able to login.
ok, thanks.
(trailing spaces)-- 19:15
19:18 darbelo joined
dalek rrot: r42451 | pmichaud++ | trunk (71 files):
[nqp-rx]: First part of adding nqp-rx to Parrot repo.

and fakecutable generation (coming next).
19:23
rrot: r42452 | pmichaud++ | trunk/ext/nqp-rx (62 files):
[nqp-rx]: svn property fixes for nqp-rx files.
19:27
nxed: r173 | julian.notfound++ | trunk/examples/parser.winxed:
nice backtrace in example parser
19:29
NotFound whiteknight: ping
darbelo Infinoid: ping 19:30
dalek rrot: r42453 | fperrad++ | trunk (3 files):
[pirc] fix build after merge pmc_headers_move
19:33
whiteknight NotFound: ping 19:38
er, pong
NotFound whiteknight: Was an exception backtrace what you were asking yesterday? This last winxed commit has one. 19:39
whiteknight yeah, that's what I wanted
Matrixy has a top-level exception handler that catches everything and outputs a standard error 19:40
and I want to include a backtrace for where that error came from
NotFound This must be easy to translate to pir.
Or just copy and adapt from the generated code. 19:41
whiteknight I am dismayed that there is not an easy way to do this from PIR 19:42
like an opcode or a method or something to handle it
19:42 mokurai joined
whiteknight I think we should have a "backtrace_string"() method on Exception 19:44
19:44 mikehh joined
NotFound whiteknight: that may need a way to tell how to format the namespace-class-sub thing. 19:45
whiteknight right 19:47
I'm thinking we may want a "Backtrace" PMC type that contains the information we want and stringifies nicely 19:48
pmichaud I think it should be a method on a Context PMC 19:49
whiteknight because the return value from Exception.'backtrace'() is a pretty weird collection of Arrays and Hashes
pmichaud: what should be?
pmichaud i.e., any Context should be able to give you its backtrace
whiteknight pmichaud: yes, that's a decent idea. I think Exception should have a method for it as well 19:50
if nothing else than a wrapper over the Context version
NotFound pmichaud: the backtrace method in exception just get it from the context
pmichaud well, an Exception can just delegate to the context that generated it
whiteknight exactly. But I should still be able to do e.'get_backtrace_string'()
pmichaud NotFound: right, I think that's what I said :)
NotFound pmichaud: on my client, I said first ;) 19:51
whiteknight really, my concern isn't so much about getting a backtrace as a nicely stringified version
Matrixy really wants a stringified backtrace from an exception
pmichaud HLL::Compiler will be providing a stringified backtrace for all of the compiler objects
especially since we typically don't want every (anonymous) Parrot sub listed in the backtrace 19:52
whiteknight pmichaud: currently supplies? Like I said, Matrixy wants it
pmichaud not supplying it yet -- still on my every-growing-todo list
whiteknight Just point me to the place where I can tap into it
pmichaud *ever
whiteknight ok
pmichaud Rakudo has one, though
I suspect it's a bit messier than we'd like
whiteknight there is a "backtrace" opcode. 19:53
pmichaud hmmm, I wonder if that's old or new backtraces
whiteknight I think a backtrace_p opcode that takes a Context or Exception and prints the backtrace would be nice
no idea
src/ops/debug.ops:backtrace
19:53 sothil joined
whiteknight Anyway, I really just need a way to find out where an exception was thrown from 19:53
dalek rrot: r42454 | fperrad++ | trunk/tools/dev/fetch_languages.pl:
[languages] add Kea (from ļæ½github.com/leto/kea)
19:54
NotFound I think there are two or even more backtrace printing functions... all wrong.
whiteknight great
I love to hear that
something that should be so fundamental is so hard and confusing
pmichaud we couldn't even do backtraces until jonathan++ added them earlier this year :-| 19:55
well, not controlled ones, at any rate
it was part of the annotations code
NotFound The current problem is that is very hard to try to fix when you can't have .pbc files with correct pir line numbers to test.
pmichaud NotFound: agreed fully. That's a recent change.
sothil wonders if there is a way someone with a "we-own-you" employment contract can help with parrot and perl6 development 19:56
pmichaud I just noticed it a month or so ago that pir line numbers had suddenly become much less useful.
NotFound Fortunately, annotations are right.
moritz sothil: you can still blog about Perl 6, write mailing lists summaries and so on
sothil i.e. something to do that does not involve writing code or other copyrightable stuff
whiteknight sothil: blogging, writing summaries, test reports, these are all very valuable 19:57
NotFound sothil: sending us barrels of beer, for example?
sothil which mailing lists could need summarizing? 19:59
whiteknight on second though, parrot-dev really isn't high traffic and doesn't need summaries
I don't know about any of the perl6 lists
moritz sothil: perl6-language 20:00
purl somebody said perl6-language was a perpetual motion machine, spinning, spinning, spinning, awaiting the heat death of the universe or the /dev/bollocks of the lists.perl.org world
moritz purl: no, perl6-language is <reply>
purl okay, moritz.
dukeleto sothil: blog posts are always helpful
sothil: you could summarize parrot commits
sothil: or HLL development
sothil: or parrot libraries being written 20:01
NotFound Or bad jokes on #parrot
dukeleto sothil: we could really use some of that
whiteknight ah yes, bad jokes are important
moritz see also the ParrotQuotes wiki page :-)
sothil is not a blogger, yet. but maybe that's a good reason to become one :)
dukeleto sothil: summarizing #parrot would probably be worthwhile. a lot of things are discussed in here that are not on parrot-dev 20:02
NotFound sothil: I recommend you to give posterous a try,
dukeleto sothil: you could just write email summaries if you want
dalek p-rx: 1bc1af6 | pmichaud++ | src/stage0/ (4 files):
Update bootstrap files with pod-valid forms.
p-rx: 1a8e0dc | pmichaud++ | src/ (4 files):
Clean up pod comments in source files.
NotFound Is a blog for non bloggers :)
dukeleto sothil: but putting things on planet.parrotcode.org/ gives us more public-facing interaction 20:03
20:04 payload joined
sothil ok. thanks for the suggestions so far. I'll look around and see what I feel up to 20:05
dukeleto sothil: always feel free to ask for help in here or on parrot-dev . your help is greatly appreciated
pmichaud svn status shows me a bunch of files from 'include/pmc' ... shouldn't those be svn:ignore somehow? 20:06
cotto_work yes 20:09
dalek rrot: r42455 | pmichaud++ | trunk (6 files):
[nqp-rx]: Add files into manifest, adjust codetests to exclude them.

in two of the files but podchecker reports them as 'ok'.
darbelo pmichaud: that's from bacek's branch. He uses git-svn so he ussually misses prop changes. 20:10
20:12 joeri left
pmichaud I think I'm going to leave it for someone else to fix. 20:14
20:14 mikehh joined
pmichaud oh, you meant the include/pmc files. 20:14
I can fix that.
20:15 bacek joined
dalek rrot: r42456 | pmichaud++ | trunk/include/pmc:
Set svn:ignore property on include/pmc subdirectory.
20:19
rrot: r42457 | pmichaud++ | trunk/ext/nqp-rx:
[nqp-rx]: Set svn:ignore property for nqp-rx files.
cotto_work btw, deleting destroy from packfiledirectory causes no new test failures, though there are other better failures that I didn't look for. 20:20
darbelo cotto_work: The PMC does't have the custom destroy flag set. that VTABLE is never called. 20:21
cotto_work *headdesk* 20:22
whiteknight that stupid flag 20:23
NotFound If that destroy gets called, surely will do domething nasty.
darbelo But it would probably do the wrong thing if it was. auto_attrs PMCs shouldn't play with their own attrs.
Killing now. 20:24
cotto_work darbelo, do it WITH FIRE
NotFound Or cannons.
darbelo CANNONS THAT SHOOT FIRE!
whiteknight Pmc2c should generate code to set that flag automatically if a custom destroy VTABLE is provided
the fact that it doesn't is obnoxious
cotto_work whiteknight, that sounds familiar. ;)
whiteknight that, and custom mark vtable 20:25
dukeleto yells FIRE in a crowded irc theater
darbelo whiteknight: That would break code all over. Add it to DEPRECATED.pod
cotto_work +a lot
whiteknight break code all over? I doubt it
PMCs with custom destroy vtables already manually set the flag
NotFound whiteknight: you'll be surprised.
dalek rrot: r42458 | pmichaud++ | trunk/MANIFEST.generated:
[nqp-rx]: Make sure regex and compiler libraries get installed.
20:26
whiteknight NotFound: then anything else is a bug
darbelo It would break decnum-pmcs and packfiledirectory, at least.
whiteknight darbelo: why would it break those?
NotFound whiteknight: maybe things have improved recently, but when working with auto_attrs I discovered PMCs doing a lot of weird things with flags and custom vtables.
darbelo decnumdynpmcs has its flag disabled until the order of destruction bug on dynpmc singletons is fixed. But i didn't remove the code. 20:27
whiteknight "a lot of weird things" is not the same as saying doing it right will break things
ah, now that is a bug too. the singleton order of destruction needs to be addressed 20:28
NotFound whiteknight: it doesn't say the contrary, though. And I see that.
darbelo If you set the flag automatically, you get a segfault during interpreter destruction.
whiteknight darbelo: so if we fixed the order-of-destruction bug, you'd support the change to Pmc2c?
darbelo And the uncalled VTBALE i'm removing from packfiledirectory would prbably break stuff too.
NotFound Yes, interpreter destruction needs some love.
whiteknight okay, I'll look at interp destruction tonight 20:29
darbelo whiteknight: Put in a deprecation notice. February'll come sooner than that fix ;)
NotFound And BTW exit need fixing. Or make it follow the docs, or change the docs.
whiteknight darbelo: what fix? the order-of-destruction one? 20:30
I could probably put together a workaround tonight
NotFound Fixing exit is required in order to know how to fix the related problems.
darbelo whiteknight: There's a *lot* of small fixes needed to not break the world. And I think it goes against the deprecation policy. You can't just 'turn the flag on' people *could* rely on it being manual. 20:32
bacek Good morning
darbelo You don't see the DarkPAN, but the DarkPAN sees you. 20:33
NotFound Master, is the Dark PAN stronger? 20:34
whiteknight darbelo: whatever, I'm not going to argue about it. I understand the "users don't want their software to get better" argument
cotto_work bacek, good morning 20:35
bacek morning cotto_work
darbelo We have a policy about that. I don't like it a whole lot. I mean, if it makes parrot better, *please* break my code, all over, twice a day. But that isn't what the policy says about changing the tool's behabiour. 20:36
cotto_work It'd be kinda nice if we could break everything all the time like ninjas, but having a deprecation policy makes life better for people who we expect will eventually want to use Parrot, even if only by getting us in the mindset of not deprecating stuff at random. 20:38
whiteknight Deprecation policy is nice in general. But it has flaws. The majority of Parrot is too immature and unstable to be making long term guarantees about it 20:39
Deprecation policy would have been far better if features were opt-in, instead of opt-out. Too many misfeatures got grandfathered in and now we're stuck with them 20:40
We would have been better off if we had an empty list and said "everything on this list is stable and reliable". Then, we can do triage and testing and start adding good things to the list 20:41
instead of everything going onto the list, and us having to fight to have bad things taken off it
bacek whiteknight, +1!
darbelo +Inf 20:42
cotto_work ponders 3*Inf
whiteknight We could even treat the test suite as an implicit list. "If a test for it exists and passes on all systems, it's a stable feature"
and then anything that isn't tested is expendable (because it probably doesn't work anyway)
darbelo +Inf^Inf 20:43
20:44 payload joined
bacek whiteknight, disagree. We have tests for some stupid things. Like OrderedHash bad semantics... 20:44
cotto_work allison, feel free to jump in here 20:45
whiteknight bacek: yes, and after a deprecation cycle those tests can be "fixed" and the underlying mechanisms upgraded, like we do now
we can't change the deprecation policy now, users have already been given a certain guarantee of stability and we can't just go back on that 20:46
but, if I discovered the secret to time travel, I might go back and make a few suggestions
20:47 magnachef joined
bacek Anyone with real svn checkout here? pmc_headers_move branch can be removed. 20:48
20:48 payload joined
whiteknight bacek: I'm on it 20:48
bacek Yay! nqp-rx!
20:48 bluescreen joined
dalek rrot: r42459 | whiteknight++ | branches/pmc_headers_move:
removing unneeded branch. bacek++
20:49
whiteknight done
dukeleto whiteknight: i like your idea of an opt-in deprecation policy
bacek whiteknight, thanks!
cotto_work whiteknight, you're right that we can't just say jklol about our previous deprecation policy, but having an explicit whitelist and blacklist would be quite nice.
whiteknight I was hoping that PARROT_API would turn into that kind of whitelist, but it never materialized 20:50
particle check out the stability.pod doc i wrote long ago
i argue we should be marking our subsystems with stability levels
and the deprecation policy is designed around those levels
whiteknight particle: that's basically the next level of my idea. But yes, something in that direction would be very nice 20:51
NotFound To be more satisfied when breaking highly stable ones? ;)
whiteknight because we still have a few systems that are complete and utter garbage
and a few that are reliable (if performance-stupid)
particle *cough* imcc *cough* 20:52
whiteknight exactly
GC, NCI, dynext, most pmcs, freeze/thaw, etc 20:53
NotFound stableandreliablethings = new 'ResizablePMCArray' | assign stableandreliablethings, 0
dukeleto particle: i like the idea of a stability level 20:54
whiteknight that's not true, there are some things that are very nice. IO is stable, but needs new features added for instance
NotFound I like the idea, but doubt about the implementation.
cotto_work That stability proposal would also be a great way to gauge the overall maturity of Parrot.
whiteknight PIR syntax is very stable, though the implementation of it's compiler is not 20:55
particle yes, gauging overall maturity is why i wrote it
whiteknight Even though we are coming up on "production ready" 2.0, I think we all should be honest with ourselves that much of Parrot is still very immature
NotFound whiteknight: I don't think so. We can annotate function start, we can put comments before params...
whiteknight and admitting that is the first step on the road to asolution
NotFound can't
particle two years ago, we didn't have any profiling tools, and code coverage was largely unmeasured 20:56
dukeleto particle: your stability.pod doc does not use the word "experimental" anywhere, which seems to be the current buzzword for things that we don't want to be under the dep policy
particle: should that be added to that doc?
particle that can be changed, or 'experimental' can be changed
the doc, as written, had been accepted by the project team
but, it's not been adopted as practice
so, i'm open for modifications
cotto_work particle, when was it hashed out? 20:57
NotFound dukeleto: I'm tempted to think that experimental means "Things that we don''t want, but let people play"
particle perhaps propose something to the list?
dukeleto particle: i think all we need to do is use 'unstable' instead of 'experimental' and the document is fine
particle yes, that's basically it
cotto_work: check svn log for a timeframe
dukeleto NotFound: a lot of stuff is marked experimental, like dynamic opcodes. we want them, but they are still experimental
darbelo adds the current deprecation policy to DEPRECATED.pod
whiteknight oh right, the concurrency system is on the garbage pile too 20:58
darbelo Holy shit! We have concurrency?
dukeleto NotFound: RTEMS support is experimental as well. doesn't mean we (parrot core devs) don't want it
cotto_work heh. not much discussion here: rt.perl.org/rt3/Ticket/Display.html?id=41317
NotFound dukeleto: Is RTEMS suport in some doc?
dukeleto NotFound: other than a recent email to parrot-dev? no. 20:59
NotFound: where should it go?
NotFound dukeleto: then is not 'experimental' in that sense.
dukeleto NotFound: i asked a few days ago and no one answered
darbelo dukeleto: Actually we don't "suppport" RTEMS. Like we don't support other OSes we run on.
dukeleto NotFound: it is 'experimental' in the spirit of what we mean by 'experimental'
whiteknight Win32, Linux, and OSX are all listed as "supported platforms"
dukeleto darbelo: thanks. I know. RTEMS is 'experimental', i.e. not officially supported. 21:00
whiteknight we do target parrot for those places
dukeleto I thought solaris was supported as well?
NotFound dukeleto: I think we were talking about things that are in DEPRECATED.pod marked as such.
dukeleto NotFound: well, just because I haven't added it there doesn't mean I won't ;)
whiteknight ah yes, solaris appears to be supported as well 21:01
NotFound dukeleto: fun, and then I add using parrot in a boat at the antarctic sea.
whiteknight do we have a definitive list of platforms we intend to support?
dalek rrot: r42460 | bacek++ | trunk/src/call/context.c:
Applying patch by doughera++ to avoid return void inapropriately. Closing TT#1266.
21:02
TT #1266 closed by bacek++: void function cannot return a value
particle NotFound: i'll be there in a few months
well, close anyway, i'm headed to tierra del fuego
NotFound particle: mmmm... that may need a deprecation notice ;) 21:03
darbelo particle: Let me know if you fly over Buenos Aires, I'll wave from the ground. 21:04
particle darbelo: i'll be there for three days 21:05
NotFound Flying to Tierra del fuego? Earth, Wind and Fire complete. 21:06
21:06 mikehh joined
particle jan 13-16 i'll be in BA 21:07
darbelo NotFound: Ushuaia is a port city, you can add Water to the list. 21:11
particle yes, we'll take a boat from ushuaia to an island full of penguins hatching chicks 21:12
21:12 payload joined
pmichaud r42461 -- Parrot now has nqp-rx. 21:13
darbelo pmichaud++
21:13 fperrad joined
bacek pmichaud++ 21:13
japhb pmichaud++ #W00t!
pmichaud, how closely are you going to keep the parrot copy up to date with the master repo?
pmichaud japhb: fairly closely for a while 21:14
japhb excellent
pmichaud if rakudo needs a nqp feature, then of course it'll go into parrot right away.
21:15 payload joined
pmichaud but in general any new nqp feature I add I'll copy over to parrot. Or someone else can feel free to do it. 21:15
japhb k
pmichaud Only the src/stage0/*.pir files need updating for now.
I don't have full source in the parrot repo yet -- that looks like it needs a branch to work out all of the code style/copyright issues.
dalek rrot: r42461 | pmichaud++ | trunk (3 files):
[nqp-rx]: Change "make" and "make install" to build parrot-nqp (new)
dukeleto particle: are you going to Joshiua? isn't that the closest town to Tierra del Fuego?
japhb Wait, we went back to calling it 'parrot-nqp' again? 21:16
dukeleto ushuaia, that is it
pmichaud japhb: yes, I made a command decision (more)
I think that parrot commands should use hyphens instead of underscores, like most unix tools do.
I also think that we should leave open the possibility to distinguish "parrot-nqp" and "nqp" (more)
"parrot-nqp" is the one that comes with parrot. 21:17
dukeleto pmichaud: oh noes, we are calling it parrot-nqp instead of nqp now?
pmichaud "nqp" might be the newer version you install yourself.
dukeleto pmichaud: ah, good
japhb oh, interesting
21:17 payload joined
pmichaud so NQP's build tools still create "nqp" as the executable. 21:17
NotFound You can call it "nqnqp"
pmichaud NotFound: +1 # heh 21:18
parrot's build environment creates parrot-nqp as the executable.
if it ends up being too confusing for folks, we can still change it between now and January. But I feel like this has the greatest likelihood of working out in the long run.
japhb OK, I think I'll be doing a Plumage README update then. ;-) 21:20
moritz pmichaud: mind if I change the ng branch to use the nqp from parrot?
21:21 Austin joined
Austin mmm...segmentation faults.. 21:21
21:22 mikehh joined
ttbot Parrot trunk/ r42461 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/141178.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 21:22
darbelo Austin: help yourself, we have plenty for everyone.
Infinoid darbelo: pong
Austin Darbelo: Thanks, but I've got enough right here...
darbelo Infinoid: I pinged you?
pmichaud moritz: I was working on that now, but you're welcome to do it :)
Infinoid I think so
pmichaud I have to leave in 5 mins anyway to pick up other kid 21:23
darbelo Wait, oh yeah. I did.
Infinoid darbelo: 2 hours ago :)
Infinoid <-- slow
moritz pmichaud: simply changing one line Makefile.in and bumping PARROT_REVISION work for me - did I miss anything more intricate?
pmichaud that's all it should take :)
Austin Wow. Is 'a' a reserved word? 21:24
pmichaud moritz: I started by completely clearing out my parrot and nqp directories, doing a fresh checkout and rebuild :)
just because I have a lot of things lying about at the moment.
moritz pushed
darbelo Infinoid: Did you see the merge request for dalek-plugins?
moritz pmichaud: then I was in pole position ;-)
pmichaud moritz++ # it's always nice when people are ahead of me 21:25
darbelo It's for tracking a rakudo branch, It looks sane to me, but I can't test here.
pmichaud Infinoid: we'd like to have dalek report commits to the "ng" branch of Rakudo 21:26
moritz tried hard to stay sane ;-)
pmichaud (as well as master)
Austin Hmm. Are attributes buggy in 1.7? 21:29
pmichaud nafaik
Austin Bummer.
pmichaud probably depends on the kind of buggy you're looking for :) 21:30
Austin segmentation fault, core dumped.
pmichaud afk, more pickups
Austin (In the gc, because it's always in the gc.)
Aha. My segfault was caused by not having a debugging "say" inserted just before the test. 21:41
Now that the "say" is inserted, the segfault is gone. Problem solved!
Austin++
21:42 bacek joined
darbelo Austin: Can you create a, shot-ish, pure pir example of that segfault? 21:42
Austin Darbelo: No.
darbelo Aww.
What are you using to cause it. 21:43
NQP, Close?
Austin I've got dynamic loading, mechanical code generation, method replacement, type-based dispatch, and it's a heisenbug. So I doubt this one will have a simple explanation. :( 21:44
It's in NQP.
But, on the plus side, all I need to do is maintain the right balance between diagnostic output and functionality, and the problem stays hidden. :) 21:45
darbelo Can you give steps to reproduce? 21:46
dalek rrot-plumage: f50ea0e | japhb++ | :
[PROBES] nqp -> parrot-nqp
rrot-plumage: 2588cfa | japhb++ | :
[TESTS] nqp -> parrot-nqp
rrot-plumage: cb4539d | japhb++ | :
[BUILD] nqp -> parrot-nqp
rrot-plumage: 1bf2f37 | japhb++ | :
[plumage] nqp -> parrot-nqp
rrot-plumage: 7660dde | japhb++ | :
[META] README: nqp -> parrot-nqp; remove related discussion
Austin Let me see. 21:47
dalek kapo: a62a1aa | austin++ | :
Moved most of the opcode-like functions out of Parrot.nqp into Parrot/Op...
21:49
kapo: 829b9f9 | austin++ | :
Removed ManagedQueue.nqp, replaced it with DependencyQueue.nqp.
kapo: f3e8e17 | austin++ | :
Got Undef working, w/ test-undef make target.
21:50
kapo: 6e0389e | austin++ | :
Got pmc tests working again.
kapo: 3506ba2 | austin++ | :
Updated a bunch of Matchers to get tests working for various PMC types.
kapo: 023db11 | austin++ | :
Checking in a bunch of non-working stuff to see if someone else can repr...
Austin Darbelo: I just committed the bunch to kakapo/master (git://gitorious.org/kakapo/kakapo.git). If you can "make test-attributes" to run, that's where the problem happens. 21:51
dalek rrot: r42462 | darbelo++ | trunk/compilers (3 files):
Add ARGIN() macros to parameters, ASSERT_ARGS() and headerize in IMCC's constant pmc creation code.
21:52
darbelo Austin: ok, and you are using the 1.7 release. Right? 21:56
Austin Laugh! 21:57
cotto_work hah?
purl hah is reply
darbelo hah?
purl somebody said hah was reply
Austin I just did Tortoise SVN "check for updates" on the context (right-click) menu from $_parrot, and it told me about SVN updates.
japhb that seems like something that does not belong on a right click menu .... 21:58
Austin I kind of agree.
darbelo japhb: He's on windows. Nothig is where it belongs.
Austin I'm at 41964 21:59
Which is I think is the revision either right before or right after the copy from trunk -> tag.
darbelo Okay. 22:00
ttbot Parrot trunk/ r42462 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/141258.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 22:01
dalek rrot: r42463 | darbelo++ | trunk/src/pmc/packfiledirectory.pmc:
Remove an unneeded and unused destroy() VTABLE.
22:02
darbelo WTF? How did r42462 break the build? 22:05
That commit goes nowhere near pbc_to_exe 22:06
cotto_work the build from svn head looks fine to me, darbelo 22:07
darbelo cotto_work: Tell it to ttbot. He's the one squaking. 22:08
Austin: I have a message from BSD make for you: 22:09
Using $< in a non-suffix rule context is a GNUmake idiom (line 218 of Makefile)
BSD make objects to GNU idioms, apparently.
Austin Actually, that's not a gnu make idiom - I used to use it in Sun make all the time.
But I'll change it.
ttbot Parrot trunk/ r42463 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/141296.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 22:10
Austin And I've got a message for the BSD make developers, but I'll deliver it myself...
darbelo Austin: They're not going to listen. Trust me.
Austin :) 22:11
Can you fix it, or do you need a patch?
darbelo I can fix it.
nopaste "Austin" at 98.235.55.43 pasted "makefile fix" (6 lines) at nopaste.snit.ch/18658
darbelo Oh, and BSD make also dislikes it when you put a tab before a #comment
Austin <expletive deleted> 22:12
japhb darbelo, was that $< message you posted actually the verbatim error? 'Cause that's ... wow.
darbelo japhb: Yep, pasted right from the xterm. 22:13
Austin If I can't put a comment after a tab, how do I comment my make scripts?
darbelo Just the line about "Using $< in ..."
japhb "You did something completely reasonable. But we're all pissy about a decade(s)-old grudge, so nya-nya we won't let you do it."
darbelo "This make never supported what you are trying to do. What you are doing is worse than wrong, it's GNU." 22:15
particle in order for makefile comments to be 'portable', they must start at column 1
that is, the comment char must be at column 1
Austin Yeah, but this isn't a makefile comment. It's a recipe comment. 22:16
darbelo Austin: Nopes, I mean the makefile comment.
Austin :)
darbelo line 106 of the generated makefile. 22:17
Austin I think I know what you mean - some list items commented out.
darbelo 108 and 109 too.
Austin: Yes, those.
NotFound Exercise proposal: write a grammar for portable makefiles. 22:18
Austin That's what I get for encountering the segfault before I finished changing the code..
dalek rrot: r42464 | jonathan++ | trunk/tools/dev/pbc_to_exe.pir:
[pbc_to_exe] Fix generation of rc file when filename contains hyphens.
allison (catching backscroll) cotto is absolutely right, the point of a deprecation policy is to make developers think about what they're taking away from users, and do it more carefully. 22:19
darbelo MSVC deserves to die.
jonathan++
particle what's wrong with msvc?
oh, i thought you meant nmake. 22:20
NotFound particle: the oprating system
japhb NotFound: as in "Only passes parse if the makefile uses only the intersection of supported features from all makes" or as in "Only passes parse if no make will actively error or do the wrong thing given this makefile"?
particle find me another compiler that has strict C89 warnings and errors.
gcc sure doesn't
NotFound japhb: more points for more restrictive definition. 22:21
japhb The world wouldn't need strict C89 warnings and errors if not for MSVC.
darbelo particle: SUN cc
But what japhb said still applies.
particle darbelo: right you are! that's a beast.
22:21 KatrinaTheLamia joined
japhb is tempted to see if his copy of Lions' Commentary says anything about make ... 22:23
cotto_work allison, do you see any potential in gradually moving to a whitelist approach for deprecation?
allison cotto: we are gradually 22:24
that is, the extend/embed API currently defines the functions subject to deprecation
and we will move to a PARROT_API marker 22:25
dalek rrot: r42465 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
[distutils] nqp-rx is now installed as parrot-nqp
22:25 KatrinaTheLamia joined
allison but (addressing whiteknight's commend), we really had to grandfather in the whole system, because we had no way of knowing what people might be relying on 22:25
darbelo Austin: make: don't know how to make src/krt0.pir. Stop in /home/darbelo/parrot/kakapo. 22:26
Austin It's the little things that get me.
nopaste "Austin" at 98.235.55.43 pasted "krt0.pir" (56 lines) at nopaste.snit.ch/18659 22:27
"darbelo" at 190.192.220.13 pasted "Austin make test-attributes on parrot HEAD" (18 lines) at nopaste.snit.ch/18660 22:29
Austin Okay, so I get the segfault and you don't.
Nyah nyah. I'm special-er. 22:30
darbelo on HEAD, I'll try the rev you are on next.
Austin :)
dalek kapo: 161501f | austin++ | :
Fixed up Makefile.in, moved krt0.pir to krt0_pir.tmpl. (Darbelo++)
22:34
22:35 Whiteknight joined
dalek rrot-plumage: f854bec | japhb++ | :
[CORE] as_array() -> []; other nqp-rx fixes
22:36
Austin Howdy, Whiteknight!
rrot-plumage: 07ea46f | japhb++ | :
[CORE] Remove no longer useful as_array() function
Whiteknight hello Austin 22:37
Austin It's segfault day for me, apparently.
(Also sushi day, so I'm afk for a bit.) 22:38
dalek rrot: r42466 | NotFound++ | trunk/config/gen/call_list/misc.in:
[nci] add some signatures under petition from Vadim Konovalov for TclLibrary
p-rx: b7ce35e | duff++ | (4 files):
[nqp] Added postfix conditional statement modifiers (if/unless)
22:39
nopaste "darbelo" at 190.192.220.13 pasted "Austin: Missed a spot ;)" (18 lines) at nopaste.snit.ch/18661
22:39 payload joined
nopaste "darbelo" at 190.192.220.13 pasted "Austin: You win!" (8 lines) at nopaste.snit.ch/18662 22:40
Austin W00t! I win!
(What do I win?)
A new car? 22:41
darbelo A segfault!
purl it has been said that a segfault is xkcd.com/371/
Austin A million dollars?
purl a million dollars is actually on the low side of funding
darbelo A million segfaults!
Austin A segfault?
purl a segfault is xkcd.com/371/
Austin Hell, I already got one of those.
dalek rrot: r42467 | fperrad++ | trunk/NEWS:
[NEWS] Math/Random/mt19937ar.pir left the nest
cotto_work This one's lemon-scented. 22:42
darbelo But it's fixed on HEAD, consider it a tax return on next release. ;)
Austin So upgrading to HEAD will make it go away, eh?
Whiteknight We tend to do sushi day on Mondays. The place down the streed has half priced sushi on mondays
Austin WhiteKnight: yum! Half-priced sushi!
(There's a warning in there someplace, but we've got a place over here that does the same thing.)
Thanks, darbelo.
Darbelo++
Whiteknight and I'll be damned if I'm going to pay full price for something that's not even cooked 22:43
Austin :)
"That's not dinner. That's bait!"
(Terry Bradshaw)
treed heh
Austin Okay, I'm out.
treed Whiteknight: You just highlighted me with your typo. :-P
22:43 payload joined 22:46 kiwichris joined
darbelo purl: msg Austin There's a release coming relatively soon. I suggest you hide the bug 'till the next tax payment. 22:46
purl Message for austin stored.
22:47 joeri joined
Whiteknight treed: sorry! 22:59
I'll be more careful with my typos :)
nopaste "darbelo" at 190.192.220.13 pasted "Interesting 1.7 backtrace" (95 lines) at nopaste.snit.ch/18663 23:00
darbelo Whiteknight: nopaste.snit.ch/18663 should prove interesting. Look at where it segfaults.
treed Whiteknight: :-P 23:01
Whiteknight darbelo: that is a doozie
darbelo It doesn't happen on HEAD, but I'm not convinced that means the bug is fixed.
I can't recall any changes to compact_pool or relatives since 1.7 23:02
Whiteknight darbelo: How to reproduce it? 23:03
or, how did you make it? 23:04
23:04 chromatic joined
darbelo make install-dev a -r41964 parrot; then fetch Austin's kakapo and run "perl Configure.pl; make test-attributes" 23:05
Whiteknight is there any kind of standard explanation for what the various "provides ..." statements in PMC files are? 23:08
GeJ Good morning everyone.
cotto_work hi GeJ
Whiteknight does "provides array" require a specific interface? Can I provides new things that I just made up?
hello GeJ
cotto_work knowing pmc2c, you can msu 23:09
msu?
purl msu is kicking tenn's butt!
darbelo Whiteknight: That sounds not entirely unlike 'does'
cotto_work no, msu is make something up
purl okay, cotto_work.
Whiteknight I think it is "does"
chromatic They're aliases we never removed when we refactored the PMC generators for new-style PMCs. 23:10
darbelo Do they serve any particular purpose or are just sitting there, waiting for the axe that will remove them. 23:11
nopaste "cotto_work" at 131.107.0.74 pasted "nothing breaks with this patch" (13 lines) at nopaste.snit.ch/18664 23:12
chromatic Let's axe one of them.
GeJ minor question about the nqp-rx merge : shouldn't it be named parrot_nqp (instead of parrot-nqp) to match parrot_config and parrot_debugger. Also `make realclean` doesn't remove parrot-nqp* properly (I have a patch for this).
cotto_work GeJ, pmichaud addressed that earlier. 23:13
GeJ heya cotto_work, Whiteknight, @all
Whiteknight chromatic: so then how do I specify a role that my PMC type does? 23:14
chromatic 'does'
Whiteknight so it would be "pmclass NumMatrix2D does matrix"? 23:15
GeJ cotto_work: Ah, ok. My mistake then. sorry for the noise.
Whiteknight because I don't see a lot of instances of "does" in src/pmc/*
cotto_work GeJ, irclog.perlgeek.de/parrot/2009-11-12#i_1722527 23:16
Whiteknight it looks to me from the code I'm reading that "provides" in the .pmc files is just a way to specify a role. 23:17
chromatic Yes.
Whiteknight so FixedPMCArray provides array, and then in PIR "does 'array'" is true
chromatic Everything a PMC 'provides' or 'does' in the .pmc file gets in the provides_str member of its vtable. 23:18
allison whiteknight: provides is the old features strings 'array' 'hash' etc 23:20
whiteknight: does is specifically for roles 23:21
Whiteknight allison: okay, so I should use "does" in my PMCs, and it will do the right thing?
allison yes, you can ignore provides
Whiteknight okay
and we should update "provides" in the repo to be "does"? 23:22
darbelo Can we deprecate provides then?
allison whiteknight: provides used to be called 'does'
whiteknight: we changed the name so we could use 'does' for roles
23:23 plobsing joined
allison darbelo: deprecating provides is a possibility, though roles aren't really a replacement (since roles only apply at the PIR-level, not at the C-level) 23:25
23:25 Whiteknight joined
chromatic We're only talking about collapsing two synonyms for (almost unused) syntax into one. 23:25
darbelo cotto_work: You are going to love this... 23:26
allison if we did deprecate provides, it would be in favor of treating the C-level "behavior tags" as roles
nopaste "darbelo" at 190.192.220.13 pasted "Passes all tests; pmc2c--" (13 lines) at nopaste.snit.ch/18665
allison (though very limited roles that don't provide any state or methods)
darbelo++ (eats kittens) 23:27
pmc2c-- (eats kittens)
cotto_work Having worked with pmc2c, I'm too cynical to be surprised. 23:29
dalek kapo: fd221b4 | austin++ | :
Fixed up Makefile.in for BSD silence.
23:30
23:39 kid51 joined
Whiteknight Can I mark a string as being constant? 23:42
(it's a case where I'm managing the buffer storage manually, so I don't want nobody to mess with it)
darbelo Whiteknight: I know there's code in parrot that does something like that, but I don't think it works in general. 23:43
Whiteknight hmmm 23:44
darbelo You could try marking it COW.
Whiteknight Yeah, that's what I'm thinking will need to happen: create a COW copy and return the copy only. Trash the original
chromatic There's a flag you pass in when you create a string when you pass in a buffer. It's something something external something. 23:45
darbelo I think I remember something like that going on in Parrot_io_read_buffer() or another function in that file. 23:48
chromatic: PObj_external_FLAG ? 23:56
chromatic That might be it. I thought it was string-specific.