
Any ideas on how much work needs to be done for using Haskell on PPC Windows Mobile platform? It would be interesting to use PPC as: 1) Haskell learning tool, so small code snipets could be entered and run directly on hand-held (REPL). How hard is it to port Hugs to PPC for this? Do any other (then Hugs) implementations exist that are easier to port? 2) Running on PPC Haskell applications cross-compiled on host PC. How much work must be done for GHC to support this? 3) There are several ways both for porting Haskell to PPC as well as cross-compiling Haskell code. Which one makes more sense to implement and will take less effort: a) Porting/compiling to VM byte code (Java, Parrot)? b) Porting/compiling to .NET CLR? c) Porting/compiling source code 4) And finally, do any projects already exist in this area? It would be great to get ideas how such port can be done in reasonable amount of time, in other words to find the most easy way to start with some Haskell implementation on PPC. Thanks for any info!

Hi, If I was doing a Haskell port to PPC Windows Mobile, I'd start with Yhc. If you port a small, portably written runtime (Yhi) in C, then you get everything else for free. There was some talk of a palm port of Yhi, and the only issues that came up were: * GMP is a dependancy, so you'll need to get GMP on Windows mobile. * Palm doesn't have a real file system, this isn't true on Windows Mobile. Yhc also compiles natively with Visual Studio, which should make this even easier for you.
1) Haskell learning tool, so small code snipets could be entered and run directly on hand-held (REPL). See Yhe, which does this (its not finished yet, but finishing it shouldn't be much work)
2) Running on PPC Haskell applications cross-compiled on host PC. Yhc has portable bytecode, hence any program is already cross-compiled to every platform.
b) Porting/compiling to .NET CLR? Yhc can already compile to .NET CLR if that helps.
c) Porting/compiling source code Yhc is pure Haskell, and at some point will be able to be run by Yhc, then you'll have all these things for free.
4) And finally, do any projects already exist in this area?
There have been various projects to port nhc and then Yhc to PalmOS, which is probably a harder challenge than Windows Mobile. I used an older version of Windows CE and the porting required for Visual Studio projects was minimal. If you need any Yhc specific help with the changes, feel free to email the Yhc mailing list (yhc -at- haskell.org) view the documentation (http://www.haskell.org/haskellwiki/Yhc), or ask on the Haskell IRC (I'm ndm). Thanks Neil

Hi Neil,
Thanks for your reply.
Starting from YHC porting pages the only source for Win32 port I
found is WinHaskell.
[http://www-users.cs.york.ac.uk/~ndm/projects/winhaskell.php]
I have not yet found which port it is: Hugs, YHc, ...?
Also there is a thing called WinHugs at
http://www-users.cs.york.ac.uk/~ndm/projects/winhugs.php
but I could not find source download for this one.
Speaking about YHC:
1) So far I found only a development source for GCC which for the
complete build needs not only GMP, but GHC as well. The last one is
needed, correct me if I am wrong, for building YHC, but not for YHi.
Correct?
Is porting Hugs harder then YHC? What do you think?
I have successfuly compiled and run Hugs on NetBSD. Hugs compilation
does not require GHC. So may be (at least for intepreter) Hugs is
easier to port then YHC/YHi?
cheers,
Dima
On 3/31/06, Neil Mitchell
Hi,
If I was doing a Haskell port to PPC Windows Mobile, I'd start with Yhc. If you port a small, portably written runtime (Yhi) in C, then you get everything else for free.
There was some talk of a palm port of Yhi, and the only issues that came up were:
* GMP is a dependancy, so you'll need to get GMP on Windows mobile.
* Palm doesn't have a real file system, this isn't true on Windows Mobile.
Yhc also compiles natively with Visual Studio, which should make this even easier for you.
1) Haskell learning tool, so small code snipets could be entered and run directly on hand-held (REPL). See Yhe, which does this (its not finished yet, but finishing it shouldn't be much work)
2) Running on PPC Haskell applications cross-compiled on host PC. Yhc has portable bytecode, hence any program is already cross-compiled to every platform.
b) Porting/compiling to .NET CLR? Yhc can already compile to .NET CLR if that helps.
c) Porting/compiling source code Yhc is pure Haskell, and at some point will be able to be run by Yhc, then you'll have all these things for free.
4) And finally, do any projects already exist in this area?
There have been various projects to port nhc and then Yhc to PalmOS, which is probably a harder challenge than Windows Mobile. I used an older version of Windows CE and the porting required for Visual Studio projects was minimal.
If you need any Yhc specific help with the changes, feel free to email the Yhc mailing list (yhc -at- haskell.org) view the documentation (http://www.haskell.org/haskellwiki/Yhc), or ask on the Haskell IRC (I'm ndm).
Thanks
Neil

Hi,
Starting from YHC porting pages the only source for Win32 port I found is WinHaskell. [http://www-users.cs.york.ac.uk/~ndm/projects/winhaskell.php] That's an entirely separate project, it just uses Yhc/GHC/Hugs.
Thats the things about the Yhc port to Windows - its not a port, Yhc just natively supports Windows. Get the standard source: darcs get http://www.cs.york.ac.uk/fp/darcs/yhc-devel src/runtime/BCKernel/msvc and you'll find MSVC (Microsoft Visual C) projects for 2003 and 2005. From the root of the darcs tree, if you have either MSVC installed, "makefile yhi" and it will get built. See [http://www.haskell.org/haskellwiki/Yhc/Building] for details of how to build on Windows.
Also there is a thing called WinHugs at http://www-users.cs.york.ac.uk/~ndm/projects/winhugs.php but I could not find source download for this one. Thats part of Hugs, just check out Hugs from CVS and You'll have that. Entirely unrelated to Yhc.
1) So far I found only a development source for GCC which for the complete build needs not only GMP, but GHC as well. The last one is needed, correct me if I am wrong, for building YHC, but not for YHi. Correct? Yhi is the runtime, that requires a C compiler and GMP (GMP could be massaged out relatively easily)
Yhc is the compiler, that requires a Haskell 98 compiler. Hugs or GHC can be used. Give us a month or so, and Yhc will support Yhc. At that point you'll be able to compile Yhc using Yhc, and run the result using Yhi. This is an easy cross-compile, since all compiles are done to a portable bytecode.
Is porting Hugs harder then YHC? What do you think? We have had a lot of success and getting some really weird Yhc ports done in under an hour, so I'd day Yhc is very portable. I'd be shocked if you couldn't port Yhi in a single day. Never tried with Hugs.
I have successfuly compiled and run Hugs on NetBSD. Hugs compilation does not require GHC. So may be (at least for intepreter) Hugs is easier to port then YHC/YHi? Today, yes, Hugs is easier. Once Yhc can compile Yhc (something we're working on, and won't be long, a few months tops), a port of Yhi gives you Yhc for free. Yhc has one of its stated aims as being the most portable compiler.
The one thing that might make it harder for Hugs is that the make system for Hugs is based on having Cygwin installed. There are Visual Studio project files for the actual main .exe, but the rest is built inside Cygwin. Thanks Neil

I am sorry for confusion that abreviation PPC may cause in the text of
my message. In this context I used 'PPC' to refer to Pocket PC and
nothing else.
Sorry again.
On 3/31/06, Dmitri O.Kondratiev
Any ideas on how much work needs to be done for using Haskell on PPC Windows Mobile platform? It would be interesting to use PPC as: 1) Haskell learning tool, so small code snipets could be entered and run directly on hand-held (REPL). How hard is it to port Hugs to PPC for this? Do any other (then Hugs) implementations exist that are easier to port? 2) Running on PPC Haskell applications cross-compiled on host PC. How much work must be done for GHC to support this?
3) There are several ways both for porting Haskell to PPC as well as cross-compiling Haskell code. Which one makes more sense to implement and will take less effort: a) Porting/compiling to VM byte code (Java, Parrot)? b) Porting/compiling to .NET CLR? c) Porting/compiling source code
4) And finally, do any projects already exist in this area?
It would be great to get ideas how such port can be done in reasonable amount of time, in other words to find the most easy way to start with some Haskell implementation on PPC. Thanks for any info!

incidentally, jhc can cross compile to the nokia 770 just fine. http://www.nokia.com/770 A neat little open source linux tablet box thing. of course, it can only cross compile what it can compile in the first place :) John -- John Meacham - ⑆repetae.net⑆john⑈
participants (3)
-
Dmitri O.Kondratiev
-
John Meacham
-
Neil Mitchell