Parrot 2.1.0 "As Scheduled" Released! | parrot.org/ | Tasks: PCC deprecations branch, HLL subclassing and MMD branch
Set by moderator on 17 February 2010.
chromatic I made Rakudo use some constant strings where it could and it ran *slower* because of the cost of looking things up in hashes. 00:00
Whiteknight so it's good enough for PMCs, but not good enough for your precious hashes?
cotto_work Is this something that can or should become pluggable? 00:01
chromatic Imagine a hash with poor hashing properties and a few thousand entries.
11.15% of the execution time is in parrot_hash_get_bucket() and its calls; 4.78% of that time is the function itself. 00:02
Whiteknight oi 00:03
chromatic Yeah, C is not the right language for efficient polymorphism.
I want to find everyone who says "Just write it in C! That's faster!" and rub their noses in this code.
dukeleto chromatic: please do. 00:04
Whiteknight it can be, if you're willing to jump through discusting loops
disgusting*
chromatic This code would be faster in C++.
Probably simpler.
And I'm not a fan of C++.
Whiteknight C++ would likely be doing it all with indirect fnction calls too 00:05
kthakore chromatic++
chromatic If we had classes of specific hash implementations, C++ could optimize those into known targets.
Coke it's not parrot-dev@perl.org
snarkyboojum is C++ just short for chromatic++ (sorry couldn't help myself)
Whiteknight chromatic: we could do that too with a switch over the known hash types 00:06
a good compiler would reduce that to a tight jump table with basic bounds-checking
no worse than what C++ would do
cotto_work chromatic, what code are you running that exhibits this behavior?
Coke chromatic: you are just now noticing the time spent in hash? =-) 00:07
Whiteknight well, minus the bounds checking maybe if the types were known
chromatic cotto_work, pretty much anything Rakudo does.
Coke I recall complaining about that when partcl was in diapers.
cotto_work wfm
chromatic Anything that calls a lot of methods by name or accesses object attributes.
Even two new hash types would be fine: PMC keyed by STRING and STRING keyed by STRING. 00:08
I'm sure we could at least double their speed.
00:08 snarkyboojum_ joined 00:10 payload joined
chromatic Though I also ponder a way to make compile-time constant STRINGs available to external libraries somehow at their own compile time. 00:10
Whiteknight would require completely redoing the way constants are handled at compile time 00:12
and making the string const'er much smarter 00:13
Coke can someone upload that tarball? 00:20
cotto_work yup
the one you posted a while ago?
Coke yup 00:22
if you have a feather account, ~coke/public_html 00:23
cotto_work done 00:24
Coke ok. some kid time, then I'll put the announcement together.
cotto_work md5sum fee8e22fad229fdc493431a2b75f038d
Coke we should start putting those in the release announcements. 00:25
chromatic A smarter STRING constant system would be nice. 00:29
Even a tree instead of the C string pointer hash. 00:30
dalek kudo/master: e4cdb5b | (Martin Berends)++ | (2 files):
[build/PARROT_REVISION] tentatively set to 44147 2.1.0
00:43
Whiteknight how do the CONST_STRINGS work now? I'm not even entirely sure about it 00:44
chromatic They get stuffed into a table in the interpreter, then they get stored in a cache (C string keyed hash) at startup. 00:46
Whiteknight where is the CONST_STRING() call converted into a lookup into that hash? 00:47
plobsing Whiteknight: the macro is defined in every .str file I've seen 00:48
Whiteknight ah, nevermind. I see that now
well, that's shitty McShit
plobsing chromatic: It's a hash? I thought it used an array 00:49
why does it use all those integer constants?
cotto_work The CONST_STRING macro uses the source code line number as an index, plus some perly magic to map between duplicate strings. 00:52
00:52 abqar joined
cotto_work maybe 00:52
It's an odd system. 00:53
Whiteknight extremely odd 00:56
and wasteful
cotto_work I smell a branch.
plobsing I don't seen how it is wasteful. It just seems awkward to me. 00:57
Whiteknight I can't imagine why they would need to be in a hash.
plobsing I'm certain it uses an array.
chromatic It's both.
cotto_work I agree on not seeing the wastefulness, but it's definitely odd enough to be questionable.
Whiteknight that's twice as bad
chromatic The hash is so that dynpmcs and dynops can access the constant strings with Parrot_str_new_constant().
Also other parts of Parrot that can't build them into the interpreter. 00:58
plobsing oic that now
Whiteknight it's wasteful because you're using a Hash and apparently also an array to hold the strings
and you're wasting cycles looking them up
cotto_work ok
Whiteknight you could put the constants in the data section easily by converting CONST_STRING macros to STRING literal constants
cotto_work plus it's an extra step per file in the build process
Whiteknight STRING _<FILENAME>_<LINE> = {"whatever", ....} 00:59
chromatic Right, we can *probably* get away with making them literal constants.
Whiteknight more steps during the build isn't a bad thing, if it saves at runtime
chromatic: I think we can, and any concessions we need to make would be well worth it in terms of amortized performance costs 01:00
chromatic The problem is STRING encoding autoconversion and any hashing changes.
dalek rrot: r44149 | coke++ | tags/RELEASE_2_1_1:
Tag the 2.1.1 release
01:11
rrot: r44150 | plobsing++ | trunk (14 files):
convert from nativecall.pl to nativecall.pir
purl I don't know how to convert from nativecall.pl to nativecall.pir.
shockwave msg shockwave hi 01:14
purl Message for shockwave stored.
Whiteknight chromatic: solvable by COW references quite easily
davidfetter mmmmuuurrrrrr 01:15
shockwave msg dukeleto Thanks for the float precision tip. The code is working great.
purl Message for dukeleto stored.
davidfetter wait. what kind of cow?
cotto_work not the type you referred to 01:16
plobsing davidfetter: the very stringy kind
Coke hey, crow is still borked.
davidfetter prefers tender
Coke oh, look it's due to the data_json switchover. 01:17
dalek rrot: r44151 | plobsing++ | trunk (9 files):
remove tools/build/nativecall.pl, associated config step, and tests
01:28
01:33 darbelo joined
cotto_work chromatic, do we want to have a pluggable hashing algorithm or do we just want to find a better one to replace what we're using now? 01:34
Coke you don't need it pluggable until you have /2/ good ones. yes? 01:36
so that's /2/ algorithms we need to find before that's an issue. =-)
Coke manages to work in a quote from the best movie of all time into the release news.
btw, subversion is now an apache project. updating the link in the 2.1.1 release announcement. 01:38
cotto_work looks forward to the movie quote 01:39
kthakore is wondering about the movie quote too! 01:42
Coke I'm just going to email parrot* and perl* on this one. others are free to spread the joy if they want. 01:45
01:51 darbelo joined
kthakore Coke: army of darkness is a good movie? 01:55
Coke kthakore: ... get off my lawn.
kthakore Coke: heheh
Coke: no I didn't mean like that
Coke kthakore: This.... IS MY BOOMSTICK.
kthakore Coke: um ... oh yeah!!!!
I remember this movie now
heheh
Coke Yes. it is awesome schlock. 01:56
kthakore I love the night of evil though
night of evil?
Coke release is done.
dalek website: coke++ | Parrot 2.1.1 Released!
website: www.parrot.org/news/2010/Parrot-2.1.1
kthakore which is the one with the hand in the woods?
Night of The Evil Dead 01:57
Coke I have all 3 on dvd. I'm ashamed to say I only ever watched AoD all the way through. 02:00
dalek rrot: r44152 | plobsing++ | trunk (8 files):
remove references to now non-existant src/call_list.txt
02:01
Coke plobsing: are you working off a ticket there?
plobsing Coke: mostly off of what I put up on the wiki 02:02
NCITasklist 02:03
02:10 darbelo joined
Coke ok. I saw you rip out a lot of stuff; just wondering if that lost any functionality. 02:13
plobsing Coke: no, that's a result of a re-write in PIR
and also moving things around so we no longer need it in a configure step
Coke ok.
02:14 particle1 joined 02:19 pmichaud joined, dukeleto_ joined
plobsing who should I talk to about dead code in pmc2c? 02:19
02:20 Coke joined, dalek joined
cotto plobsing, what's dead 02:23
plobsing cotto: there's code that maps PMC methods to NCI signatures. pmc2c now generates PCC boilerplate itself.
I deleted the code and everything still builds fine 02:24
cotto Do you feel ok ripping it out?
and committing the change?
plobsing committing now
Whiteknight MURDER DEATH KILL!!!
02:24 PerlJam joined 02:25 Util joined
cotto Whiteknight, how do you really feel? There's no need to hold back. 02:25
nopaste "NotFound" at 213.96.228.50 pasted "Avoid duplicate strings in pbc constant table" (44 lines) at nopaste.snit.ch/19703 02:28
NotFound What do you think? A bit more compiling time, a lot less space. 02:29
Whiteknight NotFound, if you can turn it off, +1 02:30
Coke NotFound: what about a way to do it in a separate pass? 02:31
like a pbc_cleanup or something.
moderator Parrot 2.1.1 Released! | parrot.org/ | Tasks: PCC deprecations branch, HLL subclassing and MMD branch 02:31
NotFound Coke: it can be hard to locate all usages in the bytecode, but doable. 02:32
chromatic cotto, one good hashing algorithm would be nice. Premature pluggability isn't our friend. 02:33
NotFound Whiteknight: hard to tell, my imcc ability is limited. 02:34
chromatic NotFound, can we get that benchmarked?
Whiteknight imcc is limited
NotFound You know I sucks benchmarking 02:35
Whiteknight command-line switches to turn on and off various optimizations is common among compilers 02:36
dalek rrot: r44153 | plobsing++ | trunk/lib/Parrot/Pmc2c (2 files):
remove dead proto methods (unused since at least pcc refactor)
cotto chromatic, ok
NotFound Maybe is better to wait until imcc gets replaced. 02:38
chromatic Checking size with and without that patch would work. 02:39
NotFound Thats easy... one moment.
Whiteknight depends on the program 02:41
cotto Whiteknight, I think you'll like this 02:42
NotFound winxedst2.pbc without the patch: 489536 with the patch: 452496
Whiteknight not bad 02:43
chromatic 7.566%
purl 0.07566
chromatic Would be nice to see Rakudo with and without.
NotFound The pir has 19323 lines 02:44
Too much work for me right now, must sleep :O 02:45
chromatic I'll try it on Rakudo.
cotto nice patch
dalek rrot: r44154 | plobsing++ | trunk/config/gen/makefiles/root.in:
correctly classify configure-time generated opengl files to be able to build after 'make clean'
02:52
rrot: r44155 | cotto++ | trunk (2 files):
[oplib] add a VTABLE function to oplib, use it in make_hello_pbc instead of magic numbers
rrot: r44156 | plobsing++ | branches/opengl_dynamic_nci:
branch has been merged into trunk
kid51 FWIW: I just realized I got this failing smolder last night in the pcc_reorder_results branch at r44129: smolder.plusthree.com/app/projects/...ails/32252 03:07
trunk okay at r 44156
chromatic Looks like a realclean/reconfigure.
03:08 jsut joined
chromatic Unless that branch needs to pull a packfile update from trunk. 03:08
kid51 Perhaps. I did it in a screen session and went to bed before checking results.
bacek_at_work cotto++ # r44155 03:13
dalek kudo/master: ab0efea | chromatic++ | src/pmc/p6opaque.pmc:
[PMC] Migrated some constant strings to Parrot-style constants to reduce STRING
kudo/master: cfcc1a9 | chromatic++ | src/pmc/p6invocation.pmc:
[PMC] Migrated some constant strings to Parrot-style constants to reduce STRING
kudo/master: 8fdc942 | chromatic++ | src/binder/bind.c:
[binder] Migrated some constant strings to Parrot-style constants to reduce
Whiteknight Those PMCs are already proving to be quite useful 03:19
I hope they grow to be even more useful still 03:20
chromatic NotFound, perl6.pbc is 3.426% smaller and the bootstrapped perl6.pbc is 3.715% smaller.
Whiteknight not bad, but not huge either
compare build times? 03:21
kid51 pcc_reorder_results: FAIL at r44156: smolder.plusthree.com/app/projects/...ails/32268
kid51 must sleep
purl $kid51->sleep(8 * 3600);
chromatic I didn't compare build times. 03:22
dalek rrot: r44157 | coke++ | branches/release_2_1_1_RC:
This branch has been tagged as 2.1.1.
03:25
rrot: r44158 | jkeenan++ | trunk/examples/pir/make_hello_pbc.pir:
[codingstd] No trailing whitespace.
03:36 janus joined
dukeleto_ i love the quote for the 2.1.1 release 03:37
dukeleto darn. i wrote a test for the gc memory leak, but it passes on 2.1.0 03:44
Whiteknight we need to file a bug report for the test, and write a test to prove that the test is fixed 03:45
03:45 snarkyboojum joined
dukeleto Whiteknight: shall I commit my test? it verifies that >=1 GC runs happen after 1,000,000 PMC's have been created, but it passes on 2.1.0 03:47
i think it is still a useful test
Whiteknight nopaste it?
purl rumour has it nopaste it is See /who is nopaste for the URL
chromatic Turn it to 6 GC runs. 03:48
dukeleto gist.github.com/308387 03:49
Whiteknight you dont want to count GC runs so much as total memory allocated
dukeleto chromatic: 6 is the magic number?
chromatic: please check out that gist
chromatic Parrot needs ~4 to start up. 03:50
dukeleto chromatic: it seems that 4 gc runs happen on both trunk and 2.1.0 for 1,000,000 PMC's being created
chromatic: that is good to know
Whiteknight: i agree with you about actually checking memory, but this was a better-than-nothing test that is at least cross-platform 03:52
Whiteknight ok 03:53
it is a good test in general, yes
dukeleto i am using GC_COLLECT_RUNS, should I be using something else?
chromatic That should work, if it gets updated. 03:55
dukeleto chromatic: my test has 4 gc runs on both trunk and 2.1.0 with both COLLECT_RUNS and MARK_RUNS 03:57
chromatic Hm. I'll have to look in more detail. 03:58
dalek rrot: r44159 | coke++ | branches/rm_cflags (137 files):
merge latest changes from trunk
03:59
dukeleto chromatic: i am going to commit some useful gc tests, but we will need more to correctly test the most recent memory leak 04:00
chromatic Okay, I can help.
dukeleto chromatic: thanks. i have 2 tests incoming 04:05
dalek rrot: r44160 | dukeleto++ | trunk (3 files):
[t] Add some tests to make sure a GC mark and sweep happens when a large amount of PMC's are created
04:15
04:32 theory joined
dukeleto 'ello 04:40
shockwave What in a high level programming language would be the pointer the parent class, base, in Parrot is self, correct? 05:37
Oh, and how does one retreive a message from purl?
chromatic messages 05:39
shockwave Actually. Using base makes the pointer to the current class point to it's parent, duh. So how do I do that? All classes derrive from my own 'Object' class, except Object itself. 05:40
If I call method 'foo()' that is also in the parent class, how do I make sure the method in the parent class is the one to be called? 05:41
Austin_away Heh, heh, heh
shockwave purl messages
Austin_away messages 05:42
shockwave Thanks chromatic.
Austin, so how are you involved with Parrot? 05:43
Austin shockwave: $P0 = <obj> ; $P1 = class $P0 ; $P2 = inspect $P1, 'all_parents' ; $P3 = iter $P2 ; shift $P3; #skip current class; while $P3 { $P4 = shift $P3 ; if (can $P4, 'methodname') goto WIN; } 05:45
shockwave Sweet. Thanks Austin. 05:46
Austin shockwave: I'm not sure how I got involved. I got really drunk one night, and then I saw this kid with rainbow hair. So I walked up to him and asked him if he had ever met his father... 05:47
chromatic ... and now I ARE ONE
shockwave Austin, neat story. Myself, I came acrossed it about 2005 when I was working on my first language; which unfortunately never saw the light of day. The only thing I was able to take away from it was the experience. Luckly, I was able to carry the small knowledge from it and from the first language to the current language I'm developing. 05:51
I think I even asked a question on an online list once. 05:52
And now it's a central part of what I'm working on. 05:53
Austin shockwave: What are you working on?
shockwave Ultimately, a 3D video game.
For now, a programming language. 05:54
I should be able to connect the programming language to the 3D engine very soon.
The worst part of the language, in my opinion, is the semantic analysis. I'm done with that part for the first version. 05:55
After that is code generation, and creating a runtime API for the 3D engine to be hooked onto.
Austin :) 05:57
06:00 theory joined
dalek rrot: r44161 | plobsing++ | trunk (10 files):
rename tools/build/nativecall.pir to tools/dev/nci_thunk_gen.pir
06:11
Austin Aw, rats. Fperrad's distutils doesn't solve the pir annotation problem 06:12
I had forgotten about that..
06:37 nbrown joined
chromatic msg bacek We could save allocations in CallContext by using the return_values attribute for storing only one pointer itself... no other allocation needed. 06:42
purl Message for bacek stored.
dalek rrot: r44162 | mikehh++ | trunk/t/op/gc-leaky.t:
add svn properties
06:43
Austin fperrad, ping 06:54
dalek rrot: r44163 | mikehh++ | trunk/tools/dev/nci_thunk_gen.pir:
remove trailing whitespace
07:00
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32269), fulltest) at r44163 - Ubuntu 9.10 amd64 (gcc with --optimize) 07:11
07:16 uniejo joined 07:30 theory joined
dukeleto 'ello again 07:49
mikehh++ for fixing my svn properties. i hate those things
Austin Hey dukeleto.
purl dukeleto is mentoring a few peeps. can't remember everyone. sure.
dukeleto should have run fulltest 07:50
Austin: howdy
purl hey, dukeleto.
dukeleto purl, go play in traffic
purl wanders off to dent some cars.
Austin So now I have setup.nqp implemented for kakapo.
dukeleto Austin: cool!
Austin Not so much. There's a few rough spots, still.
purl, msg fperrad: New request: Can you put the distutils functions into a namespace? NQP doesn't have a good way to call the root namespace from a subnamespace: module X; sub foo() { if ::newer() {...} } <-- :: doesn't work 07:52
purl Message for fperrad stored.
Austin Also, I need to add a sub-phase to strip annotations. 07:53
dukeleto Austin: so you can't call things in the global root namespace from NQP? 07:56
Austin: you may want to ping pmichaud about that as well 07:57
Austin You can if you're already in that namespace.
dukeleto Austin: it seems like the perl6 guys must have to work around that limitation as well
Austin I think the perl6 way is that it always searches backwards.
dukeleto Austin: what about dropping into PIR from NQP and doing get_global '' or somesuch?
Austin My particular problem was with a multisub - I don't know if that affects it.
That's what I mean about not having a *good* way ... 07:58
dukeleto Austin: touche :)
so, the errorson opcode seems totally borked. does anybody actually use it, other than cargo-culting? 07:59
nopaste "Austin" at 68.37.46.53 pasted "trouble with calling global multisub" (20 lines) at nopaste.snit.ch/19705 08:01
chromatic I'm not sure it's even tested.
Certainly not well. 08:02
Austin Hmm.. I may be mistaken. This may be fperrad's fault
dukeleto chromatic: you are correct. no tests. I am writing one now, from perry's example code 08:03
Austin msg fperrad See my nopaste (nopaste.snit.ch/19705) - the problem may come from needing a PMC,PMC variant of the newer multisub.
purl Message for fperrad stored.
dukeleto chromatic: for instance, find_name never consults the value of errorson. lots of stuff just doesn't care about it
chromatic I remember a discussion a couple of years ago about mandatory error checking and giving people time to update their code for it. 08:05
That may have been during Chip's calling conventions refactor.
Austin Sort of the opposite of "deprecated"
"soon-to-be-precated"
(aka "imminent") 08:06
dukeleto chromatic: that sounds like ancient times to my young ears. I am going to write some tests and send an email to the list asking for some decisions 08:07
dalek tracwiki: v5 | mikehh++ | CFunctionDocs 08:09
tracwiki: trac.parrot.org/parrot/wiki/CFuncti...ction=diff
08:22 iblechbot joined 08:37 alin joined
dalek tracwiki: v3 | mikehh++ | MissingCFunctionDocs 08:42
tracwiki: trac.parrot.org/parrot/wiki/Missing...ction=diff
09:08 lucian joined
dalek tracwiki: v2 | mikehh++ | BoilerplateOnlyDocs 09:15
tracwiki: trac.parrot.org/parrot/wiki/Boilerp...ction=diff
ttbot Parrot trunk/ r44163 i86pc-solaris-64int make error tt.ro.vutbr.cz/file/cmdout/203153.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 09:44
mj41 sorry, ignore this ttbot report, trying setup opensolaris 09:47
paste? 10:03
purl paste is (see: nopaste) or like glue but a little safer to sniff. or nopaste.snit.ch:8001/ or scsys.co.uk:8001/ anywhere shadowpaste is or mmm, sticky paste or You there! Eating the paste. or <see> 2 girls, 1 paste or App::Nopaste
nopaste "mj41" at 147.229.5.176 pasted "Open Solaris and SunStudioExpress" (16 lines) at nopaste.snit.ch/19706
dalek kudo/master: 3704a2e | (Solomon Foster)++ | src/core/Any-list.pm:
Get .pick (ported from alpha, plus infinite versions) working.
10:13 AndyA_ joined
dalek kapo: 3cf61d9 | austin++ | (4 files):
Added Global::inject_root_symbol(). Changed P6meta to create keyword functions 'has', 'extends', 'has_vtable'.
10:16
kapo: dc2f9ea | austin++ | (6 files):
Got UnitTest case written for t/Global.nqp.

Signed-off-by: Austin Hastings <Austin_Hastings@Yahoo.com>
nopaste "chromatic" at 173.50.130.127 pasted "This patch caches the hashval in the HashBucket for a *very* modest performance gain. Thoughts?" (209 lines) at nopaste.snit.ch/19707 10:34
10:42 contingencyplan joined
dalek rrot: r44164 | mikehh++ | trunk (2 files):
correct C function docs and add documentation
11:38
rrot: r44165 | mikehh++ | trunk (2 files):
correct C function docs
nopaste "mj41" at 147.229.5.176 pasted "After ~# ln -s /opt/SunStudioE" (18 lines) at nopaste.snit.ch/19708 11:41
dalek rrot: r44166 | mikehh++ | trunk (2 files):
correct C function docs
11:54
rrot: r44167 | mikehh++ | trunk/examples/c/pbc_info.c:
correct C function docs
rrot: r44168 | mikehh++ | trunk/src/atomic/gcc_x86.c:
correct C function docs
rrot: r44169 | mikehh++ | trunk/include/parrot/atomic/gcc_pcc.h:
add C function documentation
12:11
12:25 nbrown_ joined
dalek rrot: r44170 | mikehh++ | trunk/t/codingstd/c_function_docs.t:
remove passing TODO tests
12:27
12:28 bacek joined
bacek o hai 12:32
msg chromatic return_values will be totally removed after next round of PCC refactor afaiu. 12:33
purl Message for chromatic stored.
dalek tracwiki: v6 | mikehh++ | CFunctionDocs 12:34
tracwiki: trac.parrot.org/parrot/wiki/CFuncti...ction=diff
tracwiki: v4 | mikehh++ | MissingCFunctionDocs
tracwiki: bring up to date at r44170</a>
tracwiki: trac.parrot.org/parrot/wiki/Missing...ction=diff
12:37 plobsing joined 12:39 riffraff joined 12:48 payload joined 13:06 KingOfKarlsruhe joined 13:33 tetragon joined
dalek rrot: r44171 | bacek++ | branches/sys_mem_reduce/src/events.c:
Switch event.c to internal allocations. Way too much effort to use GC one...
13:33
rrot: r44172 | bacek++ | branches/sys_mem_reduce/src/pbc_merge.c:
Switch pbc_merge to GC allocations.
rrot: r44173 | bacek++ | branches/sys_mem_reduce/src/tsq.c:
Switch TSQ to internal allocations.
rrot: r44174 | bacek++ | branches/sys_mem_reduce/src (2 files):
Replace few mem_sys_free with mem_gc_free
rrot: r44175 | bacek++ | branches/sys_mem_reduce/src/dynext.c:
Move dynext.c to internal allocations
rrot: r44176 | bacek++ | branches/sys_mem_reduce (3 files):
Fix some leftovers after renaming gc_mem_foo into mem_gc_foo
rrot: r44177 | bacek++ | branches/sys_mem_reduce/src/pbc_dump.c:
Switch pbc_dump to GC allocations
rrot: r44178 | bacek++ | branches/sys_mem_reduce/src (3 files):
Use pointer from mem_gc_realloc
rrot: r44179 | bacek++ | branches/sys_mem_reduce (8 files):
Pass oldsize to realloc_zeroed
rrot: r44180 | bacek++ | branches/sys_mem_reduce/src/oo.c:
Use gc_realloc in oo.c
13:40 whiteknight joined
Austin Kakapo: Now with its own syntax! 13:44
Today, we salute you, Mr. Tiny Thong Bikini-wearer! 13:50
Beach-goers the world over see you coming and say, "Hey! Check out the wooly mammoth in the giant rubber band..." 13:51
Coke blinks. 14:00
Austin The problem's going to be in tsort. 14:05
The problem is always in tsort.
dalek rrot: r44181 | bacek++ | branches/sys_mem_reduce/src/gc/gc_ms.c:
Split allocation of zeroed/non-zeroed chunks in GC MS.
14:06
rrot: r44182 | bacek++ | branches/sys_mem_reduce/src/gc/gc_ms.c:
Replace couple of mem_sys functions with mem_internal versions.
rrot: r44183 | bacek++ | branches/sys_mem_reduce/src/pmc/resizablebooleanarray.pmc:
Clear allocated memory in RBA.
rrot: r44184 | bacek++ | branches/sys_mem_reduce/src/pmc/managedstruct.pmc:
Update ManagedStruct to use GC allocations.
14:08 cognominal joined
dalek tracwiki: v157 | coke++ | WikiStart 14:14
tracwiki: trac.parrot.org/parrot/wiki/WikiSta...ction=diff
Coke msg chromatic www.savagechickens.com/2010/02/trag...erted.html ... take that. 14:15
purl Message for chromatic stored.
Austin ARgh. String.does('array')
14:16 dhg joined
Coke is the answer... yes? 14:28
Austin Sadly, it is. 14:29
Well, technically it's C< 1 >, but I take your meaning. 14:30
Coke does is pretty useless. =-) 14:46
and, String certainly used to act like an array.
(not sure if it does anymore.)
... depending on how you define "like an array"
Austin Well, it responds to index requests - $P0[1], etc. 14:47
Which means that my named-parameter that may be an array or may be a single parameter is hard to check ...
14:56 ruoso joined
kthakore NotFound: hi so I sent an email out to parrot-dev 15:26
NotFound kthakore: just coming home, I've read it right now. 15:28
kthakore: do you mean how to use that for development, how and where to install by the users, or both? 15:30
kthakore NotFound: well it is very early right now. first for developers and then end users? 15:32
NotFound kthakore: for development you can use -I and -L parrot command line options.
kthakore right
that should have been obvious 15:33
NotFound For users, just let plumage to put them in the standard places. 15:34
kthakore I still don't understand how to set this plumage thing up
the link darbelo gave me was just a bunch of proposals
NotFound kthakore: I think the recommended way right now is to use a setup script. Borrowing from the one in an appropiate module may be the easier way. 15:36
kthakore NotFound: what is an appropriate moduile?
module?
purl i heard module was literally what i pasted above, perhaps with a coercion from Num -> BigNum or somewhat useful as a worked example, of course
kthakore NotFound: where can I search for this? Is there a CPAN for parrot? 15:37
NotFound kthakore: plumage itself contains the data for several. 15:38
Austin kthakore: What are you writing?
NotFound But don't expect a CPAN alike. We need several decades to reach that point ;)
Austin: updating SDL and put it out of core. 15:39
15:39 theory joined
NotFound Well, that's the long term goal. 15:40
kthakore NotFound: oh do I search it then?
NotFound: the Plumage data
or whatever
NotFound kthakore: just install plumage
kthakore ok
NotFound There are some listed in the parrot wiki, but surely the included in plumage are far more up to date. 15:41
kthakore gitorious.net/parrot-plumage is that correct
15:41 Ryan52 joined
NotFound kthakore: aye 15:41
kthakore NotFound: thanks 15:42
NotFound: sorry if I haven't been asking the right questions
NotFound: appreciate your patience
15:43 lucian joined
NotFound kthakore: plumage is an evolving crature, is hard to know what are the right questions or where are the updated answers ;) 15:45
kthakore NotFound: nonetheless appreciate the patience
dalek kapo: f7672b2 | austin++ | (6 files):
Added syntax items 'redo()', 'next()', and 'last()' in Syntax.nqp to base and Full.nqp
15:46
kapo: 1487e76 | austin++ | t/bootstrap/UnitTest/Testcase.nqp:
Got rid of assert_true, _false, in Testcase.nqp
kapo: d891272 | austin++ | t/ (2 files):
Deleted t/Parrot, ManagedQueue.nqp
kapo: 1f6eb19 | austin++ | (8 files):
First iteration of tests for DepQ. Added `die` to Syntax.nqp. Got rid of src/Test/ dir. Changed harness to _not_ link tests by default.
NotFound Make SDL work and I'll feel more than rewarded :)
dalek kapo: 03ae2e4 | austin++ | setup.nqp:
Added krt0.pbc to build targets.
kthakore NotFound: will try
Austin I feel a SVN-induced reboot coming on... 15:48
kthakore ?? 15:49
15:52 Psyche^ joined
kthakore NotFound: I found a similar project 15:53
:)
NotFound: tcl-bridge
yay!
NotFound kthakore: good 15:54
15:59 riffraff joined
pmichaud ...what exactly does a ticket status of "deprecated" mean in Trac? 16:00
kthakore plumage++ for making this SANE!
NotFound: this awesome!
kthakore runs away to make his first plume?
Coke pmichaud: should correspond to "this in deprecated.pod" 16:07
"things" 16:08
was a suggestion from Whiteknight that he made in another ticket; but since that was only in trac and on parrot-tickets, probably not that many people saw it.
(there is a corresponding "exerimental" now, also.)
whiteknight Coke++
Coke actually, only one of those was his and I extrapolated the other. 16:09
I converted about 50% of the tickets in DEPRECATED.pod before running out of steam.
(if someone starts from the bottom and works their way up....)
pmichaud okay. I was looking at TT#1091, and I'd like to see that particular ticket die-die-die (the ticket, not the feature it proposes to eliminate) and the "deprecated" tag caught me off-guard. 16:10
Coke checking...
ah, yup. based on your comment, I removed the milestone. 16:11
Seems like it should have been an RFC first, but it kind of jumped into the deprecated pod.
pod/queue. 16:12
pmichaud same for TT#389 -- the "deprecated" status doesn't seem accurate.
Coke it's a change in behavior that people might have been depending on.
rather than just a bug fix. 16:13
(that's supposedly the threshold of marking it as a deprecation; I didn't apply any thought to the ticket changing other than "is it listed in the DEP.pod?"
if it shouldn't be marked as one in the first place, that's an issue.
pmichaud I just find it confusing (more) 16:14
to me, "deprecated" is something we can get around to at some point, while "bug" is "this needs to be fixed."
so "bug" seems more accurate, because Parrot is not behaving according to the agreed-upon-specification. 16:15
fixing the bug may involve a deprecation, but I'm not sure that means it should no longer be classified as a bug.
(and classifying something as a "bug" feels more important to me than classifying it as a deprecation) 16:16
Coke pmichaud: importance should be derived from the priority/impact values, IMO.
cotto_work yawns
Coke did the spec change?
cotto_work good morning
purl What's so good about it?
pmichaud the spec was set in 2008.
cotto_work forget good morning
purl cotto_work: I forgot good morning
pmichaud it's just taken more than 18 months to get it implemented 16:17
Coke right. so I think that still qualifies as a deprecation, since we changed the rules. it's just way overdue.
pmichaud okay. Well, two suggestions 16:18
I think that "type" should be "deprecation" and not "deprecated", because "deprecated" sounds like something we're doing to the ticket or the feature being described in the ticket
i.e., when I read
ttbot Parrot trunk/ r44185 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/204055.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 16:19
pmichaud Changed 43 hours ago by coke ¶
* type changed from bug to deprecated
I find that realllllllly confusing.
Coke changed.
dalek rrot: r44185 | plobsing++ | trunk (8 files):
add --dynext option to parrot_nci_thunk_gen to ease building parrot dynext libraries

add extra_nci_thunks dynext library to prove the concept
pmichaud and I think that the fact that something involves a deprecation might be orthogonal to other issues
or perhaps it's a form of status -- i.e., "we can't act on/resolve this ticket because it involves a deprecation", not that the ticket itself *is* a deprecation. 16:20
Coke (the change won't affect displayed text on changes for anything that was already changed)
dalek nxed: r416 | julian.notfound++ | trunk/examples/packfile.winxed:
less magic numbers and better fixups dump in packfile example
16:21
pmichaud anyway, thanks for the explanation. I'll just note here that I found it mentally jarring to have so many tickets that are of special importance to me being marked as "deprecated"
Coke deprecation. =-)
pmichaud even then
but yes, "deprecation" would have been far less jarring :)
Coke no, I mean, that's what it is now. =-)
but yah. 16:22
sorry about the confusion. Your tickets are still important. 16:23
pmichaud it's not just the tickets where I'm asking for a change, it's also the tickets where I'm pleading that something shouldn't change :)
there seem to be quite a few of those lately as well :-| 16:24
anyway, we now return to our regularly scheduled discussions :)
plobsing anyone know why parrot can't find data_json.pbc on windows?
NotFound I really like the advances in packfile and opcode PMCs. Now we have full pbc inspection capabilities from HLLs :) 16:25
Coke gets his openvms login and manages to have to kill ssh to stop whatever craziness he got into. 16:27
plobsing: is this in a strawberry build, not intsalled?
plobsing it's strawberry, yes. the ttbot build.
I broke it apparently
Coke did you change the makefile? perhaps it's not getting built anymore. 16:28
Coke checks on linux
plobsing I added a bunch of stuff that *depends* on it. I didn't touch it directly.
Coke ... or, I could just test on strawberry. whoops. 16:29
what can I run to see the failure?
plobsing make
Coke ... that's it? ok.
plobsing * or whatever ttbot runs 16:30
Coke manages to run bash on vms alpha. 16:31
... now what. =-) 16:32
src/extra_nci_thunks.c
src/extra_nci_thunks.c:6197: warning: no previous prototype for 'Parrot_lib_extra_nci_thunks_init'
cotto_work run
Coke (on linux, btw.)
on strawberry, build dies with: 16:33
.\\parrot.exe -o parrot_nci_thunk_gen.pbc tools\\dev\\nci_thunk_gen.pir
Invalid charset number '467200' specified
current instr.: 'get_sigtable' pc 1760 (tools\\dev\\nci_thunk_gen.pir:902)
mingw32-make: *** [parrot_nci_thunk_gen.pbc] Error 1
so, looks like your NCI stuff might need to be reverted and go intoa branch.
plobsing arg
damn my magical box on which even broken stuff works! 16:34
cotto_work yeah. The build is a bit explodey here too
dalek TT #1470 created by whiteknight++: Create a get_numeric_pmc VTABLE
plobsing it's though that your strawberry fails with a different error than ttbot's
""load_bytecode" couldn't find file 'data_json.pbc'"
Coke my strawberry and my linux box don't even build. 16:35
plobsing I'm going to try with a clean build. If it fails and I can fix it easily, WIN; else I'll have to throw it into a branch 16:38
Coke yes, please. =-)
plobsing s/clean build/clean checkout/
Coke right.
plobsing wfm :-( 16:42
Coke is it possible the JSON in there is different? 16:45
nci_thunk_gen.pir isn't generated, is it? 16:46
plobsing nope. that's by hand.
although I'm growing increasingly tempted to rewrite it in winxed
kthakore NotFound: check it out! New feather in the hat! github.com/kthakore/parrotSDL
Coke winxed isn't core.
nqp-rx might be a better choice. 16:47
plobsing I tried that. hated it. PIR is better.
Coke heh. you clearly haven't done enough pir. =-)
NotFound You don't need winxed in core, just ship the generated pir
kthakore: congrats, you've been fast! 16:48
Coke NotFound: true. or you could put winxed's pir in ext/
kthakore NotFound: well it wasn't too hard
Coke but your option is probably best.
kthakore now to make the json thingie
NotFound Coke: not a bad idea, I'll think about that. 16:49
Coke kthakore: to answer your question from list... -i?
er, -I?
kthakore Coke: oh thanks
Coke: NotFound suckered me into making plumage for this
Coke: github.com/kthakore/parrotSDL 16:50
now how do I have it build and install multiple pirs ?
plobsing why doesn't svn like this:
kthakore goes does reading
plobsing svn copy svn.parrot.org/parrot/trunk svn.parrot.org/parrot/branches/dynext_nci
Coke plobsing: seems fine to me, except I'd spell it 'svn cp'
NotFound And is a good tactic, after two victims... err... volunteers plumage is becoming easier for beginners.
kthakore NotFound: well it is more sane way to fall on my own sword 16:51
16:52 AndyA_ joined
NotFound kthakore: my previous victim was precisely tcl-bridge, see? X-) 16:52
dalek rrot: r44186 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
[distutils] add a new variant of newer (needed by nqp)
kthakore hehe
rrot: r44187 | plobsing++ | branches/dynext_nci:
create branch to work on nci thunk dynext libraries
kthakore NotFound: you evil geniius guy
NotFound: you made me install plumage when you could have just pointed this tcl-bridge to me 16:53
NotFound: I like the cut of your jib
Coke tcl-bridge?
is that vadim's project?
NotFound kthakore: better that you choose it by yourself, IMO
Coke: I think so 16:54
kthakore heheh
Coke ->
kthakore Coke: I built my setup after his
ttbot Parrot trunk/ r44186 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/204115.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ )
plobsing Sorry, I have an appointment. If anyone wants to get the build working, I'm pretty sure reverting all commits by me after r44161 should do it. 16:55
NotFound I haven't yet finished a plumage setup for Winxed, BTW.
kthakore NotFound: so no windows plumage ? 16:57
NotFound kthakore: winxed, not windows.
kthakore what is winxed?
purl well, winxed is not javascript, just uses a familiar syntax. or code.google.com/p/winxed/
kthakore ah ok 16:58
NotFound winxed.org/
purl: winxed is also winxed.org/
purl okay, NotFound.
kthakore full metal alchemist!!! 16:59
YAY!
well I gtg to lunch now 17:00
NotFound The real inspiration is Winx Club, but don't tell anyone X-)
kthakore NotFound: are there versions in Plumage?
NotFound kthakore: not yet, I need to design and implement a few details first. 17:01
kthakore ok
also how do I make my own dataypes as datatype.pasm for SDL? 17:02
NotFound kthakore: just put then in an include file
kthakore SDL datatypes need to ckeep trakc fof their threads
NotFound: oh ok
thanks
ok real lunch now
darbelo fperrad: ping 17:10
fperrad pong, darbelo 17:16
darbelo I'm trying to write a setup.pir at gitorious.org/dbm-dynpmcs/dbm-dynpm.../setup.pir 17:17
to build a single dynpmc, but it fails during compilation.
I'm guessing a single dynpmc needs to be handled differently from a dynpmc group. 17:18
And I wanted to know how should I handle that with distutils.
dalek tracwiki: v10 | darbelo++ | Modules 17:19
tracwiki: Add dbm-dynpmcs to the Modules page
tracwiki: trac.parrot.org/parrot/wiki/Modules...ction=diff
fperrad darbelo, don't create an array line 43, just : 17:21
$P2['gdbmhash'] = 'src/pmc/gdbmhash.pmc'
an array implies a dynpmc group 17:22
17:24 jan joined
darbelo Using just a string fails too. 17:26
it tries to build a pmc named 's'
I'mg guessing it tried to use the string as an array. 17:27
dalek nxed: r417 | julian.notfound++ | trunk/examples/packfile.winxed:
more improvement in fixups dump in packfile example
17:30
darbelo Yep, it unconditionally does $P1 = iter srcs 17:31
near line 1170 of distutils.pir
17:41 whiteknight joined 17:56 kjeldahl joined
dalek rrot: r44188 | plobsing++ | trunk (14 files):
revert r44185 and r44161
17:59
fperrad darbelo, 18:00
purl hmmm... darbelo, is there anything in config_lib.pasm that gives us enough information?
18:00 nbrown joined
fperrad $P3 = split ' ', 'src/pmc/gdbmhash.pmc' 18:00
$P2['gdbmhash'] = $P3
the key 'gdbmhash' collides with gdbmhash.pmc
if you use,
18:07 nbrown_ joined
darbelo fperrad++ 18:08
I'm building a group with just one pmc now and it build fine. Thanks for the help. 18:09
dalek ose: r190 | Austin_Hastings++ | trunk/ (50 files):
Checkpoint. Resuming after kakapo sidetrack.
18:23
kthakore fperrad: hi ya
plobsing can anyone get the dynext_nci branch to fail during make and nopaste the result? 18:24
I can't seem to get it to fail in linux x86 or linux x64
kthakore how do I make the .json file for plumage?
Austin kthakore: From pir or nqp? 18:25
Or by hand? 18:26
purl by hand is just too slow when you're talking industrial production volumes.
whiteknight Anybody object if I merge the parrot_call_dep branch in now? 18:27
kthakore Austin: pir
Austin: I think
Austin: github.com/kthakore/parrotSDL see setup.pir 18:28
Austin If it's setup.pir, then you're in pir
It looks like you've got data already. What are you missing? 18:29
kthakore how to generated the file?
or should I make it by hand?
Austin You should look inside $_PARROT/runtime/parrot/library/distutils.pir, where all questions are answered. > perldoc $_PARROT/runtime/parrot/library/distutils.pir 18:30
kthakore oh nice!
Austin In this case, it's "setup.pir plumage"
kthakore thank you
whiteknight hates svn properties 18:36
kthakore hates svn
:p
kthakore runs and hides
whiteknight no, I agree with you. I like SVN less and less each day 18:38
plobsing anyone here on windows? 18:40
whiteknight last chance, anybody against the parrot_call_dep branch merge? 18:42
going once ... twice ... 18:44
done.
NotFound whiteknight: Come on, let's go!
whiteknight NotFound: :)
18:44 payload joined
dalek rrot: r44189 | whiteknight++ | failed to fetch changeset:
merge the parrot_call_dep branch to trunk. Removes mention of the old Parrot_call_* functions from the codebase, replacing most calls with Parrot_ext_call(). Most calls in the repo core have already been updated to not use these functions
18:49
18:51 nbrown joined
tewk whiteknight, does moving get_results to after the invoke mean that the callee can't inspect what the caller would like to get as returns? 18:51
whiteknight tewk: as-is, yes. 18:52
tewk: allison mentioned that we could add an "expect_returns" opcode to fill in that purpose
which strikes me as better encapsulation anyway
I'm going to merge the pmc_func_cleanup branch to trunk in about 30 minutes unless somebody has objections 18:55
tewk Also we should have an invoke_with_call_object or invoke_with_frame, so a language can dynamically create a call site.
whiteknight tewk: there are lots of options, yes. I would like to see more ways to call and build call frames
Setting an expectation object should be relatively painless though 18:56
tewk whiteknight, I think that is what the current opcodes try to do, we should preserve there intent, just make them cleaner and more intuitive.
I like your suggestions, I'm just saying that expect_returns and invoke_with_call_object should be part of the overall picture. 18:57
whiteknight tewk: CallContext is going to be changed so it doesn't have information about returns
so a call and a return are both treated internally like invoke()
and both pass "arguments" 18:58
tewk: there really isn't a good way now to get information about expected returns from the callee, so that will be an addtion
invoke_with_call_object Is basically what set_args/invokecc is going to do after this
18:59 ash_ joined
whiteknight most calls will use a constant, cached CallArguments PMC, but you will be able to build it at runtime too if you want 18:59
plobsing: ping 19:01
19:02 chromatic joined
cotto_work morning chromatic 19:02
plobsing whiteknight: pong
whiteknight plobsing: where does nativecall.pir live now? 19:03
chromatic morning
plobsing tools/build/nativecall.pir. I tried to move it but other things in those changes broke the build
for everyone else. I can't seem to reproduce the failure
and if I can't break it, I can't fix it 19:04
so it's sitting in branch
short answer - tools/build
nopaste "shockwave" at 76.119.137.239 pasted "Base member not found issue." (68 lines) at nopaste.snit.ch/19711 19:05
shockwave I'm trying to code the 'base' keyword in my language.
I'm not sure why the base method is not found. 19:06
The error I get is at the bottom. 19:07
Basically, it's saying that there is no 'foo' method in class TestXXX;A, but there is. 19:08
Austin shockwave: I don't know if it matters, but your 'init' sub is not marked :init. 19:09
19:09 nbrown joined
shockwave If I add init it says: Class Array already registered! 19:10
whiteknight plobsing: I'm not seeing a nativecall.pir in tools/build in trunk
but some of the generated files swear it is there
plobsing which ones? 19:11
purl which ones are b0rked
whiteknight ah, nevermind. I found it. It got borked in the merge
PerlJam shockwave: where's your :main? 19:12
nopaste "shockwave" at 76.119.137.239 pasted ":main sub" (20 lines) at nopaste.snit.ch/19712 19:13
dalek m-dynpmcs: 3131650 | darbelo++ | setup.pir:
Small setup.pir fix, Thanks to fperrad++ for providing it.
shockwave Perljam ^^^
m-dynpmcs: 0ac1c16 | darbelo++ | :
Add an empty .gitignore file to keep the dynext dir around.
Austin It looks okay to me, if what you've shown is what's running.
shockwave There is other code, but is basically setup. 19:14
If there where a temporary interplace place for files, i would place them there. 19:15
Austin gitorious?
purl i guess gitorious is getting a lot of work atm, it seems.
shockwave These are just throw away files. 19:16
Austin Which line is 31?
purl, nopaste?
purl hmmm... nopaste is 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
Austin Man, which one had the good coding features... Jesse something-or-other used it a lot 19:17
shockwave .sub 'this' :method \t$P30000001 = self.'%get_base'(self) \t$P30000001.'foo'() .end
dang
.sub 'this' :method; \t$P30000001 = self.'%get_base'(self); \t$P30000001.'foo'() ; .end
Line 31 is the call to 'foo'()
Coke already registered is also another way to say, use a :main marker. 19:19
shockwave Coke, the main file that is ran has a :main marker.
Austin Ahh 19:20
PerlJam shockwave: but you've also got :immediate :load and now :init right?
Austin Your get_base function returns the class object.
I don't think you want that.
shockwave PerlJam, no, I don't have :init
Austin Or, if you *do* want that, then you need to get the method a little differently. 19:21
shockwave Austin, I would like to return something that a method can be called upon.
Austin Why? 19:22
What's the eventual use-case?
shockwave Because, that's essentially the 'base' keyword.
Which is just like 'this', except for the parent class.
Austin I don't know what it does. Sorry.
Coke shockwave: yes, but I can't see your other code.
Austin You mean base returns "the current object, but cast to an ancestor class?" 19:23
shockwave Coke, sudjest a place where you would like to see it and I'll place it there. There are 3 files.
Austin Can you show me some code (real-world-ish) that uses 'base' ?
whiteknight shockwave should make a repo and put the code somewhere public :) 19:24
I'm sure lots of people would like to see it
shockwave Austin, you can think of it in the abstract easily: If you have class B, that derrives from class A, and class B overrides method 'foo' on A, then 'base' allows you get at 'A::foo'. 19:25
Austin But is is something used inside B's methods?
shockwave Austin, yes. 19:26
Austin I think you have to do an mro search (which you've started) but you need to look for the method as well. And then call it with the invocant object, not the class object.
NotFound shockwave: wath you can do is to get the Sub PMC of the method in the base class, and invoke it with the current object.
ash_ whiteknight: you might be interested in this, i am trying, more as a learning experience, re-make nqp (i am calling it nq-nqp), i have a parser thats getting closer to doing most of nqp except grammars right. grammars are going to be um... hard. it doesn't do any code gen yet, but i am working on it. I have it on github: github.com/ashgti/nq-nqp-rx if you want to see it
NotFound ...what Austin said 19:27
Austin $P0 = <what you have now>; if $P0 can 'xxx' then $P1 = $P0.methods<xxx> ; $P1(self, rest-of-args)
ash_ s/am trying/am trying to/
whiteknight ash_: Awesome! Looks very interesting
shockwave Is it possible to return the object on which I would run the method? 19:28
whiteknight Anybody object to merging in pmc_func_cleanup branch now? It's going to completely nuke trunk, in the bad way
NotFound whiteknight: Go, go, go! 19:29
whiteknight has NotFound on his shoulder, but no little angel
shockwave Of the top of your head, does anyone know of vecinities of an mro search. Maybe some test.
whiteknight okay, I warned everybody!
shockwave Windows search caps are not awesome. 19:30
Austin shockwave: no. sorry.
shockwave search.cpan.org/~tty/kurila-1.19_0/lib/mro.pm
Austin You'll have to treat "base.foo()" as a single case.
It's really "base::foo()", not an object. 19:31
NotFound shockwave: I think that using find_method in the base class object will be enough.
Austin Notfound: Only if he doesn't do multiple inheritance. 19:32
darbelo whiteknight: Nuking is good. It keeps HLL dev on their toes.
NotFound Austin: uhh... having a think like 'base' doesn't assume single inheritance?
shockwave In the first post, you'll notice that base gets placed in to a temp register.
darbelo plobsing: ping
NotFound s/think/thing 19:33
shockwave Yes, is single inheritance.
Austin NotFound: I'm reading it like "SUPER". I think it just means "not in this class."
whiteknight commit is taking a long time
is BIG commit
shockwave Yes, is just like super keyword in Java.
darbelo whiteknight: and svn's merge handling is retarded. 19:34
shockwave whiteknight, what does pmc_func_cleanup do?
Austin shockwave: You found the base class. So now do something like sub = $P0.find_method('xxx') and you've got a sub-ref (or null).
NotFound shockwave: kill us all
whiteknight shockwave: renames a lot of functions from src/omc.c
pmc.c
NotFound When whiteknight said 'nuke' I don't expect less.
Austin Then you'll call self.sub(args) 19:35
darbelo Other than pmc_new() did you rename anything that gets exported?
whiteknight darbelo: pmc_reuse, pmc_new_*, constant_pmc_new, a few others
shockwave whiteknight, What does that mean: " shockwave: renames a lot of functions from src/omc.c"? 19:36
whiteknight I sent the items to the ML
shockwave That I should do that or todo that?
whiteknight shockwave: thats what i did
shockwave The code that comes with the distribution has been a good guide. 19:37
Though, you always have to tailor make it for your particular scenario.
That sounds like a good file to keep in mind.
darbelo Actually, pmc.c should be, mostly, internal use only. 19:38
shockwave I'll be looking into the tests files to see if I can return an pointer to 'self' for the base class.
It's probably in there, somewhere.
I appreciate the find_method sudjestion, but that's not what I need. 19:39
chromatic I don't think you're going to get what you think you need.
Parrot doesn't cast objects.
kthakore hi
NotFound shockwave: there is not such thing as a parent object. Only pmc proxies for pmc bases. 19:40
kthakore I am reading about the parrot architecture from allison's talk
shockwave chromatic, maybe I'm just not understanding how Parrot's object model works at that level.
kthakore why is there a reason for PIR and PASM?
shockwave NotFound, oh, I think I understand. 19:41
chromatic How about you tell us the behavior you want from a language perspective, not from "I need a pointer to a base class"?
NotFound kthakore: masochism, maybe
kthakore NotFound: oh ok
chromatic You have an object, which is an instance of a class. That class inherits from another class. Both classes have methods.
Now what?
purl rumour has it Now is the time for the Kwisatz Haderach to arise and conquer America on a sandworm army
kthakore NotFound: :) my kinda fun
NotFound kthakore: currently pasm is only intended for very low level diagnoses of stuff like that. 19:42
shockwave chromatic, If you have class B, that derrives from class A, and class B overrides method 'foo' on A, then 'base' allows you get at 'A::foo' from B::foo.
kthakore NotFound: oh ok 19:43
shockwave I may just need to use find_method, like these guys have been mentioning.
chromatic Exactly.
shockwave From what NotFound mentioned, it made me think of it another way.
whiteknight urg, my commit keeps hanging
!@%@%#$% SVN
shockwave I was visualizing it as layered classes, and one could kinda peel a certain layer from the bottom-most object.
whiteknight goddamn svn 19:45
chromatic whiteknight, can I tell you the story of how I ruined a merge with Git locally yesterday, then fixed it without losing any data or my mind? 19:46
whiteknight chromatic: I would love to hear it 19:47
I would also love it if svn would stop timing out and actually commit something
cotto_work Oh boy! I love storytime!
plobsing darbelo: pong 19:48
chromatic Jonathan and I modified the same files!
We went to commit at the same time!
His commit landed first, and the diff hunks overlapped!
"Please fix this merge conflict," Git said. "I do not understand this code."
KAPOW! BIFF! And then I surveyed the bloody wreckage and said "Wow... that really wasn't what I intended." 19:49
cotto_work is scared.
whiteknight COMMITTED! Done!
chromatic I rewound the commits! My local copy was four commits earlier! I made a branch!
Time travel, you see. I know Brazilians.
I cherry picked my commits! Hooray!
whiteknight yay!
kthakore bring popcorn
chromatic I returned to master.
Now I am its master.
cotto_work sighs in relief
kthakore gasps
davidfetter hastur. hastur. 19:50
chromatic I told it to forget everything that had happened since I started working... at least in that universe.
davidfetter puts on some metallica
PerlJam time travel is one of git's best features.
chromatic "You've been modifying code?" it asked, incredulity dripping from its voice.
"No," I lied. "Now tell me what Jonathan has been doing."
He'd made a commit. ZING! Now I had his commit.
I returned to the branch. I am a master of time and space. 19:51
kthakore WOW!
chromatic "You know," I said. "I don't like this rug. Let's play what-if. What if I had started this work *after* Jonathan did?"
The universe shook. Plaster fell from the walls, which was odd, because they're drywall and spackle.
kthakore crunches his popcorn
chromatic I made one tiny edit for the overlapping hunk, then returned to this universe again.
"Look over there," I said. "It's a parallel dimension, but I really like the color of the vase on the table." 19:52
"I LIKE IT TOO," said the universe, and now there was one universe.
Sadly, I had no pie.
The end.
purl it has been said that the end is all messed up
19:52 mikehh joined
ttbot Parrot trunk/ r44190 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/204291.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 19:53
kthakore gives chromatic his pie 19:54
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32281), fulltest) at r44189 - Ubuntu 9.10 amd64 (g++ with --optimize)
chromatic I eventually had a homemade rice cake. 19:55
whiteknight almost as good as pie
chromatic It'd have been better if I'd used a real blender instead of a stick blender, but I was lazy. 19:56
nopaste "Austin" at 68.37.46.53 pasted "Syntax changes for NQP from Kakapo (including super)" (53 lines) at nopaste.snit.ch/19714
NotFound whiteknight: r44190 built with g++, the nuke was not armed.
darbelo plobsing: I'm looking at the tt362 branch.
whiteknight nice 19:57
dalek rrot: r44190 | whiteknight++ | failed to fetch changeset:
merged the pmc_func_cleanup branch renames all the functions in the src/pmc.c file to be called Parrot_pmc_*. Touches almost all files in the repo because these were very common functions.
Austin shockwave: see nopaste above
plobsing darbelo: any suggestions so far?
shockwave Austin, ok
darbelo Do you think the code that got repeated on both pmcs should move to a header?
rrot: r44191 | whiteknight++ | branches/parrot_call_dep:
merged to trunk, deleting branch
rrot: r44192 | whiteknight++ | branches/pmc_func_cleanup:
merged to trunk, deleting branch
whiteknight I am the master of this domain
may the entire repo tremble when I approach!
NotFound sings: I am the eye in the sky... 19:58
cotto_work whiteknight, it doesn't really take much to make the svn repo tremble
NotFound whiteknight: all test pass
Austin Ooh, Alan Parsons Project
purl rumour has it Alan Parsons Project is more robust than beowulf or doesn't involve matthew broderick although it's been rumored that it involved monkeys and the toupee of kasey kasem
Austin Ah! Git gets me again. 19:59
whiteknight we really need to have an svn mirror set up sometime
plobsing darbelo: looking at it again, I think I can take most of the code in imageiosize.pmc away
darbelo: the integers don't have to be the same, we just care that they take up space 20:00
gimme a sec
NotFound Austin: now you know I'm not very young ;)
Austin And conversely.
dalek rrot-linear-algebra: 6826ad8 | Whiteknight++ | (6 files):
update PARROTREVISION to r44190, the merge of the pmc_func_cleanup branch. rename pmc_new to Parrot_pmc_new
Austin I'm thinking of renaming Kakapo. I should call it nqp++ 20:01
whiteknight libnqp
stdnqp
Austin Whiteknight: It's a freaking lifestyle choice at this point. 20:02
whiteknight Austin: I'm going to have to start playing with it more
Austin When I was writing setup.nqp, it was pretty hard to remember "oh, that doesn't work, and this keyword doesn't exist..."
NotFound Is much fun writing something in Winxed: "Oh, this keyword doesn't exist, let's create it" 20:04
FSV of 'fun' 20:05
whiteknight is heading home. Later 20:08
dalek rrot: r44193 | mikehh++ | trunk/src/pmc/imageio.pmc:
fix codetest failure - line length
20:11
NotFound Winxed builds and pass tests with r44190. Definitely the nuke was short of neutrons.
dalek rrot: r44194 | mikehh++ | trunk/src/scheduler.c:
fix codetest failure - line length
rrot: r44195 | plobsing++ | branches/tt362/src/pmc/imageiosize.pmc:
remove unnecessary freeze id logic from imageiosize
shockwave How can I print all the keys of the hash inspect returns?
Austin Create an iterator: $P0 = iter <hash> 20:12
Or load_bytecode 'dumper.pbc' and then call _dumper($P0) 20:13
(on the hash, not the iterator)
shockwave Austin, I started fooling around with an iterator. I'm glad I'm in the right path. Thanks.
dalek rrot-data-structures: 904c13f | Whiteknight++ | benchmarks.sh:
make benchmarks.sh executable on systems that support it
20:14
rrot-data-structures: 85ed1be | Whiteknight++ | t/pmc/ (3 files):
Merge branch 'master' of git@github.com:Whiteknight/parrot-data-structures
rrot-data-structures: 759c8f2 | Whiteknight++ | (8 files):
Update to use Parrot_pmc_new instead of pmc_new
plobsing darbelo: hows that? is there still too much duplication? 20:16
darbelo let me svn up...
20:18 hercynium joined
Coke davidfetter: I have a set of fraternity colors with HASTUR printed on the back. 20:18
davidfetter heh
Coke chromatic: I finally caved and followed your style of quoting something in the release message. 20:19
darbelo plobsing: looks good to me.
Coke wonders what got merged this time and if trunk works again.
chromatic Coke, that was a great quote, especially for that release.
shockwave Austin, I was able to get the keys printed. Thanks.
Coke AIGH. 20:20
Austin shockwave: No problem. You should look into using _dumper now, because it does a fine job of displaying the stuff, and when you're neck deep you'll appreciate that.
Coke the rakudo release note says, "requires parrot 2.1.0"
... AIGH
cotto_work ow
Coke heads over to perl6. 20:21
darbelo What they released already?
I thought tha was next week.
cotto_work nope
It's two days after the Parrot release
darbelo Ouch.
kthakore darbelo: what happenz? 20:23
cotto_work Coke> the rakudo release note says, "requires parrot 2.1.0"
Austin shockwave: Also, take a look at the __dump method in gitorious.org/kakapo/kakapo/blobs/m...object.nqp -- it works with Data::Dumper to dump the attributes of class instances.
darbelo kthakore: What Coke said about the Rakudo release notes.
20:24 iblechbot joined
darbelo They're basically 'requiring' the buggy release, instead of the fixed one we put out for them. 20:24
shockwave When using the 'inspect' opcode on an object, and printing the keys of the returned hash using an iterator, the printed stuff doesn't seem to include at least one key that could be used on the returned hash: 'all_parents'.
There may be more
kthakore darbelo: uh oh 20:25
mikehh make html - Failed to process tools/build/nativecall.pl
shockwave Or the printed keys just don't coincide with the hash names.
kthakore darbelo: that might not work out so well
shockwave Or I'm just doing it wrong.
chromatic We might not expose all_parents to inspect. 20:26
Austin This is on a class?
shockwave Yes.
20:26 cosimo joined
Austin It's worse than chromatic suggests. 20:27
20:28 joeri joined
Austin The hash is generated based on code that is maintained by hand - it's not automatic, nor is it automatable as currently coded. You kind of have to read the source code to know the possible things you can pass to inspect 20:28
shockwave chromatic, all_parents returns something.
Austin There are 11 keys that inspect_str answers, but only 7 that inspect populates. 20:29
Welcome to parrot.
dalek rrot: r44196 | mikehh++ | trunk/src/pmc.c:
correct C function docs
shockwave There is a opcodes page in the docs. 20:30
I'm going to start a trac page for placing opcodes there. These are the ones within parrot.
Austin Also, there are the source files for the various .pmc types, in $_PARROT/src/pmc. That's where the goodies are hidden.
shockwave Is that cool?
20:30 contingencyplan joined
Austin shockwave: There's a dictionary already started. Please, please add to it. 20:31
"Parrot Dictionary" is the page name
shockwave I'll search for it.
Austin trac.parrot.org/parrot/wiki/Parrot%20Dictionary 20:32
shockwave Yep, found it.
darbelo Say, is there a brave soul willing to translate t/dynpmc/gdbmhash.t to PIR?
Austin sings "...at the table of your love, I got the brush-off! At the Indianapolis of your heart, I lost the race..." 20:33
Austin sings "... I've been flushed from the bathroom of your heart!"
kthakore Austin: um ok ... 20:34
Coke does the picard maneuver on his aperture laboratories shirt.
Austin Forget Taylor Swift - THAT's country.
purl Austin, I didn't have anything matching taylor swift - that's country
Coke (inspect_str) <RANT RANT RANT>
that's another place like does where there is a well defined list of what is what. 20:35
is NOT a ...
chromatic What is the what?
NotFound darbelo: Why pir? Can't be written in some HLL?
kthakore Is this ticket still outstanding? #1192 20:37
ticket #1192
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32282), fulltest) at r44196 - Ubuntu 9.10 amd64 (gcc with --optimize)
shockwave Parrot Dictionary contains alot of useful information. 20:39
20:39 lucian_ joined
shockwave I volunteer to re-arrange the information there, and organize it in a slightly different format. 20:41
Like a reference manual.
To do what that page is current doing, which is catalogin the PMC and opcodes.
I can dedicate to it at least 30mins per day, 5 days per week, for the next 3 months. 20:42
Anyone oposes or have a better idea?
Austin shockwave: There's a "HLL Resources" page that links to the dictionary. Make sure you look there, and if you add any pages for HLL developers, add them to that page, too, please. 20:43
ttbot Parrot trunk/ r44196 cygwin-thread-multi-64int make error tt.ro.vutbr.cz/file/cmdout/204415.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 20:44
shockwave Austin, I'm thinking of something to complement the PIR book. The book should show you the basics of programming parrot, while the reference has the pmc and opcode details.
Austin Cool.
shockwave This can be kept on trac, for now. Hopefully in the future it can grow to a state which can be placed in docs.parrot.org. 20:45
Austin You might want to commit changes to the pmc or .ops files directly. The docs are generated from there, so any updates you make will be included directly. 20:46
shockwave Austin, I'll get someone to Ok that, in the future. 20:47
NotFound Why is ttbot crying about dynpmc md2.pmc and several like that? Aren't that beasts out of the repo now? 20:48
Austin It's an open source project. Send in your pafo CLA, and commit the changes directly. :)
darbelo NotFound: nope, they'll remain in the repo until 2.4 20:49
s/4/3/
NotFound: It's a deprecation matter.
But you can start configuring without them and installing them from plumage if you need them. 20:50
20:50 kjeldahl joined
NotFound I don't have it. They are generated from some other directory? 20:51
darbelo NotFound: those are probed for in the auto::crypto configure step. 20:52
auto::crypto - Does your platform support crypto...................yes.
NotFound darbelo: I see, but where are the skeletons or whatever they use? 20:53
chromatic I think they were part of configure. 20:54
darbelo NotFound: config/gen/crypto/[nameofthepmc].in
No, actually config/gen/crypto/digest_pmc.in 20:55
I misremembered that.
NotFound ttbot is right, is broken, 20:59
dalek rrot: r44197 | mikehh++ | trunk/lib/Parrot/Docs/Section/Tools.pm:
remove tools/build/nativecall.pl (converted to pir)
21:04
Coke Hey, why do we have an empty runtime/parrot/library/Math/Random ?
rrot: r44198 | mikehh++ | trunk/t/codingstd/copyright.t:
remove tools/build/nativecall.pl (converted to pir)
Coke was the one thing in it removed?
darbelo The library that lived there moved out.
I think it was fperrad's mersene twisted RNG, but could be wrong.
21:06 mberends joined
darbelo If it was, then I removed it, but forgot to remove the dir. Want me to kill it? 21:07
Coke got it.
(also regen'd manifest.skip, which referred to it.)
would anyone mind if I converted one of the PIR files in the library to NQP, as long as the functionality didn't change? 21:08
nqp-rx, that is.
darbelo If I can still use them from PIR, then I don't care what they're written in. 21:09
Could be COBOL for all I care.
Austin Yeah!
cobol on parrotvm
Darbelo's next project
darbelo Austin: No. 21:10
Austin Anybody know what PMC I have to ask to get the process id?
darbelo I don't think we store that anywhere. 21:11
Austin Heh.
NotFound Austin: you can dlfunc getpid
mberends hi, I wanted to thank @you-all for the terrific last minute fixes to Parrot. The release targets r44147, which includes all the patches, but just missed the documentation updates in 44148 and 44149. That's my mistake, and I'm sorry the Parrot version was published as 2.1.0 instead of 2.1.1. The Rakudo --gen-parrot will pick up the patches, however. 21:12
Austin That wants a library, NotFound, but what do I give it? 21:13
darbelo libc?
purl libc is special.
NotFound Austin: pmcnull
Austin w00t
21:13 snarkyboojum joined
darbelo mberends: Shouldn't releases target releases? 21:13
21:14 Whiteknight joined
NotFound Some day we must improve that part of the dl system. 21:14
darbelo There is no trunk rev that corresponds to 2.1.1.
mberends yes, that's my bad.
darbelo Which is bound to be a problem if --gen-parrot pulls from trunk. 21:15
Austin What's the "signature" for "pid_t getpid(void)" ?
mberends darbelo: it pulls r44147 which tests out very well
Austin Is that just "I", or are signatures something else?
NotFound Austin: I think i will work everyhwere 21:16
Whiteknight "I"
darbelo "->I"?
Whiteknight for NCI it's "I"
Austin heh
Whiteknight for PCC is "->I"
Austin And this is written down, where?
Whiteknight NOWHERE
darbelo Is there any chance we could unify that?
plobsing there's a pdd for that 21:17
Austin Once I've got &getpid, can I just call it, or do I have to do some other shenanigans?
NotFound Austin: just call it.
darbelo At this point I want a ticket and an entry in DEPRECATED.pod more than a PDD. But I guess I'll have to live with it. 21:18
plobsing docs/pdds/draft/pdd16_native_call.pod 21:19
darbelo The pdd still talks about 'v' signatures, weren't those deprecated? 21:22
NotFound darbelo: if the return value is the first character, you need something to mean void. 21:23
darbelo Not if we move to the "->" syntax :) 21:24
plobsing darbelo: I want to move to the "->" syntax as well, but there's other improvements that can come at the same time 21:25
dalek rrot: r44199 | coke++ | trunk/runtime/parrot/library/Math/Rand.pir:
minor PIR cleanup
NotFound darbelo: when that day comes, the if will meet his else ;)
plobsing like long double
darbelo Yeah, our native type handling sucks.
Austin Man, for what is probably the only time in my life, I need to be able to say " @args .= shift; " 21:26
Where's *that* in the nqp timeline...
rrot: r44200 | coke++ | trunk (2 files):
Remove empty directory.
darbelo AFAICT we have no way to work with integers/floats wider than INTVAL or NUMVAL.
rrot: r44201 | NotFound++ | failed to fetch changeset:
rename deprecated and deleted pmc_new_noinit to Parrot_pmc_new_noinit in crypto dynpmcs skeleton
plobsing darbelo: don't we have bignums somewhere? 21:28
darbelo Only if you have GMP installed.
pmichaud Austin: nqp doesn't have assignment
Austin: so .= isn't on its timeline at present 21:29
plobsing well then the decision is easy: use the widest possible values for INTVAL/NUMVAL or use GMP
Austin Of course. The really cool opcodes are always in the *next* programming language...
darbelo And those are PMCs, the only way to pass *them* data is through VTABLEs, which don't handle native types.
dalek tracwiki: v1 | shockwave++ | PIRReference
tracwiki: trac.parrot.org/parrot/wiki/PIRRefe...ction=diff
pmichaud (passing rakudo 2.1.0 comments from #perl6 back here) 21:30
fwiw, I'm just fine with Rakudo having gone out listing 2.1.0 as its requirement. If someone uses --gen-parrot, "2.1.0-devel" is what they will see in the parrot version number.
Coke hokay. I just kind of feel that the effort in getting 2.1.1 out the door might have been wasted. =-) 21:32
darbelo pmichaud: Having a release rakudo pull from parrot trunk feels wrong to me, shouldn't it target a parrot release? 21:34
pmichaud darbelo: --gen-parrot has to pull from parrot repo
for people developing rakudo, parrot releases are almost never sufficient 21:35
I think the longest period of time we've been able to develop to a release parrot is about 5 days.
Coke darbelo: the release does target the release.
darbelo Coke: If the release targets the release why is pulling from trunk?
Coke darbelo: their "trunk" pulls from our trunk. 21:36
(not HEAD, necessarily, but somewhere on trunk.)
once they cut the release, the rakudo developers go right back to hacking on the mainline development, just like we do.
darbelo Coke: Didn't mberends say a while ago that the *release* pulls (a specific rev of) trunk? 21:37
Coke ... if I did, I think he's mistaken.
pmichaud *sigh* 21:38
Coke er, if /he/ did.
pmichaud someone downloads a copy of Rakudo. Let's suppose they get the tarball.
Coke pmichaud: my summary is correct, neh?
ttbot Parrot trunk/ r44199 cygwin-thread-multi-64int make error tt.ro.vutbr.cz/file/cmdout/204540.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 21:39
pmichaud they unpack the tarball. If they have parrot already installed, it needs to be at least 2.1.0.
darbelo pmichaud: I'm doing that right now, I'll just see If it does what I think it does.
pmichaud If they have 2.1.1, that's all the better. If they go looking for a Parrot tarball, they'll find 2.1.1 (because 2.1.0 is apparently no longer available)
that's fine -- perhaps a bit of confusion, but shouldn't be too big.
if they try to build rakudo using --gen-parrot, it will do so using a svn checkout from parrot's trunk. 21:40
darbelo pmichaud: Yes. That's my point. 21:41
svn checkout -r 44147 svn.parrot.org/parrot/trunk parrot
pmichaud In theory we could do a checkout from the tags/ subdir, or try to download a tarball, but the first option happens incredibly rarely and the second option requires a separate download tool
in short, I don't see it as being a problem worth even the time we're spending discussing it (more) 21:42
so far I've yet to encounter anyone who has trouble building rakudo/parrot using the --gen-parrot option.
Coke the only reason I even raised this was for the people who are also grabbing the parrot tarball.
pmichaud perhaps this will be the first occurrence, but based on a year's worth of experience I'm doubting it
21:43 bacek joined
pmichaud (grabbing the parrot tarball) 21:43
This case is much less common (more)
21:43 lucian joined
pmichaud first, we more commonly have the case that someone always grabs the later tarball, even if the release notes specify an earlier one 21:43
Coke fperrad: ... if you declare target as a string in that, you don't need the $S0. you're doing this the hard way. =-) 21:44
pmichaud second, parrot itself describes 2.0.0 as being the "stable" release, so the much more common difficulty is that people grab the stable release instead
dalek rrot: r44202 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
[distutils] fix r44186
21:45
nopaste "coke" at 65.91.151.194 pasted "fperrad - try this?" (5 lines) at nopaste.snit.ch/19715
pmichaud anyway, like mberends and the rest of the rakudo folks, we *really* appreciate the effort to get the 2.1.1 release out quickly. 21:46
Austin Pmichaud: What's the intended behavior of exceptions inside a catch block? 21:47
pmichaud imo it improves things for the rakudo community a fair bit. Had the release not occurred, then Rakudo would have ended up targeting 2.1.0 and the svn revision that didn't include the memory leak fix
Austin: I'm a little fuzzy on those details still. Tene++ might know.
fperrad Coke: I prefer coherence between :multi & .param
Austin Okay. Current nqprx doesn't pop the eh on entry, so I'm doing a lot of CATCH { $exception := $!; } if $exception { ... } 21:48
pmichaud fperrad: I think that trying to enforce coherence is a mistake
fperrad: :multi is used to decide which candidate to invoke
.param is used to determine what the arguments look like inside of the sub that is chosen
they don't have to correspond exactly.
dalek tracwiki: v158 | coke++ | WikiStart 21:49
tracwiki: trac.parrot.org/parrot/wiki/WikiSta...ction=diff
Tene Austin: "behavior of exceptions in a catch block"?
Austin Tene: Should the eh that caught $! still be active inside the block?
Tene AFAIK, yes. 21:50
That's also how it's implemented in PCT
Austin So throwing inside the block lands you back in the block?
Tene unless you're filtering the exceptions somehow.
handle_types and handle_severity
although... those aren't exposed in NQP, really. 21:51
pmichaud aren't they methods? 21:52
Coke Austin: I don't remember having to do that in partcl-nqp.
Tene pmichaud: they're methods on the exception handler itself.
Austin Tene: Maybe not in nqp
:)
Tene pmichaud: when you say CATCH, you don't have access to the EH object itself.
Austin But in nqp++
pmichaud Tene: ah. So one would .... right.
darbelo Coke: ping., 21:53
Tene Austin: I don't really have any idea what you're trying to do here.
pmichaud Tene: maybe we can expose the handler somewhere :)
Coke Austin: check out the CATCH in partcl-nqp's "src/Partcl/commands/main.pm"
Austin partcl-nqp?
purl somebody said partcl-nqp was github.com/partcl/partcl-nqp
fperrad pmichaud, I dislike a small optimization which causes headache in long term maintenance
Austin botsnack
purl thanks Austin :)
pmichaud fperrad: headache in long term maintenance? how so? 21:54
Coke fperrad: my headache is in the implemenation you have, wondering why you're running that extra opcode. =-)
(that's twice I've seen that commit and said "??")
darbelo Coke: I migh be able to get access to a Solaris box with Sun cc on it next week. Do you still need help with non-gcc compilers in rm_cflags?
Coke so, YMMV.
pmichaud fwiw, I saw the commit and said "??" also :)
Coke darbelo: absolutely.
it's probably still broken atm.
s/probably/
purl Indubitably.
darbelo Okay. I'll see if I can do anything to fix it. 21:55
Coke darbelo: danke.
darbelo is not making any promises. 21:56
Tene Austin: what are you doing in the EH that generates exceptions?
cotto_work pmichaud, any chance of you taking a look at the ops_pct branch?
Coke msg chromatic: I can't even logout from the vms accounts. I had to kill my screen session. been a looong time since I touched vms, so that is probably the extent of my efforts for now.
purl Message for chromatic stored.
pmichaud cotto_work: will do it shortly.
(as in, in the next couple of hours, barring interruptions from @family)
Austin Tene: I'm catching whatever-exception, and throwing a test-failed exception.
cotto_work Great. Thanks. 21:57
Coke Austin: ah. that's icky. your way is probably the best, then.
Tene Austin: once I get subclassable exceptions merged in, I should have an option for you.
Austin Sweet. 21:58
Tene You could write your own try() function that would catch everything *Except* your Exception::Test or whatever subclass.
Coke or you could throw a CONTROL exception. 21:59
(would that work?)
Tene Yeah. 22:02
Austin Or I could just stash the exception and leave the block. It works just fine.
nopaste "Austin" at 68.37.46.53 pasted "Exception stash-n-dash" (21 lines) at nopaste.snit.ch/19717 22:03
Coke Austin: where's your try? 22:06
Austin Didn't know I needed one.
Tene Coke: you don't need one. 22:07
Coke I'm used to seeing try { ... CATCH {} CONTROL {} }
k
Tene Coke: try {} just adds a default exception handler. Any CATCH will override it.
Coke ah. it will also limit the scope of your CATCH, which is what I wanted. though presumably I could just say { } 22:13
(the try makes it slightly more readable, IMO. But only slightly)
Tene Right. 22:14
An afternoon project I've had on my list for a while is writing a simple language for representing PAST, to demonstrate/test PAST a bit more easily. 22:20
If it happens to be identical to how --target=past currently dumps, even better.
22:23 dalek joined
NotFound Tene: a json'ed version will be trivial to parse and easy to convert to whatever, 22:24
Coke if anyone other than me cares about cold fusion: github.com/denuno/cfml.dictionary/b...ry/cf8.xml (and more in that project) gives the XML for the various CF tags, so someone could theoretically make a parser. 22:28
dalek TT #1471 created by coke++: www.parrot.org/dev/examples doesn't use color coding. 22:37
rrot: r44203 | plobsing++ | branches/tt362 (294 files):
sync branch with latest trunk
22:42
rrot: r44204 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
[distutils] handles non-group dynpmc (for example gdbmhash)
22:42 bacek joined
bacek Morning 22:43
cotto_work morning bacek 22:44
happy Saturday! 22:45
bacek cotto_work, work??? Still???
Coke it's not even 3pm there.
cotto_work It's only 1445 in my timezone
on Friday
bacek yak... 22:46
cotto_work I see you're your typically busy self.
bacek it's 10am Saturday. Nice shiny Saturday :)
darbelo Poor us suckers, stuck in the past.
bacek cotto_work, just leftover from last nigh hacking 22:47
darbelo It's a rainy Friday night here.
If this keeps up, I'll have to develop gills...
bacek darbelo, get a plain, come to visit Australia :) 22:48
Coke or the east/North east US. plenty of snow here. 22:49
Coke heads out.
darbelo bacek: A plane? What for? My house is about to become a freaking *raft*
Austin The nice thing about all this rain we're having in New Jersey is that it's stackable. 22:50
darbelo I'll just let the tide float me there.
Austin We're just piling it up on the sides of roads, rooftops, whereever.
bacek darbelo, than kayak to Australia!
Austin It's ... rain-caching!
22:53 theory joined
dalek rrot: r44205 | bacek++ | branches/sys_mem_reduce/src/gc/gc_inf.c:
Update GC INF to use internal allocations.
22:58
rrot: r44206 | bacek++ | branches/sys_mem_reduce/src/io (2 files):
Update src/io to use GC allocations
rrot: r44207 | bacek++ | branches/sys_mem_reduce/src/string/api.c:
Switch string API to use internal allocations. Unfortunately Parrot_str_free_cstring doesn't accept PARROT_INTERP...
rrot: r44208 | bacek++ | branches/sys_mem_reduce (7 files):
Switch charsets and encodings to use GC allocations
darbelo bacek: I'm not sure it's a good idea to switch Parrot_str_to_cstring() to internal allocations. 23:02
bacek darbelo, why?
mem_internal_allocate is same as mem_sys_allocate + LINE/FILE reporting on failure. 23:03
darbelo Embedders/extenders could want a cstring that's not subject to parrot's internal memory policy. 23:04
bacek darbelo, they have to anyway.
Just because allocated cstring belongs to Parrot, not embedders. 23:05
darbelo Parrot_str_to_cstring() used to return a simple malloc()ed buffer.
They could free() it with impunity.
bacek darbelo, it's still simple malloced buffer. But there is str_cstring_free to deallocate it. 23:06
Otherwise it's breaking contract.
darbelo Then I misunderstood what internal allocations meant :) 23:07
Sorry.
bacek No worries.
purl hmmm... No worries. is my smoke harness code public?
bacek purl, forget No worries.
purl bacek: I forgot no worries
dalek kudo/master: 3b869ce | (Martin Berends)++ | docs/compiler_overview.pod:
[docs/compiler_overview.pod] update for new master branch completed
23:13
rrot: r44209 | bacek++ | branches/sys_mem_reduce/src/runcore (2 files):
Switch runcores to use GC allocations
23:16
rrot: r44210 | bacek++ | branches/sys_mem_reduce/src/runcore/cores.c:
Remove old commented-out code.
m-dynpmcs: 7daf81b | darbelo++ | src/pmc/gdbmhash.pmc:
Pull updates from trunk. This fixes the build after the Great pmc.t Function Renaming of 2010.
23:29
rrot: r44211 | plobsing++ | branches/tt362/t/native_pbc (4 files):
mk_native_pbc
23:33
darbelo Whiteknight: ping 23:38
Whiteknight darbelo: pong
darbelo Did you update pirc acter the Great Renaming? 23:39
s/acter/after/
Whiteknight darbelo: I renamed all instances that ack found.
darbelo compilers/pirc/src/bcgen.c 23:40
1158: const INTVAL type = pmc_type(bc->interp, classname);
ttbot Parrot trunk/ r44200 cygwin-thread-multi-64int make error tt.ro.vutbr.cz/file/cmdout/204730.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ )
darbelo could that be a leftover? 23:42
NotFound Whiteknight: What do you think about using VTABLE elements in opcode instead od the method op_count, and get_integer_keyed_int for the argument types?
chromatic Is that an exported function?
darbelo chromatic: Yeah, several PMCs and dynpmcs use it. 23:44
chromatic Hm. I'd like to think there are better approaches, but maybe we did miss it. 23:46
Whiteknight darbelo: could be, but it's an easy fix.
NotFound bacek: If I remember well, Parrot_str_to_cstring clearly documents how to free the result. If somenone doesn't, is his fault. 23:47
Whiteknight NotFound: that seems reasonable to me. But I think VTABLE_elements there should only return the number of args, not op_count
NotFound Whiteknight: that was my next question ;)
darbelo chromatic: Well, there could be. But this one is the one in use.
Hmm, I see some VTABLE_type() use. Should that be the preferred method? 23:49
kthakore um hi 23:51
purl que tal, kthakore.
kthakore The new parrot seems to have broken SDL/Surface.pir 23:52
I get error:imcc:syntax error, unexpected DOT ('.') in file 'runtime/parrot/library/SDL/Surface.pir' line 148
not sure what the problem is
That line is set pixels_layout[ 'array' ], .DATATYPE_INT
isn't that right?
purl You're absolutely right!
NotFound kthakore: looks like that file lacks an .include 23:53
kthakore ah ok 23:54
.include data types stuff right?
NotFound kthakore: yeah
kthakore thanks
NotFound kthakore: remember that some of the files weren't working for some time, they can have several problems like that. 23:55
kthakore no problem
23:56 tetragon joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32283), fulltest) at r44211 - Ubuntu 9.10 amd64 (g++ with --optimize) 23:56
kthakore NotFound: yay! my first fix! 23:57
thanks dude 23:58
now I can let it stop bugging me
hehe
NotFound: I was thinking of making a pre redesign release of the code in ParrotCore with the examples working 23:59
any who time to go do chores
NotFound kthakore: not a bad idea