[Q] Need help installing ghc on NetBSD
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
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
| 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
"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
"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
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)
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?
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
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
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
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
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
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
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
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
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
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,...
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