AlexKnauth
d90dbbfd57
attach orig-binding property (used for occurrence typing)
2017-04-28 00:03:59 -07:00
AlexKnauth
7acbcbb0cc
add source location
2017-04-27 21:21:49 -07:00
AlexKnauth
e92156e78a
provide more pattern expanders for stlc+union base types
2017-04-25 16:47:11 -07:00
Alex Knauth
095c47c6cb
fix union collapsing ( #9 )
2017-04-25 13:35:47 -07:00
Alex Knauth
bbcdfaf9cf
add ~typecheck and ~⊢ pattern expanders ( #6 )
...
* add ~typecheck and ~⊢ pattern expanders
So that in normal macros, syntax classes, and normal syntax-parse
expressions, you can use use the Turnstile syntax to do typechecking
* add documentation for ~typecheck and ~⊢
2017-04-17 12:41:02 -07:00
AlexKnauth
f9199f6e37
Use filter-maximal for pruning redundant elements in unions
2017-04-10 21:41:15 -07:00
Milo Turner
2e03856589
Listed #:as keyword available in define-primop
2017-04-04 15:01:09 -04:00
Milo Turner
02fbf9f6d5
Listed the syntax class attributes for type-bind, type-ctx, type-ann
2017-04-04 15:01:09 -04:00
Milo Turner
881912d1fd
change some docs to adhere to the behavior of the code
2017-04-04 15:01:09 -04:00
AlexKnauth
33db7ad092
add missing syntax/loc
2017-04-03 15:15:19 -07:00
AlexKnauth
713eec89ea
provide ~True and ~False from stlc+union.rkt
2017-04-03 11:21:24 -07:00
Stephen Chang
d6012a7472
fix typo in stx-datum-equal? (from last commit)
2017-03-31 16:00:03 -04:00
Stephen Chang
28f6d782ec
generalize stx-member
2017-03-31 15:15:04 -04:00
Stephen Chang
7e3a21ba6f
extends form supports non-strs and allows explicit prefix
2017-03-30 19:01:56 -04:00
AlexKnauth
84b5a8759f
add stx-length>=? and stx-length<=?
2017-03-30 10:16:59 -07:00
Stephen Chang
28fa4dfb48
do not reprovide rackunit in rackunit-typechecking
2017-03-24 10:59:52 -04:00
Stephen Chang
2643d7c8f8
exclude rackunit-typechecking from compile
2017-03-23 16:38:54 -04:00
Stephen Chang
72bd18cd1a
exclude rackunit-typechecking from test
2017-03-23 16:23:35 -04:00
Stephen Chang
11551ee860
add turnstile/rackunit-typechecking abbrev
2017-03-23 15:43:34 -04:00
Stephen Chang
31c3bba5c9
add current-host-lang; fix reuse to work with non-strs
...
- other various stx conveniences
- provide more require/provide forms in default mod-beg
- fix tests and examples to work with current-host-lang
2017-03-22 17:04:48 -04:00
Stephen Chang
01799a12da
add with-ctx shorthand
2017-03-21 17:55:45 -04:00
Stephen Chang
3d9ef8424c
start dependent types example
2017-03-10 17:03:30 -05:00
Stephen Chang
0bccf822ad
type= handles literals
2017-03-06 13:21:49 -05:00
Stephen Chang
50f08886d1
rackunit-typechecking: add more esc chars
2017-03-03 16:20:16 -05:00
Stephen Chang
772a2f1337
fix mlish chameneos test again
2017-02-17 12:09:58 -05:00
Stephen Chang
8be9371ed2
fix mlish chameneos test
2017-02-17 11:27:58 -05:00
Stephen Chang
f68308c38d
fix stx->datum
2017-02-16 17:59:56 -05:00
Stephen Chang
a44a94ce5c
add toplvl checking form
2017-02-13 18:33:46 -05:00
Stephen Chang
fd389086ef
increase timeouts for typeclass tests
2017-02-08 13:27:53 -05:00
Stephen Chang
115aae8e73
completely separate type and kind api, etc; generalize type environment
...
Previously, "type" functions were reused a lot to manipulate kinds, and other
metadata defined via `define-syntax-category`, but this meant it was impossible
to define separate behavior for some type and kind operations, e.g., type=? and
kind=?. This commit defines a separate api for each `define-syntax-category`
declaration.
Also, every `define-syntax-category` defines a new `define-NAMEd-syntax` form,
which implicitly uses the proper parameters, e.g., `define-kinded-syntax` uses
`kindcheck?`, `current-kind-eval`, and the ':: kind key by default (whereas
before, it was using typecheck?, type-eval, etc).
This commit breaks backwards compatibility. The most likely breakage results
from using a different default key for kinds. It used to be ':, the same as
types, but now the default is '::.
This commit also generalizes the contexts used with `define-NAMEd-syntax` and
`infer`.
- all contexts now accept arbitrary key-values associated with a variable
- all contexts use let* semantics, where a binding is in scope for subsequent
bindings; this means that one environment is sufficient in most scenarioes,
e.g., type and term vars can be mixed (if properly ordered)
- environments allow lone identifiers, which are treated as type variables by
default
2017-02-08 13:07:24 -05:00
Stephen Chang
f8cb9959cd
add timeout to try to satisfy pkg-build
2017-01-27 15:35:37 -05:00
Stephen Chang
1826dc1682
fix travis script again
2017-01-26 16:28:29 -05:00
Stephen Chang
a1c97be85b
fix travis script again
2017-01-26 16:25:39 -05:00
Stephen Chang
3c6c2f9f48
travis: install from git rather than through pkg server
2017-01-26 16:19:27 -05:00
Stephen Chang
6707945a29
drop racket 6.4 and 6.5 from travis; fix lens dep again
2017-01-26 15:19:30 -05:00
Stephen Chang
abcee6e9db
bump racket dep; fix lens dep
2017-01-26 14:56:15 -05:00
Stephen Chang
f7de6fda4c
remove lens-unstable dep
...
- add racket 6.4 dep
2017-01-26 13:54:46 -05:00
Stephen Chang
4522ccd598
add travis script
2017-01-26 13:19:43 -05:00
Stephen Chang
ba15bbd32f
delete ad-hoc "run all" test scripts; use raco test instead
...
- add test-include-paths to run mlish test files
2017-01-25 21:22:06 -05:00
Stephen Chang
9c0b046d54
add some test timeouts
2017-01-25 16:36:46 -05:00
Stephen Chang
9f9294dc4c
reduce lens dependency to lens-common and lens-unstable
2017-01-25 14:18:13 -05:00
Stephen Chang
6618f0e038
remove dependency on typed racket and sweet-exp
2017-01-25 10:47:42 -05:00
Stephen Chang
0084146c1c
rename parse-typed-syntax to syntax-parse/typecheck; closes #50 again
2017-01-24 16:56:12 -05:00
Stephen Chang
896ec53151
document relation order for current-typecheck-relation; closes #48
2017-01-24 15:57:50 -05:00
Stephen Chang
b23ee8fc3f
provide syntax-parse/typed-syntax as parse-typed-syntax
...
- but dont remove the old name
- closes #50
2017-01-24 14:51:03 -05:00
Stephen Chang
36c24c04b9
polish docs; explain #lang turnstile/lang and \succ form
...
closes #51
2017-01-24 12:59:02 -05:00
Stephen Chang
f100316674
ext-stlc: multibody lets; toplvl fn defs; properly transfer props on toplvl ids
2017-01-24 12:58:58 -05:00
AlexKnauth
232127da6f
transfer srclocs so that check-syntax arrows work
2017-01-13 16:56:24 -05:00
Stephen Chang
995926e735
do some optimizations in typecheck.rkt: as much as 85% speedup in benchmarks
...
- move 'env prop logic to infer.rkt
- eliminate some dup expands (eg type-evals)
some before/afters --------------------
macrotypes/run-all-tests: 2m11s/20s 85%
macrotypes/mlish-general: 117s/34s 71%
macrotypes/mlish-shootout/rwo: 81s/31s 62%
macrotypes/mlish-typeclasses: 179s/149s 17%
turnstile/run-all-tests: 2m31s/29s 81%
turnstile/mlish-general: 139s/46s 67%
turnstile/mlish-typeclasses: 181s/155s 14%
2016-11-18 16:55:16 -05:00
Alex Knauth
4068d655d2
Merged in georges-duperon/macrotypes/fix-dependency-typed-racket-lib (pull request #30 )
...
Added missing dependency on typed-racket-lib
2016-10-27 01:45:02 +00:00