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

ICU & Windows -- another task!

6 views
Skip to first unread message

Dan Sugalski

unread,
May 3, 2004, 11:25:30 AM5/3/04
to perl6-i...@perl.org
Okay, folks, our base ICU as we ship with parrot just flat-out
doesn't seem to work with cygwin, and it seems somewhat spotty with
basic windows.

The answer would seem to be "Use a system installed ICU", so that
sounds like a good place to start. There's an install kit for Windows
at http://oss.software.ibm.com/icu/download/2.6.2/index.html, so if
someone'd like to snag that, install it, and teach Parrot to link
with it instead of our source, that'd be quite cool.
--
Dan

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

Ron Blaschke

unread,
May 3, 2004, 1:08:37 PM5/3/04
to perl6-i...@perl.org
On Mon, 3 May 2004 11:25:30 -0400, Dan Sugalski wrote:

> Okay, folks, our base ICU as we ship with parrot just flat-out
> doesn't seem to work with cygwin, and it seems somewhat spotty with
> basic windows.

Things get really messy with Visual Studio 2003.

> The answer would seem to be "Use a system installed ICU", so that
> sounds like a good place to start. There's an install kit for Windows
> at http://oss.software.ibm.com/icu/download/2.6.2/index.html, so if
> someone'd like to snag that, install it, and teach Parrot to link
> with it instead of our source, that'd be quite cool.

Did just that some time ago, but with version 2.8. It's as simple as
- Download the package
- unzip it, eg to C:\usr\lib\icu
- Tell parrot to use it:
perl Configure.pl --icushared="C:\usr\lib\icu\lib\icudata.lib \
C:\usr\lib\icu\lib\icuuc.lib" --icuheaders="C:\usr\lib\icu\include"


BTW, current test results on win32 are:
Failed 1/102 test scripts, 99.02% okay. 3/1519 subtests failed, 99.80%
okay.
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t\pmc\nci.t 3 768 31 3 9.68% 27-29
2 tests and 60 subtests skipped.
NMAKE : fatal error U1077: 'C:\Perl\bin\perl.exe' : return code '0xff'

Ron

Chromatic

unread,
May 3, 2004, 1:32:33 PM5/3/04
to Ron Blaschke, perl6-i...@perl.org
On Mon, 2004-05-03 at 10:08, Ron Blaschke wrote:

> BTW, current test results on win32 are:
> Failed 1/102 test scripts, 99.02% okay. 3/1519 subtests failed, 99.80%
> okay.
> Failed Test Stat Wstat Total Fail Failed List of Failed
> -------------------------------------------------------------------------------
> t\pmc\nci.t 3 768 31 3 9.68% 27-29
> 2 tests and 60 subtests skipped.
> NMAKE : fatal error U1077: 'C:\Perl\bin\perl.exe' : return code '0xff'

Can you run these outside of the harness and post the results? Here's
the command I'd use on Unix with the path separators swapped:

$ perl -Ilib t\pmc\nci.t

-- c

Ron Blaschke

unread,
May 3, 2004, 1:56:02 PM5/3/04
to perl6-i...@perl.org
On Mon, 03 May 2004 10:32:33 -0700, Chromatic wrote:

>> BTW, current test results on win32 are:
>> Failed 1/102 test scripts, 99.02% okay. 3/1519 subtests failed, 99.80%

> Can you run these outside of the harness and post the results? Here's
> the command I'd use on Unix with the path separators swapped:
> $ perl -Ilib t\pmc\nci.t

Here goes:

1..31
i386 JIT CPU
.dll SO extension
ok 1 - nci_d_d
ok 2 - nci_f_ff
ok 3 - nci_i_sc
ok 4 - nci_s_sc
ok 5 - nci_c_sc
ok 6 - nci_i_t
ok 7 - nci_t_t
ok 8 - nci_d_d - stress test
ok 9 - nci_d_d - clone
ok 10 - nci_i_iii
ok 11 - nci_i_4i
ok 12 - nci_i_i3
ok 13 - nci_t_b
ok 14 - nci_t_B
ok 15 - nci_p_i
ok 16 - nci_p_i
ok 17 - nci_p_i - align
ok 18 - nci_p_i - char*
ok 19 - nci_p_i - nested struct *
ok 20 - nci_p_i - func_ptr*
ok 21 - nci_p_i - func_ptr* with signature
ok 22 - nci_p_i - nested struct aligned
ok 23 - nci_p_i - nested struct unaligned
ok 24 - nci_p_i - nested, unaligned, named
ok 25 - nci_i_p
ok 26 - nci_v_P
not ok 27 - nci_cb_C1
# Failed test (t/pmc/nci.t at line 857)
# got: 'ok 1
# ok 2
# cb didnt run
# '
# expected: 'ok 1
# ok 2
# in callback
# user data: 42
# external data: succeeded
# done.
# '
not ok 28 - nci_cb_D1
# Failed test (t/pmc/nci.t at line 915)
# got: 'ok 1
# ok 2
# cb didnt run
# '
# expected: 'ok 1
# ok 2
# in callback
# user data: 42
# external data: succeeded
# done.
# '
not ok 29 - nci_cb_C2
# Failed test (t/pmc/nci.t at line 973)
# got: 'ok 1
# ok 2
# cb didnt run
# '
# expected: 'ok 1
# ok 2
# in callback
# user data: 42
# external data: 77
# done.
# '
ok 30 - array of structs
ok 31 - out parameters and return values
# Looks like you failed 3 tests of 31.

Perldiscuss - Perl Newsgroups And Mailing Lists

unread,
May 3, 2004, 1:02:58 PM5/3/04
to perl6-i...@perl.org
Dan Sugalski wrote:

> Okay, folks, our base ICU as we ship with parrot just flat-out
> doesn't seem to work with cygwin

I figured I would add my lessons learned here so that people don't have to
start from scratch.

ICU's static only implementation (Win32) has not been completed and likely
will not be until June 25th or after.

To get parrot to link to ICU dynamically, you need to do the following:

1. Modify config/init/hints/cygwin.pl and add link => 'c++',
2. Ensure that the path to the .dlls are in your PATH env variable.
Otherwise you will get "xxx.dll not found".
3. Ensure that the .dlls are all executable or else you will get
initialization error 0xc0000022
4. If you are telling parrot to link to a pre-installed version of ICU
you need to modify the config/gen/icu.pl to tell it where the $icudatadir
is or else parrot.exe will yell at you about not being able to find the
data files

Ok - so once you have parrot dynamically linked to ICU fire it up:

c++ -o parrot.exe -L/usr/local/lib -g imcc/main.o blib/lib/libparrot.a
-lcrypt -licuuc -licudt
Invoking Parrot to generate library/config.fpmc--cross your fingers
/parrot config_lib.pasm
make: *** [library/config.fpmc] Segmentation fault (core dumped)

Now here is where I throw my hands up. I am going to try one more thing
that I have previously tried (but not sure if I knew about the .dlls
permission problem then) but I do not have much hope that it will work.

Joshua Gatcomb

Perldiscuss - Perl Newsgroups And Mailing Lists

unread,
May 3, 2004, 1:38:04 PM5/3/04
to perl6-i...@perl.org
Ron Blaschke wrote:
> Did just that some time ago, but with version 2.8. It's as simple as

In case anyone was wondering - this doesn't work on Cygwin. It was among
the many things I have tried. It links but then coredumps when ./parrot
config_lib.pasm is executed. Oh, and using the latest developers release
I was able to get parrot to link to ICU using STATIC libraries - but it
coredumped as well when I went to use the executable.

Leopold Toetsch

unread,
May 3, 2004, 2:42:32 PM5/3/04
to Ron Blaschke, perl6-i...@perl.org
Ron Blaschke <r...@rblasch.org> wrote:
> not ok 27 - nci_cb_C1
> # Failed test (t/pmc/nci.t at line 857)
> # got: 'ok 1
> # ok 2
> # cb didnt run

Ah. ok. Callbacks are currently scheduled into the event thread, which
isn't running on Win32. They shouldn't really get there, but put
directly into the interpreter's task queue.

leo

0 new messages