./lang/clojure, Dynamic programming language that targets the Java VM

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version:, Package name: clojure-, Maintainer: ryoon

Clojure is a dynamic programming language that targets the Java
Virtual Machine (and the CLR, and JavaScript). It is designed to
be a general-purpose language, combining the approachability and
interactive development of a scripting language with an efficient
and robust infrastructure for multithreaded programming. Clojure
is a compiled language - it compiles directly to JVM bytecode, yet
remains completely dynamic. Every feature supported by Clojure is
supported at runtime. Clojure provides easy access to the Java
frameworks, with optional type hints and type inference, to ensure
that calls to Java can avoid reflection.

Clojure is a dialect of Lisp, and shares with Lisp the code-as-data
philosophy and a powerful macro system. Clojure is predominantly
a functional programming language, and features a rich set of
immutable, persistent data structures. When mutable state is needed,
Clojure offers a software transactional memory system and reactive
Agent system that ensure clean, correct, multithreaded designs.

I hope you find Clojure's combination of facilities elegant,
powerful, practical and fun to use.

Required to run:
[misc/rlwrap] [lang/openjdk11]

Required to build:

Master sites:

SHA1: 33b42797609740c6c4a3d478ce07aae94d130ab0
RMD160: 163f9bad72ccfdd122480f06f6b56f7d16c357d9
Filesize: 19288.064 KB

Version history: (Expand)

CVS history: (Expand)

   2019-10-09 14:41:13 by Santhosh Raju | Files touched by this commit (1)
Log message:
clojure: Avoid changing version numbers in two places.

Fix suggested by leot@
   2019-10-09 01:40:37 by Santhosh Raju | Files touched by this commit (5) | Package updated
Log message:
clojure: Update to

Changes since 1.8.0:

https://github.com/clojure/clojure/blob … version-19
https://github.com/clojure/clojure/blob … ersion-110
https://github.com/clojure/clojure/blob … rsion-1101

Submitted by: Sunil Nimmagadda (sunil@nimmagadda.net)

ok maya@
   2019-07-23 22:33:51 by Sevan Janiyan | Files touched by this commit (3) | Package updated
Log message:
Update to Clojure 1.8.0

1 New and Improved Features

1.1 Direct Linking

Direct linking can be enabled with -Dclojure.compiler.direct-linking=true

Direct linking allows functions compiled with direct linking on to make direct \ 
static method calls to most other functions, instead of going through the var \ 
and the Fn object. This can enable further optimization by the jit, at a cost in \ 
dynamism. In particular, directly-linked calls will not see redefinitions.

With this change, clojure.core itself is compiled with direct linking and \ 
therefore other namespaces cannot redefine core fns and have those redefinitions \ 
seen by core code.

A new metadata key ^:redef is provided. A function declared with this key can be \ 
redefined and will never be direct linked. Also, functions declared as ^:dynamic \ 
will never be direct linked.

1.2 String Functions

Several new string functions were added to clojure.string to increase \ 
portability and reduce the need for Java interop calls:

index-of - search for the index of a char or string in a string

last-index-of - search for the index of a char or string backwards in a string

starts-with? - true if string starts with a substring

ends-with? - true if string ends with a substring

includes? - true if string includes a substring


1.3 Socket Server and REPL

The Clojure runtime now has the ability to start a socket server at \ 
initialization based on system properties. One expected use for this is serving \ 
a socket-based REPL, but it also has many other potential uses for dynamically \ 
adding server capability to existing programs without code changes.

A socket server will be started for each JVM system property like \ 
clojure.server.<server-name>. The value for this property is an edn map \ 
representing the configuration of the socket server with the following \ 

address - host or address, defaults to loopback
port - positive integer, required
accept - namespaced symbol of function to invoke on socket accept, required
args - sequential collection of args to pass to accept
bind-err - defaults to true, binds *err* to socket out stream
server-daemon - defaults to true, socket server thread doesn't block exit
client-daemon - defaults to true, socket client thread doesn't block exit
Additionally, there is a repl function provided that is slightly customized for \ 
use with the socket server in clojure.core.server/repl.

Following is an example of starting a socket server with a repl listener. This \ 
can be added to any existing Clojure program to allow it to accept external REPL \ 

-Dclojure.server.repl="{:port 5555 :accept clojure.core.server/repl}"
An example client you can use to connect to this socket repl is telnet:

$ telnet 5555
Connected to localhost.
Escape character is '^]'.
user=> (println "hello")

Socket REPL design page
2 Enhancements

2.1 Error handling

CLJ-1778 let-bound namespace-qualified bindings should throw (if not map \ 
CLJ-1456 Compiler now errors if too few or too many arguments to throw
CLJ-1282 quote now throws if passed more or less than one arg
CLJ-1210 Improved error message for (clojure.java.io/reader nil)
2.2 Documentation strings

CLJ-1060 'list*' returns not a list
CLJ-1722 Typo in the docstring of 'with-bindings'
CLJ-1769 Docstrings for *' and +' refer to * and +
CLJ-1414 sort and sort-by now indicate sort is stable in docstring
2.3 Performance

CLJ-703 Improve writeClassFile performance
CLJ-1765 areduce performance improvements
CLJ-1724 Remove unnecessary call to seq() in LazySeq.hashCode()
CLJ-1295 Improved array-map dissoc performance
CLJ-1277 Speed up printing of time instants with type hints
CLJ-1259 Speed up pprint and cl-format with type hints
CLJ-668 Improve slurp performance by using StringWriter and jio/copy
2.4 Other enhancements

CLJ-1208 Optionally require namespace on defrecord class init
CLJ-1823 Document new :load-ns option to defrecord/deftype
CLJ-1810 ATransientMap now marked public
CLJ-1653 str of an empty list should be "()"
CLJ-1567 Removed unused local in condp implementation
CLJ-1351 Unused swapThunk method was being emitted for fns with keyword callsites
CLJ-1329 Removed unused local in PersistentVector.cons()
CLJ-1831 Add clojure.core/map-entry? predicate
CLJ-1845 Make clojure.core/load dynamic so it can be redef'ed even with direct \ 
3 Bug Fixes

CLJ-130 Namespace metadata lost in AOT compile
CLJ-1134 star-directive in clojure.pprint/cl-format with at-prefix \ 
("~n@*") does not obey its specification
CLJ-1137 Metadata on a def gets evaluated twice
CLJ-1157 Classes generated by gen-class aren't loadable from remote codebase
CLJ-1225 quot overflow issues around Long/MIN_VALUE for BigInt
CLJ-1313 Correct a few unit tests
CLJ-1319 array-map fails lazily if passed an odd number of arguments
CLJ-1361 pprint with code-dispatch incorrectly prints a simple ns macro call
CLJ-1390 pprint a GregorianCalendar results in Arity exception
CLJ-1399 field name unmunged when recreating deftypes serialized into bytecode
CLJ-1485 clojure.test.junit/with-junit-output doesn't handle multiple expressions
CLJ-1528 clojure.test/inc-report-counter is not thread-safe
CLJ-1533 invokePrim path does not take into account var or form meta
CLJ-1562 some->,some->>,cond->,cond->> and as-> doesn't \ 
work with (recur)
CLJ-1565 pprint produces infinite output for a protocol
CLJ-1588 StackOverflow in clojure.test macroexpand with are and anon fn
CLJ-1644 into-array fails for sequences starting with nil
CLJ-1645 protocol class does not set the source file
CLJ-1657 proxy bytecode calls super methods of abstract classes
CLJ-1659 compile leaks files
CLJ-1761 clojure.core/run! does not always return nil per docstring
CLJ-1782 Spelling mistake in clojure.test/use-fixtures
CLJ-1785 Reader conditionals throw when returning nil
CLJ-1766 Serializing+deserializing lists breaks their hash
CLJ-1609 Edge case in Reflector's search for a public method declaration
CLJ-1586 Compiler doesn't preserve metadata for LazySeq literals
CLJ-1232 Functions with non-qualified return type hints will now work without \ 
import from other namespace
CLJ-1812 Fix test failure on windows due to line endings
CLJ-1380 3-arg ExceptionInfo constructor permitted nil data
CLJ-1226 set! of a deftype field using field-access syntax caused ClassCastException
Records and types without fields eval to empty map
CLJ-1827 Fix reflection warning introduced in CLJ-1259
CLJ-1453 Ensure that all Iterator implementations throw NoSuchElementException \ 
on next() when exhausted
CLJ-1868 Avoid compiler NPE when checking class return type
   2019-05-23 21:23:24 by Roland Illig | Files touched by this commit (242)
Log message:
all: replace SUBST_SED with the simpler SUBST_VARS

pkglint -Wall -r --only "substitution command" -F

With manual review and indentation fixes since pkglint doesn't get that
part correct in every case.
   2018-01-01 19:16:39 by Roland Illig | Files touched by this commit (47)
Log message:
Replaced $(ROUND) with ${CURLY} variable references.

This has been a pkglint warning for several years now, and pkglint can even
fix it automatically. And it did for this commit.

Only in lang/mercury, two passes of autofixing were necessary because there
were nested variables.
   2017-08-01 16:59:08 by Thomas Klausner | Files touched by this commit (211)
Log message:
Follow some http -> https redirects.
   2015-11-03 23:50:46 by Alistair G. Crooks | Files touched by this commit (194)
Log message:
Add SHA512 digests for distfiles for lang category

Problems found with existing digests:
	Package nhc98 distfile nhc98src-1.22.tar.gz
	a8adc8f22371998ee0657bc0e01058a57d876abc [recorded]
	81975fcb5f1dda5efeaabc30ce8c6dceae55e591 [calculated]

Problems found locating distfiles:
	Package gcc-aux: missing distfile ada-bootstrap.i386.dragonfly.36A.tar.bz2
	Package gcc-aux: missing distfile ada-bootstrap.i386.freebsd.84.tar.bz2
	Package gcc-aux: missing distfile ada-bootstrap.x86_64.dragonfly.36A.tar.bz2
	Package gcc-aux: missing distfile ada-bootstrap.x86_64.freebsd.84.tar.bz2
	Package gcc-aux: missing distfile ada-bootstrap.x86_64.solaris.511.tar.bz2
	Package gcc5-aux: missing distfile ada-bootstrap.i386.dragonfly.36A.tar.bz2
	Package gcc5-aux: missing distfile ada-bootstrap.i386.freebsd.84.tar.bz2
	Package gcc5-aux: missing distfile ada-bootstrap.x86_64.dragonfly.36A.tar.bz2
	Package gcc5-aux: missing distfile ada-bootstrap.x86_64.freebsd.84.tar.bz2
	Package gcc5-aux: missing distfile ada-bootstrap.x86_64.solaris.511.tar.bz2
	Package ghc7: missing distfile ghc-7.6.3-boot-i386-unknown-freebsd.tar.xz
	Package icc11: missing distfile l_cproc_p_11.1.080.tgz
	Package jini: missing distfile jini-1_2_1_001-src.zip
	Package oo2c: missing distfile oo2c_32-2.0.11.tar.bz2
	Package openjdk7: missing distfile \ 
	Package openjdk7: missing distfile \ 
	Package openjdk7: missing distfile \ 
	Package openjdk7: missing distfile \ 
	Package openjdk7: missing distfile \ 
	Package openjdk7: missing distfile \ 
	Package openjdk8: missing distfile \ 
	Package openjdk8: missing distfile \ 
	Package openjdk8: missing distfile \ 
	Package openjdk8: missing distfile \ 
	Package openjdk8: missing distfile \ 
	Package openjdk8: missing distfile \ 
	Package oracle-jdk8: missing distfile jdk-8u60-linux-i586.tar.gz
	Package oracle-jdk8: missing distfile jdk-8u60-solaris-x64.tar.gz
	Package oracle-jre8: missing distfile jre-8u60-linux-i586.tar.gz
	Package oracle-jre8: missing distfile jre-8u60-solaris-x64.tar.gz
	Package sun-jdk6: missing distfile jdk-6u45-linux-i586.bin
	Package sun-jdk6: missing distfile jdk-6u45-solaris-i586.sh
	Package sun-jdk7: missing distfile jdk-7u72-linux-i586.tar.gz
	Package sun-jdk7: missing distfile jdk-7u72-solaris-i586.tar.gz
	Package sun-jre6: missing distfile jce_policy-6.zip
	Package sun-jre6: missing distfile jre-6u45-linux-x64.bin
	Package sun-jre6: missing distfile jre-6u45-solaris-x64.sh
	Package sun-jre7: missing distfile jre-7u72-linux-i586.tar.gz
	Package sun-jre7: missing distfile jre-7u72-solaris-i586.tar.gz

Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden).  All existing
SHA1 digests retained for now as an audit trail.
   2013-06-11 21:51:27 by Aleksej Saushev | Files touched by this commit (3) | Package updated
Log message:
Update to Clojure 1.5.1

Changes to Clojure in Version 1.5.1

* fix for leak caused by ddc65a96fdb1163b

Changes to Clojure in Version 1.5

 1 Deprecated and Removed Features
    1.1 Clojure 1.5 reducers library requires Java 6 or later
 2 New and Improved Features
    2.1 Reducers
    2.2 Reader Literals improved
    2.3 clojure.core/set-agent-send-executor!, set-agent-send-off-executor!,
        and send-via
    2.4 New threading macros
    2.5 Column metadata captured by reader
    2.6 gen-class improvements
    2.7 Support added for marker protocols
    2.8 clojure.pprint/print-table output compatible with Emacs Org mode
    2.9 clojure.string/replace and replace-first handle special characters
        more predictably
    2.10 Set and map constructor functions allow duplicates
    2.11 More functions preserve metadata
    2.12 New edn reader, improvements to *read-eval*
 3 Performance Enhancements
 4 Improved error messages
 5 Improved documentation strings
 6 Bug Fixes
 7 Binary Compatibility Notes