Details
-
Type:
Enhancement
-
Status:
Closed
-
Priority:
Trivial
-
Resolution: Completed
-
Affects Version/s: None
-
Fix Version/s: Release 1.4
-
Component/s: None
-
Labels:None
-
Patch:Code
-
Approval:Ok
Description
if you have a macro like:
(defmacro f [a b] a)
and compile a function like:
(fn [x] (f x (/ 1 0)))
the macro is expand before compilation into:
(fn [x] x) ;; no reference to f
but the emitted byte code still holds the var for the macro 'f' in a static field.
Attachments
Activity
Kevin Downey
made changes -
| Field | Original Value | New Value |
|---|---|---|
| Attachment | clj-773.diff [ 10181 ] |
Kevin Downey
made changes -
| Patch | Code |
Kevin Downey
made changes -
| Description |
if you have a macro like:
(defmacro f [a b] a) and compile a function like: (fn [x] (f x (/ 1 0))) the macro is expand before compilation into: (fn [x] x) ;; no reference to x but the emitted byte code still holds the var for the macro 'f' in a static field. |
if you have a macro like:
(defmacro f [a b] a) and compile a function like: (fn [x] (f x (/ 1 0))) the macro is expand before compilation into: (fn [x] x) ;; no reference to f but the emitted byte code still holds the var for the macro 'f' in a static field. |
Stuart Halloway
made changes -
| Approval | Screened [ 10004 ] | |
| Fix Version/s | Release 1.4 [ 10040 ] |
Rich Hickey
made changes -
| Approval | Screened [ 10004 ] | Ok [ 10007 ] |
Stuart Halloway
made changes -
| Resolution | Completed [ 1 ] | |
| Status | Open [ 1 ] | Closed [ 6 ] |