#parrot Parrot 2.2.0 "Like Clockwork" Released! | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Tasks: Fix compact_pool shenanigans | Fix HLL bugs (TT #389, #1040) | Prioritize Rakudo Needs
Set by moderator on 20 March 2010.
00:00 bacek joined 00:08 dngor_ joined
Whiteknight chromatic: My two best options for #1497 are to have a method on the Class PMC, or to return the cache using inspect_str on Object 00:16
00:23 dukeleto joined
dukeleto what is the actual difference betweeen Parrot_str_new and Parrot_new_string? 00:29
should one or the other be used by embedders?
00:31 tcurtis joined
dukeleto seems like Parrot_new_string is for embedders. is that correct? 00:31
00:36 allison joined
dukeleto allison: i just made some great progress! postgres is passing function arguments to PIR subroutines and PIR subs can return values to postgres! 00:39
allison dukeleto: excellent!
purl plays air guitar
dukeleto allison: i have it working for strings. now to make it work for other datatypes... 00:40
Whiteknight alison: If you have a moment, could you take a look at TT #1497? There are several ways to fix it, looking for the best one 00:41
s/alison/allison/ 00:42
allison Whiteknight: sure 00:43
Whiteknight thanks 00:44
a method on Class, or inspect 00:45
-str on Object 00:46
allison Whiteknight: since the point of caching is to speed things up, and checking for the override is expensive, I'd rather expose features to clear and disable the cache from PIR, than move the check for a cached method after the check for a PIR override
Whiteknight thats what I was thinking 00:47
so what's the preferred interface?
allison it doesn't have to be highly accessible, since cache clearing and disabling are rare features 00:48
perhaps add two methods to Class PMC?
Whiteknight ok. Will do.
allison (it doesn't have to be fast either, again because rare)
Whiteknight thanks
00:57 abqar joined 01:00 Austin_away joined
dalek rrot: r45260 | jkeenan++ | trunk/t/pmc/threads.t:
Delete superseded comment per TT #1249.
01:06
rrot: r45261 | whiteknight++ | trunk (5 files):
[TT #1473] refactor does in default and PMCProxy. PMCProxy no longer attempts to instantiaie a delegate object for this operation. Resolves TT #1473
TT #1249 closed by jkeenan++: t/pmc/threads.t: Thread types tests need rework 01:08
TT #1249: trac.parrot.org/parrot/ticket/1249
TT #1473 closed by whiteknight++: Handle PMC type is broken
TT #1473: trac.parrot.org/parrot/ticket/1473
Whiteknight Austin: ping 01:14
Austin ?
Whiteknight Austin: I've got a patch together for TT #1497, can you put together a test case? 01:15
Austin Probably
What did you have in mind?
Whiteknight awesome. I also just fixed TT #1473 for you too
I don't care, anything that shows what you were trying to do but were unable 01:16
Austin Okay. 01:17
Whiteknight The patch adds methods clear_method_cache and get_method_cache methods to the Class PMC 01:18
I'll write up some general-use tests for those methods, I just need a test that shows what you described, their use with respect to vtable overrides 01:20
Austin I'm working on it now. 01:21
Whiteknight w00t. Austin++
once this is in, two of your #1 priority tickets will be fixed 01:23
nopaste "Austin" at 68.37.47.32 pasted "Testcase for TT#1497" (33 lines) at nopaste.snit.ch/20125 01:24
Austin Woot. Whiteknight++ 01:25
Whiteknight okay, I'll translate to PIR and post it. Thanks!
Austin You're a bugfixing machine, dude. I appreciate it. 01:26
Whiteknight The P6metaclass ticket is absolutely out of my league
Austin Which one is that?
1492?
Whiteknight TT #1520
dalek parrot: 3efcde9 | (Joshua Tolley)++ | plparrot.c:
Start trying to fill PMC with function arguments.

  * It assumes for now that all arguments are strings. This can cause segfaults
   when arguments aren't strings
  * The functions to push onto the PMC array aren't linked in, and aren't
   declared
  * Incidentally, the compilation routine still doesn't throw an error when asked
   to compile code with syntax errors
parrot: 342ac54 | dukeleto++ | plparrot.c:
include extend_vtable.h
plparrot: d069a8d | dukeleto++ | (2 files):
plparrot: Use the correct function to push strings onto a PMC
plparrot: This causes Postgres to go boom:
plparrot: TRAP: FailedAssertion("!((((varattrib_1b_e *) (attre))->va_len_1be) == sizeof(toast_pointer) + 2)", File: "tuptoaster.c", Line: 1369)
plparrot: Full BT:
plparrot: #0 0x00002b424a1cf265 in raise () from /lib64/libc.so.6
plparrot: #1 0x00002b424a1d0d10 in abort () from /lib64/libc.so.6
plparrot: #2 0x00000000006cc96d in ExceptionalCondition (conditionName=<value optimized out>, errorType=<value optimized out>, fileName=<value optimized out>,
plparrot: lineNumber=<value optimized out>) at assert.c:57
plparrot: #3 0x0000000000471a32 in toast_fetch_datum (attr=<value optimized out>) at tuptoaster.c:1369 01:27
plparrot: #4 0x00000000004725fa in heap_tuple_untoast_attr (attr=0x723b900) at tuptoaster.c:133
plparrot: #5 0x000000000068ee66 in textcat (fcinfo=0x7fff36771200) at varlena.c:570
plparrot: #6 0x00000000005608a2 in ExecMakeFunctionResult (fcache=0x76b9360, econtext=0x75b8e70, isNull=0x7fff36771a20 "\\027", isDone=0x7fff36771684)
plparrot: at execQual.c:1827
plparrot: #7 0x000000000055d5fc in ExecEvalFuncArgs (fcinfo=0x7fff367716e0, argList=<value optimized out>, econtext=0x75b8e70) at execQual.c:1358
plparrot: #8 0x0000000000560701 in ExecMakeFunctionResult (fcache=0x76b8b48, econtext=0x75b8e70, isNull=0x7fff36771f00 "\\020?l\\a", isDone=0x7fff36771b64)
plparrot: at execQual.c:1605
plparrot: #9 0x000000000055d5fc in ExecEvalFuncArgs (fcinfo=0x7fff36771bc0, argList=<value optimized out>, econtext=0x75b8e70) at execQual.c:1358
plparrot: #10 0x0000000000560701 in ExecMakeFunctionResult (fcache=0x76b8330, econtext=0x75b8e70, isNull=0x7fff367723e0 "", isDone=0x7fff36772044) at execQual.c:1605
plparrot: #11 0x000000000055d5fc in ExecEvalFuncArgs (fcinfo=0x7fff367720a0, argList=<value optimized out>, econtext=0x75b8e70) at execQual.c:1358
plparrot: #12 0x0000000000560701 in ExecMakeFunctionResult (fcache=0x76b7b18, econtext=0x75b8e70, isNull=0x7fff367728c0 "", isDone=0x7fff36772524) at execQual.c:1605
plparrot: #13 0x000000000055d5fc in ExecEvalFuncArgs (fcinfo=0x7fff36772580, argList=<value optimized out>, econtext=0x75b8e70) at execQual.c:1358
plparrot: #14 0x0000000000560701 in ExecMakeFunctionResult (fcache=0x76b7300, econtext=0x75b8e70, isNull=0x7fff36772da0 "", isDone=0x7fff36772a04) at execQual.c:1605
plparrot: #15 0x000000000055d5fc in ExecEvalFuncArgs (fcinfo=0x7fff36772a60, argList=<value optimized out>, econtext=0x75b8e70) at execQual.c:1358
plparrot: #16 0x0000000000560701 in ExecMakeFunctionResult (fcache=0x76b6ae8, econtext=0x75b8e70, isNull=0x7fff36773281 "\\206f", isDone=0x7fff36772ee4)
plparrot: at execQual.c:1605
plparrot: #17 0x000000000055d5fc in ExecEvalFuncArgs (fcinfo=0x7fff36772f40, argList=<value optimized out>, econtext=0x75b8e70) at execQual.c:1358
plparrot: #18 0x0000000000560701 in ExecMakeFunctionResult (fcache=0x76b6238, econtext=0x75b8e70, isNull=0x7fff36773761 "Ik\\a", isDone=0x7fff367733c4)
plparrot: at execQual.c:1605
plparrot: #19 0x000000000055d5fc in ExecEvalFuncArgs (fcinfo=0x7fff36773420, argList=<value optimized out>, econtext=0x75b8e70) at execQual.c:1358
plparrot: #20 0x0000000000560701 in ExecMakeFunctionResult (fcache=0x76b5988, econtext=0x75b8e70, isNull=0x7fff36773c41 "", isDone=0x7fff367738a4) at execQual.c:1605
Austin Now, you see. *This* is why I ignored dalek.
dalek plparrot: #21 0x000000000055d5fc in ExecEvalFuncArgs (fcinfo=0x7fff36773900, argList=<value optimized out>, econtext=0x75b8e70) at execQual.c:1358
plparrot: #22 0x0000000000560701 in ExecMakeFunctionResult (fcache=0x76b4f20, econtext=0x75b8e70, isNull=0x7fff36773fd0 "\\001", isDone=0x0) at execQual.c:1605
plparrot: #23 0x00002b4250169827 in exec_eval_expr (estate=0x7fff36773fc0, expr=0x7656110, isNull=0x7fff36773fd0 "\\001", rettype=<value optimized out>)
plparrot: at pl_exec.c:4518
plparrot: #24 0x00002b425016dcef in exec_stmts (estate=0x7fff36773fc0, stmts=<value optimized out>) at pl_exec.c:2140
plparrot: #25 0x00002b425016cbb6 in exec_stmt_block (estate=0x7fff36773fc0, block=0x76562e8) at pl_exec.c:1167
plparrot: #26 0x00002b425016f28f in plpgsql_exec_function (func=0x75d39e8, fcinfo=0x7fff36774220) at pl_exec.c:316
plparrot: #27 0x00002b4250164aa3 in plpgsql_call_handler (fcinfo=0x7fff36774220) at pl_handler.c:122
plparrot: #28 0x00000000005608a2 in ExecMakeFunctionResult (fcache=0x75e77b0, econtext=0x75e7588, isNull=0x75e8a98 "\\177~\\177\\177\\177\\177\\177\\1778q]\\a",
plparrot: isDone=0x75e8bd8) at execQual.c:1827
plparrot: #29 0x000000000055d373 in ExecProject (projInfo=<value optimized out>, isDone=0x7fff3677470c) at execQual.c:5079
plparrot: #30 0x00000000005736c3 in ExecResult (node=0x75e7470) at nodeResult.c:155
plparrot: #31 0x000000000055cd06 in ExecProcNode (node=0x75e7470) at execProcnode.c:355
plparrot: #32 0x000000000055ba25 in standard_ExecutorRun (queryDesc=0x71b29a8, direction=11963, count=0) at execMain.c:1190
plparrot: #33 0x000000000061cac6 in PortalRunSelect (portal=0x71af168, forward=<value optimized out>, count=0, dest=0x75e60f0) at pquery.c:952
plparrot: #34 0x000000000061e200 in PortalRun (portal=0x71af168, count=9223372036854775807, isTopLevel=1 '\\001', dest=0x75e60f0, altdest=0x75e60f0,
dukeleto oops
dalek plparrot: completionTag=0x7fff36774970 "") at pquery.c:796
plparrot: #35 0x000000000061a53b in exec_simple_query (query_string=0x723ee48 "select is(test_varchar(), 'cheese', 'We can return a varchar');") at postgres.c:1051
Whiteknight I AM SO HAPPY ABOUT THAT ENTIRE COMMIT MESSAGE
dukeleto sorry about that commit message
i forgot that dalek spews entire commit messages 01:28
dukeleto--
kid51 purl, please whip dukeleto
purl kid51: sorry...
dukeleto i even got yelled at by purl to not karma myself!
Austin See, dalel needs to /nick to the project name or something. Then I could ignore everything except for kakapo...
dukeleto fails
01:29 dalek joined
dukeleto i think if dalek just showed the first 5 lines or so of a commit message, that would be a nice feature ::ducks:: 01:29
on the bright side, postgres can pass PIR subroutines arguments without coredumping now... 01:30
Austin Whiteknight, I was thinking about the pmcproxy problem. 01:32
I think the right answer is to do away with it.
Whiteknight which problem?
purl which problem are you looking to solve by having a cluster?
Austin And I think I know how.
The problem that pmcproxy doesn't work, and is a pain in the ass, and generally make about every single thing harder than it has to be... 01:33
*that* problem.
There's about 5 issues on the list I sent you that have pmcproxy involved somewhere, either directly or indirectly. 01:35
Anyway, the problem as I see it is that PMC's are prototype objects, not classes. I think that pretty much everything needs to get on board the object/class approach. 01:37
kid51 dukeleto: Can you comment on trac.parrot.org/parrot/ticket/1504#comment:6 ? Thanks.
allison Austin: pmcproxy was a temporary measure for backward compatibility between the old C-classes and PIR Classes 01:43
Austin Heh
allison Austin: PMC's aren't prototype objects, their classes just aren't introspectable from PIR
Austin And like all temporary measures, it has taken on a Shelley-esque life of its own...
allison Austin: and that's what PMCProxy was added to provide 01:44
Austin: aye
Austin: but, they aren't part of the official OO spec
Austin: and really, any technique that allows C-defined PMCs to act like PIR defined classes will do 01:45
Austin: (including doing away with C-defined classes entirely, which may be in the cards for Lorito)
Austin: we're a lot closer to doing away with PMCProxy now that we have autoattrs in C-PMCs 01:46
01:50 Andy joined
sorear allison: Is there documentation anywhere on exactly what autoattrs does? 01:58
allison sorear: not really. It's plumbing rather than surface features 02:00
sorear: basically, it's part of the syntax for generating C-PMCs from the mini language they're defined int 02:01
sorear I'm dealing with legacy PMC code here, and I'm not sure if autoattrs fits what I need 02:02
it's not mentioned in the pmc compiler spec
allison sorear: it's a later addition 02:04
sorear: it needs to be added to docs/pmc2c.pod 02:05
sorear: just added some introductory documentation on ATTR, needs to be expanded 02:14
sorear hmm... my legacy code DOES use ATTR 02:15
odd that it doesn't use auto_attrs?
allison sorear: what auto_attrs does is automatically allocate and deallocate memory for attributes declared with ATTR 02:17
sorear: so, if you don't have auto_attrs in the pmclass declaration line, then you need to manually allocate the memory in the init/init_pmc vtables, and manually clean it up in the destroy vtable 02:18
sorear yes, it does that 02:19
I'm wondering under what conditions I can replace stuff with auto_attrs
does it handle marking too?
allison if you're doing nothing fancy in the allocate and destroy, you can use auto_attrs instead 02:21
(that is, if you're just allocating a block of memory from the struct generated by the ATTR declarations) 02:22
02:22 jimk joined
allison sorear: there has been talk about having it do marking too, but AFAIK not done yet 02:23
dalek rrot: r45262 | allison++ | trunk/docs/pmc2c.pod:
[doc] Adding some documentation on ATTR declarations in C-PMCs.
02:28
02:28 kid51 joined 02:33 jimk joined 02:35 janus joined 02:39 Austin_Hastings joined 02:58 cottoo joined 03:03 Util joined
dalek rrot: r45263 | petdance++ | trunk (3 files):
updated headerization
03:33
04:27 bacek joined
sorear Why is Parrot on CPAN? 04:35
cotto Is it an old version?
I thought we took care of all of those. 04:36
allison, search.cpan.org/~arandal/parrot-1.0...unning.pod 04:37
Should that be there?
dalek rrot: r45264 | petdance++ | trunk/src/pmc/sub.pmc:
consting
04:39
Andy sorear: Is that a trick question?
sorear Andy: No 04:41
Andy OK, then the answer is: So that people can get it easily.
cotto I don't think we want them getting 1.0.0 at this point. 04:42
sorear s/people/people looking for Perl modules/
cotto unless they're weird, and then we leave them along and back away slowly
s/along/alone/ 04:43
dalek rrot: r45265 | petdance++ | trunk/src/string/encoding/utf8.c:
localizing vars and shimming unused parms
04:55
05:18 bacek joined
allison cotto: I can move it off to backpan 05:23
cotto: but I think there may be older versions still on CPAN 05:24
cotto: but yes, we pretty much don't want people installing parrot from CPAN
cotto: scheduled for deletion 05:29
cotto 0.0.11 is also on there
thank
but not yours 05:30
dalek rrot: r45266 | petdance++ | trunk/src/call/args.c:
removed unused local vars
05:43
rrot: r45267 | petdance++ | trunk (2 files):
consting and adding a PARROT_WARN_UNUSED_RESULT flag
rrot: r45268 | petdance++ | trunk/src/ops/cmp.ops:
consting
06:18 uniejo joined
dalek rrot: r45269 | cotto++ | branches/profiling_testing/runtime/parrot/library/ProfTest (2 files):
[profiling] make the first 6 tests pass, add optional noisy debugging output
06:32
rrot: r45270 | mikehh++ | trunk/src/pmc.c:
fix codetest failure - unused assert macros - src/pmc.c
dukeleto is there a function to dump the contents of a Parrot_PMC from C ? 06:57
cotto get_string might kinda do what you want 07:00
dukeleto cotto: was thinking of that 07:01
cotto I don't know if there's much else that'd work for an arbitrary PMC.
freeze would work, but good luck reading it ;)
dukeleto cotto: so there is nothing like Data::Dumper from C? 07:02
cotto nafaik 07:03
unless you want to call pir functions from c 07:04
dalek rrot: r45271 | dukeleto++ | trunk/docs/pdds/draft/pdd11_extending.pod:
[PDD] Add docs for the Parrot_PMC_push_* and Parrot_PMC_pop_* functions
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32891), fulltest) at r45270 - Ubuntu 9.10 amd64 (g++)
07:09 AndyA joined
dukeleto cotto: get_string and get_cstring on an aggreagte PMC seem to just coredump 07:12
dalek parrot: 895b75c | dukeleto++ | plparrot.c:
Attempt to get a return value from Parrot_ext_call
07:21
izkost: b474559 | sorear++ | src/pmc/ (3 files):
Implement binding PMCs to SVs
07:25
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32893), fulltest) at r45271 - Ubuntu 9.10 amd64 (g++ with --optimize) 07:54
07:58 fperrad joined 08:04 mikehh joined 08:15 iblechbot joined 08:19 cotto joined 08:30 AndyA joined
sorear Multiple Dispatch: No suitable candidate found for 'subtract_int', with signature 'PIP->P' 08:38
sub $P27, $P26, 2
what stupid little simple explanation am I overlooking here
or: why is NQP passing three arguments to subtract 08:39
08:44 particle joined 08:48 payload joined
sorear somehow VTABLE_delete_keyed for AddrRegistry got overwritten with 0x80000 08:52
is that a Parrot poison value?
hmm...I'll bet this is just global destruction order biting me 08:57
oh, I forgot to implement sub on my PMC 08:59
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32894), fulltest) at r45271 - Ubuntu 9.10 i386 (g++ with --optimize) 09:48
09:56 clinton joined
dalek izkost: ecd16be | sorear++ | (5 files):
CALLBACKS!
09:58
purl callbacks are sync
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32895), fulltest) at r45271 - Ubuntu 9.10 i386 (g++) 10:22
10:24 clinton joined
sorear Is there any safe way to call Parrot_pmc_gc_unregister from within a destroy VTABLE> 11:00
11:06 eternaleye joined 11:17 dngor joined 11:26 dngor_ joined 11:31 lucian joined 11:34 cotto_w0rk joined 11:42 dngor joined 11:55 payload joined 11:59 bluescreen joined 12:10 mikehh joined 12:13 atrodo joined 12:14 whiteknight joined 12:17 dngor joined
dalek TT #1497 closed by whiteknight++: Expose 'meth_cache' attribute of class.pmc 12:21
TT #1497: trac.parrot.org/parrot/ticket/1497
12:22 ruoso joined 12:23 tetragon joined
dalek rrot: r45272 | whiteknight++ | trunk (2 files):
add clear_method_cache and get_method_cache methods to the Class PMC. Add tests to verify their behavior. This should satisfy the request in TT #1497.
12:29
rrot: r45273 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
[distutils] the Sun's compiler on OpenSolaris don't like #line.
whiteknight purl msg Austin TT #1497 down. Remaining two #1 priorities are not doable by me right now, so I'm moving on to the twos. 12:30
purl Message for austin stored.
12:38 TiMBuS joined 12:46 Mokurai1 joined
Coke msg allison - we don't want any versions on CPAN at all? last I heard we were keeping the latest stable release there. no more? 12:59
purl Message for allison stored.
13:01 riffraff joined
Coke t/dynpmc/rational.t has bad test plan here. 13:04
ran 56, planned 55.
DOH 13:07
nevermind.
13:08 PacoLinux joined 13:09 PerlJam joined
Coke msg dukeleto in parrot_shell, shouldn't the check to see if parrot exists include the exe extension? (looks like we check, then bail, THEN add the .exe) 13:11
purl Message for dukeleto stored.
Coke msg dukeleto - checkout Pod::Usage, which will allow you to eliminate some duplicate text. 13:12
purl Message for dukeleto stored.
atrodo Morning. Here's an off the wall question: Does The Parrot Foundation or The Perl Foundation hold the copyright to parrot? 13:15
moritz atrodo: Parrot Foundation
purl it has been said that Parrot Foundation is so new that it probably has 0 funds.
atrodo The LICENSE still lists The Perl Foundataion 13:16
moritz atrodo: iirc the perl foundation assigned the copyright to the new PaFo when it was created
moritz@trudi:~/rakudo/parrot>ack -i 'Copyright.*Parrot Foundation' | wc -l 13:17
1870
moritz@trudi:~/rakudo/parrot>ack -i 'Copyright.*Perl Foundation' | wc -l
16
so it seems there are some left-overs
dalek rrot: r45274 | whiteknight++ | trunk (2 files):
[TT #1133] Fixed the manhattan distance calculation so that primitive types are treated as properly autoboxing, and allow the MRO of the autoboxed type to be walked. Added a test case to prove TT #1133 is satisfied, though the test is in perl and that makes whiteknight sad. This should resolve TT #1133.
13:18
whiteknight purl msg Austin TT #1133 should be fixed now. Test it out.
purl Message for austin stored.
Coke note that things in ext/ are not necessarily ours. 13:26
LICENSE is the copyright for the license doc itself...
dalek TT #1133 closed by whiteknight++: MMD matching does not match 'scalar' with primitive types 13:27
TT #1133: trac.parrot.org/parrot/ticket/1133
Coke the only one I'm not sure about is the create_language script.
atrodo so "The Perl Foundation" at the top of LICENSE isn't refering to who owns copyright on the project, but who owns copyright on the LICENSE itself? 13:28
Coke yes. 13:30
atrodo So if I was to use the Artistic License in my own project, I would use the LICENSE file as is? 13:31
Coke yes. 13:32
atrodo interesting. Thanks
Coke is distutils as smart as make when it comes to building dependencies? 13:38
msg Austin please fix CREDITS in partcl-nqp. Danke. 13:39
purl Message for austin stored.
14:02 bubaflub joined 14:16 theory joined 14:19 davidfetter joined 14:24 whiteknight joined 14:26 he joined 14:31 sorear joined, ash_ joined 14:41 patspam joined
dalek rrot: r45275 | NotFound++ | trunk/src/pmc/class.pmc:
Fix typo that broke C++ build
14:42
15:03 TiMBuS joined 15:27 Andy joined
dalek rrot: r45276 | petdance++ | trunk/src/pmc/packfileconstanttable.pmc:
consting and localizing
15:32
rrot: r45277 | petdance++ | trunk/src/pmc (2 files):
consting
Andy is there any more code out there that needs to be run thru the headerizer? 15:47
Most importantly, static funcs?
particle can you ack for c files with 'static' and not 'HEADERIZER'? 15:51
Andy I can, yes.
but i'm looking for human thought above what I can do on my own.
particle or, probably, from a clean svn wc, .pmc, .ops, etc
ah, i can't help you there....
Andy The ack you refer to is ack -lv HEADERIZER $(ack -lw static --noperl ) 15:53
Coward! 15:55
Face your headerizer!
15:55 particle joined
davidfetter any tcl people in the house? 15:55
moritz Coke? 15:56
purl rumour has it Coke is Will Coleda <mailto:will@coleda.com> or perpetually annoyed. or magical ticket robot or (if Diet), something that turns into formaldehyde in my blood. or getting those data_json issues in Coke's build
dalek rrot: r45278 | petdance++ | trunk/lib/Parrot/Pmc2c/PMC/default.pm:
consting
16:04
rrot: r45279 | petdance++ | trunk/src/pmc/codestring.pmc:
consting and localizing
rrot: r45280 | petdance++ | trunk/lib/Parrot/OpTrans/C.pm:
fix the way consts are written
16:24 clinton joined 16:25 clinton joined
Andy Ok, what are dynpmcs? 16:30
purl dynpmcs are treated the same way as pmcs, as far as dumps go
cotto_w0rk no, dynpmcs are PMCs that can be loaded at runtime from a shared library 16:31
purl okay, cotto_w0rk.
Andy So the prob'ly oughta get headerized, too.
Coke Andy: yes. 16:32
they are currently built via a recursive make rule. is that a problem for headerization?
Andy maybe
Coke (that's going away as soon as darbelo and I can manage.)
Andy is there a top-level macro for those files?
Coke macro? 16:33
purl macro is, like, not exactly equal to a BLOCK
Coke do you mean make target?
Andy $(DYNPMC_FILES)
Coke no. top level is "make dynpmc"
Andy Look at the headerizer rule and see what it passes in.
Coke so all that is controlled inside src/dynpmc/Makefile
Andy Then yes, that's a problem.
Coke ok.
then I'll try to get the recursive make gone today.
(more like tonight.) 16:34
there's a branch if you want to add in the headerizing there.
Andy I don't.
Coke k. 16:35
Andy I just need $(DYNPMC_O_FILES) that I can add to the headerizer target
Coke ok. I'll do that as part of the mergeback of the branch.
16:36 fperrad_ joined 16:37 payload1 joined
dalek rrot: r45281 | petdance++ | trunk/src/ops/core.ops:
much consting
16:38
Coke (in branch right now it's DYNPMC_DIGEST_OBJS, DYNPMC_FOO_OBJS - I can add a single O_FILES for you. 16:39
allison Coke: we treat CPAN like any other distribution system (*BSD, SuSE, Fedora, Ubuntu, Debian, etc), it's not part of the Parrot release process, but if someone wants to be the CPAN release maintainer it's fine
Coke: so far, no CPAN releases since 1.0, so I'd say there's no clamoring demand for that distribution system 16:40
Coke i don't find it a particularly compelling distribution vector, myself. 16:41
(only for Parrot::Embed)
(and that doesn't need all of parrot in CPAN)
Andy you know what I'd really like? 16:42
Is if all the opcode_t* were const
Coke Andy: A PONY!
... or that.
Andy because when you're executing opcodes, you're not modifying anything, right?
Coke hey, do we have any git-svn users than can update ^/branches/include_dynpmc_makefile from trunk? 16:43
*that
16:43 elmex joined, payload joined
Andy Everything involved with execution of opcodes oughta be all const. You get one opcode to start, and run. 16:43
Coke Andy: I wonder if dynops would affect that at all. 16:44
(probably not. just wondering.)
dalek tracwiki: v35 | coke++ | BranchDescriptions 16:50
tracwiki: rerun tools/dev/branch_status.pl
tracwiki: trac.parrot.org/parrot/wiki/BranchD...ction=diff
17:15 desmond joined 17:18 desmond left, desmond joined
desmond hi, I'm starting to hack on PIR, but I'm getting the "maximum recursion depth exceeded" 17:19
PerlJam desmond: don't recurse so much :)
whiteknight desmond: nopaste your code?
cotto_work That probably means you have an infinite recursion.
desmond :) 17:20
Coke if you are legitimately hitting that (i was in partcl for a while), you can increase the interpreter's recursion limit.
# Override recursion limit 17:21
$P0 = getinterp
$P0.'recursion_limit'(10000)
desmond I'm not sure if I'm hitting the limit... or just going to infinity
here it is nopaste.info/29c9f756b0.html
PerlJam sides with infinity 17:23
cotto_work That's definitely recursive.
desmond got it 17:24
set it to 10000000
and that did it, thx! :)
cotto_work I didn't know that the recursion limit was configurable from pir.
Austin Not for nothing, but what is the point of that function - other than to exercise the stack pointer?
cotto_work nice touch
Coke cotto: only because I complained about it. =-) 17:25
PerlJam Coke++
Austin whiteknight++
whiteknight Austin: Glad you like!
Austin Whiteknight is a ticket-closing monster.
dalek rrot: r45282 | petdance++ | trunk/src/ops (4 files):
consting aplenty
17:27
17:27 riffraff joined
Austin Wow. My first encounter with the library system in a hell of a long time, and I discover they're completely irrelevant. 17:28
Coke Austin: ?
Austin We don't have the book you want. We don't have anything by this author, who is popular and has been putting out books for years. 17:29
Coke oh, you mean an actual library. =-)
Austin The other library has 1 copy of this new book. We can't get it for you, because it's a browsing copy and so cannot be requested. 17:30
Coke Austin: ... which was my next suggestion.
Austin Yeah.
Coke I find in our system that it takes about a month for a browsing copy to be lendable cross-library.
Austin Bottom line - I need to go ahead and buy it in hard-copy.
Coke Austin: be sure to purchase it through my amazon.com store link. =-P 17:31
Austin (I'd be more sympathetic if the book wasn't dated 2009...)
"Oh, by the way, here's our search tool. It's a web search that doesn't even begin to approximate what google can do. Enjoy." 17:32
The great part is that I, and everyone in the county, am paying tax money to support the county library. A *lot* of tax money, it turns out. 17:33
treed had good experiences with the Pasadena Public Library.
Austin Man, where are the russian intellectual-property hackers when I need them... 17:35
treed in ur intellectual property, hacking them
cotto_work bacek almost fits that description. You could ask him. ;) 17:36
Austin I wonder if there's a used bookstore out there that would trade me even, hardcopy for soft...
17:51 mikehh joined
whiteknight Austin: what book? 18:02
purl book is blog.jrock.us/articles/Catalyst%20Book.html or Philippe "BooK" Bruhat, aka Mr Pink or mailto:book@mongueurs.net or awesome or a dino or a black hat or a galcon player
Austin Whiteknight: Today's book is "Imager's Challenge" by L.E. Modesitt. But in general, I've got a bunch of hardcovers that I'd like to replace with the softcover versions. 18:12
whiteknight oh, okay
18:13 theory joined
Austin And now, I think it's time for lunch. 18:13
Coke note: allowing "anonymous" svn checkouts as the user "anonymous" is not really anonymous. Thank you. 18:21
18:25 contingencyplan joined 18:28 chromatic joined 18:33 Mokurai joined 18:34 Mokurai joined 18:42 slavorg joined
Coke seen darbelo? 18:46
purl darbelo was last seen on #parrot 2 days, 18 hours, 3 minutes and 49 seconds ago, saying: Austin: Shh! I'm selling stuff here. [Mar 27 00:43:09 2010]
18:48 hercynium joined
Coke msg andy - not worth headerizer the digest-based PMCs as they are leaving the nest as soon as 2.4 is cut. 19:01
purl Message for andy stored.
Coke msg darbelo - not worth doing anything fancy with config and the dynpmcs as they are leaving the nest as soon as 2.4 is cut. 19:02
purl Message for darbelo stored.
chromatic 2.4 or 2.3?
Coke msg andy - er, as soon as 2.3 is cut. 19:03
purl Message for andy stored.
Coke msg darbelo - er, as soon as 2.3 is cut.
purl Message for darbelo stored.
Coke chromatic++
chromatic: trac.parrot.org/parrot/ticket/898 appears to document a memory leak. 19:06
chromatic I think I reported that. 19:07
cotto_work I remember introducing that. I should probably do something about it.
Oh. I own it. 19:08
Coke i figure anything with "memory leak" is probably "good for rakudo" 19:09
*fixing* anything ...
chromatic That one didn't come up much though.
cotto_work It's not a big leak.
Coke chromatic: what about #978? any reason not to apply that patch? 19:10
chromatic It broke a couple of tests and I haven't spent time figuring out whether to ditch them or fix them. 19:11
Coke msg allison can you handle TT #894 ? I don't seem to have privs on trac.parrot.org/languages 19:12
purl Message for allison stored.
cotto_work coke++ for ticket trolling
dukeleto Coke: dynpmcs are leaving the nest with 2.4? is that documented somewhere? in DEPRECATED? 19:16
19:16 Andy joined
Coke dukeleto: the digest ones are, yes. 19:17
19:17 joeri joined
Coke and yes, it's in the pod. 19:17
19:17 allison joined
Coke also gdbmhash 19:17
dukeleto Coke: and also, thanks for your parrot shell comments. both are good ideas
Coke I already can't remember them! =-)
would TT#827 be helpful as we try to ratchet down memory usage? 19:22
(command line arg to specify maximum memory allocation)
whiteknight Coke: I can't think of a good way to do that ticket except if (mem_allocated > mem_limit) PANIC 19:23
that is, there's no good graceful way to enforce that limit
Coke yes, you'd have to PANIC if you went over the limit... or throw an out of memory exception. 19:24
I'd vote exception.
chromatic compact_pool could be less dumb if it's close to that limit.
whiteknight Can't throw an exception. xceptions are objects, require allocation, etc. If we're already over the memory limit, we can't allocate more crap
Coke whiteknight: sure you can. this is a /parrot/ limit, not a /system/ limit. 19:25
moritz whiteknight: unless the out-of-memory exception is pre-allocated for later use
whiteknight so you want essentially a soft limit?
Coke whiteknight: ... yes.
basically, a vm-specific ulimit.
whiteknight Well, that's all possible I guess. I don't see a whole lot of utility there, but I won't argue 19:26
Coke chromatic: I hadn't even thought of using that information to improve allocation.
whiteknight: same reason it's useful in java.
whiteknight Is it useful in Java? I don't use Java
chromatic If the GC's close to that limit, it can run more often.
moritz it can also be useful for sandboxing
chromatic Trade more time spent in the GC for less memory usage. 19:27
19:27 slavorg joined
Coke moritz: hey, can you try something in rakudo-latest for me? 19:27
moritz: trac.parrot.org/parrot/ticket/1029
dalek TT #1291 closed by coke++: update make headerizer to work with PMCs too.
TT #1291: trac.parrot.org/parrot/ticket/1291
Coke (or does rakudo no longer use PCT's HLLCompiler in master?)
19:28 eiro_ joined
moritz Coke: will try 19:28
Coke moritz++ 19:30
Tene Coke: I really have no clue what it uses. Perl6::Compiler is declared in two different places, one inheriting from PCT::HLLCompiler, and one inheriting from nqp-rx's HLL::Compiler 19:34
moritz Coke: current rakudo even fails to build with that patch
Coke moritz: so it's still relevant. danke. 19:35
whiteknight that's a ticket I may have to look at more closely 19:43
because it's absolutely strange
Coke tailcall is historically wonky. 19:44
it is definitely not safe to use everywhere .return is.
whiteknight it's basically just an optimization, so no surprise it isn't right
.tailcall should be made more robust
Coke chromatic: trac.parrot.org/parrot/ticket/1483 looks like something you might be interested in. 19:45
(I think it might be my fault that's a patch and not already just applied.)
Andy Coke: Thank you for closing that ticket. 19:48
Coke Andy: np
Andy: I'm getting a LOT more warnings on the build today. 19:49
Andy Are you? Where?
I haven't noticed anything myself.
Coke feather.perl6.nl/~coke/wf 19:50
Andy oh, that's bad
Coke Revision: 45282
/* got is never < 0, but C's type system can't tell */ 19:51
... apparently it can!
s/type/warning/
parrot glut?
glut?
purl well, glut is www.opengl.org/resources/libraries/ or en.wikipedia.org/wiki/OpenGL_Utility_Toolkit
Coke I think trac.parrot.org/parrot/wiki/BuildWarnings has some others that are probably very out of date. 19:54
Andy Coke, fixing 'em. Premature consting. Don't know how I missed the warnings. 19:55
dalek tracwiki: v9 | coke++ | BuildWarnings
tracwiki: trac.parrot.org/parrot/wiki/BuildWa...ction=diff
Andy Actualy, i do. Many many other "unused CUR_CTX" warnings
Coke do you have more warnings enabled than the default? 19:59
20:02 allison joined
japhb Coke, what were you wanting to know about GLUT? 20:04
(I got highlighted for an OpenGL-related term)
20:05 bluescreen joined
Andy Coke: I just always build with --cage\\ 20:06
dalek rrot: r45283 | fperrad++ | trunk/lib/Parrot/Pmc2c/Library.pm:
[pmc2c] fix generation for filename with path
20:09
rrot: r45284 | fperrad++ | trunk/lib/Parrot/Pmc2c (2 files):
[pmc2c] on Windows, generate #line with slash instead of backslash
rrot: r45285 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
[distutils] previous commits in Pmc2c allow to build PMC with change directory
rrot: r45286 | petdance++ | trunk/src/ops (2 files):
remove some premature consts
Coke japhb: glut warnings on latest build for me. 20:14
feather.perl6.nl/~coke/wf //glut
japhb Not sure that it's even the right thing to fight that warning. The point of a wrapper library is to wrap the entire API, even the deprecated bits. Letting the user *know* that the API is deprecated on that platform actually seems like a proper action, so IMHO the warning should stand. 20:17
Coke I'm assuming that the right fix would be to use whatever the non-deprecated method is. 20:23
japhb Coke: We're not using the method ... we're just providing it. glut_callbacks.c is just a file that wraps the GLUT callback system into Parrot-friendly terms. 20:24
'glutWMCloseFunc' means "Here's a function pointer to callback when the WMClose event occurs in GLUT" 20:25
Apparently WMClose is deprecated on OS X.
Coke japhb: ok. I'm saying perhaps it should be a little smarter than that. 20:26
I don't use GLUT anyway. just trying to keep it warnings clean. 20:27
japhb Unfortunately, the GLUT callbacks system does not work within the tiny bounds of Parrot's current NCI callback support. glut_callbacks.c is a giant hack.
Sure, I understand that.
It's just that this is a warning that the user might actually find useful. It's not a pointless warning caused by C sucking.
Just because the function is deprecated doesn't mean the NCI lib shouldn't provide it ... it's up to the API user whether to ignore the deprecation or not. 20:28
Anyway, the short story is "please let that warning remain". :-)
Andy that glut is smaller now, of course 20:29
japhb ur?
purl japhb: q[merlyn]'s Unix Review columns, at www.stonehenge.com/merlyn/UnixReview/ or just a hop skip and a jump away from babylonia or short for URog or a lame way to say you're or Updating a public calendar automatically (Jul 07); Export behavior, not data (May 07); The Replacements (Mar 07); Show me your references (Jan 07); Formatting reports with Template Toolkit (Nov 06) or rong
20:38 jan joined
GeJ Good morning everyone 21:01
cotto_work hi GeJ 21:02
21:05 Whiteknight joined 21:08 tcurtis joined, payload joined
dalek rrot: r45287 | chromatic++ | trunk/src/pmc.c:
[src] Made Parrot_pmc_new_init_int() return instantiated PMC when creating a

a compiler warning.
21:14
21:31 mikehh joined 21:36 ash_ joined
Austin Buenos tardes, #Parrot 22:02
22:09 payload joined 22:20 lucian joined
cotto_work interesting idea: instead of forbidding TODO comments in code, require that they be attached to a name, i.e. #TODO(cotto) add more awesome to the frobulator 22:29
chromatic A name or a ticket numbe. 22:30
number
cotto_work Hmmm. We appear to have 530 TODOs. It must be XXX that generates codingstd noise. 22:33
22:34 lucian joined
cotto_work Ah. it's only for C files. 22:35
not sure why, but there it is
22:37 lucian joined 22:39 snarkyboojum joined
tcurtis chromatic: Am I correct in understanding your message on parrot-dev as indicating a desire for both keeping COW strings and adding immutable strings? 23:09
23:09 tetragon joined
chromatic Yes, tcurtis. 23:10
23:12 ruoso joined
cotto_work That'll be way easier than replacing the entire string subsystem in-place 23:13
</obvious>
sorear I'm not so sure having a single type with heterogenous semantics will be "easy"
chromatic I don't understand why people think they're not complementary. 23:14
sorear COW and mutable are semantically identical; switching to immutable requires changing callers
Whiteknight yay! Got an email from a prospective gsoc student interested in immutable strings 23:15
chromatic With immutable strings, you can keep the cheapness of COW and get rid of the write. 23:16
You keep the benefits of sharing buffers and header/buffer separation.
tcurtis Should string operations on a given type return the same type of string? Your example of a immutable string substring being COW made me wonder if you'd want both a Parrot_str_substring_immutable and a Parrot_str_substring_COW? 23:18
chromatic They're not really different types internally. 23:19
sorear IMMUTABLE_STRING ** is semantically equivalent to COW_STRING * 23:20
chromatic Think of it this way, tcurtis. We remove all in-place string modification from the system. We keep the separation of string headers and string contents. Multiple string headers can point to the same string contents. 23:21
A string header has a pointer to string contents, encoding information, and length information. 23:22
A string contents has a buffer of memory and a reference count.
We get rid of the write part of COW, but we keep the rest. 23:24
Whiteknight ...so they're CO strings
chromatic Nuggets, in fact. 23:25
particle so, they're strings with three ends
or maybe four.
Whiteknight Actually, I've gotten emails from 2 students tonight interested in this project 23:26
(more students)++ 23:27
dalek rrot: r45288 | petdance++ | trunk/src/pmc (2 files):
more headerization and consting
23:28
rrot: r45289 | petdance++ | trunk/src/pmc/imageio.pmc:
more headerization
Whiteknight If half the students who have contacted me put in good applications and get accepted, It will be a bumper year 23:29
cotto_work put them all in a locked room with a pile of bricks
chromatic Who, the Nuggets or the students?
cotto_work how many have you seen? any we don't know about yet?
Whiteknight cotto_work: I've talked to about 8 more students than have written to the list 23:30
cotto_work wow
Whiteknight my first advice is always to send an intro to the list, however
cotto_work sure 23:31
tcurtis chromatic, I thought you were saying to keep COW strings with in-place modification but also add immutable strings. Thanks for clarifying. 23:34
chromatic You're welcome. 23:35
Whiteknight tcurtis++ 23:36
tcurtis I've been lurking #parrot for the last few days and I've noticed a lot of messages including some person's nickname postfixed with ++. Why is that? 23:40
Austin karma tcurtis 23:41
purl tcurtis has karma of 1
Austin tcurtis++
karma tcurtis
purl tcurtis has karma of 2
Austin karma whiteknight
purl whiteknight has karma of 1926
Whiteknight shooting for the big two-oh-oh-oh!
Austin We can't pay you, but you can exchange karma for features you want added to parrot. 23:42
Whiteknight tcurtis: you do something good, you get a karma point
Austin Or a t-shirt.
purl rumour has it a t-shirt is somewhat less secure or for sale at www.cafeshops.com/parrotstuff1/
Austin Or donuts.
I'm not sure what the exchange rate is.
Whiteknight I havent gotten any donuts
Austin I think it's somehow related to avogadro's number.
cotto_work You get the first one at 10000 23:43
Austin plus the current prime rate.
Seriously, whiteknight. There's a wiki...
Whiteknight shit. I'm going to have to start making commits one character at a time
cotto_work PaFo will take care of it.
Whiteknight karmaleo
tcurtis Austin++ Whiteknight++ thanks for the explanation, including the demonstration, the serious explanation, and what I assume is humor.
Whiteknight karma leo
purl leo has karma of 1886
cotto_work karma chromatic
purl chromatic has karma of 2694
Austin Humor?
purl Humor is learned or spelt humour or moist or in flavours, using a bit of it far enough of #Perl's current wavelength may return problems to you or critical to being a master
Whiteknight I thoght leo had much more 23:44
Austin Boy, donuts is no laughing matter...
cotto_work karma donuts
purl donuts has karma of 26
dalek rrot: r45290 | petdance++ | trunk/src/pmc (2 files):
more consting and headerizing
Whiteknight karma petdance
purl petdance has karma of 1257
Whiteknight karma kid51
purl kid51 has karma of 114
Whiteknight karma james keenan 23:45
purl james keenan has neutral karma
Whiteknight karma chip
purl chip has karma of 1199
Whiteknight I cant remember who, but somebody had a karma of almost 8 grand
Austin msgboard.snopes.com/photos/signs/gr...s/kern.jpg 23:46
Whiteknight nice 23:47
darbelo karma purl
purl purl has karma of 8914
cotto_work I'm not going to mess with Kern.
Whiteknight purl--
purl Whiteknight: huh?
Whiteknight karma purl
purl purl has karma of 8914
darbelo <purl--> 23:48
Whiteknight (purl)--
karma purl
purl purl has karma of 8913
23:48 bacek joined
Whiteknight well, one of those worked 23:48
darbelo Selective hearing helps keep your karma up.
bacek aloha
cotto_work yours
bacek karma C
purl c has karma of 8488
cotto_work hola bacek
Whiteknight stupid c++. cheater 23:49
treed c--
darbelo c+=1
bacek karma bacek 23:51
purl bacek has karma of 2150
bacek hollei schitt...
When I passed 2k?
Austin bacek-- 23:52
darbelo One of your big branch dcommits I't guess...
Austin You'll pass 2k in about 10 minutes
bacek--
cotto_work If you like, talk to particle and he can have PaFo send you a fifth of a donut.
Austin :)
chromatic I saw a maple bar with sprinkles yesterday in the sore. $0.50. I didn't buy it. 23:53
bacek what 'bout BEER?
cotto_work If I ever see you, I'll buy you a beer.
chromatic I saw that too, and wine. 23:54
Austin But probably not for $0.50
chromatic $3.99 or something.
Austin Although, maybe in Portland...
Whiteknight bacek: You ever come to the states, You'll get many beers 23:57
bacek Heh. Which part of states? 23:58
Whiteknight any part. We're all over