Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Comparing changes

Choose two branches to see what's changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: arohner/clojure
head fork: arohner/clojure
Checking mergeability… Don't worry, you can still create the pull request.
Commits on Jun 08, 2010
@cgrand cgrand read ^:foo bar as ^{:foo true} bar and merge existing metatada. See #…

Signed-off-by: Rich Hickey <>
@richhickey richhickey first cut at primitives in fn sigs ca73783
Commits on Jun 09, 2010
@richhickey richhickey direct calls to statics, integrating into core fns 4db0b1f
@richhickey richhickey move exception handler in eval to properly retain line 5093968
@richhickey richhickey moved statics to using arglist metadata, support recursion and variad…
…ics, limit primitives to long and double
Commits on Jun 10, 2010
@richhickey richhickey detect constant maps, emit as constants
break down constant inits into separate methods, call from init
move core.clj to statics
@richhickey richhickey add support for constant vectors and sets 0d7aed7
@richhickey richhickey account for longs/doubles on stack for static fns 27d9f6a
@richhickey richhickey eliminate reflection in chunk* and other core calls 46da540
@richhickey richhickey munge dashes in ns names for static calls 826c815
@richhickey richhickey simplified keyword callsites, made compatible with static fns c7af275
@stuarthalloway stuarthalloway #377 test now reports file/line for failures in repl or Ant build
Signed-off-by: Rich Hickey <>
@richhickey richhickey flow type hints on static invoke calls 9ad685b
Commits on Jun 11, 2010
@richhickey richhickey re-enable protocol-based reduce 3f74c9f
Commits on Jun 12, 2010
@richhickey richhickey incomplete work in progress c5d0985
Commits on Jun 13, 2010
@richhickey richhickey incomplete work in progress 8fbafa9
Commits on Jun 16, 2010
@richhickey richhickey Unify numeric semantics around longs, with throw on overflow. Allow n…
…umeric literals to be primitive initializers. Canonicalize boxing of integers, if it fits in int, is Integer, else Long, thus primitive coercions can't be used to get particular boxed types, use Long/valueOf etc. Ask for BigIntegers if you want arbitrary precision, new literal number format - append 'N' for BigInteger. BigIntegers do not reduce automatically, are contagious. New particular names for unchecked ops - unchecked-xxx-int or unchecked-xxx-long. You should need far fewer hints for primitive perf, and avoid int casts and any casting of numeric literals, see:
@richhickey richhickey remove unchecked-inc from amap, areduce 26e50c3
@richhickey richhickey fix hashcode of empty lazy seq 0deef3e
@richhickey richhickey return doubles from quotient/remainder on doubles e4a76e0
@richhickey richhickey canonic boxing of floats and longs in array seqs db653b5
@richhickey richhickey bigdecs trump ratios when combined d97599c
@richhickey richhickey return bigints from ratio ops only when bigint operand a1a25da
Commits on Jun 17, 2010
@richhickey richhickey tighten up numeric comparisons e526bb8
@richhickey richhickey tighten up narrowing conversion checks 4003a1c
@richhickey richhickey Util.equals unboxed support for long/double 863decc
@richhickey richhickey Change = to include type of boxed numbers (and collections thereof). …
…Use == for inter-type numeric equivalence.
Commits on Jun 18, 2010
@richhickey richhickey Allow ' as constituent character
Bigints auto-reduce in all cases
Restore +, *, -, inc, dec as auto-promoting ops, will never return primitive integers, will auto-promote even when given primitives.
Add +', *', -', inc', dec', that do exactly what their counterparts do except when given integers of long or smaller, in which case they will not auto-promote but instead throw on overflow, and can return primitives.
Return primitive doubles on all ops involving primitive doubles
Box on long ops only after checking for overflow
Commits on Jun 19, 2010
@richhickey richhickey print recur mismatch warnings, for now 7652f7e
@richhickey richhickey Swap defaults, now non-promoting +, * etc is default. Use +', *' etc …
…for arbitrary precision.
@richhickey richhickey restore hard error on primitive local recur mismatch 25165a9
Commits on Jun 21, 2010
@richhickey richhickey auto-box loop arg when primitive local recur mismatch, print warning …
…that this is happening when *warn-on-reflection* is true
Commits on Jun 23, 2010
@richhickey richhickey equiv-based =, equiv overloading for Util df0e4b6
@Chouser Chouser Initial version of BigInt -- note overflow caps/rolls over inconsiste…

Signed-off-by: Rich Hickey <>
@richhickey richhickey add hashCode/equals to BigInt, refine number =, new method equal chec…
…ks for matching category before equivalence, move array and hashMap to equiv for keys
Commits on Jun 24, 2010
@richhickey richhickey box longs-and-smaller as longs 845c63e
Commits on Jun 25, 2010
@richhickey richhickey incorporate BigInt 07f0586
Commits on Jul 31, 2010
@stuarthalloway stuarthalloway temporary workaround for #388
 - note need for full package name (in some places, didn't track down)
 - note need for redundant hinting (interface hinting flows sometimes?)
@arohner Remove another reflection warning 002a9e7