[Q] Need help installing ghc on NetBSD

2001-04-02 Thread Matthias Fischmann




 Hi again,


I feel I am almost there, I found the -fvia-C flag (why is this not
the default?) and compiled all my modules to object files, but then
realized that there are not static libraries in hslibs.  I think I am
missing some essential detail about the ghc Makefile system, but I
don't know where to start searching.

I unpacked ghc-4.08.2 sources and hc files and followed the
instructions in

http://haskell.cs.yale.edu/ghc/docs/4.08.2/building/sec-building-from-source.html

The result was some .hi files in builds/data but no static libraries.
Same problem in hslibs/*, except hslibs/lang.

I put the line

HsLibsFor="ghc"

in $(TOP)/mk/build.mk, but then I run out of ideas.  (For a start, is
there any way of checking that my build.mk is actually loaded?)


 thank you once more,
Matthias



-- 
Matthias Fischmann | Research Engineer   | +358 (9) 8565 7474
[EMAIL PROTECTED] | SSH Communication Security Corp | +358 (40) 752 5291

___
Glasgow-haskell-bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs



RE: [Q] Need help installing ghc on NetBSD

2001-04-02 Thread Simon Marlow

Hi there,

 I feel I am almost there, I found the -fvia-C flag (why is this not
 the default?) and compiled all my modules to object files, but then
 realized that there are not static libraries in hslibs.  I think I am
 missing some essential detail about the ghc Makefile system, but I
 don't know where to start searching.
 
 I unpacked ghc-4.08.2 sources and hc files and followed the
 instructions in
 
http://haskell.cs.yale.edu/ghc/docs/4.08.2/building/sec-building-from-so
urce.html

 The result was some .hi files in builds/data but no static libraries.
 Same problem in hslibs/*, except hslibs/lang.

Try the script in fptools/distrib/hc-build, which should be able to
bootstrap the compiler from .hc files automatically.  In particular,
it'll make sure that hslibs/lang is built before trying to build the
compiler.

 I put the line

 HsLibsFor="ghc"

 in $(TOP)/mk/build.mk, but then I run out of ideas.  (For a start, is
 there any way of checking that my build.mk is actually loaded?)

Yes - try 'make -d', or

$ make show VALUE=HsLibsFor
HsLibsFor=ghc

cheers,
Simon

___
Glasgow-haskell-bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs



RE: Hello World program core dumps with GHC 4.08.1 on HPUX 10.2 0

2001-04-02 Thread Julian Seward (Intl Vendor)


|  3.  write a native code generator back-end for HP-PA.
|  
|  :-)

That would be great!  The sparc NCG (on 5.0) works ok and 
should be a good starting point for other RISC backends.
It's a fun hack.

J

___
Glasgow-haskell-bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs



Re: [Q] Need help installing ghc on NetBSD

2001-04-02 Thread Matthias Fischmann



"Simon Marlow" [EMAIL PROTECTED] writes:

 Try the script in fptools/distrib/hc-build, which should be able to
 bootstrap the compiler from .hc files automatically.  In particular,
 it'll make sure that hslibs/lang is built before trying to build the
 compiler.

Thanks for the prompt reply.  Now that I had the name I found it in
the documentation again.  Sorry, I am stupid.  Anyway, now ghc fails
to build ghc/lib/std (SIGSEGV):

$ uname -rms
NetBSD 1.3.2 i386
$ gcc --version
2.7.2.2+myc1
$ tar xzf ~/ghc-4.08.2-src.tar.gz ; tar xzf ~/ghc-4.08.2-x86-hc.tar.gz
$ cd ghc-4.08.2
$ ./distrib/hc-build
[...]

===fptools== Finished making `all' in cbits ...
PWD = /usr/lu/fis/build/ghc-4.08.2/ghc/lib/std

[...]
../../../ghc/driver/ghc-inplace -recomp -cpp -fglasgow-exts -fvia-C -Rghc-timing -O 
-package-name std -static -split-objs-c PrelFloat.lhs -o PrelFloat.o -osuf o
Segmentation fault
$ cd ghc/lib/std 
$ ../../../ghc/driver/ghc-inplace -v -recomp -cpp -fglasgow-exts -fvia-C -Rghc-timing 
-O -package-name std -static -split-objs-c PrelFloat.lhs -o PrelFloat.o -osuf o
The Glorious Glasgow Haskell Compilation System, version 4.08.2

literate pre-processor:
echo '#line 1 "PrelFloat.lhs"'  /tmp/ghc10868.lpp  
/usr/lu/fis/build/ghc-4.08.2/ghc/driver/../utils/unlit/unlit  PrelFloat.lhs -   
/tmp/ghc10868.lpp
0.03 real 0.00 user 0.00 sys
Found OPTIONS -fno-implicit-prelude in /tmp/ghc10868.lpp

Effective command line: -fno-implicit-prelude -v -recomp -cpp -fglasgow-exts -fvia-C 
-Rghc-timing -O -package-name std -static -split-objs -c -o PrelFloat.o -osuf o

Haskellised C pre-processor:
echo '{-# LINE 1 "PrelFloat.lhs" -}'  /tmp/ghc10868.cpp  
/usr/lu/fis/build/ghc-4.08.2/ghc/driver/../utils/hscpp/hscpp -v  -D__HASKELL__=98 
-D__HASKELL1__=5 -D__GLASGOW_HASKELL__=408 -D__HASKELL98__ -D__CONCURRENT_HASKELL__ 
-I. -I/usr/lu/fis/build/ghc-4.08.2/ghc/driver/../includes /tmp/ghc10868.lpp  
/tmp/ghc10868.cpp
0.00 real 0.00 user 0.00 sys
hscpp:CPP invoked: gcc -E -undef -traditional -D__HASKELL__=98 -D__HASKELL1__=5 
-D__GLASGOW_HASKELL__=408 -D__HASKELL98__ -D__CONCURRENT_HASKELL__ -I. 
-I/usr/lu/fis/build/ghc-4.08.2/ghc/driver/../includes - /tmp/ghc10868.lpp
ghc-inplace:compile:Output file PrelFloat.o doesn't exist
ghc-inplace:compile:Interface file PrelFloat.hi doesn't exist
ghc-inplace:recompile:Input file PrelFloat.lhs newer than PrelFloat.o

Haskell compiler:
/usr/lu/fis/build/ghc-4.08.2/ghc/driver/../compiler/hsc /tmp/ghc10868.cpp  
-fno-implicit-prelude -fglasgow-exts -inpackage=std -fglobalise-toplev-names 
-ffoldr-build-on -fdo-eta-reduction -fdo-lambda-eta-expansion -fcase-of-case 
-fcase-merge -flet-to-case -fpedantic-bottoms -fsimplify [ -finline-phase0 -fno-rules 
-fno-case-of-case -fmax-simplifier-iterations2 ] -fspecialise -ffloat-outwards 
-ffloat-inwards -fsimplify [ -finline-phase1 -fmax-simplifier-iterations4 ]  
-fsimplify [ -finline-phase2 -fmax-simplifier-iterations2 ] -fsimplify [ 
-fmax-simplifier-iterations2 ] -fstrictness -fcpr-analyse -fworker-wrapper -fsimplify 
[ -fmax-simplifier-iterations4 ] -ffloat-outwards -fcse -ffloat-inwards -fsimplify [ 
-fmax-simplifier-iterations4 ]   -flet-no-escape -fwarn-overlapping-patterns 
-fwarn-missing-methods -fwarn-missing-fields -fwarn-deprecations 
-fwarn-duplicate-exports -fhi-version=408 -static 
"-himap=.%.hi:/usr/lu/fis/build/ghc-4.08.2/hslibs/lang%.hi:/usr/lu/fis/build!
/ghc-4.08.2/hslibs/lang/monads%.hi:/usr/lu/fis/build/ghc-4.08.2/hslibs/lang%.hi:/usr/lu/fis/build/ghc-4.08.2/hslibs/lang/monads%.hi:/usr/lu/fis/build/ghc-4.08.2/ghc/driver/../lib/std%.hi"
 "-himap-sep=:"-v -hifile=/tmp/ghc10868.hi -olang=C -ofile=/tmp/ghc10868.hc 
-F=/tmp/ghc10868_stb.c -FH=/tmp/ghc10868_stb.h +RTS -H600 -K100 
-S/tmp/ghc10868.stat
Glasgow Haskell Compiler, version 4.08, for Haskell 98, compiled by GHC version 4.08
Command terminated abnormally.


On NetBSD 1.5, I still have these `Funny global thing?: ...' errors I
reported earlier.


 m.


--
Matthias Fischmann | Research Engineer   | +358 (9) 8565 7474
[EMAIL PROTECTED] | SSH Communication Security Corp | +358 (40) 752 5291

___
Glasgow-haskell-bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs



RE: [Q] Need help installing ghc on NetBSD

2001-04-02 Thread Simon Marlow


 "Simon Marlow" [EMAIL PROTECTED] writes:
 
  Try the script in fptools/distrib/hc-build, which should be able to
  bootstrap the compiler from .hc files automatically.  In particular,
  it'll make sure that hslibs/lang is built before trying to build the
  compiler.
 
 Thanks for the prompt reply.  Now that I had the name I found it in
 the documentation again.  Sorry, I am stupid.  Anyway, now ghc fails
 to build ghc/lib/std (SIGSEGV):

oh dear.  To debug this, you need to:

- re-compile the RTS with debugging support.  You need to
  copy a couple of lines from mk/config.mk.in into mk/build.mk,
  and uncomment them.  Search for 'GhcRtsHcOpts'.  Then go
into fptools/ghc/rts and 'make clean boot  make all'.  You
  might need to re-configure with --enable-hc-boot first,
because
the bootstrap was in the post-hc-boot stage.

- re-link the compiler: cd fptools/ghc/compiler  rm hsc 
make.

- Run gdb on the compiler.  In order to do this, go into 
  fptools/ghc/lib/std, type 'make EXTRA_HC_OPTS=-v', then ^Z to
suspend it.  Cut-n-paste the command line used to run the
compiler,
  and run it in gdb.  

- See where it crashes, and send us the 'where' output from gdb.
We'll
  see where to go from there.

Cheers,
Simon

___
Glasgow-haskell-bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs



Compiling HDirect

2001-04-02 Thread Mike Thomas

Hi Reuben et al.

I had some more time to spend on building hdirect from CVS sources using GHC
4.08.2 under NT 4:

PROBLEM 1. The timezone_dll problems reported earlier (caused by a Cygwin
GCC mingw32 compiler change to linking with msvcrt.dll instead of
crtdll.dll).

PSEUDOFIX: Push -lcrtdll in the appropriate places in the ghc driver script
(don't know yet how this will hold up in the longer run)).  The locations
are those where -lmsvcrt is pushed.  This is of course not required in a
rebuilt ghc library - a goal I have yet to achieve.


PROBLEM 2. Pointer.hi/o and PointerPrim.hi/o are not built before
HDirect.lhs is compiled during a complete rebuild.

FIX: I added the following dependency at about line 359:

Pointer.o : PointerPrim.o

and rearranged the order of the files in:

HS_SRCS =  PointerPrim.hs Pointer.lhs HDirect.lhs

My guess is that the second change is not necessary, I haven't tried
removing it yet.


PROBLEM 3.  Mingw32 built IHC can't handle the Cygwin file links in the
shadow build directory (built with mkshadowdir).

FIX: I guess I'll have to abandon the shadow CVS source tree and work
directly with the sources as checked out under CVS.

Thanks for the assistance so far in this voyage of discovery.

Mike Thomas.






___
Glasgow-haskell-bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs



(no subject)

2001-04-02 Thread Mike Thomas

Hi again.

Further to my earlier report today:

1. Further CVS source HDirect Makefile dependencies needed as follows (not
necessarily exhaustive, see 3 below):

Com.o : WideString.o ComPrim.o ComException.o
Automation.o : SafeArray.o AutoPrim.o
SafeArray.o : StdTypes.o


2. While compiling the ihc generated file AutoPrim.hs, errors like the
following arise:


==fptools== make all - --unix -r;
 in //d/public/cvsroot/fpt/hdirect/lib

/cygdrive/c/ghc/ghc-4.08.2/bin/ghc   -cpp -DBEGIN_GHC_ONLY='-}' -DEND_GHC_ON
LY='
{-' -DBEGIN_NOT_FOR_GHC='{-' -DEND_NOT_FOR_GHC='-}' -DELSE_FOR_GHC='-}-}'  -
DBEG
IN_FOR_GHC_4_08_AND_LATER='-}' -DEND_FOR_GHC_4_08_AND_LATER='{-' -DBEGIN_NOT
_FOR
_GHC_4_08_AND_LATER='{-' -DEND_NOT_FOR_GHC_4_08_AND_LATER='-}'  -static -fgl
asgo
w-exts -fno-prune-tydecls -recomp -fvia-C -c AutoPrim.hs -o AutoPrim.o -osuf
o

AutoPrim.hs:91:
type synonym `IUnknown' should have 1 argument, but has been given 0
In the type synonym declaration for `IDispatch'

Compilation had errors

make[1]: *** [AutoPrim.o] Error 1
make: *** [all] Error 1



PSEUDOFIX: Naively (I am still a Haskell learner and don't understand the
consequences) added arguments to the type declarations as follows:
type IDispatch a = IUnknown a
dispatchInvoke :: IDispatch (a)


This is a HDirect bug?


---
3.  In automation.lhs:

Automation.lhs:7:
Type constructor or class not in scope: `IDispatch_'

Automation.lhs:351:
Type constructor or class not in scope: `IDispatch_'



Cheers and giving up till thumb comes out of mouth and bottom lip recedes.

Mike Thomas


___
Glasgow-haskell-bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs



process file table full?

2001-04-02 Thread Johannes Waldmann

Dear all, I was running a ghc compiled executable, 
(containing -syslib net -syslib concurrent) and got this after a while

Fail: resource exhausted
Action: openFile
Reason: process file table full connect-985988146.log

what could be the reasons? something related to sockets?
-- 
-- Johannes Waldmann  http://www.informatik.uni-leipzig.de/~joe/ --
-- [EMAIL PROTECTED] -- phone/fax (+49) 341 9732 204/252 --

___
Glasgow-haskell-users mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users



package ? 4.0.8.2

2001-04-02 Thread ltaesch

im new to ghc.

i just could not find how to include lib/package in the compile...


by browsing the web,  i found that  
http://www.cs.mu.oz.au/fpu/ghc-guides/set/packages.html#LISTING-PACKAGES

have a 3.8 section about package, whereas haskell.org/ghc/documentation dont !

also ghc --list-packages doesnt not work on my win install (fresh from the day before)

also, the doc mention a packages.conf file.
where is this one ? (on win)

are there some changes currently worked on packages ?

thanks

Luc

--
Get free personalized email at http://four11.iname.com

___
Glasgow-haskell-users mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users



RE: Difficulties compiling hmake / HaXml

2001-04-02 Thread Lescher Christian

Now that I made it through the hmake compilation and went on to the haXml tools I come 
to another problem with compiling haXml.
The error message (below) lead me to the missing file (IOExts.hi) which I found in 
"/lib/imports/lang". I searched the Makefile and recognized the "HFLAGS" variable wich 
seems to be set for the ghc-compiler and the path to the "lang" directory.
But, as there is an error message what is wrong ? Is there a problem with the Makefile 
or the directory structure? Can you help me go on?

Cheers, Christian

C:\test-haxmlmake
cd lib; hmake XmlLib.hs
ghc-c -o Pretty.o Pretty.lhs
ghc-c -o XmlTypes.o XmlTypes.hs
ghc-c -o XmlPP.o XmlPP.hs
ghc-c -o XmlLex.o XmlLex.hs
ghc-c -o ParseSTLib.o ParseSTLib.hs
ghc-c -o XmlHtmlParse.o XmlHtmlParse.hs
ghc-c -o XmlParse.o XmlParse.hs

XmlParse.hs:39:
Could not find interface file for `IOExts'
in the directories ./*.hi
   C:/ghc/ghc-4.08.2/lib/imports/std/*.hi

Compilation had errors

make: *** [XmlLib] Error 1


___
Glasgow-haskell-users mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users



RE: package ? 4.0.8.2

2001-04-02 Thread Simon Marlow

 im new to ghc.
 
 i just could not find how to include lib/package in the compile...
 
 
 by browsing the web,  i found that  

http://www.cs.mu.oz.au/fpu/ghc-guides/set/packages.html#LISTING-PACKAGES

 have a 3.8 section about package, whereas
haskell.org/ghc/documentation dont !

 also ghc --list-packages doesnt not work on my win install (fresh from
the day 
 before)

 also, the doc mention a packages.conf file.
 where is this one ? (on win)

GHC 4.08.2 doesn't have package.conf, or the ghc-pkg tool.  These are in
the forthcoming GHC 5.00 only; presumably the documentation you are
looking at is for a newer version of GHC.

Cheers,
Simon

___
Glasgow-haskell-users mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users



Re: A Hugs bytecode interpreter

2001-04-02 Thread Malcolm Wallace

 There is nhc98, of course, but it is somewhat bulky for the purposes I
 have in mind.  I am looking for something small that would compile to
 16-bit code that would run in 64K code + 64K data.

It's a shame that nhc98 doesn't fit your requirements, since it is
specifically designed for creating small-memory-footprint programs.
But as far as I know, Hugs is the only Haskell system that can produce
16-bit code.

 So my question is, has anyone tried to rearrange the components of
 Hugs into a bytecode compiler plus runtime?

The predecessor of Hugs was Gofer, which was supplied with a variant
called Gofcc that produced standalone bytecodes, just as you desire.
Gofer was very like Haskell 1.2.  It is still available by FTP:

http://www.cse.ogi.edu/~mpj/goferarc/index.html

Many years ago for my PhD work, I modified Gofer/Gofcc to create
standalone programs to run on an embedded system.  The resulting a.out
program had to be encoded into S-records and downloaded to the board
via a serial cable.  Back then, I was targeting a 32-bit processor
(M68000), but Gofer was equally capable of producing 16-bit code.
As I recall, my most complex example (a liftshaft control program,
attached to a real physical liftshaft made of mecchano) probably needed
around 250Kb of memory in total (code + heap + stack), although the
board was fitted with a generous 768Kb.

My modified version of Gofer/Gofcc is available here:

ftp://ftp.cs.york.ac.uk/pub/malcolm/goferp.tar.Z

It includes several other features that might be of use to you if you
are writing embedded systems:  a realtime garbage collector, concurrent
processes, device control and interrupts, and a heap-profiler
(producer/construction/retainer variants) to help you minimise your
runtime space usage.  Some papers describing the various features
are available from my homepage:

http://www-users.cs.york.ac.uk/~malcolm/

Regards,
Malcolm

___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



Re: A Hugs bytecode interpreter

2001-04-02 Thread Tore Lund

Malcolm Wallace wrote:
 
  There is nhc98, of course, but it is somewhat bulky for the purposes I
  have in mind.  I am looking for something small that would compile to
  16-bit code that would run in 64K code + 64K data.
 
 It's a shame that nhc98 doesn't fit your requirements, since it is
 specifically designed for creating small-memory-footprint programs.
 But as far as I know, Hugs is the only Haskell system that can produce
 16-bit code.

Thanks for your info.  Do you know roughly how small nhc98 can get? 
Even if a 16-bit system is impossible, having a small 32-bit Haskell
could be of interest in other connections.

And is it absolutely impossible to make a 16-bit nch98?  After all, the
compiler could remain 32-bit - it's just the bytecode interpreter that
would have to be 16-bit.  A rudimentary system might suffice as long as
there is a good FFI.

And a somewhat unrelated question: is nhc98 going to have native code
generation in the foreseeable future?
-- 
Tore


___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



RE: ffi recursive data types

2001-04-02 Thread Alastair Reid

 I'm new in ffi stuff and tools like greencard.
 Everything was working ok, until I wanted to:

 translate a haskell recursive data type(list,trees,etc) into
 a corresponding C type and back again.

 How can I do this?

If you want to see how to convert Haskell lists into arrays, look at the string 
support in StdDIS.gc or look at the handling of
lists of almost anything in the various greencard examples out there (like the X11 
support in the HGL).

If you want to convert haskell data structures to isomorphic C data structures, you 
want to write a C constructor function which
will allocate and initialize an object corresponding to each Haskell constructor and 
then write a Haskell function which will copy
the data structure from Haskell to Haskell (this is a warmup) and then convert it to 
copy from Haskell to C.

And to convert back, you define functions with which to implement "pattern matching" 
on the C objects and use those to modify your
copy function again.

For example:

  data T = T1 Int | T2 Int T T

-

  enum T_tag { T1, T2 }
  struct T1 { int tag; int f1 }
  struct T2 { int tag; int f1; union T* f2; union T* f3 }
  union T { T1 t1; T2 t2 }

  union T* mkT1(int f1) { ... malloc ... }
  union T* mkT2(int f1, union T* f2, union T* f3) { ... malloc ... }
  int fromT1(union T* t, int *f1_out) {
if (t-t1.tag == T1) {
  *f1_out = t-t1.tag;
  return 1;
} else {
  return 0;
}
  }
  int fromT2(...) { ... }

  data T_C = ...
  %fun mkT1 :: Int - IO T_C
  %fun mkT2 :: Int - T_C - T_C - IO T_C

  %fun fromT1 :: T_C - IO (Maybe Int)
  % details a bit tricky... may need to be done in 2 steps...
  %fun fromT2 :: T_C - IO (Maybe (Int,T_C,T_C)
  % ditto

  copy_H2H :: T - IO T
  copy_H2H (T1 f1) = return (T1 f1)
  copy_H2H (T2 f1 f2 f3) = do
f2' - copy_H2H f2
f3' - copy_H2H f3
return (T2 f1 f2' f3')

  copy_H2C :: T - IO T_C
  copy_H2C (T1 f1) = mkT1 f1
  copy_H2C (T2 f1 f2 f3) = do
f2' - copy_H2C f2
f3' - copy_h2C f3
mk_T2 f1 f2' f3'

  -- can probably be coded more elegantly using maybe, fromMaybe, Maybe monad, etc.
  copy_C2H :: T_C - IO T
  copy_C2H t =
case fromT1 t of
  Just f1 - return (T1 f1)
  Nothing - case fromT2 t of
   Just (f1,f2,f3) - return (T2 f1 f2 f3)
   Nothing - error "copy_C2H: invalid T_C object"

More advanced versions of this method might:

o avoid the IO monad if the T_C objects are truly immutable
o convert data structures lazily (using unsafeInterleaveIO)
o preserve sharing within T_C objects (using pointer equality tests)
o preserve sharing within T objects... Ummm, no, that's probably not legal.


Hope this helps,

--
Alastair Reid


___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



Re: Hello List Have an IO String question

2001-04-02 Thread Erik Meijer

use unsafePerformIO (that's this year's April fools' joke :-).

Do a Google on "Monads Haskell" and you will find plenty of answers; in
short you should "bind" the result of readFile using (=) : IO a - (a -
IO b) - IO b.

Erik
- Original Message -
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Monday, April 02, 2001 5:57 PM
Subject: Hello List Have an IO String question


   I am new to the list and to Haskell, and would appreciate any help
anyone can give me on a problem I am having.  I am using Hugs98 in case that
matters.
   My question involved reading from a file.  I used the line:
   readFile "c:/myfile.txt"

 To read my file and this works fine.  I now want to take the contents of
the file and use it in a function that takes in a String, but am getting an
error since readFile returns an IO String.  Is there a way to convert an IO
String to a normal String?  Thank you all.

 Rob



 ___
 Haskell mailing list
 [EMAIL PROTECTED]
 http://www.haskell.org/mailman/listinfo/haskell


___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



Re: Visual Haskell

2001-04-02 Thread Jason J. Libsch

The reason that this paper so peaked my interest is that i have been
working on a system that is tremendously similar to the one described in
this paper- it's as if Dr. Reekie Van Eck phreaked my head or notebooks
(unfortunatly, my designs have not progressed past pen and paper.) from
the other side of the world.  My take on the project is that such a
language would be the ideal langauge for begining programmers.

1) As Toby stated, the Strong Typeing of Haskell allows for a 'syntaxless'
development environment.  Only inputs and outputs that type correctly can
connect.  This means that all code that can be written will compile!

2) Easy to navigate through code.  If a fn is foreign to the user, she
need only click on it to bring up its the underlying code.

3) It seems to me that such an environment would strongly encourage
collaboration.  Having two mouse pointers dragging compenents around is
much less foreign of an asthetic than text just randomly poping up here
and there, or some such text based equivalent.  The analogy i have been
working with is: two mouse pointers on the same screen can work together
like two hands- one can hold a wrench on the bolt while the other turns
the screw, while two clarets in action is like listening to two people
talk at once.

4) A visual environment allows for the seemless integration of advanced
code development tools as CVS (isn't CVS just a fancy C^z, C^ [Shift] z
?) Help or Code Documentation, etc.

5) Ability to truly design from the top down- all the way from the Gui.
An integrated GUI construction tool would be right at home in a visual
language.

6) Much more elaborate and illuminating comment system.  Allowing for
dashed outlines and arrows pointing at code to be integrated into a
comment, to be shown only on the comment's mouse over event.  Can drag
components (fn block) into comment, which can be clicked on to bring up
that comment in hyper text fassion, etc.


Modeling the visual language after a function langauge makes tons of
sence.  Once you take this step, the visual systax follows nicely, and, i
think, looks and feels very clean.

My appologies for such the gushing tennor of this letter.  I know much of
the praise i sing for a Visual Haskell is generic visual programming
propoganda, and that visual langauges for software development haven't
taken off.  I think that the coupeling of a high level, robust,
funcitonal language with the visual paradime solves many visual
langauge problems, and, furthermore, presents new benfits all together.

I am eager to hear the opinions of this list.

my best,
 
 /jason libsch


On Mon, 2 Apr 2001, Toby Watson wrote:

 Hi, Good find!
 
 NB: I just skimmed the paper so far, but it is a long-term area of interest
 for me...
 
 I find most of these visual systems awkward to use in practice. Quite often
 this is because they have very poor interface designs (they are like old
 modal CAD systems). This is troublesome, leading many - I believe - to
 suggest that the idea is not plausible.
 
 I think that a usable visual programming language is possible but it would
 have to be a good graphical tool rather than just a translation of a textual
 language.
 
 I am encouraged by the FP notion of the creation of new glue, as if you
 could create new control structures and domain specific languages. Once this
 concept has been incorporated, i.e. the user-development of new visual
 syntax as first class then I think we will see some progress in VPLs.
 Unfortunately this is a big task, to my mind it involves revising our
 current method of building interactive software (the event loop) to make it
 more modular and reasonable to expect users to contribute new modules or
 systems thereof. The FP community have delivered a number of promising
 architectures (Haggis, Fudgets, Exene) in this area as has Rob Pike
 (newsqueak, 8 and a half, mux?).
 
 My interest in the area was peaked by a presentation on VPL. VPL was
 exceptionally usable dataflow image-processing oriented system. It had
 functions as first class objects and apply.
 http://www.camazotz.com/vplpaper.html
 
 On related note the types of a function adding two integers together, two
 lists of integers together and dataflow or pipe adding two streams of
 integers together would seem to be similar. Does anyone know of some formal
 work on this, what are the terms I would use to investigate?
 
 I think you can see where I'm going with this - the user has a notion of
 'things connected together', but without being too concerned about the
 underlying system. I imagine a 'live' type system flagging up mismatches. I
 think there is analagous situation when beginners try to plumb monads
 together with pure code. The idea would be to get visual syntax to help out.
 Consider the conversation, "Oh, you can connect red stripey objects together
 but when you want to join up a blue object you need a red/blue adaptor".
 
 cheers,
 Toby
 
 - Original Message -
 From: "Jason J. Libsch" 

Re: Visual Haskell

2001-04-02 Thread Jan Skibinski



On Mon, 2 Apr 2001, Jason J. Libsch wrote:

 The reason that this paper so peaked my interest is that i have been
 working on a system that is tremendously similar to the one described in
 this paper- it's as if Dr. Reekie Van Eck phreaked my head or notebooks
 (unfortunatly, my designs have not progressed past pen and paper.) from
 the other side of the world.  My take on the project is that such a
 language would be the ideal langauge for begining programmers.

The pictures in the paper look somehow familiar to what
I had invented and implemented in Smalltalk once upon
a time for a commercial product. It was more of
a hack, but a good hack, I believe. 
 
This perhaps gives me a right to these two comments:

If you try to be too generic you might end up with
something that is too complex for a beginner but too
dumb for an expert user. I've seen two Smalltalk
packages which attempted connecting "phone books" to
"editors" and to other gimmicks and would end up
with some incomprehensible jungle of wires, inputs
and outputs .. and some limitations that would
force you to do textual programming anyway. 

However, for a specific application domain this should
work perfectly well. My experience with my own package
was such that the visual interface was a high selling
point, and the salesmen loved it too: they could
use it to design all sorts of demos and then hand them
over to their junior people to carry on with the demos.

So perhaps you would do better if you'd tone down your
entusiasm a bit about generality of visual programming
("an ideal language for beginning programmers") and
focus on some domain specific applications instead.
 
This does not mean that you could not reuse the
framework. Quite to contrary! For example, I had
supported two different libraries of nodes (with
pretty icons): one for DSP and another for simulation
of noise control in ventilation systems. Two different
applications, two different audiences, two different
libraries, but the framework was the same.
  
Jan




___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe



Re: Lambda Dance, Haskell polemic,...

2001-04-02 Thread Brian Boutel

Jerzy Karczmarczuk wrote:

 2. You neglect, and I suspect that you do it on purpose, that the main
driving force behind the evolution of Haskell is *RESEARCH*. An issue
absent from many "popular" languages which are meant to be
 immediately
exploitable with very flat learning curve. 

This is not what is said in the Preface to the Haskell Report.

"It was decided that a committee should be formed to design such a
language, providing faster communication of new ideas, a stable
foundation for real applications development, and a vehicle through
which others would be encouraged to use functional languages."

And the first goal:

"1.It should be suitable for teaching, research, and applications,
including building large systems."

I think it is fair to say that Haskell has not been as successful in
achieving its goals as we would have liked. Tbe points made about
libraries are good ones. The problem seems to be the lack of
well-coordinated, well-funded, development resources - and this is a
problem with most open-source, volunteer-staffed efforts. Some of these
are nevertheless very successful, because, despite their weaknesses,
they do the job better that the proprietary competition. Why then has
Haskell not done as well as sendmail or apache? Perhaps because the
battleground is different. To get people to adopt Haskell (or any other
new language) is an issue of availability of people-skills, and
subjective quasi-religious arguments about the merits of one language
against another, not about which of two products does a well-defined
task better. To win that battle you need massive resources and apparent
commitment, as was the case with Sun and Java. Why did Sun do that? Did
it have anything to do with the real merits of Java?

--brian

___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe