fo
in the OpLib/*.pm and oplib info struct where tools can
access in/out/inout.
Enjoy, and please let me know what you thyink.
-- Gregor
[A[A
Index: core.ops
===
RCS file: /home/perlcvs/parrot/core.ops,v
retrieving revision 1.
How about (with a tip o' th' hat to DEK):
SWYM (Sympathize With Your Machinery)
-- Gregor
ogram goes about its
business. Also,
it adds an "XXX" comment about how usage of this program and its
supporting libraries
has drifted from the initial intent, and calls attention to two ways of
bringing things back
into line.
Rega
at, I'll post here.
Regards,
-- Gregor
Josh Wilmes <[EMAIL PROTECTED]>
Sent by: [EMAIL PROTECTED]
11/01/2002 11:34 PM
Please respond to Josh Wilmes
To: "Brent Dax" <[EMAIL PROTECTED]>
cc: "'Andy Dougherty'" <[EMAIL PROTECTED
inal interesting (at least to me) note: A chunk of code could
overwrite the optable entry zero with
some noo?p-equivalent op to prevent any further changes to its optable
once it has things the way it
wants them.
Regards,
-- Gregor
Leopold Toetsch <[EMAIL PROTECTED]>
11/03/2002 02:49 PM
okup speed with the original switch() implementation of find_op(). It
looks up a single op numerous times. Of course, a better one would
randomly pick a known op name N times and look that up.
http://archive.develooper.com/perl6-internals@;perl.org/msg08676.html
Regards,
-- Gregor
Le
would fit on the performance
spectrum compared to JIT, for mops.pasm and for other examples with
broader op usage...
Regards,
-- Gregor
Leopold Toetsch <[EMAIL PROTECTED]>
11/04/2002 08:45 AM
To: [EMAIL PROTECTED]
cc: Brent Dax <[EMAIL PROTECTED]>, "
that any generic
disassembler will have to be useop aware, which is what I think you are
trying to avoid.
Regards,
-- Gregor
Jason Gloudon <[EMAIL PROTECTED]>
11/04/2002 11:41 AM
To: [EMAIL PROTECTED]
cc: Leopold Toetsch <[EMAIL PROTECTED]>, Brent
attached a tarball with a tiny example. I was trying
to insert asm comments for
later parsing. I didn't get far, but that doesn't mean its not possible.
Regards,
-- Gregor
Nicholas Clark <[EMAIL PROTECTED]>
11/04/2002 04:21 PM
To: [EMAIL PROTECTED]
to learn enough IMCC that
I can make the jakoc compiler work with it. I've read the
imcc README and scanned a few examples of output from the
Perl6 compiler, but I think I'm still missing something...
Regards,
-- Gregor
nerates to
"properly"
terminate each of the "subroutines" (if imcc ever does dead code removal,
it could actually remove these instructions before they make it to the
..pasm
file).
Regards,
-- Gregor
"Mr. Nobody" <[EMAIL PROTECTED]>
12/04/2002 10:15 AM
ininitions.
#
# fact.jako
#
# Some simple code to print some factorials
#
# Based on fact.pasm originally be Leon Brocard <[EMAIL PROTECTED]>
2001-09-14.
#
# Copyright (C) 2001 Gregor N. Purdy. All rights reserved.
# This program is free software. It is subject to the same
# license as Perl itself.
#
#
ile. I'm not sure why that
line of code
makes imcc want to have a set_ic_ic op (although I do wonder if has
something
to do with the fact that we have a global ".local x" and a ".param x" for
the sub
we are calling)...
Regards,
-- Gregor
#
# sub.jako
#
# A program to d
that imcc should allow code outside .sub ... .end
brackets, which should be good for Jako, Perl and other languages.
I don't know how popular that will be, but it seems reasonable to me...
Regards,
-- Gregor
Leopold Toetsch <[EMAIL PROTECTED]>
12/05/2002 11:34 AM
To:
difference between .sym and .local?
And, .endclass and .endnamespace are not mentioned in imcc/README.
Regards,
-- Gregor
Leopold Toetsch <[EMAIL PROTECTED]>
12/05/2002 12:43 PM
To: [EMAIL PROTECTED]
cc: [EMAIL PROTECTED]
Subject:Re: Subrou
he assigns
are from the same constant table location? Is imcc smart enough to realize
that the above transformation doesn't change the semantics of my program,
or is it perhaps a bug?
Regards,
-- Gregor
turns into a single .pasm file, which assemble.pl turns into
a single .pbc file (its files all the way down :).
Regards,
-- Gregor
atever scoping
mechanism
is appropriate.
I'd like to preserve my use of named .locals rather than move entirely to
temporaries,
since having the names around makes the .imc file easier to follow.
Regards,
-- Gregor
n
other areas... :). And, thanks also for fielding my numerous
questions as promptly as you have!
Regards,
-- Gregor
I am that which is not everything else.
s (that is, ways that are more correct,
rather than just workarounds -- I could work around it by going back
to my old "outer .sub only" approach) of doing what I'm trying, I'm
eager to learn...
Regards,
-- Gregor
Index: imcc.l
calls for the same thing.
Anyway, more thinking and talking is probably in order. I'd love to see an
imcc
implementation of PDD 3 like or better than the above sketch, so I can
rely on
IMCC to keep all the register stuff straight. After that, I don't think
the incremental
effort in jakoc creates a high barrier.
Regards,
-- Gregor
eful when the Jako compiler has an include
mechanism. In
anticipation of this, there are a few .jako files in the languages/jako
directory that have
declarations of op-subs for various corners of the core op set.
Regards,
-- Gregor
y, I added some argument count checking, and now
calls to subs have the args converted to the appropriate types if
they aren't already.
Regards,
-- Gregor
practice. The point is, Eiffel does have these
mechanisms
defined and they are expected to be available, and possibly required just
to
build mundane applications that use the standard library.
Regards,
-- Gregor
"attriel" <[EMAIL PROTECTED]>
01/10/2003 10:37 AM
Please resp
The Jako compiler uses imcc as well...
"Tanton Gibbs" <[EMAIL PROTECTED]>
01/18/2003 01:10 AM
To: "Cory Spencer" <[EMAIL PROTECTED]>, <[EMAIL PROTECTED]>
cc:
Subject:Re: Parrot compilers
Yes, languages should now use IMCC as their target. Basically,
Dan --
Cincinnati, Ohio.
And, I'll make my office available for the meeting, if there aren't so
many
people that it would be impractical (unlikely, I expect, but CMA anyway).
-- Gregor
Dan Sugalski <[EMAIL PROTECTED]>
01/22/2003 03:22 PM
To: [EMAIL PROTE
An interactive SVG version is (temporarily) available at:
http://www.focusresearch.com/gregor/map.html
Regards,
-- Gregor
Leon Brocard <[EMAIL PROTECTED]>
01/28/2003 05:24 PM
To: [EMAIL PROTECTED]
cc:
Subject:Parrot developer wor
Greg --
Thats the centroid. You can see its dual South of Australia.
Regards,
-- Gregor
Greg Woodhouse <[EMAIL PROTECTED]>
01/31/2003 03:52 PM
To: [EMAIL PROTECTED]
cc:
Subject:Re: Parrot developer world map
So, what's the yellow dot in
eturn" (with special annotations about the statement modifier), but
the XML conversion turns it into a "return" inside a conditional.
Regards,
-- Gregor
> result in the same
parse structure as C<'Howdy ' . $what . ' world!'> -- the former is just
syntactic sugar).
Regards,
-- Gregor
James Michael DuPont <[EMAIL PROTECTED]>
02/03/2003 08:37 AM
To: [EMAIL PROTECTED], [EMAIL PROTECTED]
cc:
file, line, etc.) that debuggers and other
tools could be generic.
Regards,
-- Gregor
James Michael DuPont <[EMAIL PROTECTED]>
02/04/2003 04:06 AM
To: James Mastros <[EMAIL PROTECTED]>, [EMAIL PROTECTED], Leopold
Toetsch <[EMAIL PROTECTED]>
cc:
ut
the chunks of IMC, generate bytecode, and further annotate the
tree with the offset and size of the generated PBC chunk. The
tree can be retained as the metadata segment in the PBC file.
Regards,
-- Gregor
Juergen Boemmels <[EMAIL PROTECTED]>
Sent by: [EMAIL PROTECTED]
02/04/2003 08:15 AM
non-JIT architectures is (going to have them?
does the cgoto core have to work on them?).
Regards,
-- Gregor
Leopold Toetsch <[EMAIL PROTECTED]>
02/05/2003 06:28 AM
To: P6I <[EMAIL PROTECTED]>
cc:
Subject:[RfC] a scheme for core.ops exten
ect files.
I disagree that it is too expensive, but I expect it will require
hard data to settle the matter. Since this is my pet issue, I
expect you won't be surprised when I say invalidating PBC files
isn't necessary, and therefore we shouldn't feel obligated to
follow past practice in that regard.
[...]
Regards,
-- Gregor
practical... I haven't been able to
come up with a way to determine that without trying it (and, :(, I have
not had the time to actually try it out on a private copy -- in large
part because the supporting infrastructure for dynamic oplibs isn't
there yet, and its a big task to build that *and* do the fully dynamic
experiment).
Regards,
-- Gregor
efine new classes at run time is a bonus, too. I'm
interested in seeing similar capabilities in the underlying virtual
machine (I guess I want to turn it into a malleable machine). Not only
would I like to see dynamic optables, but I'd like a program to be
able to find out about its op table, too.
Oh, and I'd like to have indirect addressing modes where the register
numbers come from other registers.
Regards,
-- Gregor
leo++
Leopold Toetsch <[EMAIL PROTECTED]>
02/06/2003 07:37 AM
To: P6I <[EMAIL PROTECTED]>
cc:
Subject:[CVS ci] CGP - CGoto Prederefed runloop
This is one thing I allways wanted to try ;-)
fast_core MOps: 11
Prederef: 17.5
CGoto MOps: 19.4
CG
Dan --
> Who's for, C's or perl's? C's for doesn't need an opcode. Perl's
> arguably might, but I think we'll be better off putting the count of
> things into an I register and iterating through the list as an array.
Four words: Lazy Lists.
Regards,
-- Gregor
ng, and
imcc and the interpreter should conspire to make things as fast as
possible and complain when things aren't compatible.
If we have metadata with names, Parrot types and canonical order
of the args, then any of the caller styles can be mapped to any
of the callee styles.
Regards,
-- Gregor
h
means
its not testing what the code fragments would do in a fresh interpreter...
Regards,
-- Gregor
> ...but Leo seem to think that...
I agree with the policy of referring to Leo in the plural.
Regards,
-- Gregor
name your constants, but the
net
result is equivalent.
Regards,
-- Gregor
Tupshin Harper <[EMAIL PROTECTED]>
02/22/2003 02:31 PM
To: Leopold Toetsch <[EMAIL PROTECTED]>
cc: [EMAIL PROTECTED]
Subject:Re: non-inline text in par
Leo / Dan --
Have we allocated PASM or IMC directives to replace the setline, setfile,
and setpackage ops?
* .file
* .line []
* .package
Should we have an indicator of the name of a sub, too?
Regards,
-- Gregor
Leopold Toetsch <[EMAIL PROTECTED]>
02/23/2003 04
Summary of my perl5 (5.0 patchlevel 5 subversion 2) configuration:
Platform:
osname=linux, osvers=2.0.35, archname=i386-linux-thread
uname='linux caliban.xs4all.nl 2.0.35 #2 sat jul 18 01:37:18 cest 1998 i686
unknown '
hint=recommended, useposix=true, d_sigaction=define
usethrea
d me to put them back.
le_i_ic doesn't do what you think it does. le_ic_ic does that.
Regards,
-- Gregor
> In strings.pod, the following string functions are documented and
> (most|all) are already implemented:
And I'd really like to know how we can do string comparisons, even
at the C level (so we can have the comparison ops, of course)...
Regards,
-- Gregor
most always
need to be absolute with a set, but probably having label syntax of
&LABEL for absolute and LABEL for relative (or something) would work.
Regards,
-- Gregor
Will --
I closed the ticket right after filing it.
False alarm on my new iMac -- I forgot to install the dev tools, and
was too quick on
the trigger for the ticket.
Regards,
-- Gregor
On Apr 14, 2006, at 12:42 PM, Will Coleda via RT wrote:
What does
% gcc -v
say?
On Apr 13, 2006, at
All --
This Makefile patch addes euclid.pasm to the make test target. Note
also that it redirects output to t/*.out, which other folks might not
agree with (I like it, given the amount of output generated for some
tests).
Regards,
-- Gregor
All --
The following .cvsignore file goes in the root parrot source code
directory to ignore the build products.
Regards,
-- Gregor
_
/ perl -e 'srand(-2091643526); print chr rand 90 for (0..4)' \
All --
The attached t/.cvsignore file will cause cvs to ignore the products
of 'make test'.
Regards,
-- Gregor
_
/ perl -e 'srand(-2091643526); print chr rand 90 for (0..4)' \
ng
it would be very easy to think something was radically screwed up, and
find out hours later that some bytecode file was assembed by the wrong
version of the assembler, or some related problem.
Regards,
-- Gregor
_
/ pe
tial matching if you specified some
qualifiers, such as "add_i I4, I4, 3" mapping to "add_i_ic I4, I4, 3".
Anyway, enjoy.
Regards,
-- Gregor
_
/ perl -e 'srand(-2091643526); print chr rand 90 for (0..4)
uot;Bar"
What do folks think about named registers?
reg I1, $M
...
set $M, 4
Regards,
-- Gregor
_____
/ perl -e 'srand(-2091643526); print chr rand 90 for (0..4)' \
Gregor N. Purd
will be
written in C, high-level stuff can be written in whatever language is
built on top of PISA (Parrot Instruction Set Architecture). I was
imagining a set of intermediate support stuff to be written in pasm.
Regards,
-- Gregor
___
All --
The attached patch removes the opcode qualifiers from t/euclid.pasm
to exercise opcode inference in the new assembler.
Regards,
-- Gregor
_
/ perl -e 'srand(-2091643526); print chr rand 90 for
All --
The attached patch removes the opcode qualifiers from t/euclid.pasm
to exercise opcode inference in the new assembler.
Regards,
-- Gregor
_
/ perl -e 'srand(-2091643526); print chr rand 90 for
next issue would be making the interpreter do something with the
fingerprint...
Regards,
-- Gregor
_
/ perl -e 'srand(-2091643526); print chr rand 90 for (0..4)' \
Gregor N. Purdy
s to bytecode.[hc],
assemble.pl build_interp_starter.pl, disassemble.pl, and
interpreter.c.
A musician, if he's a messenger, is like a child who
hasn't been handled too many times by man,
hasn't had too many fingerprints across his brain.
-
Are we
implementing the guts of such things in C and accessing via PMC
and methods, or are we implementing ops for vectors-of-pointers
on top of which the ARRAY API will be built?
I'd at least like to know enough about how its going to look so
a sample
data, highly naiive register allocation, etc., etc. But, it does
work for simple programs such as the attached t/euclid.jako file.
I've also attached the output of running the compiler on the sample
program: t/euclid-jako.pasm.
Enj
ain it does so
correctly.
Also, the current assembler doesn't do a few opcode qualifier
inferences that I think it should (noted with TODOs in the compiler
code).
Anyway, there's more to come...
Regards,
-- Gregor
_
/
so, I had to edit my makefile to change '-I..' to '-I.' for things
to work...
Regards,
-- Gregor
_
/ perl -e 'srand(-2091643526); print chr rand 90 for (0..4)' \
Gregor N. Purdy
ump_ic? Do we really need a separate root? They
both do relative jumps, right?
Regards,
-- Gregor
_
/ perl -e 'srand(-2091643526); print chr rand 90 for (0..4)' \
Gregor N. Purdy
otential conflict with the current Parrot directory, but
I think that really belongs as lib/Parrot like many (but not all) folks
do when building Perl modules for CPAN...
On Fri, 2001-09-14 at 12:31, Gibbs Tanton - tgibbs wrote:
>
> -Original Message-
> From: Gregor N. Purdy
> To
which means you only get one statement per line, etc.
I'd like to use Jako as a test bed for the call/return stuff when
it is ready for prime time. I can add a user subroutine definition
syntax...
Regards,
-- Gregor
__
le language support for them without
much fluff. You may like to play with it.
I'd still like to have a good macro assembler underlying things.
Regards,
-- Gregor
_
/ perl -e 'srand(-2091643526); print chr rand 9
s by the different object file formats. Maybe we don't
have to invent yet another one.
Regards,
-- Gregor
_
/ perl -e 'srand(-2091643526); print chr rand 90 for (0..4)' \
Gregor N. Purdy
All --
I'd like to suggest that the Parrot image we've seen associated with
Perl6 be given the name "Jake", especially if it turns out to be a
picture of an African gray parrot (a jako).
Regards,
-- Gregor
one particularly upset by it.
If not, I'd be happy to do it. It'll take just a few minutes...
> Also, would anyone like to see a standard C comment header that includes the
> RCS information added to each file?
I would definitely like to see something like
see something like
# $Revision: $
at a minimum.
Regards,
-- Gregor
_
/ perl -e 'srand(-2091643526); print chr rand 90 for (0..4)' \
Gregor N. Purdy [EMAIL PROTECTED]
F
,
-- Gregor
_
/ perl -e 'srand(-2091643526); print chr rand 90 for (0..4)' \
Gregor N. Purdy [EMAIL PROTECTED]
Focus Research, Inc.http://www.focusresearch.com/
8080 Beck
tion of the code in Jako. I haven't checked in
the version of the compiler that compiles it yet because there's a
patch that needs to be applied to the assembler first. I'm also
attaching the bench.pasm file the
e
the assembler patch.
Regards,
-- Gregor
_
/ perl -e 'srand(-2091643526); print chr rand 90 for (0..4)' \
Gregor N. Purdy [EMAIL PROTECTED]
Focus Research, Inc.
sing fix to the
assembler (posted earlier by itself).
With this patch in place, I'll be able to commit the new Jako
compiler and updated examples.
Regards,
-- Gregor
_
/ perl -e 'srand(-2091643526); print
Simon --
> > I'd like to suggest that the Parrot image we've seen associated with
> > Perl6 be
>
> this: http://pettalk.zapp.com.au/images/Africangrey.jpg
I also found this site: http://www.resonans.net
here.
Maybe that's because its an EX-parrot!
http://www.intriguing.com/mp/_pictures/compdiff/norwegia.jpg
http://www.pythonet.org/pet-shop.html
Regards,
-- Gregor
_
/ perl -e 'srand(-2091643526); print chr rand 90 for (0..4
patch also contains my label parsing fix to the
> assembler (posted earlier by itself).
>
> With this patch in place, I'll be able to commit the new Jako
> compiler and updated examples.
I just committed these changes.
Regards,
-- Gregor
__
ere broken before
> the assembler patch.
I just committed these changes.
Regards,
-- Gregor
_
/ perl -e 'srand(-2091643526); print chr rand 90 for (0..4)' \
Gregor N. Purdy
All --
I have renamed the Jako compiler from jako_compiler.pl to jakoc.
Regards,
-- Gregor
_
/ perl -e 'srand(-2091643526); print chr rand 90 for (0..4)' \
Gregor N. Purdy
>%d.\n", $line);
> +printf(STDERR "jako: Syntax error. Unrecognized condition in if on line %d.\n",
>$line);
>}
> }
>
>
--
_
/ perl -e 'srand(-2091643526); print chr rand 90 for (0..4)' \
Gregor N. Purdy
gt; Please back these out. I'd rather not have new operations added without a
> good going-over first. (They may go in later, but not right now)
Backed out per your request.
Regards,
-- Gregor
_
/ perl -e
emove that inefficiency. Oh, wait.
We don't *have* an optimizer...
Regards,
-- Gregor
_
/ perl -e 'srand(-2091643526); print chr rand 90 for (0..4)' \
Gregor N. Purdy [EMAIL
gards,
-- Gregor
_
/ perl -e 'srand(-2091643526); print chr rand 90 for (0..4)' \
Gregor N. Purdy [EMAIL PROTECTED]
Focus Research, Inc.http://www.focusresearch.com/
ed an
assembler syntax for 'absolute location of this label'?
I think jump.pasm should work (I've hardcoded the jump-to locations
as hex numbers), but it doesn't.
The jumpsub.pasm example is closer to wh
to see an example of
the correct use of jump_i...
Regards,
--
_
/ perl -e 'srand(-2091643526); print chr rand 90 for (0..4)' \
Gregor N. Purdy [EMAIL PROTECTED]
Focus Research, Inc.http://www.focusresearch.com/
8080 Beckett Cen
current
opcode table for your information.
Regards,
-- Gregor
_
/ perl -e 'srand(-2091643526); print chr rand 90 for (0..4)' \
Gregor N. Purdy [EMAIL PROTECTED]
Focus Resea
next;
> - }
> -
>if (m/^var\s+poly(type)?\s+([A-Za-z][A-Za-z0-9_]*)$/) {
> declare_var($2, 'P');
> next;
> @@ -760,24 +731,10 @@ while(<>) {
>}
>
>#
> - # Loop Blocks:
> + # Blocks:
>#
> - # while (...) {
>
if I can get the Config support worked out.
I think it would be a big help in debugging new ops, especially as
we start working on subroutines and such.
Any thoughts?
Regards,
-- Gregor
_
/ perl -e 'srand(-2091
ure.pl
...
$ make test
without any trouble...
Regards,
-- Gregor
_
/ perl -e 'srand(-2091643526); print chr rand 90 for (0..4)' \
Gregor N. Purdy [EMAIL PROTECTED]
Foc
Simon --
> On Mon, Sep 17, 2001 at 10:33:35AM -0400, Gregor N. Purdy wrote:
> > as *word* counts not *byte* counts -- D'Oh!)
>
> Isn't assembly programming fun? :)
Woo-hoo!
> > */
> >
> > static int
> > -check_magic(void** program_c
f it is passed an approproate --trace (or something) flag?
> Other than that it looks pretty good.
I'll wait for a little more feedback, modify, and submit another patch.
If that looks good, I'll go ahead and commit.
Regards,
-- Gregor
___
o we can use it anywhere we have Perl.
Regards,
-- Gregor
_
/ perl -e 'srand(-2091643526); print chr rand 90 for (0..4)' \
Gregor N. Purdy [EMAIL PROTECTED]
Foc
ve an op called 'err' instead of 'end'
so that if this ever happens we complain rather than just ending as
if everything was right with the world.
Do you want me to do anything like this? Or, shall I fix up the
current patch for now so we've got trace + basic protection and
sn't allow us to do recursion, wastes registers,
etc. But, it would allow me to play with the syntax of the language
with a simple implementation until cooler ops are available.
> We're going to have to wait for Dan (or, you could manually apply the
> patch I posted earlier
g and sets the tracing flag
on its interpreter instance as appropriate.
I'd like to commit this soon to clear out my sandbox so I can go
back and re-commit the constant comparison ops. So, if there
aren't any objections...
Regards,
-- Gregor
* test_main.c now checks for '-t' arg and sets the tracing flag
on its interpreter instance as appropriate.
I'd like to commit this soon to clear out my sandbox so I can go
back and re-commit the constant comparison ops. So, if there
are
On Mon, 2001-09-17 at 12:32, Dan Sugalski wrote:
> At 12:20 PM 9/17/2001 -0400, Gregor N. Purdy wrote:
> >Brian --
> > > > It would also be helpful to have jump_ic and absjump_ic, rather than
> > > > having to load these things into registers.
> > >
>
All --
I have committed the revised op tracing patch I posted earlier.
Regards,
-- Gregor
_
/ perl -e 'srand(-2091643526); print chr rand 90 for (0..4)' \
Gregor N. Purdy
, 16) for "16 bytes
of byte code follow (NOTE: THESE SEEM TO BE MISSING)
Now, the disassembler and interpreter don't seem to care, but I
thought the current format involved 3 or 4 segments in the
length-payload pair format. The fourth (optional) segment according
1 - 100 of 346 matches
Mail list logo