cvsuser     04/12/30 03:46:39

  Modified:    dynclasses pybuiltin.pmc pyconsts.h pylist.pmc pystring.pmc
               src      call_list.txt
  Log:
  Progress towards passing t/pie/b0.t
  
  Revision  Changes    Path
  1.38      +7 -1      parrot/dynclasses/pybuiltin.pmc
  
  Index: pybuiltin.pmc
  ===================================================================
  RCS file: /cvs/public/parrot/dynclasses/pybuiltin.pmc,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- pybuiltin.pmc     28 Dec 2004 00:41:25 -0000      1.37
  +++ pybuiltin.pmc     30 Dec 2004 11:46:38 -0000      1.38
  @@ -1,6 +1,6 @@
   /*
   Copyright: 2001-2003 The Perl Foundation.  All Rights Reserved.
  -$Id: pybuiltin.pmc,v 1.37 2004/12/28 00:41:25 rubys Exp $
  +$Id: pybuiltin.pmc,v 1.38 2004/12/30 11:46:38 rubys Exp $
   
   =head1 NAME
   
  @@ -287,6 +287,12 @@
           scratchpad_store_by_name(INTERP, pad, 0, key, item);
           PyBuiltin_PyStaticMeth_class = item;
   
  +        key = const_string(INTERP, "str");
  +        item = make_type(INTERP, PyBuiltin_PyString, key);
  +        VTABLE_setprop(INTERP, item, PyString_bases, parent);
  +        scratchpad_store_by_name(INTERP, pad, 0, key, item);
  +        PyBuiltin_PyString_class = item;
  +
           key = const_string(INTERP, "xrange");
           item = make_type(INTERP, PyBuiltin_PySlice, key);
           VTABLE_setprop(INTERP, item, PyString_bases, parent);
  
  
  
  1.5       +49 -48    parrot/dynclasses/pyconsts.h
  
  Index: pyconsts.h
  ===================================================================
  RCS file: /cvs/public/parrot/dynclasses/pyconsts.h,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- pyconsts.h        28 Dec 2004 00:41:25 -0000      1.4
  +++ pyconsts.h        30 Dec 2004 11:46:38 -0000      1.5
  @@ -1,63 +1,64 @@
   #if defined(INSIDE_PYBUILTIN)
  -#  define VAR_SCOPE
  +#  define PYVAR_SCOPE
   #else
  -#  define VAR_SCOPE extern
  +#  define PYVAR_SCOPE extern
   #endif /* INSIDE_PYBUILTIN */
   
   /* Python class types */
   
  -VAR_SCOPE INTVAL PyBuiltin_PyObject;
  -VAR_SCOPE INTVAL PyBuiltin_PyBoolean;
  -VAR_SCOPE INTVAL PyBuiltin_PyClass;
  -VAR_SCOPE INTVAL PyBuiltin_PyComplex;
  -VAR_SCOPE INTVAL PyBuiltin_PyDict;
  -VAR_SCOPE INTVAL PyBuiltin_PyException;
  -VAR_SCOPE INTVAL PyBuiltin_PyInt;
  -VAR_SCOPE INTVAL PyBuiltin_PyIter;
  -VAR_SCOPE INTVAL PyBuiltin_PyFloat;
  -VAR_SCOPE INTVAL PyBuiltin_PyList;
  -VAR_SCOPE INTVAL PyBuiltin_PyLong;
  -VAR_SCOPE INTVAL PyBuiltin_PyNCI;
  -VAR_SCOPE INTVAL PyBuiltin_PyNone;
  -VAR_SCOPE INTVAL PyBuiltin_PyProxyClass;
  -VAR_SCOPE INTVAL PyBuiltin_PyProxyType;
  -VAR_SCOPE INTVAL PyBuiltin_PySlice;
  -VAR_SCOPE INTVAL PyBuiltin_PyStaticMeth;
  -VAR_SCOPE INTVAL PyBuiltin_PyString;
  -VAR_SCOPE INTVAL PyBuiltin_PyTuple;
  -VAR_SCOPE INTVAL PyBuiltin_PyType;
  +PYVAR_SCOPE INTVAL PyBuiltin_PyObject;
  +PYVAR_SCOPE INTVAL PyBuiltin_PyBoolean;
  +PYVAR_SCOPE INTVAL PyBuiltin_PyClass;
  +PYVAR_SCOPE INTVAL PyBuiltin_PyComplex;
  +PYVAR_SCOPE INTVAL PyBuiltin_PyDict;
  +PYVAR_SCOPE INTVAL PyBuiltin_PyException;
  +PYVAR_SCOPE INTVAL PyBuiltin_PyInt;
  +PYVAR_SCOPE INTVAL PyBuiltin_PyIter;
  +PYVAR_SCOPE INTVAL PyBuiltin_PyFloat;
  +PYVAR_SCOPE INTVAL PyBuiltin_PyList;
  +PYVAR_SCOPE INTVAL PyBuiltin_PyLong;
  +PYVAR_SCOPE INTVAL PyBuiltin_PyNCI;
  +PYVAR_SCOPE INTVAL PyBuiltin_PyNone;
  +PYVAR_SCOPE INTVAL PyBuiltin_PyProxyClass;
  +PYVAR_SCOPE INTVAL PyBuiltin_PyProxyType;
  +PYVAR_SCOPE INTVAL PyBuiltin_PySlice;
  +PYVAR_SCOPE INTVAL PyBuiltin_PyStaticMeth;
  +PYVAR_SCOPE INTVAL PyBuiltin_PyString;
  +PYVAR_SCOPE INTVAL PyBuiltin_PyTuple;
  +PYVAR_SCOPE INTVAL PyBuiltin_PyType;
   
   /* Python class objects */
   
  -VAR_SCOPE PMC *PyBuiltin_PyBoolean_class;
  -VAR_SCOPE PMC *PyBuiltin_PyComplex_class;
  -VAR_SCOPE PMC *PyBuiltin_PyDict_class;
  -VAR_SCOPE PMC *PyBuiltin_PyException_class;
  -VAR_SCOPE PMC *PyBuiltin_PyInt_class;
  -VAR_SCOPE PMC *PyBuiltin_PyFloat_class;
  -VAR_SCOPE PMC *PyBuiltin_PyList_class;
  -VAR_SCOPE PMC *PyBuiltin_PyLong_class;
  -VAR_SCOPE PMC *PyBuiltin_PySlice_class;
  -VAR_SCOPE PMC *PyBuiltin_PyStaticMeth_class;
  -VAR_SCOPE PMC *PyBuiltin_PyTuple_class;
  -VAR_SCOPE PMC *PyBuiltin_PyType_class;
  +PYVAR_SCOPE PMC *PyBuiltin_PyBoolean_class;
  +PYVAR_SCOPE PMC *PyBuiltin_PyComplex_class;
  +PYVAR_SCOPE PMC *PyBuiltin_PyDict_class;
  +PYVAR_SCOPE PMC *PyBuiltin_PyException_class;
  +PYVAR_SCOPE PMC *PyBuiltin_PyInt_class;
  +PYVAR_SCOPE PMC *PyBuiltin_PyFloat_class;
  +PYVAR_SCOPE PMC *PyBuiltin_PyList_class;
  +PYVAR_SCOPE PMC *PyBuiltin_PyLong_class;
  +PYVAR_SCOPE PMC *PyBuiltin_PySlice_class;
  +PYVAR_SCOPE PMC *PyBuiltin_PyStaticMeth_class;
  +PYVAR_SCOPE PMC *PyBuiltin_PyString_class;
  +PYVAR_SCOPE PMC *PyBuiltin_PyTuple_class;
  +PYVAR_SCOPE PMC *PyBuiltin_PyType_class;
   
   /* constant strings */
   
  -VAR_SCOPE STRING *PyString_bases;
  -VAR_SCOPE STRING *PyString_call;
  -VAR_SCOPE STRING *PyString_class;
  -VAR_SCOPE STRING *PyString_cmp;
  -VAR_SCOPE STRING *PyString_hex;
  -VAR_SCOPE STRING *PyString_init;
  -VAR_SCOPE STRING *PyString_int;
  -VAR_SCOPE STRING *PyString_iter;
  -VAR_SCOPE STRING *PyString_name;
  -VAR_SCOPE STRING *PyString_new;
  -VAR_SCOPE STRING *PyString_oct;
  -VAR_SCOPE STRING *PyString_proxy;
  -VAR_SCOPE STRING *PyString_repr;
  -VAR_SCOPE STRING *PyString_str;
  +PYVAR_SCOPE STRING *PyString_bases;
  +PYVAR_SCOPE STRING *PyString_call;
  +PYVAR_SCOPE STRING *PyString_class;
  +PYVAR_SCOPE STRING *PyString_cmp;
  +PYVAR_SCOPE STRING *PyString_hex;
  +PYVAR_SCOPE STRING *PyString_init;
  +PYVAR_SCOPE STRING *PyString_int;
  +PYVAR_SCOPE STRING *PyString_iter;
  +PYVAR_SCOPE STRING *PyString_name;
  +PYVAR_SCOPE STRING *PyString_new;
  +PYVAR_SCOPE STRING *PyString_oct;
  +PYVAR_SCOPE STRING *PyString_proxy;
  +PYVAR_SCOPE STRING *PyString_repr;
  +PYVAR_SCOPE STRING *PyString_str;
   
   /* utility functions */
   
  
  
  
  1.18      +29 -1     parrot/dynclasses/pylist.pmc
  
  Index: pylist.pmc
  ===================================================================
  RCS file: /cvs/public/parrot/dynclasses/pylist.pmc,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- pylist.pmc        23 Dec 2004 23:49:32 -0000      1.17
  +++ pylist.pmc        30 Dec 2004 11:46:38 -0000      1.18
  @@ -1,6 +1,6 @@
   /*
   Copyright: 2001-2003 The Perl Foundation.  All Rights Reserved.
  -$Id: pylist.pmc,v 1.17 2004/12/23 23:49:32 rubys Exp $
  +$Id: pylist.pmc,v 1.18 2004/12/30 11:46:38 rubys Exp $
   
   =head1 NAME
   
  @@ -136,6 +136,34 @@
   
   /*
   
  +=item C<PMC* "__getitem__"(PMC *self, PMC *index)>
  +
  +Returns the PMC value of the element at index C<key>.
  +
  +=cut
  +
  +*/
  +
  +    METHOD PMC* __getitem__(PMC *self, PMC *index) {
  +        return VTABLE_get_pmc_keyed(INTERP, self, index);
  +    }
  +
  +/*
  +
  +=item C<PMC* "__setitem__"(PMC *self, PMC *index, PMC *value)>
  +
  +Sets the PMC at element C<index> to C<*value>.
  +
  +=cut
  +
  +*/
  +
  +    METHOD void __setitem__(PMC *self, PMC *index, PMC *value) {
  +        VTABLE_set_pmc_keyed(INTERP, self, index, value);
  +    }
  +
  +/*
  +
   =item C<void "append" (PMC* self, PMC* value)>
   
   Extends the array by adding an element of value C<*value> to the end of
  
  
  
  1.15      +66 -1     parrot/dynclasses/pystring.pmc
  
  Index: pystring.pmc
  ===================================================================
  RCS file: /cvs/public/parrot/dynclasses/pystring.pmc,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- pystring.pmc      23 Dec 2004 23:49:33 -0000      1.14
  +++ pystring.pmc      30 Dec 2004 11:46:38 -0000      1.15
  @@ -1,6 +1,6 @@
   /*
   Copyright: 2001-2003 The Perl Foundation.  All Rights Reserved.
  -$Id: pystring.pmc,v 1.14 2004/12/23 23:49:33 rubys Exp $
  +$Id: pystring.pmc,v 1.15 2004/12/30 11:46:38 rubys Exp $
   
   =head1 NAME
   
  @@ -25,6 +25,57 @@
   
   /*
   
  +=item C<PMC* "__getitem__"(PMC *self, PMC *index)>
  +
  +Returns the PMC value of the element at index C<key>.
  +
  +=cut
  +
  +*/
  +
  +    METHOD PMC* __getitem__(PMC *self, PMC *index) {
  +        return VTABLE_get_pmc_keyed(INTERP, self, index);
  +    }
  +
  +/*
  +
  +=item C<PMC* "__setitem__"(PMC *self, PMC *index, PMC *value)>
  +
  +Sets the PMC at element C<index> to C<*value>.
  +
  +=cut
  +
  +*/
  +
  +    METHOD void __setitem__(PMC *self, PMC *index, PMC *value) {
  +        VTABLE_set_pmc_keyed(INTERP, self, index, value);
  +    }
  +
  +/*
  +
  +=item C<PMC* "__new__"(PMC *class, PMC *source)>
  +
  +Create a new string
  +
  +=cut
  +
  +*/
  +
  +    METHOD PMC* __new__(PMC *class, PMC *source) {
  +        INTVAL argc = REG_INT(3);
  +
  +        PMC * ret = pmc_new(INTERP, PyBuiltin_PyInt);
  +
  +        if (argc > 1) {
  +            STRING *svalue = VTABLE_get_string(INTERP, source);
  +            VTABLE_set_string_native(INTERP, ret, svalue);
  +        }
  +
  +        return ret;
  +    }
  +
  +/*
  +
   =item C<void add(PMC *value, PMC *dest)>
   
   Concatenates C<*value> to the string and returns the result in C<*dest>.
  @@ -114,6 +165,20 @@
   
   /*
   
  +=item C<PMC *get_class()>
  +
  +Return the class of this object.
  +
  +=cut
  +
  +*/
  +
  +    PMC* get_class() {
  +        return PyBuiltin_PyString_class;
  +    }
  +
  +/*
  +
   =item C<PMC* get_iter (PMC *key)>
   
   Return a new iterator for this string.
  
  
  
  1.54      +1 -0      parrot/src/call_list.txt
  
  Index: call_list.txt
  ===================================================================
  RCS file: /cvs/public/parrot/src/call_list.txt,v
  retrieving revision 1.53
  retrieving revision 1.54
  diff -u -r1.53 -r1.54
  --- call_list.txt     28 Dec 2004 10:21:14 -0000      1.53
  +++ call_list.txt     30 Dec 2004 11:46:39 -0000      1.54
  @@ -256,6 +256,7 @@
   P    IOPP
   P    IOPPP
   v    IOPP
  +v    IOPPP
   P    IOPPPP
   P    IOPPPPP
   
  
  
  

Reply via email to