It's just a silly little script, but I'm proud of cl-launch.sh:
http://www.cliki.net/cl-launch
It should make it much easier to write little command-line utilities
in semi-portable Common Lisp.
I've tried to make it robust, and as a result it's somewhat
over-engineered and difficult to hack. But hopefully, it is
well-documented and easy to use. Please help me test it, spread it,
etc.
It's one step to integrating common lisp to the unix command line
(until the unix command line can be integrated into common lisp).
I hope some of you find it useful. Satisfied user messages and hacker
improvements welcome. So are ports to more Common Lisp
implementations...
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
Most economic fallacies derive... from the tendency to assume that there
is a fixed pie, that one party can gain only at the expense of another.
-- Milton Friedman
OOPSLA'05 tutorial on generic functions and the CLOS Metaobject Protocol
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Town and Country Resort & Convention Center, San Diego, California
Sunday, October 16, 2005, 13:30 - 17:00
See http://p-cos.net/oopsla05-tutorial.html
Abstract.
The Common Lisp Object System (CLOS) is unique in two ways.
+ In most OOP languages, methods belong to classes and are invoked by
sending messages. In CLOS, methods belong to generic functions
instead of classes, and those generic functions select and execute
the correct method according to the types of the arguments they receive.
+ The CLOS Metaobject Protocol (MOP) specifies how its essential
building blocks are to be implemented in CLOS itself. This allows
extending its object model with metaclasses that change important
aspects of CLOS for a well-defined scope.
This tutorial introduces these two notions. I will develop - live
during the tutorial - the code for an interpreter for generic
functions that performs selection and execution of methods. I will
then discuss how that code can be extended to introduce, for example,
multimethods and AOP-style advices, and sketch how generic functions
are implemented efficiently in the "real" world. In the second part,
I will illustrate the extensibility of the CLOS MOP by implementing -
live - the (hashtable-based) Python object model as a metaclass.
Other practical extensions based on the CLOS MOP are also sketched,
like object-relational mappings, interfaces to foreign-language
objects, and domain-specific annotations in classes.
The audience will learn about the basic concepts of generic functions
and metaobject protocols. They will get the necessary insights and
pointers to existing literature and online material to deepen their
knowledge. The focus of the tutorial is not on technical details but
on the general ideas. A good understanding of class-based OOP is
required. Experience with Lisp may be helpful, but the tutorial is
specifically targeted at non-Lispers.
Feel free to contact me if you have any questions and/or suggestions.
Pascal
Hi everyone,
I have just uploaded a first release of ContextL. It's both a non-
trivial example of using the CLOS MOP and a full-fledged library in
its own right, providing constructs for context-oriented programming.
See http://common-lisp.net/project/closer/contextl.html for more
information.
Cheers,
Pascal
--
OOPSLA'05 tutorial on generic functions & the CLOS Metaobject Protocol
++++ see http://p-cos.net/oopsla05-tutorial.html for more details ++++
Pascal Costanza, mailto:pc@p-cos.net, http://p-cos.net
Vrije Universiteit Brussel, Programing Technology Lab
Pleinlaan 2, B-1050 Brussel, Belgium
Hi,
My website has moved to a new location and has a new design. You can
now find it at http://p-cos.net
This affects a few Lisp-related pages. Especially:
- My "highly opinionated" Lisp guide is now at http://p-cos.net/lisp/
guide.html - the old location at www.pascalcostanza.de / www.cs.uni-
bonn.de will be removed soon.
- The archive for the 1st European Lisp and Scheme workshop has moved
to http://p-cos.net/lisp-ecoop/ - I won't remove the old archive
soon, but cannot guarantee any degree of longevity. Note that the
site for the 2nd instance of that workshop is not affected since it
is maintained by Hans Huebner.
- On a related note, I am going to give a tutorial about generic
functions and the CLOS Metaobject Protocol at this year's OOPSLA. See
http://p-cos.net/oopsla05-tutorial.html (The need for a tutorial
website was the main motivation to finally get the new website up and
running.)
I appreciate if people who have linked to the material above could
update the respective links. Thanks a lot!
Cheers,
Pascal
--
A discussion that tries to kill a useful feature is not a "practical"
discussion but a "religious" one. - Kent M. Pitman
Hi,
New versions of MOP Feature Tests and Closer to MOP are available.
MOP Feature Tests checks whether CLOS MOP features, as specified in
"The Art of the Metaobject Protocol", are available in a given Common
Lisp implementation. Closer to MOP provides a compatibility layer
that irons out some of the incompatibilities across various CLOS MOP
implementations.
Highlights of the new versions:
- A number of new implementations are now supported, including
Allegro Common Lisp 7.0, CLisp 2.34, CMU CL 19b, LispWorks
Professional 4.4.5, Macintosh Common Lisp 5.1, OpenMCL 0.14.3 and
SBCL 0.9.3.
- The software is now available as a set of darcs repositories.
- Various fixes in Closer to MOP.
- Added a convenience method ensure-method.
- Switched to an MIT/BSD-style license.
I am using the Closer to MOP compatibility layer for my own software,
which consists of non-trivial extensions of CLOS. This has led to
overall improvements of stability.
See the project website at http://common-lisp.net/project/closer/ for
further details.
Cheers,
Pascal
--
Tyler: "How's that working out for you?"
Jack: "Great."
Tyler: "Keep it up, then."
Some of you may be interested in the following Lisp job announcement
(forwarded from comp.lang.lisp).
Arthur
---- Doorgestuurd Usenet-bericht ----
Van: Hamish Harvey <hamish(a)hamishharvey.com>
Newsgroepen: comp.lang.lisp
Onderwerp: Lisp (and Prolog, and a bit of KR) job, University of Newcastle upon Tyne, UK
Datum: Fri, 08 Jul 2005 12:44:37 +0100
URL: news://<dalov5$kmp$1(a)ucsnew1.ncl.ac.uk>
> I imagine that, regardless of the resurgent status of Lisp, jobs are still
> thin enough on the ground for job notices to be welcomed here!
>
> The School: http://www.ceg.ncl.ac.uk/
> The University: http://www.ncl.ac.uk/
> The job: http://www.ncl.ac.uk/vacancies/vacancy.phtml?ref=D528R
>
> The Earth Systems Engineering group in the School of Civil Engineering and
> Geosciences at the University of Newcastle upon Tyne, UK, are developing
> software to support flood risk management. The core of this software is a
> computation engine capable of taking definitions of rather complex,
> multi-dimensional calculations and enacting them. The computation engine
> will implement a domain specific language (DSL) designed to support the
> expression of these computations in a declarative way. This language and
> computation engine are being designed to provide the core of a wide range
> of decision support systems from tools to support interactive analysis of
> ill-specified problems to flood forecasting systems which depend on the
> continuous, unattended assimilation of incoming data.
>
> The calculations involved in flood risk management involve embedding
> numerical simulation of (parts of) the flooding system within layers of
> higher level calculations to derive measures of flood risk (e.g. in
> expected annual damage), or change in flood risk resulting from particular
> interventions, or the sensitivity of particular outputs to uncertainty,
> or .... The goal, in general, is to maximise the value of investment in
> measures to address flood risk. Aspirations in the flood risk management
> community far exceed what is feasible using current technology. To the
> extent that such calculations are currently possible, they are achieved
> using combinations of software packages and a great deal of munging of data
> files. This approach is tedious and error-prone. It almost completely
> obscures the structure and meaning of the underlying calcualtions, imposing
> huge cognitive load on those undertaking them. It will not scale much
> beyond the complexity of problem currently being tackled.
>
> The DSL under development by contrast allows these calculations, in their
> full multi-dimensional glory, to be expressed succinctly in a form which is
> amenable to human understanding but which can be compiled into an
> executable form. Humans are more involved in defining calculations than
> doing them. The language is declarative, based around a formalisation of
> the concept of a "reference frame", which allows the structure of a
> calculation (and of data sets) to be expressed explicitly (in imperative
> implementations this structure is implicit in the control structure of the
> code).
>
> The design of the semantics of the language is well progressed, but subject
> to refinement as implementation proceeds. A limited prototype computation
> engine exists which implements basic aspects of this language. The position
> available is for a software developer to join me in working on this
> prototype, which is written in Common Lisp (making extensive use of Lisp's
> code-which-writes-code-which-writes-code capabilities). The work will
> involve significant creative input at the abstract, conceptual level as
> well as in translating from this abstract level into working code. It will
> also involve applying the developing prototype to realistic flood risk
> analysis case studies.
>
> Initial prototyping is using an ad hoc, s-expression-based concrete syntax
> for the language. A further thread of development is to express the
> language in a full knowledge representation language (which may dictate
> changes to the abstract syntax). Part of the purpose of developing the
> language is to support the expression of complex calculations succinctly in
> a knowledge representation language. This language will then provide a
> point of integration of a wide range of tools which operate in terms of the
> structure of the calculation definitions, of which the computation engine
> is but one.
>
> A draft report on the software is available. This has been written for an
> audience of flood risk management professionals, not computer scientists or
> software developers. It still needs a great deal of polishing, but
> nonetheless sets out the breadth of the vision behind this project. The
> draft is temporarily available at
>
> http://www.floodrisknet.org.uk/Members/hamish/draft-framework-report.pdf
>
> Funding is initially available for two years, and the appointment is fixed
> term. The intention is to obtain additional funds to continue this work for
> some time, though this is subject to the vagaries of academic funding. My
> own position is also dependent on obtaining this funding, so I am highly
> motivated in this regard!
>
> The software will be released under an open source license in due course.
>
> Please feel free to ask questions (about the job or the software). I will be
> away for the first half of next week, so a failure to respond immediately
> should not be taken as a lack of interest!
>
> Cheers,
> Hamish
>
Call for Participation
2nd European Lisp and Scheme Workshop
=====================================
July 26 - Glasgow, Scotland - co-located with ECOOP 2005
Supported by ALU
For more information visit http://lisp-ecoop05.bknr.net
or contact pc(a)p-cos.net.
News (June 2, 2005)
===================
Important Dates
+ Abstract submission deadline: June 10, 2005
+ Notification of acceptance: June 17, 2005
+ ECOOP early registration deadline: June 24, 2005
+ Final paper submission deadline: July 15, 2005
Other News
==========
+ Richard P. Gabriel has agreed to give a keynote talk at the workshop:
"On the Interaction of Life and Machines in Self-Sustaining Systems"
Software systems today are produced according to a manufacturing
model: A finished product is constructed at the factory and shipped
to its final destinationwhere it is expected to act like any other
machine-reliably but oblivious to its surroundings and its own
welfare. Software needs to grow up and become responsible for itself
and its own future. A promising approach seems to be to separate
software that does the work from software that keeps the system
alive.
+ The submission deadline has been extended to June 10, 2005. Due to the
late publication of the fee structure for the ECOOP conference, we have
split submission into two phases: You can submit an abstract of your
paper or breakout group proposal before June 10 and we will notify you
of acceptance or rejection on June 17. The final paper / breakout group
proposal should be submitted by July 15.
+ The early registration deadline for ECOOP 2005 is June 24, 2005.
Participating is cheaper than you may think: If you only participate at
the workshop, the fee is 180 pounds (ca. 260 Euros or 320 US-Dollars) or
90 pounds (ca. 130 Euros or 160 US-Dollars) for students. This includes
coffee breaks and lunches on the two workshop days, the main reception
on the first workshop day and access to BoFs and the poster display on
the two workshop days. See http://2005.ecoop.org/fees.html for full
details.
Overview
========
"...Please don't assume Lisp is only useful for Animation and
Graphics, AI, Bioinformatics, B2B and E-Commerce, Data Mining,
EDA/Semiconductor applications, Expert Systems, Finance,
Intelligent Agents, Knowledge Management, Mechanical CAD, Modeling
and Simulation, Natural Language, Optimization, Research, Risk
Analysis, Scheduling, Telecom, and Web Authoring just because these
are the only things they happened to list." -- Kent Pitman
Lisp is one of the oldest computer languages still in use today. In the
decades of its existence, Lisp has been a fruitful basis for language
design experiments as well as the preferred implementation language for
applications in diverse fields. The structure of Lisp, including Common
Lisp and Scheme as its major dialects of today, makes it easy to extend
the language or even to implement entirely new dialects without
starting from scratch. Common Lisp, with the Common Lisp Object System
(CLOS), was the first object-oriented programming language to receive an
ANSI standard at the beginning of the 1990's. It is, arguably, the most
complete and advanced object system of any programming language, and has
influenced many other object-oriented programming languages that were to
follow.
Despite having somewhat disappeared from the radar of popular computer
science, Common Lisp and Scheme are still alive and have just started to
gain momentum again. There is a steadily growing interest in Lisp as
such, with numerous user groups having formed recently worldwide, and
Lisp's metaprogramming notions that are being transferred to other
languages to different extents, as for example in AOP, MDA, DSL, and so
on.
This two-day workshop will address the near-future role of Lisp-based
languages in research, industry and education. We want to solicit papers
and suggestions for breakout groups that discuss the opportunities Lisp
provides to capture and enhance the possibilities in software
engineering. We also want to promote lively discussion between
researchers proposing new approaches and practitioners reporting on
their experience with the strengths and limitations of current Lisp
technologies.
The workshop will be split into two parts: The first part is for talks
with a more classroom-like atmosphere, the second will consist of a
number of sessions for breakout groups discussing or working on
particular topics.
Papers
======
Presentations on the workshop can take anything between 5 minutes and an
hour. Additional time will be given for questions and answers. Papers
may be published on the website in order to provide background
information in advance.
Suggested topics for presented papers
+ Macro programming
+ Metaprogramming
+ Reflection
+ New language features / abstractions
+ Persistence Systems
+ Hardware support for Lisp systems
+ Case studies
+ Experience reports
+ Industrial applications
+ Object-Oriented Programming
+ Declarative Programming
+ Aspect-Oriented Programming
+ Domain-Oriented Programming
+ Generative Programming
+ Ambient Intelligence
+ Unanticipated Software Evolution
+ Design Patterns
+ Educational Perspectives
Breakout Groups
===============
The workshop will provide for the opportunity to meet face to face and
work on focused topics. We will organize these breakout groups and
provide for rooms and infrastructure.
Suggested topics for breakout groups
+ Discuss the feature set of the next version of Slime
+ Work on details of the CLRFI process
+ Exchange experiences with various macro systems for Scheme
+ Detail a wishlist for R6RS
+ Environments for creating web applications
+ Persistence systems
+ Compiler technology
+ Lisp on bare metal / Lisp hardware / Lisp operating systems
+ Compare and enhance curricula for computer science education
In order to have effective discussions at those breakout groups, we are
negotiating meeting rooms for an extra day in addition to the actual
workshop with the ECOOP organizers.
Submission Guidelines
=====================
Potential attendants are expected to submit
+ either a long paper (10 pages) presenting scientific and/or empirical
results about Lisp- and Scheme-based uses or new approaches for software
engineering purposes
+ or a short essay (5 pages) defending a position about where research
and practice based on Lisp and Scheme should be heading in the near
future
+ a proposal for a breakout group (1-2 pages) describing the theme, an
agenda and/or expected results
Abstract submissions should be mailed as PDF or text to Pascal Costanza
(pc(a)p-cos.net) before the submission deadline. Please indicate whether
you need an earlier notification of acceptance than the official date.
The final paper should be mailed before the respective submission
deadline - afterwards, we cannot guarantee timely publication at the
website anymore.
Registration
============
This workshop is co-located with ECOOP 2005, and this time it is one of
the official workshops at that conference. Therefore, registration, fee
and accomodation are all handled through the conference organization.
See the conference website and especially
http://2005.ecoop.org/fees.html and http://2005.ecoop.org/travel.html
for further information.
Advance registration to the workshop is handled through the primary
contact person of the Workshop, Pascal Costanza (pc(a)p-cos.net). Please
contact him by regular email with your submission or input to the
workshop in order to receive your login to the workshop website. Include
your preferred login name for the workshop website with your
application. Further information for participants will be provided on
the workshop website.
Organizing Committee
====================
The organizing comitee consists of the following people:
+ Pascal Costanza, http://www.pascalcostanza.de,
Vrije Universiteit Brussel, Belgium (contact organizer)
+ Theo D'Hondt, http://prog.vub.ac.be/~tjdhondt,
Vrije Universiteit Brussel, Belgium
+ Arthur Lemmens, Independent Consultant, Amsterdam, The Netherlands
+ Manuel Serrano, http://www-sop.inria.fr/mimosa/Manuel.Serrano/,
INRIA Sophia-Antipolis, France
--
Pascal Costanza Vrije Universiteit Brussel
mailto:Pascal.Costanza@vub.ac.be Programming Technology Lab
http://www.pascalcostanza.de Pleinlaan 2, B-1050 Brussel (Belgium)
Here are some news with regard to the 2nd European Lisp and Scheme
Workshop in Glasgow, Scotland on July 26, 2005.
- Richard Gabriel (http://www.dreamsongs.com) has agreed to give a
keynote talk at the workshop. Title and abstract will be announced at
the workshop website soon.
- The submission deadline for papers and breakout group proposals has
been extended to June 5, 2005.
- The early registration deadline for ECOOP 2005 is June 13, 2005.
Before that date, the fees for participating at the workshop should
be considerably lower. However, the fee structure hasn't been
announced yet. This will (hopefully) happen during the next few days
at http://2005.ecoop.org/fees.html
Please watch the workshop website at http://lisp-ecoop05.bknr.net
during the next one or two weeks for more updates.
Cheers,
Pascal
--
2nd European Lisp and Scheme Workshop
July 26 - Glasgow, Scotland - co-located with ECOOP 2005
http://lisp-ecoop05.bknr.net/