Loading .gitignore +51 −1 Changes for .gitignore: 51 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -39,10 +39,60 @@ msvc/lsp/*.[ch] BUILD-STAMP MODULES Makefile /Makefile src/autom4te.cache src/config.log regressions/*.lsp regressions/eformat-tests/*.txt *.aux *.cp* *.fn* *.log /src/doc/new-doc/*.lsp* *.toc *.tp* *.vr* /src/doc/new-doc/new-doc.pdf /src/doc/new-doc/ecldoc.info /src/doc/new-doc/new-doc.ex /src/doc/new-doc/new-doc.exs /src/doc/new-doc/new-doc.ft /src/doc/new-doc/new-doc.fts /src/doc/new-doc/new-doc.cf /src/doc/new-doc/new-doc.cfs /examples/ecl_qt/qt/ecl_qtdemo /examples/ecl_qt/hello-lisp-system--all-systems.fasb /examples/ecl_qt/lisp-envi.a /examples/ecl_qt/qt/.qmake.stash /examples/ecl_qt/qt/Makefile *fasc *.orig # msvc /msvc/encodings/ /msvc/ecl/atomic_ops/ /msvc/ecl/impl/ /msvc/ecl/*.h /msvc/clos/ /msvc/cmp.asd /msvc/cmp/ /msvc/deflate.asd /msvc/defsystem.asd /msvc/ecl-cdb.asd /msvc/ecl-curl.asd /msvc/ecl-help.asd /msvc/ecl-quicklisp.asd /msvc/ecl.ico /msvc/ecl.rc /msvc/ecl.res /msvc/ext/ /msvc/lsp/ /msvc/package/ /msvc/prebuilt-asdf.asd /msvc/profile.asd /msvc/ql-minitar.asd /msvc/rt.asd /msvc/sb-bsd-sockets.asd /msvc/sockets.asd CHANGELOG +158 −2 Changes for CHANGELOG: 158 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -23,11 +23,167 @@ have a C compiler accessible to ECL, you may use (ext:install-c-compiler) to switch back to the Lisp-to-C compiler. - Before issuing make check on the package package developer has to - Before issuing =make check= on the package package developer has to install ECL on the preferred destination (specified with "--prefix" parameter given to configure script). * Pending changes since 16.1.2 * Pending changes since 16.1.3 * 16.1.3 changes since 16.1.2 ** 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 fed with not 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 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. * 16.1.2 changes since 16.0.0 ** API changes Loading LGPL→COPYING +0 −0 File moved. View file INSTALL +26 −23 Changes for INSTALL: 26 added lines, 23 removed lines. Original line number Diff line number Diff line Loading @@ -13,8 +13,8 @@ If you do not have access to the online version, follow the following recipies. * Windows with Visual Studio C++ 2008 1. Enter the msvc directory 2. Read the file Makefile to find the configuration options. They typically have the form ECL_UNICODE=1, ECL_THREADS=1, etc 2. Read the file Makefile to find the configuration options. They typically have the form ECL_UNICODE=1, ECL_THREADS=1, etc 3. Enter nmake ... followed by zero or more of those options Loading @@ -25,38 +25,41 @@ If you do not have access to the online version, follow the following recipies. 1. Build the host ECL #+BEGIN_SRC shell-script ./configure ABI=32 CFLAGS="-m32 -g -O2" LDFLAGS="-m32 -g -O2"\ --prefix=`pwd`/ecl-android-host \ --disable-longdouble \ --enable-libatomic=included --prefix=`pwd`/ecl-android-host --disable-longdouble make -j9 make install rm -r build export ECL_TO_RUN=`pwd`/ecl-android-host/bin/ecl #+END_SRC 2. Build the toolchain (requires android-ndk) and export the necessary paths - if you have a toolchain for the android just export it's bin/ directory 2. Configure the toolchain (requires android-ndk) and export the necessary paths: #+BEGIN_SRC shell-script export PLATFORM_PREFIX=/opt/toolchains/android-ndk/ export NDK_PATH=/opt/android-ndk/ export NDK_PLATFORM=android-4 mkdir ${PLATFORM_PREFIX} ${NDK_PATH}/build/tools/make-standalone-toolchain.sh \ --platform=${NDK_PLATFORM} \ --install-dir=${PLATFORM_PREFIX} \ --arch=arm export PATH=${PLATFORM_PREFIX}/bin:${PATH} # android-ndk r13b is known to be broken, tested with r9b available at: # http://dl.google.com/android/ndk/android-ndk-r9b-linux-x86_64.tar.bz2 # http://dl.google.com/android/ndk/android-ndk-r9b-darwin-x86_64.tar.bz2 export NDK_PATH=/opt/android-ndk export SYSROOT=${NDK_PATH}/platforms/android-9/arch-arm export PATH=${NDK_PATH}/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin:$PATH #+END_SRC 3. Build and install the target library #+BEGIN_SRC shell-script export LDFLAGS="--sysroot=${SYSROOT}" export CPPFLAGS="--sysroot=${SYSROOT}" ./configure --host=arm-linux-androideabi \ --prefix=`pwd`/ecl-android \ --with-cross-config=`pwd`src/util/android.cross_config \ --disable-soname --with-cross-config=`pwd`/src/util/android.cross_config make -j9 make install #+END_SRC 4. Library and assets in the ecl-android directory are ready to run on the Android system. 4. Library and assets in the ecl-android directory are ready to run on the Android system. ** Building ecl-android on Darwin (OSX) If your host platform is darwin, then the host compiler should be built with the Apple's GCC (not the GCC from Macports). Using the MacPort command: #+BEGIN_SRC shell-script sudo port select --set gcc none #+END_SRC Hint provided by Pascal J. Bourguignon. LICENSE +1 −2 Changes for LICENSE: 1 added line, 2 removed lines. Original line number Diff line number Diff line Loading @@ -23,13 +23,12 @@ PLEASE NOTE THAT: This license covers all of the ECL program except for the files src/lsp/loop2.lsp ; Symbolic's LOOP macro src/lsp/loop.lsp ; Symbolic's LOOP macro src/lsp/pprint.lsp ; CMUCL's pretty printer src/lsp/format.lsp ; CMUCL's format and the directories contrib/ ; User contributed extensions examples/ ; Examples for the ECL usage src/clx/ ; portable CLX library from Telent Look the precise copyright of these extensions in the corresponding files. Loading Loading
.gitignore +51 −1 Changes for .gitignore: 51 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -39,10 +39,60 @@ msvc/lsp/*.[ch] BUILD-STAMP MODULES Makefile /Makefile src/autom4te.cache src/config.log regressions/*.lsp regressions/eformat-tests/*.txt *.aux *.cp* *.fn* *.log /src/doc/new-doc/*.lsp* *.toc *.tp* *.vr* /src/doc/new-doc/new-doc.pdf /src/doc/new-doc/ecldoc.info /src/doc/new-doc/new-doc.ex /src/doc/new-doc/new-doc.exs /src/doc/new-doc/new-doc.ft /src/doc/new-doc/new-doc.fts /src/doc/new-doc/new-doc.cf /src/doc/new-doc/new-doc.cfs /examples/ecl_qt/qt/ecl_qtdemo /examples/ecl_qt/hello-lisp-system--all-systems.fasb /examples/ecl_qt/lisp-envi.a /examples/ecl_qt/qt/.qmake.stash /examples/ecl_qt/qt/Makefile *fasc *.orig # msvc /msvc/encodings/ /msvc/ecl/atomic_ops/ /msvc/ecl/impl/ /msvc/ecl/*.h /msvc/clos/ /msvc/cmp.asd /msvc/cmp/ /msvc/deflate.asd /msvc/defsystem.asd /msvc/ecl-cdb.asd /msvc/ecl-curl.asd /msvc/ecl-help.asd /msvc/ecl-quicklisp.asd /msvc/ecl.ico /msvc/ecl.rc /msvc/ecl.res /msvc/ext/ /msvc/lsp/ /msvc/package/ /msvc/prebuilt-asdf.asd /msvc/profile.asd /msvc/ql-minitar.asd /msvc/rt.asd /msvc/sb-bsd-sockets.asd /msvc/sockets.asd
CHANGELOG +158 −2 Changes for CHANGELOG: 158 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -23,11 +23,167 @@ have a C compiler accessible to ECL, you may use (ext:install-c-compiler) to switch back to the Lisp-to-C compiler. - Before issuing make check on the package package developer has to - Before issuing =make check= on the package package developer has to install ECL on the preferred destination (specified with "--prefix" parameter given to configure script). * Pending changes since 16.1.2 * Pending changes since 16.1.3 * 16.1.3 changes since 16.1.2 ** 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 fed with not 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 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. * 16.1.2 changes since 16.0.0 ** API changes Loading
INSTALL +26 −23 Changes for INSTALL: 26 added lines, 23 removed lines. Original line number Diff line number Diff line Loading @@ -13,8 +13,8 @@ If you do not have access to the online version, follow the following recipies. * Windows with Visual Studio C++ 2008 1. Enter the msvc directory 2. Read the file Makefile to find the configuration options. They typically have the form ECL_UNICODE=1, ECL_THREADS=1, etc 2. Read the file Makefile to find the configuration options. They typically have the form ECL_UNICODE=1, ECL_THREADS=1, etc 3. Enter nmake ... followed by zero or more of those options Loading @@ -25,38 +25,41 @@ If you do not have access to the online version, follow the following recipies. 1. Build the host ECL #+BEGIN_SRC shell-script ./configure ABI=32 CFLAGS="-m32 -g -O2" LDFLAGS="-m32 -g -O2"\ --prefix=`pwd`/ecl-android-host \ --disable-longdouble \ --enable-libatomic=included --prefix=`pwd`/ecl-android-host --disable-longdouble make -j9 make install rm -r build export ECL_TO_RUN=`pwd`/ecl-android-host/bin/ecl #+END_SRC 2. Build the toolchain (requires android-ndk) and export the necessary paths - if you have a toolchain for the android just export it's bin/ directory 2. Configure the toolchain (requires android-ndk) and export the necessary paths: #+BEGIN_SRC shell-script export PLATFORM_PREFIX=/opt/toolchains/android-ndk/ export NDK_PATH=/opt/android-ndk/ export NDK_PLATFORM=android-4 mkdir ${PLATFORM_PREFIX} ${NDK_PATH}/build/tools/make-standalone-toolchain.sh \ --platform=${NDK_PLATFORM} \ --install-dir=${PLATFORM_PREFIX} \ --arch=arm export PATH=${PLATFORM_PREFIX}/bin:${PATH} # android-ndk r13b is known to be broken, tested with r9b available at: # http://dl.google.com/android/ndk/android-ndk-r9b-linux-x86_64.tar.bz2 # http://dl.google.com/android/ndk/android-ndk-r9b-darwin-x86_64.tar.bz2 export NDK_PATH=/opt/android-ndk export SYSROOT=${NDK_PATH}/platforms/android-9/arch-arm export PATH=${NDK_PATH}/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin:$PATH #+END_SRC 3. Build and install the target library #+BEGIN_SRC shell-script export LDFLAGS="--sysroot=${SYSROOT}" export CPPFLAGS="--sysroot=${SYSROOT}" ./configure --host=arm-linux-androideabi \ --prefix=`pwd`/ecl-android \ --with-cross-config=`pwd`src/util/android.cross_config \ --disable-soname --with-cross-config=`pwd`/src/util/android.cross_config make -j9 make install #+END_SRC 4. Library and assets in the ecl-android directory are ready to run on the Android system. 4. Library and assets in the ecl-android directory are ready to run on the Android system. ** Building ecl-android on Darwin (OSX) If your host platform is darwin, then the host compiler should be built with the Apple's GCC (not the GCC from Macports). Using the MacPort command: #+BEGIN_SRC shell-script sudo port select --set gcc none #+END_SRC Hint provided by Pascal J. Bourguignon.
LICENSE +1 −2 Changes for LICENSE: 1 added line, 2 removed lines. Original line number Diff line number Diff line Loading @@ -23,13 +23,12 @@ PLEASE NOTE THAT: This license covers all of the ECL program except for the files src/lsp/loop2.lsp ; Symbolic's LOOP macro src/lsp/loop.lsp ; Symbolic's LOOP macro src/lsp/pprint.lsp ; CMUCL's pretty printer src/lsp/format.lsp ; CMUCL's format and the directories contrib/ ; User contributed extensions examples/ ; Examples for the ECL usage src/clx/ ; portable CLX library from Telent Look the precise copyright of these extensions in the corresponding files. Loading