Commit Graph

99 Commits

Author SHA1 Message Date
Georges Dupéron
1455f37350 Implemented in library: check-equal?-classes:, which tests that elements in the same class are equal?, and elements in distinct classes are not equal?, as well as repeat-stx, which solves the (syntax-parse #'((1 2 3) (x y)) [([a b …] …) #'([(a b) …] …)) problem. 2015-12-11 18:38:32 +01:00
Georges Dupéron
9de841d95f Work in progress for implementing (structure) so that it is both a hybrid function and empty struct, but actually it can't be passed to polymorphic functions (like map, …), so it's probably better to just add an optional #:instance or #:constructor argument to clarify. 2015-12-10 17:19:11 +01:00
Georges Dupéron
8a398ae5a3 Finished fixing references (there are still a couple of errors, but less important). 2015-12-09 16:08:02 +01:00
Georges Dupéron
250f4e1137 Partially fixed cross-references. Still needs to update Makefile. 2015-12-09 11:46:12 +01:00
Georges Dupéron
d127d4d27f Cleanup, parallel compilation and test in make/make.rkt, verbose coverage with cover -v (it takes a long time, so it's nice to see what it's doing). 2015-12-08 15:00:21 +01:00
Georges Dupéron
16c782e319 Changed define-graph so that it defines the constructor, instead of directly accepting the constructor's arguments. 2015-12-08 14:42:12 +01:00
Georges Dupéron
c1576cbc16 Fixed order of elements in fold-queues. Removed (let () …) in graph3.lp2.rkt, because TR currently chokes on locally-defined types in some conditions. 2015-12-08 14:30:27 +01:00
Georges Dupéron
484a920b4e Found source of bug with promises type: locally-defined recursive types can't be used (inferred) in other modules, see TR issue #262 https://github.com/racket/typed-racket/issues/262 . 2015-12-07 17:50:54 +01:00
Georges Dupéron
191ae7f50e Seems to work but there is a problem with Promise: Type Checker: Street/with-promises-type is not bound as a type in: (force (car (second g))). See graph/__DEBUG_graph__.rkt . 2015-12-07 01:26:04 +01:00
Georges Dupéron
04ddaf308c Compiles and typecheck, but the queues need two lists to be implemented (for now they are stacks). 2015-12-07 00:59:39 +01:00
Georges Dupéron
80a056791d graph3.lp2.rkt typechecks, with a return value of type root/with-promises-type. Now only fold-queues needs to be implemented. 2015-12-06 02:53:59 +01:00
Georges Dupéron
d10077dbde [make works] Search for TODOs in the makefile, so that they show up at each compilation. Let's try to fix them from time to time :) . 2015-12-04 22:44:44 +01:00
Georges Dupéron
353c2ff426 graph3.lp2.rkt typechecks, but doesn't add new placeholders to the queue yet. Also, the queue module itself isn't finished. 2015-12-04 22:34:39 +01:00
Georges Dupéron
5169b73bf5 WIP, fixed arrows given by define-temp-ids, using syntax-local-get-shadower, see __DEBUG__.rkt for an example. 2015-11-30 16:25:54 +01:00
Georges Dupéron
f96beb16f7 Just before switching to one-mapping-per-node version. 2015-11-20 21:03:53 +01:00
Georges Dupéron
7acbb2acc8 WIP on graph2.lp2.rkt 2015-11-20 14:54:25 +01:00
Georges Dupéron
758d7ef4b7 Added result type annotations for all lambdas in , to catch errors more easily.
That also fixed a problem with graph2.lp2.rkt (changes not committed yet), which probably was due to a type too narrow or to wide being inferred.
2015-11-19 21:08:42 +01:00
Georges Dupéron
f43b08eba3 [make works] Added raco test to makefile, fixed long lines in all *.rkt files. 2015-11-19 14:54:59 +01:00
Georges Dupéron
a2e37a10a4 Changed graph syntax to allow field names. Wrote node/incomplete-type and node/make-incomplete implementations. 2015-11-19 02:02:57 +01:00
Georges Dupéron
854383ef93 [make works] Added “Making incomplete nodes” section 2015-11-18 20:34:10 +01:00
Georges Dupéron
b3c746276a Used ~a instead of string-append, to concatenate long lines. 2015-11-18 20:34:04 +01:00
Georges Dupéron
770e75834f [make works] Added section “Making with-promises nodes” and improved others in graph2.lp2.rkt 2015-11-18 19:57:34 +01:00
Georges Dupéron
d7860e0eaf Fixed footnotes rendering in documentation. 2015-11-18 16:26:33 +01:00
Georges Dupéron
67e9dc92e0 [make works] Started writing about the queues in graph2.lp2.rkt, and started writing the code using the module 2015-11-18 15:28:23 +01:00
Georges Dupéron
333a909385 Started writing fold-queues module, which can process multiple queues with distinct types. 2015-11-18 15:26:55 +01:00
Georges Dupéron
0602d2963e Added define-temp-ids macro to lib/low.rkt 2015-11-18 15:24:57 +01:00
Georges Dupéron
a9a4b934b2 Split long lines in lib/low.rkt 2015-11-18 15:24:18 +01:00
Georges Dupéron
71098a9c04 Fixed some typos, added a bit more text. 2015-11-16 23:38:15 +01:00
Georges Dupéron
7e931314d1 Started writeup about graph macro. 2015-11-16 18:49:21 +01:00
Georges Dupéron
5ed7ddb7c6 Finished implementing queue with purely functional tag database. 2015-11-16 01:31:11 +01:00
Georges Dupéron
25934fc674 WIP on queue library, nearly finished. 2015-11-14 22:27:49 +01:00
Georges Dupéron
241649fcae Cleaup, generate documentation PDFs in makefile, library functions for the queue library (next commit). 2015-11-14 22:27:27 +01:00
Georges Dupéron
efd556eb66 Cleaned up tests. make clean && make works. 2015-11-12 12:47:52 +01:00
Georges Dupéron
fbc2411603 Tried to make low/typed-untyped-module.rkt tests for require/provide run. In the end the error was just due to https://github.com/racket/typed-racket/issues/228, upgrading to a newer build of Racket fixed this. Added a couple of typed/untyped utilities in the process. 2015-11-12 12:17:40 +01:00
Georges Dupéron
29affb88c8 Implements FB case 61: “Use fold-instance to implement replace-instance”. 2015-11-12 00:30:04 +01:00
Georges Dupéron
6b42be29b9 Finished testing implementation for FB case 58 “Add fold to replace-in-type (to extract information from the instance)”. 2015-11-11 22:25:42 +01:00
Georges Dupéron
d6347b52ce Finished implementing (not tested well enough) most of FB case 58 “Add fold to replace-in-type (to extract information from the instance)”. 2015-11-11 02:07:49 +01:00
Georges Dupéron
e44d527f2b WIP. 2015-11-11 01:13:35 +01:00
Georges Dupéron
392999de86 WIP on FogBugz case 58 “Add fold to replace-in-type (to extract information from the instance)”. 2015-11-10 19:35:24 +01:00
Georges Dupéron
116d16f74e 56: Write more text in rewrite-type.lp2.rkt 2015-11-10 17:51:55 +01:00
Georges Dupéron
e8ab36d022 Finished writing rewrite-type.lp2.rkt . Fixes case 24. 2015-11-09 21:32:32 +01:00
Georges Dupéron
7d792f6623 Before simplifying the strategy fro rewrite-type.lp2.rkt 2015-11-09 18:10:32 +01:00
Georges Dupéron
4a25c49169 Implemented rewrite-type, but it does not work for vectors, because (λ ([x : (Vector String)]) (match x [(vector a) (cons 1 a)] [_ 'continue])) can yield 'continue, and it does not work for lists because of some type inference issues. 2015-11-09 13:02:30 +01:00
Georges Dupéron
449a6f4a09 Added let-abort and let*-abort 2015-11-06 15:32:40 +01:00
Georges Dupéron
40fe7e03d5 Wrote cond-abort module, started using it in rewrite-type. 2015-11-06 13:36:50 +01:00
Georges Dupéron
1273cd0e4e Work done last week. 2015-10-28 19:28:46 +01:00
Georges Dupéron
639ce21a13 Submodule lib/doc/bracket/: Ignored and removed compiled/ folders 2015-10-22 18:20:31 +02:00
Georges Dupéron
44c6c951cc Added lib/sequences.rkt, transformed format-ids into a function, moved format-ids and the rest of lib/untyped/ids.rkt into lib/low.rkt, added define-modules macro. Adjusted README and lib/untyped.rkt accordingly. 2015-10-22 18:19:13 +02:00
Georges Dupéron
494537057f Initial commit. 2015-10-21 18:35:42 +02:00