#parrot Parrot 2.1.1 Released! | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Tasks: PCC deprecations hackathon on Saturday, TT #389 branch
Set by moderator on 5 March 2010.
dalek rrot: r44781 | allison++ | branches/pcc_hackathon_6Mar10 (2 files):
[pcc] Removed two deprecated and unused functions for setting return arguments
00:01
allison chromatic: oooh, no that's bad
chromatic: it's setting it to null right after fetching the *arguments*, which means it's gone once you get to the return 00:02
chromatic Yep.
allison a throw-back to a bygone era where calls and returns were different 00:03
chromatic It looked suspicious.
allison and worked when we were doing the funny pointer saving trick
chromatic Removing it gives different errors. Are they better errors? 00:04
Whiteknight different is always better
allison we probably need to add code to null out the signature in get_results and equivalent 00:05
now that those are the final step of the call sequence
00:07 tetragon joined
lucian Austin: padre on os x is quite bad 00:08
Austin lucian: Really?
Is it a gui thing, or is there more?
lucian Austin: they do say it's experimental
Whiteknight I havent used padre in a while. probably time to upgrade
lucian Austin: quite a few GUI things are broken 00:09
the text rendering isn't very good, but that's a known wx bug
Austin whiteknight: I took a look a few weeks back, and decided it wasn't time yet -- still no multi-window support.
Whiteknight what I care about most is C syntax highlighting
lucian heh, the font chooser dialog appears for 0.1sec and then dissapears 00:10
Austin C?
purl C is for cookie, and it's good enough for you. or chromatic
dalek kudo: 3cc313f | jonathan++ | src/Perl6/Module/Locator.pm:
Include alternative versions of modules in the candidate list too.
kudo: 8b2fb24 | jonathan++ | build/PARROT_REVISION:
Bump PARROT_REVISION to get readdir that works on Win32.
kudo: aa8c65e | jonathan++ | (5 files):
Identify version and authority properly for each module in the candidate list. Choosing latest if multiple versions are found now appears to work (though requesting specific version/authority is NYI).
Austin Geez, dude. What kind of luser still codes in C? Haven't you heard of dynamic languages?
lucian padre is a bit too young for me, i'll stick to vim
Whiteknight how do I tell cpan to "yes, always install prerequisites"? 00:11
Austin --dwiw ?
lucian Austin: editra is mostly the python counterpart to padre
allison chromatic: did you check in the removal of the stray sig nullification? 00:12
Coke Whiteknight: o conf mumble de mumble
o conf prerequisites_policy follow
(while in CPAN shell)
Coke tries padre on os x; certainly easier to install than the windows version. =-) 00:16
er, sorry, than the cpan version. 00:17
Whiteknight padre failed mak on my system 00:18
so that answers my question
chromatic allison, I didn't. Should I?
GeJ Good morning everyone 00:19
00:19 Maddingu1 joined
Coke hurm. no build troubles for rakudo on osx. 00:20
allison chromatic: it's the right fix, so go ahead 00:24
chromatic: whatever error comes after we'll tackle next
chromatic kablammo
Whiteknight how do I get the GTK+ development files? 00:28
chromatic too many positional arguments: 2 passed, 1 expected
current instr.: 'parrot;P6metaclass;register' pc 576 (runtime/parrot/library/P6object.pir:425)
Does the CallSignature need reset somehow? 00:29
... that'd be morph. 00:33
dalek rrot: r44782 | chromatic++ | branches/pcc_hackathon_6Mar10/lib/Parrot/Pmc2c/PCCMETHOD.pm:
[lib] Removed CallSignature NULLing at the start of PCCMETHODs, as reusing the
00:34
rrot: r44783 | allison++ | branches/pcc_hackathon_6Mar10/src/call/args.c:
[pcc] Remove unused static function to set a default return value (returns now
allison chromatic: the morph happens in Parrot_pcc_build_call_* 00:36
Coke wonders if everyone that is working on rakudo has a quad core machine with 16G of memory. 00:37
allison chromatic: but the morph should only happen between call and return
chromatic Parrot_pcc_build_call_from_varargs seems to do it.
allison chromatic: between separate calls, the call_sig should be nulled
chromatic: aye 00:38
chromatic Looks like that morph is happening anyway.
allison the morph will happen anytime an active call sig is passed into Parrot_pcc_build_call_* 00:39
it's safe to reuse the same call sig pmc between calls
but the spec says different call sigs
dalek tracwiki: v24 | allison++ | CallingConventionsTasklist
tracwiki: trac.parrot.org/parrot/wiki/Calling...ction=diff
allison hmmm... looks to me like the call sig isn't getting nulled between calls 00:40
chromatic Maybe morph is missing something. 00:41
allison chromatic: morph only nulls the signature elements, nothing else 00:46
chromatic: because between call and return that's all that changes
chromatic: the set_args op ignores the current value of the current call sig, just creates a new one and stuffs it into place 00:49
so, that's okay
some other call path might not be doing the same
chromatic num_positionals is 2. 00:52
allison chromatic: aye, and I'm sure if you look into it, the first one will be from a previous call or return 00:53
with the expected arg for the current call pushed on after the old arg
we could get around all this if we didn't recycle callcontexts for return signatures 00:54
but, I'd rather avoid thrashing the GC with double the number of PMCs for every call
chromatic Wild thought. 00:55
Pushing the invocant at the start?
dalek tracwiki: v25 | allison++ | CallingConventionsTasklist 00:56
tracwiki: trac.parrot.org/parrot/wiki/Calling...ction=diff
allison chromatic: okay, Parrot_pcc_build_sig_object_from_varargs doesn't do the morph trick, is anything still calling that?
one call in src/call/pcc.c 00:57
from Parrot_PCCINVOKE
chromatic Here's your problem. 00:58
allison and a couple of calls to that from src/pmc/role.c
yah? 00:59
purl yah is at a point of agreement almost
chromatic Returning from a method means you don't unshift the invocant.
Whiteknight hates the cpan client. It's always painful
allison chromatic: ? 01:00
chromatic: the invocant should be stored as one of the regular args, and so nulled out when the rest of the sig storage is nulled 01:01
chromatic: that is, interp->current_object is nulled as soon as the sig is created, so it's not around later
nopaste "chromatic" at 173.50.130.127 pasted "-t" (30 lines) at nopaste.snit.ch/19885
"chromatic" at 173.50.130.127 pasted "Don't unshift the invocant when reusing a CallContext" (30 lines) at nopaste.snit.ch/19886 01:02
01:03 abqar joined
allison chromatic: ensuring that the invocant is only added on call signatures, not on return signatures? 01:03
chromatic: that's a reasonable fix for now
chromatic I can do better.
allison eventually would like interp->current_object to go away 01:04
and use the Pi signature everywhere
chromatic In theory, we can null it out in returns from PCCMETHODs. 01:05
allison we can null it as soon as fill_params happens 01:06
really, we can null it as soon as the call sig is created
(on the argument side, long before the returns) 01:07
nopaste "chromatic" at 173.50.130.127 pasted "Empty it in PCCMETHOD returns" (12 lines) at nopaste.snit.ch/19887
allison chromatic: does that fix the bug? 01:08
chromatic Checking.
Seems to. 01:09
allison cool 01:10
chromatic Looks like positional parameter arity checking is way too strict for returns now.
Coke does "make -n install" in a perl5 checkout and is hella confused.
01:10 abqar joined
allison chromatic: as in, it's not silently ignoring extra return arguments? 01:11
Austin Hmm... does this mean I can do named returns, now?
allison Austin: aye
Austin: anything that's supported in a call is supported in a return now
Austin Nicholas Wirth's head just exploded.
chromatic As in "I'm returning an empty list, but the caller wants to bind four values".
allison Austin: (it's just the same code)
chromatic: well, shouldn't that be an error? 01:12
chromatic Try to build pbc_to_exe.
allison chromatic: return params can be marked as :optional
chromatic see tools/dev/pbc_to_exe.pir line 35 01:13
allison looking...
chromatic Then lines 153 and 162.
allison yah, good example 01:15
chromatic I can't argue that should be an error. 01:16
allison chromatic: calls and returns aren't spec'd to behave differently here
chromatic: (reread the PDD to be sure) 01:17
chromatic: it's a bug in the implementation that crept in because they weren't following the same code path
chromatic: we can either declare it a bug that's now fixed, or declare it a feature that requires a deprecation cycle 01:18
chromatic: does tagging the returns with :optional work? 01:19
chromatic It gets past that bug anyhow. 01:20
allison well, that's the sensible thing, since return signatures are parameters 01:21
chromatic I'm going to have to convince myself I like that behavior. 01:22
allison long-term, I don't want any code differences between calls and returns (too much chance for maintenance errors)
but in the short term I'm open to saying this is a feature that requires deprecation 01:23
maybe ask the HLL devs if they were depending on it?
it boils down to being very explicit at the VM level, so HLLs have the flexibility to choose their behavio 01:24
chromatic We should do that, but we also need to consider how we work around it if we decide to keep it temporarily.
allison chromatic: two code paths
chromatic: there's not really any other way to do it
okay, we could hack up the fill_params code for it 01:25
but, that just makes it harder to remove after 2.3
and since we're talking about 1 month of deprecation... not worth the hack
chromatic This means a lot of potential fixups. 01:27
allison chromatic: in outside code? 01:35
chromatic: potentially
chromatic Potentially yes. 01:36
allison chromatic: a quick hack would be to modify IMCC to mark all return signatures as :optional for now
Whiteknight are we really silently treating all returns as optional now?
even with error checking on? 01:37
allison apparently
chromatic Yes.
allison though... I wonder
Whiteknight better question: were we doing this before the last PCC refactor?
chromatic I believe so.
Austin ++ # Another passing testcase.
Whiteknight ok
allison did pbc_to_exe have return checking turned off?
Whiteknight I don't even remember when pbc_to_exe was converted to PIR 01:38
allison because one problem I do know currently is that the param filling code doesn't check the interpreter attribute for whether to flag return count mismatches
it only checks the attribute for parameter mismatches 01:39
Austin ++ # Another passing testcase.
allison chromatic: if it was a bug introduced in the last refactor, we're safe to just call it "fixed" 01:40
chromatic particle and I converted pbc_to_exe to PIR a couple of years ago.
allison that particular call could be a later addition, though
chromatic git annotate says that Francois last touched it last July. 01:42
allison then it's been around a while 01:43
Coke as long as you're fixing things, are you going to make no-param subs strict?
Whiteknight that would be nice
allison Coke: strict how?
Coke (wozzit, RT#39844?)
Whiteknight allison: subs with no params dont check arity
Coke aka trac.parrot.org/parrot/ticket/1033 01:44
Whiteknight I think it was a hack to allow :main to be declared with no params
Coke it's very very old.
and is also causing issues for rakudo: 01:45
rt.perl.org/rt3/Ticket/Display.html?id=56366
allison Coke: I thought that was fixed in the previous refactor
Coke: I guess not if it's still affecting Rakudo
Coke never been fixed.
SFAIK>
Coke checks the test.
allison heh, I like the simple patch that deletes the code in IMCC to hack around parameter checking... 01:46
Austin ++ # Another passing testcase.
Coke pir_error_output_like( <<'CODE', <<'OUTPUT', "arg mismatch with no params", todo=> 'TT #1033' );
I have no problem with a fix that either forces :main to have the required .param decl, or that makes :main special and allows it to ignore argv. 01:47
allison if we are making a special case for subs marked :main, it should only apply to subs marked :main
Whiteknight +1 01:48
purl 1
Coke allison: I don't think anyone knows for sure why it is that way now. the :main thing is just the mostly like "what were they thinking"
Austin What about subs that get treated as main because they're first in line, and there is no :main
Coke that's the same as :main. =-)
allison (and subs that happen to get the "main" quality by simple virtue of being first don't get the same treatment
chromatic :main is because arity checking the command line invocation is a real son of a gun.
Coke chromatic: not if you force :main to be :slurpy 01:49
(which is the only sane approach)
Whiteknight chromatic: that shouldn't matter if a :main only takes a single string array
or, do we do more processing on argv than that?
allison well, someone might want to, but if they do they can declare their own parameter signature
Whiteknight okay, I'm off to bed. Goodnight 01:50
allison at the point of that hack in IMCC, we have the sub object and can check if it was flagged :main 01:51
Austin Whiteknight:
Coke allison: ISTR that there was some reason why I couldn't get that to work. If you can, go for it. =-)
allison okay, if people in the US are going to bed, that tells me I'm up way too late :)
Austin I'm about to commit the Cuckoo stuff. Mocking finally works.
Coke it's only 9pm eastenr
allison Coke: yah, not in this refactor, but will look into it
Coke Austin, I've been able to mock you for some time. Code doesn't help. 01:52
allison Coke: mainly just hoping to merge this in quickly, so want to limit the scope
Austin Sure, Coke, but could you arbitrarily mock anything else?
chromatic is done for the night here, needing to work on other things 01:53
Austin my $proto := cuckoo( Some::Class ); my $obj := $proto.new ; calling( $obj ).foo( 1 ).will_return( 7 ); $obj.foo( 1 ); verify( $obj, :never ).foo( 2 );
And: verify( $proto ).new.was_called: :once; 01:54
allison chromatic: thanks for the debugging work! 01:57
chromatic: I'll look into it further tomorrow
chromatic: did you commit that one last fix to null out the current_object before filling returns? 01:59
chromatic Pushing everything now. 02:02
02:04 adu joined
allison chromatic: cool, it gets a lot farther in PGE, thanks! 02:10
dalek rrot: r44784 | chromatic++ | branches/pcc_hackathon_6Mar10/lib/Parrot/Pmc2c/PCCMETHOD.pm:
[lib] Made PCCMETHODs clear their invocant before returning, so as to avoid
02:12
rrot: r44785 | chromatic++ | branches/pcc_hackathon_6Mar10/tools/dev/pbc_to_exe.pir:
[tools] Fixed up pbc_to_exe to meet return positional strictness checks.
rrot: r44786 | cotto++ | branches/ops_pct/compilers/opsc (2 files):
[opsc] fix ops2c.nqp, fix an incorrect comment
02:28
02:39 JimmyZ joined
Coke lhf? 02:40
purl i guess lhf is Low Hanging Fruit
Coke purl+-
03:00 AndyA joined
cotto seen bacek 03:03
purl bacek was last seen on #parrot 7 hours, 1 minutes and 8 seconds ago, saying: Coke, it was actually in klingon
cotto clock?
purl cotto: LAX: Mon 7:03pm PST / CHI: Mon 9:03pm CST / NYC: Mon 10:03pm EST / LON: Tue 3:03am GMT / BER: Tue 4:03am CET / IND: Tue 8:33am IST / TOK: Tue 12:03pm JST / SYD: Tue 2:03pm EST /
bacek_at_work cotto, pong 03:05
cotto do you know what's broken atm in opsc? 03:07
I was just about to start looking, but I figured you might have an idea.
bacek_at_work something. I updated it this morning. Still fails epically on PGE compilation.
cotto but hello world works, which is nice
bacek_at_work I suspect some of "goto" rewrites
cotto I'll look over those very carefully. 03:08
bacek_at_work check "PC + n" gotos.
It fails with assertion when pc == 1
cotto will do that 03:09
It'd help if I tried to debug ops2c.nqp with a non-bootstrapped parrot 03:14
dalek rrot: r44787 | cotto++ | branches/ops_pct/MANIFEST:
[opsc] manifest update
03:17
03:35 janus joined
dalek kudo: b093791 | (Solomon Foster)++ | t/spectest.data:
Turn on S04-statements/for.t.
03:36
kudo: 0162536 | (Solomon Foster)++ | t/spectest.data:
Add test file S03-operators/comparison-simple.t.
04:01 tony joined 04:06 ewilhelm joined
ewilhelm hey all, who's up for summer of code? 04:07
Coke ewilhelm: see dukeleto. 04:08
dukeleto i have ewilhem hostage and we are working on gsoc stuff 04:09
who wants to be a mentor?
cotto dukeleto, is PaFo registered?
04:10 tuxdna joined, zostay joined
dukeleto cotto: i am working on the app now. we need a gsoc projects page. i am working on that now 04:16
i have whiteknight's blog posts as a starting point, if anybody else has ideas, let me konw 04:18
know, even
ewilhelm cotto: we're proposing TPF as an org. Is there anybody who wants to head-up PaFo as its own entity for GSoC? 04:32
cotto sounds like a good #ps question. What's involved? 04:34
ewilhelm cotto: socghop.appspot.com/document/show/g...#org_apply 04:40
it would need somebody to be administrator for the org, so they would need to go through that process, round up some mentors, students, then herd cats throughout the summer 04:42
or parrot projects can feel free to ride with perlfoundation 04:43
dukeleto parrot is riding with TPF this year. But that is something to think about for next year 04:44
ewilhelm yeah it's probably too late for an org to try to get that together this year. Put it on the calendar for Jan 02 2011
dukeleto i implore everyone in here to please add something to www.perlfoundation.org/perl5/index....0_projects if you have ideas for GSoC projects this year 04:45
there is also trac.parrot.org/parrot/wiki/GSOC2010, but that links back to that page
the parrot wiki page could still use some love in terms of making it friendly to new devs
dalek tracwiki: v1 | dukeleto++ | GSOC2010 04:47
tracwiki: trac.parrot.org/parrot/wiki/GSOC201...ction=diff
dukeleto if you would like to be a GSoC mentor, please add yourself to www.perlfoundation.org/perl5/index....oc_mentors 04:49
also, if you were one last year and DO NOT want to be one this year, you should take yourself off that page. It is opt-out this year :) ::laughs deleriously:: 04:50
Coke might be about to break the build on windows. 04:59
chromatic Good, that means we only support Linux now, like God and Queen intended.
ewilhelm see also #soc-help 05:02
Coke chromatic: ... I'm pretty sure Freddy was a Mac guy. 05:06
davidfetter o/` god save the queen o/`
Austin I think you're bigoting on the wrong axis. If we could just focus support on x86, we'd make a lot faster progress..
davidfetter o/` we mean it, man o/`
dalek kapo: 0bca702 | austin++ | (33 files):
Got cuckoo() mocking system working. (Now it just needs documentation...)
05:08
kapo: 7adbb4d | austin++ | :
review: gitorious.org/kakapo/kakapo/commit/...59aeb065c8
chromatic I can't imagine Apple wooing someone as creative and talented as Freddy Mercury. Overvalued and self-indulgent like John Lennon sure, but not Freddy Mac. 05:11
cotto It makes me sad how much faster than ops2c.nqp ops2c.pl is.
chromatic Profile?
purl somebody said Profile was protected by a password
cotto I'm running a profile at work. It'll be ready sometime tomorrow. 05:12
05:13 mikehh joined
cotto (8*60*60) 05:13
purl 28800
Austin message Whiteknight Kakapo release 8 is on master. See code.google.com/p/kakapo-parrot/wik...naeLibrary 05:17
purl Message for whiteknight stored.
05:42 adu joined
Coke finds that the obscure ops lib is not being built as a switch. 05:46
ugh. close to eliminating recursive make on dynoplibs, but not tonight. 06:09
dalek rrot: r44788 | cotto++ | trunk/lib/Parrot/Op.pm:
[ops2c] remove some unneeded regexes
06:32
Coke if I compile src/dynoplibs/*.o using the default C rule, it fails. if I add -I. to the command line args, it compiles. wtf. 06:36
pushed the work into a branch, if anyone wants to poke at it. 06:42
dukeleto msg whiteknight can you add short descriptions of your gsoc ideas to www.perlfoundation.org/perl5/index....0_projects and link them to your blog posts? thanks! 06:44
purl Message for whiteknight stored.
06:46 bacek joined
cotto hio bacek 06:49
dalek rrot: r44789 | cotto++ | branches/ops_pct/compilers/opsc/src/Ops/Op.pm:
[opsc] remove some unneeded substitutions
rrot: r44790 | coke++ | branches/rm_dynoplibs_make:
Eliminate the recursive make used for src/dynoplibs
rrot: r44791 | coke++ | branches/rm_dynoplibs_make (8 files):
Close but not quite;

and add -I., it works. ??
rrot: r44792 | cotto++ | trunk/src/ops/var.ops:
[ops] Fix pod for find_sub_not_null. I don't know why this was working before.
bacek aloha cotto
cotto any objections to a sync on the branch?
bacek nope
cotto btw, cutting out those extra subst() calls dropped the time to run ops2c.nqp from ~8m to ~6m. 06:50
bacek We do need caching of regexes...
cotto If nqp doesn't do /o by default, it just became a really important feature. 06:53
With that latest commit, opsc generates the same number of ops as ops2c. 06:54
I also didn't see anything broken about the output of any of the goto FOO() code. 06:55
bacek Hmm... nqp doesn't require /o. It's already compiled down to pir code. 06:56
cotto, are you doing merge now or I'm free to dcommit my changes? 06:57
cotto Rats. I thought that might be the case.
go ahead
is it just those 2 commits? 06:59
bacek 3 I think
44795 is last one 07:00
cotto In that case I'll sync now. 07:01
bacek ok 07:02
I'm trying to build selfhosted ops again... 07:03
cotto I tried with reordered ops and didn't get any better results.
bacek Sigh... 07:04
dalek rrot: r44793 | bacek++ | branches/ops_pct/compilers/opsc/ops2c.nqp:
Use ops in same order as ops2pm.
07:05
rrot: r44794 | bacek++ | branches/ops_pct/compilers/opsc/src/Ops/Compiler/Actions.pm:
Auto-vivify OPLIB in Actions.
cotto I really want to avoid comparing the code for the generated ops, but that may become necessary.
rrot: r44795 | bacek++ | branches/ops_pct/compilers/opsc/src/Ops/Trans/C.pm:
Generate code closer to ops2c.
07:05 uniejo joined
cotto sync committed 07:06
bacek Hmm... Just parsing all ops takes 15 seconds... 07:11
07:20 ewilhelm left
dalek rrot: r44796 | cotto++ | branches/ops_pct (17 files):
[opsc] sync branch with trunk
07:22
cotto Now opsc generates a bunch of extra ops. 07:24
bacek Remove second set.ops in ops2c.nqp 07:27
It was badly merged...
cotto committed 07:28
thanks
How does that even happen? I can accept myself making a stupid mistake, but it's pretty weak for a vcs to do that. 07:32
bacek It's on my side. I forgot to push some changes and then missed bad merge by git-svn
cotto ok 07:33
Do you know if there's a nice way to add #line directives to the generated code? 07:35
bacek $/ should have enough info to store in Ops::Op 07:37
dalek rrot: r44797 | cotto++ | branches/ops_pct/compilers/opsc/ops2c.nqp:
[opsc] fix merge goof
07:38
07:49 fperrad joined
bacek cotto, I can't spot any obvious bugs in generated code... It's almost same as before. Slightly better in code-style. But semantically same 07:50
cotto There's clearly a bug somewhere. 07:51
but it is a little mystifying.
bacek indeed. 07:52
Ok. I'm going to redo this bloody double substitution nonsense. We are loosing time waiting ops2c.nqp to finish. 07:58
cotto go for it 08:00
a mandatory 6-minute break tends to break my focus too 08:01
chromatic How do you run ops2c.nqp on ops? 08:11
bacek ./parrot-nqp compilers/opsc/ops2c.nqp 08:14
It will generate include/ and src/ files 08:15
chromatic Is this supposed to work? 08:16
$ make compilers/opsc/opsc.pbc
cotto make opsc
bacek make opsc
chromatic ./parrot-nqp --target=pir --output=compilers/opsc/gen/Ops/Trans/C.pir compilers/opsc/src/Ops/Trans/C.pm 08:17
Unable to open filehandle from path 'compilers/opsc/gen/Ops/Trans/C.pir'
bacek oops
looks like we need more IGNOREME files 08:18
cotto mkdir compilers/opsc/gen/Ops/Trans #until it gets fixed in svn
bacek cotto, can you commit IGNOREME in this directory?
chromatic I can if you need it. 08:19
cotto I can do it
I can do it nine times.
chromatic Okay, you do that.
08:19 lucian joined
cotto done 08:21
dalek rrot: r44798 | cotto++ | branches/ops_pct/compilers/opsc/gen/Ops/Trans/IGNOREME:
[opsc] add IGNOREME file
08:27
chromatic I find nothing obvious profiling at the C level. 08:36
We can probably get a ~3% improvement on most call-heavy programs by allocating more than one cell at a time in CallContext, but that's not a big problem here.
cotto bacek, it'd also be nice if opsc generated ops in the order of ops.num 08:51
bacek ops.num is also generated...
purl okay, bacek.
cotto ops.num?
purl ops.num is mapping between op name and pbc/switch statement in generated code. or generated...
cotto oh.
it's a tough nut to crack, but it'll be cracked 08:52
09:12 iblechbot joined 09:43 uniejo joined 09:45 AndyA joined
dalek rrot: r44799 | bacek++ | branches/ops_pct/compilers/opsc/src/Ops/Trans/C.pm:
Generate code close to ops2c.pl
10:05
rrot: r44800 | bacek++ | branches/ops_pct/compilers/opsc/ops2c.nqp:
Put experimental.ops as last one to keep order of ops same as ops2c.pl
10:08 bacek joined 10:13 tony joined 10:14 tony joined 10:18 TonyC joined 10:28 lbr left
dalek kudo: de996e9 | moritz++ | src/core/Any-str.pm:
fix RT #73120: Str.subst should allow both :g and :global
10:28
mikehh ha - that was fun - pcc_hackathon_6Mar10 branch still goes into infinite loop on t/compilers/imcc/syn/regressions.t 10:32
I was working on something else and suddenly had no memory etc left 10:33
moritz mikehh: I strongly recommend ulimit -v before running parrot tests 10:34
mikehh: at least that's what I do before running experimental rakudo tests
mikehh moritz - normally have no problem there - just trying to work on 2 branches at once and forgot to stop the test :-} 10:35
dalek kudo: 16efb68 | moritz++ | src/core/Any-str.pm:
implement Str.subst($matcher, Code, :g)
10:57
10:57 mj41_ joined 11:01 cosimo joined 11:03 payload joined 11:05 baest joined
dalek kapo: adec347 | austin++ | src/Internals/Full.nqp:
Fixed Kakapo::Full to mark all pre-initload modules as completed for DepQ processing.
11:09
rrot: r44801 | bacek++ | branches/ops_pct/compilers/opsc/src/Ops (2 files):
Generate code closer to ops2c.pl
11:42
rrot: r44802 | bacek++ | failed to fetch changeset:
Regenerate ops without #line directives to simplify comparision with opsc
rrot: r44803 | bacek++ | failed to fetch changeset:
Remove get_label and set_label from ops.num. They are in
11:45
bacek cotto, IT WORKS!!!!!!!!! 11:46
msg cotto IT WORKS!!! 11:47
purl Message for cotto stored.
bacek msg cotto You was right about ops code vs ops.num. After fixing ops.num in r44803 everything start magically works. 11:50
purl Message for cotto stored.
11:59 kid51 joined 12:05 payload joined 12:22 ruoso joined
dalek rrot: r44804 | bacek++ | branches/ops_pct/compilers/opsc/TODO:
Update TODO
12:30
rrot: r44805 | bacek++ | branches/ops_pct/compilers/opsc/t/07-emitter.t:
Update test
mikehh bacek: got a bunch of manifest/codetest fixes ready 12:32
bacek mikehh, ship it! :) 12:33
mikehh bacek: what do we do about src/ops/core_ops.c and include/parrot/oplib/core_ops.h which are generated but are in the MANIFEST/source tree 12:40
bacek can we put them in MANIFEST.skip?
mikehh bacek: not sure what to do about them 12:41
bacek They are generated. Very similar to bison/flex files.
mikehh what do we do about other generated files? 12:42
bacek So, codetest should ignore them
mikehh definately at the moment - lots of errors from them - make realclean removes them but svn status -u says they are missing 12:43
bacek it's work-in-progress
At the end - make realclean will not remove them. 12:44
mikehh yeah - I'll give it a good thunk or something :-}
anywat will come back to that 12:45
bacek ok
dalek rrot: r44806 | bacek++ | branches/ops_pct/compilers/opsc/t/07-emitter.t:
More test updates
12:46
rrot: r44807 | mikehh++ | branches/ops_pct/MANIFEST:
re-generate MANIFEST
rrot: r44808 | mikehh++ | branches/ops_pct (4 files):
add svn properties
13:03
13:04 whiteknight joined 13:06 kurahaupo joined
dalek kudo: 3fba2c3 | moritz++ | (2 files):
implement :x in Str.subst; implement :all in Str.split(Str)
13:16
rrot: r44809 | jkeenan++ | trunk/src/ops/var.ops:
[codingstd] No trailing whitespace.
13:19
13:26 whiteknight joined
moritz Coke++ # going through the perl6 RT queue 13:27
dalek rrot: r44810 | mikehh++ | branches/ops_pct/src/ops/var.ops:
remove trailing whitespace and update copyright
13:35
rrot: r44811 | mikehh++ | branches/ops_pct/compilers/opsc/src/Ops/Compiler/Actions.pm:
remove trailing whitespace and update copyright
rrot: r44812 | mikehh++ | branches/ops_pct/compilers/opsc/src/Ops/Compiler/Grammar.pm:
remove trailing whitespace and update copyright
13:39 bubaflub joined 13:43 smash joined
smash hello everyone 13:43
Coke If you are adding more generated files to the build, please make them re-generatable via the same mechanism as --maintainer. 13:44
moritz: I thought I was subscribed to the mailing list, but I'm not seeing any emails from those tickets I modified.
moritz Coke: I see them :-) 13:45
dalek kudo: 85ef035 | (Solomon Foster)++ | t/spectest.data:
Turn on S05-match/blocks.t.
Coke ... ah, they're here this morning.
mikehh anyway whole lot more to come, but gotta go out for a while - bbl with more 13:46
Coke moritz: what is the mechanism for saying "this works now but needs tests?"
(in rakudo RT)
moritz Coke: yes; say that in the ticket, assign it to me
there's also a "needs test" tag or so, but I'm not sure if you can already search for it
Coke you can search for anything! =-) 13:50
I didn't see the tag, though.
13:50 atrodo joined
moritz finds RT's search to suck a lot 13:50
but maybe I just don't understand it 13:51
dalek rrot: r44813 | mikehh++ | branches/ops_pct/compilers/opsc/src/Ops/Emitter.pm:
remove trailing whitespace and add copyright and Id
Coke moritz: what's your id? 13:52
rrot: r44814 | mikehh++ | branches/ops_pct/compilers/opsc/src/Ops/Compiler.pm:
add copyright and Id
rrot: r44815 | mikehh++ | branches/ops_pct/compilers/opsc/src/Ops/Trans.pm:
remove trailing whitespace and add copyright and Id
moritz Coke: moritz 13:53
Coke moritz: odd. you're not on the list of potential owners. 13:54
odd. you are.
(wtf.)
I don't see any field, custom or otherwise, that refers to tests, other than:
tag: testcommitted
moritz ah 13:55
but no testneeded
Coke Seems like that should actually be a status, not a tag. 13:57
no matter, assignment to you is fine for now. =-)
13:58 slavorgn joined
Coke now, if someone would just magically fix my branch... 14:00
whiteknight Coke: which branch?
Coke svn.parrot.org/parrot/branches/rm_...plibs_make 14:01
it is very close to killing another recursive make target.
I'm either missing a dependency or a compilation flag.
.. or something else. =-) 14:02
14:04 payload joined
dalek kudo: 2302b7c | moritz++ | t/spectest.data:
enable type.t
14:17
14:25 bluescreen joined 14:26 patspam joined 14:30 patspam joined 14:35 whiteknight_ joined 14:36 payload joined 14:45 Essobi left
whiteknight dukeleto: ping 14:51
dalek kudo: 24faa67 | moritz++ | t/spectest.data:
enable what.t
14:52
whiteknight purl msg dukeleto: I have a few GSoC project ideas for tangential projects like parrot-linear-algebra. Would those be cool to add to the list of projects? 14:53
purl Message for dukeleto stored.
darbelo whiteknight: More is better. 14:58
whiteknight darbelo: yeah, I know. I just want to make sure things on the fringe of the ecosystem are allowed
oooh, I just had a great idea: threading system enhancements 14:59
or, a new threading system
darbelo Good point. My project eneded up on the fringe of the ecosystem, but it started out as a core thing.
That reminds me. I hate our bignums and want them to die... 15:00
atrodo out of curiosity, what's the problems with the current threads?
darbelo atrodo: All of it?
purl All of it is supposed to be somewhat redundant, and you might be calling that boring, but that's for a reason.
darbelo Less glib answer: They were designed and implemented a long time ago, when parrot was pretty different from what it is today. 15:02
And nobody cares enough bout them to update them.
whiteknight they are extremely buggy and very inefficient 15:03
darbelo: I agree with the bignums thing 100%. I want bignums out of the repo and moved to their own project 15:04
There's no sense keeping them when I suspect a majority of users can't use them because they don't have GMP installed 15:06
darbelo Actually, I wouldn't mind them being in the core if they weren't dependant on a lib I don't have. 15:07
I actually had started to write a stand-alone BigInteger PMC after last year's SoC. 15:08
whiteknight that would make an awesome project too. 15:09
15:09 Andy joined
whiteknight I think we should have lots of projects like that, and for developers to be able to pick which solution they want 15:09
moritz are there no good, portable and liberally licensed bigint libraries available? 15:10
whiteknight as we are now, it's easier to force BigInt to pretend to do what we need instead of just using the best solution, which might be DecNumber or something else
moritz: GMP
moritz then... the right path for rakudo would be to require GMP, no? 15:11
rakudo needs bigints; actually it needs them quite badly
darbelo Maybe, but GMP is much, much more than just bignums. It's a pretty big library. 15:12
whiteknight libdecnumber is decent too
darbelo Our PMCs don't even start to scratch the surface of what GMP can do.
15:12 payload joined
whiteknight darbelo: so moving those PMCs out to a separate library and adding wrappers for other functionality might be nice 15:13
15:13 Psyche^ joined
darbelo I would consider a GMP binding much more valuble to parrot than our current use of the lib, yes. 15:14
Also, libdecnumber is pretty good in some aspects, but sucks in others. 15:15
variably sized numbers are a complete pain in the ass. And it doesn't really do bigints at all. 15:16
15:18 davidfetter joined
whiteknight allison: ping 15:18
darbelo: we should suggest that today at #ps
bubaflub last year i worked a bit with GMP library and suggested to dukeleto we work on a GMP binding for parrot 15:19
last year with GSOC and perl 5
darbelo bubaflub: That would be nice to have. 15:20
bubaflub though we used an existing perl 5 binding (Math::GMPz)
whiteknight yes, that would be a wonderful project
bubaflub but we could nab the test suite and what not
i'm not totally sure how to do the bindings in parrot - are their SWIG bindings for parrot? 15:21
or would it rather be done with NCI?
whiteknight exactly. We have the two PMC types, and we could write wrappers for the rest of the library and get all sorts of additional power
bubaflub: I don't know about swig. Ifthere are, I haven't heard about them in a long time
bubaflub whiteknight: ok. 15:22
whiteknight NCI would work. Adding PMCs or ops is a good idea too
so we have the existing BigInt and BigNum PMCs, we could add methods to them
bubaflub i think access to the GMP library in general would be nice; the stuff i worked on last year was setting some foundational stuff for cryptography libraries
whiteknight bubaflub: you may be interested in the parrot-linear-algebra project. We're trying to put together bindings to the cblas/atlas libraries 15:23
linear algebra is very important for cryptography
bubaflub agreed. 15:24
man, so many proposal options for GSOC
whiteknight bubaflub: more to come!
bubaflub haha. 15:25
i'm leaning more towards math / linear-algebra type stuff as that was my undergrad
but i'm also open to hacking on some HLLs
darbelo Right now I'm researching possibilities for the RTEMS port as a GSoC project. 15:27
PARROTS IN SPACE!!! 15:28
bubaflub hah.
darbelo The tricky part is finding the right balance between too much and too little. 15:30
bubaflub it's also difficult to judge how long things will take 15:31
who knows, a few hours into something a light bulb could turn on and you could get a major breakthrough
or you could be banging your head against your desk for months 15:32
darbelo If I'm right about what the port will take, Coke just did a lot of the work for me in rm_cflags ;) 15:36
Coke c question - is '.' ever implicitly in the include path? 15:37
NotFound Possible idea: resurrect parrot ecmascript, or write a new one from scratech.
dalek kudo: ad6b5d8 | moritz++ | t/spectest.data:
turn on more smartmatch tests
15:38
Coke tries to remind himself that we don't expect GSOC projects to work on core aspects of parrot.
NotFound Coke: search paths are implementation dependant. 15:39
Coke ok. so if I want ., I should be explicit.
NotFound Do you mean #include "./something", or using -I . or equivalent command line option? 15:41
darbelo I think he means -I .
Coke ops2c.pl is generating "#include "src/foo/bar.c"" on dynamic files. 15:42
$(CC) is getting invoked with -Isrc/foo, but not -I., so the build fails.
so I either need to change the ops2c --dynamic generator, or the makefile rule.
(easier to change the generator, methinks) 15:43
darbelo Coke: you could ping cotto or bacek on that one. They're rewriting ops2c right now.
NotFound I think changing the generator is preferable, too much additions to -I may lead to confusions. 15:44
whiteknight dukeleto: ping
cotto good morning 15:45
whiteknight purl msg dukeleto I listed security sandboxing as a possible GSoC project. If that's a good idea, I think we could use some documentation about what is needed.
purl Message for dukeleto stored.
cotto bacek++ 15:46
Coke, it's probably easier to change the generator. 15:47
though neither sounds very hard 15:48
Coke that seems to have done it -the dynops build failed when pulled into the top level build because regular ops have their inc file in the public area. dynops leave them in src/*, so it's not quite the same pathing issues.
and by "done it" I mean it now fails differently. :| 15:49
cotto also, mikehh++ for the cleanups
nice to have you keeping an eye out for those 15:50
Coke (ok. the .o's build in src/dynoplibs - now the link to generate the output file in dynext is failing.)
src/extra_nci_thunks.c seems to be leftover on a realclean. 15:51
cotto istr that it's generated but checked in for bootstrapping porpoises 15:52
Coke then it shouldn't be svn:ignored. 15:53
that's only generated-but-not-checked-in stuff.
bubaflub Coke: i'm also seeing some other files left over from `make realclean` - src/events.o, src/events.str src/tsq.o, runtime/parrot/include/io_thr_msg.pasm, and CFLAGS
Coke bubaflub: you are working from an old checkout. 15:54
cotto istr incorrectly
bubaflub Coke: ok.
Coke you probably have them leftover; realclean, remove them, rebuild, realclean, and check again.
bubaflub will do 15:55
15:55 payload joined
Coke (we don't remove files that are no longer generated; if you have them still generated and regen your makefilie before a realclean, you're sol) 15:55
$ svn ls src/*extra*.c
svn: 'src/extra_nci_thunks.c' is not under version control
whiteknight Coke: how do we specify a compiler does not have negative zero? 16:02
dalek rrot: r44816 | coke++ | branches/rm_dynoplibs_make/lib/Parrot/Ops2c/Utils.pm:
Now build src/dynoplibs/*.o
16:04
bubaflub whiteknight: are you working on getting parrot to build with ICC by any chance? 16:07
whiteknight bubaflub: yes, I'm doing that right now
parrot does build with ICC, but fails some tests 16:08
bubaflub whiteknight: yeah, i was looking into that for dukeleto about a week back; i put my findings in a ticket
i'm looking for the ticket number now
trac.parrot.org/parrot/ticket/1488 16:09
not sure if that'll help ya
whiteknight yes, definitely helps
bubaflub i think there is a discrepancy between the parrot sprintf and c printf 16:10
particle we tried really hard to get rid of those years ago, but sprintf is tough 16:11
platform-independent sprintf with extended functionality, that is
bubaflub whiteknight: right around line 199 or 200 of src/spf_render.c i think 16:15
whiteknight bubaflub: the ICC compiler isn't even storing -0.0 in the structure 16:16
Coke whiteknight: you can override the neg_0 value in the your hints file for that platform.
bubaflub whiteknight: doh.
Coke something like $conf->data->set->{'has_negative_zero'} = 0 if $compiler eq 'icc' in the linux hints file. 16:17
(looks like there's already an icc section in config/init/hints/linux.pm) 16:18
whiteknight Coke: I think I may have a fix 16:22
GOT IT 16:24
bubaflub: reconfigure with the --ccflags="-fp-model source" 16:25
bubaflub nice. lemme try.
whiteknight it looks like ICC optimizes floating-point too aggressively byt default, and loses ANSI compliance in the process 16:26
Coke: where are the hints files?
Coke config/init/hints/linux.pm
whiteknight Coke++ 16:27
Coke see: _handle_icc_ccflags
whiteknight (sorry about all the n00b questions)
Coke oh, hey, look at that, icc puts all sorts of warnings here in the wrong place. 16:28
Coke will have to fix that if someone ever installs icc on feather. =-)
bubaflub whiteknight: i'm building now with perl Configure.pl --cc=icc --ld=icc --link=icc --ccflags="-fp-model source"
whiteknight Coke: do you happen to know off-hand what distro feather uses? 16:29
moritz debian 16:31
unstable/experimental unhealthy mixture
16:35 iblechbot joined
whiteknight bubaflub: that fixes some errors, but still have a stringification problem 16:37
so $N0 = -0.0 works now, but $P0 = -0.0, say $P0 doesn't
bubaflub whiteknight: i'm running `make coretest` now
Coke ->
16:39 davidfetter joined
bubaflub whiteknight: weird, coretest passes for me 16:40
whiteknight I'm trying again 16:41
if so, this could be the shortest branch ever 16:43
the ICC build still outputs a crapton of warnings 16:44
darbelo icc is picky.
whiteknight most of the errors it finds are problems with trailing commas in headers 16:45
so we could fix those easily
bubaflub whiteknight: is there any test / test suite you'd like me to run? 16:46
16:47 theory joined
whiteknight we have a lot of instances in the code of PARROT_ASSERT(!"string"), which ICC hates 16:50
a PARROT_FAIL("") macro might be better for the purpose
dalek rrot: r44817 | whiteknight++ | branches/fix_icc_failures (2 files):
update hints to compile with '-fp-model source' on icc. This fixes handling of negative zero, but doesn't fix stringification of negative zero issues
16:52
rrot: r44818 | whiteknight++ | branches/fix_icc_failures/include/parrot (3 files):
remove some non-standard trailing commas at the end of enums, which isn't a problem most of the time but ICC hates it
cotto_work Yay! The opsc-generated src/core_ops.c has no new test failures! 16:53
whiteknight cotto++ 16:57
Coke: is that hints file in the same place after all your refactors?
cotto_work t/compilers/pct/complete_workflow.t fails, but it also fails with the checked-in core_ops.c
bacek++ did 90% of the work
whiteknight bubaflub: yes, I'm seeing all tests pass now too, after the realclean 16:59
I think this branch is mergable.
bubaflub whiteknight++ 17:00
whiteknight bubaflub: if we could fix some build warnings today, that would be awesome
bubaflub sure sure. should i make realclean and build again?
whiteknight just make clean 17:01
bubaflub whoops.
i'm about to head out to lunch with coworkers, i'll start a build and take a look at some errors.
whiteknight okay, I'm off to lunch too. Let's fix whatever we can today and merge it tonight or tomorrow 17:02
bubaflub whiteknight: i'll throw the build errors i find onto the ticket 17:06
nopaste "whiteknight" at 173.12.37.77 pasted "ICC warnings for bubaflub++" (800 lines) at nopaste.snit.ch/19895
whiteknight bubaflub: There's a listing of all build warnings for you. 17:07
bubaflub huzzah.
hooboy
whiteknight: what platform are you building on?
17:08 ruoso joined
whiteknight bubaflub: Ubuntu x86 17:10
bubaflub whiteknight: ok, i'm on Mac OS X 10.6 (and change)
nopaste "bubaflub" at 173.209.128.134 pasted "ICC warnings on Mac OS X" (178 lines) at nopaste.snit.ch/19896 17:12
bubaflub whiteknight: those are the errors i get when i make with icc
17:16 chromatic joined 17:23 payload joined 17:32 ruoso joined 17:37 kjeldahl_ joined
dalek kudo: 62d70b7 | moritz++ | t/spectest.data:
enable two more test files
17:50
18:09 lichtkind joined
lichtkind dukeleto: i have some questions and want to talk about GSOC 18:10
whiteknight lichtkind: what kinds of questions? 18:14
lichtkind whiteknight: what were the most important changes between parrot 1 and 2
whiteknight ah, good question 18:15
There were relatively few major feature additions between them. Mostly it was a period of intense cleanup, coding standards, refactoring, code improvement, etc
lichtkind whiteknight: that i know, wasnt too lazy to read logs but i cant say if there were any "important features" between them 18:17
whiteknight: beside that i currently write www.perlfoundation.org/perl6/index.cgi?timeline 18:18
please tell me if theres something missing
whiteknight okay, let me look at your list
lichtkind whiteknight: that are 2 completely different questions :) 18:19
whiteknight lichtkind: I only saw one question 18:20
PerlJam lichtkind: somewhere in 2003/2004 Dan gave up working on perl6 and TPF started a search for a Perl 6 Pumpking that culminated in selecting pmichaud. 18:24
dukeleto lichtkind: hello
lichtkind dukeleto: hai 18:25
dukeleto lichtkind: hola
lichtkind PerlJam: do you know when this was? 18:26
dukeleto whiteknight: I think GSoC projects need to be parrot-core-only, sadly. That isn't set in stone, it might be something to bring up on parrot-directors and/or parrot-dev 18:27
18:27 lucian joined
lichtkind whiteknight: im really interested which parrot features or changes were most important between 1 and 2 which isnt subject of the timeline 18:27
PerlJam lichtkind: I'm looking it up, but I think it was in the spring of 2004 just after A12 release
dukeleto whiteknight: and i think the idea of a gsoc project on PDD18 (security sandboxing) would be awesome 18:28
lichtkind PerlJam: thanks a lot a date for dans leaving were great too
dukeleto: i wanted you just tell thats great that you du gsow and that i could help as drop in mentor for november 18:29
dalek rrot: r44819 | whiteknight++ | branches/fix_icc_failures (6 files):
Added PARROT_ASSERT_MSG macro, which does an assertion with a custom error message. Added PARROT_FAILURE which does an unconditonal assertion failure with a custom error message. PARROT_ASSERT was used (abused) to provide these two functions, but ICC gets very unhappy about it. No changes to functionality, but a lot fewer warnings on ICC"
18:30
davidfetter when's #ps? 18:31
dukeleto lichtkind: awesome! did you add yourself to the gsoc mentors wiki page? www.perlfoundation.org/perl5/index....oc_mentors
lichtkind dukeleto: im currently opened this page
cotto_work dukeleto, in 117 minutes 18:32
davidfetter notes in future to ask either the time-to-ps or specify a time zone 18:33
PerlJam lichtkind: Hmm. All I've found so far is an Aug 6 email congratulating pmichaud on being accepted as the perl 6 compiler pumpking 18:34
lichtkind: Aug 6 2004 that is
dukeleto cotto_work: thanks for asking my question before I asked :) 18:37
cotto_work I'd like to blame autocomplete, but that was more of a pebcak 18:39
lichtkind PerlJam: thank you, and any notice when dan resign, the current date is related to his farewell post 18:42
dukeleto when did parrot switch to a monthly release cycle? that would be good to put in the timeline 18:43
lichtkind dukeleto: written
cotto_work You can see that pretty easily by looking at docs/parrothist.pod 18:44
looks like Jan 2007 18:45
dukeleto cotto_work: thanks, i added that to the timeline 18:54
lichtkind pmichaud: ** August 6 - [Patrick Michaud] got accepted as the perl 6 compiler pumpking, after [TPF] was looking for a new one for some time 18:56
PerlJam lichtkind: that's when the email was. He may have gotten accepted sooner than that :) 18:59
lichtkind PerlJam: its a wiki we can change it anytime
dukeleto: when exactly was the release cycle change? 19:00
chromatic November or December 2006, I think. 19:03
19:03 aukjan1 joined, japhb joined
dukeleto lichtkind: i wrote Jan 2007 on the wiki 19:05
whiteknight Austin: ping
Austin ?
whiteknight Austin: the mock stuff looks great 19:06
if it does everything the docs claim, it's fantastic
Austin Currently, I think it does - the test cases all run.
lichtkind dukeleto: allright, could you tellme whats parrots biggest feature or improvement between 1.0 and 2.0? 19:07
Austin I haven't had time to use it under load, yet, since I'm on a different project today. But I should have some real-world experience in the next few days.
whiteknight I would like to start getting some of my projects using it more. I think I want to update Parrot-Linear-Algebra to use Kakapo for the whole test suite
chromatic lichtkind, your question makes me think that you believe we increment the major version number to coincide with a large feature release.
PerlJam lichtkind: pmichaud "applied" for the perl 6 compiler position in Jul 2004 19:08
lichtkind: so, I guess Dan stepped down as the perl 6 compiler guy sometime between Apr 2004 and Jul 2004 19:13
oh! here's an announcement from Dan on Jul 6, 2004: www.perlmonks.org/?node_id=372089 (Dan == Elian) 19:14
19:14 AndyA joined
lichtkind chromatic: as i wrote, i ask because i dont have the feeling log reading makes me really knowing whats going on 19:14
chromatic There's no single big feature, but thousands of commits. 19:16
19:17 AndyA_ joined
chromatic The best anyone could do is look over the release announcements and pick out a handful of big things. 19:17
Profiling runcore, GC tuning, PCC revamps, some MMD changes, NQP-rx I believe. 19:18
cotto_work chromatic, #ps reports would also be good for mining
lichtkind hm 19:20
whiteknight Austin: I get a test failure on kakapo master:
t/Program.nqp ......................... Parent isn't a Class.
current instr.: 'parrot;P6metaclass;add_parent' pc 224 (runtime/parrot/library/P6object.pir:232)
Austin Whiteknight: That's odd. Are you on master:HEAD, or at release 8? 19:21
whiteknight master:HEAD
Austin Okay. Whew.
I'm working on Program in the background, so probably something slipped through. You can safely ignore it for now. I'll try to stabilize it today for you. 19:22
allison Whiteknight: pong (many hours later)
whiteknight allison: what's the status of the pcc branch? I checked out early last night
I also had a question about returns checking and how strict we plan to be 19:23
19:25 kthakore joined
kthakore dukeleto: around? 19:25
allison whiteknight: I've been working my way through errors in PGE
whiteknight: chromatic put in a good bit of work there yesterday too 19:26
whiteknight allison: I'm wondering about the case where we call a function but ignore all return values. Will that be acceptable?
lichtkind allison: hello
allison whiteknight: I can't say how many errors are left in PGE, but the tasklist for this refactor is almost completed
whiteknight ok 19:27
allison whiteknight: currently, returns are exactly as strict as parameters
whiteknight okay, so there's no way to completely ignore return values?
allison whiteknight: they can be marked as optional, but not completely ignored
whiteknight okay, is that feature on the wish-list?
allison whiteknight: not at the moment, now
whiteknight: we had some discussion last night on whether that's a bug or a features 19:28
feature
lichtkind: hi
purl hey, allison.
dukeleto kthakore: ahoy
allison whiteknight: it could go either way, really, it's a question for HLL devs 19:29
lichtkind allison: really long time we talked :)
allison whiteknight: that is, do we want to silently ignore mismatches in return signatures?
whiteknight: or, do we require explicitly marking when a return is dropped? 19:30
whiteknight allison: true, but to draw an analogy, how many people ever use the return value of printf in C?
allison whiteknight: almost never
purl i guess almost never is not good enough.
allison whiteknight (it could be argued that it's a poorly designed function, but that's a side question) 19:31
whiteknight ...so, not a great analogy
allison the thing is, there are substantial advantages to fully treating return invocations as sub calls
one code path means one maintenance path, means escaping subtle bugs between implementations of the same code 19:32
darbelo (returns = calls)++
whiteknight I dont debate that. I'm thinking more along the lines of "if we never call get_results, who's going to know?"
NotFound So we'll need to cal get_results to get void? 19:33
19:33 eternaleye joined
allison in CPS, returns really *are* calls (of a return continuation) 19:33
whiteknight allison: I know that. 19:34
allison whiteknight: aye, I'm just running over tthe advantages for the sake of discussion
whiteknight okay
allison whiteknight: on the other hand, we have the "principle of least surprise" 19:35
particle tewk: you'll want to have the code coda etc on that generated file to mark it as read-only
allison whiteknight: Perl 5 silently ignores mismatches in the return args and params 19:36
I suspect Perl 6 does too
it's possible to implement an HLL that silently ignores missing or extra returns on top of a VM that's strict about them (thought a bit of a hassle) 19:37
whiteknight Austin: Where does kakapo install to? I tried installing it but don't see the files anywhere
allison: Well, we can be strict about them when get_results is called. But, if IMCC uses a heuristic to not call get_results if no results are wanted, we bypass the check 19:38
there's a difference between () = foo(), and just bare foo()
dalek kudo: e42042c | moritz++ | src/pmc/p6opaque.pmc:
awesome error message when you try to access attributes of type objects, as suggested by TimToady++
19:39
tewk in a CPS world get_results sounds wrong. It should be this is the continuation and signature you call next. 19:40
Austin Depends, but probably /usr/local/lib/parrot 19:41
19:41 shockwave joined
shockwave Howdy. 19:41
allison whiteknight: yes, and it may actually handle that now if get_results isn't called in the second case
shockwave Can an array access be used anywhere a register can be? i.e., $P[0] 19:42
$P1[0] ^^^
Austin shockwave: no
shockwave umh
Austin Array (and hash) accesses can be used to store, and fetch.
$P0 = $P1[1] 19:43
But not generally whereever an op takes a $P register.
shockwave ah
Austin $P2 = newclass $P0[1] # Doesn't work
allison tewk: oddly enough, it actually makes sense to have separate ops for results, because they pull from a different context level than params
tewk: (get_params pulls from the current context, get_results pulls from a child of the current context 19:44
shockwave Austin, so, is the recommended thing is to do something like: $P2 = $P1[0] ... Use $P2 as pointing to $P1[0] ?
Austin $P0[1] = split '::', $P1 # Doesn't work
shockwave: right! Remember that PMCs are pointers, so you're creating an alias.
$P0 = $P1[4] 19:45
inc $P0
will increment $P1[4], whatever "increment" means to that pmc.
allison whiteknight: but, yeah, I could see an argument that () = foo() should do parameter checking, while foo() shouldn't
whiteknight: of course, we also have the global setting for "don't check return parameter mismatches"
Coke ... osx has icc? 19:46
whiteknight all that is a little moot if we never call get_returns
shockwave Austin, So I'm correct in assuming that if I do: $P1[0] = 42; $P2 = $P1[0]; inc $P2; # That, although I stored a literal int, it will be incremented correctly?
Austin Won't work. 19:47
Use 'box'
Coke PerlJam: (dan gave up working on perl6) ... do you mean parrot? I don't recall dan working on p6.
shockwave $P1[0] = box 42
chromatic I remember that, Coke.
PerlJam Coke: Dan was doing double duty on parrot and perl6 in the early days
allison whiteknight: (trying a quick code example)
PerlJam: Parrot *was* perl 6 in the earliest days
Austin $P0 = box 42 ; $P1 = new ['ResizablePMCArray'] ; $P1[0] = $P0 ; inc $P0 ; $P2 = $P1[0] ; say $P2
PerlJam allison: well, that's one way to look at it :) 19:48
shockwave Austin, Thanks alot. You're the man.
allison PerlJam: but he never worked on Perl6 design, if that's the question
PerlJam allison: right.
Coke: what allison said
allison PerlJam: or on any of the early prototype implementations of Perl6 on top of the VM
PerlJam: only on the VM that eventually came to be known as Parrot
PerlJam: so you're *both* right :) 19:49
tewk allison, I've not been following the latest PCC changes, but I would suspect that tailcalls use the same context right?
allison tewk: yes
tewk offtopic, it would be nice for parallelism if parrot had some container types whose size were set on creation 19:52
chromatic I agree.
allison tewk: certainly doable 19:54
Coke $P0 = new 'arryish', 5
whiteknight so add an init_int vtable?
19:54 TiMBuS joined
whiteknight that seems highly reasonable 19:55
I also like that it would prevent us from needing to shoehorn Fixed*Array.set_integer for the purpose of setting the capacity
or, us continuing to do that
tewk whiteknight, that is exactly the problem,
is that feature needed anywhere? 19:56
whiteknight if the dream comes true and we have only one array-like type in the repo, it won't really be needed, no
but other array types and other PMCs would use it 19:57
one fewer vtable call for every single Integer PMC in the system, which adds up
chromatic There's already init_pmc, though that means creating and throwing away a temporary Integer for each arraylike creation. 19:58
19:59 shockwave left
tewk constructors are really a powerfull concept, maybe once pmcs and objects become one ... 19:59
20:00 zostay joined
chromatic CallContext would be cheaper if we could initialize its storage size on creation. 20:00
tewk yep, you could eliminate PMC_data indirections. 20:01
whiteknight we can ask if there are any objections at #ps, but I think it's a great iea 20:02
idea
allison me too 20:04
tewk In some ways we optimized VTABLES and object methods backwards, native method access should be optimized first and interop access later.
chromatic VTABLEs should have used MMD from the start. 20:05
allison tewk: a lot of it fell out of "what's easiest to implement" 20:06
chromatic Number of problems that would have caused: few.
Number of problems that would have prevented: many.
allison chromatic: aye
chromatic: they were pseudo-MMD pretty early on
chromatic Not really.
allison chromatic: but, the system didn't play well at all with any true MMD
chromatic: there was that funny kind-of MMD system we ripped out in the MMD refactor 20:07
chromatic: oh, but it was only for a limited set of math ops, so you're basically right
chromatic Yeah, true MMD doesn't easily fall out of a system where you always first dispatch on the leftmost invocant and then, maybe, redispatch. 20:08
I'll save the rest of my "The Marriage of Heavenly Methods and Hellish VTABLEs" for the William Blake stage of Lorito however. 20:09
dukeleto ponders writing a script to scrape Trac to autogenerate some parts of his weekly #ps report 20:14
whiteknight dukeleto: I would pay for a tool like that 20:16
just being reminded of what commits I made would be awesome
dukeleto whiteknight: I won't forget that ;)
darbelo Not exactly what you are asking for, but home.gna.org/forgeplucker/ 20:17
bubaflub dukeleto: trac.parrot.org/parrot/timeline?fro...ate=Update
Coke dukeleto: I just ... right.
I bet if you were clever, you coudl get that to restrict by actor.
dukeleto whiteknight: yes, being reminded of what $user did in the last week would benefit everyone and make our #ps reports easier to make better
tewk I get "easiest to implement", I was nostalgic to see PCCMETHOD AND PCCINVOKE in the channel discussion recently :) 20:18
japhb fperrad, ping
particle whiteknight: cia.vc/stats/author/whiteknight 20:19
particle used this for years as #parrotsketch prep 20:20
whiteknight particle: holy shit, what is this magical page? 20:21
darbelo You... prepped on whiteknight's commits?
Kinda creepy.
dukeleto bubaflub: that is useful, thanks 20:22
Coke trac is slightlz nicer because alsoļæ½ tickets.
... what happened to mz kezboard_
-win 4 20:23
aigh.
dukeleto Coke: looks like you switched to a german qwertz layout
Coke I cannot tzpe a slash.
qwertz
azup.
particle heh
Coke -me wonders how that happened, as he thought he disabled german input on this kezboard.
moritz Coke: Shift + 7 if it's really German 20:24
Coke is a slash, zes. 20:25
-me is more wondering how to disable this. ��=
er, ;) 20:26
dukeleto bubaflub: wow, that timeline really helps. I did a lot more than I remembered :) 20:27
whiteknight damnit, /me has to run over to the lab now, will miss at least the first part of #ps.
bubaflub dukeleto: yeah, the authors have their own span class, so aggregating the data shouldn't be too bad 20:28
darbelo clock?
purl darbelo: LAX: Tue 12:28pm PST / CHI: Tue 2:28pm CST / NYC: Tue 3:28pm EST / LON: Tue 8:28pm GMT / BER: Tue 9:28pm CET / IND: Wed 1:58am IST / TOK: Wed 5:28am JST / SYD: Wed 7:28am EST /
bubaflub at least in my head with a ruby / nokogiri type script
darbelo #ps in 2.
20:28 bacek joined, ruoso joined
chromatic #ps time 20:31
kthakore ps ? 20:33
purl well, ps is postscript or process status or see "parrotsketch" or non-vector?! or annoying.
kthakore oh ok
darbelo parrotsketch
purl somebody said parrotsketch was a status meeting for parrot core committers held every Tuesday at 20:30 UTC in #parrotsketch
Coke aha. "alt-shift" switches between german & english mode (despite a lack of DE being specified anymore in regions) 20:36
dukeleto bubaflub: feel free to write something like that :)
chromatic Coke, could you take a look at the PGE dependency on the PCC hackathon branch? 20:40
20:41 whiteknight joined 20:42 joeri joined
Coke chromatic: sure, post $DAYJOB. 20:44
chromatic Thanks. 20:45
Coke I'm not sure it makes sense to add a test for it, but I can definitely unbork it.
darbelo japhb: Count me in for any plumage work you need help on. 20:47
japhb darbelo, Ah, cool, there you are. Didn't see you on #ps 20:48
(and thanks!) 20:49
whiteknight in #ps, did anybody mention the new init_int vtable? 20:51
moderator #parrot Parrot 2.1.1 Released! | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Task: Fix HLL bugs! 20:52
chromatic Not yet, whiteknight. 20:52
20:57 shockwave joined
nopaste "shockwave" at 76.119.137.239 pasted "Long question." (27 lines) at nopaste.snit.ch/19897 20:57
Coke chromatic: and monkey's brains, while a popular dish in cantonese cuisine... 20:58
shockwave I have a question, but since is pretty long, I posted it at the above location.
chromatic My monkey is a robot. Just try to get at his positronic brain.
moritz shockwave: parrot basically has no notion of assignment, just binding. pmichaud has been cursing about this for years - I'm sure he can tell you what his workaround his (but he is much distracted by real life these days) 21:00
shockwave: you might also find plenty of discussions in old #parrotsketch and mailing list discussions
trac.parrot.org/parrot/wiki/WhyDoes...icientCode
shockwave moritz, reading the link right now... 21:01
whiteknight I really didn't expect that question to generate so much opposition 21:03
dalek rrot-plumage: 51ac9c0 | japhb++ | src/lib/Plumage/Project.nqp:
[LIB] Plumage::Project: Support nqp_setup method
21:04
rrot-plumage: 3c71f8b | japhb++ | metadata/kakapo.json:
[METADATA] Update kakapo.json: use nqp_setup, other improvements; fperrad++
Coke plumage? 21:07
purl hmmm... plumage is the future Parrot module ecosystem. It will include tools to search metadata, handle dependencies, install modules, and so forth. The repository is at gitorious.org/parrot-plumage/parrot-plumage and the design docs are at trac.parrot.org/parrot/wiki/ModuleEcosystem
whiteknight the day after Rakudo* is released, I'm starting work on my "dancing hamsters" port to Parrot
And then I'm porting the TI Calculator game "Drug Wars" to Parrot 21:08
chromatic Man, that game takes me back.
whiteknight And then I'm going to port Parrot to my roomba
japhb I want Parrot on my old TI graphing calculator 21:09
whiteknight chromatic: still need help on #389? 21:11
shockwave @moritz, Sorry, it took me a while to read and understand that post. I'm feeling like "oh, oh, I'm going to be in for some hurt".
whiteknight I think I can knock #1505 out tonight, and then I can move to that since I know it's still a big deal for rakudo
chromatic whiteknight, I do. I have one more thing to try, but if you don't see anything from me by this time Thursday, I'm stuck.
whiteknight okay, well let's keep a dialog open about it. I 21:12
'm in that code now and will offer all the tuits I have
shockwave msg pmichaud Hit me up when you get a chance. I'd like to talk to you about assignment vs binding. For reference: trac.parrot.org/parrot/wiki/WhyDoes...icientCode 21:13
purl Message for pmichaud stored.
chromatic I'm going to try once more to create the PMCProxy during class init 2. If that doesn't work, I'll probably do what you suggested and stuff a method hash into the VTABLE.
shockwave Thanks, moritz
whiteknight why doesn't it work at class init 2? That seems like the perfect time 21:14
chromatic I may have done it poorly.
Last time I tried to make it work and pretty at the same time.
Perhaps we need to consider a pretty pass later.
whiteknight if we add a third init stage, I may foam at the mouth until we remove non-essential PMC types from the repo 21:15
chromatic Not init 3, but "Let's go over the code and make it pretty now that it works."
whiteknight yeah, I definitely want to get in there and gussy up some of that shit 21:16
japhb ^ quote
whiteknight class_init with a flag and two branches is worse than two separate class_init functions with no branches 21:17
cotto_work istr that one-stage PMC init would be possible if we hard-coded the PMCs needed to initialize other PMCs.
whiteknight cotto_work: like a fixed ordering? 21:18
cotto_work yes but just for the first few
The rest could be lazy or in whatever order.
I briefly looked into it when thinking about implementing lazy PMC initialization. 21:19
whiteknight I'm not sure that's going to work anymore after chromatic's work
cotto_work ok
whiteknight because every type is going to require an RPA and a PMCProxy
and you can't initialize them at the same time
chromatic I'm not sure a stage one init works with the way we initialize vtables.
bacek, care to look at weird behavior in compact_pool? 21:21
whiteknight chromatic: instead of storing methods on the proxy, what if we created a Hash* pointer in the vtable?
could be done immediately because that isn't a PMC type
chromatic Yes, that's doable, but I like it less.
bacek chromatic, holley schitt. What about compact_pool?
chromatic I like the use of PMCProxy because we can unify method lookup that way.
bacek, I think it grows unconstrained.
whiteknight what do you mean "unify method lookup"?
chromatic Classes look up methods one way. 21:22
PMCs look up methods another way.
bacek chromatic, any test cases?
chromatic Building gen_core.pm for Rakudo.
lucian i'm curious about GSoC. what are the chances of a pynie proposal being accepted?
bacek And it actually grows unconstrained. We just compact it.
PerlJam lucian: zero I'd think. But what do I know? 21:23
chromatic I don't think compacting actually works.
lucian PerlJam: right. well, good to know that's what you think :)
PerlJam lucian: you'd have to show a strong connection between whatever you propose for pynie to perl 5, perl 6, or parrot. That's where the focus lies for TPF. 21:24
chromatic bacek, I *think* the size of the single pool always grows, even if most of the STRINGs are garbage and don't need collected.
lucian PerlJam: right, fair enough
bacek chromatic, hmmm...
lucian PerlJam: i'd propose work to bring pynie as close to CPython as possible 21:25
PerlJam lucian: maybe the python people would approve it :)
chromatic If you write a benchmark that makes a bunch of large strings that are immediately garbage, you should see it grow without bounds.
japhb lucian, better for a submission to the Python foundation?
lucian japhb: yes, that's a consideration as well. i figured i should ask here as well 21:26
Austin lucian: It's a problem of politics and structure. The SoC "slots" are allocated to mentoring organizations. So your project has to be relevant to an organization in order for them to carry it forward to Google.
lucian Austin: true
whiteknight lucian: your project might have a better chance of being supported by the python people 21:27
japhb lucian, As Austin said. TPF + PaFo decided to join forces again this year, in attempt to gain extra slots. But that means they are very Perl-biased.
Well, maybe not 'very', but at least somewhat
whiteknight if the two communities have good report, you could do the project under the python banner with a co-mentor from Parrot
Austin * rapport
PerlJam whiteknight: good point.
whiteknight Austin++
lucian whiteknight: ok. i'll ask around 21:28
PerlJam whiteknight: probably doable too
whiteknight lucian: ask allison, she's friendly with python people
Austin Not that there's anything wrong with that...
whiteknight Austin: did you get my message earlier about kakapo not installing?
Austin Whiteknight: I just pushed a set of Program changes that pass 21:29
lucian Austin: heh
whiteknight Austin++
Austin Yeah, I replied. Look in /usr/local/lib/*parrot*/library/...
japhb chuckled on looking at allison's slide in her Pynie talk at PyCon in which NQP got re-acronymed
whiteknight Austin: I did look there. Nothing
lucian allison: ping
Austin Curiouser and curiouser.
purl Now I'm opening out like the largest telescope that ever was! Good-bye, feet!"
allison lucian: hi
japhb: we're a multi-cultural bunch :) 21:30
japhb whiteknight, kakapo not installing? I just pushed a new Plumage and kakapo metadata, to switch over to using setup.nqp/distutils. Seemed to work here.
lucian allison: i may be interested in doing GSoC work on pynie
Austin whiteknight: I've never actually run the install myself, so I may have misconfigured something in the setup.nqp.
allison lucian: excellent!
purl Smithers, release the hounds!
whiteknight okay, I'll look at it more tonight too. As I mentione,d I'm planning to redo parrot-linear-algebra to use all kakapo all the time 21:31
allison lucian: I'd be happy to mentor
lucian allison: what's the best way to about it? apply to the PSF? PaFo?
moderator #parrot Parrot 2.1.1 Released! | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Tasks: Fix HLL bugs! Fix and test corevm target! 21:31
Coke I think it is possible to cross-post. 21:31
lucian allison: just so you know up front, this would be my second choice, right now Sugar Labs would be my first
allison lucian: PaFo is a small foundation, we've gone under the TPF umbrella
lucian allison: yes, i noticed
Austin Damn, dude! Never tell a woman she's your second choice.
allison luician: it's worth talking to the Python folks and see if they'd be willing to include it in their list 21:32
particle lucian: it might be worth starting a conversation with the org admin for psf, as well as allison
allison++
lucian allison: right. i know the PSF is interested in py3 projects mostly
allison lucian: but feel free to put it in the PaFo queue otherwise
shockwave Are all the vtable methods listed in src/vtable.tbl available to a custom class, or are some of those methods only available if one subclasses specific classes?
allison lucian: pynie *is* a py3 project
lucian allison: right. i'll talk to the PSF people
particle what version of python is pynie emulating? ah, 3, excellent. 21:33
whiteknight shockwave: some of them cannot currently be overridden from PIR
lucian allison: i know, which is why i said that
allison lucian: ah, yeah
whiteknight shockwave: most can, and most *should*. if you find one you cannot override but think of a plausible reason why you would want to, it's a bug
Austin shockwave: All the vtables are on all the pmcs. But not all pmcs use them - like who tries to .invoke() an array?
shockwave whiteknight, is there a way to know which one, or is it a try and see thing?
Coke but in general, all vtables are at least invokable on all pmcs. some will error and carp about being unimplemented, but that's the implementation. =-)
whiteknight try and see, mostly
Coke Austin: I invoke an array all the time: Eval. 21:34
dalek kapo: f1a4df5 | austin++ | (3 files):
Simplified Program, got tests passing for Whiteknight.
Austin (Of course, a MultiSub is sort of an invocable array, but ...)
whiteknight okay, I'm packing up and heading home. Laterz
shockwave whiteknight, Austin, thanks.
Austin Coke: How?
$P0 = new ['ResizablePMCArray'] ; $P0() 21:35
Coke Austin: Eval is an array of subs.
shockwave I hope the "solution" to the assignment issue I'm having will work, even if not very efficient. Sucks that I wont be able to try it for some time. 21:37
dukeleto well, that was an exciting #ps 21:39
Coke oooh, I think I can make all the makefiles autoregen.
chromatic That sounds like a way to orphan files! 21:40
Coke 'include' everything that is dynamically generated, and provide a rule to regen them.
cotto_work Hmm. The profiling runcore seems to be useless for profiling opsc. 21:41
chromatic The line number problem blocking on japhb? 21:42
cotto_work no, it 21:43
s showing almost nothing
I'll be digging into it.
japhb Bah.
chromatic Just call me Mr. Teflon. 21:44
japhb is trying to unblock people, now that tuits not completely eaten, but I've got a substantial backlog.
cotto_work line numbers aren't that big a deal as long as I've got sub info
Coke is this corevm building PGE thing happening in trunk? 21:45
Tene I have a fix for 'rethrow' telling lies about the source of rethrown exceptions in exceptions_refactor branch.
Coke I'm not seeing it.
Tene: wow, that's an old ticket. =-) 21:46
chromatic Coke, it's the pcc hackathon branch.
Coke tene++
chromatic cotto_work, line numbers are very wrong in several places.
cotto_work indeed
Coke chromatic: ... has that branch been updated from trunk lately?
chromatic I thought so, but perhaps not in the past week. 21:47
21:48 bluescreen joined
dalek kudo: 5b81dfe | moritz++ | src/Perl6/ (2 files):
awesomize error message for regexes in packages a bit (though allowing them would really be preferrable)
21:51
Coke svn++ for # svn ls ^/branches
cotto_work Coke, which version introduces that? 21:53
Coke iunno. "recent"
^ == "repository root"
useful for switch, ls, log, etc.
cotto_work yeah
PerlJam 1.6 I think 21:54
svn++ for finally adding that feature indeed 21:55
Coke that branch predates the mergeback of rm_cflags. 21:59
so I would recommend doing a merge update first. 22:00
(before tackling the corevm problem.)
also, I get no failures on 'make -j3 corevm' in that branch. 22:01
-> 22:02
dalek rrot: r44820 | mikehh++ | branches/ops_pct/compilers/opsc/src/Ops/Op.pm:
remove trailing spaces
rrot: r44821 | mikehh++ | branches/ops_pct/compilers/opsc/src/Ops/Trans/C.pm:
remove trailing whitespace and add copyright and Id
22:08 snarkyboojum joined, bacek joined
tewk How does something get in the embedding interface? 22:08
chromatic We document it as such. 22:09
moritz www.perlmonks.org/?node_id=825863 more parrot hackers need to participate in that poll :-)
particle prepend PARROT_API to the c function definition 22:10
dalek rrot: r44822 | mikehh++ | branches/ops_pct/compilers/opsc/t/common.pir:
remove trailing whitespace and add copyright and Id
22:19
rrot: r44823 | mikehh++ | branches/ops_pct/compilers/opsc/src/builtins.pir:
remove trailing whitespace and fix copyright and Id
rrot: r44824 | tewk++ | trunk/lib/Parrot/OpsRenumber.pm:
generate include/parrot/opsenum.h
tewk so I only found PARROT_API in one doc file, PARROT_EXPORT seemes to be used by everything in embed.h 22:22
particle tewk: some time ago PARROT_API and PARROT_EXPORT had a divorce, i can't remember who's side we're on. i'm sure it was discussed in #ps and on the mailing list 22:24
GeJ Good morning everyone. 22:25
davidfetter hi GeJ 22:32
tewk particle, yeah I have faint memories of the discussion 22:33
particle it may be, "we'll figure PARROT_API out later, for now, mark what you need exported with PARROT_EXPORT"
dalek rrot: r44825 | mikehh++ | branches/ops_pct/compilers/opsc/opsc.pir:
remove trailing spaces
22:35
rrot: r44826 | mikehh++ | branches/ops_pct/compilers/opsc/t/03-past.t:
remove trailing whitespace and add copyright and Id
rrot: r44827 | mikehh++ | branches/ops_pct/compilers/nqp/src/Grammar/Actions.pir:
remove trailing spaces
rrot: r44828 | mikehh++ | branches/ops_pct/compilers/opsc/t/01-parse.t:
add copyright and Id and fix coda
tewk which is preferred Parrot_string_ or Parrot_str_ prefix, by count it looks like Parrot_str? 22:40
cotto_work sounds right 22:43
22:44 cotto_work joined 22:46 Andy joined
allison Parrot_str_ is the new (following the coding standards for a short prefix) 22:50
Parrot_string_ is still on some older functions
tewk Adding deprecations now. I've created Parrot_str_is_null and deprecated STRING_is_null too. 22:51
dalek rrot: r44829 | mikehh++ | branches/ops_pct/compilers/opsc/t/07-emitter.t:
add copyright and Id
rrot: r44830 | mikehh++ | branches/ops_pct/compilers/opsc/t (3 files):
add copyright and Id
rrot: r44831 | mikehh++ | branches/ops_pct/compilers/opsc/t/02-parse-all-ops.t:
add copyright and Id
tewk =item C<PMC* Parrot_str_split(PARROT_INTERP, STRING *delim, STRING *str)> 22:53
Splits the string C<str> at the delimiter C<delim>, returning a
C<ResizableStringArray>, or his mapped type in the current HLL,
opps 22:54
lucian allison: i'm trying to make sense of pynie's source. what flavor of developing languages on parrot does it follow? 22:57
cotto_work bacek++ for making all of opsc's test pass again 22:59
PerlJam pynie hasn't been updated to use nqp-rx yet, has it?
japhb PerlJam, last I heard allison was working on that conversion in a separate repo 23:00
PerlJam lucian: if what japhb says is true, *that's* probably the pynie you want to look at.
japhb (And according to her PyCon talk, converting from Python 2.5 grammar + 3.0 fixes to pure 3.0 grammar)
lucian japhb: PerlJam: she directed me to this repo bitbucket.org/allison/pynie/overview/ 23:01
allison the pynie-nqp repo is the update 23:03
but, it's just the fresh grammar
that is, it's a replacement, not an in-place update
though, everything but the grammar and actions file will remain the same after the nqp conversion
lucian is furiously reading parrot docs :) 23:04
allison japhb: yes, the pynie-nqp grammar is a pure translation of the 3.x grammar 23:05
Tene allison: I remember a long time ago we discussed OO for pynie, and you planned to do a lot of thinking about how you wanted to build the metamodel for pynie (not inheriting from P6object, I think). Has that happened? 23:07
allison Tene: for now I'd like to get the simplest possible thing working
Tene nods. 23:08
allison Tene: AFAICT, that's a thin wrapper around Parrot's Object/Class
Tene: I don't see much value in P6object for Python
Tene I'd really like to work on that sometime soon, but I'm not hopeful. 23:09
allison Tene: it's okay
Tene: I worked on it some at PyCon, will work on it some more soon 23:10
Tene: the thing I'm not sure of is whether to work on features, or on moving to NQP
lucian allison: is NQP not quite perl?
allison Tene: I'm finding NQP-rx a lot easier to work with than PGE
PerlJam lucian: aye 23:11
allison lucian: it's a lightweight language used inside the compiler tools
Tene Moving to NQP isn't too bad. I could put whatever time I end up with into that.
lucian allison: reading some nqp code. i guess my eyes are trained to recoil at the sight of perl
allison lucian: aye, my ultimate goal is to write the Python compiler differently (as you heard in my talk), but these tools are quite far along 23:12
lucian: it's a good boot-strap
lucian: don't think of it as perl, just think of it as a declarative DSL 23:13
lucian allison: yes, i get that it's a bootstrap. i'll have to supress my instincts 23:14
allison: i rather like pir. it is indeed the nicest assembly i've ever seen 23:19
23:19 Whiteknight joined
allison lucian: it's a good language, simple and powerful 23:20
particle except where it's messy and ugly 23:22
sure would be nice to get failure semantics cleared up.
dalek rrot: r44832 | tewk++ | trunk (7 files):
Added Parrot_str_is_null, DEPRECATED Parrot_string_* and STRING_is_null
23:26
Whiteknight did PBC_COMPAT bump recently? 23:32
tewk Whiteknight, are you working on init_int? I've decided to just bust it out, half way done already 23:33
I've got everything done but the vtable, I don't remember how to do those, looking 23:34
chromatic If you benchmark it, we'll get the biggest gains from adding it to CallContext and fixing the "Allocate one cell at a time" nonsense there.
If you're looking for an example of my "make it work, then make a pretty pass" philosophy, the allocation strategy in CallContext is certainly an example of something. 23:35
tewk chromatic, I'm motivated by fixing fixed*arrays but I'll paste a patch 23:36
soon
chromatic Do you consider them buggy or merely inefficient? 23:38
tewk I'm willing to live with data race conditions (who wrote to an array location last) but having to lock on every read and write to the array (sequential consistency) just to see if the array is allocated yet seems wasteful. 23:41
particle can't you emit two instructions for array creation? 23:42
chromatic Arguably you won't have anything sharing an array before you've finished creating it.
tewk particle, sure, but I'm trying to carve out a set of opcodes that have safety properties. And build a runloop that only allows safe instructions. 23:43
dalek rrot: r44833 | whiteknight++ | trunk/src/global.c:
allow adding of :anon :vtable Subs to the namespace. This technically resolves TT #1505, though some cleanup and performance improvements in this area would be welcome additions later
23:44
tewk if fixed*arrays' actuall data array is allocated when the fixed*arrays is created I know that sets and gets to fixed*arrays are safe. 23:46
cotto_work tewk, opsrenumber is only run rarely, so enumops.h should probably be checked in or built as part of the build process
also, ops_enum.h would be a subjectively nicer name
tewk cotto_work, feel free to fix it 23:47
cotto_work ok
chromatic +1 to ops_enum.h.
tewk I check things in so others can make them better :)
yeah I like it too, +1 I was trying to hard to be consistent to enum_class_ in the filename. 23:48
Whiteknight I check things in so that they may be absolutely perfect the first time!!!
Whiteknight lies
chromatic I like the whole idea, not just the name. 23:49
tewk imperfect checkins helps motivate newcomers that they can contribute too :) I believe in the bazaar.
allison ooh, I forgot to mention in my report, Parrot 2.0 is in Debian and Ubuntu Lucid 23:50
japhb yay!
cotto_work nice 23:51
Whiteknight allison: I would like to learn more about the whole debian packaging process 23:52
tewk howto add a vtable docs? I added a line to src/vtable.tbl, now what?
chromatic Have you heard of the description of Usenet as a stampede of elephants?
allison Whiteknight: happy to pass along info, get people started 23:53
Whiteknight chromatic: that metaphor never accounted for the huge volumes of porn on usenet. To my knowledge, most elephants are not obsessed with porn
japhb chromatic, It is just so much more painful than that
allison Whiteknight: I figure we'll have quite a few packages coming up for various languages
japhb Whiteknight, only because they haven't been provided with elephant-friendly cameras
Whiteknight allison: how painful is it? With the infrastructure in place now, how hard is it to get a release into the package repos?
dalek TT #1505 closed by whiteknight++: :anon vtable overrides don't work in PIR 23:54
Whiteknight japhb: they say the camera adds 15,000 lbs
chromatic Besides the large quantities of processed elephant food the process produces, it also produces large amounts of arguing over the legal intent and interpretation of non-legal documents written by non-lawyers and interpreted by non-lawyers.
allison Whiteknight: it can be slow, but patient persistence seems to do it
tewk plumage should provide a autopackage for debian/ubuntu, how I wish cpan had that feature 23:55
allison tewk: that would be great
Whiteknight allison: (patient persistance) damnit! I was hoping I could help!
japhb fperrad++ has been doing a great job of making Plumage metadata for everything under the sun. That should be a very useful boost for doing system packages. (Plus I think distutils does/will have some ability to make packages on its own)
allison tewk: some custom rolling likely still needed, but the common cases can be tackled
japhb Whiteknight, (re: 15000 lbs) *chuckle*
tewk allison, right, but it should do 95% of the work 23:56
japhb tewk: Plumage + distutils seems to be a powerful combo.
tewk japhb, I need to take a look at it sometime, nqp-nx too, I spend all my time in the c guts of parrot and PLT Scheme. 23:57
japhb nodnod
chromatic didn't realize PLT Scheme had a lot of C guts.
tewk Yes it has a lot, we want to get rid of them but we have less man power than parrot and a lot more complex, complete features. 23:58
it grew out of libscheme and has its C roots from there.
chromatic In the words of the tenth Doctor, "I'm sorry. I'm so sorry." 23:59