Jacqueline Firth
Jacqueline Firth
Running `resyntax` on large codebases is slow, since it needs to macroexpand everything. But analysis of different modules is independent so it should be easy to parallelize the work using...
Adding new rules to Resyntax requires writing the rules in the [`resyntax/default-recommendations`](https://github.com/jackfirth/resyntax/tree/master/default-recommendations) folder. There's a few steps to this, some README docs in that folder would go a long way...
Will close #61 eventually.
Consider this code: ```scheme (define (f x) (do-some-stuff) (let ([y (whatever)]) (do-more-stuff))) ``` This is what the command line UI currently outputs: ``` Internal definitions are recommended instead of let...
Rules produce _syntax replacements_. The `syntax-replacement?` type should be documented. This will also help me keep my head around the underlying data model that `resyntax` operates on.
At present, `resyntax` relies on the undocumented and deeply magic `current-expand-observe` parameter (intended for the macro stepper) to apply refactoring rules to visited syntax objects. This has a few problems:...
It's hard to tell whether a rule will actually be useful. It should be possible to run rules over a large corpus of existing code and gather statistics about how...
The bare bones of `resyntax` are working, though [not very well](https://github.com/jackfirth/resyntax/issues?q=is%3Aissue+is%3Aopen+label%3Abug). It can refactor code by using [refactoring rules](https://github.com/jackfirth/resyntax/blob/master/refactoring-rule.rkt) written with the `syntax-parse` macro system like so: ```scheme (define-refactoring-rule vector-immutable/c-migration...
When Haskell's QuickCheck finds a failing input to a property, before displaying the failure it will attempt to _shrink_ the input first. For instance a list of numbers that fails...
In the Haskell library, properties are merely functions (usually). Their types indicate how they're wired up to arbitraries, and that wiring happens "magically" through typeclasses. Racket however has neither typeclasses...