Hey Serzh,

Rich just pushed a change to master that removes unused interns in the 
static initializers - we are doing some further testing on it before 
creating an RC but if you wanted to check it out as a snapshot, I'd be 
interested in hearing your feedback in particular as you have a specific 
need for it. 

You can see info on how to use a snapshot build of Clojure here (you need 
to add the snapshot Maven repository):
  http://dev.clojure.org/display/community/Maven+Settings+and+Repositories

Alex

On Tuesday, December 1, 2015 at 1:46:22 AM UTC-6, Serzh Nechyporchuk wrote:
>
> Hello, Alex. Thank you for your work.
>
> Direct linking is a feature that we wait for a long. We need to obfuscate 
> our code, so direct linking is really helps us.
> But I wonder, why there is keyword and symbols interning left in the 
> static initalizer in the class:
>
> L1 {
>              ldc "clojure.core" (java.lang.String)
>              ldc "float?" (java.lang.String)
>              invokestatic clojure/lang/RT 
> var((Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;);
>              checkcast clojure/lang/Var
>              putstatic 
> malt/utils$string_to_double.const__0:clojure.lang.Var
>              ...
> }
>
> But neither *invoke* nor *invokeStatic *doesn't use them.
> We want to get rid of this interns because they undermine code obfuscation.
>
> Thank you
>
>
> Clojure 1.8.0-RC2 is now available. *This build is a "release candidate"!* We 
>> would appreciate any and all testing you can do on your own libraries or 
>> internal projects to find problems. 
>>
>> Try it via
>>
>>    - Download: 
>>    https://repo1.maven.org/maven2/org/clojure/clojure/1.8.0-RC2
>>    - Leiningen: [org.clojure/clojure "1.8.0-RC2"]
>>
>> Below are the changes since 1.8.0-RC1. See the full 1.8 change log here: 
>> https://github.com/clojure/clojure/blob/master/changes.md.
>>
>>    - CLJ-1846 <http://dev.clojure.org/jira/browse/CLJ-1846> Fix 
>>    VerifyError when primitive type hints are incorrect. These cases now 
>> throw 
>>    compiler errors.
>>       - Example: (defn foo ^long [] 1)  (Integer/bitCount ^int (foo))
>>       - In this example, foo returns a long but is type hinted 
>>       (incorrectly) as an int. This case will now throw a compilation error. 
>> The 
>>       correct way to do this is with a cast:  (Integer/bitCount (int 
>>       (foo)))
>>    - CLJ-1825 <http://dev.clojure.org/jira/browse/CLJ-1825> Fix 
>>    compilation errors on direct linking of anonymous recursive functions
>>
>>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to