Parrot 1.2.0 released | parrot.org/ | Weekly Priority: Profiling | Parrot VM Workshop, Pittsburgh, June 20-21
Set by moderator on 7 June 2009.
chromatic Coke, that might be a win for you. 00:00
Coke damn is feather slow. 00:01
bacek: Thuesday? 00:13
Infinoid ENOBACEK
Coke msg bacek Thuesday? 00:14
purl Message for bacek stored.
Infinoid oh, heh. I had originally read that as "thursday"
Coke is it possible to make a constant RPA? 00:15
Coke digs for .const
chromatic I don't know how you'd initialize it. 00:16
You'd probably have to declare all of its contents as .const too.
cotto Coke, you could make it ro 00:22
Coke I don't care if it's editable (i just won't edit it.)
chromatic You want it constant and compile-time so. 00:26
nopaste "coke" at 72.228.52.192 pasted "something like this." (18 lines) at nopaste.snit.ch/16888 00:28
Coke that doesn't work, but that sort of thign. 00:30
Bus Error! 00:32
purl Go take a walk.
dalek TT #756 created by coke++: invalid PMC causes bus error with const. 00:36
nopaste "coke" at 72.228.52.192 pasted "this fails on instantiate_str() ." (18 lines) at nopaste.snit.ch/16889 00:37
Coke For now I'll just have an immediate that creates it and shoves it into a global (which I'm already done.) 00:38
"doing"
chromatic There's a fix for nopaste.snit.ch/16887 . Ugh. 00:45
Whiteknight chromatic: does that snippet cause a problem? 00:50
chromatic r39125 was the culprit.
Coke I always knew consting was evil. 00:51
chromatic I think the fix for that will help Coke tremendously. 00:52
Coke here's hoping.
I presume you're not just reverting 39125, then.
chromatic Nope. 00:53
I don't want to lose the performance gain.
00:57 diegoviola joined
diegoviola hi, is parrot ready for production use? 00:57
Coke FSOV production.
diegoviola ?
Coke "for some values of"
diegoviola if we'd like to embedd parrot in some platforms, such as this: www.freeswitch.org 00:58
and apache, etc
Coke There is a 1.0 that is considered stable.
for apache, see "mod_parrot"
that project is well underway and already supporting higher level languages like perl6.
diegoviola i see 00:59
well, thanks for the info
parrot seems to be really interesting
how does it compares to something like java or mono?
i don't like either of those
is it comparable? 01:00
or they are different things?
for different purposes i mean
Coke There's a FAQ on that. 01:01
diegoviola ok
01:02 ZeroForce joined
Infinoid How would you plug parrot into freeswitch? 01:03
chromatic Hm, the problem is that pool->num_free_objects is very, very wrong.
diegoviola so it's stack-based vs register-based?
Whiteknight parrot is register-based 01:04
tewk ====================================================================================================================================================================/
Whiteknight ?
diegoviola Infinoid: i don't know, i'm not a developer, but i wanted to suggest that to the devs... since they already have mod_java and mod_managed (mono)
Infinoid: and i don't want to use either of those
tewk zQ,m ~m3~
]\\'''''''''''''''''''''''''''''''y'y']'6y']]']]]
diegoviola Infinoid: they asked me if it was embeddable 01:05
Coke tewk's cat is in town.
Infinoid diegoviola: We have an embedding API which is sorely in need of more users
diegoviola Infinoid: is there a link on that on the web site? 01:06
Whiteknight I think tewk is broken
diegoviola found it 01:07
Infinoid there should be embed.pod and pdd10 on docs.parrot.org, digging up links now (I'm on a slow connection here)
diegoviola www.parrotcode.org/docs/embed.html ?
ok thanks
Whiteknight goodnight 01:08
Infinoid parrotcode.org is outdated
diegoviola ok
Infinoid docs.parrot.org/parrot/latest/html/...d.pod.html
pmichaud chromatic: Should I go ahead and file a ticket for nopaste 16887?
Infinoid docs.parrot.org/parrot/latest/html/...g.pod.html
diegoviola yep, thanks
Coke pmichaud: couldn't hoit. 01:09
chromatic pmichaud, I can fix it the easy way, but I want to keep performance where it was. 01:10
pmichaud what's the easy way fix? 01:12
01:13 whoppix joined
Infinoid The easy way is probably reverting r39125 01:13
pmichaud checks 39125 01:14
Coke I'm surprised that consting would do that.
is it putting something into the constant pool and then not getting freed?
chromatic r39215 I meant. 01:15
Infinoid oh
Coke that's much more likely. =-)
dyslexic much?
pmichaud chromatic: I wonder if the reason that Rakudo is 6.79% faster is because there aren't any GCs taking place. 01:16
chromatic Yep. 01:17
pool->num_free_objects is very, very wrong for some reason.
pmichaud #define GC_DEBUG_REPLENISH_LEVEL_FACTOR 0.0 01:18
that looks odd.
chromatic That's only for GC debugging. 01:19
pmichaud ah, right.
okay.
chromatic I'm running the test suite now, but it should be okay. 01:20
A smarter GC wouldn't have had a problem here. 01:23
But whenever we allocate a new pool, we write to it and turn virtual memory into process memory. 01:24
Coke, Tcl may fare far better now.
dalek rrot: r39531 | chromatic++ | trunk/src/gc/gc_ms.c:
[GC] Reverted r39215, which caused the GC to allocate more pools unnecessarily
01:30 Hunger- joined
Coke chromatic: trying one of the spec tests that exploded now. 01:32
memory usage is INSANELY better. 01:34
much better, thanks. 01:37
I'll try all the out of memory ones, unskip them, and do a full run.
mathop.test alone (my test case) gets me another 158 passes. 01:38
of course, now the ones that leak memory slowly take a LONG time to fail. =-) 01:44
hurm. the tests are not magically completing. 02:18
I'll unskip all the ones I can.
02:30 cognominal joined 02:35 Theory joined
diegoviola so does parrot has the potential to replace mono or java? 03:01
even if it's not it's goal
i mean, in a technolgy way
technology
purl philosophy
diegoviola yep but as a technology, can it compete against those? 03:02
in the market today
Coke purl is a bot, btw. 03:05
diegoviola: there's a few problems with using parrot to compete with the jvm and mono today; 03:14
diegoviola does the register-based has any advantages over the other?
Coke: which are those problems? 03:15
Coke parrot is generally slower than the original implementations of the target languages; many of the langauges targetted at mono (and all of the big one for java) don't have compilers to parrot.
diegoviola: I'm /typing/ =-)
diegoviola ok
Coke diegoviola: (register based) again, that was a FAQ. That was the supposition, yes.
see docs/faq.pod 03:17
diegoviola thanks
03:17 Zak joined
Coke I'm not sure why that doc isn't visible on docs.parrot.org 03:18
03:20 Maddingu1 joined
Coke chromatic++ 03:20
chromatic-- # for breaking it in the first place.
03:21 donaldh joined
Coke Pretty sure his fix has won me about 750 more passing tests. 03:21
750 / 2162
purl 0.346901017576318
03:27 zak_ joined
pmichaud it's also exposing some GC problems in Rakudo. 03:35
dalek kudo: 4d21e2a | pmichaud++ | build/PARROT_REVISION:
Bump PARROT_REVISION.
03:40
Coke hurm. any idea why code.google.com/p/partcl/source/bro...spectcl.in isn't showing the PANIC in the .results file when it's done? 03:55
bah. it does sometimes. nevermind. 03:57
dalek rtcl: r483 | coke++ | wiki/SpecTestStatus.wiki:
chromatic++ # actually running the GC helps us stay under the limit.
04:01
04:23 eternaleye joined 04:36 mikehh_ joined 04:39 Theory joined 04:43 eternaleye joined 04:57 eternaleye joined 05:10 Theory joined
dalek rtcl: r484 | coke++ | trunk/docs/spectest- (2 files):
Reclaim several more test files after chromatic++'s recent GC fix.
05:24
Coke msg chromatic code.google.com/p/partcl/source/detail?r=484 - net gain of 810 tests : that pushes to the highest # of passing spec tests ever. (and that's with a loss of a 35 in some other file). also, the tests ran /faster/, even though we ran more tests. (158s faster) 05:27
purl Message for chromatic stored.
Coke msg chromatic - there are some minor tcl changes in there too, but I'm willing to give you all the credit. =-) 05:28
purl Message for chromatic stored.
Coke purl 4374 / 60 / 60 ?
purl i haven't a clue, coke
Coke purl 4374 / 60 / 60
purl 1.215
cotto that many hours to run the spec tests? 05:47
05:53 eternaleye joined
dalek rrot: r39532 | tene++ | trunk/runtime/parrot/languages/parrot/parrot.pir:
[languages/parrot]:
06:04
rrot: r39533 | tene++ | trunk/runtime/parrot/library/Curses.pir:
Add a curses lib Curses.pir (copied from ncurses.pir) that can be used from HLLs.
06:11
rrot: r39534 | tene++ | trunk (2 files):
SVN metadata and MANIFEST.
06:14
Coke cotto: (hours) yes.
06:38 f0rk joined
f0rk I have a question about threading and multicore in parrot 06:44
what support for these features will parrot have? 06:45
Tene Parrot currently supports threading. 06:48
f0rk I see 06:49
is there somewhere in the docs where I could read more about it?
06:49 viklund_ joined
Tene docs/pdds/pdd25_concurrency.pod should be a decent start 06:50
also docs/pdds/pdd24_events.pod
also look at the tests
f0rk thanks!
Tene t/pmc/threads.t 06:51
iirc
did you have any more-specific questions?
f0rk not at the moment
Tene Feel free to ask at any time. :)
07:10 f0rk joined 07:20 donaldh joined
japhb Tene: thanks for the catch in t39534. 07:29
er r39534, of course
07:41 cowens joined 07:46 cowens left
Tene I found a nasty crash in clone_interpreter(). 07:52
dalek TT #757 created by tene++: Problem with threads and HLLs
08:17 mj41 joined 08:26 barney joined 08:32 chromatic joined
dalek TT #758 created by reezer++: Fix problems o openbsd/hppa 08:32
kudo: e167c92 | moritz++ | t/spectest.data:
3 more files for spectest.t
11:05
nopaste "Infinoid" at 65.18.171.17 pasted "More opengl configuration warnings on gentoo/amd64 (yes, I upgraded mesa recently)" (274 lines) at nopaste.snit.ch/16892 11:10
11:20 donaldh joined
Infinoid msg bacek Please take a look at TT #758. According to smolder.plusthree.com/app/public_pr...a-openbsd, r39527 passes almost all tests and r39529 has lots of failures. (r39528 is just POD, r39529 was your tt24_unicode_numifications merge.) The failures look like smolder.plusthree.com/app/public_pr.../23630/187 11:29
purl Message for bacek stored.
11:36 bacek joined
bacek o hai 11:43
Infinoid hey :) 11:44
bacek: As I said in the msg, r39527 passes almost all tests, but the two tests it does fail are also floatval-related, so parrot wasn't perfect before the merge either 11:46
smolder.plusthree.com/app/public_pr...23619/162, smolder.plusthree.com/app/public_pr.../23619/187
rounding errors? 11:47
bacek Infinoid: I'm checking TAP output...
Ok. floor $N1, $N2 call C floor. Probably on this architecture "C floor" is wrong. 11:49
11:49 Whiteknight joined
bacek But ../187 looks suspicious. 11:50
set N25, 1.12589990684262e+15
Does it handle everything in IMCC without call to Parrot_str_to_num? 11:51
ok found it. 11:52
what the heck is "hppa"? 11:55
Infinoid hp pa-risc 11:57
precursor to ia64 I think 11:58
bacek oh...
ok... looks like there is some problems with floating values on this architecture. Do someone have access to box with openbsd-hppa? 12:05
Infinoid the ticket submitter is probably one of the few in the world :) 12:06
Infinoid notices we don't have any openbsd entries in PLATFORMS, not even for x86 12:07
bacek Looks like "powl" produces very strange results... 12:09
12:10 viklund_ joined 12:13 iblechbot joined
Infinoid looks like the float registers are 64 bits. it might be an easy test to try using double instead of long double, or something like that 12:14
bacek I asked in ticket for results with "pow" instead of "powl". 12:15
Infinoid cool 12:17
bacek How I can check that parrot has long double? 12:18
Infinoid I don't think you can tell from the smoulder reports, I normally look at config_lib.pasm or the typedefs in include/parrot/config.h 12:22
s/smoulder/smolder/ 12:23
bacek Is "sizeof(FLOATVAL) == sizeof(HUGEFLOATVAL)" correct?
Infinoid I know it isn't correct on my platform 12:26
I've no idea about openbsd/hppa
nopaste "bacek" at 114.73.52.125 pasted "Infinoid: can you test this patch?" (31 lines) at nopaste.snit.ch/16893 12:32
bacek patch from nopaste passed on my box. 12:33
But I want little bit more coverage...
Infinoid ok, I can test on linux/amd64 12:34
bacek thanks 12:35
Infinoid # Failed test 'sqrt_n_n' 12:37
# at t/op/number.t line 1084.
# got: '1.4142135623731
# 1.41421356237309
# '
# expected: '1.4142135623731
# 1.4142135623731
# '
minor precision issue, otherwise t/op/number.t passes
oh, that fails without the patch too. Never mind. 12:39
if it matters, my sizeof(float) = 4, sizeof(double) = 8, sizeof(long double) = 16 12:40
bacek hmm... 12:41
12:42 kid51 joined
bacek Ok, I attached this patch to ticket. 12:42
Infinoid I'm bisecting to find out where this failure started, it's fairly recent 12:46
bacek Merge point. 12:47
Infinoid probably
bacek commit d52a124471517b38baebdf04919e8831750c1124 12:48
Author: bacek <bacek@d31e2699-5ff4-0310-a27c-f18f2fbe73fe>
Date: Sun May 31 22:45:56 2009 +0000
[t] Remove check for lond double in sqrt_n_n results.
We now parsing floats more precisely so sqrt(2.0) always equal sqrt(2)
git-svn-id: svn.parrot.org/parrot/branches/tt2...ions@39299 d31e2699-5ff4-
It's not quite true on your platform... 12:49
Infinoid I think we can fix it up with a format string tweak
it is a little weird that intval and numval are treated differently, but not really surprising 12:50
bacek welcome to the dark world of floats... 12:51
- f = f * sign; 12:54
+ if (sign < 0)
+ f = -f;
Infinoid ah.
bacek Infinoid: can you try this one? (Actually I'm going to commit it right now. It's more correct)
Infinoid ok, building now 12:55
12:56 skids joined
bacek *sigh* Two years ago I promised myself never touch floating arithmetic in my life... 12:56
Infinoid that made no difference to t/op/number.t results
hah, better you than me.
bacek oh... 12:57
12:59 ruoso joined 13:01 ruoso joined
nopaste "bacek" at 114.73.52.125 pasted "Infinoid: this probably will work." (16 lines) at nopaste.snit.ch/16894 13:03
bacek Infinoid: can you try this nopaste? 13:04
13:04 ruoso joined
Infinoid ok, sec 13:04
mj41 bacek bisecting? try TapTinder tt.ro.vutbr.cz/report/pr-Parrot/do?...un-4148=on tt.ro.vutbr.cz/report/pr-Parrot/rp-trunk/page-2 13:05
bacek mj41++ 13:06
Yeah. tapir2 is 64 bits. 13:07
bacek don't like idea of using strings to check floating arithmetic... 13:08
Infinoid bacek: nopaste.snit.ch/16894 didn't fix that failure, and caused a couple of others 13:09
bacek can you nopaste them?
nopaste "Infinoid" at 65.18.171.17 pasted "t/op/number.t failures with trunk+nopaste.snit.ch/16894" (85 lines) at nopaste.snit.ch/16895 13:10
bacek oh shi... 13:11
Ah. Found it! 13:13
nopaste "bacek" at 114.73.52.125 pasted "premature optimisation is root of all evil" (32 lines) at nopaste.snit.ch/16896 13:17
bacek Infinoid: care to test this one? :
Infinoid That's debateable. Floating point is pretty evil too
bacek Yeah. -NaN ftw :)
Infinoid same precision failure in 'sqrt_n_n' test 13:18
bacek yak. 13:19
13:20 viklund_ joined
dalek TT #759 created by jkeenan++: Reconsider one-test-file-per-PMC policy 13:20
bacek
.oO( In theory 2 and 2.0 are equals )
bacek smashed by practice
Infinoid in theory, theory and practice are the same :) 13:21
nopaste "bacek" at 114.73.52.125 pasted "Last attempt." (37 lines) at nopaste.snit.ch/16897 13:23
bacek Infinoid: if this patch will not work I'll just relax test... 13:24
Infinoid Still fails. (sorry)
bacek hitting desk with his head. 13:25
dalek TT #760 created by flh++: Interactive sessions with HLLCompiler (and readline) never end 13:30
nopaste "bacek" at 114.73.52.125 pasted "Final last attempt!" (42 lines) at nopaste.snit.ch/16898 13:32
bacek Infinoid: this is really-really final 13:33
Infinoid same failure 13:34
Infinoid adds padding to bacek's desk
bacek running in circles screaming 13:35
Infinoid I've got gdb if you want to get more info 13:37
bacek if ((state == parse_before_dot) && m_is_safe)
Infinoid but I think it's getting late there, and chasing floating point precision issues isn't the funnest thing I can think of to do saturday night :)
nopaste "bacek" at 114.73.52.125 pasted "Final-final last-last attempt-attempt" (42 lines) at nopaste.snit.ch/16899 13:38
bacek If this will not work - I'll tweak test and hang myself... 13:39
Infinoid I'm not even sure the bug is in this part of the code
none of these changes have had any effect
(including this last one) 13:40
bacek yeah... But now we preserve little bit more significant bits.
bacek looking for good piece of rope and soap. 13:41
ARGH... 13:43
Whiteknight that's %ARGH
bacek "N0 = 2" doesn't call Parrot_str_to_num
Whiteknight: this idea was rejected by TimTaody afair :) 13:44
nopaste "bacek" at 114.73.52.125 pasted "Tweaked test for Infinoid and Whiteknight." (24 lines) at nopaste.snit.ch/16900 13:59
bacek I gave up.... 14:00
Infinoid Result: PASS 14:01
bacek of cause it PASS... 14:02
bacek searching for some bandaid for broken head. 14:03
Infinoid Floating Point Considered Harmful
One thing I love about embedded systems: many of them don't have any floating point hardware at all. 14:04
bacek My last project for "embedded system" targeted something like "x86, linux, 16 meg" :) 14:06
And it was 2 years ago. And I promised never touch floating point in my life...
Infinoid heh 14:07
gcc for arm has a -msoft-float argument, it's all emulated internally by the compiler. 14:08
or you can say -mhard-float and it's trapped by the kernel and emulated there
the linker doesn't let you mix them, which makes extra work getting $CFLAGS right sometimes, but it's nice to know the hardware isn't to blame (because there is none) 14:09
bacek Looks familiar.
I've compiled my 20+ klos of C++ code for ARM7 using qemu. All test passed in qemu, but I didn't have chance to run it on real hardware 14:11
Infinoid qemu's emulation is pretty good. but the hardware varies a lot 14:15
wish they made it easier to write new board-type plugins for it
bacek I know that it's pretty good. At least in floating point emulation :) 14:18
f0rk does anyone know if there are any CSP languages ala Limbo targeting parrot? 14:22
bacek CSP? 14:24
purl hmmm... CSP is the Concordia in St Paul, MN, IIRC.
Infinoid purl, CSP is also Communicating Sequential Processes
purl okay, Infinoid.
f0rk communicating sequential processes 14:25
beat me to it
Infinoid The list of languages we currently know of is at trac.parrot.org/parrot/wiki/Languages, I'm not aware of any CSP languages on that list (yet) 14:26
bacek Implementing Erlang-on-Parrot is interesting ides. 14:27
crazy_bacek Any volunteers? 14:29
purl Any volunteers are welcome and get beer and pizza.
bacek s/ides/idea/
f0rk erlang has hot swapping, can you do that on parrot? 14:31
Infinoid it would need some HLL code, but I don't see why not 14:33
bacek Infinoid: it's not straight forward because such behaviour isn't supported by parrot. So "s/some/lot" looks more appropriate ::) 14:37
bacek must sleep 14:40
purl $bacek->sleep(8 * 3600);
bacek good localtime everyone 14:41
Infinoid: I'll commit test tweak tomorrow Or you can do it if you wish 14:42
15:10 kid51 joined 15:18 Theory joined 15:20 donaldh joined
dalek rrot: r39535 | Infinoid++ | trunk/t/op/number.t:
Apply patch from bacek++ to fix a failing test caused by floating point precision differences on x86-64.
15:48
15:51 estrabd joined
Whiteknight excellent patch 15:54
16:02 elmex joined 16:06 burmas joined
Whiteknight I'm getting a test failure in distro_tests 16:07
anybody else seeing that?
t/distro/file_metadata.t
purl t/distro/file_metadata.t is sad
Whiteknight doesn't know anything about svn properties, and probably can't fix it himself
Tene fixed, thanks 16:11
dalek rrot: r39536 | tene++ | trunk/runtime/parrot/library/Curses.pir:
File Metadata (Whiteknight++)
16:11 burmas joined
Whiteknight Tene++ 16:12
Tene Whiteknight++ 16:13
Whiteknight karma for everbody!
purl everbody! has neutral karma
Whiteknight everybody++
Tene everybody!++
Infinoid karma everybody
purl everybody has karma of 4
Infinoid karma everybody!
purl everybody! has karma of 1
Infinoid everybody!++ 16:14
Tene Infinoid++
Infinoid Tene++
Whiteknight++
Whiteknight It seems like the tests are staying very stable, which is good before a release 16:15
Infinoid I've got a few TODO passes in t/op/debuginfo.t
Infinoid offline, back later & 16:19
Whiteknight yeah, I get those too 16:22
I think that's an x86-64 thing
16:23 Psyche^ joined
Tene It's always interesting to me to see code written by people who aren't active in the project anymore. 16:24
I just discovered creiss, via git-blame.
anyone know if there's a way I can build and install multis programmatically from PIR? 16:26
16:46 HG` joined 17:42 davidfetter joined 17:44 chromatic joined
Infinoid chromatic: How's the fios treating you? 17:56
chromatic It's more reliable than DSL. Some things are faster, but those are larger downloads (source code checkouts, aptitude upgrades). 17:57
Infinoid Reliability is good. 17:58
chromatic I had a reliable lack of connectivity almost every afternoon around 2 pm.
Infinoid hmm... that actually sounds familiar. Verizon DSL at Lake Tahoe used to drop out for us almost every morning at 8am 18:00
(I just got a new place, fios installs this tuesday) 18:01
chromatic I had the guy skip running coax and let me plug my flashed Linksys wireless router into the Ethernet port and haven't had a problem. 18:02
18:18 autark joined
chromatic Hm, could we fix our order of destruction problems by separating "finalize" and "destroy"? 18:29
Infinoid I like that idea generally, but am not familiar enough with parrot's ordered destruction specifics. Do we have a test case? 18:31
chromatic Nothing reliable; because it depends on ordering of PMCs in GC arenas, it's susceptible to perturbations in anything that triggers GC.
Infinoid My first impulse is to say "yes". As long as we can identify potential problems and use a "look before you leap" strategy in those cases, based on some PObj_finalized_TEST() macro, it should work 18:35
But now that I look further, we can probably already do that with PObj_on_free_list_TEST(obj)
japhb
.oO( WTF is Mesa on Gentoo doing with WGL header files ...? )
18:37
Infinoid japhb: Crashing whenever I run mplayer, among other things.
chromatic After an object is on the free list, it's already lost its vtable pointer (if it's a PMC).
Infinoid Ok, you'd still need to split delete from destroy
just because you build up the free list at the same time you're calling destruction methods 18:38
japhb OK, are there typedefs for BOOL and HANDLE and such among your system's .h's? 18:39
chromatic During global destruction, we could sweep the pools, finalize everything, and then sweep them again to destroy everything.
finalize, then free
destroy, then delete
japhb Otherwise I'm going to need a windows person to cough up their system headers ....
chromatic Alliteration is important.
Infinoid japhb: Not that I can find. I think it's an overzealous installer, and that those files are never supposed to be included 18:40
So we're looking at 2-staged deletion as a means of papering over PMCs which blindly call vtables in other PMCs without checking for deletion 18:43
chromatic It's not blindly calling them. Look at EventHandler, for example.
EventScheduler I mean.
It's not written as if it were nice to be able to refer to other PMCs. It's written because it's necessary to refer to other PMCs. 18:44
Infinoid I seem to recall some PMC (I'm trying to remember which one) which had a PMC* ATTR and whose destroy() method called VTABLE_something on that attr, thus assuming the other PMC was still alive 18:46
EventHandler doesn't look problematic
ack can't find any EventScheduler 18:47
chromatic It's just Scheduler. I'm disorganized this morning.
Infinoid We could just say "thou shalt not call any vtable functions on thine pmc attrs", which seems like a simpler solution to that particular class of ordered destruction issue. 18:48
but I think I'd be able to talk more intelligently about this issue if I had an example 18:49
chromatic Hm, Scheduler isn't it either.
FileHandle looks problematic. 18:50
18:51 autark joined
chromatic Ah, it's Timer. 18:52
Infinoid purl, irclog?
purl rumour has it irclog is irclog.perlgeek.de/parrot/today or see also: infrared clogs
Infinoid We last discussed this on irclog.perlgeek.de/parrot/2009-05-19. Unfortunately the nopaste link has fallen off the web, but someone was calling Parrot_PCCINVOKE from within their destroy(), causing a t/pmc/io.t failure 18:55
chromatic Right. Now IO doesn't use as many PMCs. 18:56
Infinoid Ah, google cache. 74.125.47.132/search?q=cache:ZmIpsp...&gl=us 18:57
Well, it doesn't use PCCINVOKE as often...
Util purl, forget infrared clogs
purl Util: I forgot infrared clogs
Util purl, irclog? 18:58
purl i heard irclog was irclog.perlgeek.de/parrot/today or see also: infrared clogs
Infinoid Now the pointer is dangling. :)
Util Infinoid: any way to remove the i.c. answer? 18:59
Infinoid no, irclog is irclog.perlgeek.de/parrot/today
purl okay, Infinoid.
Infinoid purl, irclog?
purl hmmm... irclog is irclog.perlgeek.de/parrot/today
Util thanks! 19:00
Infinoid I don't think we've really fixed any issues here, with regards to I/O handles. 19:01
We're trying to be a little smarter about whether to call using vtable or PCC, but that's all
chromatic Right. 19:02
Infinoid Of course, we could just add "destroyed object" to the list of special cases for those I/O calls. 19:03
chromatic That reads like it might not flush unwritten data if we do that.
Infinoid Yeah. Definitely looking for a better alternative 19:05
sjn , 19:08
chromatic I despair of telling PMC authors "Don't do anything which might invoke a vtable entry in your destroy()". That's subtle.
Infinoid Well, if you're declaring a custom destroy handler, you're taking your life into your own hands anyway 19:10
chromatic I don't think that has to be the case.
Infinoid I'm looking at a parrot checkout from 2009-05-19, and I don't understand this backtrace 19:11
These functions should all be referring to the same PMC pointer, but it changed in Parrot_io_is_closed
I don't think calling a vtable entry on yourself should be a problem; and two-stage deletion will only have an effect for inter-PMC dependencies
oh, no, I'm an idiot. Yes, interp != pmc. 19:13
It's the object returned by VTABLE_find_method() that had already been freed. 19:15
chromatic I may have just killed dalek. 19:18
Infinoid So in this case, two-stage destruction would have fixed this. Maybe. FileHandle does declare its own mark() and doesn't call SUPER(); does Class's mark() get called so it can preserve the method PMCs? 19:19
dalek rrot: r39537 | chromatic++ | trunk/src/gc/gc_ms.c:
[GC] Revised GC pool replenish level calculations. The previous change in

current mark and sweep freed up enough pool items to meet or exceed the replenish threshold. Of course, if the next time the GC runs is because the system has run out of those pool items, there's no choice but to allocate a new arena in the pool, increasing memory usage. This version of the algorithm avoids the skip and instead uses the replenish level to decide whether to allocate a new arena if the sweep didn't free enough pool items to meet the replenish level. This results in no ballooning allocations when one GCable type is both the constraint and frequently recyclable and only a slight performance reduction over the sometimes-pathological case in r39215. (That's fixable by not immediately populating the free list from a freshly-allocated arena.)
chromatic I don't think we'd have to preserve them. 19:20
19:20 donaldh joined
Infinoid For FileHandles, no. I'm worried about subclasses 19:20
chromatic I can't imagine any problems ther. 19:21
there
Infinoid chromatic++ # great commit message 19:22
I need to think this through, I'll probably write some filehandle-pir-subclassing tests during that process. If they pass, great. If not, I'll make a ticket 19:23
Infinoid is very keen on Socket subclassing for (e.g.) ssl 19:24
19:58 Theory joined 20:03 contingencyplan joined 20:22 Limbic_Region joined 20:35 ZeroForce joined 21:11 Theory joined 21:12 bacek joined
bacek morning. good morning 21:31
Coke chromatic: should that last GC fix be another tcl improvement? 21:57
also, did you see partcl blog post?
chromatic+
chromatic++
bacek chromatic+++ 21:58
o wait...
chromatic Coke, a minor one. 22:02
Coke chromatic: danke. 22:05
chromatic You're welcome.
bacek chromatic: I finally understood (fsvo) Keys. 22:06
Biggest problem with Keys (from my POV) they used for 2 very different things. 22:07
1. Describing path in nested aggregates.
2. Iterate over aggregates. 22:08
chromatic Exactly.
bacek My .plan for deuglyfying them:
1. Use keys only for paths.
2. Made Iterator pure interface class.
3. Implement HashIterator and ArrayIterator. 22:09
chromatic That sounds reasonable.
bacek 4. Use MULTIs for handling PMC/Key in (set|get)_*_keyed
5. Remove all code left in Keys for support iterators. 22:10
Any ideas objections?
s/ / or / 22:11
chromatic #4 is the only part that concerns me at all, but 1 - 3, 5 are independent of that. 22:12
bacek (I will need HashIteratorKey though)
What's wrong with #4?
chromatic It's a little more invasive. That's all. 22:13
bacek Why? We have switch-based multi-to-vtable "optimiser". 22:14
msg Whiteknight You can check with allison++ and probably close TT#452 22:15
chromatic Because I think that treating String PMCs, Keys, and RSAs as equivalent as Keys is a design flaw, not an implementation detail.
purl Message for whiteknight stored.
22:15 Zak joined
bacek it's only in Namespace. Not in Hash by itself 22:16
Hash only handle Keys differently. 22:18
chromatic That's good. 22:22
Util On my non-icu-enabled 10.4 darwin laptop, `make test` is failing t/op/stringu.t 29-31. (r39537)
chromatic My biggest problem with Key is that it could contain so many different types of data it has to check on every access to figure out what to produce.
Util Are we requiring ICU now, or does the test just need to SKIP (or TODO) those 3 tests when ICU is not configured?
chromatic Util, it should skip those tests without ICU.
bacek Ok, I'll put this as RFC ticket and create branch for it.
chromatic I need to go to a meeting now though.
dalek TT #761 created by bacek++: [RFC] Keys/Iterator deuglyfying. 22:28
22:33 rg1 joined
dalek rrot: r39538 | bacek++ | trunk/src/string/api.c:
[cage] Don't use multiplication to change sign in str_to_num. Just change sign.
22:45
rrot: r39539 | bacek++ | trunk/t/op/stringu.t:
[t][cage] Skip unicode tests when no ICU available. Util++, chromatic++, bacek--.
bacek msg mj41 Can you colour "failed" column in red on tt.ro.vutbr.cz/report/pr-Parrot/rp-trunk? 22:46
purl Message for mj41 stored.
dalek kudo: 77f9d70 | pmichaud++ | docs/ (2 files):
Some more updates in preparation for Thursday's release.
22:53
mj41 time to sleep, archive file extracting implemented in TapTinder ... try to click on 'bonus', 'ok' in diffs e.g. tt.ro.vutbr.cz/report/pr-Parrot/do?...un-4252=on 22:58
bacek np, tomorrow, thank for first TapTinder request :-) 23:00
bacek mj41: it's second one :) First was for more platforms
mj41++ # TapTinder rocks 23:02
mj41 ok, I plan another win32s (32bit, cygwin, ... ) and opensolaris ... all on vmware
thanks, and good night 23:03
bacek good night 23:05
dalek rrot: r39540 | Infinoid++ | branches/io_rewiring:
This branch has been merged back to trunk; remove it.
23:11
23:11 ruoso joined 23:20 donaldh joined