Evan Czaplicki
da033e3696
Filter out duplicate imports, generate code using new Native.Ports module
2014-01-06 07:49:49 +01:00
Evan Czaplicki
85bf092192
Detect errors in port usage (i.e. too many or too few)
2014-01-06 07:49:04 +01:00
Evan Czaplicki
7e2deceb9a
Add Native.Ports to prelude for user defined modules
2014-01-06 07:48:22 +01:00
Evan Czaplicki
3d7c8d2754
Add -W flag
2014-01-06 07:47:14 +01:00
Evan Czaplicki
d81941d9c0
Move JS code for ports to their own module
2014-01-06 07:47:05 +01:00
Evan Czaplicki
fd7707e649
cosmetic: use a slightly more descriptive names
2014-01-06 05:21:26 +01:00
Evan Czaplicki
502cfc0465
Handle values sent to incoming ports, still need to properly define Elm.input though
2014-01-05 13:47:01 +01:00
Evan Czaplicki
a97b9951d0
Add checks for port types to ensure that only JS values go through ports and that type annotations are correct and consistent
2014-01-05 10:41:40 +01:00
Evan Czaplicki
dc3bba714c
Capture the entire type of the handler for incoming ports
2014-01-05 10:40:27 +01:00
Evan Czaplicki
5dd7b6b1bb
Extend expression crawler to do checks on ports as well as on let expressions
2014-01-05 10:15:37 +01:00
Evan Czaplicki
9ea98549bc
Actually fill in a type variable when generating PortIn expressions
2014-01-05 10:15:23 +01:00
Evan Czaplicki
3b9862ab4e
Switch from Types to Variables in the representation of PortIn
2014-01-05 09:29:00 +01:00
Evan Czaplicki
39eb4c6bc8
Use one fewer variable for PortIn constraints
2014-01-05 07:54:16 +01:00
Evan Czaplicki
6eb84d82d7
Make error message prettier
2014-01-04 16:46:38 +01:00
Evan Czaplicki
1eaa3043c8
define ports_out on the elm object
2014-01-04 16:16:50 +01:00
Evan Czaplicki
eed8fa1061
Add type annotations and make some -W recommendations
2014-01-04 16:16:21 +01:00
Evan Czaplicki
c03049a960
Simplify Build.Interface API, do not read "interfaces.data" when the --no-prelude flag is used
2014-01-04 15:59:24 +01:00
Evan Czaplicki
170006534d
Rename InterfaceSerialization file and change the function names in it
2014-01-04 15:19:30 +01:00
Evan Czaplicki
7e64531d2e
Switch from old FFI to new port interface for default output ports
...
Also add default handlers for stdout and stderr
2014-01-04 11:41:06 +01:00
Evan Czaplicki
7cf5a564e5
Add Expressions for ports to check and validate types nicely
2014-01-04 11:39:38 +01:00
Evan Czaplicki
defb47db75
Get rid of warnings
2014-01-04 11:34:09 +01:00
Evan Czaplicki
c966776788
Add -W flag to many files, mostly getting rid of dead imports
2014-01-04 10:54:46 +01:00
Evan Czaplicki
270dbf8722
Add -Wall to a bunch of SourceSyntax files and get them warning free
2014-01-04 10:14:36 +01:00
Evan Czaplicki
863d31b38f
Switch name of qualified import
2014-01-04 09:45:20 +01:00
Evan Czaplicki
9ff26223d8
Handle --no-prelude flag in the Metadata.Prelude module rather than distributed across many modules
...
Good in case the meaning of —no-prelude changes
2014-01-04 09:35:26 +01:00
Evan Czaplicki
9ccc707594
properly rename expressions in port declarations, add -Wall
2014-01-04 08:20:52 +01:00
Evan Czaplicki
33a95f4aa6
get rid of unused dependency
2014-01-04 08:00:56 +01:00
Evan Czaplicki
6a8db4c230
Get rid of dead dependencies and add -Wall for some files
2014-01-03 12:33:56 +01:00
Evan Czaplicki
ade03397df
Fix another copy-paste error
2014-01-03 12:15:49 +01:00
Evan Czaplicki
bdeb36eb6f
Fix port parser! Copy paste error on the operator.
2014-01-03 12:12:43 +01:00
Evan Czaplicki
a5f7944c2a
Add the new Transform files
2014-01-03 12:08:58 +01:00
Evan Czaplicki
6f75310a49
Get rid of redundant code that collapses ParseDefs
2014-01-03 10:33:17 +01:00
Evan Czaplicki
06503fef33
Switch to using new Def representation, get rid of getPDefs
function which used to collect annotations and definitions.
2014-01-03 01:07:13 -08:00
Evan Czaplicki
5e3f94ce60
Update for new type of module (no t v)
2014-01-02 23:53:30 -08:00
Evan Czaplicki
41dd0c8742
Update for new def and port formats
2014-01-02 23:52:27 -08:00
Evan Czaplicki
acce931530
Update for new def and ports format
2014-01-02 23:50:49 -08:00
Evan Czaplicki
c883b55255
Get rid of badOrder
check, which is handled elsewhere. Update for new def and port formats
2014-01-02 23:50:20 -08:00
Evan Czaplicki
3d780425fb
Update for ports and defs, switch to using <$> and <*> a lot
2014-01-02 23:48:42 -08:00
Evan Czaplicki
c04c4385ff
Update for new defs and ports format
2014-01-02 23:46:37 -08:00
Evan Czaplicki
1a06be5992
Get rid of "t v" type variables, which are no longer needed
2014-01-02 23:45:40 -08:00
Evan Czaplicki
7422c95f4c
Update to match new names in SourceSyntax.Declaration
2014-01-02 23:45:10 -08:00
Evan Czaplicki
ed4be06a6a
Update to match new port and decl format
2014-01-02 23:44:42 -08:00
Evan Czaplicki
98f7be328b
Make "combineAnnotations" a part of parsing a program
2014-01-02 23:42:54 -08:00
Evan Czaplicki
49fc0b6378
Create way to crawl over all lets in a program, transforming defs and ports
...
Used to combine type annotations with definitions and find ordering
problems with Definitions and Ports
2014-01-02 23:39:34 -08:00
Evan Czaplicki
3af5c2a652
Switch to new format for Expr, Def, and Module
2014-01-02 23:37:52 -08:00
Evan Czaplicki
e8389ac78a
Update to match new Module type
2014-01-02 23:23:26 -08:00
Evan Czaplicki
3c65b5c69d
Move boundVars
function into SourceSyntax.Pattern
2014-01-02 23:23:11 -08:00
Evan Czaplicki
e3b8ea7d09
Update basic parsers to use the new formats for Expr, Declaration, and Port
2014-01-02 23:20:25 -08:00
Evan Czaplicki
bd4d76ecae
Chenge representation of Expr, add ports representation
...
Get rid of the unused t and v type variables. Add the def type
variable, which models the fact that type annotations and definitions
start separate, but need to be combined before most stuff goes down.
Ports have the same structure as definitions in that annotations and
definitions are separate at the source level and need to be combined.
The same technique used in Expr is now used in Decl as well.
2014-01-02 23:18:42 -08:00
Evan Czaplicki
600e65ca43
Get rid of Transform.Optimize, which is currently unused
2014-01-02 23:13:37 -08:00