Skip to content
This repository
Fetching contributors…

Cannot retrieve contributors at this time

file 71 lines (67 sloc) 3.526 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
(require 'leiningen.core.eval)

(def JVMOPTS
  "Per os jvm options. Options common to all cases go under
`:any`. Options specific to one OS go under the key returned by
`leiningen.core.eval/get-os` for that system. Temporarily disabled
options can be kept under `:disabled`."
  {:any
   ["-Xms512m" "-Xmx1g" ; Minimum and maximum sizes of the heap
    "-XX:+UseParNewGC" ; Use the new parallel GC in conjunction with
    "-XX:+UseConcMarkSweepGC" ; the concurrent garbage collector
    "-XX:+CMSConcurrentMTEnabled" ; Enable multi-threaded concurrent gc work (ParNewGC)
    "-XX:MaxGCPauseMillis=20" ; Specify a target of 20ms for max gc pauses
    "-XX:+CMSIncrementalMode" ; Do many small GC cycles to minimize pauses
    "-XX:MaxNewSize=257m" ; Specify the max and min size of the new
    "-XX:NewSize=256m" ; generation to be small
    "-XX:+UseTLAB" ; Uses thread-local object allocation blocks. This
                                  ; improves concurrency by reducing contention on
                                  ; the shared heap lock.
    "-XX:MaxTenuringThreshold=0"] ; Makes the full NewSize available to every NewGC
                                  ; cycle, and reduces the pause time by not
                                  ; evaluating tenured objects. Technically, this
                                  ; setting promotes all live objects to the older
                                  ; generation, rather than copying them.
   :macosx
   ["-Xdock:name=Overtone"]
   :disabled
   ["-XX:ConcGCThreads=2" ; Use 2 threads with concurrent gc collections
    "-XX:TieredCompilation" ; JVM7 - combine both client and server compilation
                                  ; strategies
    "-XX:CompileThreshold=1" ; JIT each function after one execution
    "-XX:+PrintGC" ; Print GC info to stdout
    "-XX:+PrintGCDetails" ; - with details
    "-XX:+PrintGCTimeStamps"]}) ; - and timestamps

(defn jvm-opts
  "Return a complete vector of jvm-opts for the current os."
  [] (let [os (leiningen.core.eval/get-os)]
       (vec (set (concat (get JVMOPTS :any)
                         (get JVMOPTS os))))))

(defproject overtone "0.10-SNAPSHOT"
  :description "Collaborative Programmable Music."
  :url "http://overtone.github.io/"
  :mailing-list {:name "overtone"
                 :archive "https://groups.google.com/group/overtone"
                 :post "overtone@googlegroups.com"}
  :license {:name "The MIT License (MIT)"
            :url "http://opensource.org/licenses/MIT"
            :distribution :repo
            :comments "Please use Overtone for good"}

  :dependencies [[org.clojure/clojure "1.5.1"]
                 [org.clojure/data.json "0.2.3"]
                 [clj-native "0.9.3"]
                 [overtone/at-at "1.2.0"]
                 [overtone/osc-clj "0.9.0"]
                 [overtone/byte-spec "0.3.1"]
                 [overtone/midi-clj "0.5.0"]
                 [overtone/libs.handlers "0.2.0"]
                 [overtone/scsynth "3.5.7.0"]
                 [overtone/scsynth-extras "3.5.7.0"]
                 [clj-glob "1.0.0"]]
  :profiles {:test {:dependencies [[bultitude "0.2.0"]
                                   [polynome "0.2.2"]]}}
  :test-selectors {:core (fn [m] (not (some m [:gui :hw])))
                   :gui :gui
                   :hw :hw}
  :native-path "native"
  :min-lein-version "2.0.0"
  :jvm-opts ^:replace ~(jvm-opts))
Something went wrong with that request. Please try again.