pkgsrc/lang/ecl/Makefile
asau 2646edd528 Update to ECL 16.1.2
Changes since 16.0.0

 * API changes

 - si:do-setf accepts optional parameter stores.  New lambda-list:
   (access-fn function &optional (stores `(,(gensym))))
   This change is backward compatible.

 - New MP functions:
   mp:with-rwlock
   mp:try-get-semaphore (non-blocking)
   mp:mailbox-try-read  (non-blocking)
   mp:mailbox-try-send  (non-blocking)

 - Added back removed C interfaces
   ecl_import_current_thread
   ecl_release_current_thread

 - When cl-truename encounters a broken symlink, it returns its path
   instead of signalling a file-error

 - Deprecated variables has been removed
   c::*suppress-compiler-warnings*, c::*suppress-compiler-notes*

 - Random state might be initialized by a random seed (truncated to
   32bit value) or by a precomputed array.

   Latter is designed to allow reading back the printed random state
   (when printed readably), not as an array to initialize the random
   state.

 - C99 supporting compiler is mandatory for C backend.

 - COMPILER::*cc_is_cxx*: New variable to switch the output extension of
   emitted compiler code to ".cxx" when configured with "--with-c++". This
   eliminates compiler warnings that compiling C++ with a ".c" extension is
   deprecated; this is seen mostly with Clang++.

 - Added Clang-specific pragmas to disable return type, unused value and
   excessive parentheses warnings, which are fairly harmless, but annoying
   and clutter user output.

 - GRAY:CLOSE isn't specialized on T to preserve compatibility with some
   libraries.

 * Enhancements:

 - Added code walker (present as *feature* :walker)

 - Testing framework cleanup

 - Format fallbacks to prin1 if infinity or NaN are passed to it

 - Annotations are added at runtime (better integration with SLIME)

 - Mersenne-Twister RNG has new 64 bit implementation for appropriate
   machines

 - Add sockets implementation for android platform

 - Add android build target (official android support)

 * Issues fixed:

 - si:open-unix-socket-stream accepts both string and base-string
   (automatic coercion is performed)

 - Long form of DEFSETF accepts multiple-values as a store forms:

   (defsetf gah (x) (y z) `(list ,x ,y ,z))
   (setf (gah 3) (values 3 4))

 - Building with single-threaded boehm works if ECL threads are disabled

 - Using labels works with sharp-S-reader

   (read-from-string
    "(#1=\"Hello\" #S(sharp-s-reader.1.example-struct :A #1#))")

 - Generated C code works well with IEEE 754 infinities
   (regression tests created)

 - User-defined heap sizes can now exceed the size of a fixnum on 32-bit

 - The heap size limit was intended to be 1GB on 32-bit or 4GB on 64-bit
   but inconsistency between ECL_FIXNUM_BITS and FIXNUM_BITS in the code
   prevented the heap to grow for 64-bit.  This now occurs, and a few
   other less visible bugs were fixed by restoring consistency to
   ECL_FIXNUM_BITS.

 - EXT:EXTERNAL-PROCESS-WAIT potential race condition fix

 - Building with object files not created by ECL works (CFFI wrappers)

 - Regression regarding initialization of build by ECL libraries from
   external code fixed. Static and shared libraries initialization
   funcitons has predetermined name while object files has randomized
   names.

 - Random state initial state generation was buggy and insecure (entropy
   from urandom was rejected)

 - Fix `listen' on streams when FILE_CNT isn't available (use read instad
   of fread)

 - `FIND' compiled with C compiler didn't respect `START' nor `END'
   arguments. Compiler macro is fixed now and should work as expected

 - `compute-applicable-methods-using-classes` bugfix
2016-03-11 20:32:30 +00:00

34 lines
974 B
Makefile

# $NetBSD: Makefile,v 1.22 2016/03/11 20:32:30 asau Exp $
DISTNAME= ecl-16.1.2
CATEGORIES= lang
MASTER_SITES= https://common-lisp.net/project/ecl/files/release/$(PKGVERSION_NOREV)/
EXTRACT_SUFX= .tgz
MAINTAINER= asau@inbox.ru
HOMEPAGE= https://common-lisp.net/project/ecl/
COMMENT= Embeddable Common Lisp
LICENSE= gnu-lgpl-v2
USE_PKGLOCALEDIR= yes
GNU_CONFIGURE= yes
USE_LIBTOOL= yes
USE_TOOLS+= gmake makeinfo
INFO_FILES= yes
CONFIGURE_ARGS+= --enable-boehm=system --with-system-gmp
SUBST_CLASSES+= fix-libffi-include
SUBST_STAGE.fix-libdir= post-patch
SUBST_MESSAGE.fix-libdir= Fixing libffi layout.
SUBST_FILES.fix-libdir= src/c/ffi.d
SUBST_SED.fix-libdir= -e '/include.*<ffi/ffi.h>/s:ffi/ffi.h:ffi.h:'
.include "options.mk"
PLIST_SUBST= PKGVERSION_MAJOR_MINOR=${PKGVERSION_NOREV:R} \
PKGVERSION_MAJOR=${PKGVERSION_NOREV:R:R}
.include "../../devel/boehm-gc/buildlink3.mk"
.include "../../devel/gmp/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"