Here's the output of "make test" on my box.
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t/codingstd/c_code_coda.t 1 256 2 1 50.00% 1
t/codingstd/c_indent.t 2 512 2 2 100.00% 1-2
t/codingstd/cppcomments.t ?? ?? % ??
t/codingstd/tabs.t 1 256 1 1 100.00% 1
t/codingstd/trailing_space.t 1 256 1 1 100.00% 1
t/op/trans.t 1 256 21 1 4.76% 13
t/pmc/iterator.t 2 512 43 2 4.65% 42-43
t/pmc/os.t 2 512 15 2 13.33% 6 9
t/src/compiler.t 1 256 6 1 16.67% 1
t/src/extend.t 12 3072 16 12 75.00% 1-12
t/src/intlist.t 4 1024 4 4 100.00% 1-4
t/src/io.t 9 2304 20 9 45.00% 2-4 6-7 16-19
t/stm/runtime.t 2 512 5 2 40.00% 2 4
8 tests and 577 subtests skipped.
Failed 13/270 test scripts, 95.19% okay. 39/6675 subtests failed, 99.42%
okay.
Ron
Really? No one on #parrot has been able to get parrot to work on Cygwin for
months. The reason has changed since this specific ticket but if you have a
working cygwin build can you please share more details such as:
perl -V
cat myconfig
perl Configure.pl
which gcc
gcc -v
windows version (usually winver from command line)
output of make (as an attachment)
strings /bin/cygwin1.dll | grep -i cygwin-1. (just need 1 line of output
to determine version of cygwin1.dll)
Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region
Interesting, didn't know about this.
> The reason has changed since this specific ticket but if you
> have a working cygwin build can you please share more details such as:
Could you, or someone else, please add the error message to the ticket,
or create a new one? Maybe I can help with that.
It's a fairly standard Windows XP SP2 box with Cygwin, everything up to
date. I have tried to install everything optional (like ICU), too.
There's one important thing to remember. Although Cygwin may look
UNIXish, shared libraries are linked and loaded the Windows (DLL) Way.
IIRC, binaries on (some) UNIXish platforms remember their link paths, so
if you don't move the library the referrer can still find and load it.
Not so with Windows. A linked application just remembers the library
name, and the usual Windows DLL lookup applies.
On Window, which means MSWin32, not Cygwin, this is handled by copying
libparrot.dll into the root directory, where parrot.exe lives. For
Cygwin I added the blib/lib directory to the PATH. Which reminds me I
should really submit a patch for resolving this. Maybe just copy the
lib, like on "real" Windows.
Actually, if parrot can't find libparrot.dll it receives the exception
0xc0000135, which is Windows' way to say "DLL not found."
> perl -V
Summary of my perl5 (revision 5 version 8 subversion 7) configuration:
Platform:
osname=cygwin, osvers=1.5.18(0.13242),
archname=cygwin-thread-multi-64int
uname='cygwin_nt-5.1 inspiron 1.5.18(0.13242) 2005-07-02 20:30 i686
unknown unknown cygwin '
config_args='-de -Dmksymlinks -Duse64bitint -Dusethreads
-Uusemymalloc -Doptimize=-O3 -Dman3ext=3pm -Dusesitecustomi
ze'
hint=recommended, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef useithreads=define
usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=define use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags ='-DPERL_USE_SAFE_PUTENV -fno-strict-aliasing
-pipe -I/usr/local/include',
optimize='-O3',
cppflags='-DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -pipe
-I/usr/local/include'
ccversion='', gccversion='3.4.4 (cygming special) (gdc 0.12, using
dmd 0.125)', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long long', ivsize=8, nvtype='double', nvsize=8,
Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='ld2', ldflags =' -s -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
rb@sbs203 win32-x86-cygwin_1.5.24> perl -V
Summary of my perl5 (revision 5 version 8 subversion 7) configuration:
Platform:
osname=cygwin, osvers=1.5.18(0.13242),
archname=cygwin-thread-multi-64int
uname='cygwin_nt-5.1 inspiron 1.5.18(0.13242) 2005-07-02 20:30 i686
unknown unknown cygwin '
config_args='-de -Dmksymlinks -Duse64bitint -Dusethreads
-Uusemymalloc -Doptimize=-O3 -Dman3ext=3pm -Dusesitecustomi
ze'
hint=recommended, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef useithreads=define
usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=define use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags ='-DPERL_USE_SAFE_PUTENV -fno-strict-aliasing
-pipe -I/usr/local/include',
optimize='-O3',
cppflags='-DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -pipe
-I/usr/local/include'
ccversion='', gccversion='3.4.4 (cygming special) (gdc 0.12, using
dmd 0.125)', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long long', ivsize=8, nvtype='double', nvsize=8,
Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='ld2', ldflags =' -s -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
libs=-lgdbm -ldb -lcrypt -lgdbm_compat
perllibs=-lcrypt -lgdbm_compat
libc=/usr/lib/libc.a, so=dll, useshrplib=true, libperl=libperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' -s'
cccdlflags=' ', lddlflags=' -s -L/usr/local/lib'
Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY USE_ITHREADS USE_64_BIT_INT
USE_LARGE_FILES USE_SITECUSTOMIZE
PERL_IMPLICIT_CONTEXT
Locally applied patches:
SPRINTF0 - fixes for sprintf formatting issues - CVE-2005-3962
Built under cygwin
Compiled at Dec 30 2005 02:44:25
%ENV:
CYGWIN=""
@INC:
/usr/lib/perl5/5.8/cygwin
/usr/lib/perl5/5.8
/usr/lib/perl5/site_perl/5.8/cygwin
/usr/lib/perl5/site_perl/5.8
/usr/lib/perl5/site_perl/5.8/cygwin
/usr/lib/perl5/site_perl/5.8
/usr/lib/perl5/vendor_perl/5.8/cygwin
/usr/lib/perl5/vendor_perl/5.8
/usr/lib/perl5/vendor_perl/5.8/cygwin
/usr/lib/perl5/vendor_perl/5.8
.
> perl Configure.pl
Parrot Version 0.4.10 Configure 2.0
Copyright (C) 2001-2007, The Perl Foundation.
Hello, I'm Configure. My job is to poke and prod your system to figure out
how to build Parrot. The process is completely automated, unless you
passed in
the `--ask' flag on the command line, in which case it'll prompt you for
a few
pieces of info.
Since you're running this program, you obviously have Perl 5--I'll be
pulling
some defaults from its configuration.
Checking MANIFEST.....................................................done.
Setting up Configure's default values.................................done.
Setting up installation paths.........................................done.
Tweaking settings for miniparrot...................................skipped.
Loading platform and local hints files................................done.
Determining nongenerated header files.................................done.
Determining what C compiler and linker to use.........................done.
Determining whether make is installed..................................yes.
Determining whether lex is installed...............................skipped.
Determining whether yacc is installed..............................skipped.
Determining if your C compiler is actually gcc.........................yes.
Determining if your C compiler is actually Visual C++...................no.
Enabling optimization...................................................no.
Determining flags for building shared libraries.......................done.
Determine if parrot should be linked against a shared library..........yes.
Determining what charset files should be compiled in..................done.
Determining what encoding files should be compiled in.................done.
Determining what types Parrot should use..............................done.
Determining what opcode files should be compiled in...................done.
Determining what pmc files should be compiled in......................done.
Determining your minimum pointer alignment......................... 1 byte.
Probing for C headers.................................................done.
Determining some sizes................................................done.
Computing native byteorder for Parrot's wordsize.............little-endian.
Test the type of va_ptr (this test is likely to segfault)..............x86.
Figuring out how to pack() Parrot's types.............................done.
Figuring out what formats should be used for sprintf..................done.
Determining if your C library has a working S_ISREG....................yes.
Determining architecture, OS and JIT capability.......................done.
Generating CPU specific stuff.........................................done.
Verifying that the compiler supports function pointer casts............yes.
Determining whether your compiler supports computed goto...............yes.
Determining if your compiler supports inline...........................yes.
Determining what allocator to use.....................................done.
Determining if your C library supports memalign........................yes.
Determining some signal stuff.........................................done.
Determining whether there is socklen_t.................................yes.
Determining if your C library has setenv / unsetenv...................both.
Determining if your platform supports AIO...............................no.
Determining if your platform supports GMP..............................yes.
Determining if your platform supports readline.........................yes.
Determining if your platform supports gdbm.............................yes.
Testing snprintf......................................................done.
Determining whether perldoc is installed...............................yes.
Determining whether python is installed.........................yes, 2.5.0.
Determining whether GNU bc is installed................................yes.
Determining whether GNU m4 is installed.................................no.
Running CPU specific stuff............................................done.
Determining whether ICU is installed...................................yes.
Determining Parrot's revision.......................................r17772.
Generating C headers..................................................done.
Generating core pmc list..............................................done.
Generating runtime/parrot/include.....................................done.
Configuring languages.................................................done.
Generating makefiles and other build files............................done.
Moving platform files into place......................................done.
Recording configuration data for later retrieval......................done.
Okay, we're done!
You can now use `make' to build your Parrot.
(NOTE: do not use `make -j <n>'!)
After that, you can use `make test' to run the test suite.
Happy Hacking,
The Parrot Team
> which gcc
/usr/bin/gcc
> gcc -v
Reading specs from /usr/lib/gcc/i686-pc-cygwin/3.4.4/specs
Configured with:
/usr/build/package/orig/test.respin/gcc-3.4.4-3/configure --verbose
--prefix=/usr --exec-prefix=/usr --
sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/lib
--mandir=/usr/share/man --infodir=/usr/share/info --enable-langu
ages=c,ada,c++,d,f77,pascal,java,objc --enable-nls
--without-included-gettext --enable-version-specific-runtime-libs --w
ithout-x --enable-libgcj --disable-java-awt --with-system-zlib
--enable-interpreter --disable-libgcj-debug --enable-thre
ads=posix --enable-java-gc=boehm --disable-win32-registry
--enable-sjlj-exceptions --enable-hash-synchronization --enabl
e-libstdcxx-debug
Thread model: posix
gcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
> windows version (usually winver from command line)
Windows XP, Service Pack 2, latest patches.
> output of make (as an attachment)
Done.
> strings /bin/cygwin1.dll | grep -i cygwin-1. (just need 1 line of output
> to determine version of cygwin1.dll)
/ext/build/netrel/src/cygwin-1.5.24-2/winsup/cygwin/cygheap.cc
The version is "1.5.24-cr-0x5f1".
>
> Cheers,
> Joshua Gatcomb
> a.k.a. Limbic~Region
Ron
On 28/03/07, Ron Blaschke <mailin...@rblasch.org> wrote:
> Joshua Gatcomb wrote:
> > On 3/26/07, Ron Blaschke <mailin...@rblasch.org> wrote:
> >>
> >> Not sure about the details of this issue, but r17772 seems to build fine
> >> on Cygwin.
> >
> > Really? No one on #parrot has been able to get parrot to work on Cygwin
> > for months.
It's been a while since I've posted here! I contributed a few tweaks
for Cygwin some time back to help it build a bit smoother, but haven't
tried in the last 12 months due to work commitments. However, one
thing I note is that footnote *1 in Platforms has become orphaned in
r16662, which is ironically when it was changed to Broken.
Nick
Regards, Bernhard
Joshua> Really? No one on #parrot has been able to get parrot to
Joshua> work on Cygwin for months. The reason has changed since
Joshua> this specific ticket but if you have a working cygwin
Joshua> build can you please share more details such as:
I doubt this is terribly useful, but I cannot get the cygwin build
working, and here's the output that I see. This is with r17772, which
someone claimed worked for them.
Paul
I think that's actually a good sign. Try adding the absolute path to
F<blib/lib> and try again. If this is working please see my previous
post in this thread about library loading.
> Paul
Ron
> If you could hang out on #parrot (irc.perl.org) when myself, Jonathan,
> particle, etc are around - it would go a long way towards getting a
> reproduceable test case that can be correctly articulated as to the nature
> of the problem. A few years ago I used to build parrot on cygwin daily and
> opened several tickets that years later I was asked if were still
> applicable. I am not interested in repeating the past.
Yes, that's bad.
> Despite having GMP and bc installed Configure.PL doesn't find them.
> I am interested in knowing why this is but I doubt it has anything to do
> with the problem.
GMP I don't know, but bc is explicitly disabled on all but selected
platforms. I have enabled it on my box a few days ago and will submit a
patch to add cygwin if it causes no problems. Also, the message should
say "skipped on this platform" or something similar, instead of "no."
> Here is the tail end of my make output:
Don't know if this is any help, but I'm seeing the exact output if I
remove C<-lparrot> while linking miniparrot.
Ron
Sorry, I guess there was some mental PATH overloading going on. Try
adding the absolute path to F<blib/lib> to PATH.
export PATH=/path/to/parrot/blib/lib:$PATH
And then "make."
Ron
The first libparrot.dll in PATH is used, so unless you've got an
installed Parrot it shouldn't matter.
I'm getting the same test results. That's the current state of Parrot
on Cygwin. See http://smoke.parrotcode/org/smoke section i386-cygwin-gcc.
Actually, you can't smoke parrot without user intervention.
F<t/src/io.t> seems to consume an infinite amount of memory, or at least
tries to. Haven't look into the details yet, but I think one test
creates an executable io_4.exe which doesn't stop printing results,
which cause the out of memory situation. I usually just kill io_4.exe.
(I know, that's a bad thing, but that's what bad people do.)
Not 100% on this, but I think one or two of the stm tests hang, too.
Ron
> Not 100% on this, but I think one or two of the stm tests hang, too.
t/pmc/stmlog.t, test 2?
-- c
No, I think this one's fine. More like t/stm/queue.t test 2 and
t/stm/runtime.t test 4. Actually, t/stm/queue.t sometimes seems to work
(see cygwin smokes).
Ron
> I think it's relevant to note that I'm using the native Win32
> subversion client, and hence most of my files are in DOS format:
> carriage-return/linefeed at the end of each line. If I convert that
> file's line endings to Unix format (plain line-feeds) it works.
You're right, that's the missing piece. If, after a successful build, I
delete F<runtime/parrot/library/Crow.pbc>, unix2dos Crow.pir and try to
build Crow.pbc again I get the same error.
> make runtime/parrot/library/Crow.pbc
./parrot.exe -o runtime/parrot/library/Crow.pbc
runtime/parrot/library/Crow.pir
error:imcc:syntax error, unexpected $end
in file 'runtime/parrot/library/Crow.pir' line 146
make: *** [runtime/parrot/library/Crow.pbc] Error 1
Ron
Ron> export PATH=/path/to/parrot/blib/lib:$PATH
Ron> And then "make."
OK, that gets me past that failure, but then I run into another; see
attached.