John MacFarlane | 27 Apr 22:56 2013
Picon

text-icu on Windows

Hello café:

I'd very much like to get text-icu working on Windows, as then I could ship
pandoc binaries that do proper unicode collation in bibliographies.  But I'm
having a devil of a time.  This may be due to my very limited Windows
knowledge.  Any help would be appreciated, especially from someone who actually
has text-icu working on Windows.

I was able to cabal install text-icu without errors. I used --extra-lib-dirs
and --extra-include-dirs to point to the lib and include directories in the
32-bit binary distribution of icu4c.  I'm using the latest Haskell Platform,
2012.4.0.0 with ghc 7.4.2.

I was also able to build the following simple program that uses text-icu, by
doing ghc --make icu.hs:

~~~
-- icu.hs
import Data.Text.ICU
main = print $ Locale "tr-TR"
~~~

No errors or warnings in either of these steps. But when I try to run the
compiled program, icu.exe, I get no output at all. I expected to get a line
with 'Locale "tr-TR"', but instead I get nothing -- not even an error or warning.
This remains the case if I try

~~~
main = do
  print "Start"
(Continue reading)

Ryan Yates | 28 Apr 01:53 2013
Picon

Re: text-icu on Windows

Hi John,


I just tried this out and if I copied all of the .dll files from the icu4c bin folder into the same folder as the test icu.exe it works as expected.  You can see what dlls are missing with the dependency walker program http://www.dependencywalker.com/.  Perhaps with a mingw based build of icu4c (the one I used said it was built with Visual Studio 10) you could avoid this.

Ryan Yates

On Sat, Apr 27, 2013 at 4:56 PM, John MacFarlane <jgm <at> berkeley.edu> wrote:
Hello café:

I'd very much like to get text-icu working on Windows, as then I could ship
pandoc binaries that do proper unicode collation in bibliographies.  But I'm
having a devil of a time.  This may be due to my very limited Windows
knowledge.  Any help would be appreciated, especially from someone who actually
has text-icu working on Windows.

I was able to cabal install text-icu without errors. I used --extra-lib-dirs
and --extra-include-dirs to point to the lib and include directories in the
32-bit binary distribution of icu4c.  I'm using the latest Haskell Platform,
2012.4.0.0 with ghc 7.4.2.

I was also able to build the following simple program that uses text-icu, by
doing ghc --make icu.hs:

~~~
-- icu.hs
import Data.Text.ICU
main = print $ Locale "tr-TR"
~~~

No errors or warnings in either of these steps. But when I try to run the
compiled program, icu.exe, I get no output at all. I expected to get a line
with 'Locale "tr-TR"', but instead I get nothing -- not even an error or warning.
This remains the case if I try

~~~
main = do
  print "Start"
  print $ Locale "tr-TR"
  print "Done"
~~~

'echo $?' yields False.

Any ideas?

John

(I've posted a similar question to StackOverflow [1], but it hasn't gotten
an answer yet there, so I thought I'd try here.)

[1]: http://stackoverflow.com/questions/16127710/how-do-i-get-text-icu-working-on-windows)


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
Ryan Yates | 28 Apr 01:58 2013
Picon

Re: text-icu on Windows

Also note that running in the console produces no error message, but running by double-clicking from explorer does produce an error message that specifies one of the missing dlls:


    ---------------------------
    icu.exe - System Error
    ---------------------------
    The program can't start because icuin51.dll is missing from your computer. Try reinstalling the program to fix this problem. 
    ---------------------------
    OK   
    ---------------------------


Ryan Yates

On Sat, Apr 27, 2013 at 7:53 PM, Ryan Yates <fryguybob <at> gmail.com> wrote:
Hi John,

I just tried this out and if I copied all of the .dll files from the icu4c bin folder into the same folder as the test icu.exe it works as expected.  You can see what dlls are missing with the dependency walker program http://www.dependencywalker.com/.  Perhaps with a mingw based build of icu4c (the one I used said it was built with Visual Studio 10) you could avoid this.

Ryan Yates


On Sat, Apr 27, 2013 at 4:56 PM, John MacFarlane <jgm <at> berkeley.edu> wrote:
Hello café:

I'd very much like to get text-icu working on Windows, as then I could ship
pandoc binaries that do proper unicode collation in bibliographies.  But I'm
having a devil of a time.  This may be due to my very limited Windows
knowledge.  Any help would be appreciated, especially from someone who actually
has text-icu working on Windows.

I was able to cabal install text-icu without errors. I used --extra-lib-dirs
and --extra-include-dirs to point to the lib and include directories in the
32-bit binary distribution of icu4c.  I'm using the latest Haskell Platform,
2012.4.0.0 with ghc 7.4.2.

I was also able to build the following simple program that uses text-icu, by
doing ghc --make icu.hs:

~~~
-- icu.hs
import Data.Text.ICU
main = print $ Locale "tr-TR"
~~~

No errors or warnings in either of these steps. But when I try to run the
compiled program, icu.exe, I get no output at all. I expected to get a line
with 'Locale "tr-TR"', but instead I get nothing -- not even an error or warning.
This remains the case if I try

~~~
main = do
  print "Start"
  print $ Locale "tr-TR"
  print "Done"
~~~

'echo $?' yields False.

Any ideas?

John

(I've posted a similar question to StackOverflow [1], but it hasn't gotten
an answer yet there, so I thought I'd try here.)

[1]: http://stackoverflow.com/questions/16127710/how-do-i-get-text-icu-working-on-windows)


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
John MacFarlane | 28 Apr 02:35 2013
Picon

Re: text-icu on Windows

Ryan,

Many thanks for your reply.  I was assuming ghc would statically link
against the library files instead of relying on the dll's.  I will see
if I can build the library from source under mingw.  An alternative
would be to distribute the needed dlls with the binary.

John

+++ Ryan Yates [Apr 27 13 19:53 ]:
>    Hi John,
> 
>    I just tried this out and if I copied all of the .dll files from the
>    icu4c bin folder into the same folder as the test icu.exe it works as
>    expected. You can see what dlls are missing with the dependency walker
>    program[1]http://www.dependencywalker.com/. Perhaps with a mingw based
>    build of icu4c (the one I used said it was built with Visual Studio 10)
>    you could avoid this.
> 
>    Ryan Yates
>    On Sat, Apr 27, 2013 at 4:56 PM, John MacFarlane <[2]jgm <at> berkeley.edu>
>    wrote:
> 
>      Hello caf:
>      I'd very much like to get text-icu working on Windows, as then I
>      could ship
>      pandoc binaries that do proper unicode collation in bibliographies.
>      But I'm
>      having a devil of a time. This may be due to my very limited Windows
>      knowledge. Any help would be appreciated, especially from someone
>      who actually
>      has text-icu working on Windows.
>      I was able to cabal install text-icu without errors. I used
>      --extra-lib-dirs
>      and --extra-include-dirs to point to the lib and include directories
>      in the
>      32-bit binary distribution of icu4c. I'm using the latest Haskell
>      Platform,
>      2012.4.0.0 with ghc 7.4.2.
>      I was also able to build the following simple program that uses
>      text-icu, by
>      doing ghc --make icu.hs:
>      ~~~
>      -- icu.hs
>      import Data.Text.ICU
>      main = print $ Locale "tr-TR"
>      ~~~
>      No errors or warnings in either of these steps. But when I try to
>      run the
>      compiled program, icu.exe, I get no output at all. I expected to get
>      a line
>      with 'Locale "tr-TR"', but instead I get nothing -- not even an
>      error or warning.
>      This remains the case if I try
>      ~~~
>      main = do
>      print "Start"
>      print $ Locale "tr-TR"
>      print "Done"
>      ~~~
>      'echo $?' yields False.
>      Any ideas?
>      John
>      (I've posted a similar question to StackOverflow [1], but it hasn't
>      gotten
>      an answer yet there, so I thought I'd try here.)
>      [1]:
>      [3]http://stackoverflow.com/questions/16127710/how-do-i-get-text-icu
>      -working-on-windows)
>      _______________________________________________
>      Haskell-Cafe mailing list
>      [4]Haskell-Cafe <at> haskell.org
>      [5]http://www.haskell.org/mailman/listinfo/haskell-cafe
> 
> References
> 
>    1. http://www.dependencywalker.com/
>    2. mailto:jgm <at> berkeley.edu
>    3. http://stackoverflow.com/questions/16127710/how-do-i-get-text-icu-working-on-windows
>    4. mailto:Haskell-Cafe <at> haskell.org
>    5. http://www.haskell.org/mailman/listinfo/haskell-cafe

> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe <at> haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
Henk-Jan van Tuyl | 28 Apr 10:22 2013
Picon

Re: text-icu on Windows

On Sat, 27 Apr 2013 22:56:32 +0200, John MacFarlane <jgm <at> berkeley.edu>
wrote:

> Hello café:
>
> I'd very much like to get text-icu working on Windows, as then I could  
> ship
> pandoc binaries that do proper unicode collation in bibliographies.  But  
> I'm
> having a devil of a time.  This may be due to my very limited Windows
> knowledge.  Any help would be appreciated, especially from someone who  
> actually
> has text-icu working on Windows.
>
> I was able to cabal install text-icu without errors. I used  
> --extra-lib-dirs
> and --extra-include-dirs to point to the lib and include directories in  
> the
> 32-bit binary distribution of icu4c.

You don't need to change the .cabal file, if you specify the paths to the
libraries and header files in environment variables, see:
   http://www.haskell.org/haskellwiki/Windows#Tools_for_compilation

If there are DLLs missing, you can find out which, using cygcheck from the  
Cygwin project. Note, that you will get problems if you have both MinGW  
and Cygwin in your search path; it is best to specify the full path to  
cygcheck.exe, or copy cygcheck.exe to some location in the search path.

Regards,
Henk-Jan van Tuyl

--

-- 
http://Van.Tuyl.eu/
http://members.chello.nl/hjgtuyl/tourdemonad.html
Haskell programming
--

Gmane