clojure-dev

Issues: https://clojure.atlassian.net/browse/CLJ | Guide: https://insideclojure.org/2015/05/01/contributing-clojure/
Ben Sless 2021-05-20T06:35:46.003Z

I remember some time ago Alex mentioned :inline and definline should still be considered experimental. Is it still their status? If so, why? Things like https://clojure.atlassian.net/browse/CLJ-1656 and get-in could greatly benefit from it On the same note, why can't definline have more than one arity? I played around with aggressive inlining/unrolling and it can have dramatic performance gains, but one concern I had about it was how it affects the size of emitted bytecode and JIT compilation. Anyone has any insights on that angle?

2021-05-20T16:00:33.005Z

I have a hunch it would increase our method size woes - we already run into methods that are too large for the jvm when combining macros like destructuring / async/go / core.match and core.logic in one block

ghadi 2021-05-21T20:58:52.006600Z

coughs in invokedynamic

alexmiller 2021-05-20T16:11:01.006Z

re the first question, yes it is still experimental. Rich had ideas of something better to replace them that I looked at now so many years ago that I do not recall the details

Ben Sless 2021-05-20T17:26:08.006100Z

It's an inevitable consequence when we have lots of code generation tools but not many code elimination tools to offset them

2021-05-20T21:04:32.006300Z

it is a consequence of the lack of tail calls, core.async and match generate code in a single method because of it

👀 1