nction namespace. Allow me to
demonstrate:
#!/usr/bin/env python
def a():
pass
print a
a = 7
print a
Produces the following on my system:
7
So this does need to be addressed for a primary target language.
--
Jonathan
Author: jonathan
Date: Thu Sep 28 15:55:52 2006
New Revision: 14785
Modified:
trunk/docs/pdds/clip/pdd13_bytecode.pod
Log:
Add most of the changes resulting from discussion with Allison.
Modified: trunk/docs/pdds/clip/pdd13_bytecode.pod
Author: jonathan
Date: Thu Sep 28 14:23:15 2006
New Revision: 14784
Modified:
trunk/docs/pdds/clip/pdd13_bytecode.pod
Log:
Add draft of the bytecode PDD. This is still missing some changes that need to
be made following discussion with Allison, but gives the big picture of what is
proposed
Author: jonathan
Date: Mon Oct 23 08:19:59 2006
New Revision: 15000
Modified:
trunk/docs/pdds/clip/pdd13_bytecode.pod
Log:
Add annotation groups to the bytecode specification.
Modified: trunk/docs/pdds/clip/pdd13_bytecode.pod
Author: jonathan
Date: Mon Oct 23 09:30:39 2006
New Revision: 15001
Modified:
trunk/docs/pdds/clip/pdd13_bytecode.pod
Log:
Add dependencies segment to the specification and fix string constants storage.
Modified: trunk/docs/pdds/clip/pdd13_bytecode.pod
Author: jonathan
Date: Wed Oct 25 15:29:31 2006
New Revision: 15024
Modified:
trunk/docs/pdds/clip/pdd15_objects.pod
Log:
Add REQUIREMENTS section to PDD15 Objects, to enable us to start fleshing out
what Parrot's object system needs to do. Includes hopefully most of what Perl 6
and
Author: jonathan
Date: Sat Oct 28 09:59:25 2006
New Revision: 15037
Modified:
trunk/docs/pdds/clip/pdd17_basic_types.pod
Log:
Add two new reference PMCs to the Basic Types PDD.
Modified: trunk/docs/pdds/clip/pdd17_basic_types.pod
Author: jonathan
Date: Sun Oct 29 12:21:25 2006
New Revision: 15051
Modified:
trunk/docs/pdds/clip/pdd15_objects.pod
Log:
Add a note on constructors to the Objects requirements.
Modified: trunk/docs/pdds/clip/pdd15_objects.pod
Author: jonathan
Date: Sun Mar 4 02:19:10 2007
New Revision: 17322
Modified:
trunk/docs/pdds/draft/pdd15_objects.pod
Log:
Describe new class and object layout for objects. We now push a lot into the
class and make objects really lightweight, since you will usually instantiate
many objects
Author: jonathan
Date: Sun Mar 4 14:47:00 2007
New Revision: 17336
Modified:
trunk/docs/pdds/draft/pdd15_objects.pod
Log:
s/variable/value/ - bob rogers++
Modified: trunk/docs/pdds/draft/pdd15_objects.pod
Author: jonathan
Date: Mon Nov 24 14:49:30 2008
New Revision: 33162
Modified:
trunk/docs/pdds/pdd23_exceptions.pod
Log:
[pdd] Add details of how to get bytecode annotations from Exception PMC.
Modified: trunk/docs/pdds/pdd23_exceptions.pod
Author: jonathan
Date: Mon Nov 24 14:50:50 2008
New Revision: 33163
Modified:
trunk/docs/pdds/pdd23_exceptions.pod
Log:
[pdd] Correction to previous commit; name is just an optional parameter to
annotations, for consistency with e.g. inspect method.
Modified: trunk/docs/pdds
Author: jonathan
Date: Mon Nov 24 15:22:49 2008
New Revision: 33166
Modified:
trunk/docs/pdds/pdd19_pir.pod
Log:
[pdd] Document .annotate and .file and update .line directives in the PIR PDD.
Modified: trunk/docs/pdds/pdd19_pir.pod
Author: jonathan
Date: Wed Jan 7 08:01:00 2009
New Revision: 35128
Modified:
trunk/docs/pdds/pdd23_exceptions.pod
Log:
[pdd] Remove unimplemented notes for annotations method on Exception, and add
documentation for backtrace method.
Modified: trunk/docs/pdds/pdd23_exceptions.pod
Author: jonathan
Date: Sat Mar 24 08:13:06 2007
New Revision: 17711
Modified:
trunk/docs/pdds/draft/pdd15_objects.pod
Log:
[PDD15]: Incorporate some changes and updates. Also add a proposal for role
conflict resolution, based upon the traits paper and discussion with allison++.
Modified
Author: jonathan
Date: Sun Mar 25 10:43:53 2007
New Revision: 17738
Modified:
trunk/docs/pdds/draft/pdd15_objects.pod
Log:
[PDD15]: Should mention add_method and method for both classes and roles.
Modified: trunk/docs/pdds/draft/pdd15_objects.pod
Author: jonathan
Date: Wed Mar 28 14:57:56 2007
New Revision: 17817
Modified:
trunk/docs/pdds/draft/pdd15_objects.pod
Log:
[PDD15]: Some extra details to explain the result of one role being composed
into another; these mostly mirror what happens when a role is composed into a
class
Author: jonathan
Date: Tue Jul 3 05:38:21 2007
New Revision: 19555
Modified:
trunk/docs/pdds/draft/pdd17_pmc.pod
Log:
[PDD17]: Properly document my proposal for how inheriting from PMCs will be
made to work.
Modified: trunk/docs/pdds/draft/pdd17_pmc.pod
Author: jonathan
Date: Mon Jul 23 21:22:21 2007
New Revision: 20135
Modified:
trunk/docs/pdds/pdd13_bytecode.pod
Changes in other areas also in this revision:
Modified:
trunk/PBC_COMPAT
Log:
[PDD13] Bring format of PBC_COMPAT and the specification in line with each
other.
Modified
se let me know. I can't promise I'll get to everything in a hurry, but
I should have time to actually do some Parrot stuff again now.
Thanks,
Jonathan
On Mon, 10 Dec 2001, Dan Sugalski wrote:
>
> We need an "allocate zeroed" call too. We can get zeroed pages faster in
> some cases than we can allocate pages and zero them ourselves.
>
Isn't that calloc() ?
/J\
--
Jonathan Stowe
ON = '0.02';
#--
@@ -25,7 +25,7 @@
sub tokenize {
my $self = shift;
- $self->{text} = $_[0] if $_[0] and $_[0] ne '';
+ $self->{text} = $_[0] || return [];
my $tokref = [];
my $in_
s at least nominally
dubious coding practice - though it matches C++ forward declarations, so
it is bearable.
>[...]
--
Jonathan Leffler #include
STSM, IBM Data Management Solutions. Phone: +1 650-926-6921
Email: [EMAIL PROTECTED], [EMAIL PROTECTED]
Guardian of DBD::Informix v1.00.PC1 -- http://dbi.perl.org
"I don't suffer from insanity; I enjoy every minute of it!"
I'll
> see if we can find out what needs to be done, then prevail on Ask to
> fix us up here.
>
You just need someone with a shell on the CVS (and the appropriate
permissions :) server to move the files to the new layout ...
/J\
--
Jonathan Stowe |
<http://www.gellyfish.com> | This space for rent
|
(void);
+void Parrot_Array_class_init(void);
void Parrot_PerlHash_class_init(void);
void Parrot_ParrotPointer_class_init(void);
void Parrot_IntQueue_class_init(void);
/J\
--
Jonathan Stowe |
<http://www.gellyfish.com> | This space for rent
|
uot;
+#ifdef HAS_HEADER_STDLIB
+# include
+#endif
+
#define setopt(flag) Parrot_setflag(interpreter, flag, (*argv)[0]+2);
char *
/J\
--
Jonathan Stowe |
<http://www.gellyfish.com> | This space for rent
|
rr, "\t%d: %s\n", (int)i, argv[i]);
}
userargv->vtable->set_string_index(interpreter, userargv,
/J\
--
Jonathan Stowe |
<http://www.gellyfish.com> | This space for rent
|
On Fri, 1 Feb 2002, Jonathan Stowe wrote:
> This shuts up the implicit declaration warning in test_main.c :
>
> +#include "parrot/config.h"
...
On closer examination that line is probably not needed :)
/J\
--
Jonathan Stowe |
<ht
On Fri, 1 Feb 2002, Brent Dax wrote:
> Jonathan Stowe:
> # This shuts up the implicit declaration warning in test_main.c :
> #
> # --- config_h.in~Fri Feb 1 07:39:42 2002
> # +++ config_h.in Fri Feb 1 07:40:06 2002
> # @@ -51,9 +51,10 @@
> # #define IN
gen_sprintf_call(t1, t2, &info, 'G');
+
+gen_sprintf_call(t1, t2, &info, (const char)'G');
sprintf(t2,
t1, dbl);
ruct Parrot_Interp *, STRING* pat, ...);
-STRING* Parrot_sprintf_c(struct Parrot_Interp *, char * pat, ...);
+STRING* Parrot_sprintf_c(struct Parrot_Interp *, const char * pat, ...);
void Parrot_sprintf(struct Parrot_Interp *, char *targ, char *pat, ...);
Have fun
/J\
--
Jonathan Stowe |
<http://www.gellyfish.com> | This space for rent
|
ng a bug!?
Surprised me - it got away in the storm of warnings no doubt ;-}
/J\
--
Jonathan Stowe |
<http://www.gellyfish.com> | This space for rent
|
On Tue, 5 Feb 2002, Andy Dougherty wrote:
> On Tue, 5 Feb 2002, Jonathan Stowe wrote:
>
> > AFAICT - apart from those pesky ones left in misc.c the only ones left
> > should be from generated code which I have a plan for which I will share
> > later :)
>
> Well, t
On Tue, 5 Feb 2002, Jonathan Stowe wrote:
> This might spoil someones future plans but doesn't break anything existing
> AFAICT - apart from those pesky ones left in misc.c the only ones left
> should be from generated code which I have a plan for which I will share
> later
On Wed, 6 Feb 2002, Brent Dax wrote:
> Jonathan Stowe:
> # - if(!(targ=Parrot_sprintf_c(interpreter, "%S at %S line
> # %d.\n", targ, interpreter->current_file,
> # interpreter->current_line))) {
> # + if(!(targ=Parrot_sprintf_c(interpreter, (const char
&g
*pat, va_list *);
@@ -14,7 +14,7 @@
STRING* Parrot_sprintf_s(struct Parrot_Interp *, STRING* pat, ...);
-STRING* Parrot_sprintf_c(struct Parrot_Interp *, char * pat, ...);
+STRING* Parrot_sprintf_c(struct Parrot_Interp *, const char * pat, ...);
void Parrot_sprintf(struct Parrot_Interp *, char *targ, char *pat, ...);
/J\
--
Jonathan Stowe |
<http://www.gellyfish.com> | This space for rent
|
key->keys = (KEY_PAIR**)realloc(key->keys,sizeof(KEY_PAIR *)*key->size);
}
else if(key->size == 0) {
fprintf(stderr,
@@ -416,7 +416,7 @@
if(key != NULL) {
if((idx >= 0) && (idx < key->size)) {
- KEY_PAIR* pair = &key->keys[idx];
+ KEY_PAIR* pair = (KEY_PAIR *)&key->keys[idx];
pair->type++;
}
else {
/J\
--
Jonathan Stowe |
<http://www.gellyfish.com> | This space for rent
|
t
> thing. This is what happened:
>
> ~/parrot>assemble.pl examples/assembly/euclid.pasm >test.pbc
> ~/parrot>pbc2c.pl test.pbc >test.c
> Use of uninitialized value in sprintf at lib/Parrot/OpTrans/CGoto.pm line
> 97.
> ~/parrot>
Don't worry ab
why it's safer to write
>
> p = realloc(p, N * sizeof(*p));
>
> whenever possible (that is, if p has correct type).
> Btw, is the cast necessary? realloc() returns void*, after all...
>
>
The cast is necessary with the warning level that we have currently :)
/J\
--
Jonathan Stowe |
<http://www.gellyfish.com> | This space for rent
|
at, ...);
-STRING* Parrot_sprintf_c(struct Parrot_Interp *, char * pat, ...);
+STRING* Parrot_sprintf_c(struct Parrot_Interp *, const char * pat, ...);
void Parrot_sprintf(struct Parrot_Interp *, char *targ, char *pat, ...);
Everything still appears to be working and no obvious leaks
/J\
--
Jonathan Stowe |
<http://www.gellyfish.com> | This space for rent
|
break;
case 7:
address = (INTVAL *)&s->type;
BTW. Does anyone know why I get this in gdb :
#0 0x8178324 in ?? () at eval.c:41
41 eval.c: No such file or directory.
I can't find any '#file eval.c' in any of the source files.
/J\
--
Jona
;t find anything on the list - if this is to stay for the time
being perhaps we ought to skip the failing tests if we are doing 'testj' ?
/J\
--
Jonathan Stowe |
<http://www.gellyfish.com> | This space for rent
|
/J\
--
Jonathan Stowe |
<http://www.gellyfish.com> | This space for rent
|
-556,8 +556,8 @@
FLOATVAL f = 0.0;
if (s) {
-char *start = s->bufstart;
-char *end = start + s->bufused;
+const char *start = s->bufstart;
+const char *end = start + s->bufused;
int sign = 1;
BOOLVAL seen_dot = 0;
mp;& cd ..
cd languages && $(MAKE) clean && cd ..
@@ -434,6 +433,7 @@
$(RM_F) t/op/*.pasm t/op/*.pbc t/op/*.out
realclean: clean
+ $(RM_F) *~
$(RM_F) $(STICKY_FILES)
distclean:
/J\
--
Jonathan Stowe |
<http://www.gellyfish.com> | This space for rent
|
debug, segment_size, sizeof(opcode_t));
+debug, segment_size, (long)sizeof(opcode_t));
return 0;
}
return 1;
/J\
--
Jonathan Stowe |
<http://www.gellyfish.com> | This space for rent
|
On Mon, 18 Mar 2002, Jonathan Stowe wrote:
>This is a little
> problematic because in ut8.c and utf16.c we are doing rather unconstly
> things to variables that we hade previously declared as const,
I should qualified this: "but
r intvalsize.
I'll take a poke at it - this should be considered FYI rather than
something that should stop 0.04 ;-}
/J\
--
Jonathan Stowe |
<http://www.gellyfish.com> | This space for rent
|
oid *(*skip_forward) (const void *ptr, Parrot_UInt n);
-void *(*skip_backward) (const void *ptr, Parrot_UInt n);
+const void *(*skip_forward) (const void *ptr, Parrot_UInt n);
+const void *(*skip_backward) (const void *ptr, Parrot_UInt n);
};
#define Parrot_Encoding struct parrot_encoding_t *
/J\
--
Jonathan Stowe |
<http://www.gellyfish.com> | This space for rent
|
s the next
op for the interpreter (in core.ops):
goto ADDRESS(sub->init); /* always 0 */
Is there a different pasm syntax I should be using for creating and
calling subs? I seem to remember some discussion about changing how
things are passed to constructors but I am not sure what the conclusion
was.
--
Jonathan Sillito
uld be appreciated.)
--
Jonathan Sillito
Index: examples/assembly/sub.pasm
===
RCS file: /cvs/public/parrot/examples/assembly/sub.pasm,v
retrieving revision 1.2
diff -u -r1.2 sub.pasm
--- examples/assembly/sub.pasm 7 Jun 2002
nvoke op.
Next on my list is (next 24 hours or so):
1) remove old call and callco ops (invoke takes care of both) from
core.ops
2) change examples/assembly/sub.pasm and coroutine.pasm to use invoke
instead of call and callco
3) add some tests
After that I will look into adding a C
han this offset, should refer to
a variable in an enclosing scope) */
INTVAL offset;
/* number of pointers in data */
INTVAL size;
} * scratchpad_t;
Thanks, for any help/feedback!
--
Jonathan Sillito
:
interpreter->ctx.current_scope = SELF->scope;
What do you think? Is there something I am misunderstanding about how
closures work?
> On this line, we need to discuss the symbol table format for
> the bytecode. I played around a bit but nothing I wish to commit.
I haven't given this any thought yet ...
--
Jonathan Sillito
On Mon, 2002-07-29 at 17:12, Simon Glover wrote:
> I think you forgot to attach the patch...
oops, now the files are attached ...
- patch: lex.patch
- test file: lexicals.t
- example file: lexicals.pasm
On Tue, 2002-07-30 at 02:14, Stephen Rawls wrote:
> --- Jonathan S
ix it.
Thanks again.
--
Jonathan Sillito
On Tue, 2002-07-30 at 10:47, Melvin Smith wrote:
> See my 2 comments:
>
> > new P0, .PerlInt
> > new P1, .PerlInt
> > new P2, .PerlInt
> > new P3, .PerlInt
> > set P0, 10
> > set P1, 11
> > set P2, 12
>
cope
find_lex P1, "x" # again probably by index not name
# after this P1 holds the int pmc
# print
ret
Does that make sense?
--
Jonathan Sillito
On Wed, 2002-07-31 at 13:49, Jerome Vouillon wrote:
> On Wed, Jul 31, 2002 at 11:40:39AM -0600, Jonathan Sillito wrote:
> > new_pad # push this on the lexical stack
> > # some constant descriptor should also be passed
> > # to the new_pad op
hen to access a
lexical by name involves a sequential search through the (probably not
large) array of names, to get the index, then the index is used to get
the lexical from the other array.
Or would that make access by name too slow?
--
Jonathan Sillito
On Tue, 2002-08-06 at 20:11, Sean O'Rourke wrote:
> On Tue, 6 Aug 2002, Dan Sugalski wrote:
>
> > At 12:57 PM -0600 8/6/02, Jonathan Sillito wrote:
> > >Can a prototyped sub take a variable number of parameters (ie can it
> > >have 'rest' params?). I
hour ago.
???
---
Jonathan Sillito
On Mon, 2002-08-12 at 01:56, Mike Lambert wrote:
> Hey,
>
> I re-added the GC_DEBUG define today, and weeded out a bunch of issues.
> For those who don't remember, GC_DEBUG (currently in parrot.h) causes
> various limits and settings and lo
at is not a question just some random thought.
4) Parrot_Coroutine's 'init' is not longer used and can go away, I guess
I could remove it in a future patch ... ok so that's not a question
either.
Anyway, thanks for any info!
--
Jonathan Sillito
On Thu, 2002-08-08 at 14:29, Jona
or up in the air still (my
patch in [perl #16797] for example). But I am hoping to somehow get more
involved.
Also, for what it is worth, I personally don't much care what the email
list is called.
--
Jonathan Sillito
Sorry if this comment is out of context, I am behind but catching
up. The patch in [perl #16797] adds a scratchpad pmc (among other
things). Hopefully it is not too far out of date to apply. I
believe Melvin is looking into it ...
--
Jonathan Sillito
On Tue, 10 Sep 2002, Piers Cawley wrote
descriptor that could be used to put all
lexicals in place when the pad is first created.
> Is there a possibility to get a pointer to the current pad, to store
> it in the closure? (Im not sure, maybe only the top-pad is needed).
> There need also be a way to reinstate the saved lexica
> -Original Message-
> From: Piers Cawley [mailto:[EMAIL PROTECTED]]
> "Jonathan Sillito" <[EMAIL PROTECTED]> writes:
> > get_counter:
> > new_pad 1
>
> Doesn't this violate the 'caller saves' principle, making it hard to
&g
new P0, .SchemeUndef
store_lex 1, "a", P0
# ...
pop_pad
and could (set! a 12) inside of the above define be:
new P0, .SchemeInteger
store_lex "a", P0 # looks back through nested pads
--
Jonathan Sillito
So does that mean, the only set ops will be those that take two registers of
the same type?
set_p_p
set_i_i
set_s_s
set_n_n
--
Jonathan Sillito
(who is willing to help with the migration)
> -Original Message-
> From: Peter Gibbs [mailto:[EMAIL PROTECTED]]
> Sent: October 3, 2
ome things could be left
to _methods_ instead of ops.
--
Jonathan Sillito
>
> The primary goal of the exercise was to be able to distinguish
> between 'set P0, P1' which simply sets the P0 register equal to
> the P1 register, and 'assign P0, P1' which would,
utine:
print "in sub routine\n"
ret
This seems tedious, but maybe I am missing the point? Anyway if this is what
we want the attached patch modifies sub.pmc to support this, and adds a test
to t/pmc/sub.t. This patch depends on [perl #17811].
--
Jonathan Sillito
sub_init.patch
Description: Binary data
ot hacking, could someone point me
> at the rationale for making scratchpads a special case, rather than a
> PMC?
I am sure they will be a PMC. In fact two different patches have been
submitted to make them PMCs, one by me and a better one by Sean O'Rourke.
Sean's has not been committed yet, probably because he is waiting for a
decision on the more flexible ops by Dan.
--
Jonathan Sillito
) only touched in sub.c, so it should be easy to change the
approach.
Thanks for the comments, anything else?
--
Jonathan Sillito
r your question?
> Apart from that: Nice patch.
>
--
Jonathan Sillito
ub would only need
an explicit pop_pad for each local scope created.
However, subs that are not closures could continue using the ret op.
(So Dan, should I submit a patch adding a 'return' op?).
--
Jonathan Sillito
Steve,
Thanks! Was there a problem applying the patch? I just checked out a new cvs
images and the file t/op/lexicals.t has not been updated. As a result, a few
tests are failing. Should I resubmit the part of the patch that updates
t/op/lexicals.t?
--
Jonathan Sillito
> -Original Mess
CVS
and try again on Darwin/PPC? As much detail as you can send me about any
failures would be appreciated.
Thanks.
--
Jonathan Sillito
document docs/parrot_assembly.pod is out of date, and it seems a shame
to keep a simple doc for each op in two places ... so I am not sure about
this doc.
(Would someone like to put the attached file into examples/assembly and
commit it? Also could someone look at the patch in #18419?)
--
Jonathan
aks, because we can't cleanup duplicated lex ptrs.
>
> Can somone better knowing scratchpads comment on this please.
>
I guess there is a related problem with the way the function scratchpad new
works, since it needs to copy lex ptrs from enclosing scopes?
I will look into it more in a bit ...
--
Jonathan Sillito
uches:
-- classes/scratchpad.pmc
-- sub.c
-- t/pmc/scratchpad.t (adds a test)
--
Jonathan Sillito
> -Original Message-
> From: Jonathan Sillito [mailto:[EMAIL PROTECTED]]
>
> > -Original Message-
> > From: Leopold Toetsch [mailto:[EMAIL PROTECTED]]
> >
> >
ccess
slots like:
set Px, Py[1]# store the name to offset hash in Px
[snip]
So to sum up we need the following pmc's:
pmclass Ref {
data is a pointer to an object
}
pmclass Attr {
data is an array of attributes
}
pmclass Class extends Attr {
}
pmclass Object {
this was not explained, but I guess it at least
has a reference to a Class and field data ???
}
Does that cover it?
--
Jonathan Sillito
these slots? Also
> Can I access
> >slots like:
> >
> > set Px, Py[1]# store the name to offset hash in Px
>
> No the parent's gotten to via the vtable, and yes you can.
Sorry if this is obvious, but which vtable method is used to get the
parents?
Thanks!
--
Jonathan Sillito
): A.f() !!!
Which shows that the dispatch (i.e. selecting which method to call) can
happen before the invocation.
--
Jonathan Sillito
> -Original Message-
> From: Dan Sugalski [mailto:[EMAIL PROTECTED]]
>
> At 8:53 PM -0800 1/14/03, Adriano wrote:
> >On Tue, 14 Ja
Sounds like we want objects *and* classes to support:
static_attribs - which are defined at compile time and
accessed by offset probably stored in an array.
dynamic_attribs - which come and go at run time and are
generally accessed by name and likely stored in a hash.
--
Jonathan Sillito
and can be extremely useful.
Behind the scenes ruby creates a new (anonymous) subclass,
which contains the new method.
-- jonathan
if
you have found a bug or if we just need to clarify how to
use the lexical ops etc.
-- jonathan
outines and the caller
> + all edges out from both do share the same registers, don't they?
They do, except that each coroutine has its own user stack so saveall and
restoreall can work properly.
-- jonathan sillito
t
object to do it rather than the stacks. I suppose there would be not much
benefit to this anyway ...
Jonathan Sillito
Dan,
Why is there a callmeth op? Can't we just use a regular invoke as with other
subs? Or does the callmeth op do both a find and invoke as an optimization?
Jonathan Sillito
> -Original Message-
> From: Dan Sugalski [mailto:[EMAIL PROTECTED]
>
> Nope, not objects,
callccmethod?)
Also, should the current 'invoke' op be changed to 'call'? I don't care
exactly what the names are, but consistency is nice.
Jonathan
> -Original Message-
> From: Dan Sugalski [mailto:[EMAIL PROTECTED]
>
> At 9:20 AM -0700 5/30/03, Jonathan Silli
table->invoke(interpreter, method, expr
NEXT());
goto ADDRESS(dest);
}
--
Jonathan Sillito
> -Original Message-
> From: Nicholas Clark [mailto:[EMAIL PROTECTED] Behalf Of Nicholas
> Clark
>
> I'm not sure if I'm asking a stupid question here, but:
>
> On
, control and int stacks.
This seems like a nice approach to me as it simplifies the Parrot_Context
struct and the calling and returning from subs and methods.
Comments?
--
Jonathan Sillito
to comment on my idea for getting rid of
the register stacks etc:
"calling convention and continuation ramblings"
http://xrl.us/iy8
Jonathan Sillito
> -Original Message-
> From: Leopold Toetsch [mailto:[EMAIL PROTECTED]
>
> Jonathan Sillito <[EMAIL PROTEC
tacks
c. opcode, stacks and half of the registers
d. opcode, stacks and all of the registers
The patch I sent supports two types: type b (in continuation.pmc) and type d
(in completecontext.pmc). Also in this patch is the option to not create a
new continuation --as in a tail call-- which of course makes it very fast.
--
Jonathan Sillito
> -Original Message-
> From: Leopold Toetsch [mailto:[EMAIL PROTECTED]
>
> Jonathan Sillito <[EMAIL PROTECTED]> wrote:
>
> > This patch converts parrot to a continuation passing style.
>
> You seem to be changing current tests WRT invoke - does invok
On Wed, 11 Jun 2003, Leopold Toetsch wrote:
> Jonathan Sillito wrote:
>
> Why not just leave the old behaviour?
> IMHO[1]:
> - Make a new class based on Continuations
> - invokecc and such are based on it
[snip]
> [1] I don't know too much about all the HL stuff. But
truct.
Jonathan Sillito
> -Original Message-
> From: Dan Sugalski [mailto:[EMAIL PROTECTED]
> Sent: June 12, 2003 4:11 PM
> To: Luke Palmer
> Cc: [EMAIL PROTECTED]
> Subject: Re: Context, continuations, and call speed
>
>
> At 5:01 PM -0600 6/12/03, Luke Palmer wro
verything. If a sub uses only one or two
registers it only needs to save those before calling another sub ... right?
--
Jonathan Sillito
> -Original Message-
> From: Leopold Toetsch [mailto:[EMAIL PROTECTED]
>
> The patch is fine with two exceptions:
> 1) still breaks existing P6C tests WRT exceptions & rules
> 2) performance of CPS sucks
>
> ad 1) I'd like to preserve the old style invoke/ret scheme too. incokecc
> and frie
> -Original Message-
> From: Leopold Toetsch [mailto:[EMAIL PROTECTED]
>
> Jonathan Sillito wrote:
>
> >>-Original Message-
> >>From: Leopold Toetsch [mailto:[EMAIL PROTECTED]
> >>
> >>The patch is fine with two exceptions:
&g
context which is saved on construction and restored on invoke. The different
types the context to be saved and restored[1]:
sublite[2]:
none - just address
sub:
pointer to a lex pad
coroutine:
whole Parrot_Context[3] - i.e same as ...
continuation for cps approach:
whole P
1 - 100 of 557 matches
Mail list logo