Re: [Haskell-cafe] Parallel + exceptions
andrewcoppin: Bulat Ziganshin wrote: Hello Andrew, definitive reading: Tackling the awkward squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell http://research.microsoft.com/Users/simonpj/papers/marktoberdorf/marktoberdorf.ps.gz I've read it. Is everything described in that paper actually implemented now? (And implemented in exactly the same way as the paper says?) in my experience, exceptions are rarely required in Haskell program - i use them only to roll out when IO problems occur. Indeed. Somebody else mentioned Maybe; much cleaner, more intuitive solution. OTOH, concurrency is very handy in Haskell/GHC - it's easy to create threads and communicate in reliable way, so it's a great tool to split algorithm into subtasks. and GHC lightweight threads make it very cheap - you may run thousands of threads. example program that uses one thread to produce numbers and another to print them is less than 10 lines long It's nice that you can have millions of threads if you want to do something very concurrent. What I tend to want is parallel - doing stuff that *could* be done in a single thread, but I want it to go faster using my big mighty multicore box. As I understand it, you have to do something special to make that happen...? While we're on the subject... has anybody ever looked at using muptiple processors on *networked* machines? Haskell's very pure semantics would seem quite well-suited to this... MPI/cluster stuff has also been done a fair bit, but in these days SMP multicore machines are a hot topic. Start here: http://haskell.org/haskellwiki/Applications_and_libraries/Concurrency_and_parallelism P.S. An awful lot of your questions are previously answered on the wiki :-) It's a good resource! -- Don ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Best idiom for avoiding Defaulting warnings with ghc -Wall -Werror ??
On Sat, 23 Jun 2007, David Roundy wrote: I refuse to drink the Kool-Aid and recite precisely what I'm told a type is in June, 2007; I'm hoping that types will evolve by the time I die. For types to evolves, we need to step back a few feet and think more loosely what a type really is. When talking about Haskell on Haskell mailing lists, it makes communication easier if you use Haskell terminology. e.g. when you use the word type, if you mean the thing that is called a type in the Haskell language. This means people cannot talk about future developments of type theory here ... ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: Best idiom for avoiding Defaulting warnings with ghc -Wall -Werror ??
Dave Bayer wrote: I've enjoyed the recent typing discussions here. On one hand, there's little difference between using dynamic typing, and writing incomplete patterns in a strongly typed language. On the other hand, how is an incomplete pattern any different from code that potentially divides by zero? One quickly gets into decidability issues, dependent types, Turing-complete type systems. True enough, in a sense, a dynamically typed language is like a statically typed language with only one type (probably several by distinguishing function types) and many incomplete pattern matches. So, you can embed a dynamically typed language into a strongly typed language without loosing static type checking. However, the other way round is impossible: virtually void of static type checking, the dynamic language is incapable of embedding a strongly typed language without loosing type safety. Thus, you still gain something with strong typing even with incomplete pattern matches. In fact, the programmer has the power to arrange things such that he gains extremely much. What about throwing out incomplete patterns completely? Well, this is a very mixed blessing. There are incomplete patterns and non-terminating programs, both commonly denoted with _|_. As long as you allow non-termination, you can't get rid of incomplete patterns. But enforcing termination everywhere can be very limiting: 1) The programmer has to detail in some form the proof that his program terminates. Arguably, he ought to do so anyway but he doesn't need to write his proof in a way that can be checked by a dumb computer. Take for example minimum = head . sort Here, the theorem that this program proves is obvious from the proof itself. But to make it checkable by a machine, I'm sure that further type annotations are needed that don't add additional insight anymore. 2) There are programs that terminate but cannot be stated in a given always-terminating language. Most likely, an interpreter for this language is one of those programs. Getting rid of incomplete patterns means to rule out terms that do not fulfill a given invariant. Dependent types are a good way too that, but again, you have issue 1). The proofs will only be tractable if it's possible to concentrate on the interesting invariants and drop the others. In the end, strongly normalizing languages and dependent types are an active research area for exactly these problems. In the end, I think that strong types is only one thing that makes Haskell programs work after compilation. The other ones are higher-order functions and *purity*. No type system can achieve what purity offers. Regards, apfelmus ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Best idiom for avoiding Defaulting warnings with ghc -Wall -Werror ??
Hi 1) The programmer has to detail in some form the proof that his program terminates. Arguably, he ought to do so anyway but he doesn't need to write his proof in a way that can be checked by a dumb computer. Take for example minimum = head . sort minimum [1..] gives _|_ non-termination miniumum [1,_|_,3] gives _|_ while head [1,_|_,3] doesn't. Termination is all a bit more complex once you get to laziness. Thanks Neil ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Installing HOpenGL
I'm trying to install HOpenGL 2.1, with ghc 6.6 on Windows XP. runghc Setup.hs configure seems to work fine. It gives messages about things missing, like sh, but there are no errors. When I run runghc Setup.hs build, I get the following error: [ 4 of 81] Compiling Graphics.Rendering.OpenGL.GL.Extensions ( Graphics/Renderin g/OpenGL/GL/Extensions.hs, dist\build/Graphics/Rendering/OpenGL/GL/Extensions.o ) Graphics/Rendering/OpenGL/GL/Extensions.hs:46:15: parse error on input `CALLCONV' Does anyone know what might be going wrong? -- a href=http://www.spreadfirefox.com/?q=affiliatesid=153516t=1;textarea rows=3 cols=40Get Firefox!/a ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: Best idiom for avoiding Defaulting warnings with ghc -Wall -Werror ??
Neil Mitchell wrote: 1) The programmer has to detail in some form the proof that his program terminates. Arguably, he ought to do so anyway but he doesn't need to write his proof in a way that can be checked by a dumb computer. Take for example minimum = head . sort minimum [1..] gives _|_ non-termination miniumum [1,_|_,3] gives _|_ while head [1,_|_,3] doesn't. Termination is all a bit more complex once you get to laziness. Oops, the example was not meant for termination but for the invariants. I wanted to say that the code of minimum is likely to be shorter than a computer-checkable proof that shows that its result is indeed the smallest element from the list. Regards, apfelmus ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] XmlSerializer.deserialize?
Hi, Trying to write a function to deserialize a haskell type from xml. Ideally this wont need a third DTD file, ie it will work something like XmlSerializer.Deserialize from C#: deserializeXml :: Data(a) = String - a serializeXml :: Data(a) = a - String Writing serializeXml is pretty easy: import Data.Generics -- helper function from http://www.defmacro.org/ramblings/haskell-web.html introspectData :: Data a = a - [(String http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#t:String, String http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#t:String)] introspectData a = zip http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:zip fields (gmapQ gshow a) where fields = constrFields $ http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:. toConstr a -- function to create xml string from single-layer Haskell data type serializeXml object = ++ http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:. show http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:show(toConstr object) ++ http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:. ++ http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:. foldr http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:foldr (\(a,b) x - x ++ http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:. ++ a ++ ++ b ++ / ++ a ++ ) ( introspectData object ) ++ http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:. / ++ http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:. show http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:show(toConstr object) ++ http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:. ... however cant figure out how to go the other way. Usage of haxml or HXT to achieve this is ok, whatever it takes ;-) ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Installing HOpenGL
That looks like a missing C macro definition. It should probably expand to either stdcall or ccall. A bit more information would be helpful. On 24 jun 2007, at 13.11, Jimmy Miller wrote: I'm trying to install HOpenGL 2.1, with ghc 6.6 on Windows XP. runghc Setup.hs configure seems to work fine. It gives messages about things missing, like sh, but there are no errors. When I run runghc Setup.hs build, I get the following error: [ 4 of 81] Compiling Graphics.Rendering.OpenGL.GL.Extensions ( Graphics/Renderin g/OpenGL/GL/Extensions.hs, dist\build/Graphics/Rendering/OpenGL/GL/ Extensions.o ) Graphics/Rendering/OpenGL/GL/Extensions.hs:46:15: parse error on input `CALLCONV' Does anyone know what might be going wrong? -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Constructing a datatype given just its constructor as a string?
Trying to create a datatype/constructor given just its constructor as a string, something like: mkConstr :: String - Constr parseData :: (Data a) = String - a ***without knowing in advance anything about the datatype apart from the string contents*** So, not something like: parseData Just 3 :: [Maybe] but simply: parseData Just 3 (This is linked to the other post: the goal is to be able to deserialize xml without needing to know in advance the data type we are deserializing) ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Constructing a datatype given just its constructor as a string?
Hi mkConstr :: String - Constr parseData :: (Data a) = String - a fromConstr, plus a bit of work to create the constructor. http://www.haskell.org/hoogle/?q=fromConstr Thanks Neil ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Best idiom for avoiding Defaulting warnings with ghc -Wall -Werror ??
True enough, in a sense, a dynamically typed language is like a statically typed language with only one type (probably several by distinguishing function types) and many incomplete pattern matches. So, you can embed a dynamically typed language into a strongly typed language without loosing static type checking. statically typed: typed at compile time dynamically typed: typed at runtime weakly typed: .. strongly typed: everything is typed and type-checked there are at least two problems with embedding strongly and dynamically typed languages into strongly and statically typed languages: - it assumes that there is a globally unique static stage, entirely separate from a globally unique dynamic stage - it assumes that there is a unique, unchanging (closed) world of types static typing alone is too static to deal with dynamically evolving types or flexible ideas such as runtime compilation or dynamic linking.. the solution is long-known as type Dynamic (a universal type in which expressions are paired with type tags): projecting from a Dynamic to the tag type (using a typecase) involves a 'static' type check prior to stripping the type info away for a limited 'runtime', embedding into a Dynamic involves creating a runtime type tag, to prepare for situations that can't be handled statically. if you have a strongly and otherwise statically typed language extended with Dynamic/typecase, you can embed strongly and dynamically typed languages into it. and you can try to reduce the number of Dynamic and typecase uses to a minimum, giving you maximal phases of pre-checked runtime without dynamic type representations or type checks. but there are situations that need Dynamic/typecase. if you have a strongly and dynamically typed language, you can embed strongly and statically typed languages into it. by default, that means you get more type-checks than necessary and type-errors later than you'd wish, but you still get them. eliminating runtime type information and runtime type-checks in a strongly and dynamically typed language is a question of optimisation, similar to deforestation. if you have a strongly and statically typed language, there are situations where you'll get stuck. extending the type system may get you beyond some of these barriers, but only to the next set of problems. it is impressive just how far languages like haskell have managed to take the idea of strong static typing, and it is worthwhile noting that many people need nothing more most of the time. it is also worthwhile recalling that the struggle involved has given us type systems that can handle many of the problems that were thought to be dynamic in nature within a static type system (such as generic programming). but there always remains a small set of essential problems that exceed what strong static typing can handle on its own. adding Dynamic/typecase gives you the best of both worlds: the expressiveness of strongly and dynamically typed languages and the efficiency and early safety (between a typecase and a reembedding into Dynamic, there will be no runtime type-checks and no runtime type-errors) of strongly and statically typed languages. even better, for the large number of programs that do not need dynamic types, there'll be no sign of them - those programs work in the strongly and statically typed subset of the language. claus ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Haskell version of ray tracer code ismuchslowerthan the original ML
also try replacing that (foldl' intersect') with (foldr (flip intersect'))! OK, next question: Given that I'm using all the results from intersect', why is the lazy version better than the strict one? Is ghc managing to do some loop fusion? haskell tends to prefer foldr where mls prefer foldl, be it for lazyness and short-circuiting operators, or because a tail-recursive function with a lazy accumulator is only an efficient way to construct inefficient expressions. so, the very first thing i tend to look for when someone ports a program from ml to haskell are tail recursions with non-strict accumulators. even using foldl', when constructing pairs in the accumulator, there's no guarantee that the pair components will be evaluated early even if the pairs themselves are forced. so replacing foldl with foldr when porting from ml to haskell tends to be a useful habit, unless there are good reasons for foldl. however, things seem to be a little bit more involved in this example: intersect' forces the first component, and ignores the second, never building nasty delayed combinations of old accumulator and list head in the new accumulator. but if you compare the outputs of -ddump-simpl, or if you export all definitions from main and compare the outputs of --show-iface, you'll find differences related to the the result of intersect': whether or not that result can be passed unboxed. Constructed Product Result Analysis for Haskell (2000) http://citeseer.ist.psu.edu/baker-finch00constructed.html i don't know the details, but in the foldr case, the result of intersect' seems to be passed unboxed, in the foldl' case, it isn't. i'll leave it to the experts to explain whether that has to be the case or whether it is an omission in the optimizer. claus using a recent ghc head instead of ghc-6.6.1 also seems to make a drastic difference $ uname -a CYGWIN_NT-5.1 cr3-lt 1.5.19(0.150/4/2) 2006-01-20 13:28 i686 Cygwin $ ghc --version The Glorious Glasgow Haskell Compilation System, version 6.6.1 $ gcc --version gcc.exe (GCC) 3.4.2 (mingw-special) Copyright (C) 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ ghc --make Ray1.hs [1 of 1] Compiling Main ( Ray1.hs, Ray1.o ) Linking Ray1.exe ... $ time ./Ray1.exe out real0m55.705s user0m0.015s sys 0m0.031s $ /cygdrive/c/fptools/ghc/ghc-6.7.20070613/bin/ghc --make Ray1.hs -o Ray1head.exe [1 of 1] Compiling Main ( Ray1.hs, Ray1.o ) Linking Ray1head.exe ... $ time ./Ray1head.exe out.head real0m24.989s user0m0.031s sys 0m0.015s $ diff -q --binary out out.head $ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Installing HOpenGL
No, ffi is no extra package. It would be helpful if you posted you configure output though. BTW, please CC the list when replying. The easiest way should be to use the reply all feature of your mail client. Thanks, Thomas On 24 jun 2007, at 15.24, Jimmy Miller wrote: That's all I know right now. Is there another package I need to install for the C FFI? Also, is there any problem in Setup.hs saying that sh was not found? On 6/24/07, Thomas Schilling [EMAIL PROTECTED] wrote: That looks like a missing C macro definition. It should probably expand to either stdcall or ccall. A bit more information would be helpful. On 24 jun 2007, at 13.11, Jimmy Miller wrote: I'm trying to install HOpenGL 2.1, with ghc 6.6 on Windows XP. runghc Setup.hs configure seems to work fine. It gives messages about things missing, like sh, but there are no errors. When I run runghc Setup.hs build, I get the following error: [ 4 of 81] Compiling Graphics.Rendering.OpenGL.GL.Extensions ( Graphics/Renderin g/OpenGL/GL/Extensions.hs, dist\build/Graphics/Rendering/OpenGL/GL/ Extensions.o ) Graphics/Rendering/OpenGL/GL/Extensions.hs:46:15: parse error on input `CALLCONV' Does anyone know what might be going wrong? -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] XmlSerializer.deserialize?
As a side note i'd like to point out that introspectData has a problem with constructors containing Strings because show (x::String) /= x: data Foo = Foo { bar :: String } deriving (Typeable,Data) introspectData (Foo quux) -- [(bar,\quux\)] Those extras \ don't look very nice in the xml.. (the output of introspectData is also wrong in the article's example ) you should probably use a modified gshow: gshow' :: Data a = a - String gshow' x = fromMaybe (gshow x) (cast x) which is id for Strings. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] directory tree?
Chad Scherrer wrote: What got me thinking about this is I'd like to be able to do something like this in just a couple lines of code: gunzip -c ./2*/*.z ... and feed the result into a giant lazy ByteString. Using my FileManip library, you'd do that like this. import Codec.Compression.GZip import qualified Data.ByteString.Lazy as B import System.FilePath.Glob foo :: IO B.ByteString foo = namesMatching */*.gz = fmap B.concat . mapM (fmap decompress . B.readFile) http://hackage.haskell.org/cgi-bin/hackage-scripts/package/FileManip-0.2 b ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] problem implementing an EDSL in Haskell
Hi Daniil, By embedded DSL, we usually mean identifying meta-language (Haskell) expressions with object language (DSL) expressions, rather than having an Exp data type. Then you just use meta-language variables as object-language variables. The new data types you introduce are then domain-oriented rather than language-oriented. Is there a reason that this kind of embedded approach doesn't work for you? Cheers, - Conal On 6/7/07, Daniil Elovkov [EMAIL PROTECTED] wrote: Hello folks Haskell is considered good for embedded DSLs. I'm trying to implement some simple EDSL in a typeful manner and having a problem with looking up variable values. I've got an Expression GADT, which admits variables. The problem is with writing compute function which will lookup variable values in a type-safe manner. The exp. data type is like this data Exp a where Const a :: Val a - Exp a Var :: a - String - Exp a -- where the first comp. isn't used,only for type info. So, obviously, I have to perform lookups in some 'scope' to compute the expression. By scope I mean the list of (name,value) pairs. How do I represent the scope? Well, I haven't gone that far as to encode statically the information about the type of every variable in scope. Instead, I used existentials to hide their types and put'em all in a list. For that purpose I introduced pack/unpack. -- value with dynamic type annotation -- m here and below can be Val, Exp, etc. -- to represent Val Int, Exp Int, etc. data Type m = TInt (m Int) | TString (m String) | TDouble (m Double) class Typed a where typ :: m a - Type m instance Typed Int where typ x = TInt x instance Typed String where typ x = TString x instance Typed Double where typ x = TDouble x data Opaque m = forall a. (Typed a) = Opaque (m a) -- extract to an annotated representation extract :: Opaque m - Type m extract (Opaque a) = typ a How would you suggest, I write compute function? My try was compute :: Scope - Exp t - Val t compute scope (Const x) = x -- trivial compute scope (Var t name) = -- intereseting part let opq = lookup name scope val = case opq of Nothing - error not in scope Just opq - extract opq expType = aux t in case val `matches` expType of -- I'd like to make some 'matches' func. Nothing - error type error -- which would either produce an error Just v - v -- or return the value, based on run-time tags matches :: Typed m - Typed m - Maybe (m a) BUT of course this type is bad, there's no 'a' in the left side matches (TInt x) (TInt _) = Just x matches (TString x) (TString _) = Just x matches (TDouble x) (TDouble _) = Just x matches _ _ = Nothing So, clearly the problem is in that Type m has no evidence of a, which was its very purpose. Ok, so I made data FType m a where FInt :: m Int - FType m Int FString :: m String - FType m String FDouble :: m Double - Aux m a class Typed a where typ :: m a - Type m -- as before ftyp :: m a - FType m a -- new one and again obvious instance instance Typed Int where ftyp x = FInt x ... And of course, I'd like to get that information somehow extract2 (Opaque a) = ftyp a I rewrote 'matches' accordingly but the problem is already in the type of extract2 its type Opaque m - (forall a. (Typed a) = m a) is not good to ghc, less polymorphic than expected So, in principle it must be doable, since opaque data retains its dictionary, and by that I can get a dynamic tag, say FInt x, where x is proved to be Int. What would you suggest? Thank you ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Installing HOpenGL
Thanks, didn't know that. Here's the configure output: Configuring OpenGL-2.1... configure: C:\ghc\ghc-6.6\bin\ghc-pkg.exe configure: Dependency base-any: using base-2.0 configure: Using install prefix: C:\Program Files configure: Binaries installed in: C:\Program Files\Haskell\bin configure: Libraries installed in: C:\Program Files\Haskell\OpenGL-2.1\ghc-6.6 configure: Private binaries installed in: C:\Program Files\OpenGL-2.1 configure: Data files installed in: C:\Program Files\Common Files\OpenGL-2.1 configure: Using compiler: C:\ghc\ghc-6.6\bin\ghc.exe configure: Compiler flavor: GHC configure: Compiler version: 6.6 configure: Using package tool: C:\ghc\ghc-6.6\bin\ghc-pkg.exe configure: Using ar found on system at: C:\ghc\ghc-6.6\bin\ar.exe configure: No haddock found configure: No pfesetup found configure: No ranlib found configure: Using runghc found on system at: C:\ghc\ghc-6.6\bin\runghc.exe configure: No runhugs found configure: No happy found configure: No alex found configure: Using hsc2hs: C:\ghc\ghc-6.6\bin\hsc2hs.exe configure: No c2hs found configure: No cpphs found configure: No greencard found Setup.hs: Cannot find: sh On 6/24/07, Thomas Schilling [EMAIL PROTECTED] wrote: No, ffi is no extra package. It would be helpful if you posted you configure output though. BTW, please CC the list when replying. The easiest way should be to use the reply all feature of your mail client. Thanks, Thomas On 24 jun 2007, at 15.24, Jimmy Miller wrote: That's all I know right now. Is there another package I need to install for the C FFI? Also, is there any problem in Setup.hs saying that sh was not found? On 6/24/07, Thomas Schilling [EMAIL PROTECTED] wrote: That looks like a missing C macro definition. It should probably expand to either stdcall or ccall. A bit more information would be helpful. On 24 jun 2007, at 13.11, Jimmy Miller wrote: I'm trying to install HOpenGL 2.1, with ghc 6.6 on Windows XP. runghc Setup.hs configure seems to work fine. It gives messages about things missing, like sh, but there are no errors. When I run runghc Setup.hs build, I get the following error: [ 4 of 81] Compiling Graphics.Rendering.OpenGL.GL.Extensions ( Graphics/Renderin g/OpenGL/GL/Extensions.hs, dist\build/Graphics/Rendering/OpenGL/GL/ Extensions.o ) Graphics/Rendering/OpenGL/GL/Extensions.hs:46:15: parse error on input `CALLCONV' Does anyone know what might be going wrong? -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a -- a href=http://www.spreadfirefox.com/?q=affiliatesid=153516t=1;textarea rows=3 cols=40Get Firefox!/a ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Installing HOpenGL
On 24 jun 2007, at 19.53, Jimmy Miller wrote: Thanks, didn't know that. Here's the configure output: Configuring OpenGL-2.1... configure: C:\ghc\ghc-6.6\bin\ghc-pkg.exe configure: Dependency base-any: using base-2.0 configure: Using install prefix: C:\Program Files configure: Binaries installed in: C:\Program Files\Haskell\bin configure: Libraries installed in: C:\Program Files\Haskell \OpenGL-2.1\ghc-6.6 configure: Private binaries installed in: C:\Program Files\OpenGL-2.1 configure: Data files installed in: C:\Program Files\Common Files \OpenGL-2.1 configure: Using compiler: C:\ghc\ghc-6.6\bin\ghc.exe configure: Compiler flavor: GHC configure: Compiler version: 6.6 configure: Using package tool: C:\ghc\ghc-6.6\bin\ghc-pkg.exe configure: Using ar found on system at: C:\ghc\ghc-6.6\bin\ar.exe configure: No haddock found configure: No pfesetup found configure: No ranlib found configure: Using runghc found on system at: C:\ghc\ghc-6.6\bin \runghc.exe configure: No runhugs found configure: No happy found configure: No alex found configure: Using hsc2hs: C:\ghc\ghc-6.6\bin\hsc2hs.exe configure: No c2hs found configure: No cpphs found configure: No greencard found Setup.hs: Cannot find: sh Oh. This is an error during configuration. I guess we could make cabal be more clear about this. You probably have to install cygwin, I don't have any Windows system, so I don't know. I presume the easiest option would be some binary distribution. Isn't OpenGL part of GHC's extra packages? On 6/24/07, Thomas Schilling [EMAIL PROTECTED] wrote: No, ffi is no extra package. It would be helpful if you posted you configure output though. BTW, please CC the list when replying. The easiest way should be to use the reply all feature of your mail client. Thanks, Thomas On 24 jun 2007, at 15.24, Jimmy Miller wrote: That's all I know right now. Is there another package I need to install for the C FFI? Also, is there any problem in Setup.hs saying that sh was not found? On 6/24/07, Thomas Schilling [EMAIL PROTECTED] wrote: That looks like a missing C macro definition. It should probably expand to either stdcall or ccall. A bit more information would be helpful. On 24 jun 2007, at 13.11, Jimmy Miller wrote: I'm trying to install HOpenGL 2.1, with ghc 6.6 on Windows XP. runghc Setup.hs configure seems to work fine. It gives messages about things missing, like sh, but there are no errors. When I run runghc Setup.hs build, I get the following error: [ 4 of 81] Compiling Graphics.Rendering.OpenGL.GL.Extensions ( Graphics/Renderin g/OpenGL/GL/Extensions.hs, dist\build/Graphics/Rendering/ OpenGL/GL/ Extensions.o ) Graphics/Rendering/OpenGL/GL/Extensions.hs:46:15: parse error on input `CALLCONV' Does anyone know what might be going wrong? -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Installing HOpenGL
I already installed Cygwin; I'll go over the INSTALL file and make sure I have all the required packages. And there was an HOpenGL tutorial from 2001 that said OpenGL would eventually be packaged with ghc, but I tried -package OpenGL and that didn't work, and I'm not sure where else I could download it. On 6/24/07, Thomas Schilling [EMAIL PROTECTED] wrote: On 24 jun 2007, at 19.53, Jimmy Miller wrote: Thanks, didn't know that. Here's the configure output: Configuring OpenGL-2.1... configure: C:\ghc\ghc-6.6\bin\ghc-pkg.exe configure: Dependency base-any: using base-2.0 configure: Using install prefix: C:\Program Files configure: Binaries installed in: C:\Program Files\Haskell\bin configure: Libraries installed in: C:\Program Files\Haskell \OpenGL-2.1\ghc-6.6 configure: Private binaries installed in: C:\Program Files\OpenGL-2.1 configure: Data files installed in: C:\Program Files\Common Files \OpenGL-2.1 configure: Using compiler: C:\ghc\ghc-6.6\bin\ghc.exe configure: Compiler flavor: GHC configure: Compiler version: 6.6 configure: Using package tool: C:\ghc\ghc-6.6\bin\ghc-pkg.exe configure: Using ar found on system at: C:\ghc\ghc-6.6\bin\ar.exe configure: No haddock found configure: No pfesetup found configure: No ranlib found configure: Using runghc found on system at: C:\ghc\ghc-6.6\bin \runghc.exe configure: No runhugs found configure: No happy found configure: No alex found configure: Using hsc2hs: C:\ghc\ghc-6.6\bin\hsc2hs.exe configure: No c2hs found configure: No cpphs found configure: No greencard found Setup.hs: Cannot find: sh Oh. This is an error during configuration. I guess we could make cabal be more clear about this. You probably have to install cygwin, I don't have any Windows system, so I don't know. I presume the easiest option would be some binary distribution. Isn't OpenGL part of GHC's extra packages? On 6/24/07, Thomas Schilling [EMAIL PROTECTED] wrote: No, ffi is no extra package. It would be helpful if you posted you configure output though. BTW, please CC the list when replying. The easiest way should be to use the reply all feature of your mail client. Thanks, Thomas On 24 jun 2007, at 15.24, Jimmy Miller wrote: That's all I know right now. Is there another package I need to install for the C FFI? Also, is there any problem in Setup.hs saying that sh was not found? On 6/24/07, Thomas Schilling [EMAIL PROTECTED] wrote: That looks like a missing C macro definition. It should probably expand to either stdcall or ccall. A bit more information would be helpful. On 24 jun 2007, at 13.11, Jimmy Miller wrote: I'm trying to install HOpenGL 2.1, with ghc 6.6 on Windows XP. runghc Setup.hs configure seems to work fine. It gives messages about things missing, like sh, but there are no errors. When I run runghc Setup.hs build, I get the following error: [ 4 of 81] Compiling Graphics.Rendering.OpenGL.GL.Extensions ( Graphics/Renderin g/OpenGL/GL/Extensions.hs, dist\build/Graphics/Rendering/ OpenGL/GL/ Extensions.o ) Graphics/Rendering/OpenGL/GL/Extensions.hs:46:15: parse error on input `CALLCONV' Does anyone know what might be going wrong? -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a -- a href=http://www.spreadfirefox.com/?q=affiliatesid=153516t=1;textarea rows=3 cols=40Get Firefox!/a ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Installing HOpenGL
I added Cygwin to my path so sh can be found, but now configure tells me c compiler cannot create executables On 6/24/07, Jimmy Miller [EMAIL PROTECTED] wrote: I already installed Cygwin; I'll go over the INSTALL file and make sure I have all the required packages. And there was an HOpenGL tutorial from 2001 that said OpenGL would eventually be packaged with ghc, but I tried -package OpenGL and that didn't work, and I'm not sure where else I could download it. On 6/24/07, Thomas Schilling [EMAIL PROTECTED] wrote: On 24 jun 2007, at 19.53, Jimmy Miller wrote: Thanks, didn't know that. Here's the configure output: Configuring OpenGL-2.1... configure: C:\ghc\ghc-6.6\bin\ghc-pkg.exe configure: Dependency base-any: using base-2.0 configure: Using install prefix: C:\Program Files configure: Binaries installed in: C:\Program Files\Haskell\bin configure: Libraries installed in: C:\Program Files\Haskell \OpenGL-2.1\ghc-6.6 configure: Private binaries installed in: C:\Program Files\OpenGL-2.1 configure: Data files installed in: C:\Program Files\Common Files \OpenGL-2.1 configure: Using compiler: C:\ghc\ghc-6.6\bin\ghc.exe configure: Compiler flavor: GHC configure: Compiler version: 6.6 configure: Using package tool: C:\ghc\ghc-6.6\bin\ghc-pkg.exe configure: Using ar found on system at: C:\ghc\ghc-6.6\bin\ar.exe configure: No haddock found configure: No pfesetup found configure: No ranlib found configure: Using runghc found on system at: C:\ghc\ghc-6.6\bin \runghc.exe configure: No runhugs found configure: No happy found configure: No alex found configure: Using hsc2hs: C:\ghc\ghc-6.6\bin\hsc2hs.exe configure: No c2hs found configure: No cpphs found configure: No greencard found Setup.hs: Cannot find: sh Oh. This is an error during configuration. I guess we could make cabal be more clear about this. You probably have to install cygwin, I don't have any Windows system, so I don't know. I presume the easiest option would be some binary distribution. Isn't OpenGL part of GHC's extra packages? On 6/24/07, Thomas Schilling [EMAIL PROTECTED] wrote: No, ffi is no extra package. It would be helpful if you posted you configure output though. BTW, please CC the list when replying. The easiest way should be to use the reply all feature of your mail client. Thanks, Thomas On 24 jun 2007, at 15.24, Jimmy Miller wrote: That's all I know right now. Is there another package I need to install for the C FFI? Also, is there any problem in Setup.hs saying that sh was not found? On 6/24/07, Thomas Schilling [EMAIL PROTECTED] wrote: That looks like a missing C macro definition. It should probably expand to either stdcall or ccall. A bit more information would be helpful. On 24 jun 2007, at 13.11, Jimmy Miller wrote: I'm trying to install HOpenGL 2.1, with ghc 6.6 on Windows XP. runghc Setup.hs configure seems to work fine. It gives messages about things missing, like sh, but there are no errors. When I run runghc Setup.hs build, I get the following error: [ 4 of 81] Compiling Graphics.Rendering.OpenGL.GL.Extensions ( Graphics/Renderin g/OpenGL/GL/Extensions.hs, dist\build/Graphics/Rendering/ OpenGL/GL/ Extensions.o ) Graphics/Rendering/OpenGL/GL/Extensions.hs:46:15: parse error on input `CALLCONV' Does anyone know what might be going wrong? -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a -- a href=http://www.spreadfirefox.com/?q=affiliatesid=153516t=1;textarea rows=3 cols=40Get Firefox!/a -- a href=http://www.spreadfirefox.com/?q=affiliatesid=153516t=1;textarea rows=3 cols=40Get Firefox!/a ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Installing HOpenGL
Yes, the OpenGL website seems unmaintained. I presume the easiest way to set it all up is to use the installer from http://www.haskell.org/ghc/download_ghc_661.html#windows From the size of it it seems to include all the extra packages. / Thomas On 24 jun 2007, at 21.50, Jimmy Miller wrote: I already installed Cygwin; I'll go over the INSTALL file and make sure I have all the required packages. And there was an HOpenGL tutorial from 2001 that said OpenGL would eventually be packaged with ghc, but I tried -package OpenGL and that didn't work, and I'm not sure where else I could download it. On 6/24/07, Thomas Schilling [EMAIL PROTECTED] wrote: On 24 jun 2007, at 19.53, Jimmy Miller wrote: Thanks, didn't know that. Here's the configure output: Configuring OpenGL-2.1... configure: C:\ghc\ghc-6.6\bin\ghc-pkg.exe configure: Dependency base-any: using base-2.0 configure: Using install prefix: C:\Program Files configure: Binaries installed in: C:\Program Files\Haskell\bin configure: Libraries installed in: C:\Program Files\Haskell \OpenGL-2.1\ghc-6.6 configure: Private binaries installed in: C:\Program Files \OpenGL-2.1 configure: Data files installed in: C:\Program Files\Common Files \OpenGL-2.1 configure: Using compiler: C:\ghc\ghc-6.6\bin\ghc.exe configure: Compiler flavor: GHC configure: Compiler version: 6.6 configure: Using package tool: C:\ghc\ghc-6.6\bin\ghc-pkg.exe configure: Using ar found on system at: C:\ghc\ghc-6.6\bin\ar.exe configure: No haddock found configure: No pfesetup found configure: No ranlib found configure: Using runghc found on system at: C:\ghc\ghc-6.6\bin \runghc.exe configure: No runhugs found configure: No happy found configure: No alex found configure: Using hsc2hs: C:\ghc\ghc-6.6\bin\hsc2hs.exe configure: No c2hs found configure: No cpphs found configure: No greencard found Setup.hs: Cannot find: sh Oh. This is an error during configuration. I guess we could make cabal be more clear about this. You probably have to install cygwin, I don't have any Windows system, so I don't know. I presume the easiest option would be some binary distribution. Isn't OpenGL part of GHC's extra packages? On 6/24/07, Thomas Schilling [EMAIL PROTECTED] wrote: No, ffi is no extra package. It would be helpful if you posted you configure output though. BTW, please CC the list when replying. The easiest way should be to use the reply all feature of your mail client. Thanks, Thomas On 24 jun 2007, at 15.24, Jimmy Miller wrote: That's all I know right now. Is there another package I need to install for the C FFI? Also, is there any problem in Setup.hs saying that sh was not found? On 6/24/07, Thomas Schilling [EMAIL PROTECTED] wrote: That looks like a missing C macro definition. It should probably expand to either stdcall or ccall. A bit more information would be helpful. On 24 jun 2007, at 13.11, Jimmy Miller wrote: I'm trying to install HOpenGL 2.1, with ghc 6.6 on Windows XP. runghc Setup.hs configure seems to work fine. It gives messages about things missing, like sh, but there are no errors. When I run runghc Setup.hs build, I get the following error: [ 4 of 81] Compiling Graphics.Rendering.OpenGL.GL.Extensions ( Graphics/Renderin g/OpenGL/GL/Extensions.hs, dist\build/Graphics/Rendering/ OpenGL/GL/ Extensions.o ) Graphics/Rendering/OpenGL/GL/Extensions.hs:46:15: parse error on input `CALLCONV' Does anyone know what might be going wrong? -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Constructing a datatype given just its constructor as a string?
Just noticed that all my responses have been going only to Neil, not to the group. Anyway, the jist of our conversation was that it's not possible to create arbitrary datatypes/constructors from strings in Haskell. Can anyone deny/confirm? ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: copy-on-write monad?
Oleg, Once again, many thanks. This is great info. BTW, i realized that my approach has an underlying process algebraic formulation. Roughly speaking, you can think of the mutable collection as a tuple space in which the names of the tuple space are the mutable locations in the collection. Updates correspond to persistent (i.e. replicated) outputs, accesses correspond to inputs. There is a natural interpretation of this approach in terms of delimited continuations; but, i think the other way round -- interpreting delimited continuations in terms of process algebraic operations -- is actually more natural. Best wishes, --greg On 6/23/07, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: Greg Meredith wrote: First, has anyone worked out a monadic approach to copy-on-write? (And, Is there any analysis of perf characteristics of said monadic schemes?) If you use Zippers (Huet's or generic ones) with functional updates, copy-on-write comes out automatically and by default. This is explained in http://okmij.org/ftp/Computation/Continuations.html#zipper and, in a more readable form, in a recent paper http://okmij.org/ftp/papers/context-OS.pdf The web page also contains the complete code. -- L.G. Meredith Managing Partner Biosimilarity LLC 505 N 72nd St Seattle, WA 98103 +1 206.650.3740 http://biosimilarity.blogspot.com ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] XmlSerializer.deserialize?
Yes, or better: gshow' :: Data a = a - String gshow' t = fromMaybe (showConstr(toConstr t)) (cast t) (which gets rid of the parentheses around numbers). Still doesnt get a deserialize though ;-) On 6/24/07, Andrea Vezzosi [EMAIL PROTECTED] wrote: As a side note i'd like to point out that introspectData has a problem with constructors containing Strings because show (x::String) /= x: data Foo = Foo { bar :: String } deriving (Typeable,Data) introspectData (Foo quux) -- [(bar,\quux\)] Those extras \ don't look very nice in the xml.. (the output of introspectData is also wrong in the article's example ) you should probably use a modified gshow: gshow' :: Data a = a - String gshow' x = fromMaybe (gshow x) (cast x) which is id for Strings. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Installing HOpenGL
I've installed ghc 6.6.1, but when I try to compile and OGL program like this: ghc -package GLUT ogl.hs I get the error: Failed to load interface for `GLUT': Use -v to see a list of the files searched for. I tried running -v, but it doesn't tell me anything useful. On 6/24/07, Thomas Schilling [EMAIL PROTECTED] wrote: Yes, the OpenGL website seems unmaintained. I presume the easiest way to set it all up is to use the installer from http://www.haskell.org/ghc/download_ghc_661.html#windows From the size of it it seems to include all the extra packages. / Thomas On 24 jun 2007, at 21.50, Jimmy Miller wrote: I already installed Cygwin; I'll go over the INSTALL file and make sure I have all the required packages. And there was an HOpenGL tutorial from 2001 that said OpenGL would eventually be packaged with ghc, but I tried -package OpenGL and that didn't work, and I'm not sure where else I could download it. On 6/24/07, Thomas Schilling [EMAIL PROTECTED] wrote: On 24 jun 2007, at 19.53, Jimmy Miller wrote: Thanks, didn't know that. Here's the configure output: Configuring OpenGL-2.1... configure: C:\ghc\ghc-6.6\bin\ghc-pkg.exe configure: Dependency base-any: using base-2.0 configure: Using install prefix: C:\Program Files configure: Binaries installed in: C:\Program Files\Haskell\bin configure: Libraries installed in: C:\Program Files\Haskell \OpenGL-2.1\ghc-6.6 configure: Private binaries installed in: C:\Program Files \OpenGL-2.1 configure: Data files installed in: C:\Program Files\Common Files \OpenGL-2.1 configure: Using compiler: C:\ghc\ghc-6.6\bin\ghc.exe configure: Compiler flavor: GHC configure: Compiler version: 6.6 configure: Using package tool: C:\ghc\ghc-6.6\bin\ghc-pkg.exe configure: Using ar found on system at: C:\ghc\ghc-6.6\bin\ar.exe configure: No haddock found configure: No pfesetup found configure: No ranlib found configure: Using runghc found on system at: C:\ghc\ghc-6.6\bin \runghc.exe configure: No runhugs found configure: No happy found configure: No alex found configure: Using hsc2hs: C:\ghc\ghc-6.6\bin\hsc2hs.exe configure: No c2hs found configure: No cpphs found configure: No greencard found Setup.hs: Cannot find: sh Oh. This is an error during configuration. I guess we could make cabal be more clear about this. You probably have to install cygwin, I don't have any Windows system, so I don't know. I presume the easiest option would be some binary distribution. Isn't OpenGL part of GHC's extra packages? On 6/24/07, Thomas Schilling [EMAIL PROTECTED] wrote: No, ffi is no extra package. It would be helpful if you posted you configure output though. BTW, please CC the list when replying. The easiest way should be to use the reply all feature of your mail client. Thanks, Thomas On 24 jun 2007, at 15.24, Jimmy Miller wrote: That's all I know right now. Is there another package I need to install for the C FFI? Also, is there any problem in Setup.hs saying that sh was not found? On 6/24/07, Thomas Schilling [EMAIL PROTECTED] wrote: That looks like a missing C macro definition. It should probably expand to either stdcall or ccall. A bit more information would be helpful. On 24 jun 2007, at 13.11, Jimmy Miller wrote: I'm trying to install HOpenGL 2.1, with ghc 6.6 on Windows XP. runghc Setup.hs configure seems to work fine. It gives messages about things missing, like sh, but there are no errors. When I run runghc Setup.hs build, I get the following error: [ 4 of 81] Compiling Graphics.Rendering.OpenGL.GL.Extensions ( Graphics/Renderin g/OpenGL/GL/Extensions.hs, dist\build/Graphics/Rendering/ OpenGL/GL/ Extensions.o ) Graphics/Rendering/OpenGL/GL/Extensions.hs:46:15: parse error on input `CALLCONV' Does anyone know what might be going wrong? -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a -- a href=http://www.spreadfirefox.com/?q=affiliatesid=153516t=1;textarea rows=3 cols=40Get Firefox!/a ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Installing HOpenGL
On 25 jun 2007, at 00.18, Jimmy Miller wrote: I've installed ghc 6.6.1, but when I try to compile and OGL program like this: ghc -package GLUT ogl.hs I get the error: Failed to load interface for `GLUT': Use -v to see a list of the files searched for. I tried running -v, but it doesn't tell me anything useful. Can you post the output of ghc-pkg list? If that doesn't list GLUT, then it is not installed (or not correctly). If it is installed, you can try ghc --make ogl.hs That usually takes care of all the required packages (so can avoid a lot of fiddling around). / Thomas ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] directory tree?
Thanks, Bryan, this is much cleaner than the imperative hack I was throwing together. And aside from the imports, it even fits the couple lines of code criteria! Wonderful. I won't be able to try this out until I get back to work, but I'm wondering whether this will handle a few thousand files. As it is, even the gunzip -c ./2*/*.z I'm trying to emulate doesn't really work as is, because the OS complains there are too many pattern matches. Does namesMatching just feed the pattern to the OS, or does it match the pattern itself? Chad What got me thinking about this is I'd like to be able to do something like this in just a couple lines of code: gunzip -c ./2*/*.z ... and feed the result into a giant lazy ByteString. Using my FileManip library, you'd do that like this. import Codec.Compression.GZip import qualified Data.ByteString.Lazy as B import System.FilePath.Glob foo :: IO B.ByteString foo = namesMatching */*.gz = fmap B.concat . mapM (fmap decompress . B.readFile) ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Installing HOpenGL
Here it is. Both OpenGL and GLUT are installed: Cabal-1.1.6.2, GLUT-2.1.1, HUnit-1.1.1, OpenGL-2.2.1, QuickCheck-1.0.1, Win32-2.1.1, base-2.1.1, cgi-3001.1.1, fgl-5.4.1, filepath-1.0, (ghc-6.6.1), haskell-src-1.0.1, haskell98-1.0, html-1.0.1, mtl-1.0.1, network-2.0.1, parsec-2.0, regex-base-0.72, regex-compat-0.71, regex-posix-0.71, rts-1.0, stm-2.0, template-haskell-2.1, time-1.1.1, xhtml-3000.0.2 I tried using --make, but ghc said could not find module GL On 6/24/07, Thomas Schilling [EMAIL PROTECTED] wrote: On 25 jun 2007, at 00.18, Jimmy Miller wrote: I've installed ghc 6.6.1, but when I try to compile and OGL program like this: ghc -package GLUT ogl.hs I get the error: Failed to load interface for `GLUT': Use -v to see a list of the files searched for. I tried running -v, but it doesn't tell me anything useful. Can you post the output of ghc-pkg list? If that doesn't list GLUT, then it is not installed (or not correctly). If it is installed, you can try ghc --make ogl.hs That usually takes care of all the required packages (so can avoid a lot of fiddling around). / Thomas -- a href=http://www.spreadfirefox.com/?q=affiliatesid=153516t=1;textarea rows=3 cols=40Get Firefox!/a ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Installing HOpenGL
I found the examples included in the source code very helpful. http://darcs.haskell.org/packages/GLUT/examples/ I think the RedBook directory contains the most examples. If you want to know the modules a package exports you can use, e.g.. $ ghc-pkg describe OpenGL name: OpenGL version: 2.2.1 license: BSD3 copyright: maintainer: [EMAIL PROTECTED] stability: homepage: package-url: description: category: author: exposed: True exposed-modules: Graphics.Rendering.OpenGL.GL.Antialiasing Graphics.Rendering.OpenGL.GL.BasicTypes [...] These are the full names of the modules, you have to use to import them. For GLUT there's one module that re-exports all others, iirc. / Thomas On 25 jun 2007, at 01.21, Jimmy Miller wrote: I got the packages imported by using the full names (Graphics.UI.GLUT and Graphics.Rendering.OpenGL.GL). The compiler doesn't recognize names like WindowPosition and WindowSize, but I assume that's because the code is so out of date (this is from the 2001 tutorial). I'll look in the docs to see how to procede. On 6/24/07, Jimmy Miller [EMAIL PROTECTED] wrote: Here it is. Both OpenGL and GLUT are installed: Cabal-1.1.6.2, GLUT-2.1.1, HUnit-1.1.1, OpenGL-2.2.1, QuickCheck-1.0.1, Win32-2.1.1, base-2.1.1, cgi-3001.1.1, fgl-5.4.1, filepath-1.0, (ghc-6.6.1), haskell-src-1.0.1, haskell98-1.0, html-1.0.1, mtl-1.0.1, network-2.0.1, parsec-2.0, regex- base-0.72, regex-compat-0.71, regex-posix-0.71, rts-1.0, stm-2.0, template-haskell-2.1, time-1.1.1, xhtml-3000.0.2 I tried using --make, but ghc said could not find module GL On 6/24/07, Thomas Schilling [EMAIL PROTECTED] wrote: On 25 jun 2007, at 00.18, Jimmy Miller wrote: I've installed ghc 6.6.1, but when I try to compile and OGL program like this: ghc -package GLUT ogl.hs I get the error: Failed to load interface for `GLUT': Use -v to see a list of the files searched for. I tried running -v, but it doesn't tell me anything useful. Can you post the output of ghc-pkg list? If that doesn't list GLUT, then it is not installed (or not correctly). If it is installed, you can try ghc --make ogl.hs That usually takes care of all the required packages (so can avoid a lot of fiddling around). / Thomas -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Installing HOpenGL
I'll look at those. Everything's working fine now, thanks for all of your help :) On 6/24/07, Thomas Schilling [EMAIL PROTECTED] wrote: I found the examples included in the source code very helpful. http://darcs.haskell.org/packages/GLUT/examples/ I think the RedBook directory contains the most examples. If you want to know the modules a package exports you can use, e.g.. $ ghc-pkg describe OpenGL name: OpenGL version: 2.2.1 license: BSD3 copyright: maintainer: [EMAIL PROTECTED] stability: homepage: package-url: description: category: author: exposed: True exposed-modules: Graphics.Rendering.OpenGL.GL.Antialiasing Graphics.Rendering.OpenGL.GL.BasicTypes [...] These are the full names of the modules, you have to use to import them. For GLUT there's one module that re-exports all others, iirc. / Thomas On 25 jun 2007, at 01.21, Jimmy Miller wrote: I got the packages imported by using the full names (Graphics.UI.GLUT and Graphics.Rendering.OpenGL.GL). The compiler doesn't recognize names like WindowPosition and WindowSize, but I assume that's because the code is so out of date (this is from the 2001 tutorial). I'll look in the docs to see how to procede. On 6/24/07, Jimmy Miller [EMAIL PROTECTED] wrote: Here it is. Both OpenGL and GLUT are installed: Cabal-1.1.6.2, GLUT-2.1.1, HUnit-1.1.1, OpenGL-2.2.1, QuickCheck-1.0.1, Win32-2.1.1, base-2.1.1, cgi-3001.1.1, fgl-5.4.1, filepath-1.0, (ghc-6.6.1), haskell-src-1.0.1, haskell98-1.0, html-1.0.1, mtl-1.0.1, network-2.0.1, parsec-2.0, regex- base-0.72, regex-compat-0.71, regex-posix-0.71, rts-1.0, stm-2.0, template-haskell-2.1, time-1.1.1, xhtml-3000.0.2 I tried using --make, but ghc said could not find module GL On 6/24/07, Thomas Schilling [EMAIL PROTECTED] wrote: On 25 jun 2007, at 00.18, Jimmy Miller wrote: I've installed ghc 6.6.1, but when I try to compile and OGL program like this: ghc -package GLUT ogl.hs I get the error: Failed to load interface for `GLUT': Use -v to see a list of the files searched for. I tried running -v, but it doesn't tell me anything useful. Can you post the output of ghc-pkg list? If that doesn't list GLUT, then it is not installed (or not correctly). If it is installed, you can try ghc --make ogl.hs That usually takes care of all the required packages (so can avoid a lot of fiddling around). / Thomas -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a -- a href=http://www.spreadfirefox.com/? q=affiliatesid=153516t=1textarea rows=3 cols=40Get Firefox!/a -- a href=http://www.spreadfirefox.com/?q=affiliatesid=153516t=1;textarea rows=3 cols=40Get Firefox!/a ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Practical Haskell question.
Now I've got a situation I can't figure out how to resolve. I want to have a set of actions which are executed sequentially, but which, before I even start to execute the first one, have been inspected for legality and/or plausibility. Consider this kind of sequence: do x - performActionA y - performActionB z - performActionC return $ calculateStuff x y z Now obviously this is going to be in a monad of some kind. Were this a regular, run-of-the-mill program I'd just use the IO monad. But what I want to do instead is, before executing any of the perform* functions, check that the actions desired are actually permitted (or possible) given a set of circumstances. For example let's say it's a permissions issue and performActionB can only be done if I'm root. If I'm not root I don't want performActionA done because I can't complete the transaction. (Maybe ActionA is non-reversible, say.) Or let's say this is code that's accessing databases on the network. If the network link to C can't be established, I don't want to screw around with A and B's links at all -- it's too expensive, too time-consuming or whatever. Were I programming this in C, C++, Python, Ruby, etc. I could do this in my sleep. Functions are addresses (C/C++) or objects with an ID (Python/Ruby) so it's possible to take them and do some kind of check based on identities before executing things (although the scaffolding around this would be nontrivial in any of these languages except, possibly, Ruby). Functions in Haskell don't have this property, however, so I can't figure out what I'd do to perform similar work. I'm sure there's a way to do it, but I just can't see it. -- Michael T. Richter [EMAIL PROTECTED] (GoogleTalk: [EMAIL PROTECTED]) I'm not schooled in the science of human factors, but I suspect surprise is not an element of a robust user interface. (Chip Rosenthal) signature.asc Description: This is a digitally signed message part ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Constructing a datatype given just its constructor as a string?
On Sun, Jun 24, 2007 at 10:55:40PM +0200, Hugh Perkins wrote: Anyway, the jist of our conversation was that it's not possible to create arbitrary datatypes/constructors from strings in Haskell. Can anyone deny/confirm? If you want a function like fromConstr, where the 'a' depends on the input string, you can write it in CPS or wrap the result in an existential datatype. But I guess the problem is with arbitrary, right? Best regards Tomek ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe