In response to my last Rakudu/Parrot post, daxim responded with a clear and concise answer, of which I am very greatful.
parrot_config is an executable, installed by default in $PREFIX/bin/parrot_config. Run parrot_config --dump to see interesting stuff.
I'm now watching Britains Best Dish - a fascinating show in which predominantly amateur cooks cook a single dish - either a starter, main or a dessert. This week is the finals, and today 6 or 7 main courses get whittled down to the final two. Its very british - game dishes and pies.
Anyway, I digress.
I now run:
perl Configure.pl --parrot_config=c:\Parrot-1.7.0\bin\parrot_config.exe
and
mingw32-make
and again have the previous error:
In file included from perl6_group.c:17:
/Parrot-1.7.0/include/parrot/parrot/parrot.h:235:23: libintl.h: No such file or directory
mingw32-make: *** [src\pmc\perl6_group.dll] Error 1
That appears to be "libintl.h." perhaps it's related to the dependency on the ICU library mentioned at: http://rakudo.org/how-to-get-rakudo
Breaking now for the pub quiz.
Ok. back from pub quiz.
I attempted to install them by downloading the parrot win32 installer, and downloading the rakudo tar.gz installer. Then I got a little lost.
I believe I messed it up by not concentrating on the task in hand, and instead doing it in the background whilst watching a rather excellent film ( the Last King of Scotland ) for the first time.
So I think I have missed a dependency - the ICU library.
I visit the site and try ICU4C, downloading "Windows (win32 x86 32-bit) Visual Studio 9".
After a snooze and day at work I have another bash.
Rakudo docs atIn order to fully support Unicode, you'll also want to have the
ICU library installed (L<http://site.icu-project.org/>). Rakudo can run without ICU, but some Unicode-related features may not work properly.
which seems odd if the lack of ICU is causing the problem, and maybe I'm reading the following wrong, but to me the
Building Rakudo from the sources requires Perl 5.8 or newer, a C compiler, a make utility, subversion, and the ICU library.
Turning to google again, this page turns up:
The "Current developer release" on the parrot download page seems to point to 1.60, so I download 1.7 instead. I'll have a play with that.
C:\install\parrot-1.7.0>mingw32-make
"Compiling with:"
xx.c
Can't spawn "cmd.exe": No such file or directory at tools\dev\cc_flags.pl line 152, <$F> line 37.
mingw32-make: *** [flags_dummy] Error 255
So I try to run cmd - it fails - so lets try setting the appropriatte path and starting again:
set PATH=%PATH%;C:\WINDOWS\system32
Misconfigured system perhaps? Lets run configure again...
It was going so well...
Invoking Parrot to generate runtime\parrot\include\config.fpmc --cross your fing
ers
.\miniparrot.exe config_lib.pasm > runtime\parrot\include\config.fpmc
mingw32-make: *** [runtime\parrot\include\config.fpmc] Error -1073741515
with the popup:
miniparrot.exe - Unable to Locate Component
This application has failed to start because icuuc42.dll was not found. Re-installing the application may fix this problem.
Maybe I used the wrong arguments to configure - I'll try again
perl Configure.pl --icushared="C:\usr\lib\icu\lib\icudt.lib C:\usr\lib\icu\lib\icuuc.lib" --icuheaders="C:\usr\lib\icu\include"Did I say I was watching Heston at the moment? He's back at Little Chef. This may be slightly lost to readers out of the UK. Right. Advert break. Time to grab some stilton and biscuits.
hmm. nice stilton. Goes suprisingly well with this glass of white. Anyway - back to it. that resulted in the same error. I'll do a sanity check on the arguments. Look ok, now I noticed I had installed ICU4C - i'll try the "ICU 4.2" download instead. Ahh. notice I am trying to use 4.2.1 rather than 4.2 - I'll try installing that instead. damn. I've run out of stilton.
Ahhhh! Me being an eeedjit! Configured the environmental variables after opening the window - re added set C:\usr\lib\icu\bin to %PATH% and bingo!
And lets see...
C:\install\rakudo-2009-10>perl Configure.pl --parrot-config=c:\Parrot\bin\parrot
_config.exe
Reading configuration information from c:\Parrot\bin\parrot_config.exe ...
Verifying Parrot installation...
===SORRY!===
I'm missing some needed files from the Parrot installation:
C:/Parrot/lib/parrot/1.7.0/languages/nqp/nqp.pbc
C:/Parrot/lib/parrot/1.7.0/tools/build/ops2c.pl
C:/Parrot/lib/parrot/1.7.0/tools/build/pmc2c.pl
C:/Parrot/src/parrot/1.7.0
C:/Parrot/src/parrot/1.7.0/pmc
C:/Parrot/include/parrot/1.7.0/pmc
(Perhaps you need to use Parrot's "make install-dev" or
install the "parrot-devel" package for your system?)
DOH! very nice error message though. I'll try install-dev.
That slipped in, and Configure.PL ran ok in the rakudo dir.
make ( well the mingw variant ) worked.... now running $make test
All tests successful.
Files=29, Tests=236, 146 wallclock secs ( 0.81 usr + 0.16 sys = 0.97 CPU)
Result: PASS
yay.
So it seems install. One thing left then.
I create a file, greet.pl, with the following content:
say "Hello world";
and lets try to run it ( making sure that perl6 is added to path this time ... ) and .....
Agggh! our friend the icuuc42.dll alert!. I hadn't added C:\usr\lib\icu\bin; to the global %PATH%! Easily fixed.
And, finally, largely due to my distracted state!:
C: ... \perl6>perl6 greet.pl
Hello world
yay!
Conclusions:
> rpm -ql libicu-devel | ack libintl.h
> locate libintl.h | xargs rpm -qf
glibc-devel-2.9-2.12.1
Interpretation: That header file does not belong to libicu, but to the C library instead. It feels strange to me that installing libicu fixed this dependency for you; can you explain that?
Re:libintl.h isn't from libicu
lilstevey on 2009-10-29T20:56:58
Thanks for the observation. The comment:
That appears to be "libintl.h." perhaps it's related to the dependency on the ICU library mentioned at: http://rakudo.org/how-to-get-rakudo
Was merely a wild stab in the dark, perhaps based on me assuming it might have something to do with unicode from a possible "intl" angle.
So - explain - no. A wild guess rather than a result of analysis, and not a particulary good one by the sounds of your studies. At some point after that, I gave up on the windows binary distribution of parrot, and switched to compiling the sources - also changing the location of them to ensure the directory containing the source didn't contain spaces. After that, most of the errors and mistakes were just down to my distracted state, and messing up environment variables - which could have had a contributory effect to the earlier problems.
Hope that explains things - I'm very sorry if you've wasted time as a result of my notes...