clojure-dev

Issues: https://clojure.atlassian.net/browse/CLJ | Guide: https://insideclojure.org/2015/05/01/contributing-clojure/
vlaaad 2020-05-09T20:46:48.146700Z

what is the rationale behind making vswap! a macro instead of a function like vreset! or swap! ?

vlaaad 2020-05-09T20:52:30.147600Z

it seems that macro can be written as a function, and all it does is... double-evaluates the volatile arg expr

favila 2020-05-09T21:52:38.149900Z

Probably performance? Volatiles are designed to be as fast as possible short of an actual local). Even a let binding to guarantee single-eval would compromise that

ghadi 2020-05-09T21:53:29.150300Z

there is no "double eval" here