From mevenson at common-lisp.net Thu Jul 2 13:54:06 2009 From: mevenson at common-lisp.net (Mark Evenson) Date: Thu, 02 Jul 2009 09:54:06 -0400 Subject: [armedbear-cvs] r12026 - trunk/abcl Message-ID: Author: mevenson Date: Thu Jul 2 09:54:00 2009 New Revision: 12026 Log: Restore use of 'additional.jars' Ant build property to include additional jars at runtime. '-cp' and '-jar' are mutually incompatible options to invoking the JVM, although not documented consistently as such. We restore the previous wrapper scripts to restore the usage of the Ant build property 'additional.jars' to include additional JAR files at runtime. Fix Ant uptodate target by excluding org/armedbear/scripting/**/*.lisp files from abcl.source.lisp.fasls. Essentially this patternset has to match the files compiled by compile-system.lisp, or you will end up invoking the Lisp compilation process each time. Modified: trunk/abcl/abcl.bat.in trunk/abcl/abcl.in trunk/abcl/build.xml Modified: trunk/abcl/abcl.bat.in ============================================================================== --- trunk/abcl/abcl.bat.in (original) +++ trunk/abcl/abcl.bat.in Thu Jul 2 09:54:00 2009 @@ -1 +1 @@ -@"@JAVA@" @ABCL_JAVA_OPTIONS@ -jar "@ABCL_CLASSPATH@" %1 %2 %3 %4 %5 %6 %7 %8 %9 +@"@JAVA@" @ABCL_JAVA_OPTIONS@ @ABCL_JAVA_OPTIONS@ -cp @ABCL_CLASSPATH@ org.armedbear.lisp.Main %1 %2 %3 %4 %5 %6 %7 %8 %9 Modified: trunk/abcl/abcl.in ============================================================================== --- trunk/abcl/abcl.in (original) +++ trunk/abcl/abcl.in Thu Jul 2 09:54:00 2009 @@ -19,4 +19,8 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -exec @JAVA@ @ABCL_JAVA_OPTIONS@ -jar @ABCL_CLASSPATH@ "$@" +exec @JAVA@ @ABCL_JAVA_OPTIONS@ \ + -cp @ABCL_CLASSPATH@ \ + org.armedbear.lisp.Main \ + "$@" + Modified: trunk/abcl/build.xml ============================================================================== --- trunk/abcl/build.xml (original) +++ trunk/abcl/build.xml Thu Jul 2 09:54:00 2009 @@ -182,10 +182,11 @@ + 'compile-system.lisp', i.e. files not listed in + there should NOT occur here. --> - + @@ -301,10 +302,8 @@ - - + @@ -332,6 +331,7 @@ + JPDA listening on localhost:6789 From mevenson at common-lisp.net Thu Jul 2 13:56:24 2009 From: mevenson at common-lisp.net (Mark Evenson) Date: Thu, 02 Jul 2009 09:56:24 -0400 Subject: [armedbear-cvs] r12027 - trunk/abcl/src/org/armedbear/lisp Message-ID: Author: mevenson Date: Thu Jul 2 09:56:20 2009 New Revision: 12027 Log: Set the name of associated the java.lang.Thread if specified. Updated docstrings. Modified: trunk/abcl/src/org/armedbear/lisp/LispThread.java Modified: trunk/abcl/src/org/armedbear/lisp/LispThread.java ============================================================================== --- trunk/abcl/src/org/armedbear/lisp/LispThread.java (original) +++ trunk/abcl/src/org/armedbear/lisp/LispThread.java Thu Jul 2 09:56:20 2009 @@ -107,6 +107,12 @@ javaThread = new Thread(r); this.name = name; map.put(javaThread, this); + try { + javaThread.setName(name.getStringValue()); + } catch (ConditionThrowable ex) { + Debug.trace("Failed to set thread name:"); + Debug.trace(ex); + } javaThread.setDaemon(true); javaThread.start(); } @@ -1021,7 +1027,8 @@ // ### threadp private static final Primitive THREADP = - new Primitive("threadp", PACKAGE_EXT, true, "object") + new Primitive("threadp", PACKAGE_EXT, true, "object", + "Boolean predicate as whether OBJECT is a thread.") { @Override public LispObject execute(LispObject arg) throws ConditionThrowable @@ -1032,7 +1039,8 @@ // ### thread-alive-p private static final Primitive THREAD_ALIVE_P = - new Primitive("thread-alive-p", PACKAGE_EXT, true, "thread") + new Primitive("thread-alive-p", PACKAGE_EXT, true, "thread", + "Boolean predicate whether THREAD is alive.") { @Override public LispObject execute(LispObject arg) throws ConditionThrowable @@ -1050,7 +1058,8 @@ // ### thread-name private static final Primitive THREAD_NAME = - new Primitive("thread-name", PACKAGE_EXT, true, "thread") + new Primitive("thread-name", PACKAGE_EXT, true, "thread", + "Return the name of THREAD if it has one.") { @Override public LispObject execute(LispObject arg) throws ConditionThrowable @@ -1074,7 +1083,8 @@ } // ### sleep - private static final Primitive SLEEP = new Primitive("sleep", "seconds") + private static final Primitive SLEEP = new Primitive("sleep", PACKAGE_CL, true, "seconds", + "Causes the invoking thread to sleep for SECONDS seconds.\nSECONDS may be a value between 0 1and 1.") { @Override public LispObject execute(LispObject arg) throws ConditionThrowable @@ -1092,7 +1102,8 @@ // ### mapcar-threads private static final Primitive MAPCAR_THREADS = - new Primitive("mapcar-threads", PACKAGE_EXT, true) + new Primitive("mapcar-threads", PACKAGE_EXT, true, "function", + "Applies FUNCTION to all existing threads.") { @Override public LispObject execute(LispObject arg) throws ConditionThrowable @@ -1112,7 +1123,8 @@ // ### destroy-thread private static final Primitive DESTROY_THREAD = - new Primitive("destroy-thread", PACKAGE_EXT, true) + new Primitive("destroy-thread", PACKAGE_EXT, true, "thread", + "Mark THREAD as destroyed.") { @Override public LispObject execute(LispObject arg) throws ConditionThrowable @@ -1135,7 +1147,9 @@ // multiple interrupts are queued for a thread, they are all run, but the // order is not guaranteed. private static final Primitive INTERRUPT_THREAD = - new Primitive("interrupt-thread", PACKAGE_EXT, true) + new Primitive("interrupt-thread", PACKAGE_EXT, true, + "thread function &rest args", + "Interrupts THREAD and forces it to apply FUNCTION to ARGS.\nWhen the function returns, the thread's original computation continues. If multiple interrupts are queued for a thread, they are all run, but the order is not guaranteed.") { @Override public LispObject execute(LispObject[] args) throws ConditionThrowable @@ -1160,7 +1174,8 @@ // ### current-thread private static final Primitive CURRENT_THREAD = - new Primitive("current-thread", PACKAGE_EXT, true) + new Primitive("current-thread", PACKAGE_EXT, true, "", + "Returns a reference to invoking thread.") { @Override public LispObject execute() throws ConditionThrowable @@ -1171,7 +1186,8 @@ // ### backtrace-as-list private static final Primitive BACKTRACE_AS_LIST = - new Primitive("backtrace-as-list", PACKAGE_EXT, true) + new Primitive("backtrace-as-list", PACKAGE_EXT, true, "", + "Returns a backtrace of the invoking thread as a list.") { @Override public LispObject execute(LispObject[] args) From mevenson at common-lisp.net Sat Jul 4 07:59:45 2009 From: mevenson at common-lisp.net (Mark Evenson) Date: Sat, 04 Jul 2009 03:59:45 -0400 Subject: [armedbear-cvs] r12028 - trunk/abcl/src/org/armedbear/lisp Message-ID: Author: mevenson Date: Sat Jul 4 03:59:42 2009 New Revision: 12028 Log: Implementation of Franz Allegro Gates MP sync primitive by Tobias Rittweiler. See http://www.franz.com/support/documentation/8.1/doc/multiprocessing.htm#gates-1. Added: trunk/abcl/src/org/armedbear/lisp/Gate.java Modified: trunk/abcl/src/org/armedbear/lisp/Autoload.java trunk/abcl/src/org/armedbear/lisp/BuiltInClass.java trunk/abcl/src/org/armedbear/lisp/Symbol.java Modified: trunk/abcl/src/org/armedbear/lisp/Autoload.java ============================================================================== --- trunk/abcl/src/org/armedbear/lisp/Autoload.java (original) +++ trunk/abcl/src/org/armedbear/lisp/Autoload.java Sat Jul 4 03:59:42 2009 @@ -489,10 +489,12 @@ autoload(PACKAGE_EXT, "arglist", "arglist", true); autoload(PACKAGE_EXT, "assq", "assq", true); autoload(PACKAGE_EXT, "assql", "assql", true); + autoload(PACKAGE_EXT, "close-gate", "Gate", true); autoload(PACKAGE_EXT, "file-directory-p", "probe_file", true); autoload(PACKAGE_EXT, "gc", "gc", true); autoload(PACKAGE_EXT, "get-floating-point-modes", "FloatFunctions", true); autoload(PACKAGE_EXT, "get-mutex", "Mutex", true); + autoload(PACKAGE_EXT, "make-gate", "Gate", true); autoload(PACKAGE_EXT, "mailbox-empty-p", "Mailbox", true); autoload(PACKAGE_EXT, "mailbox-peek", "Mailbox", true); autoload(PACKAGE_EXT, "mailbox-read", "Mailbox", true); @@ -502,6 +504,8 @@ autoload(PACKAGE_EXT, "make-slime-input-stream", "SlimeInputStream", true); autoload(PACKAGE_EXT, "make-slime-output-stream", "SlimeOutputStream", true); autoload(PACKAGE_EXT, "make-thread-lock", "ThreadLock", true); + autoload(PACKAGE_EXT, "open-gate", "Gate", true); + autoload(PACKAGE_EXT, "open-gate-p", "Gate", true); autoload(PACKAGE_EXT, "probe-directory", "probe_file", true); autoload(PACKAGE_EXT, "release-mutex", "Mutex", true); autoload(PACKAGE_EXT, "set-floating-point-modes", "FloatFunctions", true); @@ -512,6 +516,7 @@ autoload(PACKAGE_EXT, "string-position", "StringFunctions"); autoload(PACKAGE_EXT, "thread-lock", "ThreadLock", true); autoload(PACKAGE_EXT, "thread-unlock", "ThreadLock", true); + autoload(PACKAGE_EXT, "wait-open-gate", "Gate", true); autoload(PACKAGE_JAVA, "%jnew-proxy", "JProxy"); autoload(PACKAGE_JAVA, "%find-java-class", "JavaClass"); autoload(PACKAGE_JAVA, "%jmake-invocation-handler", "JProxy"); Modified: trunk/abcl/src/org/armedbear/lisp/BuiltInClass.java ============================================================================== --- trunk/abcl/src/org/armedbear/lisp/BuiltInClass.java (original) +++ trunk/abcl/src/org/armedbear/lisp/BuiltInClass.java Sat Jul 4 03:59:42 2009 @@ -111,6 +111,7 @@ public static final BuiltInClass MAILBOX = addClass(Symbol.MAILBOX); public static final BuiltInClass METHOD_COMBINATION = addClass(Symbol.METHOD_COMBINATION); public static final BuiltInClass MUTEX = addClass(Symbol.MUTEX); + public static final BuiltInClass GATE = addClass(Symbol.GATE); public static final BuiltInClass NIL_VECTOR = addClass(Symbol.NIL_VECTOR); public static final BuiltInClass NULL = addClass(Symbol.NULL); public static final BuiltInClass NUMBER = addClass(Symbol.NUMBER); Added: trunk/abcl/src/org/armedbear/lisp/Gate.java ============================================================================== --- (empty file) +++ trunk/abcl/src/org/armedbear/lisp/Gate.java Sat Jul 4 03:59:42 2009 @@ -0,0 +1,187 @@ +/* + * AbstractArray.java + * + * Copyright (C) 2009 Tobias Rittweiler + * $Id: AbstractArray.java 11711 2009-03-15 15:51:40Z ehuelsmann $ + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * As a special exception, the copyright holders of this library give you + * permission to link this library with independent modules to produce an + * executable, regardless of the license terms of these independent + * modules, and to copy and distribute the resulting executable under + * terms of your choice, provided that you also meet, for each linked + * independent module, the terms and conditions of the license of that + * module. An independent module is a module which is not derived from + * or based on this library. If you modify this library, you may extend + * this exception to your version of the library, but you are not + * obligated to do so. If you do not wish to do so, delete this + * exception statement from your version. + */ + +package org.armedbear.lisp; + +/** + * A GATE is an object with two states, open and closed. It is + * created with MAKE-GATE. Its state can be opened (OPEN-GATE) or + * closed (CLOSE-GATE) and can be explicitly tested with + * GATE-OPEN-P. Usually though, a thread awaits the opening of a + * gate by WAIT-OPEN-GATE. + */ +final public class Gate extends LispObject +{ + private boolean open; + + private Gate(boolean open) + { + this.open = open; + } + + @Override + public LispObject typeOf() { return Symbol.GATE; } + + @Override + public LispObject classOf() { return BuiltInClass.GATE; } + + @Override + public String writeToString() { return unreadableString("GATE"); } + + @Override + public LispObject typep(LispObject typeSpecifier) + throws ConditionThrowable + { + if (typeSpecifier == Symbol.GATE) + return T; + if (typeSpecifier == BuiltInClass.GATE) + return T; + return super.typep(typeSpecifier); + } + + public boolean isOpen() { + return open; + } + + public synchronized void close() { + open = false; + } + + public synchronized void open() { + open = true; + notifyAll(); + } + + public synchronized void waitForOpen(long timeout) + throws InterruptedException + { + if (open) + return; + wait(timeout); + } + + + private static final void checkForGate(LispObject arg) + throws ConditionThrowable + { + if (arg instanceof Gate) + return; + type_error(arg, Symbol.GATE); + } + + // ### make-gate => gate + private static final Primitive MAKE_GATE + = new Primitive("make-gate", PACKAGE_EXT, true, "openp", + "Creates a gate with initial state OPENP.") { + @Override + public LispObject execute(LispObject arg) + throws ConditionThrowable + { + return new Gate(arg.getBooleanValue()); + } + }; + + // ### open-gate-p gate => generalized-boolean + private static final Primitive OPEN_GATE_P + = new Primitive("open-gate-p", PACKAGE_EXT, true, "gate", + "Boolean predicate as to whether GATE is open or not.") { + @Override + public LispObject execute(LispObject arg) + throws ConditionThrowable + { + checkForGate(arg); + return ((Gate) arg).isOpen() ? T : NIL; + } + }; + + + // ### open-gate gate => generalized-boolean + private static final Primitive OPEN_GATE + = new Primitive("open-gate", PACKAGE_EXT, true, "gate", + "Makes the state of GATE open.") + { + @Override + public LispObject execute(LispObject arg) throws ConditionThrowable + { + checkForGate(arg); + ((Gate) arg).open(); + return T; + } + }; + + // ### close-gate gate + private static final Primitive CLOSE_GATE + = new Primitive("close-gate", PACKAGE_EXT, true, "gate", + "Makes the state of GATE closed.") { + @Override + public LispObject execute(LispObject arg) + throws ConditionThrowable + { + checkForGate(arg); + ((Gate)arg).close(); + return T; + } + }; + + + // ### wait-open-gate gate + private static final Primitive WAIT_OPEN_GATE + = new Primitive("wait-open-gate", PACKAGE_EXT, true, + "gate &optional timeout", + "Wait for GATE to be open with an optional TIMEOUT in ms." ) { + @Override + public LispObject execute(LispObject gate) + throws ConditionThrowable + { + return execute(gate, Fixnum.ZERO); + } + + @Override + public LispObject execute(LispObject gate, LispObject timeout) + throws ConditionThrowable + { + checkForGate(gate); + + long msecs = LispThread.javaSleepInterval(timeout); + try { + ((Gate)gate).waitForOpen(msecs); + return T; + } catch (InterruptedException e) { + return error(new LispError("The thread " + + LispThread.currentThread().writeToString() + + " was interrupted.")); + } + } + }; +} + Modified: trunk/abcl/src/org/armedbear/lisp/Symbol.java ============================================================================== --- trunk/abcl/src/org/armedbear/lisp/Symbol.java (original) +++ trunk/abcl/src/org/armedbear/lisp/Symbol.java Sat Jul 4 03:59:42 2009 @@ -2843,6 +2843,8 @@ PACKAGE_EXT.addExternalSymbol("COMPILER-UNSUPPORTED-FEATURE-ERROR"); public static final Symbol MUTEX = PACKAGE_EXT.addExternalSymbol("MUTEX"); + public static final Symbol GATE = + PACKAGE_EXT.addExternalSymbol("GATE"); public static final Symbol THREAD = PACKAGE_EXT.addExternalSymbol("THREAD"); public static final Symbol SUPPRESS_COMPILER_WARNINGS = From ehuelsmann at common-lisp.net Sat Jul 4 08:15:54 2009 From: ehuelsmann at common-lisp.net (Erik Huelsmann) Date: Sat, 04 Jul 2009 04:15:54 -0400 Subject: [armedbear-cvs] r12029 - in trunk/abcl/src/org/armedbear/lisp: . java java/awt java/swing Message-ID: Author: ehuelsmann Date: Sat Jul 4 04:15:53 2009 New Revision: 12029 Log: Set properties on source files recently added. Modified: trunk/abcl/src/org/armedbear/lisp/Gate.java (contents, props changed) trunk/abcl/src/org/armedbear/lisp/gui.lisp (props changed) trunk/abcl/src/org/armedbear/lisp/java/DialogPromptStream.java (props changed) trunk/abcl/src/org/armedbear/lisp/java/awt/AwtDialogPromptStream.java (props changed) trunk/abcl/src/org/armedbear/lisp/java/swing/SwingDialogPromptStream.java (props changed) Modified: trunk/abcl/src/org/armedbear/lisp/Gate.java ============================================================================== --- trunk/abcl/src/org/armedbear/lisp/Gate.java (original) +++ trunk/abcl/src/org/armedbear/lisp/Gate.java Sat Jul 4 04:15:53 2009 @@ -2,7 +2,7 @@ * AbstractArray.java * * Copyright (C) 2009 Tobias Rittweiler - * $Id: AbstractArray.java 11711 2009-03-15 15:51:40Z ehuelsmann $ + * $Id$ * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License From ehuelsmann at common-lisp.net Sat Jul 4 21:27:19 2009 From: ehuelsmann at common-lisp.net (Erik Huelsmann) Date: Sat, 04 Jul 2009 17:27:19 -0400 Subject: [armedbear-cvs] r12030 - trunk/abcl/src/org/armedbear/lisp Message-ID: Author: ehuelsmann Date: Sat Jul 4 17:27:12 2009 New Revision: 12030 Log: Add documentation on different symbol value lookup functions. Modified: trunk/abcl/src/org/armedbear/lisp/LispThread.java trunk/abcl/src/org/armedbear/lisp/Symbol.java Modified: trunk/abcl/src/org/armedbear/lisp/LispThread.java ============================================================================== --- trunk/abcl/src/org/armedbear/lisp/LispThread.java (original) +++ trunk/abcl/src/org/armedbear/lisp/LispThread.java Sat Jul 4 17:27:12 2009 @@ -332,6 +332,17 @@ new SpecialBinding(name, name.getSymbolValue(), lastSpecialBinding); } + /** Looks up the value of a special binding in the context of the + * given thread. + * + * In order to find the value of a special variable (in general), + * use {@link Symbol#symbolValue}. + * + * @param name The name of the special variable, normally a symbol + * @return The inner most binding of the special, or null if unbound + * + * @see Symbol#symbolValue + */ public final LispObject lookupSpecial(LispObject name) { SpecialBinding binding = lastSpecialBinding; Modified: trunk/abcl/src/org/armedbear/lisp/Symbol.java ============================================================================== --- trunk/abcl/src/org/armedbear/lisp/Symbol.java (original) +++ trunk/abcl/src/org/armedbear/lisp/Symbol.java Sat Jul 4 17:27:12 2009 @@ -283,28 +283,60 @@ } } - // Raw accessor. + /** Gets the value associated with the symbol + * as set by SYMBOL-VALUE. + * + * @return The associated value, or null if unbound. + * + * @see Symbol#symbolValue + */ @Override public LispObject getSymbolValue() { return value; } + /** Sets the value associated with the symbol + * as if set by SYMBOL-VALUE. + * + * @return The associated value, or null if unbound. + * + * @see Symbol#symbolValue + */ public final void setSymbolValue(LispObject value) { this.value = value; } + /** Returns the value associated with this symbol in the current + * thread context when it is treated as a special variable. + * + * A lisp error is thrown if the symbol is unbound. + * + * @return The associated value + * @throws org.armedbear.lisp.ConditionThrowable + * + * @see LispThread#lookupSpecial + * @see Symbol#getSymbolValue() + * + */ public final LispObject symbolValue() throws ConditionThrowable { - LispObject val = LispThread.currentThread().lookupSpecial(this); - if (val != null) - return val; - if (value != null) - return value; - return error(new UnboundVariable(this)); + return symbolValue(LispThread.currentThread()); } + /** Returns the value associated with this symbol in the specified + * thread context when it is treated as a special variable. + * + * A lisp error is thrown if the symbol is unbound. + * + * @return The associated value + * @throws org.armedbear.lisp.ConditionThrowable + * + * @see LispThread#lookupSpecial + * @see Symbol#getSymbolValue() + * + */ public final LispObject symbolValue(LispThread thread) throws ConditionThrowable { LispObject val = thread.lookupSpecial(this); @@ -315,17 +347,33 @@ return error(new UnboundVariable(this)); } + /** Returns the value of the symbol in the current thread context; + * if the symbol has been declared special, the value of the innermost + * binding is returned. Otherwise, the SYMBOL-VALUE is returned, or + * null if unbound. + * + * @return A lisp object, or null if unbound + * + * @see LispThread#lookupSpecial + * @see Symbol#getSymbolValue() + * + */ public final LispObject symbolValueNoThrow() { - if ((flags & FLAG_SPECIAL) != 0) - { - LispObject val = LispThread.currentThread().lookupSpecial(this); - if (val != null) - return val; - } - return value; + return symbolValueNoThrow(LispThread.currentThread()); } + /** Returns the value of the symbol in the current thread context; + * if the symbol has been declared special, the value of the innermost + * binding is returned. Otherwise, the SYMBOL-VALUE is returned, or + * null if unbound. + * + * @return A lisp object, or null if unbound + * + * @see LispThread#lookupSpecial + * @see Symbol#getSymbolValue() + * + */ public final LispObject symbolValueNoThrow(LispThread thread) { if ((flags & FLAG_SPECIAL) != 0) From ehuelsmann at common-lisp.net Sat Jul 4 21:28:23 2009 From: ehuelsmann at common-lisp.net (Erik Huelsmann) Date: Sat, 04 Jul 2009 17:28:23 -0400 Subject: [armedbear-cvs] r12031 - trunk/abcl/src/org/armedbear/lisp/java/awt Message-ID: Author: ehuelsmann Date: Sat Jul 4 17:28:22 2009 New Revision: 12031 Log: As far as I know, there are no makefiles anywhere else in our tree. Removed: trunk/abcl/src/org/armedbear/lisp/java/awt/Makefile.in From mevenson at common-lisp.net Mon Jul 6 09:24:22 2009 From: mevenson at common-lisp.net (Mark Evenson) Date: Mon, 06 Jul 2009 05:24:22 -0400 Subject: [armedbear-cvs] r12032 - trunk/abcl Message-ID: Author: mevenson Date: Mon Jul 6 05:24:20 2009 New Revision: 12032 Log: Start recording CHANGES for 0.16.0. Noted that next release will contain Gates implementation. Modified: trunk/abcl/CHANGES Modified: trunk/abcl/CHANGES ============================================================================== --- trunk/abcl/CHANGES (original) +++ trunk/abcl/CHANGES Mon Jul 6 05:24:20 2009 @@ -1,5 +1,9 @@ +Version 0.16.0 + Summary of changes: + * Implementation of Franz Allegro CL Gates MP primitive (Tobias Rittweiler). + Version 0.15.0 -(?? Jun, 2009) - Anticipate a June date +(07 Jun, 2009) Summary of changes: * 2 more MOP exported symbols to support Cells port From mevenson at common-lisp.net Mon Jul 6 09:24:59 2009 From: mevenson at common-lisp.net (Mark Evenson) Date: Mon, 06 Jul 2009 05:24:59 -0400 Subject: [armedbear-cvs] r12033 - trunk/abcl/src/org/armedbear/lisp Message-ID: Author: mevenson Date: Mon Jul 6 05:24:59 2009 New Revision: 12033 Log: Documentation correction for Gates interface (secs. not ms.!). Modified: trunk/abcl/src/org/armedbear/lisp/Gate.java Modified: trunk/abcl/src/org/armedbear/lisp/Gate.java ============================================================================== --- trunk/abcl/src/org/armedbear/lisp/Gate.java (original) +++ trunk/abcl/src/org/armedbear/lisp/Gate.java Mon Jul 6 05:24:59 2009 @@ -1,5 +1,5 @@ /* - * AbstractArray.java + * Gate.java * * Copyright (C) 2009 Tobias Rittweiler * $Id$ @@ -158,7 +158,7 @@ private static final Primitive WAIT_OPEN_GATE = new Primitive("wait-open-gate", PACKAGE_EXT, true, "gate &optional timeout", - "Wait for GATE to be open with an optional TIMEOUT in ms." ) { + "Wait for GATE to be open with an optional TIMEOUT in seconds." ) { @Override public LispObject execute(LispObject gate) throws ConditionThrowable From ehuelsmann at common-lisp.net Tue Jul 7 18:44:52 2009 From: ehuelsmann at common-lisp.net (Erik Huelsmann) Date: Tue, 07 Jul 2009 14:44:52 -0400 Subject: [armedbear-cvs] r12034 - public_html Message-ID: Author: ehuelsmann Date: Tue Jul 7 14:44:48 2009 New Revision: 12034 Log: Indicate where our repository and technical wiki reside. Modified: public_html/faq.shtml public_html/index.shtml Modified: public_html/faq.shtml ============================================================================== --- public_html/faq.shtml (original) +++ public_html/faq.shtml Tue Jul 7 14:44:48 2009 @@ -150,6 +150,16 @@ +
+

Where is ABCL's source code repository?

+ +

If you want to build the latest (unstable) ABCL code, +you can check out through +svn://common-lisp.net/project/armedbear/svn/trunk/abcl.

+ +
+ +
Modified: public_html/index.shtml ============================================================================== --- public_html/index.shtml (original) +++ public_html/index.shtml Tue Jul 7 14:44:48 2009 @@ -4,8 +4,8 @@ Armed Bear Common Lisp (ABCL) - Common Lisp on the JVM - - + +