Thanks,
leo
> Please help me fill out the blanks by sending or committing patches.
> Please make sure to have the latest and best Parrot from CVS.
I have a platform not listed. Where should I look for the appropriate
information?
-- c
> Please help me fill out the blanks by sending or committing patches.
> Please make sure to have the latest and best Parrot from CVS.
>
Earlier today you popped a new file in CVS called PLATFORMS. Unfortunately,
there is also a directory there called platforms. Win32 (and other
platforms) aren't case sensitive; needless to say, my CVS client was more
than slightly confused. ;)
As the platforms directory seems pretty redundant, I'd say pull that and
keep the file. Platforms stuff seems to be put in config now. Or maybe it
has a secret future usage that I don't know about (it was empty as I
remember).
Thanks,
Jonathan
>> Please help me fill out the blanks by sending or committing patches.
>> Please make sure to have the latest and best Parrot from CVS.
> I have a platform not listed.
Then lets add it. The list is for sure not complete.
> ... Where should I look for the appropriate
> information?
Create a platform name similar to existing ones. F<./myconfig> and the
output from Configure.pl + test results/skips should provide the
information to fill the line :)
> -- c
leo
>> Please help me fill out the blanks by sending or committing patches.
>> Please make sure to have the latest and best Parrot from CVS.
>>
> Earlier today you popped a new file in CVS called PLATFORMS. Unfortunately,
> there is also a directory there called platforms.
I don't have a directory named platforms in parrot root. You seem to be
missing the -P switch to cvs update.
$ find . -name platforms
$ find . -iname platforms
./PLATFORMS
> Jonathan
leo
cvs [update aborted]: could not chdir to platforms: Not a directory
Same problem even if I do a new check out.
cvs [checkout aborted]: could not chdir to parrot/platforms: Not a
directory
There is no local platforms directory, yet CVS wants to go to it, so I
assume the problem is coming from the server end.
There is still a platforms directory on the server.
http://cvs.perl.org/cvsweb/parrot/platforms/
Mike
--
Will "Coke" Coleda will at coleda
dot com
> > ... Where should I look for the appropriate
> > information?
>
> Create a platform name similar to existing ones. F<./myconfig> and the
> output from Configure.pl + test results/skips should provide the
> information to fill the line :)
I think this is right. I don't see anything which indicates CGoto
support, and I'm guessing at thread and signal support since two of the
tests ran in each, though the others all skipped.
Linux x86 with gcc-3.3.2 also seems to work correctly.
-- c
> On Mon, 2004-02-23 at 11:00, Leopold Toetsch wrote:
>>
[ patch ]
Thanks applied.
> I think this is right. I don't see anything which indicates CGoto
> support,
when core_ops_cg.c gets compiled, CGoto is enabled.
> ... and I'm guessing at thread and signal support since two of the
> tests ran in each, though the others all skipped.
t/pmc/threads.t
...
if ($^O eq 'linux' or $^O eq 'darwin') {
plan tests => 11;
We AFAIK don't have a config variable that states "threads are ok", so
platforms are hardcoded currently.
> Linux x86 with gcc-3.3.2 also seems to work correctly.
Yep.
>
> -- c
leo
After a bit of self-education on the CVS FAQ, I've come to the
conclusion that "renaming" (delete/add) PLATFORMS to PLATFORMS.txt is
the best way to solve this.
Am I right or wrong? Let those with greater knowledge speak...
Mike
$ cvs remove -f platforms
cvs server: Removing platforms
cvs [server aborted]: could not chdir to platforms: No such file or directory
$ touch platforms
$ cvs add platforms
cvs server: cannot add file `platforms' since the directory
cvs server: `/cvs/public/parrot/platforms' already exists in the repository
cvs [server aborted]: illegal filename overlap
$ cvs remove -f platforms
cvs server: Removing platforms
cvs [server aborted]: could not chdir to platforms: No such file or directory
$root/platforms did exist some time ago, but there seem to be still trails
of it in CVS/*
> After a bit of self-education on the CVS FAQ, I've come to the
> conclusion that "renaming" (delete/add) PLATFORMS to PLATFORMS.txt is
> the best way to solve this.
Better it get fixed in CVS. There could be more errors of this kind.
> Mike
leo
Argghh:
$ mkdir platforms
$ cvs add platforms
Directory /cvs/public/parrot/platforms added to the repository
$ cvs ci -m"test" platforms
cvs commit: Examining platforms
$ cvs remove -f platforms
cvs server: Removing platforms
$ cvs ci -m"test" platforms
cvs commit: Examining platforms
Sh..
leo
Does the following command work?
$ cvs co '!parrot/platforms' parrot
# the order should be preserved.
>Mike
Arvindh
__________________________________
Do you Yahoo!?
Yahoo! Mail SpamGuard - Read only the mail you want.
http://antispam.yahoo.com/tools
> Does the following command work?
>
> $ cvs co '!parrot/platforms' parrot
> # the order should be preserved.
on tcsh it gives me
cvs co '!parrot/platforms' parrot
tcsh: parrot/platforms: Event not found.
but on sh it did seem to do the trick.
cvs co '!parrot/platforms' parrot
? parrot/docs/html
U parrot/include/parrot/packfile.h
U parrot/pf/pf_items.c
U parrot/src/packfile.c
M parrot/src/stack_common.c
M parrot/types/bignum.c
Many thanks.
Mike
this works for me on win32
--jerry
**************************************************************************
This e-mail and any files transmitted with it may contain privileged or
confidential information. It is solely for use by the individual for whom
it is intended, even if addressed incorrectly. If you received this e-mail
in error, please notify the sender; do not disclose, copy, distribute, or
take any action in reliance on the contents of this information; and delete
it from your system. Any other use of this e-mail is prohibited. Thank you
for your compliance.
cvs co '\!parrot/platforms' parrot
Mike
on -P, CVS prunes _empty_ directories only on its way
out (having built all the directories before that).
So -P fails in our case.
a) to avoid the inconvenience of typing the above
command (with the bang sequence properly escaped) and
b) to fix the problem without _renaming_ anything,
the following lines may be added to CVSROOT/modules:
t -d parrot parrot
parrot -a !parrot/platforms t
I tried to reduce them to a single line entry,
but the closest I could get is
parrot -a !./parrot/platforms ./parrot
The (minor ?) problem with the single line version is,
when the parrot module is checked out, the current
directory effectively becomes a CVS working directory.
Arvindh
Confused. What would you like me to do?
Also.
cvs update -dP should work just fine for this.
at least it does for me. Unless -P doesn't work properly on
case-insensitive filesystems.
-R
Can you delete the directory entirely from CVS?
>Also.
>
>cvs update -dP should work just fine for this.
>
>at least it does for me. Unless -P doesn't work properly on
>case-insensitive filesystems.
It doesn't work properly for this in case-insensitive file systems.
It tries doing directory things with platforms, which is at that
point PLATFORMS, which isn't at all a directory, and CVS dies with a
"platforms not a directory" error.
--
Dan
--------------------------------------"it's like this"-------------------
Dan Sugalski even samurai
d...@sidhe.org have teddy bears and even
teddy bears get drunk
*POOF*
-R
Still a lot of platforms missing. Please ...
:r PLATFORMS
Parrot-0.0.999 was reported to compile and run tests successfuly on these
platforms:
Platform B8 Runloops Feature Compile Tests
CGoto JIT EXEC Threads Signals
---------------------------------------------------------------------
aix - Y - Y - Y Y
darwin
freebsd
hpux
?-ia64
irix6.5 Y Y Y/2
linux-amd64 8
linux-ppc-gcc3.2.3 B Y Y Y Y Y Y
linux-x86-gcc2.95.2 Y Y Y Y Y Y Y
linux-x86-gcc3.3.3 Y Y Y Y Y Y Y
openbsd Y Y/5 Y Y - Y Y
os2
solaris
tru64 8
vms
win32-bcc
win32-cygwin
win32-mingw
win32-msvc
- ... no
Y ... yes
Y/n ... tests with n failures
Platform is "OS-processor-compiler" or a unique shortcut.
B8 are Processor flags
B ... Processor is big endian
8 ... opcode_t is 8 byte, i.e. a 64 bit machine
CGoto ... CGoto runloop is supported
JIT ... JIT core is supported
EXEC ... compiling to native executables is supported
Threads . Parrot is multi-threaded
Signals . Parrot catches kind of a SIGINT (program termination) signal
Thanks,
leo
> Here (and attached) is summary of the various make testX_imcc reports
> plus the myconfig information.
Can you please run all tests:
$ make test # or nmake
$ make testj
$ make testC
...
> Summary of my parrot 0.0.13 configuration:
> Compiler:
> cc='cl',
Could you please add some version information for 'cl'.
I've included preliminary results in PLATFORMS.
Thanks,
leo
Hi,
I have downloaded the snapshot dated 27-Feb-2004 00:01 from
http://cvs.perl.org/snapshots/parrot/ and tested it on hpux.
I order to get it to compile I have to revert to using inet_aton
at line 623 of io_unix.c. inet_pton was causing unsatisfied symbols
at link time.
The thread and signal tests are currently disabled for hpux.
After enabling them in the test scripts they both pass all their tests.
All tests successful, 70 subtests skipped.
Files=95, Tests=1380, 224 wallclock secs (126.22 cusr + 78.33 csys =
204.55 CPU)
Summary of my parrot 0.0.13 configuration:
configdate='Fri Feb 27 06:00:27 2004'
Platform:
osname=RISC2.0, archname=PA-RISC2.0
jitcapable=0, jitarchname=nojit,
jitosname=nojit, jitcpuarch=i386
execcapable=0
perl=perl
Compiler:
cc='gcc', ccflags='-D_HPUX_SOURCE -L/lib/pa1.1 -DUINT32_MAX_BROKEN
-I/usr/local/include',
Linker and Libraries:
ld='ld', ldflags='',
cc_ldflags='',
libs='-lnsl_s -ldld -lm -lndir -lcrypt -lsec -lpthread'
Dynamic Linking:
so='.so', ld_shared='-b',
ld_shared_flags=''
Types:
iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4,
ptrsize=4, ptr_alignment=4 byteorder=4321,
nv=double, numvalsize=8, doublesize=8
bash-2.05$ uname -a
HP-UX gnbil2dv B.11.00 A 9000/800 unknown
bash-2.05$ gcc -v
Reading specs from
/usr/cygnus/bin/../lib/gcc-lib/hppa1.0-hp-hpux11.00/2.9-gnupro-98r2/specs
gcc version 2.9-gnupro-98r2
bash-2.05$ perl -v
This is perl, v5.6.0 built for PA-RISC2.0
--
We envision to professionally maintain progressive meta-services in order
to interactively integrate excellent catalysts for change because that
is what the customer expects
> I have downloaded the snapshot dated 27-Feb-2004 00:01 from
> http://cvs.perl.org/snapshots/parrot/ and tested it on hpux.
>
> I order to get it to compile I have to revert to using inet_aton
> at line 623 of io_unix.c. inet_pton was causing unsatisfied symbols
> at link time.
We need a config test here.
> The thread and signal tests are currently disabled for hpux.
> After enabling them in the test scripts they both pass all their tests.
Great thanks.
I've committed a line reading:
hpux-pa_risc2.0-gcc2.9 B - - Y Y Y*2 Y
with remark:
*2 need s/inet_pton/inet_aton/ in io_unix.c:623
Thanks,
leo
> Peter Sinnott wrote:
>
> > I have downloaded the snapshot dated 27-Feb-2004 00:01 from
> > http://cvs.perl.org/snapshots/parrot/ and tested it on hpux.
> >
> > I order to get it to compile I have to revert to using inet_aton
> > at line 623 of io_unix.c. inet_pton was causing unsatisfied symbols
> > at link time.
>
> We need a config test here.
Something like this ought to do the trick for now. Longer term, we need
to build up some infrastructure for testing for functions on our own. We
also need to centralize things more to avoid some of the duplication of
code and information we're ending up with here.
diff -r -u -N parrot-current/MANIFEST parrot-andy/MANIFEST
--- parrot-current/MANIFEST 2004-02-27 03:00:34.000000000 -0500
+++ parrot-andy/MANIFEST 2004-02-27 09:36:23.000000000 -0500
@@ -78,6 +78,7 @@
config/auto/format.pl []
config/auto/funcptr.pl []
config/auto/funcptr/test_c.in []
+config/auto/functions.pl []
config/auto/gc.pl []
config/auto/gc/test_c.in []
config/auto/gcc.pl []
diff -r -u -N parrot-current/config/auto/functions.pl parrot-andy/config/auto/functions.pl
--- parrot-current/config/auto/functions.pl 1969-12-31 19:00:00.000000000 -0500
+++ parrot-andy/config/auto/functions.pl 2004-02-27 09:36:56.000000000 -0500
@@ -0,0 +1,33 @@
+#! perl -w
+# Copyright: 20004 The Perl Foundation. All Rights Reserved.
+# $Id:$
+
+=head1 NAME
+
+config/auto/functions.pl - Probe for Various Functions
+
+=head1 DESCRIPTION
+
+This command probes for the existence of various functions.
+For the moment, it just pulls information from perl5's Configure;
+in the future, it ought to go looking on its own.
+
+=cut
+
+package Configure::Step;
+
+use strict;
+use vars qw($description @args);
+
+$description="Looking for various functions...";
+
+@args=();
+
+sub runstep {
+ # Do we have inet_aton() ?
+ Configure::Data->set(
+ d_inet_aton => $Config{d_inetaton},
+ );
+}
+
+1;
diff -r -u -N parrot-current/config/gen/feature_h/feature_h.in parrot-andy/config/gen/feature_h/feature_h.in
--- parrot-current/config/gen/feature_h/feature_h.in 2004-01-08 19:01:00.000000000 -0500
+++ parrot-andy/config/gen/feature_h/feature_h.in 2004-02-27 09:36:23.000000000 -0500
@@ -96,6 +96,21 @@
print OUT <<EOP;
+/* from config/auto/functions.pl */
+EOP
+if (${d_inet_aton}) {
+ print OUT <<EOP;
+#define PARROT_HAS_INET_ATON 1
+EOP
+}
+else {
+ print OUT <<EOP;
+/* #undef PARROT_HAS_INET_ATON */
+EOP
+}
+
+print OUT <<EOP;
+
/* from config/auto/inline */
EOP
if (${inline} ne '') {
diff -r -u -N parrot-current/io/io_unix.c parrot-andy/io/io_unix.c
--- parrot-current/io/io_unix.c 2004-02-19 19:00:06.000000000 -0500
+++ parrot-andy/io/io_unix.c 2004-02-27 11:09:48.000000000 -0500
@@ -617,11 +617,16 @@
{
struct sockaddr_in sa;
/* Hard coded to IPv4 for now */
- int family = AF_INET;
+#if !PARROT_HAS_INET_ATON
+ int family = AF_INET; /* for inet_pton() */
+#endif
char * s = string_to_cstring(interpreter, addr);
- /*if(inet_aton(s, &sa.sin_addr) != 0) {*/
+#if PARROT_HAS_INET_ATON
+ if(inet_aton(s, &sa.sin_addr) != 0) {
+#else
if(inet_pton(family, s, &sa.sin_addr) != 0) {
+#endif
/* Success converting numeric IP */
}
else {
diff -r -u -N parrot-current/lib/Parrot/Configure/RunSteps.pm parrot-andy/lib/Parrot/Configure/RunSteps.pm
--- parrot-current/lib/Parrot/Configure/RunSteps.pm 2003-11-27 19:00:50.000000000 -0500
+++ parrot-andy/lib/Parrot/Configure/RunSteps.pm 2004-02-27 09:36:23.000000000 -0500
@@ -4,6 +4,8 @@
use vars qw(@steps);
# EDIT HERE TO ADD NEW TESTS
+# Also update the slightly different version of this list
+# in Parrot::Configure::Docs:Section:Config.pm
@steps=qw(
init/manifest.pl
init/data.pl
@@ -23,6 +25,7 @@
auto/byteorder.pl
auto/pack.pl
auto/format.pl
+ auto/functions.pl
auto/gcc.pl
auto/isreg.pl
auto/jit.pl
diff -r -u -N parrot-current/lib/Parrot/Docs/Section/Config.pm parrot-andy/lib/Parrot/Docs/Section/Config.pm
--- parrot-current/lib/Parrot/Docs/Section/Config.pm 2004-02-26 03:00:28.000000000 -0500
+++ parrot-andy/lib/Parrot/Docs/Section/Config.pm 2004-02-27 09:36:23.000000000 -0500
@@ -66,6 +66,7 @@
$self->new_item('', 'config/auto/byteorder.pl'),
$self->new_item('', 'config/auto/pack.pl'),
$self->new_item('', 'config/auto/format.pl'),
+ $self->new_item('', 'config/auto/functions.pl'),
$self->new_item('', 'config/auto/gcc.pl'),
$self->new_item('', 'config/auto/isreg.pl'),
$self->new_item('', 'config/auto/jit.pl'),
@@ -98,4 +99,4 @@
=cut
-1;
\ No newline at end of file
+1;
--
Andy Dougherty doug...@lafayette.edu
#if PARROT_HAS_INET_PTON
... use inet_pton ...
#else
... use inet_aton ...
#endif
or
#if PARROT_HAS_INET_PTON
... use inet_pton ...
#elsif PARROT_HAS_INET_ATON
... use inet_aton ...
#else
#error
#endif
That is, inet_pton should trump inet_aton if both are available.
On Mac OS X, the preferred technique would be to weak link with
inet_pton and test for its availability at run-time. (inet_pton is not
available on 10.1, but is available on 10.3.) This would be another case
entirely.
--
Gordon Henriksen
IT Manager
ICLUBcentral Inc.
gor...@iclub.com
> inet_pton is preferrable, as it supports IPv6.
> That is, inet_pton should trump inet_aton if both are available.
Probably, but that would require testing to see if inet_pton is available.
That information is not available from perl5's Configure, and there
currently is no infrastructure in parrot for making such a test.
Obviously that needs to change eventually.
> On Mac OS X, the preferred technique would be to weak link with
> inet_pton and test for its availability at run-time. (inet_pton is not
> available on 10.1, but is available on 10.3.) This would be another case
> entirely.
Yes, indeed, that's the sort of thing that makes testing for function
availability so much fun :-).
--
Andy Dougherty doug...@lafayette.edu
Further, this trickery requires that such compatible builds of parrot
be built with the latest environment (where the function prototypes at
least are available)... Ah, fun, fun, fun.
>nigels...@btconnect.com wrote:
>
>> Compiler version:
>>
>> Microsoft (R) 32-bit C/C++ Standard Compiler Version 13.00.9466 for 80x86
>
>Thanks update.
>
>
>> t\op\00ff-dos.t 255 65280 2 4 200.00% 1-2
>
>Strange
>
I've sent a patch that makes this problem "go away", though I do not understand
the cause. The 'fix' was to c&p the entire script into a new file, save it using
"codeset=ANSI" & "filetype=unix", overwriting the original.
Then the test completes without error.
Running "cvs diff -u -b" is the (attached)patch I've sent. I'll leave it to
others to interprete the diff.
>
>> c:\Perl\bin\perl.exe t\harness --gc-debug --running-make-test -C ubtests
>> failed, 10.96% okay.
>
>But -g is running. Even more Strange.
>
If I understand correctly (and it's quite likely I do not yet), the -C tests are
running with the "computed goto" core (core 4?). As far as I can determine from
some breif research on the web, msvc does not support this. Certainly, if I try
to compile config/auto/cgoto/test.c with default options I get
T:\config\auto\cgoto>cl test.c
Microsoft (R) 32-bit C/C++ Standard Compiler Version 13.00.9466 for 80x86
Copyright (C) Microsoft Corporation 1984-2001. All rights reserved.
test.c
test.c(9) : error C2059: syntax error : '&&'
test.c(12) : error C2059: syntax error : '*'
which I thought meant that this test would not be run, but I haven't figured out
what would stop it from being run when a "nmake fulltest" is invoked?
Looking through the output from "nmake testC", the only tests that are passing
are:
t\op\debuginfo..........ok
t\op\hacks..............ok
imcc\t\imcpasm\cfg......ok
imcc\t\imcpasm\opt0.....ok
imcc\t\imcpasm\opt1.....ok
imcc\t\imcpasm\opt2.....ok
imcc\t\imcpasm\optc.....ok
imcc\t\imcpasm\pcc......ok
imcc\t\imcpasm\sub......ok
These are what constitute the 10.96% passed figure, which tends to indicate that
these tests are not generally indicative of success in using the computed-goto
core (and should be placed somewhere else?).
The upshot is probably that the PLATFORMS line for this should probably now
read:
win32-ms-cl_13.00.9466 - Y/2 - - - Y Y/2
and note *1 can disappear.
I'd post a patch to this effect but I have no real confidence in my
interpretation.
>
>Thanks,
>
>leo
>
>
-- regards, Nigel.
I compiled with the digital compiler, not gcc,
DEC C V5.6-075 on Digital UNIX V4.0 (Rev. 878)
I ran into the inet_pton problem described earlier. This installation
also does
not have snprintf() so I had to add an #ifdef HAS_SNPRINTF in
src/spf_render.c
to use sprintf. In src/embed.c, it did not like
if (program_code == MAP_FAILED)
so I had to change to read like in icu/source/common/umapfile.c
if(program_code == ((void *) MAP_FAILED) )
Everything else compiled fine though...
A few tests failed, I've attached the output from 'make test'.
-skip
That defeats the whole point of 00ff-dos.t, which is to make sure parrot can
deal with lines ending in \r\n. IMO what should be done is to use \r\n in a
quoted string, instead of having the .t itself be \r\n (since that is what
was causing the problems, getting translated into \r\r\n). (See the
attachment for what I mean)
__________________________________
Do you Yahoo!?
Get better spam protection with Yahoo! Mail.
http://antispam.yahoo.com/tools
> I compiled on Tru64
> > uname -m -p -r -s -v
> OSF1 V4.0 878 alpha
> I compiled with the digital compiler, not gcc,
> DEC C V5.6-075 on Digital UNIX V4.0 (Rev. 878)
> I ran into the inet_pton problem described earlier.
I've committeed this extension to config:
$ perl Configure.pl --define=inet_aton
> ... This installation
> also does
> not have snprintf() so I had to add an #ifdef HAS_SNPRINTF in
> src/spf_render.c
> to use sprintf.
Done too. Despite the comment about possible buffer overflows, *for now*
this is good enough. The buffer is 4096 bytes long. BTW in perlnum.pmc
is the same problem.
> ... In src/embed.c, it did not like
> if (program_code == MAP_FAILED)
> so I had to change to read like in icu/source/common/umapfile.c
> if(program_code == ((void *) MAP_FAILED) )
Applied.
> Everything else compiled fine though...
> A few tests failed, I've attached the output from 'make test'.
> -skip
Thanks for reporting,
leo
[ inet_aton vs inet_pton ]
>> We need a config test here.
> Something like this ought to do the trick for now. Longer term, we need
> to build up some infrastructure for testing for functions on our own. We
> also need to centralize things more to avoid some of the duplication of
> code and information we're ending up with here.
Yes. I've for now expanded config_h.pl a bit:
$ perl Configure.pl --define=inet_aton,xyzzy
leads to this output in has_header.h:
/* defines from commandline */
#define PARROT_DEF_INET_ATON 1
#define PARROT_DEF_XYZZY 1
io/io_unix.c is adapted accordingly.
This is of course also a hack but could be useful to define some
features.
So for HPUX et al please run:
$ perl Configure.pl --define=inet_aton
leo
> That defeats the whole point of 00ff-dos.t, which is to make sure parrot can
> deal with lines ending in \r\n. IMO what should be done is to use \r\n in a
> quoted string, instead of having the .t itself be \r\n (since that is what
> was causing the problems, getting translated into \r\r\n). (See the
> attachment for what I mean)
Thanks, applied.
leo
FWIW, this can't work across the 10.1/10.2 schizm.
http://developer.apple.com/technotes/tn2002/tn2064.html
So parrot would need to:
- either use a separate 10.1 binary (yuck),
- or forgo use of inet_pton and IPv6 on Mac OS X 10.2 even though it
is available (yuck),
- or link in at runtime a different driver DLL for 10.1 vs. 10.2
(yuck).
Roll-your-own doesn't really sound so bad. But until the implementation
is not hardcoded to IPv6, preferring inet_aton (as present) gets the
right behavior. But IPv6 can't be ignored forever.
Whatevsies.
—
Gordon Henriksen
mali...@mac.com