Error formatting macro: pagetree: java.lang.NullPointerException

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


0 Still In Process
1 Deprecated and Removed Features
1.1 Earmuffed Vars Are No Longer Automatically Considered Dynamic.
1.2 ISeq No Longer Inherits From Sequential
1.3 Disallow recur across try
1.4 Removed

1.X More info needed
2 New/Improved Features in clojure.core
2.1 Enhanced Primitive Support
2.2 better exception reporting
2.3 ancillary namespaces no longer auto-load on startup:
2.4 Code Path for Using Vars is Now Much Faster for the Common Case
2.5 clojure.reflect/reflect
2.7 with-redefs macro (useful for stubbing)
2.8 print-table
2.9 normalized unchecked-* fn names
2.10 added unchecked-math support
2.11 fixes to binding conveyance (and agent)
2.12 pprint respects print-length
2.13 into-array now coerces numeric types
2.14 Java's line.separator property for newline
2.15 compilation and deployment via Maven
2.16 improved startup time
2.17 internal keyword map uses weak refs
2.18 fix perf on some numeric overloads
2.19 ^:const defs
2.20 Message Bearing Assert
2.21 Error Checking for defmulti Options
2.22 Promises are Lock Free
2.23 Removed Checked Exceptions
2.24 vector-of Takes Multiple Arguments
2.25 every-pred and some-fn Combinators
2.26 deref with timeout
2.27 realized?
2.28 Functions Only Get Metadata Support Code When Metadata Explicitly Supplied When Defined
2.29 Allow definterface/gen-interface to Accept Array Type Hints
2.30 Better Error Message for Invalid Map LiteralsMessages
2.31 Walk Support for sorted-by Collections
2.32 string.join Enhanced to Work with Sets
2.33 clojure.test-helper
2.34 Newline outputs platform-specific newline sequence
2.35 nil? inlined
2.36 init-proxy and update-proxy return proxy
2.37 doc & find-doc moved to REPL
2.38 accepts as input anything that does

2.X More Info Needed
3 New Namespaces
4 Functions with Improved Performance
5 Bug Fixes
6 JIRA issues


(fn x (try (recur 1)))
=> CompilerException

== 1.4 Removed Bit Operation support for boxed numbers ==

Bit Operations map directly to primitive operations

== 1.X More info needed ==

  • CLJ-182 Symbol.create is now Symbol.intern
  • CLJ-278 replicate could be marked deprecated


Performance optimization to allow type hinting on interfaces.

== 2.30 Better Error Message for Invalid Map Literals Messages ==

Provides a more useful error message when creating a literal map with an odd number of forms


=> RuntimeException Map literal must contain an even number of forms

Better error messages:

  • When calling macros with arity
  • For Invalid Map Literals
  • For alias function if using unknown namespace
  • In the REPL

== 2.31 Walk Support for sorted-by Collections


Adds special form docs to the REPL

== 2.38 accepts as input anything that does

This adds InputStream, Reader, File, byte[] to the list of inputs for

== 2.39 print-table

Prints a collection of maps in a textual table.

(print-table fred :barney fred "ethel"} {:fred "wilma" :barney "betty"})

=> ===============

:fred | :barney


ethel |

wilma | betty


== 2.X More Info Needed ==

  • CLJ-249 Add "starting at <line>" to EOF while reading exceptions
  • CLJ-263 Add an optional environment argument to #'resolve and ns-resolve
  • CLJ-276 Add non-interning keyword lookup function
  • CLJ-280 def should support an optional doc-string
  • CLJ-285 Make it easier to discover the source of compiler exceptions when two files have the same name in different directories
  • CLJ-315 Add support for running -main namespace from clojure.main without AOT
  • CLJ-364 Make PersistentQueue Counted
  • CLJ-378 Set thread names on agent thread pools
  • CLJ-380 bit-and missing long parameters overload
  • CLJ-397 better error message when calling macros with arityCLJ-425 stop early-loading ancillary libraries
  • CLJ-429 revamp ant build
  • CLJ-439 Automatic type translation from Integer to Long
  • CLJ-443 Add zero-arity body to comp function
  • CLJ-435 Reflection
  • CLJ-458 print-tableCLJ-460 promote interrupt handling to clojure.repl
  • CLJ-665 Add mechanism to temporarily replace root bindings of vars


  • CLJ-292 LazySeq.sval() nests RuntimeExceptions
    • Patch causes only the original RuntimeException to be thrown
  • CLJ-320 alias function gives confusing message if using unknown namespace
    • Patch provides a more useful error message
    CLJ-390 sends from agent error-handlers should be allowed
    • Patch allows agent error-handler to send successfully


  • CLJ-682 cl-format: ~w throws an exception when not wrapped in a pretty-writer
    • Patch fixes the following bug in cl-format with ~w:
  • CLJ-691 missing stacktrace confuses REPL error reportingCLJ-693 VerifyError with symbol metadata, macros, and defrecord