valderman / haste-compiler

A GHC-based Haskell to JavaScript compiler
http://haste-lang.org
BSD 3-Clause "New" or "Revised" License
1.45k stars 109 forks source link

Does not work on OSX #142

Closed viclib closed 9 years ago

viclib commented 10 years ago

Installed from source following instructions

hastec vec.hs
vec.hs:3:18:
    Could not find module `Prelude'
    Use -v to see a list of the files searched for.
valderman commented 10 years ago

Which OSX version, Cabal version, GHC version and Haste version are you using?

This is usually a symptom of haste-boot failing somewhere along the way. What is the output if you run haste-boot --force to re-bootstrap Haste?

viclib commented 10 years ago

Hello! I've tried again with a new completely clean installation of Haskell-Platform for OSX Mavericks. I'm getting another error now. This is the output of haste-boot --force:

Downloading base libs from ekblad.cc
Sending:
GET /haste-libs/haste-libs-0.2.11.tar.bz2 HTTP/1.1
Host: ekblad.cc

Creating new connection to ekblad.cc
Received:
HTTP/1.1 200 OK 
Content-Type: application/octet-stream
Accept-Ranges: bytes
Content-Length: 628257
Date: Mon, 17 Mar 2014 06:56:46 GMT
Server: lighttpd/1.4.31

Reading package info from "libraries/rts.pkg" ... done.
Resolving dependencies...
Configuring ghc-prim-0.3.0.0...

/var/folders/f0/dlx6tl5x18z4k4_vq0fkqtb80000gn/T/11653.c:1:12:
    warning: control reaches end of non-void function [-Wreturn-type]
int foo() {}
        ^
1 warning generated.
Building ghc-prim-0.3.0.0...
Preprocessing library ghc-prim-0.3.0.0...

GHC/Classes.hs:34:38:
    warning: missing terminating ' character [-Winvalid-pp-token]
default ()              -- Double isn't available yet
                                    ^

GHC/Classes.hs:195:10:
    warning: missing terminating ' character [-Winvalid-pp-token]
-- We don't use deriving for Ord Char, because for Ord the derived
        ^

GHC/Classes.hs:252:15:
    warning: missing terminating ' character [-Winvalid-pp-token]
-- OK, so they're technically not part of a class...:
            ^

GHC/Classes.hs:256:15:
    warning: missing terminating '"' character [-Winvalid-pp-token]
-- | Boolean \"and\"
            ^

GHC/Classes.hs:261:15:
    warning: missing terminating '"' character [-Winvalid-pp-token]
-- | Boolean \"or\"
            ^

GHC/Classes.hs:266:15:
    warning: missing terminating '"' character [-Winvalid-pp-token]
-- | Boolean \"not\"
            ^
6 warnings generated.

GHC/CString.hs:30:60:
    warning: missing terminating ' character [-Winvalid-pp-token]
-- This code is needed for virtually all programs, since it's used for
                                                        ^

GHC/CString.hs:41:15:
    warning: missing terminating ' character [-Winvalid-pp-token]
        -- that it'll be inlined at every literal, which is a waste
                ^
2 warnings generated.

GHC/Debug.hs:43:38:
    warning: missing terminating ' character [-Winvalid-pp-token]
            write mba offset (C# x : xs') s
                                        ^

GHC/Debug.hs:45:18:
    warning: missing terminating ' character [-Winvalid-pp-token]
                    s' ->
                    ^
2 warnings generated.

GHC/Tuple.hs:20:38:
    warning: missing terminating ' character [-Winvalid-pp-token]
default () -- Double and Integer aren't available yet
                                    ^
1 warning generated.

GHC/Types.hs:94:34:
    warning: missing terminating '"' character [-Winvalid-pp-token]
There is really only one way to \"perform\" an I\/O action: bind it to
                                ^

GHC/Types.hs:96:22:
    warning: missing terminating ' character [-Winvalid-pp-token]
be performed.  It isn't possible to perform I\/O from an arbitrary
                    ^
2 warnings generated.
Compiling GHC.Classes into /Users/vhsmaia/.haste/jsmods
Compiling GHC.Magic into /Users/vhsmaia/.haste/jsmods
Compiling GHC.Tuple into /Users/vhsmaia/.haste/jsmods
Compiling GHC.Types into /Users/vhsmaia/.haste/jsmods
Compiling GHC.CString into /Users/vhsmaia/.haste/jsmods
WARNING: Unsupported PrimOp: indexCharOffAddr#
WARNING: Unsupported PrimOp: indexCharOffAddr#
WARNING: Unsupported PrimOp: indexCharOffAddr#
WARNING: Unsupported PrimOp: indexCharOffAddr#
WARNING: Unsupported PrimOp: indexCharOffAddr#
WARNING: Unsupported PrimOp: indexCharOffAddr#
WARNING: Unsupported PrimOp: indexCharOffAddr#
WARNING: Unsupported PrimOp: indexCharOffAddr#
WARNING: Unsupported PrimOp: indexCharOffAddr#
WARNING: Unsupported PrimOp: indexCharOffAddr#
WARNING: Unsupported PrimOp: indexCharOffAddr#
Compiling GHC.Debug into /Users/vhsmaia/.haste/jsmods
Compiling GHC.IntWord64 into /Users/vhsmaia/.haste/jsmods

GHC/Classes.hs:34:38:
    warning: missing terminating ' character [-Winvalid-pp-token]
default ()              -- Double isn't available yet
                                    ^

GHC/Classes.hs:195:10:
    warning: missing terminating ' character [-Winvalid-pp-token]
-- We don't use deriving for Ord Char, because for Ord the derived
        ^

GHC/Classes.hs:252:15:
    warning: missing terminating ' character [-Winvalid-pp-token]
-- OK, so they're technically not part of a class...:
            ^

GHC/Classes.hs:256:15:
    warning: missing terminating '"' character [-Winvalid-pp-token]
-- | Boolean \"and\"
            ^

GHC/Classes.hs:261:15:
    warning: missing terminating '"' character [-Winvalid-pp-token]
-- | Boolean \"or\"
            ^

GHC/Classes.hs:266:15:
    warning: missing terminating '"' character [-Winvalid-pp-token]
-- | Boolean \"not\"
            ^
6 warnings generated.

GHC/CString.hs:30:60:
    warning: missing terminating ' character [-Winvalid-pp-token]
-- This code is needed for virtually all programs, since it's used for
                                                        ^

GHC/CString.hs:41:15:
    warning: missing terminating ' character [-Winvalid-pp-token]
        -- that it'll be inlined at every literal, which is a waste
                ^
2 warnings generated.

GHC/Debug.hs:43:38:
    warning: missing terminating ' character [-Winvalid-pp-token]
            write mba offset (C# x : xs') s
                                        ^

GHC/Debug.hs:45:18:
    warning: missing terminating ' character [-Winvalid-pp-token]
                    s' ->
                    ^
2 warnings generated.

GHC/Tuple.hs:20:38:
    warning: missing terminating ' character [-Winvalid-pp-token]
default () -- Double and Integer aren't available yet
                                    ^
1 warning generated.

GHC/Types.hs:94:34:
    warning: missing terminating '"' character [-Winvalid-pp-token]
There is really only one way to \"perform\" an I\/O action: bind it to
                                ^

GHC/Types.hs:96:22:
    warning: missing terminating ' character [-Winvalid-pp-token]
be performed.  It isn't possible to perform I\/O from an arbitrary
                    ^
2 warnings generated.
Compiling GHC.Classes into /Users/vhsmaia/.haste/jsmods
Compiling GHC.Magic into /Users/vhsmaia/.haste/jsmods
Compiling GHC.Tuple into /Users/vhsmaia/.haste/jsmods
Compiling GHC.Types into /Users/vhsmaia/.haste/jsmods
Compiling GHC.CString into /Users/vhsmaia/.haste/jsmods
WARNING: Unsupported PrimOp: indexCharOffAddr#
WARNING: Unsupported PrimOp: indexCharOffAddr#
WARNING: Unsupported PrimOp: indexCharOffAddr#
WARNING: Unsupported PrimOp: indexCharOffAddr#
WARNING: Unsupported PrimOp: indexCharOffAddr#
WARNING: Unsupported PrimOp: indexCharOffAddr#
WARNING: Unsupported PrimOp: indexCharOffAddr#
WARNING: Unsupported PrimOp: indexCharOffAddr#
WARNING: Unsupported PrimOp: indexCharOffAddr#
WARNING: Unsupported PrimOp: indexCharOffAddr#
WARNING: Unsupported PrimOp: indexCharOffAddr#
Compiling GHC.Debug into /Users/vhsmaia/.haste/jsmods
Compiling GHC.IntWord64 into /Users/vhsmaia/.haste/jsmods
In-place registering ghc-prim-0.3.0.0...
Installing dist/build/GHC/Classes.hi...
Installing dist/build/GHC/CString.hi...
Installing dist/build/GHC/Debug.hi...
Installing dist/build/GHC/IntWord64.hi...
Installing dist/build/GHC/Magic.hi...
Installing dist/build/GHC/Tuple.hi...
Installing dist/build/GHC/Types.hi...
Reading package info from "packageconfig" ... done.
Reading package info from stdin ... done.
Cabal-1.16.0: Warning: library-dirs: /Users/vhsmaia/.haste/libraries/lib/Cabal doesn't exist or isn't a directory
Cabal-1.16.0: dependency "array-0.4.0.1-3b78425c10ff2dad7acf7e8c8ae014c3" doesn't exist (ignoring)
Cabal-1.16.0: dependency "base-4.6.0.1-6c351d70a24d3e96f315cba68f3acf57" doesn't exist (ignoring)
Cabal-1.16.0: dependency "containers-0.5.0.0-ab1dae9a94cd3cc84e7b2805636ebfa2" doesn't exist (ignoring)
Cabal-1.16.0: dependency "directory-1.2.0.1-b2c415ae3fe3357f80678150b6da5a3c" doesn't exist (ignoring)
Cabal-1.16.0: dependency "filepath-1.3.0.1-b12cbe18566fe1532a1fda4c85e31cbe" doesn't exist (ignoring)
Cabal-1.16.0: dependency "old-time-1.1.0.1-4096e5c0be1f1ff8883115216d1bc5d1" doesn't exist (ignoring)
Cabal-1.16.0: dependency "pretty-1.1.1.0-66181c695e6a2e173ba2088cf55cc396" doesn't exist (ignoring)
Cabal-1.16.0: dependency "process-1.1.0.2-d20d01635195e5ac2ebee73032c7fe84" doesn't exist (ignoring)
Cabal-1.16.0: dependency "unix-2.6.0.1-1b262a42f35f597365016088e0cde399" doesn't exist (ignoring)
Cabal-1.16.0: import-dirs: /Users/vhsmaia/.haste/libraries/lib/Cabal doesn't exist or isn't a directory (ignoring)
Cabal-1.16.0: file Distribution/Compiler.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/InstalledPackageInfo.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/License.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Make.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/ModuleName.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Package.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/PackageDescription.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/PackageDescription/Configuration.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/PackageDescription/Parse.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/PackageDescription/Check.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/PackageDescription/PrettyPrint.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/ParseUtils.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/ReadE.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Build.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Build/Macros.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Build/PathsModule.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/BuildPaths.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Bench.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Command.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Compiler.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Configure.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/GHC.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/LHC.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Haddock.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Hpc.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Hugs.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Install.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/InstallDirs.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/JHC.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/LocalBuildInfo.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/NHC.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/PackageIndex.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/PreProcess.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/PreProcess/Unlit.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Program.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Program/Ar.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Program/Builtin.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Program/Db.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Program/GHC.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Program/HcPkg.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Program/Hpc.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Program/Ld.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Program/Run.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Program/Script.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Program/Types.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Register.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Setup.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/SrcDist.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Test.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/UHC.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/UserHooks.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/Utils.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/System.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/TestSuite.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Text.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Verbosity.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Version.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Compat/ReadP.hi is missing (ignoring)
Cabal-1.16.0: file Language/Haskell/Extension.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/GetOpt.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Compat/Exception.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Compat/CopyFile.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Compat/TempFile.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/GHC/IPI641.hi is missing (ignoring)
Cabal-1.16.0: file Distribution/Simple/GHC/IPI642.hi is missing (ignoring)
Cabal-1.16.0: file Paths_Cabal.hi is missing (ignoring)
Resolving dependencies...
Configuring integer-gmp-0.5.0.0...

/var/folders/f0/dlx6tl5x18z4k4_vq0fkqtb80000gn/T/11856.c:1:12:
    warning: control reaches end of non-void function [-Wreturn-type]
int foo() {}
        ^
1 warning generated.
Building integer-gmp-0.5.0.0...
Preprocessing library integer-gmp-0.5.0.0...

GHC/Integer/Type.lhs:57:30:
    warning: missing terminating ' character [-Winvalid-pp-token]
                        -- we don't have Word available at the moment.
                                ^

GHC/Integer/Type.lhs:75:3:
    error: invalid preprocessing directive
    #-}
    ^

GHC/Integer/Type.lhs:108:3:
    error: invalid preprocessing directive
    #-}
    ^

GHC/Integer/Type.lhs:128:13:
    warning: missing terminating ' character [-Winvalid-pp-token]
-- XXX There's no good reason for us using unboxed tuples for the
            ^

GHC/Integer/Type.lhs:129:23:
    warning: missing terminating ' character [-Winvalid-pp-token]
-- results, but we don't have Data.Tuple available.
                    ^

GHC/Integer/Type.lhs:131:20:
    warning: missing terminating ' character [-Winvalid-pp-token]
-- Note that we don't check for divide-by-zero here. That needs
                ^

GHC/Integer/Type.lhs:132:23:
    warning: missing terminating ' character [-Winvalid-pp-token]
-- to be done where it's used.
                    ^

GHC/Integer/Type.lhs:133:11:
    warning: missing terminating ' character [-Winvalid-pp-token]
-- (we don't have error)
        ^

GHC/Integer/Type.lhs:140:17:
    warning: missing terminating ' character [-Winvalid-pp-token]
        -- NB. don't inline these.  (# S# (i `quotInt#` j), ... #) means
                    ^

GHC/Integer/Type.lhs:142:62:
    warning: missing terminating ' character [-Winvalid-pp-token]
        -- useless thunk.  Placing the bindings here means they'll be
                                                                ^

GHC/Integer/Type.lhs:158:17:
    warning: missing terminating ' character [-Winvalid-pp-token]
        -- NB. don't inline these.  See quotRemInteger above.
                    ^

GHC/Integer/Type.lhs:173:22:
    warning: missing terminating ' character [-Winvalid-pp-token]
{- Special case doesn't work, because a 1-element J# has the range
                    ^

GHC/Integer/Type.lhs:227:10:
    warning: missing terminating ' character [-Winvalid-pp-token]
-- We can't throw an error here, so it is up to our caller to
        ^

GHC/Integer/Type.lhs:428:9:
    warning: missing terminating ' character [-Winvalid-pp-token]
-- doesn't work too well, because encodeFloat is defined in
        ^
12 warnings and 2 errors generated.
hastec: hastec: phase `C pre-processor' failed (exitcode = 1)
Failed to install integer-gmp-0.5.0.0
cabal: Error: some packages failed to install:
integer-gmp-0.5.0.0 failed during the building phase. The exception was:
ExitFailure 1
Command '/Users/vhsmaia/Library/Haskell/ghc-7.6.3/lib/haste-compiler-0.2.11/bin/haste-inst' failed with error  code 1
bitemyapp commented 10 years ago

I'm getting errors with haste-boot that are similar to this as well on Mac OS X.

valderman commented 10 years ago

It seems that this problem is caused by OSX pretending that clang is actually GCC. While this is obviously a problem with OSX, not Haste, it seems like a shame to leave Mac users out in the cold.

I'm not quite sure how to proceed here, probably by requiring that users on OSX provide the path to a working GCC binary on the command line. In the meantime, here is a workaround for this OSX bug: http://stackoverflow.com/questions/19851315/error-installing-stylish-haskell-on-mac-os-x-on-haskell-platform-2013-2-0-0

viclib commented 10 years ago

Weird error right now -

$ haste-boot
Downloading base libs from ekblad.cc
Sending:
GET /haste-libs/haste-libs-0.2.11.tar.bz2 HTTP/1.1
Host: ekblad.cc

Creating new connection to ekblad.cc
connect: timeout (Operation timed out)

Guess some server is offline? I'll be trying in a few hours. Edit: oh I see ekblad.cc's role. So that's it, I'll be waiting. My bad.

bergmark commented 10 years ago

To the people having problems, how have you installed GHC? The haskell platform binary installer is somewhat broken, even if you use the clang-wrapper fix. Installing haskell-platform from homebrew solves all the problems I've seen in this area. But I can't tell for sure that this is the actual issue, and I haven't tried to reproduce this myself.

bitemyapp commented 10 years ago

@bergmark yeah I was using haskell-platform the binary. I'll try homebrew.

bitemyapp commented 10 years ago

@bergmark I got further, but can't install any packages. See #145

bitemyapp commented 10 years ago

Do any of the developers use a Mac? If so, are they using the homebrew install of ghc and haskell-platform?

valderman commented 10 years ago

Unfortunately, no. It would be great to have some more involved people with OSX or Windows as their primary platform...

aycanirican commented 10 years ago

I am using haste-compiler on mavericks and had no problem so far. Just installed ghc (from haskell.org) and Mark's clang-wrapper http://www.haskell.org/pipermail/haskell-cafe/2013-October/111174.html

bergmark commented 10 years ago

You basically want an extra maintainer for each of these platforms. Unless someone in here volunteers I'd recommend advertising for it. I think a lot of people would be happy to take it on, it shouldn't be that big of a commitment. They would test before releases, answer related support tickets, it's open ended of course. Windows users may be hard to come by, but a lot of Haskell people use OS X.

I also think a lot of people like to be officially mentioned as members of projects - no matter the size of their role. Free software is great for building a CV :)

Generally with FOSS projects I find that trying to designate someone works best, it can be as simple as asking "You reported this bug, will you fix it?" - but in a more SPJ-friendly manner :-) - instead of just hoping that someone will grab it. It also makes it clear if someone is actually working on it.

Or, get a build server, but this probably isn't free so I hope no one expects that from you!

viclib commented 10 years ago

OK, uninstalled everything, installed again with brew, checked it is properly linked to gcc-4.2, updated cabal, installed haste-compiler. Now I get this:

$ hastec vec.hs
Compiling FayFromJs into .
Linking vec.js
Linking Main
hastec: /Users/vhsmaia/.haste/jsmods/main/Main.jsmod: openBinaryFile: does not exist (No such file or directory)

Ideas?

Edit: managed to get it work by using Main.hs instead of vec.hs and changing the module name.

valderman commented 10 years ago

This is because of #89; the Haste linker is currently quite stupid about where to start looking for main and just barfs out a fairly nonsensical error message when it can't find it. It's on the "to fix" list for sure.

didhe commented 10 years ago

is this still a problem as of latest ghc? [basically 7.8.* since last update here]

valderman commented 10 years ago

This is probably fixed when using GHC 7.8, since that comes with some patches to support the fun clang stuff that caused the original issue. Could you try it out and report back?

adinapoli commented 10 years ago

I have tried a fresh 7.8.3 install with cabal-install-1.20, and cabal install succeeded, but haste-boot --force --local fails with:

☁  haste-compiler [master] haste-boot --force --local
Reading package info from "libraries/rts.pkg" ... done.
rts-1.0: Warning: library-dirs: /Users/adinapoli/Library/Haskell/ghc-7.8.3/lib/ghc-7.8.3/libraries/lib doesn't exist or isn't a directory
rts-1.0: import-dirs: /Users/adinapoli/Library/Haskell/ghc-7.8.3/lib/ghc-7.8.3/libraries/lib doesn't exist or isn't a directory (use --force to override)
ghc-pkg --global-package-db=/Users/adinapoli/.haste/packages: /Users/adinapoli/Library/Haskell/ghc-7.8.3/bin/ghc-pkg failure (return code=1)
Resolving dependencies...
cabal-1.20.0.0: constraints conflict: we have the top level constraint
ghc-prim ==0.3.0.0, but
ghc-prim-0.3.0.0 was excluded because of the top level constraint 'ghc-prim
installed' which means that only installed instances of the package may be
selected.
cabal --with-compiler=/Users/adinapoli/.cabal/bin/hastec: /usr/hs/tools/cabal-1.20.0.0 failure (return code=1)
Command '/Users/adinapoli/.cabal/bin/haste-inst' failed with error  code 1

Just reporting in case is useful for someone else to get some insight.

bergmark commented 10 years ago

This is at least partly due to a recent change in Cabal (maybe also ghc-pkg? not sure). It adds the installed constraint for non-upgradeable packages that ship with GHC.

valderman commented 10 years ago

@bergmark That's weird, I'm using Cabal 1.20 on my Linux dev box, and I just successfully booted Haste using 1.20 on a Windows box. I've also never had any bug reports from anyone running Linux or Windows having this problem. Any ideas as to why this problem only seems to manifest itself to Mac users?

adinapoli commented 10 years ago

@valderman good news! haste-0.4 worked out of the box. haste-boot spits out a bunch of warnings but the installation succeeds. This example does work too:

module Main where

import Haste

main :: IO ()
main = alert "hello"

Question remain on the "example" folder though. I have tried the calculator and the canvas examples, running their makefiles and opening the index.html file, but they do not seem to do anything. The canvas example doesn't dispay anything, and the calculator one never calculates (result is always 0). Any idea?

But definitely this is a huge improvement for GHC 7.8.3 and Mac Os X users! keep up the good work!

valderman commented 10 years ago

That's great! The examples are most likely broken due to a problem with the 0.4 runtime not always being aware of tailcalls, causing programs that involve callbacks to break under many circumstances. The bug is fixed in master and there will be a 0.4.1 release with the fix real soon. On 30 Aug 2014 12:16, "Alfredo Di Napoli" notifications@github.com wrote:

@valderman https://github.com/valderman good news! haste-0.4 worked out of the box. haste-boot spits out a bunch of warning but the installation succeeds. This example does work too:

module Main where import Haste main :: IO ()main = alert "hello"

Question remain on the "example folder though". I have tried the calculator and the canvas examples, running their makefiles and opening the index.html file, but they do not seem to do anything. The canvas example doesn't dispay anything, and the calculator one never calculates (result is always 0). Any idea?

But definitely this is a huge improvement for GHC 7.8.3 and Mac Os X users! keep up the good work!

— Reply to this email directly or view it on GitHub https://github.com/valderman/haste-compiler/issues/142#issuecomment-53954521 .

adinapoli commented 10 years ago

I see. In that case is safe to wait for 0.4.1 before trying again :)

valderman commented 10 years ago

Just a heads up: 0.4.1 is live on Hackage and haste-lang.org now.

adinapoli commented 10 years ago

Fantastic! I'll make sure to give it a go tomorrow :)

adinapoli commented 10 years ago

@valderman as you anticipated, the examples are now working with the latest haste-compiler! (0.4.1) Awesome job!

A.

valderman commented 9 years ago

Unable to reproduce this anymore on master, so I'm assuming it is fixed. If not, please reopen with new repro instructions.