Hello all,
Attached is a proof-of-concept implementation and demonstration code for
returning from an arbitrary (full-call) stack frame on x86.
This implementation is likely to be somewhat fragile, and has a couple known
issues:
1. It may leak alien-stack space if it throws through a with-alien form
that contains a variable with :local allocation which ends up on the stack.
2. It doesn't clean up the catch block chain. If it throws through a catch
form, things will probably start breaking. And not immediately, but when it
comes time to throw to a catch in an outer scope.
I'm not entirely sure what to do about the first, but the second should be
fairly straightforward to fix. Just do the same thing as find-enclosing-uwp
only with catch blocks, and then stomp the head of the chain. Could even be
done before calling frame-return.
Porting this to other platforms may be possible, depending on how much
dynamic state can be recovered.
I'd like to thank beach for pointing me in this direction in the first
place, and Xof for helping me figure out how to unbox a SAP.
--Alastair Bridgewater

Yaroslav Kavenchuk writes:
> SBCL 0.9.9.37 on mingw
>
> * (time (expt 10 100))
>
> debugger invoked on a TYPE-ERROR: The value NIL is not of type NUMBER.
>
> It only at me?
Nope, known issue in SBCL/Win32. From my TODO list (which I've been mostly
ignoring):
14.) [moderate] The TIME macro causes a type error by receiving
a NIL value where it expected some sort of number. Looking
at the source, the NIL value is coming from the function
sb-sys:get-system-info, which is in win32-os.lisp. This
function normally uses sb-unix:unix-fast-getrusage, but is
stubbed out because unix-fast-getrusage is unimplemented.
Other parts of the machinery behind TIME also use
sb-unix:unix-fast-getrusage, so that's probably the right
place for a fix.
> Thanks!
>
> --
> WBR, Yaroslav Kavenchuk.
--Alastair Bridgewater

Hi,
Find below a Call for Participation at the 3rd European Lisp Workshop;
I warmly encourage denizens of this list to consider submitting a
paper or breakout group proposal, and I hope to see some of you in
Nantes in July.
Cheers,
Christophe
+----------------------------------------------------------------------+
| 3rd European Lisp Workshop |
| July 3 & 4 - Nantes, Frances - co-located with ECOOP 2006 |
+----------------------------------------------------------------------+
Important Dates
Submission deadline (papers & breakout groups): April 1, 2006
Notification of acceptance: May 1, 2006
ECOOP early registration deadline: May 23, 2006
For more information visit http://lisp-ecoop06.bknr.net/
Contact: Pascal Costanza, pc@...
Organizers
**********
Pascal Costanza, Programming Technology Lab, Vrije Universiteit Brussel
Theo D'Hondt, Programming Technology Lab, Vrije Universiteit Brussel
Arthur Lemmens, Independent Consultant, Amsterdam
Christophe Rhodes, Goldsmiths College, University of London
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 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 and
retains the most complete and advanced object system of any
programming language, while influencing many other object-oriented
programming languages that followed.
It is clear that Lisp is gaining momentum: there is a
steadily growing interest in Lisp itself, with numerous user groups
in existence worldwide, and in Lisp's metaprogramming notions
which are being transferred to other languages, as
for example in Aspect-Oriented Programming, support for
Domain-Specific Languages, and so on.
This two-day workshop will address the near-future role of Lisp-based
languages in research, industry and education. We solicit
papers and suggestions for breakout groups that discuss the
opportunities Lisp provides to capture and enhance the possibilities
in software engineering. We 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 have two components on separate days; there will
be a day for formally-presented talks, and a day for breakout groups
discussing or working on particular topics. Additionally, there
will be opportunities for short, informal talks and demonstrations on
experience reports, underappreciated results, software under
development, or other topics of interest.
Papers
******
Formal presentations in the workshop should take between 20 minutes
and half an hour; additional time will be given for questions and
answers. We encourage that papers be published on the website in order
to provide background information in advance.
Suggested Topics
New language features or abstractions
Experience reports or case studies
Protocol Metaprogramming and Libraries
Educational approaches
Software Evolution
Development Aids
Persistent Systems
Dynamic Optimization
Implementation techniques
Innovative Applications
Hardware Support for Lisp systems
Macro-, reflective-, meta- and/or rule-based development approaches
Aspect-Oriented, Domain-Oriented and Generative Programming
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
Lisp Infrastructure Development and Distribution
Language Features (e.g. Predicate Dispatching)
Environments for creating web applications
Brainstorming sessions for new or existing open source projects
Persistence Systems
Compiler technology
Lisp on bare metal / Lisp hardware / Lisp operating systems
Compare and enhance curricula for computer science education
Submission Guidelines
*********************
Potential attendees are encouraged to submit
* a long paper (10 pages) presenting scientific and/or
empirical results about Lisp-based uses or new approaches for
software engineering purposes;
* a short essay (5 pages) defending a position about where
research, practice or education based on Lisp 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.
Submissions should be mailed as PDF to Pascal Costanza (pc@...)
before the submission deadline.

Matthew D Swank <akopa@...> writes:
> So, what's a guy have to do to get some code commited :). Here is my
> mailbox from December with some mostly apropos doc strings. It's
> pretty low imapact. It shouldn't break anything, and no-one's code
> (except mine) depends on it.
Without thinking about this too hard I'd be inclined to see this
as a contrib module -- SB-MAILBOX. Dunno how others see it.
In any case working towards commit involves writing tests, putting the
code in files with the appropriate public domain statements, and
arranging it to be built as a part of regular SBCL build -- either
as part of SBCL or as a contrib.
Cheers,
-- Nikodemus Schemer: "Buddha is small, clean, and serious."
Lispnik: "Buddha is big, has hairy armpits, and laughs."