This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2015-08-27
Channels
- # admin-announcements (42)
- # aws (15)
- # beginners (8)
- # boot (102)
- # cider (7)
- # clojure (141)
- # clojure-italy (10)
- # clojure-japan (4)
- # clojure-russia (26)
- # clojure-seattle (1)
- # clojurescript (239)
- # core-matrix (13)
- # cursive (19)
- # datascript (54)
- # datomic (21)
- # editors (2)
- # events (1)
- # hoplon (125)
- # instaparse (10)
- # jobs (3)
- # ldnclj (13)
- # ldnproclodo (1)
- # om (1)
- # onyx (2)
- # rdf (206)
- # re-frame (30)
- # reagent (7)
- # yada (4)
@reborg: re: la entry su ^:const nel clojure weekly -- un altro vantaggio e` che permette l'uso non boxato di numeri
@reborg: no, 3.14 viene boxato, ma al punto d'uso di pi, viene unboxato a compile-time invece che a runtime
bronsa mi aspettavo di vedere qualcosa nel LispReader a riguardo ma probabilmente viene letto da ListReader. Compiler.DefExpr non sembra trattare il caso di :^const, quindi dove sara’?
@reborg: ne` il reader ne` def fanno niente di particolare per ^:const, l'inlining e` lessicale (funziona praticamente come un symbol-macrolet globale) e fatto durante il lookup del simbolo nella symbol table (il namespace)
e infatti… https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/Compiler.java#L7087
Ho seguito il giro e mi sembra che arrivi qui https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/Compiler.java#L5138 ad emettere una variabile statica “3.14” nel bytecode, che mi sembra quadrare con quello che mi dici e che ho letto. Grazie delle dritte. molto educativo