clr

Mark Pebblestream 2023-09-28T17:22:52.053309Z

We often use names like val|err. If I set *allow-symbol-escape* to false, then my dependencies using symbol escape break. Any workaround besides wrapping the dependency requires with (binding [*allow-symbol-escape* true]?

dmiller 2023-09-28T18:35:59.517879Z

No workaround you're likely to appreciate.

Clojure 1.12.0-alpha8
user=> `val||||err
user/val|err
user=> `|val||err|
user/val|err
user=>
If we had had tagged literals back when I implemented this, I would have done it differently. This particular technique was taken from CommonLisp, with some simplifications and some modifications to deal with namespaces.

👍 1
dmiller 2023-09-28T18:47:55.373319Z

In a future version of ClojureCLR, I may actually get around to defining that tagged literal alternative. Then anyone not dealing with backward compatibility can turn off *allow-symbol-escape*. But first I need a long think on how we deal with types, how to get closer to the syntax of the C#/F# world, which means dealing with .Net namespaces, maybe type aliasing, and things under rocks I don't want to turn over.

👍 1