Optimization in context

2004-03-21 Thread Mitchell N Charity
Someday we will set aside our optimization focus. Our architectural validation probe will be complete. We will have established that yes, the parrot design can support the required speed. Further optimization will be seen as premature optimization. Our focus will shift to making parrot actually wo

Re: Optimizations for Objects

2004-03-21 Thread Mitchell N Charity
Having already argued against it, here is an argument that reusing RetContinuations is acceptable. Parrot is not a side-effect free language. So _every_ continuation goes out with a social contract. Something like "Use this continuation once, great, but use it twice, and things are _so_ undefine

continuations [was Re: Could Parrot use a roadmap?]

2004-03-18 Thread Mitchell N Charity
Which brings up again my warnocked question: How can return continuations get reused? Please provide some PASM code that enables my brain to follow your argument that we cant't simply cache them. Well, I can't do PASM code, but let me give it try. ;) Single vs multiple use. It should be

Re: Optimizations for Objects

2004-03-18 Thread Mitchell N Charity
>Which suggests return continuation pmc driven memory management costs >(gc and allocation) are currently a major, perhaps even dominant, >factor in method invocation speed. Yow. Okay, thanks. That means it's time to dive into the think tank and see what we can do about that. Noth

a segfaulting bit of .imc code

2004-03-18 Thread Mitchell N Charity
I find the following code sefaults in gc, around N=18. What am I overlooking...?? Thanks, Mitchell .sub _main .param pmc argv .sym int argc argc = argv .sym int N N = 24 if argc <= 1 goto noarg $S0 = argv[1] N = $S0 noarg: .sym float start time start

Re: Optimizations for Objects

2004-03-18 Thread Mitchell N Charity
It seemed nontrivial to reduce the number return continuation pmc's used in oofib.imc. So I instead added an _extra_, unused one, to the two already used in each fib method. Parrot ran 30% slower. (Optimized, unoptimized, and jit) Which suggests return continuation pmc driven memory management

Optimizations for Objects

2004-03-17 Thread Mitchell N Charity
It's always nice to have numbers when planning optimizations. So I started fiddling with oofib.imc. It seemed like we were spending a lot of time copying strings. So I defined the method name strings once, in main, $S3 = "fibB" and replaced calls like self.fibB(n2) with self.$S3(n2) Optimiz

[PATCH] Re: Object internal switchover done

2004-03-16 Thread Mitchell N Charity
Looks like it may be time to investigate things further. A method cache is probably the next thing in line to do. I didn't see a benchmark for method lookup and calling, so I modified a copy of fib to bounce back and forth between a class and its parent. Patch attached. My optimized parr

Re: PerlNum -0.0 bug?

2004-03-16 Thread Mitchell N Charity
> PerlNum may not be handling -0.0 correctly. I do consider -0.0 as a bug ;) ;) However, distinguishing 0.0 from -0.0 is floating point standard. And thus needed for interoperating with standards-following systems. Such as perl. (And ruby and python.) Windows apparently has issues (witnes

Re: unprefixed global symbols

2004-03-15 Thread Mitchell N Charity
> We should be able to get the linker to only expose our external entry > points from libparrot. That way, we don't have to worry about the > naming of API which isn't supposed to be called from outside. (If it > works, it's simpler and safer than relying on a prefix.) > > JEff

[PATCH] additional benchmarks

2004-03-15 Thread Mitchell N Charity
$ perl ./tools/dev/parrotbench.pl -c ../parrot_bench.conf -b vpm\$ Numbers are relative to the first one. (lower is better) p p-j p-C p5.5p5.8py rb vpm 100%88% 99% 46% 91% - 58% Attached is the missing python vpm, and a c

PerlNum -0.0 bug?

2004-03-15 Thread Mitchell N Charity
PerlNum may not be handling -0.0 correctly. This new P0, .PerlNum set P0, 0.0 print P0 print "\n" set P0, -0.0 print P0 print "\n" end prints this 0 0 rather than say this 0 -0 For reference, perl -e 'print -0.0,"\n"' prints -0 Thanks to ruby's test suite for the catc

Re: Classes and metaclasses

2004-03-14 Thread Mitchell N Charity
This will have to be quick, but... Objects, and Classes, and MetaClasses, oh my! In the beginning, there is MMD. Ideally as a lexically and dynamically scoped first-class variable. Dispatching on argument types, value predicates, call site, current continuation, and all sorts of other useful thin

unprefixed global symbols

2004-03-14 Thread Mitchell N Charity
Leopold Toetsch <[EMAIL PROTECTED]> wrote: Marcus Holland-Moritz <[EMAIL PROTECTED]> wrote: > One of my modules embeds the ucpp preprocessor, which has a > function init_tables(). The same function exists in parrot. Renamed. Another item for the embedding/extending todo list: namesp

Re: [DOCS] Documentation tools

2004-03-04 Thread Mitchell N Charity
There's no reason to include large, independently maintained modules like Pod::Simple in the parrot CVS tree and tarball. It just turns into a maintenance nightmare, should we ever start modifying these things. [...] I don't understand why you are insisting on including these thin

fleshing out extend.h

2004-03-02 Thread Mitchell N Charity
Pmc class headers providing parts of parrot's C extension api are not being included in extend.h. Such as the generated file ./classes/pmc_array.h, with its Parrot_Array_push_integer. Such files are not being included anywhere in include/parrot/ at all. So it looks like a ./config/gen/ generator

www.parrotcode.org/ points to 0.0.10

2004-03-01 Thread Mitchell N Charity
The parrot homepage http://www.parrotcode.org/ currently says Periodic releases will appear on CPAN; the current release is version 0.0.10, and can be found in the CPAN source directory. And "source directory" is a link to parrot-0.0.10.tar.gz The similarity in release numbers is particularl

Re: LANGUAGES.STATUS

2004-02-28 Thread Mitchell N Charity
255 65280?? ?? % ?? t/basic/009_token_simple.t255 65280?? ?? % ?? t/basic/010_token_string.t255 65280?? ?? % ?? Failed 9/15 test scripts, 40.00% okay. 0/41 subtests failed, 100.00% okay. make: *** [test] Error 11 $ From: Br

README perldoc, compiler warnings

2004-02-28 Thread Mitchell N Charity
(1) ./README should mention perldoc . ("perldoc -F"?) README points people at docs/parrot.pod and docs/intro.pod. While perldoc is currently mentioned somewhere in the pods, by the time folks see that, they've already been challenged - ".pod? what's a .pod? how do i read a .pod?". Even perl f

Re: LANGUAGES.STATUS

2004-02-28 Thread Mitchell N Charity
OTECTED]> On Saturday, February 28, 2004, at 01:12 AM, Mitchell N Charity wrote: > (1) LANGUAGES.STATUS is out of date. > > I found (on linux x86 [1]): > > These languages failed to build: > BASIC/interpreter > jako > miniperl >

Re: www.parrotcode.org

2004-02-28 Thread Mitchell N Charity
> I brought this up several months ago and was told that a new webpage was > in the works. Where in the works is it? Does it have an expected time > to leave the works? I agree with Mitchell that it is important to > maintain a public face (lest we send the wrong impression). [.

LANGUAGES.STATUS

2004-02-27 Thread Mitchell N Charity
(1) LANGUAGES.STATUS is out of date. I found (on linux x86 [1]): These languages failed to build: BASIC/interpreter jako miniperl tcl And these languages were quite broken (bad make test failures): BASIC/compiler [2] m4 ruby scheme LANGUAGES.STATUS says they all work. If my res

release preparation: odd file permissions, #!'s, ^M's, and README

2004-02-26 Thread Mitchell N Charity
Some quick observations on parrot_2004-02-26_08. Odd files to be executable: ./docs/dev/dod.dev ./docs/dev/rx.dev ./languages/tcl/MAINTAINER ./languages/tcl/examples/Makefile ./lib/Digest/Perl/MD5.pm A perl by any other name, may be a different perl. perl and /usr/bin/perl

pdd15_objects.pod, attributes, properties, and life

2004-02-26 Thread Mitchell N Charity
docs/pdds/pdd15_objects.pod, =head2 Translation, includes (edited) What .NET calls an attribute parrot calls a property What .NET calls a property parrot calls an attribute Ouch. In these lines one hears the echos of future years of confusion, endlessly repeated explanations, failed searches

www.parrotcode.org

2004-02-20 Thread Mitchell N Charity
Parrot's homepage http://www.parrotcode.org/ is out of date. "the current release is version 0.0.10", "Where are we", etc. The site has several automation failures. ERROR RETRIEVING DATA messages in http://www.parrotcode.org/todo and http://www.parrotcode.org/openpatches The script which generates

Re: Where can I help?

2003-07-18 Thread Mitchell N Charity
I've added Steve's response to the Experimental Parrot Wiki http://www.vendian.org/parrot/wiki/ Which, of course, has a link to his Tinderbox summary. Hmm... perhaps a little tinderbox "weather report" line should appear on the wiki main page? There are also links to CVS histories, and LXR,

A list of parrot build-time files

2003-06-15 Thread Mitchell N Charity
Here are some notes from the experimental parrot wiki http://www.vendian.org/parrot/wiki/ A list of parrot build-time files (on x86). Configure.pl creates Makefiles ./Makefile ./classes/Makefile ./docs/Makefile ./languages/Makefile ./languages/befunge/Makefile ./languages/bf/Makefile ./l

Re: Something to pass the time.

2003-06-15 Thread Mitchell N Charity
> To the wider community: BTW. For fun, I used imcc to convert the .imc to > a .pasm file, but them imcc couldn't run this file (trouble with > labels). Should this have worked? In PASM mode the whole file is compiled at once. IMCC as well as assemble.pl has troubles with duplicate

Re: no update to archives in last couple weeks?

2003-06-12 Thread Mitchell N Charity
[...] In the mean time, you can follow along via the nntp server and the web-interface to it at http://nntp.x.perl.org/group/perl.perl6.language though the web interface isn't threaded. You can also read perl6-internals on google groups, which is threaded. There is a link to it on t

Register access

2003-05-31 Thread Mitchell N Charity
Eeep. I was struck by this recent code fragment /* calling convention says that receiver should be in P2 and method in P0 */ interpreter->ctx.pmc_reg.registers[0] = method; interpreter->ctx.pmc_reg.registers[2] = $1; interpreter->ctx.string_reg.registers[0] = $2; which might be rewritt

Re: [RfC] A New PMC Layout

2003-05-28 Thread Mitchell N Charity
>Small PMC (SPMC), a half sized PMC has double performance in stress.pasm [...] Ah, this again. :) Perhaps it is time to get "multiple gc regimes can coexist" working? Though having this capability is IMHO a Right Thing(tm) long-term, I had been thinking of it as a task for a later time.

Re: An experimental Wiki for parrot development

2003-05-27 Thread Mitchell N Charity
Stephane Payrard writes: I found one central concept of Wikis very insufficient: wikiwords [... an alternative ...] I don't know how difficult it would be to do. Hmm, that sounds like wiki research. Which I'll leave to others. The parrot development wiki simply uses off-the-shelf wiki te

An experimental Wiki for parrot development

2003-05-27 Thread Mitchell N Charity
I've long wondered whether having a wiki, a place to put things, might aid parrot development. A place to easily collaborate on documentation. To record thoughts which might help others. To point at resources. So, to help us explore the possibilities, there is now An experimental Wiki for Par

pretty pictures

2003-01-16 Thread Mitchell N Charity
I was playing with doxygen (www.stack.nl/~dimitri/doxygen/index.html) (think javadoc for C++) and thought I'd pass along some random pictures. Doxygen unfortunately doesn't handle perl code, and even has problems with parrot's C. (IMHO, the world needs a wrapper hack which allows you to run all t

Re: More thougths on DOD

2003-01-08 Thread Mitchell N Charity
?) Message-ID: <[EMAIL PROTECTED]> Date: Wed, 08 Jan 2003 15:00:38 +0100 From: Leopold Toetsch <[EMAIL PROTECTED]> To: [EMAIL PROTECTED] Cc: P6I <[EMAIL PROTECTED]>, Dan Sugalski <[EMAIL PROTECTED]> Subject: Re: More thougths on DOD References: <[E

Re: More thougths on DOD

2003-01-07 Thread Mitchell N Charity
Attached test program shows some additional effects of PMC size and timing. [...] Nifty. The attached patch adds a scheme where: - gc flags are in the pool, and - pmc->pool mapping is done with aligned pools and pmc pointer masking. Observations: - It's fast. (The _test_ is anyway.) P

Re: GC/DOD feedback & runtime tuning

2003-01-05 Thread Mitchell N Charity
I'm not willing to go so radically to start, but I did have an idea. I think part of the extra cost is just in cache fluffiness--the sync info just isn't being used much. I don't think that it, or the property info, will be used most of the time. We could yank the metadata and sy

Re: Variable/value vtable split

2003-01-01 Thread Mitchell N Charity
I have to be quick, but just to keep things moving along... (0) Leo writes Whe we have: set P0, 5 from this piece of code, we don't know, if we set the value of P0, or if we set the value of the referenced object, where P0 points to. Only the vtable knows, what we are assignin

Variable/value vtable split

2002-12-31 Thread Mitchell N Charity
On a minor note, re CALL_VTABLE_0(meth, interp, pmc) CALL_VTABLE_1(meth, interp, pmc, arg1) CALL_VTABLE_2(meth, interp, pmc, arg1, arg2) I suggest reordering arguments to CALL_VTABLE_1(interp, meth, pmc, arg1) or CALL_VTABLE_1(interp, pmc, meth, arg1) Current parrot apis seem to all

Variable/value vtable split

2002-12-31 Thread Mitchell N Charity
Regards base_vtable ... name, type, ... var_vtable ... get_integer, set_integer, ... val_vtable ... add, sub, ... prop_vtable ... property functions (set/getprop are different, depending on the existence of the property hash) I think this might rephrase as obj

Re: Variable/value vtable split [Summary]

2002-12-31 Thread Mitchell N Charity
Just so everyone doesn't have to go digging through the archives... Here are links to the postings, and some extracts which seemed to provide context for the current thread. http://nntp.x.perl.org/group/perl.perl6.internals/12804 http://nntp.x.perl.org/group/perl.perl6.internals/12809 http://nntp

Re: LXR or GLOBAL Re: new ICU 2.4 release available

2002-12-28 Thread Mitchell N Charity
Do you have a recommendation between GLOBAL and LXR? I'd suggest LXR. It understands perl files out-of-the-box, is more easily modified (it's written in perl, and does jit html generation), and handles cvs. Downsides are a greater system complexity (it's database-backed), a more involved inst

new ICU 2.4 release available

2002-12-27 Thread Mitchell N Charity
Dan wrote ("What's up for 0.0.10", 19 Dec 2002) [..] here's a list of the things I'd like us to work on specifically for 0.0.10. [...] [...] *) Get ICU building and (hopefully) integrated As of Dec 20, there is a new ICU release, 2.4. http://oss.software.ibm.com/icu/download/2.4/

Deleting functions from parrot. (was [perl #19356])

2002-12-24 Thread Mitchell N Charity
Not too long ago, I removed the string_destroy() function.[..] I can certainly see the desirability of deleting functions not currently needed, as a way of shrinking the code base, thus making it easier to alter during this early phase of its life. But what struck me a while back when some gc