2019-03-01 14:30:52 by Leonardo Taccari | Files touched by this commit (5) | |
Log message:
ecl: Update to 16.1.3
pkgsrc changes:
- Remove clx option. Bundled clx is no longer provided by ecl
Changes:
16.1.3
------
** Announcement
Dear Community,
After almost a year of development we are proud to present a new release of
ECL tagged with version =16.1.3=. All changes are backward compatible
fixing bugs and other issues, implementing new interfaces and cleaning up
the code base.
ECL manual has been updated in a few places. Work on a new documentation is
still pending. It is still incomplete, but you may check see it here:
https://common-lisp.net/project/ecl/static/ecldoc/.
Before this release we have performed extensive tests on various platforms
(Linux, FreeBSD, OpenBSD, NetBSD, OSX, Windows MSVC, Windows MinGW, Windows
Cygwin, Android and Haiku). For details please consult
https://gitlab.com/embeddable-common-lisp/ecl/issues/307. Extra attention
has been paid to Windows testing to improve that platform support.
Best regards,
ECL Development Team
** API changes
- Added better interface for package-locks.
Introduced functions:
=ext:package-locked-p package=
=ext:lock-package package=
=ext:unlock-package package=
=ext:without-package-locks=
=ext:with-unlocked-package=
To use these functions user has to require the module
#+BEGIN_SRC lisp
(require '#:package-locks)
#+END_SRC
=defpackage= accepts new option =lock= to allow locking package on
creation:
#+BEGIN_SRC lisp
(defpackage foo (:lock t))
#+END_SRC
- =mp:holding-lock-p=: introduce new function for multiprocessing. Function
verifies if lock is hold by the thread which calls the function. Usage:
=(mp:holding-lock-p my-lock)=.
- =make-random-state=: fix problem with simple-vectors. The correct
initialization types for =make-random-state= are: =(OR RANDOM-STATE
FIXNUM (MEMBER T NIL))=.
Initializing a random state with an appropriate array (element type and
arity dependent on platform) is also possible.
- =ext:random-state-array=: new extension for random-states. Usage:
=(ext:random-state-array random-state)=.
- =ext:terminate-process=: new extension for external processes. Usage:
=(ext:terminate-process process)= with a second, optional boolean
argument whenever termination should be forced or not.
** Enhancements
- Implemented =CDR-7=.
https://common-lisp.net/project/cdr/document/7/index.html
- implemented CDRs: =CDR-1=, =CDR-5=, =CDR-14=. Both =CDR-1= and =CDR-5=
were already implemented, CDR-14 made us to list them in =*features*=
(https://common-lisp.net/project/cdr/document/14/index.html).
- if ECL is build with =--with-cxx= option, =:CXX-CORE= is present in
=*features*=.
- deprecated configure option =--with-local-gmp= has been removed - use
=--enable-gmp= (defaults to auto).
- configure options has been revised.
- ASDF has been upgraded to version 3.1.7.26 (with a few patches scheduled
for 3.2.0).
- bundled CLX has been purged. Lately I've fixed ECL support on portable
CLX maintained by sharplispers on https://github.com/sharplispers/clx
(available via QuickLisp).
- initial port for the Haiku platform. The port is done by Kacper Kasper's
work, one of Haiku developers. Threads are not supported yet.
- refactored ECL internal tests framework. Tests in =src/tests= are now
asdf-loadable (with =load-source-op=) and divided into test suites. =make
check= target runs all regression and feature tests which aren't supposed
to fail.
- removed 15000 lines of obsolete code. Files not included in the
buildsystem but lingering in the codebase or options failing to
build. All info is added in the new documentation in the section "Removed
interfaces".
- improved man page and help output. Man page now contains up-to-date list
of flags, as well as explanation of flag's behavior.
- deprecated long flags with one dash, added two-dash version. Flags that
aren't one-character, but start with one dash (e.g. =-eval=) are now
deprecated; long version =--eval= was added instead.
- indented C/C++ code to follow emacs's gnu C style. This is a first step
towards coding standards in the documentation. Additionally all in the
src/c/ directory are listed in the appropraite documentation section
(new-doc).
- refactored =list_current_directory in unixfsys.d=. Function was
obfuscated with ifdefs with non-even pairs of =#\{= and =#\}=.
** Issues fixed
- ECL signals floating point exceptions in top-level console.
- =mp:rwlock= is treated as built-in class (previously process crashed if
=class-of= was called on such object).
- ECL builds now succesfully with =--with-ieee-fp=no= option.
- =ext:file-stream-fd=: doesn't cause an internal-error if called with
something not being a =file-stream= (signals a =SIMPLE-TYPE-ERROR=
condtition).
- =stable-sort=: bugfix and improvement in speed. Adapted from SBCL by
Diogo Franco.
- typep: accept =*= type specifier as abbreviation of =T= as described in
=2.4.3 Type Specifiers= of the specification.
- MOP: fix problemes when redefining non-standard and anonymous
classes. Bugs identified and fixed by Pascal Costanza.
- =getcwd=: fix issue with too long pathname. This fixes the regression,
which crashed ECL at start when pathname exceeded 128 characters limit.
- =make-random-state=: fix a problem with simple-vectors. Until now =#$=
reader macro accepted simple vectors as an argument, what lead to bugs if
vector didn't match specific requirements like the element type or the
arity. Now we sanitize this.
- =make-load-form=: provide implementation for random-state objects.
- thread fix on msvc: on windows importing thread was closing the thread
handler so the thread wakeup wasn't working because the handler is not
more valid.
- import thread wasn't set upping a proper environment: on some case the
thread was mistakenly thinking that the thread was already registered.
- =ECL_HANDLER_CASE= and =ECL_RESTART_CASE= didn't work as expected. Bug
identified and fixed by Vadim Penzin.
|
2018-07-04 15:40:45 by Jonathan Perkin | Files touched by this commit (423) |
Log message:
*: Move SUBST_STAGE from post-patch to pre-configure
Performing substitutions during post-patch breaks tools such as mkpatches,
making it very difficult to regenerate correct patches after making changes,
and often leading to substituted string replacements being committed.
|
2018-01-01 23:30:04 by Roland Illig | Files touched by this commit (537) |
Log message:
Sort PLIST files.
Unsorted entries in PLIST files have generated a pkglint warning for at
least 12 years. Somewhat more recently, pkglint has learned to sort
PLIST files automatically. Since pkglint 5.4.23, the sorting is only
done in obvious, simple cases. These have been applied by running:
pkglint -Cnone,PLIST -Wnone,plist-sort -r -F
|
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.
|
2016-07-05 03:26:59 by David A. Holland | Files touched by this commit (1) |
Log message:
LAGS are not FLAGS.
|
2016-03-11 21:32:31 by Aleksej Saushev | Files touched by this commit (6) |
Log message:
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
|
2015-12-09 22:00:47 by Aleksej Saushev | Files touched by this commit (6) |
Log message:
Update to ECL 16.0.0.
Based on changes from Matthew Mondor as forwarded by Kamil Rytarowski.
Changes since 15.3.7:
API changes
- There is no UFFI nickname for FFI package - we piggyback on
cffi-uffi-compat for UFFI dependent systems (our UFFI wasn't version 2.0
compatible and there were problems with ADSF dependencies on UFFI - it
wasn't a system)
- CLOS has the new nickname "MOP"
- The new ext:run-program :error argument can automatically create a
separate stream if provided with the :stream keyword.
The external-process structure also has a new field to hold that stream.
- ext:run-program accepts new arguments - :if-input-does-not-exist,
:if-error-exists and :external-format
- ext:system no longer binds *standard-input* and *standard-output* and
now ignores input and output (use ext:run-program for more control)
- methods can be specialized on both single-float and double-float
(built-in classes were added for them)
- LET/FLET/LABELS will signal error if parameter of the same name will
appear multiple times
- lambda lists with repeated required parameter name are considered invalid
- deprecated configure options "--with-system-boehm=x" and
"--enable-slow-config" removed
Enhancements:
- Verification if manual is up-to-date, providing corrections for
outdated parts
- Documentation is now included in the main repository under the
toplevel directory `doc'
- Update libffi to version 3.2.1
- Update asdf to version 3.1.5.4
- Update Boehm-Demers-Weiser garbage collector to version 7.4.2
- Pathname string-parts internal representation is now character,
not base-char
- Dead code removal, tabulators were replaced by spaces
- Better quality of generated code (explicit casting when necessary)
Issues fixed:
- Various fixes of bogus declarations
- Remove deprecated GC calls
- ROTATEF, SHIFTF, PSETF reworked to conform to the ANSI standard.
Places were handled improperly in regard of multiple values.
- Improved unicode support in character handling
- Format handles floats and exponentials correctly (major format rework)
- Stack limits refinements and cleanup, inconsistency and bug fixes
- Duplicate large block deallocation with GMP 6.0.0a fixed
- ECL builds on OpenBSD with threads enabled
- Closures put in mapcar work as expected in both compiled and
interpreted code
- Improved readtable-case handling (:invert and character literals now
conform)
- Library initialization functions have unique names - no risk of
clashing symbol names in object files
- Format float bug fixed, when width and fdigits were not set, but k was
- `logical-pathname-translations' now throws an error if logical
pathname wasn't defined yet, to conform with ANSI (it used to return NIL)
- Wildcards in logical pathname translations are replaced correctly
- Regression testing framework and unit tests cleanup
- deftype ANSI conformity fix (deftype accepts macro labda-lists)
- ECL built with MSVC doesn't crash when Control-C is pressed
- Other minor tweaks
Changes in 15.3.7 since 15.2.21:
Issues fixed:
- DEFUN functions not defined as toplevel forms were also directly
referenced by other code in the same file.
- STABLE-SORT works as desired (bogus optimization for strings fixed).
- broken --with-sse=yes configure flag works once again.
Enhancements:
- autoconf scripts are rewritten to support version 2.69 stack.
- stack direction is now correctly determined, fixing gcc 5.x builds.
- compilation of ECL under MSVC (2008/2010/2012) even with custom
code pages.
- In compiled code it is possible to declare variables to have a C
type such as in (declare (:double a)) and then the variable is
enforced to be unboxed to such type.
- New form FFI:C-PROGN used to interleave C statements with lisp
code, where the lisp code may refer to any number of variables.
Example:
(lambda (i)
(let* ((limit i)
(iterator 0))
(declare (:int limit iterator))
(ffi:c-progn (limit iterator)
"for (#1 = 0; #1 < #0; #1++) {"
(print iterator)
"}")))
Changes in 15.2.21 since 13.5.1:
- Features coverity scan model, ffi-unload-module implementation,
probably more.
- Build system enhancements, parallel builds, fixes, simplifications,
cleanups, maintenance. minor cleanup, maintenance.
- Numerous fixes.
|
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 \
openjdk7/bootstrap-jdk-1.7.76-freebsd-10-amd64-20150301.tar.xz
Package openjdk7: missing distfile \
openjdk7/bootstrap-jdk-1.7.76-netbsd-5-i386-20150301.tar.xz
Package openjdk7: missing distfile \
openjdk7/bootstrap-jdk-1.7.76-netbsd-6-i386-20150301.tar.xz
Package openjdk7: missing distfile \
openjdk7/bootstrap-jdk-1.7.76-netbsd-7-earmv6hf-20150306.tar.xz
Package openjdk7: missing distfile \
openjdk7/bootstrap-jdk-1.7.76-netbsd-7-sparc64-20150301.tar.xz
Package openjdk7: missing distfile \
openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.8-amd64-20140719.tar.bz2
Package openjdk8: missing distfile \
openjdk7/bootstrap-jdk-1.7.76-freebsd-10-amd64-20150301.tar.xz
Package openjdk8: missing distfile \
openjdk7/bootstrap-jdk-1.7.76-netbsd-5-i386-20150301.tar.xz
Package openjdk8: missing distfile \
openjdk7/bootstrap-jdk-1.7.76-netbsd-6-i386-20150301.tar.xz
Package openjdk8: missing distfile \
openjdk7/bootstrap-jdk-1.7.76-netbsd-7-earmv6hf-20150306.tar.xz
Package openjdk8: missing distfile \
openjdk7/bootstrap-jdk-1.7.76-netbsd-7-sparc64-20150301.tar.xz
Package openjdk8: missing distfile \
openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.8-amd64-20140719.tar.bz2
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.
|
2015-08-30 12:12:29 by Kamil Rytarowski | Files touched by this commit (1) |
Log message:
Set new HOMEPAGE to https://common-lisp.net/project/ecl/
|
2014-04-30 16:19:42 by Thomas Klausner | Files touched by this commit (24) |
Log message:
Bump PKGREVISION for boehm-gc default-on threads, just to be on
the safe side.
|