Stephen Chang
6815bd9127
fix some file extensions for mlish tests
2016-03-28 19:37:23 -04:00
Stephen Chang
2da260d1f9
refactor mlish tests; parallize run-all-mlish-tests somewhat
2016-03-28 19:30:22 -04:00
Stephen Chang
05969628ff
add another polyrecur example
2016-03-28 17:51:23 -04:00
Stephen Chang
92b1f8ec45
add implicitqueue tests to polyrecur.mlish
2016-03-28 17:26:30 -04:00
Stephen Chang
5e1d3f1e22
mlish: suppot polymorphic recursion
2016-03-28 17:11:38 -04:00
Stephen Chang
e9a4a9f1dd
add bens tests to run-all-mlish
2016-03-23 18:33:19 -04:00
Stephen Chang
cdd169381f
Merge branch 'mlish-examples' of bitbucket.org:stchang/macrotypes
2016-03-23 13:31:12 -04:00
Stephen Chang
06bed29150
add small test to result.mlish
2016-03-23 11:59:24 -04:00
ben
7dca7d4966
[bg] lambda calculus interpreter
2016-03-23 01:25:26 -04:00
ben
05df033790
[bg] huffman trees
2016-03-23 01:25:22 -04:00
ben
04e1cb701f
[bg] more lists, sorting, CPS
2016-03-22 21:25:12 -04:00
ben
41968efaea
[bg] starter functions
2016-03-21 23:48:57 -04:00
Stephen Chang
ea3ed2a762
add result.mlish to run-all-mlish-tests
2016-03-21 00:17:27 -04:00
AlexKnauth
0bc592240d
add read-tree example
2016-03-21 00:07:20 -04:00
AlexKnauth
9332309160
propagate expected type through lambda
...
fixes https://bitbucket.org/stchang/macrotypes/issues/4
2016-03-18 23:25:44 -04:00
Stephen Chang
6f48690446
define-type-alias supports type constructors
2016-03-18 20:57:02 -04:00
Stephen Chang
4a44e51b80
fix bug using expected type of id constructors, eg nil
2016-03-18 17:11:47 -04:00
Stephen Chang
09d04cd4c0
mlish: clean up cond so else is not handled separately
2016-03-18 12:34:31 -04:00
Stephen Chang
c89aa1be19
fix expected-ty propagation in cond else; closes #3
2016-03-18 11:57:46 -04:00
Stephen Chang
7f593b52c8
add more inst.mlish tests
2016-03-17 19:22:05 -04:00
Stephen Chang
b65c4adc94
use expected type to help infer instantiation of an app
2016-03-17 19:03:02 -04:00
Stephen Chang
47fe5ae232
allow explicit tyvars in fn def: workaround for inferred poly fn type with wrong arg order
2016-03-17 16:44:56 -04:00
Stephen Chang
8369574812
fix stlc+effect; add check-props testing form
2016-03-14 01:29:46 -04:00
Stephen Chang
6a85e06719
fix let to check expected type against body
...
- other conditionals probably need this fix
2016-03-10 17:09:28 -05:00
AlexKnauth
2e259163aa
add find-min/max
2016-03-10 16:35:57 -05:00
Stephen Chang
f4979c9e58
fix mlish tests to use ->/test -- all tests passing
2016-03-10 16:23:00 -05:00
Stephen Chang
b8e3ad1602
fix bug with tyvar computation
...
- define separate ->/test constructor that computes tyvars
and -> does not because it may be nested
(see "try" fn in alex.mlish)
- add alex.mlish tests
- other mlish tests still broken --- need to use ->/text
2016-03-10 16:16:52 -05:00
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
Ben Greenman
1887d99abb
[occurrence] filters for products
2015-10-16 18:56:54 -04:00
Ben Greenman
36bec40650
regression tests for subs?
2015-10-15 15:37:48 -04:00
Ben Greenman
36d568b512
[o+] allow unions as filters
2015-10-15 15:26:27 -04:00
Ben Greenman
dfaab96a29
[o+] check for same-arity functions in unions
2015-10-15 14:31:31 -04:00
Ben Greenman
5c8300a538
[o+] check & filter functions (by arity)
2015-10-15 14:08:22 -04:00
Ben Greenman
e2b1eaa06b
bugfix in stlc+sub: subs assumed length=?
2015-10-15 14:00:42 -04:00
Stephen Chang
48b625c2f4
define star as rename-transformer to #%type, in fomega
2015-10-14 15:39:11 -04:00
Stephen Chang
4dd2b66d2b
generalize fomega ty= to avoid specific types; add tests
...
- fixes fomega bug where kind annotations were not being compared
- fix subst bug: must tranfer props (ie types) when replacing an id
- add exist tests to check proper subst in ty=
2015-10-14 14:57:27 -04:00
Stephen Chang
a07fa92d25
clean up fomega2/3, remove many type-eval
...
- remove expand-fn optional arg in infer fn
2015-10-14 14:57:27 -04:00
stchang
94b610c93b
Merged in occurrence (pull request #3 )
...
Occurrence Types: first draft
2015-10-13 21:08:05 -04:00
Ben Greenman
bc2e83c449
[occurence] simple filters complete
2015-10-13 15:16:24 -04:00
Ben Greenman
d7913f7753
[occurrence] subtyping, normal form, and VERY BASIC filters. Having trouble propogating variables.
2015-10-13 12:51:24 -04:00
Ben Greenman
c5d6bfbf9e
[occurrence] type eval
2015-10-11 00:22:16 -04:00
Stephen Chang
bf126449b4
define-type-constructor supports annotated bound vars
...
- use this to impl forall in fomega
- define-type-constructor default arity is =1
- define explicit normalize fn in fomega -- speeds up tests 15%
- move same-type to define-syntax-category
2015-10-09 16:59:48 -04:00
Ben Greenman
5497b347df
[occurrence] simple type evaluator, assumes no recursive unions
2015-10-09 02:24:09 -04:00
Stephen Chang
dad2c26c49
add existential tests demonstrating hidden type
2015-10-08 13:22:26 -04:00
Stephen Chang
33996e71ac
rec-iso, reduce ty=? to just focus on lamda
2015-10-08 13:21:54 -04:00
Ben Greenman
050c43b3a2
[occurrence] constructor + basic tests
2015-10-06 16:32:26 -04:00
Stephen Chang
0aa2857e74
define-syntax-category defines default type=?; other cleanup
...
- extended type=? in rec-iso only does 1 subst
- simplify current-type? in fomega by defining in terms of current-kind?
2015-10-06 14:28:08 -04:00
Stephen Chang
2278adcf95
replace provide/requires with "extends...except"/"reuse...from" forms
...
- introduce basic define-typed-syntax instead of define-syntax
- add fomega3 --- same as fomega2, without the duplication
- app and lam are both types and terms
- arrow is both type and kind
- same tests as fomega2
2015-10-01 16:21:29 -04:00
Stephen Chang
cb7a49ab06
use #lang typecheck
2015-09-23 17:01:13 -04:00
AlexKnauth
149897653a
use make-variable-like-transformer
2015-09-21 18:09:58 -04:00
AlexKnauth
82b7ec004d
add version of make-variable-like-transformer
2015-09-21 17:54:25 -04:00