Sam Tobin-Hochstadt
Sam Tobin-Hochstadt
Just as an example of some of the nuances: This is a simple use of `==`: ``` (match 1 [(== 1) 'a] [_ 'b]) ``` This is a syntax error:...
I think an addition to the grammar pointing out that it's extensible is a great idea. We could also add `==` and `struct*` to the grammar as you've done, but...
It's not really just a string -- it's changed to a bunch of scribble elements in `match-parse.rkt`. You should be able to add something there to add the links you...
I'd still prefer to have a link to the `==` and `struct*` docs -- can you add that to the `match-parse.rkt` code?
@AlexKnauth the `parse-match-grammar` function interprets escape characters, which is how all the other links in that grammar work -- we just need to use the same things for `==` and...
The fixup code there generally, yes.
Unfortunately, this is significantly slower. On dynamic: ``` [samth@huor:~/.../racket/benchmarks/common (mpair) plt] r dynamic.rkt cpu time: 633 real time: 632 gc time: 181 [samth@huor:.../racket/benchmarks/common racket-6.5.0.5] r dynamic.rkt cpu time: 460 real...
@mflatt improved this with e887fa56d1f4c, but there now appears to be a performance issue with GC. This program shows the problem: ``` racket #lang racket (define v (make-vector 1000000)) (struct...
However, despite that issue, there's still something else going wrong for peval, which spends only 3% of its time in GC.
`chaperone-opaque-struct` seems like it would be better as a modification to `chaperone-struct`, or as a different version with the same API but fewer restrictions. Do you need impersonator versions of...