This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
[self-host] The pprint.clj file is almost usable from bootstrap, apart from one use of macroexpand
. One conditionalized solution involves the use of cljs.js
. Perhaps this big hammer can be employed as a last resort when porting ClojureScript macro implementations that use certain Clojure-specific features. I’m wondering if there might be a better solution and if others here have ideas. Here’s my whack at it: https://github.com/mfikes/clojurescript/commit/5a79cab0f288511ed6cb38fc9a8808dea6393f4d
@mfikes I’m eager to hear about your progress on macroexpand, I read your recent blogpost - kudos! that gist link, is it tested code? I don’t think make-sync works as intended
I don’t think it is possible to turn async call into a sync call without introducing some kind of promise system
@darwin: It works. (See the comment below the code showing it working.) In general, you are right and this code could in theory fail. I think it is working because no async calls to *load-fn*
are being made. A proper solution would likely involve rippling the async nature through the users of the macro, which would likely be problematic.