# New Ticket Created by jerry gay
# Please include the string: [perl #37956]
# in the subject line of all future correspondence about this issue.
# https://rt.perl.org/rt3/Ticket/Display.html?id=37956 >
it seems a grep for 'cvs' returns a number of references in the parrot
sourc
# New Ticket Created by jerry gay
# Please include the string: [perl #36884]
# in the subject line of all future correspondence about this issue.
# https://rt.perl.org/rt3/Ticket/Display.html?id=36884 >
since parrot has migrated from cvs to svn, and there's little chance
it'll
t\pmc\complexok
All tests successful.
Files=1, Tests=26, 3 wallclock secs ( 0.00 cusr + 0.00 csys = 0.00 CPU)
Seems to be fixed, should be closed.
> I've disabled all CVS write permissions as part of the transition.
> (Yes, this means wheels are turning.)
CVS will stay readable, but un-writable until tomorrow morning, when I
hope to announce SVN being up. The import is running while I sleep.
I caught I minor issue halfway into t
I've disabled all CVS write permissions as part of the transition.
(Yes, this means wheels are turning.)
* the separate native type MMD enums are gone:
MMD_ADD_INT => MMD_ADD
* the native types INTVAL..PMC occupy types 0..3
* this almost halfs the MMD_table size
* enum_type_PMC serves as Any
* the special PMCs delegate, Ref and alike don't register
MMD functions any more
* get_mmd_dispatch_type
Will Coleda <[EMAIL PROTECTED]> wrote:
> +SKIP: { skip("No BigInt Lib configured", 1) if !$PConfig{gmp};
Good. Still better - as we eventually have more then one bigint lib
configurable - we should define a general 'HAS_BIGINT' for any of these
possible libs and test that symbol.
leo
Leopold Toetsch <[EMAIL PROTECTED]> wrote:
Yesterday on IRC chip and I went a bit through the following problem:
> --- integer.pmc 27 Mar 2005 13:14:18 - 1.25
> +++ integer.pmc 5 Apr 2005 16:02:26 - 1.26
> @@ -420,8 +420,23 @@
>
>void add (PMC* value, PMC*
According to Leo Toetsch:
> Chip Salzenberg <[EMAIL PROTECTED]> wrote:
> > + $(RM_F) $(IMCC_DIR)/imcparser.c
> > + $(RM_F) $(IMCC_DIR)/imclexer.c
>
> This isn't quite right, it works only if you have bison/flex and you
> did Configure.pl --maintainer
>
> If you don't change the files and just
)/imclexer.c
This isn't quite right, it works only if you have bison/flex and you
did Configure.pl --maintainer
If you don't change the files and just make, you end up with empty files
and a broken build: see #34675.
We have imcparser.* and imclexer.c in CVS so that not all are forced t
Will Coleda <[EMAIL PROTECTED]> wrote:
> cvsuser 05/04/04 07:13:43
> Fix calling signature so it's in line with leo's recent change of I->J.
>
> Index: parrotinterpreter.pmc
Argh. I must have again "fixed" parrotinterpreter.c - I do remember
these changes.
Thanks for the ci and sorry,
le
During class registration of classes that define a MMD_init table,
several new things happen:
1) a MultiSub PMC is created in the "__parrot_core" namespace once
2a) if there is just one MMD variant:
a NCI method is created in the classes namespace
2b) if there are more then one MMD variants
On Sat, Apr 02, 2005 at 11:57:44PM +0200, Steven Schubiger wrote:
>
> I've found a subtle spelling error in A03.html alias
> Apocalypse 3: Operators, kept at dev.perl.org.
>
> As I couldn't find neither an according cvs nor svn,
http://svn.perl.org/perl6/doc/trun
Nicholas Clark <[EMAIL PROTECTED]> wrote:
> On Wed, Mar 30, 2005 at 09:11:51AM +0200, Leopold Toetsch wrote:
>> Bernhard Schmalhofer <[EMAIL PROTECTED]> wrote:
>> > +void freeze(visit_info *info) {
>> > +IMAGE_IO *io = info->image_io;
>> > +io->vtable->push_integer(INTERP,
On Wed, Mar 30, 2005 at 09:11:51AM +0200, Leopold Toetsch wrote:
> Bernhard Schmalhofer <[EMAIL PROTECTED]> wrote:
> > +void freeze(visit_info *info) {
> > +IMAGE_IO *io = info->image_io;
> > +io->vtable->push_integer(INTERP, io, PMC_int_val(SELF));
> > +STRING *
Please have a look at the tests in t/pmc/mmd.t
More tests welcome,
Thanks,
leo
In the following snippet (from t/pmc/mmd.t) the two function calls
dispatch to the correct subroutine:
.namespace ["main"]
.sub main @MAIN
p("ok 1\n")
p("-twice", "ok 2\n")
.end
.namespace [""]
.sub p @MULTI(string)
...
.sub p @MULTI(string, string)
* the two multi subs "p" in the same na
Bernhard Schmalhofer <[EMAIL PROTECTED]> wrote:
> +void freeze(visit_info *info) {
> +IMAGE_IO *io = info->image_io;
> +io->vtable->push_integer(INTERP, io, PMC_int_val(SELF));
> +STRING * s = string_from_cstring(INTERP, PMC_data(SELF),
> PMC_int_val2(SELF)/BITS
1) the PASM and PIR assemblers are now extended to understand arbitrary
PMC constants:
.const .Integer P0 = "42" # PASM
.const .Integer i = "42"# PIR
.const Integer i = "42"# PIR
Caveat: don't use this yet, the PMC constants vanish after the first GC
sweep. See below.
The two plain subroutine calls C and C with
objects "f isa Foo" and "b isa Bar" are calling the subroutines Foo.foo
and Bar.foo respectively. See the last test in t/pmc/mmd.t.
Not much more will work currently as function signatures are still missing.
The MultiSub object "foo" in the global name
Dan Sugalski <[EMAIL PROTECTED]> wrote:
> At 5:19 PM +0100 3/19/05, Leopold Toetsch wrote:
>>1) builtin methods are living in a class namespace e.g.
>>
>> Float."cos"
>> ParrotIO."open" # unimplemented
> I'm way out of the loop and may have been dealt with in prior mail,
> but are we doing re
At 5:19 PM +0100 3/19/05, Leopold Toetsch wrote:
1) builtin methods are living in a class namespace e.g.
Float."cos"
ParrotIO."open" # unimplemented
I'm way out of the loop and may have been dealt with in prior mail,
but are we doing real method calls for cos() and suchlike things?
That seem
Bob Rogers <[EMAIL PROTECTED]> wrote:
>From: Leopold Toetsch <[EMAIL PROTECTED]>
>2) these methods can be called in various ways:
> This doesn't seem to be working for me.
Oops. I did obviously some changes in classes/nci.c instead of the pmc
file.
Thanks for reporting - fixed,
leo
Px = m() # bound object method
This doesn't seem to be working for me. I did a fresh CVS checkout just
now (so no "cvs update -d" issues -- ;-), and got the following test
results:
1) builtin methods are living in a class namespace e.g.
Float."cos"
ParrotIO."open" # unimplemented
2) these methods can be called in various ways:
Px = cos Py # opcode syntax
cos Px, Py # same
Px = "cos"(Py) # function call
Px = Py."cos
On Thursday 17 March 2005 19:59, Bernhard Schmalhofer wrote:
> Â Generate 'parrot_compiler.pasm' from 'parrot_compiler.imc'.
Generating of pasm files from imc does not work, it is just a debugging aid.
> Â Added three tests, which try to run PASM, PIR and PAST from
> Â 'parrot_compiler.pasm'. Thes
I've committed a patch that currently fixes the t/dynclasses/*.t errors
with gcc 3.3.3 and possibly others.
While I wasn't able to fully track down the real problem, it seems that
dynamic library loading doesn't stand a DOD run, which is artificially
triggered by string_compare, when --gc-debug
After Dan's string patch got merged to head (thanks to Will Coleda for
sending me a diff), I've put in some more string stuff with these new
opcodes:
* charset, charsetname, find_charset
* is_whitespace, is_digit, is_wordchar, is_punctuation, is_newline
* find_whitespace, find_digit, find_wordch
Bernhard Schmalhofer <[EMAIL PROTECTED]> wrote:
> Hi,
> I'm currently working on some Parrot bits, including some more cleanup of
> the test suite.
> For that it would be convenient to have commit right in CVS and rights in
> the RequestTracker.
> Could a kind so
Hi,
I'm currently working on some Parrot bits, including some more cleanup of
the test suite.
For that it would be convenient to have commit right in CVS and rights in
the RequestTracker.
Could a kind soul set that up? My user ID on auth.perl.org is 'bernhard'.
CU, Bernhard
Sam Ruby <[EMAIL PROTECTED]> wrote:
> But then you effectively morph the resulting bound method into a NCI
> instead of a PyNCI with the following line of code:
> bound_meth->vtable = Parrot_base_vtables[enum_class_Bound_NCI];
Yes. That's a general problem in all places, where the Parrot core
cr
Leopold Toetsch wrote:
Sam Ruby <[EMAIL PROTECTED]> wrote:
[EMAIL PROTECTED] wrote:
+else if (p->vtable->base_type == enum_class_NCI) {
It was requested[1] that I not add any Python specific methods to the
NCI method... accordingly, the majority of Python methods are morphed to
a PyNCI c
Sam Ruby <[EMAIL PROTECTED]> wrote:
> [EMAIL PROTECTED] wrote:
>> +else if (p->vtable->base_type == enum_class_NCI) {
> It was requested[1] that I not add any Python specific methods to the
> NCI method... accordingly, the majority of Python methods are morphed to
> a PyNCI class which
[EMAIL PROTECTED] wrote:
+else if (p->vtable->base_type == enum_class_NCI) {
It was requested[1] that I not add any Python specific methods to the
NCI method... accordingly, the majority of Python methods are morphed to
a PyNCI class which subclasses the base NCI class.
- Sam Ruby
[1]
I've now committed the source of the generational mark & sweep GC system.
Some remarks:
- it's by far not finished
- fails still a lot of tests [1]
- to turn it on set PARROT_GC_SUBSYSTEM to 2 in settings.h
- you might also turn on GC_GMS_DEBUG when hacking on the code
- it should be documented suf
Hello,
Here's a story of how I've been able to improve the quality of my Perl
development process significantly:
Benefits of a Real World switch from CVS to darcs
http://mark.stosberg.com/Tech/darcs/cvs_switch/
Switching my source control system has made a big difference in
On Wed, Jan 05, 2005 at 03:33:19PM -, Simon Glover wrote:
> cvsuser 05/01/05 07:33:19
>
> Modified:t/pmcperlarray.t
> Log:
>gcov now reports 100% of lines in perlarray.pmc have test coverage
Nice work.
Nicholas Clark
Simon Glover <[EMAIL PROTECTED]> wrote:
> Sorry about that - I converted the test from an existing one for
> ResizableFloatArray, but forgot that in the string case there's a
> much higher load on the GC system due to all the string headers.
Actually the problem aren't the string headers per s
On Tue, 4 Jan 2005, Nicholas Clark wrote:
> On Mon, Jan 03, 2005 at 10:13:53PM -, Simon Glover wrote:
>
> > +output_is(<<'CODE', <<'OUTPUT', 'pop many values');
> > + new P0, .ResizableStringArray
> > + set I0, 0
> > +L1: set S0, I0
> > + set P0[I0], S0
> > + inc
Nicholas Clark <[EMAIL PROTECTED]> wrote:
> On Mon, Jan 03, 2005 at 10:13:53PM -, Simon Glover wrote:
>> + lt I0, 10, L1
> ^this^
> really really hurts.
It's already reduced in CVS.
> Nicholas Clark
leo
On Mon, Jan 03, 2005 at 10:13:53PM -, Simon Glover wrote:
> +output_is(<<'CODE', <<'OUTPUT', 'pop many values');
> + new P0, .ResizableStringArray
> + set I0, 0
> +L1: set S0, I0
> + set P0[I0], S0
> + inc I0
> + lt I0, 10, L1
^this^
re
Sam Ruby <[EMAIL PROTECTED]> wrote:
> *** Note to Leo: take a look at the comment in complex.pmc as well as
> the new t/dynclass/pycomplex.t test. Bug in MMD inheritance?
Very likely yes. Creating even a correct static MMD table with proper
inheritance is a tedious job. Getting dynamic i
Sam Ruby <[EMAIL PROTECTED]> wrote:
> cvsuser 04/12/23 04:44:05
>
> Note: change to op issame to make use of VTABLE_is_same.
>inline op issame(out INT, in PMC, in PMC) {
> -$1 = $2 == $3;
> +if ($2 == $3)
> +$1 = 1;
> +else
> +$1 = VTABLE_is_
Leopold Toetsch wrote:
Sam Ruby wrote:
Leopold Toetsch wrote:
What is the rational for this pythonism in Parrot core?
+The line of code in test case t/pie/b3 that motivates this is:
+
+ print "using", cmp.__name__
+
+Where cmp may be a NCI subroutine.
Python's builtin "cmp" is basially a Sub PMC.
Sam Ruby wrote:
Leopold Toetsch wrote:
What is the rational for this pythonism in Parrot core?
+The line of code in test case t/pie/b3 that motivates this is:
+
+ print "using", cmp.__name__
+
+Where cmp may be a NCI subroutine.
Python's builtin "cmp" is basially a Sub PMC. Parrot Sub's have alre
Leopold Toetsch wrote:
Sam Ruby <[EMAIL PROTECTED]> wrote:
--- nci.pmc7 May 2004 10:33:26 - 1.27
+++ nci.pmc20 Dec 2004 22:27:11 - 1.28
+=item C
+
+Return attribute named C.
+
+=cut
+
+*/
+
+PMC* get_attr_str(STRING* idx) {
+return VTABLE_getprop(
Sam Ruby <[EMAIL PROTECTED]> wrote:
> --- nci.pmc 7 May 2004 10:33:26 - 1.27
> +++ nci.pmc 20 Dec 2004 22:27:11 - 1.28
> +=item C
> +
> +Return attribute named C.
> +
> +=cut
> +
> +*/
> +
> +PMC* get_attr_str(STRING* idx) {
> +return VTABLE_g
Sam Ruby wrote:
Are namespaces subject to garbage collection? Classes may be created on
the fly in Python, and disapear just as quickly.
In Python as well as in Perl. We have to deal with that anyway. Perl6
has the notion of lexically scoped multimethods. Operator overloading
only for one speci
Leopold Toetsch wrote:
Python classes are not namespaces. Nor are they global. They are
dictionaries.
Or, the view is a dictionary-like. The dict is CPython's implementation.
I can imagine that Parrot's class namespaces work as well.
Are namespaces subject to garbage collection? Classes may be
Sam Ruby wrote:
This doesn't make sense to me. The @ANON pragma avoids the add_method
(or store_global) call in the first place.
I don't want the method added to a namespace, or stored as a global. I
want it stored as a property of a class object.
I presumed that ;) Well, due to the described p
Leopold Toetsch wrote:
Sam Ruby wrote:
My need is to be able to call add_method for methods defined as @ANON.
This doesn't make sense to me. The @ANON pragma avoids the add_method
(or store_global) call in the first place.
I don't want the method added to a namespace, or stored as a global. I
wa
Leopold Toetsch wrote:
Sam Ruby wrote:
Before this line is executed,
(gdb) p interpreter->ctx.bp
$1 = (struct parrot_regs_t *) 0x40b6bd88
After the above line is executed:
(gdb) p interpreter->ctx.bp
$2 = (struct parrot_regs_t *) 0x40b6bae8
Then is obviously your implementation of get_repr
Sam Ruby wrote:
Before this line is executed,
(gdb) p interpreter->ctx.bp
$1 = (struct parrot_regs_t *) 0x40b6bd88
After the above line is executed:
(gdb) p interpreter->ctx.bp
$2 = (struct parrot_regs_t *) 0x40b6bae8
Then is obviously your implementation of get_repr broken.
Two questions c
Sam Ruby wrote:
My need is to be able to call add_method for methods defined as @ANON.
This doesn't make sense to me. The @ANON pragma avoids the add_method
(or store_global) call in the first place.
From the perspective of Parrot, namespaces should be viewed a perfectly
reasonable mechanism fo
Leopold Toetsch wrote:
Sam Ruby wrote:
Leopold Toetsch wrote:
cvsuser 04/12/15 02:36:29
Modified:.vtable.tbl
Log:
stub in object vtables
[snip]
+void add_parent(PMC* parent)
+void become_parent(PMC* class)
+INTVAL class_type()
+void add_method(STRING* method)
+void r
Leopold Toetsch wrote:
Sam Ruby wrote:
Leopold Toetsch wrote:
+inline op get_repr(out STR, in PMC) {
+STRING *s = $2->vtable->get_repr(interpreter, $2);
+$1 = s;
goto NEXT();
}
Strange. Stranger. Strangest. Did the test fail with JIT/i386 only?
I didn't mean to commit the "inline
Sam Ruby wrote:
Developers could declare such a dependency
with a IMCC macro, something like this:
.lib python_group
That could be
.class_mapping "Py", "python_group"
OTOH when the classes are built in dynclasses, we can as well hard-code
the entries. We'll see.
This would enable JITs to
Leopold Toetsch wrote:
1) There is a new opcode new Px, Sc:
new P0, "PyInt"
2) If the given class doesn't yet exist, Parrot_autoload_class is called
which has hardcode mapping for "Py" => "python_group", "Tcl" =>
"tcl_group". A bit hackish but working ...
Perhaps longer term, a change to the p
Sam Ruby wrote:
Leopold Toetsch wrote:
+inline op get_repr(out STR, in PMC) {
+STRING *s = $2->vtable->get_repr(interpreter, $2);
+$1 = s;
goto NEXT();
}
Strange. Stranger. Strangest. Did the test fail with JIT/i386 only?
I didn't mean to commit the "inline" portion of the chan
Leopold Toetsch wrote:
Sam Ruby <[EMAIL PROTECTED]> wrote:
I don't understand this. At all. But the test case added to pyclass.t
(motivated by test 4 in pie/b3.t) only passes if this change to the
get_repr op is made.
[ ... ]
-op get_repr(out STR, in PMC) {
-$1 = $2->vtable->get_repr(int
1) There is a new opcode new Px, Sc:
new P0, "PyInt"
2) If the given class doesn't yet exist, Parrot_autoload_class is called
which has hardcode mapping for "Py" => "python_group", "Tcl" =>
"tcl_group". A bit hackish but working ...
3) The pybuiltin.__load__() function is automatically called
Sam Ruby <[EMAIL PROTECTED]> wrote:
> I don't understand this. At all. But the test case added to pyclass.t
> (motivated by test 4 in pie/b3.t) only passes if this change to the
> get_repr op is made.
[ ... ]
> -op get_repr(out STR, in PMC) {
> -$1 = $2->vtable->get_repr(interpret
Will Coleda via RT <[EMAIL PROTECTED]> wrote:
>> Loading platform and local hint files. Bad command or
Rerunning
perl Configure.pl --verbose=2
should reveal the failing program.
leo
pyproxytype.pmc
Log:
PROXY must conflict with a prefixed C constant on MAC/OSX
Revision ChangesPath
1.2 +4 -4 parrot/dynclasses/pyproxyclass.pmc
Index: pyproxyclass.pmc
===
RCS file: /cvs/public/parrot
ave gathered from
> parrotcode.org that I need to download the CVS which I have.
>
> I've installed perl on my system,I open my MS-DOS prompt window and
> use the CD command to switch to the directory where the Parrot CVS is,
> and I understand in order to build parrot so I can
Leopold Toetsch wrote:
Sam Ruby <[EMAIL PROTECTED]> wrote:
I'll go back and all the necessary interpinfo calls, but I feel
compelled to ask: why isn't P2 passed?
P2 is a non-preserved register and as such rather improper to hold the
object throughout a whole method.
I wasn't assuming is lasted thro
Sam Ruby <[EMAIL PROTECTED]> wrote:
> I'll go back and all the necessary interpinfo calls, but I feel
> compelled to ask: why isn't P2 passed?
P2 is a non-preserved register and as such rather improper to hold the
object throughout a whole method.
> ... It seems to me quite likely that
> most me
Leopold Toetsch wrote:
cvsuser 04/12/11 04:08:13
Modified:classes sub.pmc
imcc/t/syn op.t
runtime/parrot/library parrotlib.imc
src inter_run.c
t/op gc.t
t/pmcdelegate.t object-meths.t objects.t sub.t
On Sat, Dec 11, 2004 at 04:42:54AM +0100, Leopold Toetsch wrote:
> Patrick R. Michaud <[EMAIL PROTECTED]> wrote:
>
> > Just as C returns its first non-false argument, the interpretation
> > of C would be that it returns its single non-false argument, or 1 if
> > both (all?) arguments logically eva
Patrick R. Michaud <[EMAIL PROTECTED]> wrote:
> Just as C returns its first non-false argument, the interpretation
> of C would be that it returns its single non-false argument, or 1 if
> both (all?) arguments logically evaluate to false.
Yep, except *0* if both evaluate to either true or false.
Sam Ruby writes:
> Mike Guy wrote:
> >
> >Perl5 C always returns a "standard" boolean value, i.e.
> >dualvar(0, '') or dualvar(1, '1').Perl6/Parrot should do the same
> >thing.
>
> Try:
>
> perl -le "print 'day' xor 'night'"
>
> On the version of Perl I have installed, I get "day" as the
On Fri, Dec 10, 2004 at 01:28:10PM -0500, Sam Ruby wrote:
> Mike Guy wrote:
> >
> >Perl5 C always returns a "standard" boolean value, i.e.
> >dualvar(0, '') or dualvar(1, '1').Perl6/Parrot should do the same
> >thing.
>
> Try:
>
> perl -le "print 'day' xor 'night'"
>
> On the version of
[ From p6i ]
Patrick R. Michaud writes:
> On Fri, Dec 10, 2004 at 08:50:46PM +0100, Leopold Toetsch wrote:
> > Not quite. It gives one value if one is true or 0 (false). This is more
> > information then the perl5 implementation returns. The returned value (if
> > any) is still true but usable, if
On Fri, Dec 10, 2004 at 08:50:46PM +0100, Leopold Toetsch wrote:
> >> We need language lawyers ;)
>
> > IANAL, but I am a mathematician.Because C necessarily always
> > depends on *both* its arguments, analogies with C and C are
> > inappropriate.C cannot short-circuit, and it is not sensi
Mike Guy <[EMAIL PROTECTED]> wrote:
> Leopold Toetsch <[EMAIL PROTECTED]> wrote
>> dropping bitwise xor, and including "undef xor undef" reveals that Perl5
> has a different opinion then Parrot (or Perl6?).
> inline op xor(out INT, in INT, in INT) :base_core {
> $1 = ($2 && ! $3) ? $2 : ($3 && !
Mike Guy wrote:
Perl5 C always returns a "standard" boolean value, i.e.
dualvar(0, '') or dualvar(1, '1').Perl6/Parrot should do the same
thing.
Try:
perl -le "print 'day' xor 'night'"
On the version of Perl I have installed, I get "day" as the result.
- Sam Ruby
Precedence.
print("day\n" xor "night\n");
--
Gordon Henriksen
IT Manager
ICLUBcentral Inc.
[EMAIL PROTECTED]
-Original Message-
From: Sam Ruby [mailto:[EMAIL PROTECTED]
Sent: Friday December 10, 2004 13:28
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Subject
Leopold Toetsch <[EMAIL PROTECTED]> wrote
> dropping bitwise xor, and including "undef xor undef" reveals that Perl5
has a different opinion then Parrot (or Perl6?).
inline op xor(out INT, in INT, in INT) :base_core {
$1 = ($2 && ! $3) ? $2 : ($3 && ! $2) ? $3 : 0;
goto NEXT();
}
> We need la
Eirik Berg Hanssen <[EMAIL PROTECTED]> wrote:
> Which Perl5 (xor, undef) would this be? It does not look like the
> result is undef around here:
> [EMAIL PROTECTED]:~$ perl -le 'print defined($_)?"defined":"undef", ": «$_»"
> for map {(undef xor $_), ($_ xor undef), (undef ^ $_), ($_ ^ undef)}
Leopold Toetsch <[EMAIL PROTECTED]> writes:
> Sam Ruby <[EMAIL PROTECTED]> wrote:
>
>> I took a look into this. Apparently, in Perl5, the result of xor'ing
>> undef with anything is undef. I'm not suggesting that this is either
>> right or wrong (it actually was surprising to me),
>
> Yep. It do
Eirik Berg Hanssen wrote:
Leopold Toetsch <[EMAIL PROTECTED]> writes:
Sam Ruby <[EMAIL PROTECTED]> wrote:
I took a look into this. Apparently, in Perl5, the result of xor'ing
undef with anything is undef. I'm not suggesting that this is either
right or wrong (it actually was surprising to me),
Leopold Toetsch wrote:
Sam Ruby <[EMAIL PROTECTED]> wrote:
I took a look into this. Apparently, in Perl5, the result of xor'ing
undef with anything is undef. I'm not suggesting that this is either
right or wrong (it actually was surprising to me),
Yep. It doesn't really follow the definition of x
Sam Ruby <[EMAIL PROTECTED]> wrote:
> Leopold Toetsch wrote:
>> -=item C
> IMHO, all of these can go. The invoke methods need to be on the PMCs
> returned by get_class.
That's exactly how it worked - the PMCs get_class returns a PMC of the
same type, so they act as their own class. But the "i
Sam Ruby <[EMAIL PROTECTED]> wrote:
> I took a look into this. Apparently, in Perl5, the result of xor'ing
> undef with anything is undef. I'm not suggesting that this is either
> right or wrong (it actually was surprising to me),
Yep. It doesn't really follow the definition of xor, nor does it
Leopold Toetsch wrote:
Leopold Toetsch wrote:
Currently one test (t/pmc/pmc_43.pasm) is failing due to wrong
inheritance.
Actually not because of inheritance. The implementation of
PerlUndef.logical_xor was bogus. I've fixed this and the test.
I took a look into this. Apparently, in Perl5, the r
Leopold Toetsch wrote:
Currently one test (t/pmc/pmc_43.pasm) is failing due to wrong inheritance.
Actually not because of inheritance. The implementation of
PerlUndef.logical_xor was bogus. I've fixed this and the test.
leo
* PerlInt isa Integer now - most is inherited
* try to improve MMD setup but failed
MMD table creation looks now at parent and tries to install inherited
MMD functions. But that's error prone and bulky and I'm too dumb to do
it right.
Currently one test (t/pmc/pmc_43.pasm) is failing due to wron
Sam Ruby <[EMAIL PROTECTED]> wrote:
> Excellent!
Welcome.
> Question: what is the difference (conceptually) between "new" and
> "instantiate"? If they are different, these differences should be
> highlighted. If not, the opcode should be named the same in both cases.
$ perldoc -F ops/pmc.ops
Leopold Toetsch wrote:
I've added a few ops and methods:
* pow MMD function and opcodes
* hash vtable and opcode
Both aren't yet implemented in classes/*
The "new_extended" opcode and vtable got renamed to the more appropriate
"instantiate". classes/complex.pmc has an implementation of this method
If a name is stored into a namespace that starts with two underscores,
the method cache is invalidated now.
The follwing program runs now as expected:
.sub main @MAIN
.local pmc o, cl
newclass cl, "Foo"
subclass cl, cl, "Bar"
$I0 = typeof cl
o = new $I0
print o
$P0 = g
I've added a few ops and methods:
* pow MMD function and opcodes
* hash vtable and opcode
Both aren't yet implemented in classes/*
The "new_extended" opcode and vtable got renamed to the more appropriate
"instantiate". classes/complex.pmc has an implementation of this method,
the default is a fal
* namespace (class) names are now prepended with a NUL char
* fix globals ops that take a namespace
* some tests in t/pmc/globals.t
.sub Foo
.end
.namespace ["Foo"]
...
can now bew used, The two names don't collide any more.
leo
I've moved a lot of the globals into the imc_info structure. The PASM
and PIR compilers are basically re-entrant now (there are likely some
issues with line numbers in error reports).
To achieve this a lot of functions got an interpreter argument, which
unfortunately makes the patch rather big.
Dan Sugalski <[EMAIL PROTECTED]> wrote:
> ... This patch broke a lot of my code.
All opcode permutations [1] are still valid. Can you please provide a
PASM snippet that doesn't work anymore.
[1] except abs I, N which was the only opcode with an integer result for
a float argument and lcm N,I,I w
At 8:29 AM +0100 11/28/04, Leopold Toetsch wrote:
Thomas Seiler <[EMAIL PROTECTED]> wrote:
Dan Sugalski wrote:
At 10:34 AM +0100 11/27/04, Leopold Toetsch wrote:
See also subject "Too many opcodes".
>> [...]
>>
Could you undo this please? Now is not the time to be trimming ops out.
When is
There is also such thing as premature "pessimization". I'm not in the
position to judge whether it is appropriate in this case, though.
Back-to-reading-mode-ly yours,
Michael
On Mon, 29 Nov 2004 20:25:48 -0500, Dan Sugalski <[EMAIL PROTECTED]> wrote:
> At 8:29 AM +0100 11/28/04, Leopold Toetsch
Thomas Seiler <[EMAIL PROTECTED]> wrote:
> Another change that need more thought:
> * (is)?g[t,e] N, P variants are *not* redundant
Ops with PMCs aren't changed at all.
,--[ ABI_CHANGES ]-
| The compare and branch opcodes gt, ge, isgt, and isge for
Leopold Toetsch wrote:
[...]
Just if you had 32 N regs used before. It's using only one additional
register.
[...]
I did not touch any PMC ops.
You are of course right, maybe I hadn't had enough coffee this morning.
Sorry for the bother, and keep up the good work.
tom (who is going back into shy-
On Sunday 28 November 2004, Jens Rieks wrote:
> added new TODO test:
> new Px, Ix: argcP is wrong in __init method
minesweeper does not run because of this.
not ok 52 - __init argcP # TODO new Px, Ix: argcP is wrong in __init method
# Failed (TODO) test (t/pmc/objects.t at line 1712)
#
Leopold Toetsch wrote:
>I've checked in intial support for anonymous subroutines.
>
> .sub foo @ANON
>
>creates an anonymous subroutine.
On a semi-related note, can I get a classoffset without doing a hash
lookup? That is, can I store the class number I get assigned somewhere
for quick fetching?
1 - 100 of 947 matches
Mail list logo