Scott L. Burson | 25 Apr 00:50 2016

Format ~$ buglet

In 1.3.2,

  > (format nil "~$" -32.17)
  --32.17

Negative values are getting a double minus sign.

The right fix seems to be, in 'format-dollars', to pass '(abs number)' rather than 'number' to 'sys::flonum-to-string'.

-- Scott

Didier Verna | 6 Apr 14:20 2016
Face
Picon
Picon
Picon
Picon
Gravatar

[CFPart] ELS'16, 9th European Lisp Symposium, May 9-10, Kraków, Poland


		 ELS'16 - 9th European Lisp Symposium

		    Department of Computer Science
	       AGH University of Science and Technology
			    Kraków, Poland

			    May 9-10, 2016

		   In cooperation with: ACM SIGPLAN

	  Sponsored by EPITA, Franz Inc., LispWorks Ltd., IdEx
		 and Dept. of Computer Science AGH UST

	       http://www.european-lisp-symposium.org/

Recent news:

- Full programme now available online
- Registration now open (early registration deadline: April 25)

The purpose of the European Lisp Symposium is to provide a forum for
the discussion and dissemination of all aspects of design,
implementation and application of any of the Lisp and Lisp-inspired
dialects, including Common Lisp, Scheme, Emacs Lisp, AutoLisp, ISLISP,
Dylan, Clojure, ACL2, ECMAScript, Racket, SKILL, Hop and so on. We
encourage everyone interested in Lisp to participate.

Keynote speakers:

- Pierre Castéran -- Program Proving with Coq
- Stephan Karpinski -- Julia: to Lisp or Not to Lisp?
- Francis Sergeraert -- Lexical Closures and Complexity

Important dates:

-   25 Apr 2016 Early registration deadline
- 9-10 May 2016 Symposium

Programme chair:
  Irène Durand, LaBRI, University of Bordeaux, France

Local chair:
  Michał Psota, Emergent Network Defense, Kraków, Poland

Programme committee:
  Antonio Leitao — INESC-ID / Instituto Superior Técnico, Universidade
    de Lisboa, Portugal
  Charlotte Heerzel — IMEC, Leuven, Belgium
  Christian Queinnec — University Pierre et Marie Curie, Paris 6, France
  Christophe Rhodes — Goldsmiths, University of London, United Kingdom
  Didier Verna  — EPITA Research and Development Laboratory, France
  Erick Gallesio — University of Nice-Sophia Antipolis, France
  François-René Rideau, Google, USA
  Giuseppe Attardi — University of Pisa, Italy
  Kent Pitman, HyperMeta Inc., USA
  Leonie Dreschler-Fischer — University of Hamburg, Germany
  Pascal Costanza — Intel Corporation, Belgium
  Robert Strandh — University of Bordeaux, France

Search Keywords:

#els2016, ELS 2016, ELS '16, European Lisp Symposium 2016,
European Lisp Symposium '16, 9th ELS, 9th European Lisp Symposium,
European Lisp Conference 2016, European Lisp Conference '16

--

-- 
Resistance is futile. You will be jazzimilated.

Lisp, Jazz, Aïkido: http://www.didierverna.info

Stas Boukarev | 2 Apr 13:08 2016
Picon

Synonym streams and column position

(let ((stream (make-synonym-stream '*standard-output*)))
  (write-char #\c stream)
  (system::stream-charpos stream))

prints

abcabc

(let ((stream (make-synonym-stream '*standard-output*)))
  (write-char #\c stream)
  (system::stream-charpos stream))
=> 0

--

-- 
With best regards, Stas.

Robert P. Goldman | 23 Mar 21:40 2016

ASDF 3.1.7 has been released

ASDF 3.1.7 is a bugfix release, enhancing the 3.1.x ASDF series.  To the
best of our knowledge, it only fixes bugs, and should thus be a low-risk
upgrade for inclusion in implementations.

Thanks, as ever, to Faré for many fixes, and to other bug reporters and
patch-suppliers.

See the Changelog (below) for a summary of changes.

  Bug fix and portability release:
  * Fix compilation on Genera.
  * Fix UIOP:FILE-EXISTS-P for dotfiles on CCL.
  * Fix infinite loop in source registry configuration that can occur
when there are cycles in the filesystem (typically caused by symlinks)
on some CL implementations.
  * Miscellaneous bug fixes.
  * Documentation improvements.
  * Restore original Makefile.

 -- Robert P. Goldman <rpgoldman <at> sift.net>  Wed, 23 Mar 2016 09:34:14 -0500

EGarrulo | 4 Mar 18:54 2016
Picon

Syntactic sugar to call Java from ABCL?

Hello ABCL developers,

has anybody written some macros to make calling Java from ABCL more 
straightforward?  I mean something that, instead of this code from the ABCL 
documentation:

(defun void-function (param)
  (let* ((class (jclass "Main"))
         (intclass (jclass "int"))
         (method (jmethod class "addTwoNumbers" intclass intclass))
         (result (jcall method param 2 4)))
    (format t "in void-function, result of calling addTwoNumbers(2, 4): ~a~%" 
result)))

would let you write something like this, for example:

(format t
        "in void-function, result of calling addTwoNumbers(2, 4): ~a~%"
        ;; Let's imagine that we have defined a -> macro.
        (-> |Main.addTwoNumbers| 2 4)

Thank you.

Didier Verna | 20 Feb 13:08 2016
Face
Picon
Picon
Picon
Picon
Gravatar

[CfP] ELS 2016 Deadline extension: Sat Feb 27


		 ELS'16 - 9th European Lisp Symposium

		    Department of Computer Science
	       AGH University of Science and Technology
			    Kraków, Poland

			    May 9-10, 2016

		   In cooperation with: ACM SIGPLAN

	  Sponsored by EPITA, Franz Inc., LispWorks Ltd., IdEx
		 and Dept. of Computer Science AGH UST

	       http://www.european-lisp-symposium.org/

Recent news:

- *** Submission deadline extended to Saturday Feb 27 ***

The purpose of the European Lisp Symposium is to provide a forum for
the discussion and dissemination of all aspects of design,
implementation and application of any of the Lisp and Lisp-inspired
dialects, including Common Lisp, Scheme, Emacs Lisp, AutoLisp, ISLISP,
Dylan, Clojure, ACL2, ECMAScript, Racket, SKILL, Hop and so on. We
encourage everyone interested in Lisp to participate.

The 9th European Lisp Symposium invites high quality papers about
novel research results, insights and lessons learned from practical
applications and educational perspectives. We also encourage
submissions about known ideas as long as they are presented in a new
setting and/or in a highly elegant way.

Topics include but are not limited to:

- Context-, aspect-, domain-oriented and generative programming
- Macro-, reflective-, meta- and/or rule-based development approaches
- Language design and implementation
- Language integration, inter-operation and deployment
- Development methodologies, support and environments
- Educational approaches and perspectives
- Experience reports and case studies

We invite submissions in the following forms:

  Papers: Technical papers of up to 8 pages that describe original
    results or explain known ideas in new and elegant ways.

  Demonstrations: Abstracts of up to 2 pages for demonstrations of
    tools, libraries, and applications.

  Tutorials: Abstracts of up to 4 pages for in-depth presentations
    about topics of special interest for at least 90 minutes and up to
    180 minutes.

  The symposium will also provide slots for lightning talks, to be
  registered on-site every day.

All submissions should be formatted following the ACM SIGS guidelines
and include ACM classification categories and terms. For more
information on the submission guidelines and the ACM keywords, see:
http://www.acm.org/sigs/publications/proceedings-templates and
http://www.acm.org/about/class/1998. The conference proceedings will be
published in the ACM Digital Library.

Important dates:

 -   *** EXTENDED *** 27 Feb 2016 Submission deadline *** EXTENDED ***
 -   25 Mar 2016 Notification of acceptance
 -   15 Apr 2016 Early registration deadline
 -   22 Apr 2016 Final papers due
 - 9-10 May 2016 Symposium

Programme chair:
  Irène Durand, LaBRI, University of Bordeaux, France

Local chair:
  Michał Psota, Emergent Network Defense, Kraków, Poland

Programme committee:
  Antonio Leitao — INESC-ID / Instituto Superior Técnico, Universidade
    de Lisboa, Portugal
  Charlotte Heerzel — IMEC, Leuven, Belgium
  Christian Queinnec — University Pierre et Marie Curie, Paris 6, France
  Christophe Rhodes — Goldsmiths, University of London, United Kingdom
  Didier Verna  — EPITA Research and Development Laboratory, France
  Erick Gallesio — University of Nice-Sophia Antipolis, France
  François-René Rideau, Google, USA
  Giuseppe Attardi — University of Pisa, Italy
  Henry Lieberman — MIT, USA
  Kent Pitman, HyperMeta Inc., USA
  Leonie Dreschler-Fischer — University of Hamburg, Germany
  Pascal Costanza — Intel Corporation, Belgium
  Robert Strandh — University of Bordeaux, France

Search Keywords:

#els2016, ELS 2016, ELS '16, European Lisp Symposium 2016,
European Lisp Symposium '16, 9th ELS, 9th European Lisp Symposium,
European Lisp Conference 2016, European Lisp Conference '16

--

-- 
Resistance is futile. You will be jazzimilated.

Lisp, Jazz, Aïkido: http://www.didierverna.info

Alessio Stalla | 4 Feb 09:30 2016
Picon

Debugging ANSI tests

Hi list,

in my local copy of ABCL I broke some ANSI tests related to packages and that's not good. I'm lazy so I'm asking here: does someone have a ready recipe to debug the ANSI tests, in particular to place breakpoints inside ABCL's Java code while it is executing the tests? In the minute or so I spent thinking about it before getting lazy, I couldn't figure out how to pass the jdwp incantation to the JVM launched by Ant when testing.

Thanks is advance!
Alessio
Hernan Ezequiel Di Giorgi | 30 Jan 00:35 2016
Picon
Gravatar

Load abcl

The result of cl:compile, how can be loaded via java using .getResourceAsStream()?

I'm compiling all the dependencies of a proyect and generating a super abcl.jar with my project inside, in the root directory of the abcl.jar i have a "system.abcl", that can be loaded with cl:load only with it outside the jar. If i try to load if from the jar with the full path "jar:file:/path/abcl.jar!/system.abcl" the repl simply freezes, and do nothing (via java or repl).

The org.armedbear.lisp.load.load() throws an exception because don't load the .abcl.

The abcl is generated with (asdf:operate 'asdf:monolithic-compile-boundle-op system-name). I just can't use the .abcl when is inside the jar.

Any ideas??
Didier Verna | 21 Jan 10:39 2016
Face
Picon
Picon
Picon
Picon
Gravatar

[CfP] 9th European Lisp Symposium, May 9-10, Krakow, Poland


		 ELS'16 - 9th European Lisp Symposium

		    Department of Computer Science
	       AGH University of Science and Technology
			    Kraków, Poland

			    May 9-10, 2016

		   In cooperation with: ACM SIGPLAN

 Sponsored by EPITA, Franz Inc., LispWorks Ltd. and Dept. of Computer
			   Science AGH UST

	       http://www.european-lisp-symposium.org/

Recent news:

- Submission deadline in less than a month!
- 3nd invited speaker announced: Stephan Karpinski on Julia: to Lisp
  or Not to Lisp?

The purpose of the European Lisp Symposium is to provide a forum for
the discussion and dissemination of all aspects of design,
implementation and application of any of the Lisp and Lisp-inspired
dialects, including Common Lisp, Scheme, Emacs Lisp, AutoLisp, ISLISP,
Dylan, Clojure, ACL2, ECMAScript, Racket, SKILL, Hop and so on. We
encourage everyone interested in Lisp to participate.

The 9th European Lisp Symposium invites high quality papers about
novel research results, insights and lessons learned from practical
applications and educational perspectives. We also encourage
submissions about known ideas as long as they are presented in a new
setting and/or in a highly elegant way.

Topics include but are not limited to:

- Context-, aspect-, domain-oriented and generative programming
- Macro-, reflective-, meta- and/or rule-based development approaches
- Language design and implementation
- Language integration, inter-operation and deployment
- Development methodologies, support and environments
- Educational approaches and perspectives
- Experience reports and case studies

We invite submissions in the following forms:

  Papers: Technical papers of up to 8 pages that describe original
    results or explain known ideas in new and elegant ways.

  Demonstrations: Abstracts of up to 2 pages for demonstrations of
    tools, libraries, and applications.

  Tutorials: Abstracts of up to 4 pages for in-depth presentations
    about topics of special interest for at least 90 minutes and up to
    180 minutes.

  The symposium will also provide slots for lightning talks, to be
  registered on-site every day.

All submissions should be formatted following the ACM SIGS guidelines
and include ACM classification categories and terms. For more
information on the submission guidelines and the ACM keywords, see:
http://www.acm.org/sigs/publications/proceedings-templates and
http://www.acm.org/about/class/1998. The conference proceedings will be
published in the ACM Digital Library.

Important dates:

 -   19 Feb 2016 Submission deadline
 -   25 Mar 2016 Notification of acceptance
 -   15 Apr 2016 Early registration deadline
 -   22 Apr 2016 Final papers due
 - 9-10 May 2016 Symposium

Programme chair:
  Irène Durand, LaBRI, University of Bordeaux, France

Local chair:
  Michał Psota, Emergent Network Defense, Kraków, Poland

Programme committee:
  Antonio Leitao — INESC-ID / Instituto Superior Técnico, Universidade
    de Lisboa, Portugal
  Charlotte Heerzel — IMEC, Leuven, Belgium
  Christian Queinnec — University Pierre et Marie Curie, Paris 6, France
  Christophe Rhodes — Goldsmiths, University of London, United Kingdom
  Didier Verna  — EPITA Research and Development Laboratory, France
  Erick Gallesio — University of Nice-Sophia Antipolis, France
  François-René Rideau, Google, USA
  Giuseppe Attardi — University of Pisa, Italy
  Henry Lieberman — MIT, USA
  Kent Pitman, HyperMeta Inc., USA
  Leonie Dreschler-Fischer — University of Hamburg, Germany
  Pascal Costanza — Intel Corporation, Belgium
  Robert Strandh — University of Bordeaux, France

Search Keywords:

#els2016, ELS 2016, ELS '16, European Lisp Symposium 2016,
European Lisp Symposium '16, 9th ELS, 9th European Lisp Symposium,
European Lisp Conference 2016, European Lisp Conference '16

--

-- 
 <at> -quartet live: Sunset/Sunside, Paris, Jan 26 2016 !
Book now: http://www.sunset-sunside.com/2016/1/artiste/2101/3453/

Lisp, Jazz, Aïkido: http://www.didierverna.info

Scott L. Burson | 30 Dec 21:19 2015

Loops and interruptibility

Hi all,

The other day I had an inadvertent infinite loop in my code, running in ABCL, and found I was unable to interrupt it with double C-c in SLIME.  In fact, even when I killed the process, restarted it, and started the code with the infinite loop in a new thread, I couldn't kill the thread!

Is this a known problem, or is something wrong with my setup?

-- Scott

Frederico Muñoz | 28 Dec 16:15 2015
Picon
Gravatar

Problems with static methods (and interface implementation?), java.lang.NoClassDefFoundError.

Hello,

I have been struggling with this for some hours now and would welcome
some pointers. I'm writing a small how-to on how to deploy Common Lisp
web applications (i.e. "something that replies to an HTTP request") in
IBM's Bluemix using ABCL. That part is taken care of and I have it up
and running (more on that in a separate post). I was going for a more
advanced version and I am having a problem with interface
implementation.

To showcase java interop I am not using CL web frameworks, but decided
to give Spark a try (http://sparkjava.com/documentation.html) just to
get a minimal example up and running (I already have Jetty working and
serving up an "(Hello World)" page):

#+BEGIN_SRC java
import static spark.Spark.*;

public class HelloWorld {
    public static void main(String[] args) {
        get("/hello", (req, res) -> "Hello World");
    }
}
#+END_SRC

I'm going to start with the Clojure example since that one I got
working; the API reference
(http://spark.screenisland.com/spark/Spark.html) helped me  and this
works

#+BEGIN_SRC clojure
=> (Spark/get "/hello" (reify spark.Route (handle [this req res] ("Hello World"))))
[Thread-34] INFO spark.webserver.JettySparkServer - == Spark has ignited ...
[Thread-34] INFO spark.webserver.JettySparkServer - >> Listening on 0.0.0.0:4567
nil[Thread-34] INFO org.eclipse.jetty.server.Server - jetty-9.3.2.v20150730
#+END_SRC

I have learned (thanks to bpalmer in #emacs, cheers!) that the Single
Abstract Method can be constructed using Java 8 lambda expressions,
which is why I couldn't find a reference to the "handle" method, which I
got from the API.

Now, back to ABCL; I'm unable to reproduce the above and I'm unsure if
it is because I'm not getting something right (likely) or because some
of the plumbing in ABCL isn't quite there yet.

I tried this using jss::jinterface-implementation (which I had used
previously with my MQTT code and worked perfectly):

#+BEGIN_SRC lisp
(#"get" 'spark.Spark "/hello"
	(jss::jinterface-implementation "spark.Route"
					"handle"
					(lambda (request response)
					  ("Hello World"))))
#+END_SRC

The (jinterface-implementation ...) returns #<com.sun.proxy.$Proxy5
com.sun.proxy.$Proxy5 <at> 4f0bbf2a {41CC48BB}>, but the (#"get"...) fails:

Java exception 'java.lang.NoClassDefFoundError: Could not initialize class spark.Spark$SingletonHolder'.

I have also tried with jmake-proxy to see if there was something
different going on.

#+BEGIN_SRC lisp
(java::jstatic "get" "spark.Spark" "/hello" (java::jmake-proxy "spark.Route" #'(lambda (lisp-this
method request response) ("Hello World"))))
#+END_SRC

The result is the same, both in what jmake-proxy returns and the final
error. Note that I have added the jar to the classpath, otherwise I
would get "ClassNotFound".

Even more simply this also doesn't work:

#+BEGIN_SRC clojure
=> (Spark/stop)
[nREPL-worker-11] INFO spark.webserver.JettySparkServer - >>> Spark shutting down ...
#+END_SRC

... (#"stop" 'spark.Spark) returns the same "NoClassDefFoundError",
which makes me thing the issue is not with the jproxy bit but something
more fundamental...

With this in mind:

1) Is there anything obviously wrong about the way I'm going about it -
not limited to implementation errors on my part but including trying to
use parts of ABCL's Java interop which aren't done?

2) The java::jmake-proxy call... I wasn't able to find a single example
of it used (the only code I find when searching is the implementation
itself) so I'm not sure I'm understanding the documentation correctly:
are the arguments I'm using above correct? I'm using the method that
uses a function and if I understood it correctly the first argument is
"lisp-this" (which defaults to nil), the second the method name (which
would be "handle" in this example, and the rest are the method arguments
(request and response here).

I am of course available for any further clarification, and if this is
something that isn't obvious I can upload a minimal example using
quickproject and quicklisp.

Best regards,

--

-- 
Frederico Muñoz
fsmunoz <at> gmail.com


Gmane