#parrot Parrot 2.1.1 Released! | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Tasks: Fix HLL bugs! Fix and test corevm target!
Set by moderator on 9 March 2010.
00:16 kid51 joined
Whiteknight pmichaud: ping 00:25
00:37 lichtkind joined
lichtkind is it true that the major parrot versions are now coming every year because distributions can plan better then 00:37
kid51 In part 00:38
High-Level Language developers have similar concerns
lichtkind kid51: thanks 00:39
00:41 snarkyboojum joined 00:43 davidfetter joined
lichtkind kid51: if you were so kind to have a look at www.perlfoundation.org/perl6/index.cgi?parrot 00:43
dukeleto 'ello 00:50
kid51 lichtkind: What about it? 00:51
lichtkind dukeleto: jo
kid51: just i fthere some mistakes or something to add 00:52
kid51 My impression is that that page is just meant to be a brief intro to Parrot for people coming to it via wiki pages for Perl 6 00:53
lichtkind it is
but more info can help
sorear dukeleto: pastie.org/869725
kid51 Since the creation of the Parrot Foundation in late 2008, all the "official" Parrot wiki pages are at parrot.org
lichtkind: patches welcome 00:54
purl patches welcome is always true
Austin whiteknight: warnings about pmc_new on my box. Do you get these?
Whiteknight Austin: not that I am aware of. Where? 00:55
lichtkind kid51: you mean i should also contribute to the parrot wiki?
nopaste "Austin" at 68.39.12.202 pasted "Warnings in pla" (12 lines) at nopaste.snit.ch/19950
Austin (is github up to date?)
kid51 lichtkind: Well, wikis are meant for public contributions. 00:56
Whiteknight Austin: pmc_new was renamed to Parrot_pmc_new recently. You might need to update your Parrot install
Austin How recently?
kid51 But if you'd like, you can send a patch for any wiki to our mailing list and one of the devs will look it over.
Austin I'm at 2.1
lichtkind kid51: i dont think there is room for a sixth wiki under my belt :) 00:57
Austin Geez, dude. You weren't kidding. 01:01
lichtkind kid51: plumage is the child of allison? 01:07
Austin: you mean me? 01:09
Whiteknight Austin: how in hell do I use a key in NQP that isn't an integer? 01:10
Austin lichtkind: No. I was talking to w-k
Whiteknight { }
lichtkind yes
Austin $foo{$key} 01:11
kid51 IIRC plumage was created by japhb
01:18 hudnix joined
lichtkind kid51: thanks 01:21
Whiteknight Austin: urg, that syntax creates a segfault for me
Austin Really? That's awesome. 01:22
Reproducible?
Whiteknight my $m := Parrot::new("NumMatrix2d"); $m{Key::new(0;0)} := 0; 01:23
and to top it off, distutils doesn't build the lib with debugging symbols, so I can't GDB it 01:24
now I need to dig through the distutils source to see if I can find a way to shoehorn that option into the compiler commandline 01:26
dukeleto Whiteknight: adding support to distutils for using debug symbols would be very useful indeed 01:27
Whiteknight what's the GCC flag to turn on debugging? 01:29
dukeleto Whiteknight: -g ?
purl rumour has it -g is debug
Whiteknight hmm, it looks like it is already building with -g 01:30
so then why isn't the library debuggable?
dukeleto Whiteknight: is your parrot built with debug symbols? 01:32
Whiteknight I think so 01:33
yeah, because I can GDB it
but when I step into linalg_group code, it goes opaque
sorear Whiteknight: usually when people install libraries these days, they strip them 01:36
Whiteknight sorear: this is a library I'm building, and I don't think it is getting stripped 01:37
sorear install -s?
Austin It's getting stripped.
distutils.pir:104
1004
01:37 kurahaupo joined
Austin $I0 = _has_strip(cflags) 01:37
sorear the fact that it's a library doesn't matter 01:38
hasn't mattered for years... that bug/misfeature where stripping libraries destroyed them was fixed circa 2000
dalek rrot: r44929 | dukeleto++ | trunk/CREDITS:
Add sorear++ to CREDITS
01:39
Austin whiteknight: gcc, or something else?
Whiteknight gcc
Austin It looks for -g in cflags, strips if not found. 01:40
dalek kapo: e196d45 | austin++ | (4 files):
Added NQP::compile_file, testcase.
01:41
Whiteknight yeah, so now I need to figure out where it's getting that cflags value
Whiteknight looks like it's in the config hash
Austin Default for dynops_cflags is '' 01:44
ditto pmc
Whiteknight ah, ccflags in parrot's config doesn't contain -g 01:45
cc_debug does
Austin whiteknight, if I put $P0['dynpmc_cflags'] = '-g' in setup.pir, it doesn't strip 01:46
(strip is the 2nd to last line of output, before Glue.pir) 01:47
Whiteknight yeah, if I do "--dynpmc_cflags -g" on the commandline, it doesn't strip either" 01:48
Austin whiteknight: For the test methods, what order to use? vtable, op, method, other?
Whiteknight good to know
I don't know what order to use yet
probably op, vtable method
though there is at least one test in there that's different from those three
Austin other? 01:49
Whiteknight urg, I don't think I like where this is going... 01:55
What I want to do: $P0[2;1] = $P1
what I apparently have to type: $m{Key::new(0, 1, 2)} := $n 01:56
why I need the first zero, I have no idea
and why I need to reverse the order of keys, I don't know either
Austin Is that a Key bug?
Whiteknight no idea
adding the zero makes the test not segfault anymore, and reversing the order of the keyes makes most of the tests pass again 01:57
Austin sings, "My parents taught me what life was about; so I grep up the type they'd warned me about..."
Whiteknight I think the later issue may be a problm with ordering in Key::new
anyway, it's time for bed now. I'll dig into this more tomorrow
Austin Okay. Niterz. 01:58
Whiteknight later
japhb lichtkind, I'm lead on Plumage, yes. What can I do for you?
lichtkind japhb: im writing an article and just mentioned you
japhb Ah, gotcha. 01:59
lichtkind japhb: but if you have some usefull infos i would be glad
japhb OK, what do you want to know?
lichtkind japhb: something that is remotly relevant for perl 5 folks :)
japhb *chuckle*
lichtkind how it going whats special about it 02:00
like that
japhb Well, development is picking up again after a lull. Plumage can be used to install Blizkost (the Parrot <-> Perl 5 linkage), though I believe Blizkost needs to be updated to the latest HLL interop spec -- jnthn++ is working on that. 02:01
sorear blizkost also needs to be made to work at all 02:03
02:03 hiroyuk__ joined
sorear I'm working on that 02:03
lichtkind sorear++ great
japhb Plumage can already work with a number of different configure/build systems, including Perl 5 MakeMaker scripts; more build systems are easy to add, and are done on an as-requested basis.
lichtkind japhb: since a talk with jnthn not only about beer i know that already :)
japhb well, there you go. :-) 02:04
lichtkind i mean not your last sentence :)
japhb And of course, there's useful (though somewhat out of date) info at:
plumage?
purl 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
lichtkind japhb: but you cant sompare plumage with cpan.pm?
japhb lichtkind: partially. It's more powerful in some ways, weaker in others. 02:05
dang, AFK for a bit, kids
lichtkind allright
02:08 AndyA joined
sorear that's good, cpan is powerful in most of the wrong ways 02:08
nopaste "Austin" at 68.39.12.202 pasted "Key exercise, for whiteknight++" (11 lines) at nopaste.snit.ch/19951 02:11
Austin msg whiteknight I think you're doing Key::new, but should be doing Key.new. That explains the 0. 02:12
purl Message for whiteknight stored.
Austin msg whiteknight Also, I nopasted (nopaste.snit.ch/19951) a test that works for me. I notice you've got ROWMAJOR and COLMAJOR macros for access. Are you sure you've got your expectations right? 02:13
purl Message for whiteknight stored.
kid51 must sleep 02:15
purl $kid51->sleep(8 * 3600);
02:44 davidfetter joined
japhb lichtkind, OK, back 02:44
lichtkind japhb: thanks but here its almos 4 am 02:45
maybe time to sleep :)
japhb For example, CPAN has a massive FTP/rsync file hosting system,
lichtkind interesting
japhb Plumage does not -- it pulls from whatever hosting system each project is stored in.
So if the canonical source of a project is a VCS repo, it just pulls from there. 02:46
(In fact, most of the current projects are exactly that way -- hosted at github, gitorious, googlecode, etc.)
japhb notices the "4 am" comment ...
ah, well, rest well!
lichtkind not yet 02:49
doing curretly typo proof
japhb Currently Plumage understands Subversion, Git, and Mercurial repos, but I expect someone will decide to put a project in a Bazaar, Darcs, or (perish the thought) CVS repo, and then I'll add that.
lichtkind now i understand thanks
shure cpan cant do that
sorear What about stone age folks who just host code on HTTP? 02:50
lichtkind but how you know which version to pull?
japhb sorear, we have a proof of concept HTTP puller in place ... but no one has actually hosted a Parrot project that way so far, so it is unused.
lichtkind, right now it pulls from the VCS-specific default HEAD/master/trunk/whatever. On the short list is allowing it to track a specific branch or even pull a particular tag or commit. 02:51
sorear googles parrot plumage 02:52
japhb plumage?
purl 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
sorear first entry about actual psittacine hair is #3
#1 and #2 are your project
japhb Well good then. ;-)
I wander if purl can google ...
google parrot plumage
purl, google parrot plumage 02:53
purl japhb: excuse me?
japhb ah well
japhb slightly increases the priority of writing an IRC MCP 02:54
02:54 parthm joined
sorear MCP? 02:54
purl i guess MCP is the root of all evil. or a good way to get better pay. or Master Control Program or MacMillan Computer Publishing (SAMS) or Male Chauvinist Pig or Master Control Program
japhb tron?
purl tron is pr-ah-n
japhb bleah 02:55
TRON?
purl TRON is pr-ah-n
japhb sorear, well, look for MCP in the context of TRON.
japhb wonders when TRON 2.0 will actually, finally, no really, we mean it, hit theaters. 02:56
lichtkind japhb: thanks
was real help
japhb lichtkind, np, happy to help
02:56 snarkyboojum joined
japhb #perl6 spirit is alive and well here too. ;-) 02:56
lichtkind japhb: and due parrot wiki i really have still some major open works in the perl 6 wiki 02:57
japhb ?
lichtkind japhb: there are major work i started in perl6 wiki
japhb: id rather finish that befor begin new stuff 02:58
good night 02:59
japhb good night! 03:03
lichtkind :) 03:04
sorear hmm 03:08
how does Plumage get told about new projects?
s/does/will/
unrelately, I have visions of blizkost being a very confusing program to install 03:09
I'm probably going to have to do an entirely custom configure/build system for it
japhb Right now, the metadata repository is hosted inside the Plumage repo. Eventually the metadata repo will be a web service, somewhere in the cloud, that Plumage will use remotely
sorear since it needs to install both in perl -V:inc and (wherever parrot looks, I'm new) 03:10
japhb sorear, but once you get that done, no one else will have to know it, they'll just do 'plumage install blizkost' and wait.
sorear, I believe you are thinking of the Parrot versioned libdir. 03:11
Plumage's metadata is just JSON files. Readable everywhere.
sorear who writes them? 03:12
japhb Some are hand-written by project owners. Others are written by people who want to "package" a project so that Plumage will know about it. Still others use Parrot distutils, which can make a Plumage JSON metadata file directly from the build instructions and a few hash keys. 03:14
03:30 lichtkind_ joined
sorear notes to self to add Plumage metadata generation to the blizkost configure/build system 03:30
03:35 Andy joined 03:36 janus joined
dalek kudo: c29d389 | (Solomon Foster)++ | t/spectest.data:
Add S03-operators/not-metaop.t test.
03:46
03:57 parthm left 03:59 snarkyboojum joined 05:15 chromatic joined 07:01 bacek joined
bacek aloha 07:02
07:05 JimmyZ joined
cotto hi 07:07
bacek cotto, I "fixed" complete_workflow.t 07:10
cotto with lasers? 07:12
bacek with fire :) 07:13
check last commit in branch
cotto Interesting. compilers/nqp should be the same as trunk. Was the merge goofy? 07:14
dalek kapo: af2012b | austin++ | (2 files):
Amended String.substr to be more lax with the limit parameter.
kapo: 1923d23 | austin++ | examples/UnitTest/unit-test-template.nqp:
Added unit testing template in examples/
kapo: 74c6f33 | austin++ | (2 files):
Fixed up Assertion: assert_throws.
kapo: 58383cc | austin++ | src/Pmc/Array.nqp:
Fixed bug in Array::is_sorted.
kapo: 2575cb0 | austin++ | (11 files):
Added Multisub.nqp to generate multisubs/multimethods.
07:15 aukjan joined
bacek cotto, not actually. It was my hack to support string interpolation. 07:16
(which wasn't merged properly)
cotto I have a patch to remove compilers/opsc/opsc.pir from the build, but it breaks some tests and ops2c.nqp. Care to take a look? 07:20
dalek rrot: r44930 | bacek++ | branches/ops_pct (5 files):
Copy compilers/nqp from trunk overriding old changes in branch.
07:21
bacek I actually use opsc to quick check generated past.
cotto ok. I have a separate driver script I've been using.
bacek then commit it. 07:23
cotto not a bad idea 07:24
(assuming it == the driver script) 07:25
bacek yeah :)
Files=345, Tests=12180, 107 wallclock secs ( 3.13 usr 0.76 sys + 61.87 cusr 16.14 csys = 81.90 CPU) 07:27
IT WORKS
cotto It may be worth keeping opsc.pir around to avoid requiring a bunch of loadlib instructions in code that uses and tests opsc
?
complete_workflow?
happy times. 07:28
bacek++
07:28 iblechbot joined
bacek In future we can just pbc_merge all files into single pbc. 07:28
(It was test of self-generated core_ops)
cotto That's what I'm working on.
bacek ok 07:29
cotto I guess the loadlibs could go in src/builtins.pir
bacek I'll start reading other OpTrans/*.pm files
cotto they don't really fit though
bacek yeah. It's just workaround 07:32
bacek opened beer-of-victory and OpTrans/CGoto.pm
cotto I wonder if there's any hope of opsc going through the ops at a reasonable speed. 07:33
bacek Just steal Austin++ Close grammar. There is a _LOT_ of backtracking happens. 07:35
cotto is it speedy? 07:37
bacek I hope so.
cotto Looks like it hasn't been updated in a little while. It still looks for parrot_nqp 07:44
bacek But grammar should be same 07:45
cotto iwbn if nqp-rx implemented ::
bacek yeah... 07:46
cotto time for sleep. Happy Monday, bacek. 07:48
clock
clock?
purl cotto: LAX: Mon 12:48am PDT / CHI: Mon 2:48am CDT / NYC: Mon 3:48am EDT / LON: Mon 7:48am GMT / BER: Mon 8:48am CET / IND: Mon 1:18pm IST / TOK: Mon 4:48pm JST / SYD: Mon 6:48pm EST /
bacek cotto, good night. And Monday is almost over :) 07:49
cotto That's what's happy about it.
. o 0 (good save)
night
08:01 JimmyZ_ joined
dalek rrot: r44931 | bacek++ | failed to fetch changeset:
Remove set_label and get_label from ops.num _again_.
08:11
08:15 fperrad joined 08:34 bacek joined
sorear does Parrot have a binding for file descriptor I/O? 08:37
08:38 kurahaupo joined
bacek sorear, FileHandle PMC 08:42
08:53 joeri joined
sorear how do I bind a FileHandle to a FD? 08:57
and does FileHandle guarantee to not do readahead?
bacek (bind) isn't possible now. But it's easy to add method set_fd to FileHandle. 09:05
(readahead). No. It doesn't readahead now, but it's not specced afaik
09:18 iblechbot joined, kurahaupo joined 09:44 lucian joined 10:34 gaz joined 10:51 payload joined 10:52 payload joined 12:06 lucian joined 12:08 whiteknight joined
dalek kudo: 3bc40d3 | (Solomon Foster)++ | src/ (3 files):
Revert "Change !op to generate an explicit call to an infix_prefix_meta_operator function." This goes back to the first implementation of !op, which now works and is probably a bit more efficient than the second implementation.

Conflicts:
  \tsrc/core/operators.pm
12:09
kudo: ef3cd20 | (Solomon Foster)++ | (3 files):
Move !op implementation functions from assign.pir to new metaops.pir.
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32687), fulltest) at r44931 - Ubuntu 9.10 amd64 (g++ with --optimize) 12:10
whiteknight good morning #parrot 12:12
mikehh howdy whiteknight
whiteknight good morning mikehh 12:14
Coke apparently lost his place in scrollback. whoops. 12:23
12:28 AndyA joined 12:36 davidfetter joined
Austin Good morning, whiteknight. 12:40
whiteknight good morning Austin
Coke wonders if anyone would get upset if he auto-gen'd trac.parrot.org/parrot/wiki/ParrotFaces from CREDITS. 12:41
whiteknight you're probaly right about the Key.new thing. I'll have to try that and see how it goes 12:42
Coke: +1
purl 1
Austin Go for it, Coke.
whiteknight DO EET
Austin white - The .new thing is trivial, if that's the problem. I'm more concerned about the ordering issue.
Are you sure you're expecting the right order?
Coke: Is there a trac plugin for that? 12:43
Coke Austin: no clue. 12:45
whiteknight Austin: Let me try it with the .new first, just to make sure I'm creating the correct object and passing it correctly.
I have some updating to do on this box first, I'll test it in a little bit 12:46
Austin s'cool
szbalint Coke: bored of yours being the only face there atm? :)
Austin The one problem I have with | being the flattening operator is that it's awkwardly located on my (US) keyboard. I could wish for '*' in a dual role (flatten, splatten) 12:53
whiteknight oh, is that what | is? 12:54
I can't remember what all the damn twigils do in P6
Austin This is an operator, not a twigil. (heh)
|@list 12:55
not to be confused with @|list
whiteknight ...and I can't even remember what a twigil is
Austin (which doesn't do anything, I think)
$!foo - attribute
!$foo - negation
whiteknight like it would kill anybody to use real, english words like flat(@list), or @list.flat, or @list :flat
Austin Hello! Perl?
whiteknight oh, you're right. it *would* kill people 12:56
Austin You're talking to the guy who campaigned to get '-' as a valid identifier character, to avoid shifting _ 12:57
Takin' mah keyboard BACK!!! 12:58
Coke bah. most of you have not setup gravatars!
Austin There was no killer app for it, before. 13:00
Thanks to you, Coke++, now there is.
Although I notice the page hasn't changed... 13:01
Coke we have a duplicate E: somewhere. 13:04
Austin What are the odds of that?
purl the odds of that are good, sadly.
Coke there are 145 entries, but 144 unique. 13:05
dalek kudo: 01c8cc2 | (Solomon Foster)++ | src/ (3 files):
Quick implementation of reverse metaop.
13:06
kudo: f6de386 | (Solomon Foster)++ | t/spectest.data:
Add S03-operators/r-metaop.t to tests.
whiteknight Austin: I think the ordering issue goes away once I fix the .new thing
initial tests are encouraging
Austin Really? 13:07
Sweet.
mikehh ops_pct branch - make corevm/make coretest, test PASS - codetest remaining failures seem to be nqp related 13:11
Coke Austin: check now.
It is currently dominated by the wavatars. 13:12
Austin Heh. cvs@perl.org has a gravatar?
Coke every email address has a default one, yes.
someone who wanted to refine tools/dev/faces.pl to skip known bots can get cheap karma. =-) 13:13
schwern++ 13:14
I exluded x rated gravatars. no clue if we should ratchet that down lower. 13:15
Austin So far it's 2 stupid pictures and 1 cat.
whiteknight Austin: I'm getting a weird test failure today after your updates last night
Austin I think you should bring back the X rated ones.
whiteknight: Frabjous. Where is it? 13:16
whiteknight assert_throws is giving me a weird Null PMC Access in get_number
when I take out assert_throws, the test fails (obviously throws an exception), but it's a very different exception
Austin So much for improving it
whiteknight I waddled through the code, doesn't look like you're calling get_number anywhere
unless boolean && does it internally
Austin Oh, you never know.
whiteknight exactly 13:17
Austin Nopaste?
purl somebody said Nopaste was at nopaste.snit.ch/ (ask TonyC for new channels) or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others) or gist.github.com/ or paste or gtfo or tools/dev/nopaste.pl or trac.parrot.org/parrot/browser/tru...nopaste.pl
whiteknight it's t/pmc/nummatrix2d.t:test_VTABLE_add_NUMMATIX2D_SIZEFAIL. I've updated it from assert_throws("Exception", ... to assert_throws(Exception,... 13:18
Austin That work?
whiteknight it used to work with the string. Though I think that may have been a bad coincidence
Austin No, I probably broke something. Lemme check.
dalek rrot: r44932 | mikehh++ | branches/ops_pct/compilers/opsc/t/01-parse.t:
fix 01-parse.t to pass pod_syntax.t
13:19
rrot: r44933 | coke++ | trunk (2 files):
add faces.pl
Austin Nope - I didn't break that. I corrected a bug that was probably passing you. 13:21
|| vs &&
whiteknight yeah, that's the conclusion I came to
Coke Austin: removed the bots. enjoy.
Austin Hunh. I was kind of wondering what purl looked like.. 13:22
dalek tracwiki: v3 | coke++ | ParrotFaces 13:23
tracwiki: update from tools/dev/faces.pl
tracwiki: trac.parrot.org/parrot/wiki/ParrotF...ction=diff
tracwiki: v4 | coke++ | ParrotFaces
tracwiki: rm bots
tracwiki: trac.parrot.org/parrot/wiki/ParrotF...ction=diff
Coke msg notfound: "perl tools/dev/faces.pl > /dev/null" 13:25
purl Message for notfound stored.
nopaste "whiteknight" at 173.12.37.77 pasted "Example test failure for Austin++" (24 lines) at nopaste.snit.ch/19952 13:30
whiteknight Austin: That's the test and the error I get. Below the divider, I comment out assert_throws and I see the exception I am trying to "catch"
so any insight about how to do it correctly would be much appreciated
Austin Yowza. You get this even after converting from string to protoobject. 13:31
whiteknight yes 13:32
before converting from string, error was worse 13:33
"method 'type' not found in String", etc
Austin Ahh. 13:34
I see it.
You can't do that.
(yet)
I suspect you're trying to say "throws any old exception" 13:35
But subclassing exceptions doesn't work in trunk just yet, so I have to use .type
dalek rrot: r44934 | coke++ | trunk/tools/dev/faces.pl:
Skip bots; avoid repeating ourselves.
rrot: r44935 | coke++ | trunk/tools/dev/faces.pl:
warn about duplicated email addresses in CREDITS
whiteknight so I would have to throw a kakapo-approved exception type? 13:36
Austin And the Exception class has no assigned type number. (And it would be the wrong one, if it did..)
The 'wanted' parameter (e_type) to assert_throws has to have a .type that returns a number.
whiteknight okay. So is there any way to make this work with assert_throws, or do I need to homebrew a workaround?
Austin So if you are making up your own exceptions, that's okay so long as it has a type. 13:37
whiteknight I'm throwing that exception at the C level
Austin And ...
Just a message? 13:38
whiteknight Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_OUT_OF_BOUNDS, "ComplexMatrix2d: cannot set unknown PMC type");
src/pmc/complexmatrix2d.pmc:126
Austin Exception::OutOfBounds 13:39
src/Exceptions.nqp:145
:)
whiteknight ah, nice. That works
13:39 smash joined
smash hello everyone 13:39
Austin If there's a EXCEPTION_ or CONTROL_ constant, I've got it in CamelCase with one :: 13:40
Hello, smash.
Whiteknight: I've put in a todo for when subclassed exceptions come up 13:44
13:48 Andy joined
Coke Andy++ # keeping a job you don't love 13:48
Andy Thanks, Coke. 13:49
whiteknight Austin: being able to specify something like Exception::Any might be nice
but then again, you should really know what exception you are expecting
Austin Heh
I'm torn on that one. I've written some pretty funky code for that - do you realize how many ways a symbol can fail to exist in NQP? But OTOH, I'm not sure I love "catch frenzy" 13:50
whiteknight well, you're the expert framework designer. 13:55
Austin Bwahahahaha! ROTLMAO. 13:56
There's three words I never expected to hear in a sentence about me.
whiteknight well, you're certainly an expert at using your framework 14:03
and you are designing it 14:04
Austin Heh
whiteknight whether you are desiging it expertly, that's something I cannot say
Austin :)
As soon as I'm done, I'll be able to tell you how I *should* have done it..
14:12 ruoso joined 14:17 chromatic joined, payload joined, bubaflub joined
dalek rrot-linear-algebra: 2a73c57 | Whiteknight++ | t/pmc/nummatrix2d.t:
rewrite nummatrix2d.t:matrix2x2() to use fancy new Key.new syntax. Does not affect any test results. Also, fix a problem with assert_throws that was uncovered after Austin++ made some changes to kakapo last night
14:25
rrot-linear-algebra: 5807d1e | Whiteknight++ | t/pmc/complexmatrix2d.t:
update complexmatrix2d.t to use better function names for tests. Also, add a test for set_pmc_keyed<String>, which should fail. Remove several instances of Q:PIR, which are unneeded now with newer syntax (but leave one case where I want to be double-sure I am calling the right VTABLE)
rrot-linear-algebra: bee5da1 | Whiteknight++ | (2 files):
fix ComplexMatrix2D.fill() to work. Add a passing test for the behavior. Also, expand several other TODO tests
rrot: r44936 | mikehh++ | branches/ops_pct/compilers/opsc/src/Ops/Op.pm:
fix Op.pm to pass pod_syntax.t
14:26
whiteknight Austin: You said you had a way to include NQP files into one another? 14:27
Austin Compile, not include.
Check out src/Parrot/NQP.nqp 14:28
whiteknight awesome, thanks
Austin Nqp::compile_file($file)
whiteknight Most of the types in PLA share (or should share) a lot of common behaviors, especially with respect to indexing and resizing. I'm looking for a good way to include a number of boilerplate tests and helper methods into each test file 14:29
So I'm thinking I create a PLA::Test type, and inherit that 14:30
Austin Exactly.
whiteknight so then how do I make sure that PLA::Test file is included in each test?
nopaste "Austin" at 68.39.12.202 pasted "Started Pla Testcase" (44 lines) at nopaste.snit.ch/19953 14:31
whiteknight I guess as part of the normal build I could compile it down to .pbc and loadlib it
nopaste "Austin" at 68.39.12.202 pasted "Sanity, with changes" (24 lines) at nopaste.snit.ch/19954
Austin I started on this last night. Sorry I didn't have time to finish it for you. 14:32
whiteknight no problem. I'm happy for any help I can get
so two questions: To add tests to all files, I would just add the test methods to PLA::TestCase itself? 14:33
Austin Right 14:34
14:34 payload joined
Austin (at least, if it doesn't work it should) 14:34
Austin sings, "Straight from 12th grade into Junior College...buddy, buddy, buddy I passed my exam..." 14:36
dalek rrot: r44937 | mikehh++ | branches/ops_pct/compilers/opsc/src/Ops/File.pm:
fix File.pm to pass pod_syntax.t
14:42
14:42 patspam joined
dalek rrot: r44938 | mikehh++ | branches/ops_pct/compilers/opsc/src/Ops/Compiler/Actions.pm:
fix Actions.pm to pass pod_syntax.t
14:42
14:43 payload1 joined 14:55 theory joined
dalek rrot: r44939 | mikehh++ | branches/ops_pct/compilers/opsc/src/Ops/Trans/C.pm:
fix trans/C.pm to pass pod_syntax.t
14:58
15:03 PacoLinux joined 15:06 Psyche^ joined
dalek kudo: eff4bd3 | (Solomon Foster)++ | src/Perl6/ (2 files):
Switch the grammar to look for an infixish rather than an infix after infix_prefix_meta_operator so that you can stack metaops.
15:13
Coke gets "cold-call" email about local perl work. freaky. 15:38
dukeleto is making progress on a bitbake recipe for parrot: gist.github.com/332962 15:42
davidfetter waves to dukeleto 15:44
dukeleto waves back 15:47
15:51 NotFound joined
NotFound hi 15:51
davidfetter oh hai 15:53
16:03 payload joined
cotto_work hi 16:27
purl salut, cotto_work.
cotto_work bacek_at_work, what's broken about get_label and set_label? 16:37
16:39 chromatic joined 16:56 chromatic joined
dalek kudo: b12fd89 | moritz++ | src/cheats/parrot/Protoobject.pir:
don't warn on boolification of type objects.

Also include a wee bit more information in the warnings when using a type object as a value (in the vtable methods in cheats/parrot/Protoobject.pir)
17:02
17:19 particle joined 17:24 ttbot joined
dalek kudo: 79085cd | (Solomon Foster)++ | src/Perl6/Grammar.pm:
Add Zop to the grammar. (Actual implementation not yet there.)
17:31
kudo: bc08aa4 | (Solomon Foster)++ | src/ (2 files):
Implement infix:<X>.
kudo: e3b5d7b | (Solomon Foster)++ | src/Perl6/Grammar.pm:
Add Sop and Xop to the grammar, without actually implementing them.
whiteknight bt 17:34
plobsing No stack. 17:47
17:47 payload joined
cotto_work we need to fix pod_syntax.t to deal properly with nqp 17:54
fsvo we
whiteknight my PMCMatrix2D type is going to have a fill() method to populate a swath of elements with a given value. But, I don't know whether I should do straight pointer copies, or use VTABLE_clone
any opinions? 17:55
plobsing you can build a cloning fill out of a non-cloning one easily enough. the reverse is not true. 17:56
kthakore hi
purl hola, kthakore.
kthakore are OS threads possible with parrot? 17:57
dalek rrot: r44940 | chromatic++ | branches/pcc_hackathon_6Mar10/src/call/args.c:
[PCC] Tided code; no functional changes.
whiteknight plobsing: true, but I'm wondering if there is a utility for a cloning fill?
rrot: r44941 | chromatic++ | branches/pcc_hackathon_6Mar10/src/ops/core.ops:
[ops] Made set_returns op clear current object so that the new PCC sig object
Coke chromatic: what's the eta on mergeback on that branch? post-release?
17:59 payload joined
chromatic Definitely post-release. 17:59
Lots of tests still fail.
Coke realizes that 2.2 is due tomorrow. 18:00
cotto_work yes it is
18:01 iblechbot joined, ash_ joined
plobsing chromatic: if we de-dupped strings while generating PBC, we should get all the advantages of that PBC string consting patch plus smaller PBCs. 18:06
chromatic I think we do de-dup strings when generating PBCs. 18:10
However, the de-dup on loading de-dups *across* PBCs.
It also de-dups between multiple PBCs *and* constant STRINGs in libparrot.
plobsing chromatic: OK I see how its not as big a win, but I don't see us doing that right now. I'm looking at PF_store_string. 18:11
chromatic I thought NotFound wrote some code to merge constants. 18:12
18:13 Psyche^ joined
plobsing sounds cool. where can I see that? 18:14
18:14 atrodo joined
plobsing but in any case, that wouldn't catch all strings. I know that ImageIO freezing calls PF_store_string directly. 18:15
cotto_work plobsing, r44606 18:16
dalek rrot-linear-algebra: 65aa330 | Whiteknight++ | t/ (3 files):
update nummatrix2d.t to use the new Testcase library. Fix things so all tests pass. Move more common stuff into the parent.
chromatic r44606, TT #1493
rrot-linear-algebra: 67bff8b | Whiteknight++ | (2 files):
identify and avoid an issue in nummatrix2d where we set_block with a non-nummatrix2d argument. Causes segfault before the workaround. Add TODO notes and test stubs for when we do fix it
rrot-linear-algebra: cf4d838 | Whiteknight++ | t/pmc/charmatrix2d.t:
update CharMatrix2d to use the Test library. Some tests fail.
plobsing so string constants in PMCs are excluded
rrot-linear-algebra: e630f9d | Whiteknight++ | t/Testcase.nqp:
update CharMatrix2d to use the Test library. Some tests fail.
rrot-linear-algebra: a13f126 | Whiteknight++ | t/ (2 files):
override fill() tests for charmatrix2d. It behaves subtly different than other matrix types because of it's focus on string arrays.
rrot-linear-algebra: 6f0ce99 | Whiteknight++ | src/pmc/charmatrix2d.pmc:
update charmatrix2d to use rows/cols isntead of x/y internally, for clarity
rrot-linear-algebra: 04f9eff | Whiteknight++ | t/pmc/charmatrix2d.t:
add some todo notes. All charmatrix2d tests pass, or are properly todo'd
rrot-linear-algebra: e46e5d7 | Whiteknight++ | src/pmc/pmcmatrix2d.pmc:
add an is_equal vtable to pmcmatrix2d
rrot-linear-algebra: ec0e7ab | Whiteknight++ | (2 files):
update pmcmatrix2d.t to use new Test library. Fix PMCMatrix2D so empty spots are PMCNULL instead of NULL. Add is_equal and clone_vtables. All but two tests pass now.
rrot-linear-algebra: a4d0b23 | Whiteknight++ | src/pmc/pmcmatrix2d.pmc:
add a fill() method which fills the specified area with clones of the given argument.All tests now pass.
whiteknight ... I forgot how many commits I made. Sorry for the flood
Tene Yeah, quit doing so much work! You're making the rest of us look bad! 18:17
18:25 kjeldahl joined
cotto_work mikehh, next time you fix opsc code, make sure the build still works (make opsc). nqp has a different pod syntax from Perl 5. 18:27
mikehh cotto_work: ok - we got to incorporate tests for nqp in the test suite then 18:34
cotto_work agreed
Coke any tests that test "perl" are meant for "perl5", not nqp or perl6 18:35
easy fix is to fix the Parrot::Distribution modules that checks for perl files.
mikehh everything passes for me except copdetest and mostly it fails on nqp stuff, and ext/nqp-rx/src/gen/settings.pm line which it shouldn't be testing anyway 18:36
18:37 payload joined
Coke nothing in ext/ should be run under codest, IMO. 18:38
"codetest"
whiteknight +1
purl 1
mikehh yes - we agreed on that a few months ago 18:39
talking about ext - has the latest nqp been put there?
18:39 Andy joined
mikehh nqp_rx or whatever 18:40
18:40 payload joined
Coke mikehh: can you open a ticket on that codetest stuff so we don't forget? 18:42
mikehh Coke: its in the ops_pct branch, but I will do something on that 18:43
cotto_work: what is required regarding src/ops/core_ops.c - it gets removed by make realclean and it gets restored by svn update 18:48
also the build generates line no's now (for me at least) which the file in the repo doesn't have 18:49
cotto_work It shouldn't be removed by clean anymore.
unless something's changed, it's the old ops2c perl code that generated the line numbers 18:50
mikehh you did a merge from trunk - so maybe that need to be checked 18:51
cotto_work I remember doing some work but the build infrastructure is a bit rough around the edges. 18:52
mikehh or bacek might have added it
cotto_work It'll be easier to fix once ospc does everything that osp2c does now.
until then it's worthwhile for the branch to have some quirks 18:55
Yeah. The opsc-generated code doesn't do line numbers yet. 18:56
mikehh anyway I'll have a look later - got an LUG meeting in half an hour 18:58
dalek rrot: r44942 | chromatic++ | branches/pcc_hackathon_6Mar10/src/call/args.c:
[PCC] Removed invocant unshifting from Parrot_pcc_build_sig_object_from_op(),

but many, many more tests pass than fail now. We need a different approach.
19:03
19:05 eric_j joined 19:06 TiMBuS joined 19:22 lichtkind joined 19:25 bacek joined
chromatic bacek, I reclaimed a lot of tests on the PCC branch with r44942. 19:27
Unfortunately, one or two regressed. 19:28
19:29 hercynium joined
bacek morning... 19:32
whiteknight incoming
purl duck!
dalek rrot-linear-algebra: 6140e52 | Whiteknight++ | t/ (3 files):
change fancyvalue to take an index. This allows us to return an ordered set of interesting values, which we can use to run interesting tests. Add common tests for transpose and mem_transpose.
purl dalek: that doesn't look right
dalek rrot-linear-algebra: 455f275 | Whiteknight++ | t/ (3 files):
add common tests for initialize_from_array and initialize_from_args. I think only nummatrix2d has these methods right now, so tests for other types fail.
rrot-linear-algebra: a46790c | Whiteknight++ | t/ (2 files):
add tests for iterate_function_inplace using closures. Fix tests for initialize_from_args
rrot-linear-algebra: e0f1f05 | Whiteknight++ | t/Testcase.nqp:
fix test ordering to me more like what Austin++ had before I was stupid and broke it
bacek chromatic, I never understand removed code anyway. 19:33
chromatic We're down to 25 failing test files in coretest now. 19:35
Most of the other failures were because test_more.pir didn't work, thanks to that removed code.
bacek 2 failing tests about return_info 19:38
and we need IMCC magician to fix them :)
chromatic Tell me what I need to do (preferably in a ticket) and I may be able to make them work. 19:39
bacek we need new opcode "set_return_info" which will simulate old behaviour 19:40
and change IMCC to emit it for PCC calls 19:41
purl bacek: that doesn't look right
bacek purl, forget change
purl bacek: I forgot change
dalek rrot: r44943 | bacek++ | branches/pcc_hackathon_6Mar10/src/call/context_accessors.c:
Add assertions in Parrot_pcc_get_foo_constant to prevent access to wrong constant and catch it early.
19:52
rrot: r44944 | bacek++ | branches/pcc_hackathon_6Mar10/src/runcore/trace.c:
Use Parrot_pcc_get_foo_constant instead of PCONST in trace runcore.
rrot: r44945 | bacek++ | branches/pcc_hackathon_6Mar10/t/compilers/imcc/syn/tail.t:
Update test to use get_results after call.
bacek chromatic, Coro.yield is broken.
chromatic I'm looking at t/oo/methods.t
That one looks like a nice, easy fix once we figure out what's going on. 19:53
I have to decommute right now though.
bacek ok. Coro.invoke fixed. 19:56
I'll see what I can do this morning.
20:05 kthakore left
dalek rrot: r44946 | bacek++ | branches/pcc_hackathon_6Mar10/src/pmc/coroutine.pmc:
Propogate ctx.current_signature into callee context in Coro.invoke
20:08
rrot: r44947 | bacek++ | branches/pcc_hackathon_6Mar10/src/extend.c:
Fetch current_singature before filling results in Parrot_ext_call.
rrot: r44948 | bacek++ | branches/pcc_hackathon_6Mar10/t/pmc/nci.t:
Update test to use get_results after invokecc
20:13 kurahaupo joined
cotto_work draft news for Parrot 2.2.0, feel free to add your contributions: gist.github.com/333270 20:14
note: I've added a deliberate lie. See if you can find it. 20:16
(or have I?)
Coke sun cc support was never missing? 20:20
I think it's more important that we we no longer invoke perl to invoke the compiler (rather than that the build verbosity increased). 20:21
cotto_work I thought we used to support it.
I could be wrong. 20:22
chromatic We did, sort of. 20:23
20:29 kurahaupo joined
Coke andy d's been building on it for some time. it never went away, except in branch. 20:38
... where it was restored before mergeback to trunk.
20:59 payload joined 21:02 cosimo joined 21:04 kurahaupo joined
bacek chromatic, easiest way to fix other bugs is to remove invoke_method. And fix all calls to use invoke_from with "Pi" signature. 21:19
21:19 Whiteknight joined
bacek chromatic, check build_call_from_varargs. It has same hairy code as you removed in build_sigobject. 21:20
chromatic I saw that; wasn't sure if removing it would help.
tewk It would at least be more readable. 21:21
bacek chromatic, it will. Removing it help with t/pmc/object-meths.t
chromatic I get a lot of too few positional arguments: 0 passed, 1 (or more) expected exceptions in coretest. 21:22
Ah, I see what you're saying. 21:24
bacek Anyway, time to prepare for $dayjob. 21:25
See you.
21:26 hercynium joined
NotFound plobsing: ping 21:37
21:41 joeri1 joined, joeri1 left
dalek rrot: r44949 | chromatic++ | branches/pcc_hackathon_6Mar10/src/call/pcc.c:
[PCC] Added static Parrot_pcc_add_invocant() function to call only when

frequently wrong.
21:46
cotto_work We need to rip off speed.pypy.org . 21:47
21:59 bacek joined
dalek kudo: 8826895 | (David Romano)++ | (10 files):
Merge remote branch 'upstream'
22:05
Whiteknight chromatic: methinks interp->current_object should disappear eventually. We should be able to store that info directly in the CallContext and not worry about copying i 22:07
chromatic Agreed. 22:08
I managed to get rid of some of it though.
Whiteknight how far are we on the pcc stuff? I'm up'ing and rebuilding now 22:09
chromatic 12 test files have failures currently.
PGE doesn't build.
Whiteknight oh wow, that's not bad at all
PGE never builds. It's the canary in the coalmine
chromatic CodeString doesn't build, so PGE has no chance. 22:10
bacek chromatic, check callmethodcc. Looks like we have to call add_invokant here
chromatic Er, CodeString doesn't pass tests.
bacek, we don't build a signature there sadly... I'm not sure where to put it. 22:11
Unless you mean getting one after VTABLE_invoke...?
Isn't there a problem with NCI methods there though? 22:12
dalek rrot: r44950 | bacek++ | branches/pcc_hackathon_6Mar10/src/call/args.c:
Remove invokant unshifting similar to r44942.
22:18
plobsing NotFound: pong 22:20
NotFound plobsing: the strings contained in pmc are not so easy to unduplicate in the pbc, they follow a differente path. 22:21
plobsing NotFound: exactly. I think we'd have to pass some kind of state to PF_store_string to manage it. 22:22
NotFound plobsing: even with that, I think it can't be done with the current freeze and thaw implementation. 22:23
plobsing NotFound: why not? if we passed some kind of state object to PF_store_string (which is what freeze/thaw and IMCC use), it could contain a list of strings already seen and use a flag to indicate this. PF_fetch_string could use a similar list to lookup flagged duplicates. 22:25
22:27 Essobi_ joined
NotFound plobsing: I'm not compltely sure, but looks like PF_store_string gets passed the PMC content already serialized, doesn't even know what strings are on the inside. 22:28
plobsing NotFound: that's not quite how it works. PMCs don't (or shouldn't, Eval is evil here) pick their serialization. 22:29
The way freeze/thaw works is that you tell the visitor about your attributes. In the end an object graph is nothing more that INTVALS, FLOATVALS, STRINGS, and links between nodes. 22:30
NotFound plobsing: I don't see such strings in the pbc constant table. 22:31
plobsing NotFound: that's because they are inline ATM. I'm suggesting we put them in the constant table or give them an ID some other way so that we can refer back to the first encountered instance upon duplicate detection. 22:32
cotto_work particle, ping 22:33
particle pong 22:34
plobsing This could be a big win for any code that stores a lot of constants based on hashes with the same keys (objects of the same type for example)
NotFound plobsing: the problem I see is that there are several functions invoked to do teh unpacking, that doesn't have any information about the possible related constant segment. 22:36
plobsing NotFound: If freeze/thaw new about the PF being generated, it could cooperate.
s/new/knew/ 22:37
NotFound plobsing: that was I said, the current freeze/thaw way can't do that.
22:38 pjcj joined
plobsing NotFound: we can add an init_pmc vtable that accepts a PackFile PMC 22:38
Whiteknight I configured with --no-line-directives, but my src/pmc/codestring.c file is still infected with them 22:39
bacek_at_work Whiteknight, make reconfig 22:40
plobsing another reason I'd like freeze/thaw to know about the surrounding PackFile: every constant PMC gets its own PBC header. If it is going into a larger PBC, I don't think that is necessary.
NotFound plobsing: too complicated to require the cooperation of all pmc, IMO.
plobsing NotFound: how does it require cooperation of all PMCs?
Whiteknight bacek_at_work, Already reconfigured, twice
NotFound plobsing: if you want a vtable function for that purpose... 22:41
plobsing NotFound: there is already a vtable function init_pmc 22:42
It is just not defined on ImageIO yet. 22:43
mj41 schlueters.de/blog/archives/128-Fut...PHP-6.html Future of PHP 6 - ... UTF-16 as internal encoding for "everything" ... is dead.
NotFound plobsing: oh, you mean in the ImageIO PMC only. Yes, I suppose that must be one of the changes required. 22:44
lucian mj41: i wish it'll just die already
22:46 patspam joined
Whiteknight bacek_at_work, I'm tracing througe the codestring failures. Any hints about where to look? 22:59
23:01 tetragon joined
bacek_at_work Whiteknight, callmethodcc 23:03
Whiteknight callmethodcc? That's where the error is?
callmethod_p_p, _p_s, _p_s_? 23:06
_p_s_p 23:07
bacek_at_work At least _p_s. 23:08
23:08 patspam joined
bacek_at_work Check t/oo/methods.t 23:08
23:11 patspam joined
Whiteknight we get into the find_method :vtable alright, with the correct invocant and argument 23:16
sorear I was thinking about how best to add raw file descriptor IO... how about I add a "POSIX" pmc, operates kindof like the existing OS pmc, but provides methods for the man 2 stuff instead 23:17
Whiteknight sorear: feel free to prototype it, or create it in an external projct
sorear instantiatable on all platforms, but the available methods vary - use can and catch ENOSYS
is this a sane idea? 23:18
Whiteknight sorear: sounds good to me
23:44 ruoso joined
sorear Whiteknight: Do you have any good example code for small, JustWorks, Parrot extensions w/ custom PMC code? 23:45
Whiteknight Parrot-Linear-Algebra
purl it has been said that Parrot-Linear-Algebra is a package of matrix datatypes for Parrot
Whiteknight www.github.com/whiteknight/parrot-linear-algebra 23:46
darbelo decnum-dynpmcs 23:48
purl decnum-dynpmcs is code.google.com/p/decnum-dynpmcs/ or a 2009 GSoC porject or a set of 'big' decimal arithmetic types for parrot.
plobsing my 2 cents: I'd like to see a dynops posix API, so that work on restricted runloops and TT #1500 are more useful 23:52
sorear plobsing: please explain what you mean by this 23:53
plobsing C-based PMCs are opaque to parrot, so if one is available that allows possibly undesirable actions, it could be used to violate security implemented by filtering ops 23:54
Whiteknight Austin: ping
dalek kudo: dea0a59 | jonathan++ | src/Perl6/ (2 files):
$.foo can now accept arguments, and various issues with the RHS of has $.x = ... are resolved.
kudo: 1c75cfe | jonathan++ | t/spectest.data:
Turn S12-methods/syntax.t back on.
plobsing sorear: restricted runloops are sort of like Safe.pm for Perl 5 23:55
23:55 AndyA joined
sorear (I thought the cool way to do security these days was limiting object visibility?) 23:58
OK. 23:59
How does this affect me?
plobsing hmmm... maybe you're right. I'm no security expert.
sorear What would a dynops extension look like, and how would I use it, especially from other extensions?