Commit graph

16 commits

Author SHA1 Message Date
Evan Czaplicki
a446d609f2 Ensure that binary serialization works on Windows. Previously had issues with line ending conversions messing with binary data. 2013-08-06 00:36:07 -07:00
Evan Czaplicki
64e23d4ca7 Turn post build back on, create elm-runtime.js and interfaces.data 2013-07-29 19:27:57 +02:00
Evan Czaplicki
0a6bd8bd96 Generate and use interfaces.data so standard library types are available 2013-07-28 02:24:17 +02:00
Evan Czaplicki
e63b12d036 Fix some style weirdness in Setup.hs 2013-06-24 06:14:08 +02:00
evancz
6e56df59a5 Switch to only generating elmo files. Turn off the CPP flags in .cabal and remove all generated JS files on each build for now. 2013-06-07 09:38:29 -07:00
evancz
b359fd0b47 Revise elm-docs to copy the names of type variables in type annotations directly. 2013-05-04 18:19:54 -07:00
evancz
22bfcb83cf Add the --no-prelude flag for compiling the standard libraries. Clean up code to handle flags. Change name of --generate-noscript to --noscript (this flag can probably be taken out actually) 2013-04-01 01:05:41 -07:00
ngunn
2e4951b78e Setup.hs: move buildTypes back into post-build, fixes compilation dependencies
cabal compiling far fewer files now :-)
minimal changes, mostly comments, so it should be easier to put back/further fix/other
2013-03-27 20:48:44 +00:00
ngunn
175f268622 Fix cabal install missing docs.json (followup)
See: 14e32add30
for discussion on first attempt

Changed Librarys.hs and LoadLibraries.hs from TemplateHaskell to usafeIO.
Avoids needing to touch LoadLibraries after we change docs.json (as the file is loaded at runtime).
Also removes need for using CPP
Drawback of using unsafeIO is fairly well known/understood + this is a classic use-case.
Added error handling to LoadLibraries.hs

Setup.hs now uses "runProcess" instead of "system" to invoke elm compiler.
This allows us to set the environment variable "Elm_datadir" which is picked up by LoadLibraries and makes sure we get the just-built version in dist/data.
Also explicitly sets the RTS file to make sure we're not using one (as we're currently building it!)
Also change the folder the compiled JavaScript ends up in to dist/js.  Writing to the source tree, then deleting isn't very nice + this should make it easier to find elm compilation errors.  cabal clean handles the file deletion, too.

I think this fixes all the defects of the first version:
1. CPP is not needed
2. touch is not needed
3. building elm-runtime.js uses dist/data/docs.json
4. running elm after install uses the installed elm-runtime.js and docs.json
5. LoadLibraries.hs is simpler.  Doesn't use CPP or TemplateHaskell.  Has error handling and a decent error message
6. cabal clean && cabal install builds everything with the right data in the right order

(tested on ghc 7.4.1)
2013-03-22 15:52:40 +00:00
ngunn
14e32add30 Fix cabal install missing docs.json
See: https://github.com/evancz/Elm/issues/120

Add build-hook to Setup.hs so that elm-doc gets build and executed before library or elm exec gets built.
Add preprocessor to Elm.cabal so LoadLibraries.hs can load docs.json from the build folder instead of installed folder
Add touch to Setup.hs otherwise LoadLibraries.hs doesn't get recompiled.  This is non-portable, but I can't find a portable way (see Setup.hs for details)

cabal clean && cabal install now works
(tested on ghc 7.4.1)
2013-03-21 13:31:55 +00:00
evancz
131a2b6818 Get sprites working in collage. temporary fix for docs.json issue. Looks like git thinks we're in the past, so a bunch of changes that have already happened as well. 2013-03-21 02:29:23 -07:00
evancz
194b25958b Get everything compiling again. 2013-03-16 13:00:59 -07:00
evancz
99ae5c6ba0 Finish moving the compiler down a directory. 2013-03-16 12:07:32 -07:00
evancz
1822ebc160 Move the compiler down a directory, mostly. 2013-03-16 12:04:05 -07:00
Vincent Ambo
f2e8703a2b * restructuring, part #1
I am splitting the elm package up into several packages, elm itself
which exports the Language.Elm* modules and builds the compiler
executable, elm-server which contains the standalone, Happstack-based
Elm server and elm-yesod, which provides the generateWidget function
for using Elm together with Yesod.
2012-05-28 16:43:56 +02:00
evancz
a587ff5132 Initial commit. 2012-04-19 02:32:10 -04:00