Alessio Stalla | 22 Jun 14:10 2016
Picon

ABCL and Truffle

Hi list,

is anyone aware of Truffle/Graal from Oracle? Here some insightful slides: https://lafo.ssw.uni-linz.ac.at/pub/papers/2016_PLDI_Truffle.pdf

Since there's been talk about rewriting the ABCL compiler which is old, messy and not very optimizing, I wonder if Truffle can be a useful technology to base a new compiler on. Not as the default because it requires Java 9 (or perhaps 8), but at least as a future-proof solution. It seems to me that getting started is not hard - just map the Lisp S-expression based AST to a Truffle AST; optimizations can follow incrementally. What do you think? I don't have the resources to work on it anytime soon, I'm letting my own projects slip sadly - it would be great to work on it. Still, maybe someone else is interested. I can contribute some design and code reviews, if need be, but little actual coding.

Peace
Alessio
Vibhu Mohindra | 14 Jun 05:00 2016
Picon

merge-pathnames bug with :back component

CLHS for merge-pathnames specifies that,
  "This removal of redundant :back keywords is repeated as many times as
   possible."

abcl-1.3.2
The first expression below evaluates correctly, but the second produces
an error.

FCFS(34): (merge-pathnames
            (make-pathname :directory '(:relative "a" "b" :back))
            (make-pathname :directory '(:absolute "root")))

#P"/root/a/"
FCFS(35): (merge-pathnames
            (make-pathname :directory '(:relative "a" "b" :back :back))
            (make-pathname :directory '(:absolute "root")))

#<THREAD "interpreter" {43B4AF3C}>: Debugger invoked on condition of
type FILE-ERROR
  Unsupported directory component BACK.
Restarts:
  0: TOP-LEVEL Return to top level.

For what it's worth, CCL also produces an error. CLISP, ECL, SBCL
correctly produce:
#P"/root/"

(That said, I'm far from a pathname expert and could be completely wrong.)

Vibhu

Massimiliano Ghilardi | 12 Jun 21:35 2016
Picon

publish system::expand-deftype ?

Hello,

for my library https://github.com/cosmos72/cl-parametric-types
I need the function introspect-environment:typexpand, which expands
DEFTYPE'd types, similarly to what CL:MACROEXPAND does for macros.

Even though introspect-environment does not support ABCL,
I found that system::expand-deftype does exactly what I need,
yet I am wary of using a non-exported symbol from ABCL.

Is system::expand-deftype stable enough to be published as an ABCL extension
to ANSI CL and to be used to implement introspect-environment:typexpand ?

Regards,

Massimiliano

Vibhu Mohindra | 11 Jun 01:45 2016
Picon

#'asdf-jar:add-to-asdf use-jar-fasls is ineffective

Hi,

I've got #'asdf-jar:package to create a jar file containing lisp sources
and fasls. With abcl-1.0.1,
(asdf:operate 'asdf:load-op ...)
uses the fasls from the jar, whereas with abcl-1.1.0 onwards those fasls
are ignored and the jarred sources are compiled into ~/.cache/... again.

Is this a bug, or is it a feature (as easyE seems to think it is, in the
last two sentences at:
http://stackoverflow.com/questions/4763910/abcl-compilation-and-primitives
)?

If it's a bug, here is how far I've got in my diagnosis.

(asdf-jar:add-to-asdf "wispym.jar")

shows this in abcl-1.0.1

((#P"jar:file:/Users/vibhu/t3/wispym-all.jar!/**/*.*" T)
(#P"jar:file:/Users/vibhu/t3/wispym-all.jar!/**/*.*"
#P"jar:file:/Users/vibhu/t3/wispym-all.jar!/**/*.*")
(#P"/Users/vibhu/.cache/common-lisp/abcl-1.0.1-svn-13750-13751-fasl38-solaris-x86/**/*.*"
T) (#P"/___jar___file___root___/**/*.*"
#P"/Users/vibhu/.cache/common-lisp/abcl-1.0.1-svn-13750-13751-fasl38-solaris-x86/**/*.*")
(#P"jar:file:/**/*.jar!/**/*.*" #<TRANSLATE-JAR-PATHNAME {2B63F8AD}>) (T
#P"/Users/vibhu/.cache/common-lisp/abcl-1.0.1-svn-13750-13751-fasl38-solaris-x86/**/*.*"))

but this in abcl-1.3.2,

((#P"/**/*.*" T) (#P"/**/*.*" #P"/**/*.*")
(#P"/Users/vibhu/.cache/common-lisp/abcl-1.3.2-fasl42-macosx-x64/**/*.*"
T) (#P"/___jar___file___root___/**/*.*"
#P"/Users/vibhu/.cache/common-lisp/abcl-1.3.2-fasl42-macosx-x64/**/*.*")
(#P"jar:file:/**/*.jar!/**/*.*" #<TRANSLATE-JAR-PATHNAME {4F340027}>) (T
#P"/Users/vibhu/.cache/common-lisp/abcl-1.3.2-fasl42-macosx-x64/**/*.*"))

I think these are asdf output-translations, each specifying a source
directory and a corresponding destination directory.

The first two entries are significantly different between abcl-1.0.1 and
abcl-1.3.2.

----
The reason I'd like to use the jarred fasls is that I'm distributing my
program to customers. I don't want to spew fasls around their hard
disks. I also don't want to get into having to explain to them to clear
caches. (I do have to do this locally on occasion, e.g. when timestamps
on files confuse the cache). But most importantly, I've got a large
cl-yacc grammar that takes ages to macroexpand and compile. I don't want
them to wait so long even though it's just on the first load.

----
Any tips for where I should look next will be much appreciated. ASDF,
ABCL, ABCL contrib?

Thanks for reading.

Vibhu

Alan Ruttenberg | 29 May 22:55 2016
Picon
Gravatar

function documentation patch

When a function object is given to describe function documentation is not shown (it's shown on the symbol). Because of this, the slime function documentation doesn't show it either.  


Index: src/org/armedbear/lisp/describe.lisp
===================================================================
--- src/org/armedbear/lisp/describe.lisp (revision 14850)
+++ src/org/armedbear/lisp/describe.lisp (working copy)
<at> <at> -89,7 +89,13 <at> <at>
              (setf plist (cddr plist))))))
       (FUNCTION
        (%describe-object object stream)
-       (describe-arglist object stream))
+       (describe-arglist object stream)
+       (let ((function-symbol (nth-value 2 (function-lambda-expression object))))
+ (when function-symbol
+   (let ((doc (documentation function-symbol 'function)))
+     (when doc
+       (format stream "Function documentation:~%  ~A~%" doc)))
+   )))
       (INTEGER
        (%describe-object object stream)
        (format stream "~D.~%~
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


Gmane