Commit Graph

266 Commits

Author SHA1 Message Date
AlexKnauth
db1da5ae20 implement find example 2016-03-10 14:30:43 -05:00
AlexKnauth
fe494c6ad3 fix another srcloc 2016-03-10 10:26:50 -05:00
AlexKnauth
f19eafcd8f propagate srcloc to check-equal? form 2016-03-10 10:15:24 -05:00
Stephen Chang
5c5f500f39 clean up requires/provides, see other mlish language additions below
- fix bug where recursive tyvar did not have #%type tag
- records
- optional field names in type definitions
- reuse prefixes by default
- list fns
- provide explicit inst (need it for ho poly fns)
- if now allows non-false instead of bool
- small inference fixes
- add rw ocaml tests, ch6, up to "polymorphic variants"
2016-03-10 00:39:01 -05:00
Stephen Chang
dc3767c844 mlish: add nbody test 2016-03-08 16:25:02 -05:00
Stephen Chang
159bd56bf3 add more iterators and matrix tests 2016-03-08 14:50:37 -05:00
Stephen Chang
2066dbc577 mlish: add require/provide, boxes, set!, more iterators
- add tests: fibo, hash, k-nucleotide
2016-03-07 23:54:47 -05:00
Stephen Chang
f5a043b7e6 mlish: add hash, fl prims, str prims, output, and some other prims
- allow begin exprs to have any type (not just unit)
- add fasta test
2016-03-07 00:31:25 -05:00
Stephen Chang
ee6c0c11f7 mlish: add for/list, when, printf, multi expr bodies
- add fannkuch test
2016-03-05 10:12:32 -05:00
Stephen Chang
468cf075d6 mlish: add vectors, sequences, and iteration
- add ary and ack test
- fix bug in uparrow-s (in typecheck.rkt) extra #'
2016-03-04 16:15:14 -05:00
Stephen Chang
1ad357b55e separate out mlish queens test 2016-03-04 14:20:02 -05:00
Stephen Chang
965778d9f0 add mlish tests 2016-03-04 14:15:28 -05:00
Stephen Chang
cd6c8920ab mlish: add concurrency prims and test 2016-03-03 23:38:21 -05:00
Stephen Chang
8b11b0fb60 fix missing clauses check; code cleanup 2016-03-02 17:08:47 -05:00
Stephen Chang
487c8fedc5 mlish: fix define-type and match
- resolves #1
  - define-type-constructor accepts arbitrary extra "info" that is stored
    with the type
    - get-extra-info extras this info
  - define type stores extra info that is essentially a mu type
    containing all variant info
  - match must manually "unfold" this info, ie iso-recursive
- all tests passing
- mlish tests implements full nqueens example
  - no explicit instantiation of polymorphic functions
  - some polymorphic constructors require annotations when no inference possible
    - a lone nil with no other information
  - lambda params require annotations
  - top lvl fns require full signature
2016-03-02 15:34:51 -05:00
Stephen Chang
3839ea51c4 some code cleanup 2016-02-29 15:36:57 -05:00
Stephen Chang
ab9f96efe4 fix match guards and ordering 2016-02-29 15:33:22 -05:00
Stephen Chang
f0aba48497 - add folding compuate+instantiate-or-inferral of args in app
- start guard support in match (doesnt work yet)
2016-02-29 14:21:02 -05:00
Stephen Chang
87cf55e7ae fix mlish match
- properly propagate expected-type
- need cond that checks all cases at runtime
 - need to compute accessors and predicate
- add tests
2016-02-29 00:18:54 -05:00
Stephen Chang
a8d461ea0d fix more app err msgs in tests; all tests passing 2016-02-27 17:31:20 -05:00
Stephen Chang
9000e126ff fix mlish tests to use new app err msg abstractions 2016-02-27 16:26:15 -05:00
Stephen Chang
d880b9d668 clean up app err msgs; need to fix tests 2016-02-26 16:54:12 -05:00
Stephen Chang
893d457bad add top lvl defines and infer instantation
- need to err msg when instantiation fails
2016-02-25 17:02:46 -05:00
Stephen Chang
6fa962f83f all constructor type instantiations (in tests) inferred
- id type names and variant names (for 0arg constructors) supported
2016-02-24 19:02:51 -05:00
Stephen Chang
dbfd52bf0f start mlish lang 2016-02-22 19:23:14 -05:00
Stephen Chang
a82a833b43 add stlc+effect.rkt 2016-01-12 15:29:56 -05:00
Stephen Chang
b6c8bb5880 infer some lambda param types from body 2015-12-21 18:55:42 -05:00
Stephen Chang
aa930c1180 add more infer examples 2015-12-17 17:05:25 -05:00
Stephen Chang
75da160c2d finish nqueens example for infer.rkt 2015-12-17 16:16:09 -05:00
Stephen Chang
fbc5934675 implement list functions using infer.rkt: annotations still required for top lvl fns and unapplied lams 2015-12-16 19:39:18 -05:00
Stephen Chang
a41a4cdd62 start exploring (local) inference 2015-12-11 17:01:25 -05:00
Stephen Chang
7999f1cc8c stlc+cons: inference testing 2015-12-09 17:30:11 -05:00
Stephen Chang
6f7edcc431 use string-prefix from racket/string 2015-10-27 16:29:22 -04:00
Stephen Chang
b52f220dcc occurrence: use tups instead of records 2015-10-22 17:12:51 -04:00
Stephen Chang
4152db6575 add occurrence and overloading to run-all-tests 2015-10-22 17:12:11 -04:00
stchang
12d73ee2a9 Merged in overload (pull request #6)
Overload -- initial draft
2015-10-22 17:07:38 -04:00
Ben Greenman
51e6e1b3ae [overload] remove design/ folder 2015-10-22 17:07:05 -04:00
stchang
67d28645f9 Merged in o+ (pull request #4)
Occurence types, improved
2015-10-22 17:05:05 -04:00
Ben Greenman
e038d220f1 [overload] now improved with identifier macros 2015-10-22 15:20:16 -04:00
Stephen Chang
f7635af9b5 add stlc fail tests 2015-10-22 13:22:35 -04:00
Stephen Chang
b4bc922dda add stlc+sub tests 2015-10-22 13:22:22 -04:00
Ben Greenman
c299e58a04 [overload] fix export-as, export 'resolve', fix subtyping 2015-10-22 05:44:17 -04:00
Ben Greenman
0b587697f4 [overloading] initial revision, overloading via parameter 2015-10-21 00:47:21 -04:00
Ben Greenman
e6e538c3ed [overload] doc'd the problem with lambda, gosh I miss let 2015-10-20 18:06:59 -04:00
Ben Greenman
b3e5a1b5cf [overload] add run-time desugar to design doc 2015-10-20 16:42:13 -04:00
Ben Greenman
3cbafd3772 [overload] got \psi-types and signature init 2015-10-20 00:49:55 -04:00
Ben Greenman
f228ace20f [overload] outline tests 2015-10-20 00:49:23 -04:00
Ben Greenman
e9cefe3298 [overload] design doc for \psi types 2015-10-19 20:44:39 -04:00
Ben Greenman
3877a28a75 [o+] some examples from ICFP'10 paper 2015-10-19 13:53:15 -04:00
Ben Greenman
d1a18786ac [occurrence] filters for lists 2015-10-17 15:13:08 -04:00