Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Goal call for 0.0.9

4 views
Skip to first unread message

Dan Sugalski

unread,
Sep 2, 2002, 9:46:42 AM9/2/02
to perl6-i...@perl.org
Here's a call for potential goals for the 0.0.9 release of parrot. My list:

*) Exceptions
*) initial PMC freeze/thaw API
*) Sub indicators in bytecode
*) On-the-fly bytecode section generation

Anyone got any others? We can get the list together and then
prioritize from there.
--
Dan

--------------------------------------"it's like this"-------------------
Dan Sugalski even samurai
d...@sidhe.org have teddy bears and even
teddy bears get drunk

Sean O'Rourke

unread,
Sep 2, 2002, 11:25:30 AM9/2/02
to Dan Sugalski, perl6-i...@perl.org
On Mon, 2 Sep 2002, Dan Sugalski wrote:

> Here's a call for potential goals for the 0.0.9 release of parrot. My list:
>
> *) Exceptions
> *) initial PMC freeze/thaw API
> *) Sub indicators in bytecode
> *) On-the-fly bytecode section generation

*) methods (in PASM and C)
*) implementation of some methods for the Perl classes
*) stashes

/s

Steve Fink

unread,
Sep 2, 2002, 2:15:17 PM9/2/02
to Sean O'Rourke, Dan Sugalski, perl6-i...@perl.org

*) Resolve the prompt finalization problem (good luck...)
*) PMC name, implementation cleanup
*) Filename, line number tracking

The second one requires more comment. Right now, we have a set of
language-independent PMCs (Array, Continuation, Coroutine, Key,
Pointer, etc.) and a set of Perl PMCs (PerlArray, PerlString, etc.).
But the exact methods implemented on each one are a little tangled,
and many of the Parrot PMCs refer to and create Perl PMCs on the fly.
For example, when you increment an nonexistent Array slot, it
automatically creates a PerlInt to hold the number. Similarly,
PerlUndef gets spontaneously created all over the place. Some of these
problems can probably be fixed by renaming PMCs (eg PerlUndef ->
Undef); others by making a generic base PMC and having the Perl PMC
inherit from it; and still others need to be rethought.

On a related note, we should probably have a test case that tries
every possible vtable entry for every PMC and makes sure that the
result makes sense (mostly meaning that things throw 'operation not
supported' type errors when appropriate.)

Nicholas Clark

unread,
Sep 2, 2002, 2:45:02 PM9/2/02
to Steve Fink, Sean O'Rourke, Dan Sugalski, perl6-i...@perl.org
On Mon, Sep 02, 2002 at 11:15:17AM -0700, Steve Fink wrote:
> On Mon, Sep 02, 2002 at 08:25:30AM -0700, Sean O'Rourke wrote:
> > On Mon, 2 Sep 2002, Dan Sugalski wrote:
> >
> > > Here's a call for potential goals for the 0.0.9 release of parrot. My list:
> > >
> > > *) Exceptions
> > > *) initial PMC freeze/thaw API
> > > *) Sub indicators in bytecode
> > > *) On-the-fly bytecode section generation
> >
> > *) methods (in PASM and C)
> > *) implementation of some methods for the Perl classes
> > *) stashes
>
> *) Resolve the prompt finalization problem (good luck...)
> *) PMC name, implementation cleanup
> *) Filename, line number tracking

*) Careful elimination of all compiler warnings, particularly on non x86
platforms, and for builds with non-default INTVAL size

This is going to need some care to work out why some warnings happen, and
find ways to re-order/re-pack/re-size structures to avoid both these gcc
warnings:

In file included from ../include/parrot/register.h:16,
from ../include/parrot/interpreter.h:42,
from ../include/parrot/parrot.h:160,
from perlhash.c:24:
.../include/parrot/string.h:59: warning: padding struct size to alignment boundary
In file included from ../include/parrot/interpreter.h:51,
from ../include/parrot/parrot.h:160,
from perlhash.c:24:
.../include/parrot/debug.h:53: warning: padding struct to align `value'

over all platforms. (which will be fun)

and I think

*) Rationalisation of how we make bytecode

I think that the assembler is slower than it could be. I feel that the
"correct" solution is a perl front end talking to a C bytecode generation
library. I feel the library ought to be common, so that it would be possible
for imcc (or anything else) to use the bytecode generation library direct,
rather than having to emit PASM only for it to be re-interpreted.

Nicholas Clark
--
Even better than the real thing: http://nms-cgi.sourceforge.net/

Andy Dougherty

unread,
Sep 2, 2002, 4:25:08 PM9/2/02
to Nicholas Clark, Dan Sugalski, Perl6 Internals
On Mon, 2 Sep 2002, Nicholas Clark wrote:

> *) Careful elimination of all compiler warnings, particularly on non x86
> platforms, and for builds with non-default INTVAL size

I agree here. There are still *lots* of warnings. I've slowly whittled
away at them, but there are lots to go. Fixing some of them might also
help re-claim the Tru64 systems, which are currently failing with
unaligned access errors in the tinderbox.

Similarly, it may be a good time to revisit our "core" platforms and see
if they all work. A lot of the library stuff, especially the shared
library stuff, is rather dlopen-specific. I suspect the perl6 stuff
probably doesn't work now with AIX, HP/UX, OS/2, Unicos, or VMS, to name
just a few. I'd be very happy to be proven wrong.

It may be that 0.0.9 isn't the time for such portability issues (which are
*hard*). That's ok, too, but I thought I'd raise the issue.

Andy Dougherty doug...@lafayette.edu

Andy Dougherty

unread,
Sep 9, 2002, 11:39:45 AM9/9/02
to H.Merijn Brand, Perl6 Internals
On Mon, 9 Sep 2002, H.Merijn Brand wrote:

> On Mon 02 Sep 2002 22:25, Andy Dougherty <doug...@lafayette.edu> wrote:
> >
> > Similarly, it may be a good time to revisit our "core" platforms and see
> > if they all work. A lot of the library stuff, especially the shared
> > library stuff, is rather dlopen-specific. I suspect the perl6 stuff
> > probably doesn't work now with AIX, HP/UX, OS/2, Unicos, or VMS, to name
> > just a few. I'd be very happy to be proven wrong.
> >

> Two reports for HP-UX 11.00

> HP C-ANSI-C

(ok, except for intlist.t failure, which is addressed in my followup to
bug id perl #17084)

and GNU gcc-3.2

(ok, except for lots of padding/alignment warnings).

Thanks for running the tests. If you're really ambitious, you could

cd languages/perl6
make

and see what happens, but unless you've got bison and flex installed,
don't bother (I submitted a patch to pregenerate the files, but it's
currently stuck in the queue with other (mostly unrelated) imcc isues.)

Now why that isn't part of the default build, I don't know.

--
Andy Dougherty doug...@lafayette.edu

H.Merijn Brand

unread,
Sep 9, 2002, 11:58:10 AM9/9/02
to Andy Dougherty, Perl6 Internals
On Mon 09 Sep 2002 17:39, Andy Dougherty <doug...@lafayette.edu> wrote:
> On Mon, 9 Sep 2002, H.Merijn Brand wrote:
>
> > On Mon 02 Sep 2002 22:25, Andy Dougherty <doug...@lafayette.edu> wrote:
> > >
> > > Similarly, it may be a good time to revisit our "core" platforms and see
> > > if they all work. A lot of the library stuff, especially the shared
> > > library stuff, is rather dlopen-specific. I suspect the perl6 stuff
> > > probably doesn't work now with AIX, HP/UX, OS/2, Unicos, or VMS, to name
> > > just a few. I'd be very happy to be proven wrong.
> > >
>
> > Two reports for HP-UX 11.00
>
> > HP C-ANSI-C
>
> (ok, except for intlist.t failure, which is addressed in my followup to
> bug id perl #17084)
>
> and GNU gcc-3.2
>
> (ok, except for lots of padding/alignment warnings).
>
> Thanks for running the tests. If you're really ambitious, you could

I'm not, you are :)

> cd languages/perl6
> make

For gcc (which was the last I used) I got :(

> and see what happens, but unless you've got bison and flex installed,
> don't bother (I submitted a patch to pregenerate the files, but it's
> currently stuck in the queue with other (mostly unrelated) imcc isues.)
>
> Now why that isn't part of the default build, I don't know.

bison and flex installed:
a5:/pro/3gl/CPAN/parrot/languages/perl6 108 > bison --version
bison (GNU Bison) 1.34

Copyright 1984, 1986, 1989, 1992, 2000, 2001, 2002
Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
a5:/pro/3gl/CPAN/parrot/languages/perl6 109 > flex --version
flex version 2.5.4
a5:/pro/3gl/CPAN/parrot/languages/perl6 110 >


Script started on Mon Sep 9 17:41:24 2002
a5:/pro/3gl/CPAN/parrot/languages/perl6 101 > make
cd ../imcc && make
make[1]: Entering directory `/pro/3gl/CPAN/parrot/languages/imcc'
bison -v -y -d -o imcparser.c imcc.y
gcc -mpa-risc-2-0 -D_HPUX_SOURCE -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -I../../include -o imcparser.o -c imcparser.c
flex imcc.l
gcc -mpa-risc-2-0 -D_HPUX_SOURCE -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -I../../include -o imclexer.o -c imclexer.c
gcc -mpa-risc-2-0 -D_HPUX_SOURCE -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -I../../include -o imc.o -c imc.c
gcc -mpa-risc-2-0 -D_HPUX_SOURCE -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -I../../include -o stacks.o -c stacks.c
gcc -mpa-risc-2-0 -D_HPUX_SOURCE -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -I../../include -o symreg.o -c symreg.c
gcc -mpa-risc-2-0 -D_HPUX_SOURCE -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -I../../include -o instructions.o -c instructions.c
gcc -mpa-risc-2-0 -D_HPUX_SOURCE -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -I../../include -o cfg.o -c cfg.c
gcc -mpa-risc-2-0 -D_HPUX_SOURCE -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -I../../include -o sets.o -c sets.c
gcc -mpa-risc-2-0 -D_HPUX_SOURCE -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -I../../include -o debug.o -c debug.c
gcc -mpa-risc-2-0 -D_HPUX_SOURCE -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -I../../include -o anyop.o -c anyop.c
/usr/bin/ld -o imcc imcparser.o imclexer.o imc.o stacks.o symreg.o instructions.o cfg.o sets.o debug.o anyop.o ../../platform.o -lcl -lpthread -lnsl -lnm -lmalloc -ldld -lm -lndir -lcrypt -lsec
/usr/bin/ld: Unsatisfied symbols:
memset (first referenced in imcparser.o) (code)
__ftello64 (first referenced in imcparser.o) (code)
memcpy (first referenced in imcparser.o) (code)
abort (first referenced in imcparser.o) (code)
strstr (first referenced in imclexer.o) (code)
free (first referenced in imcparser.o) (code)
time (first referenced in ../../platform.o) (code)
__getrlimit64 (first referenced in imcparser.o) (code)
__iob (first referenced in imcparser.o) (data)
__assert (first referenced in imcparser.o) (code)
__tmpfile64 (first referenced in imcparser.o) (code)
isatty (first referenced in imclexer.o) (code)
__lseek64 (first referenced in imcparser.o) (code)
__fopen64 (first referenced in imcparser.o) (code)
printf (first referenced in instructions.o) (code)
strlen (first referenced in imcparser.o) (code)
gettimeofday (first referenced in ../../platform.o) (code)
__filbuf (first referenced in imclexer.o) (code)
__prealloc64 (first referenced in imcparser.o) (code)
__stat64 (first referenced in imcparser.o) (code)
__open64 (first referenced in imcparser.o) (code)
strdup (first referenced in anyop.o) (code)
strncmp (first referenced in instructions.o) (code)
__main (first referenced in imcparser.o) (code)
__ftruncate64 (first referenced in imcparser.o) (code)
fwrite (first referenced in imclexer.o) (code)
__freopen64 (first referenced in imcparser.o) (code)
__truncate64 (first referenced in imcparser.o) (code)
__lstat64 (first referenced in imcparser.o) (code)
strcat (first referenced in imcparser.o) (code)
__fseeko64 (first referenced in imcparser.o) (code)
fileno (first referenced in imclexer.o) (code)
__setrlimit64 (first referenced in imcparser.o) (code)
realloc (first referenced in imclexer.o) (code)
exit (first referenced in imcparser.o) (code)
__creat64 (first referenced in imcparser.o) (code)
fprintf (first referenced in imcparser.o) (code)
fclose (first referenced in imcparser.o) (code)
tolower (first referenced in imcparser.o) (code)
__mmap64 (first referenced in imcparser.o) (code)
calloc (first referenced in imc.o) (code)
strcmp (first referenced in imcparser.o) (code)
$global$ (first referenced in imcparser.o) (data)
strcpy (first referenced in imcparser.o) (code)
sprintf (first referenced in imcparser.o) (code)
sleep (first referenced in ../../platform.o) (code)
__fsetpos64 (first referenced in imcparser.o) (code)
__fstat64 (first referenced in imcparser.o) (code)
malloc (first referenced in imclexer.o) (code)
__fgetpos64 (first referenced in imcparser.o) (code)
__lockf64 (first referenced in imcparser.o) (code)
fread (first referenced in imclexer.o) (code)
/usr/bin/ld: Unsatisfied symbols:
$global$ (data) (probably missing /usr/ccs/lib/crt0.o)
make[1]: *** [imcc] Error 1
make[1]: Leaving directory `/pro/3gl/CPAN/parrot/languages/imcc'
make: *** [imcc] Error 2
a5:/pro/3gl/CPAN/parrot/languages/perl6 102 >

Grrr. Manual intervention required ...

a5:/pro/3gl/CPAN/parrot/languages/imcc 117 > gcc -o imcc imcparser.o imclexer.o imc.o stacks.o symreg.o instructions.o cfg.o sets.o debug.o anyop.o ../../platform.o -lcl -lpthread -lnsl -lnm -lmalloc -ldld -lm -lndir -lcrypt -lsec
a5:/pro/3gl/CPAN/parrot/languages/imcc 118 >


a5:/pro/3gl/CPAN/parrot/languages/perl6 119 > make
cd ../imcc && make
make[1]: Entering directory `/pro/3gl/CPAN/parrot/languages/imcc'
cd ../.. && make shared && rm -f parrot && make
make[2]: Entering directory `/pro/3gl/CPAN/parrot'
cd classes && make && cd ..
make[3]: Entering directory `/pro/3gl/CPAN/parrot/classes'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/pro/3gl/CPAN/parrot/classes'
/usr/bin/ld -shared -L/usr/local/lib -o blib/lib/libparrot.so exceptions.o global_setup.o interpreter.o parrot.o register.o core_ops.o core_ops_prederef.o memory.o packfile.o stacks.o string.o sub.o encoding.o chartype.o runops_cores.o trace.o pmc.o key.o hash.o core_pmcs.o platform.o resources.o rx.o rxstacks.o intlist.o embed.o warnings.o misc.o core_ops_cg.o packout.o byteorder.o debug.o smallobject.o headers.o dod.o method_util.o io/io.o io/io_buf.o io/io_unix.o io/io_win32.o io/io_stdio.o classes/array.o classes/boolean.o classes/continuation.o classes/coroutine.o classes/csub.o classes/default.o classes/intlist.o classes/intqueue.o classes/key.o classes/multiarray.o classes/perlarray.o classes/perlhash.o classes/perlint.o classes/perlnum.o classes/perlstring.o classes/perlundef.o classes/pointer.o classes/sub.o encodings/singlebyte.o encodings/utf8.o encodings/utf16.o encodings/utf32.o chartypes/unicode.o chartypes/usascii.o -lcl -lpthread -lnsl -lnm -lmalloc -ldld -!
lm -lndir -lcrypt -lsec
/usr/bin/ld: (Warning) Can't hide symbol "ared"
/usr/bin/ld: Unsatisfied symbols:
memset (first referenced in interpreter.o) (code)
__ftello64 (first referenced in exceptions.o) (code)
strerror (first referenced in core_ops.o) (code)
memcpy (first referenced in register.o) (code)
abort (first referenced in core_ops.o) (code)
:
:
:
__lockf64 (first referenced in exceptions.o) (code)
memcmp (first referenced in classes/array.o) (code)
__SB_masks (first referenced in debug.o) (data)
/usr/bin/ld: Unsatisfied symbols:
$global$ (data) (probably missing /usr/ccs/lib/crt0.o)
make[2]: *** [blib/lib/libparrot.so] Error 1
make[2]: Leaving directory `/pro/3gl/CPAN/parrot'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/pro/3gl/CPAN/parrot/languages/imcc'
make: *** [imcc] Error 2
a5:/pro/3gl/CPAN/parrot/languages/perl6 120 >

Again, my fingers have to do the right thing:

a5:/pro/3gl/CPAN/parrot 131 > gcc -Wl,-shared -L/usr/local/lib -o
blib/lib/libparrot.so exceptions.o global_setup.o interpreter.o parrot.o
register.o core_ops.o core_ops_prederef.o memory.o packfile.o stacks.o
string.o sub.o encoding.o chartype.o runops_cores.o trace.o pmc.o key.o hash.o
core_pmcs.o platform.o resources.o rx.o rxstacks.o intlist.o embed.o
warnings.o misc.o core_ops_cg.o packout.o byteorder.o debug.o smallobject.o
headers.o dod.o method_util.o io/io.o io/io_buf.o io/io_unix.o io/io_win32.o
io/io_stdio.o classes/array.o classes/boolean.o classes/continuation.o
classes/coroutine.o classes/csub.o classes/default.o classes/intlist.o
classes/intqueue.o classes/key.o classes/multiarray.o classes/perlarray.o
classes/perlhash.o classes/perlint.o classes/perlnum.o classes/perlstring.o
classes/perlundef.o classes/pointer.o classes/sub.o encodings/singlebyte.o
encodings/utf8.o encodings/utf16.o encodings/utf32.o chartypes/unicode.o
chartypes/usascii.o -lcl -lpthread -lnsl -lnm -lmalloc -ldld -lm -lndir
-lcrypt -lsec
/usr/ccs/bin/ld: (Warning) Can't hide symbol "ared"
/usr/ccs/bin/ld: Unsatisfied symbols:
main (Not referenced yet! Probably due to -u option)
collect2: ld returned 1 exit status
a5:/pro/3gl/CPAN/parrot 132 >

Welll, I /knew/ that, but I just follow the basic rules, now for the correct
HPld syntax:

a5:/pro/3gl/CPAN/parrot 133 > gcc -Wl,-b -L/usr/local/lib -o
blib/lib/libparrot.so exceptions.o global_setup.o interpreter.o parrot.o
register.o core_ops.o core_ops_prederef.o memory.o packfile.o stacks.o
string.o sub.o encoding.o chartype.o runops_cores.o trace.o pmc.o key.o hash.o
core_pmcs.o platform.o resources.o rx.o rxstacks.o intlist.o embed.o
warnings.o misc.o core_ops_cg.o packout.o byteorder.o debug.o smallobject.o
headers.o dod.o method_util.o io/io.o io/io_buf.o io/io_unix.o io/io_win32.o
io/io_stdio.o classes/array.o classes/boolean.o classes/continuation.o
classes/coroutine.o classes/csub.o classes/default.o classes/intlist.o
classes/intqueue.o classes/key.o classes/multiarray.o classes/perlarray.o
classes/perlhash.o classes/perlint.o classes/perlnum.o classes/perlstring.o
classes/perlundef.o classes/pointer.o classes/sub.o encodings/singlebyte.o
encodings/utf8.o encodings/utf16.o encodings/utf32.o chartypes/unicode.o
chartypes/usascii.o -lcl -lpthread -lnsl -lnm -lmalloc -ldld -lm -lndir
-lcrypt -lsec
/usr/ccs/bin/ld: DP relative code in file /usr/ccs/lib/crt0.o - shared library must be position
independent. Use +z or +Z to recompile.
collect2: ld returned 1 exit status
a5:/pro/3gl/CPAN/parrot 134 >

Back to you guys.

[ OK, I'll be nice. Here's a try for the default HPc situation ]

a5:/pro/3gl/CPAN/parrot/languages/perl6 141 > make
cd ../imcc && make
make[1]: Entering directory `/pro/3gl/CPAN/parrot/languages/imcc'
bison -v -y -d -o imcparser.c imcc.y
cc -Ae -DDEBUGGING -D_HPUX_SOURCE -Wl,+vnocompatwarnings -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -I../../include -o imcparser.o -c imcparser.c
flex imcc.l
cc -Ae -DDEBUGGING -D_HPUX_SOURCE -Wl,+vnocompatwarnings -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -I../../include -o imclexer.o -c imclexer.c
cc -Ae -DDEBUGGING -D_HPUX_SOURCE -Wl,+vnocompatwarnings -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -I../../include -o imc.o -c imc.c
cc -Ae -DDEBUGGING -D_HPUX_SOURCE -Wl,+vnocompatwarnings -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -I../../include -o stacks.o -c stacks.c
cc -Ae -DDEBUGGING -D_HPUX_SOURCE -Wl,+vnocompatwarnings -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -I../../include -o symreg.o -c symreg.c
cc -Ae -DDEBUGGING -D_HPUX_SOURCE -Wl,+vnocompatwarnings -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -I../../include -o instructions.o -c instructions.c
cc -Ae -DDEBUGGING -D_HPUX_SOURCE -Wl,+vnocompatwarnings -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -I../../include -o cfg.o -c cfg.c
cc -Ae -DDEBUGGING -D_HPUX_SOURCE -Wl,+vnocompatwarnings -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -I../../include -o sets.o -c sets.c
cc -Ae -DDEBUGGING -D_HPUX_SOURCE -Wl,+vnocompatwarnings -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -I../../include -o debug.o -c debug.c
cc -Ae -DDEBUGGING -D_HPUX_SOURCE -Wl,+vnocompatwarnings -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -I../../include -o anyop.o -c anyop.c
/usr/bin/ld -o imcc imcparser.o imclexer.o imc.o stacks.o symreg.o instructions.o cfg.o sets.o debug.o anyop.o ../../platform.o -lcl -lpthread -lnsl -lnm -lmalloc -ldld -lm -lndir -lcrypt -lsec
/usr/bin/ld: Unsatisfied symbols:
memset (first referenced in imcparser.o) (code)
__ftello64 (first referenced in imcparser.o) (code)
abort (first referenced in imcparser.o) (code)


Ahh, well. You see: np +Z, no +z => no shared :)

--
H.Merijn Brand Amsterdam Perl Mongers (http://amsterdam.pm.org/)
using perl-5.6.1, 5.8.0 & 633 on HP-UX 10.20 & 11.00, AIX 4.2, AIX 4.3,
WinNT 4, Win2K pro & WinCE 2.11. Smoking perl CORE: smo...@perl.org
http://archives.develooper.com/daily...@perl.org/ per...@perl.org
send smoke reports to: smokers...@perl.org, QA: http://qa.perl.org


Sean O'Rourke

unread,
Sep 9, 2002, 1:50:16 PM9/9/02
to Andy Dougherty, H.Merijn Brand, Perl6 Internals
On Mon, 9 Sep 2002, Andy Dougherty wrote:
> Thanks for running the tests. If you're really ambitious, you could
>
> cd languages/perl6
> make
>
> and see what happens, but unless you've got bison and flex installed,
> don't bother (I submitted a patch to pregenerate the files, but it's
> currently stuck in the queue with other (mostly unrelated) imcc isues.)
>
> Now why that isn't part of the default build, I don't know.

None of the stuff in languages/ is part of the default build, and I think
it should stay that way. It seems like bad form to, by default, build
parts of a package that the user may not want to use.

/s

Andy Dougherty

unread,
Sep 9, 2002, 3:02:55 PM9/9/02
to Sean O'Rourke, H.Merijn Brand, Perl6 Internals
On Mon, 9 Sep 2002, Sean O'Rourke wrote:

> On Mon, 9 Sep 2002, Andy Dougherty wrote:

> > Now why that [languages] isn't part of the default build, I don't


> > know.

> None of the stuff in languages/ is part of the default build, and I think
> it should stay that way. It seems like bad form to, by default, build
> parts of a package that the user may not want to use.

Yes, I agree in general. But the down side is that it's neither built nor
tested by most users (including the tinderboxes!). On balance, I think we
should use bad form and build parts that users may not want to use in
order to give them a workout.

--
Andy Dougherty doug...@lafayette.edu

Markus Laire

unread,
Sep 9, 2002, 3:29:48 PM9/9/02
to Perl6 Internals
On 9 Sep 2002 at 15:02, Andy Dougherty wrote:

> On Mon, 9 Sep 2002, Sean O'Rourke wrote:
>
> > None of the stuff in languages/ is part of the default build, and I think
> > it should stay that way. It seems like bad form to, by default, build
> > parts of a package that the user may not want to use.
>
> Yes, I agree in general. But the down side is that it's neither built nor
> tested by most users (including the tinderboxes!). On balance, I think we
> should use bad form and build parts that users may not want to use in
> order to give them a workout.

IMHO it's fine to build few extra parts by default to test them while
we are still developing. Those parts can always be removed for
release versions.

At least perl6 (and imcc which it needs) could be added to default
build, and perhaps also scheme if it's going to be first fully
working language.

--
Markus Laire 'malaire' <markus...@nic.fi>


Nicholas Clark

unread,
Sep 9, 2002, 3:49:19 PM9/9/02
to Andy Dougherty, Sean O'Rourke, H.Merijn Brand, Perl6 Internals

For development and testing, I believe that we should exercise (and then
exorcise) all the bugs in all the languages we can find.

I guess it should be a configuration option of what to build, defaulting to
everything portable.

Andy Dougherty

unread,
Sep 9, 2002, 4:22:29 PM9/9/02
to H.Merijn Brand, Perl6 Internals
On Mon, 9 Sep 2002, H.Merijn Brand wrote:

[HP-UX 11.00, GNU gcc-3.2]

> > cd languages/perl6
> > make
>
> For gcc (which was the last I used) I got :(
>

> /usr/bin/ld -o imcc imcparser.o imclexer.o imc.o stacks.o symreg.o instructions.o cfg.o sets.o debug.o anyop.o ../../platform.o -lcl -lpthread -lnsl -lnm -lmalloc -ldld -lm -lndir -lcrypt -lsec

(My fault. imcc needs to be built with $(LINK), not $(LD). I'll send a
patch separately.)

> /usr/bin/ld -shared -L/usr/local/lib -o blib/lib/libparrot.so exceptions.o global_setup.o interpreter.o parrot.o register.o core_ops.o core_ops_prederef.o memory.o packfile.o stacks.o string.o sub.o encoding.o chartype.o runops_cores.o trace.o pmc.o key.o hash.o core_pmcs.o platform.o resources.o rx.o rxstacks.o intlist.o embed.o warnings.o misc.o core_ops_cg.o packout.o byteorder.o debug.o smallobject.o headers.o dod.o method_util.o io/io.o io/io_buf.o io/io_unix.o io/io_win32.o io/io_stdio.o classes/array.o classes/boolean.o classes/continuation.o classes/coroutine.o classes/csub.o classes/default.o classes/intlist.o classes/intqueue.o classes/key.o classes/multiarray.o classes/perlarray.o classes/perlhash.o classes/perlint.o classes/perlnum.o classes/perlstring.o classes/perlundef.o classes/pointer.o classes/sub.o encodings/singlebyte.o encodings/utf8.o encodings/utf16.o encodings/utf32.o chartypes/unicode.o chartypes/usascii.o -lcl -lpthread -lnsl -lnm -lmalloc -ldld!


-!
> lm -lndir -lcrypt -lsec
> /usr/bin/ld: (Warning) Can't hide symbol "ared"
> /usr/bin/ld: Unsatisfied symbols:
> memset (first referenced in interpreter.o) (code)
> __ftello64 (first referenced in exceptions.o) (code)
> strerror (first referenced in core_ops.o) (code)
> memcpy (first referenced in register.o) (code)
> abort (first referenced in core_ops.o) (code)
> :
> :
> :

> Again, my fingers have to do the right thing:

Soon, parrot will use perl5's $Config{ld} and $Config{lddlflags} which are
variables designed for just this purpose of building shared libraries.

> /usr/ccs/bin/ld: DP relative code in file /usr/ccs/lib/crt0.o - shared library must be position
> independent. Use +z or +Z to recompile.

This is a bigger (but very real!) problem. Building a shared library is
not simply repackaging the existing objects. If we want to build a shared
library, we should re-compile the components with -fpic or equivalent. The
actual variable we need is perl5's $Config{cccdlflags}.

> Back to you guys.

I'd like to hand this one off to someone who understands why we have to
build a shared library in the first place and what, eventually, we might
have to do with it. (For example, what's the plan for platforms that
can't do dynamic loading?)

--
Andy Dougherty doug...@lafayette.edu
Dept. of Physics
Lafayette College, Easton PA 18042

Will Coleda

unread,
Sep 9, 2002, 10:50:01 PM9/9/02
to Perl6 Internals
Any particular reason not to have a specific make target for the
tinderboxen?

--
Will "Coke" Coleda

Andy Dougherty

unread,
Sep 10, 2002, 7:55:05 AM9/10/02
to wi...@coleda.com, Perl6 Internals
On Mon, 9 Sep 2002, Will Coleda wrote:

> Nicholas Clark wrote:
> > On Mon, Sep 09, 2002 at 03:02:55PM -0400, Andy Dougherty wrote:

> > For development and testing, I believe that we should exercise (and then
> > exorcise) all the bugs in all the languages we can find.

> Any particular reason not to have a specific make target for the
> tinderboxen?

Yes. Most folks don't run a tinderbox, and not everyone pays attention to
the ones that are running. Further, the tinderbox only samples a small
subset of the target platforms.

--
Andy Dougherty doug...@lafayette.edu

H.Merijn Brand

unread,
Sep 23, 2002, 1:50:39 PM9/23/02
to Andy Dougherty, Perl6 Internals
On Mon 09 Sep 2002 22:22, Andy Dougherty <doug...@lafayette.edu> wrote:
> On Mon, 9 Sep 2002, H.Merijn Brand wrote:
>
> [HP-UX 11.00, GNU gcc-3.2]
>
> > > cd languages/perl6
> > > make
> >
> > For gcc (which was the last I used) I got :(
> >
> > /usr/bin/ld -o imcc imcparser.o imclexer.o imc.o stacks.o symreg.o instructions.o cfg.o sets.o debug.o anyop.o ../../platform.o -lcl -lpthread -lnsl -lnm -lmalloc -ldld -lm -lndir -lcrypt -lsec
>
> (My fault. imcc needs to be built with $(LINK), not $(LD). I'll send a
> patch separately.)

HP-UX 11.00 w/ HP C-ANSI-C and perl-5.8.0+defined-or
[ Which does *not* support -Wall and -Wno-unused ]

a5:/pro/3gl/CPAN/parrot 103 > cat .timestamp
1032793212
Mon Sep 23 15:00:12 2002 UTC

(time of this cvs update)
a5:/pro/3gl/CPAN/parrot 104 >

t/src/basic.........ok
t/src/intlist.......ok
t/op/basic..........ok
t/op/bitwise........ok
t/op/debuginfo......ok
t/op/gc.............ok
t/op/globals........ok
t/op/hacks..........ok
t/op/ifunless.......ok
t/op/info...........ok
t/op/integer........ok
t/op/interp.........ok
t/op/lexicals.......ok
t/op/macro..........ok
1/13 skipped: Await exceptions
t/op/number.........ok
t/op/rx.............ok
1/23 skipped: various reasons
t/op/stacks.........ok
1/35 skipped: various reasons
t/op/string.........ok
t/op/time...........ok
t/op/trans..........ok
t/pmc/array.........ok
t/pmc/boolean.......ok
t/pmc/intlist.......ok
t/pmc/perlarray.....ok
t/pmc/perlhash......ok
t/pmc/perlstring....ok
1/8 skipped: various reasons
t/pmc/pmc...........ok
1/68 skipped: various reasons
t/pmc/sub...........ok
All tests successful, 5 subtests skipped.
Files=28, Tests=446, 398 wallclock secs (345.42 cusr + 20.78 csys = 366.20 CPU)
a5:/pro/3gl/CPAN/parrot 115 > cd languages/perl6
a5:/pro/3gl/CPAN/parrot/languages/perl6 116 > make


cd ../imcc && make
make[1]: Entering directory `/pro/3gl/CPAN/parrot/languages/imcc'
bison -v -y -d -o imcparser.c imcc.y

imcc.y:439: warning: previous rule lacks an ending `;'
imcc.y:613: warning: previous rule lacks an ending `;'
cc -Ae -DDEBUGGING -D_HPUX_SOURCE -Wl,+vnocompatwarnings -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -I../../include -Wall -Wno-unused -o imcparser.o -c imcparser.c
cc: warning 422: Unknown option "-Wno-unused" ignored.
cc: "imcc.y", line 431: error 1000: Unexpected symbol: "}".
cc: panic 2017: Cannot recover from earlier errors, terminating.
make[1]: *** [imcparser.o] Error 1


make[1]: Leaving directory `/pro/3gl/CPAN/parrot/languages/imcc'
make: *** [imcc] Error 2

a5:/pro/3gl/CPAN/parrot/languages/perl6 117 >

use Coffee::Simple Sugar => 2;
given $tuits {
when "low" { die "sleep deprevation" }
when Test::Smoke { rsync () }
when /round/ { system "make test" }
CATCH {
use Beer::More no_plan;

0 new messages