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
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
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
>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
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
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
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
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
> 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
> 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
$ 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 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
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
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
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
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
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
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
(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
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
>
> 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).
[.
(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
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
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
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
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,
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
> 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
[...] 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
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
>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.
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
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
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
?)
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
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
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
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
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
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
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
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
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/
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
44 matches
Mail list logo