Received: from mail.netbsd.org (mail.netbsd.org [149.20.53.66]) by www.NetBSD.org (Postfix) with ESMTP id 120D263B882 for ; Thu, 26 Jul 2012 21:10:03 +0000 (UTC) Received: by mail.netbsd.org (Postfix, from userid 605) id E40A414A195; Thu, 26 Jul 2012 21:10:02 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by mail.netbsd.org (Postfix) with ESMTP id 07FEB14A1EB for ; Thu, 26 Jul 2012 21:09:31 +0000 (UTC) X-Virus-Scanned: amavisd-new at NetBSD.org Received: from mail.netbsd.org ([127.0.0.1]) by localhost (mail.NetBSD.org [127.0.0.1]) (amavisd-new, port 10025) with ESMTP id 6ZZ0yFHoYUfL for ; Thu, 26 Jul 2012 21:09:29 +0000 (UTC) Received: from cvs.netbsd.org (cvs.NetBSD.org [IPv6:2001:4f8:3:7:2e0:81ff:fe30:95bd]) by mail.netbsd.org (Postfix) with ESMTP id D3D1B14A1E5 for ; Thu, 26 Jul 2012 21:09:29 +0000 (UTC) Received: by cvs.netbsd.org (Postfix, from userid 500) id 80208175DD; Thu, 26 Jul 2012 21:09:29 +0000 (UTC) MIME-Version: 1.0 Content-Disposition: inline Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII" Date: Thu, 26 Jul 2012 21:09:29 +0000 From: "Aleksej Saushev" Subject: CVS commit: pkgsrc/lang/ecl To: pkgsrc-changes@NetBSD.org Reply-To: asau@netbsd.org X-Mailer: log_accum Message-Id: <20120726210929.80208175DD@cvs.netbsd.org> Sender: pkgsrc-changes-owner@NetBSD.org List-Id: pkgsrc-changes.NetBSD.org Precedence: bulk Module Name: pkgsrc Committed By: asau Date: Thu Jul 26 21:09:29 UTC 2012 Modified Files: pkgsrc/lang/ecl: Makefile PLIST distinfo options.mk pkgsrc/lang/ecl/patches: patch-aa Removed Files: pkgsrc/lang/ecl: PLIST.unicode Log Message: Update to ECL 12.7.1 ECL 12.7.1: =========== * Bugs fixed: - The implementation of locks and condition variables based on POSIX threads was not safe under interrupts. It has all been reimplemented using atomic userspace operations plus a new wait queue. - :CDECL was not accepted as an FFI declaration due to a typo. - REMOVE-METHOD and FIND-METHOD were not generic functions. - MAKE-LOAD-FORM's methods for standard-object, structure-object and condition did not signal an error). * Visible changes: - ECL builds with support for threads by default (where available). - DIRECTORY no longer complains when it finds an inexistent directory component: it simply returns NIL as the list of pathnames. - CASE now complains when the OTHERWISE/T clause is not the last one. - Instead of issuing an error, LOOP now only produces a STYLE-WARNING when iteration forms appear at the wrong place, as in (LOOP WHILE ...) followed by some assignment. - EXT:MKDIR no longer accepts pathnames as inputs to avoid problems with pathnames that contain name or type components. - ENSURE-DIRECTORIES-EXIST accepts the keyword argument :MODE which is passed to MKDIR. - In EXT:RUN-PROGRAM the child process is delayed until the parent has created the process structure and stored the process id in it. Formerly we had race conditions due to the child exiting before the parent was able to call sigwait(). - Where available, ECL now defines the constants EXT:+SIGRTMIN+ and EXT:+SIGRTMAX+, as well as EXT:+SIGRT0+ through EXT:+RTMINn+ where n = SIGRTMAX - SIGRTMIN Those signals can be then trapped. - The interrupt handler for floating point exceptions does not care about the value of EXT:*INTERRUPTS-ENABLED* or similar mechanisms because such interrupt has to be treated as an error, not as something optional. The same applies to other evil signals, such as SIGSEGV or SIGBUS. - New functions (EXT:GET-INTERRUPT-HANDLER code) and (EXT:SET-INTERRUPT-HANDLER code function-designator) allow the user to customize how these interrupts are caught. SET-INTERRUPT-HANDLER runs an implicit EXT:CATCH-SIGNAL. - ECL now exports the symbols FFI:C-INT-MAX, FFI:C-INT-MIN, FFI:C-LONG-MAX, etc, which correspond to the POSIX C constants INT_MAX, INT_MIN, LONG_MAX, and similar ones. - APROPOS-LIST no longer returns duplicate symbols. - The ABORT restart is now bound on every new thread (except the main one, where either the user or the toplevel must take care of that). * Windows: - ECL guesses whether the input / output / error streams are consoles. If so, it sets up a special type of stream that copes with the deficiencies of read()/write() and similar functions on consoles -- namely that they may read or write a larger number of bytes than demanded because they translate the input/output to and from the corresponding codepage. (EXPERIMENTAL) - ECL detects the codepage that the console is using and applies it as the appropriate external format (with :CRLF convention). - ECL's console stream signals EOF when Ctrl-Z is detected. * Metaobject protocol: - Implemented CLOS:COMPUTE-APPLICABLE-METHODS-USING-CLASSES. - COMPUTE-APPLICABLE-METHODS and CLOS:COMPUTE-EFFECTIVE-METHOD are now generic functions. - Implemented and used in the core: VALIDATE-SUPERCLASSES - UPDATE-DEPENDENT, MAP-DEPENDENTS and related functions have been fixed. They are now invoked by REMOVE-METHOD and REINITIALIZE-INSTANCE, when acting on generic functions, standard classes, etc. - (SETF CLASS-NAME) is now implemented using REINITIALIZE-INSTANCE. - ENSURE-CLASS-USING-CLASS now registers the class with FIND-CLASS. ENSURE-CLASS relies on E-C-U-C doing that. - EXTRACT-LAMBDA-LIST and EXTRACT-SPECIALIZER-NAMES implemented. - CLOS:GENERIC-FUNCTION-DECLARATIONS and slot CLOS:DECLARATIONS are now implemented (even if not used by ECL itself). - Implemented the class CLOS:METAOBJECT - Implemented SPECIALIZER and EQL-SPECIALIZER, together with ADD-DIRECT-METHOD, REMOVE-DIRECT-METHOD, SPECIALIZER-DIRECT-METHODS, SPECIALIZER-DIRECT-GENERIC-FUNCTIONS and EQL-SPECIALIZER-OBJECT. ECL now uses these objects internally for method dispatch. - DEFMETHOD now relies on MAKE-METHOD-LAMBDA to create the appropriate function. - Implemented COMPUTE-DISCRIMINATING-FUNCTION. - ECL's discriminating functions use COMPUTE-APPLICABLE-METHODS-USING-CLASSES on those classes in which the user may redefine or extend the method. Elsewhere, ECL relies on the internal equivalent of COMPUTE-APPLICABLE-METHODS, which _always_ memoizes results. - When reinitializing a class instance, ECL would not remove the class from its former superclasses. - The method combination slot of a generic function is now precomputed by using FIND-METHOD-COMBINATION in SHARED-INITIALIZE. - METHOD-COMBINATION is now a class with slots and it is used by ECL for computing effective methods. - The MOP and CL classes and metaclasses do not contain any slot whose name is exported by any of the CL or CL-USER packages. To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 pkgsrc/lang/ecl/Makefile cvs rdiff -u -r1.10 -r1.11 pkgsrc/lang/ecl/PLIST cvs rdiff -u -r1.4 -r0 pkgsrc/lang/ecl/PLIST.unicode cvs rdiff -u -r1.11 -r1.12 pkgsrc/lang/ecl/distinfo cvs rdiff -u -r1.6 -r1.7 pkgsrc/lang/ecl/options.mk cvs rdiff -u -r1.3 -r1.4 pkgsrc/lang/ecl/patches/patch-aa Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.