Commit graph

527 commits

Author SHA1 Message Date
Evan Czaplicki
d12a744824 Update documentation to be more up to date 2013-12-10 23:04:26 -08:00
Evan Czaplicki
1aa3b76e8e Switch back to stateless API, currently do not want to change this in the next release 2013-12-10 23:04:26 -08:00
Evan Czaplicki
32d162732b Merge pull request #381 from bcdarwin/master
Add check for duplicate constructors within the same unit
2013-12-10 17:48:06 -08:00
Ben Darwin
d1b3db22f2 clean up error reporting 2013-12-10 20:41:06 -05:00
Ben Darwin
55e5c342ce also fix duplicate *type* constructors 2013-12-10 16:36:04 -05:00
Ben Darwin
36b73fe7f5 fix duplicate *data* constructors 2013-12-10 15:58:57 -05:00
Evan Czaplicki
47c6cbc38f Merge branch 'master' into dev 2013-11-26 00:12:42 -06:00
Evan Czaplicki
bd77cc6e15 Report docs errors to stderr 2013-11-25 23:12:10 -06:00
Evan Czaplicki
e32eab0e62 Merge branch 'master' into dev
Conflicts:
	compiler/Generate/JavaScript.hs
	compiler/Generate/Noscript.hs
	compiler/Parse/Expression.hs
	compiler/SourceSyntax/Expression.hs
2013-11-22 12:22:29 -08:00
Evan Czaplicki
c8643484be Abstract out the code for markdown parsing, making it easier to switch out the implementation 2013-11-22 12:12:22 -08:00
Evan Czaplicki
fe047d5156 Merge branch 'master' into dev 2013-11-19 22:40:05 -08:00
Evan Czaplicki
f0d9d3be1d Fix minor indentation issue with eightyCharLines 2013-11-19 22:39:48 -08:00
Evan Czaplicki
bccfece2c1 Merge branch 'master' into dev 2013-11-19 22:34:08 -08:00
Evan Czaplicki
f73a6ff9f9 Add an occurs check to finally resolve #294
Add it in the more clever location suggested by Pottier and Remy. Also
change the style of error messages to get rid of the expected/actual
problem for now, and make hints read more smoothly.
2013-11-19 22:31:38 -08:00
Evan Czaplicki
54a99b7309 Add error and explanation for infinite type aliases 2013-11-19 22:29:25 -08:00
Evan Czaplicki
bbede87f1a Merge pull request #338 from jsl/fix_unsafe_io
Remove instance of unsafePerformIO
2013-11-14 07:26:57 -08:00
Justin Leitgeb
8fc72d2b30 Remove instance of unsafePerformIO 2013-11-12 22:22:49 -05:00
Evan Czaplicki
0fcd342b78 Minor reformat of an error message to keep each line under 80 characters 2013-11-11 16:30:48 +01:00
Evan Czaplicki
9d9e9d2388 Just show the value of located things, not the location. 2013-11-11 15:40:51 +01:00
Evan Czaplicki
07187bd811 Better error when bad backslashing is used in strings 2013-11-11 15:40:51 +01:00
Evan Czaplicki
9b55e953de Merge pull request #323 from Sheeo/transform-incomplete-matches
Incomplete matches in transform directory
2013-11-11 06:40:11 -08:00
Evan Czaplicki
d6a3a18704 Merge pull request #322 from Sheeo/type-incomplete-matches
Incomplete matches in Type.hs
2013-11-11 06:35:10 -08:00
Evan Czaplicki
5bde7cf4b5 Merge pull request #321 from Sheeo/sourcesyntax-matches
Incomplete matches in sourcesyntax
2013-11-11 06:29:55 -08:00
Michael Sondergaard
8594ab3780 Improve error message 2013-11-11 15:29:41 +01:00
Michael Sondergaard
fdea1470f6 Also catch Just [] as an error
Motivation here is that if we can't even extract a name and description, it's
an error.
2013-11-11 15:15:42 +01:00
Justin Leitgeb
9ae1825939 Fix deserialization of interfaces in Prelude
We previously had to fix a corrupt Map by changing it to a List and then back
into a Map. It turns out we had to do this because the original data structure
on disk wasn't a Map to begin with, but a List. It was previously assumed to be
a Map by the compiler because the first function that it was passed to took a
type of `Interfaces` which is a Map of interface definitions. Unfortunately this
didn't cause a runtime error when Haskell found out that the structure wasn't
deserialized into a Map. Instead Haskell happily created a broken Map that
couldn't find members some of the members that it contained (it could find
somewhere around the first half of its members, but the second half it reported
as missing when they were clearly present).

Changing the type of the first function that the deserialized structure is
passed to from a Map (actually Interfaces which is a type of Map) to a List
allows Haskell to infer the correct type to deserialize into and makes
everything work as expected.
2013-11-07 10:21:37 -05:00
Michael Sondergaard
12a58167a9 Add a catchall to inner toDefs function
I think it would be more appropriate to reorder this code as to only case-match
over defs once, but I'm not sure of how to approach this (yet).
2013-11-04 21:25:36 +01:00
Michael Sondergaard
158c70eee7 Fix typo 2013-11-04 21:09:22 +01:00
Michael Sondergaard
4a111890ed Add invalid serialization errors to Module.hs 2013-11-04 20:34:29 +01:00
Michael Sondergaard
67924d1c8a Remove catch-all match in Declaration
These ought to actually be written out, as the previous TODO message stated,
but at least this way the compiler will warn us when adding a new Decl.
2013-11-04 20:34:29 +01:00
Michael Sondergaard
a0cbe84f1d Throw an error when deserializing a bad type
This error should never be encountered, as long as we always update the get
function when the put function is, as required by get . put == id.
2013-11-04 20:32:53 +01:00
Evan Czaplicki
00dfb69367 Modify error messages for bad build artifacts to wrap more nicely on the terminal 2013-11-04 16:37:15 +01:00
Evan Czaplicki
5a1c9ed353 Unnecessary style changes
I don't really know why I felt the need to do this, but I am happier
now.
2013-11-04 13:28:03 +01:00
Evan Czaplicki
b1bca38488 Get rid of either-unwrap dependency and use fewer non-total library functions 2013-11-04 13:26:05 +01:00
Evan Czaplicki
5c5c05fed9 Merge pull request #320 from jsl/313_verify_serialized_interfaces
Give more helpful error messages when deserializing elmi files
2013-11-04 02:30:26 -08:00
Justin Leitgeb
c845e586ed Give more helpful error messages when deserializing elmi files
Provides an error message indicating incorrect compiler version or corrupt file.
Exit status will be 1 in either failure case and error message is printed to
stderr. Uses the same checks against interfaces.data as well as standard .elmi
files since both are susceptible to breaking in the same way.

The following will be displayed when an elmi file has a different compiler
version than the elm compiler that tries to load it:

    justin ~/Code/elm-lang.org/public/examples/Intermediate $ ~/Code/elm/dist/build/elm/elm Pong.elm
    Found build artifacts created by a different Elm compiler version. Please rebuilt cache/Pong.elmi and try again.

The following will be displayed when a file that cannot be deserialized is
encountered:

    justin ~/Code/elm-lang.org/public/examples/Intermediate $ ~/Code/elm/dist/build/elm/elm Pong.elm
    Got an error, 'demandInput: not enough bytes' at offset 10303 of cache/Pong.elmi.

    This error may be due to an outdated or corrupt artifact from a previous build. Please rebuild cache/Pong.elmi and try again.
2013-11-03 20:35:10 -05:00
Evan Czaplicki
90e007730d introduce the padded function to use fewer whitespace markers 2013-11-02 19:21:26 +01:00
Evan Czaplicki
934e590a7b Be sure to avoid variable shadowing when generating temporary variables, fix for # 318 2013-11-02 19:05:07 +01:00
Evan Czaplicki
d1cee239d3 Add a couple type annotations 2013-11-01 13:58:18 +01:00
Justin Leitgeb
006e086cd5 Remove print_program option
This option was applied inconsistently based on whether previous build
artifacts existed, and isn't incredibly useful anyway for users of the
language.
2013-10-30 08:52:24 -05:00
Justin Leitgeb
17f407adda Trim trailing whitespace 2013-10-29 11:22:33 -05:00
Evan Czaplicki
d97fe192e0 Merge branch 'markdown' into dev
Conflicts:
	Elm.cabal
2013-10-29 15:36:56 +01:00
Evan Czaplicki
737fedcb69 Merge pull request #303 from jsl/fix_issue_299
Print types even when the elm file has already been compiled.
2013-10-29 07:30:12 -07:00
Justin Leitgeb
576bc28142 Print types even when the elm file has already been compiled.
This fixes issue #299, where types are not printed even when the
`--print-types` option is given for an elm file that has already
been compiled.
2013-10-28 16:29:28 -05:00
Evan Czaplicki
56ecbbc70a Implement markdown interpolation 2013-10-25 17:36:30 +02:00
Evan Czaplicki
f1b1bcd5fd Fix pattern matching on characters 2013-10-22 07:02:51 +02:00
Evan Czaplicki
c685c8b91b cosmetic changes on fix for #305
I felt weird about the previous style where things were more
intermingled. Does everything still look okay?
2013-10-19 22:14:34 -04:00
John P Mayer Jr
e75f5388fb can have zero fields if no extension could be parsed 2013-10-20 01:28:52 +00:00
Evan Czaplicki
debfd18444 Fix formatting of error when there are two unbound type variables 2013-10-19 10:52:48 -04:00
Evan Czaplicki
692d8d8eac Throw errors for unbound type variables in ADTs and aliases, resolves #302 2013-10-19 10:39:23 -04:00