Featured articles and blog postings.
@@ -68,12 +68,10 @@ Documentation
Learning Dylan
`Dylan Macro System <../articles/macro-system/index.html>`_ by Dustin Voss.
-
This article holds hard-won knowledge about how the Dylan macro system works
and how to work around some of the gotchas that may catch a macro writer.
`Procedural Dylan <../articles/procedural-dylan/index.html>`_ by Paul Haahr.
-
This essay explores Dylan from the perspective of a programmer used to
traditional procedural languages, such as Pascal or C.
@@ -82,23 +80,64 @@ Documentation
Tools
`Development inside emacs using DIME <../news/2011/12/12/dswank.html>`_
-
An exciting look at using DIME and emacs for Dylan development.
-.. raw:: html
-
-
-
Publications
-
-`See our publications page
`_.
+Publications
+============
+
+**Extending Dylan's type system for better type inference and error detection** [`pdf `__] [`bib <../_static/documentation/mehnert2010.bib>`__]
+ Whereas dynamic typing enables rapid prototyping and easy
+ experimentation, static typing provides early error detection and
+ better compile time optimization. Gradual typing provides the best
+ of both worlds. This paper shows how to define and implement
+ gradual typing in Dylan, traditionally a dynamically typed
+ language. Dylan poses several special challenges for gradual
+ typing, such as multiple return values, variable-arity methods and
+ generic functions (multiple dispatch).
+
+ In this paper Dylan is extended with function types and parametric
+ polymorphism. We implemented the type system and a
+ unification-based type inference algorithm in the mainstream Dylan
+ compiler. As case study we use the Dylan standard library (roughly
+ 32000 lines of code), which witnesses that the implementation
+ generates faster code with fewer errors. Some previously
+ undiscovered errors in the Dylan library were revealed.
+
+ https://dl.acm.org/citation.cfm?id=1869643.1869645
+
+**Partial Dispatch: Optimizing Dynamically-Dispatched Multimethod Calls with Compile-Time Types and Runtime Feedback** [`pdf `__] [`bib <../_static/documentation/bachrach2000.bib>`__]
+ We presented an approach to gaining back complete class hierarchy
+ information by delaying the construction of dispatch caches until
+ the whole class hierarchy is available at run- time. Run-time
+ call-site caches can then be constructed as specialized decision
+ trees built from disjointness and concrete- subtype operations on
+ actual arguments combined with compile-time inferred types
+ injected into the run-time. Unnecessary decision steps can be
+ avoided and often run-time dispatch can be completely
+ eliminated. We consider this to be a nice half-way house between
+ full static compilation and dynamic compilation which mitigates
+ the runtime expense of separately compiled components while
+ satisfying our implementation constraints of code shareable
+ components, multi-threaded runtime, incremental development, “pay
+ as you go philosophy”, and interoperability with standard tools.
+
+**D-Expressions: Lisp Power, Dylan Style** [`pdf `__] [`bib <../_static/documentation/bachrach1999.bib>`__]
+ This paper aims to demonstrate that it is possible for a language
+ with a rich, conventional syntax to provide Lisp-style macro power
+ and simplicity. We describe a macro system and syntax manipulation
+ toolkit designed for the Dylan programming language that meets,
+ and in some areas exceeds, this standard. The debt to Lisp is
+ great, however, since although Dylan has a conventional algebraic
+ syntax, the approach taken to describe and represent that syntax
+ is distinctly Lisp-like in philosophy.
+
+`See our publications page to find more `_.
+
+Cheat Sheets
+============
.. raw:: html
-
-
-
-
Cheat Sheets
-
Quick one-page sheets for common tasks.
@@ -111,26 +150,20 @@ Documentation
* `Collections
`_
* `For Scheme programmers `_
-.. raw:: html
+References
+==========
-
- References
+.. raw:: html
These are some lengthier reference materials. While they
make for dry reading, they're full of invaluable information!
-`Dylan Reference Manual
-`_ (`Errata
-`_)
-
+`Dylan Reference Manual `_ (`Errata `_)
The official definition of the Dylan language and standard library.
-`Dylan Library Reference `_
-[`pdf `__]
-[`epub `__]
-
+`Dylan Library Reference `_ [`pdf `__] [`epub `__]
Describes the Open Dylan implementation of the Dylan language, a
core set of Dylan libraries, and a library interchange mechanism.
The core libraries provide many language extensions, a threads
@@ -141,17 +174,15 @@ Documentation
as a foreign function interface and some low-level access to the
Microsoft Win32 API.
-`DUIM library reference
-`_
-
+`DUIM library reference `_
Describes the libraries forming DUIM (Dylan User Interface Manager),
the portable window programming toolkit. It complements
Building Applications Using DUIM.
-.. raw:: html
+For Open Dylan Developers
+=========================
-
- For Open Dylan Developers
+.. raw:: html
Notes and materials useful to those working on
@@ -159,29 +190,22 @@ Documentation
level details.
-`Open Dylan Hacker's Guide `_
-[`pdf `__]
-[`epub `__]
-
+`Open Dylan Hacker's Guide `_ [`pdf `__] [`epub `__]
A work in progress to help out people who are hacking on Open Dylan itself.
-`Dylan Style Guide `_
-[`pdf `__]
-[`epub `__]
-
+`Dylan Style Guide `_ [`pdf `__] [`epub `__]
Notes and thoughts on how to format your Dylan code. This is the style
guide that we aspire to adhere to in the Open Dylan sources.
`Dylan Enhancement Proposals <../proposals/index.html>`_
-
A series of proposals for improvements to the Open Dylan
implementation and related libraries.
-.. raw:: html
+Archived Documentation
+======================
-
- Archived Documentation
+.. raw:: html
This is old documentation that we don't plan to
@@ -189,14 +213,10 @@ Documentation
material.
-`Developing Component Software with CORBA
-`_
-
+`Developing Component Software with CORBA `_
A tutorial and reference for CORBA interoperability using the Open Dylan ORB.
-`OLE, COM, ActiveX and DBMS library reference
-`_
-
+`OLE, COM, ActiveX and DBMS library reference `_
Describes high and low level interfaces to COM, OLE, and
ActiveX component technology, and generic DBMS support, through
SQL with an ODBC backend.
diff --git a/documentation/website/source/documentation/publications.rst b/documentation/website/source/documentation/publications.rst
index 7bf9849b0..a5b4bc769 100644
--- a/documentation/website/source/documentation/publications.rst
+++ b/documentation/website/source/documentation/publications.rst
@@ -2,12 +2,7 @@
Publications about Dylan
************************
-**Extending Dylan's type system for better type inference and error
-detection**
-(by Hannes Mehnert at ILC 2010
-`pdf `__
-`bib <../_static/documentation/mehnert2010.bib>`__)
-
+**Extending Dylan's type system for better type inference and error detection** (by Hannes Mehnert at ILC 2010 `pdf `__ `bib <../_static/documentation/mehnert2010.bib>`__)
Whereas dynamic typing enables rapid prototyping and easy
experimentation, static typing provides early error detection and
better compile time optimization. Gradual typing provides the best
@@ -27,11 +22,7 @@ detection**
https://dl.acm.org/citation.cfm?id=1869643.1869645
-**Automatically generated type-safe GTK+ binding for Dylan**
-(by Hannes Mehnert at ILC 2009
-`pdf `__
-`bib <../_static/documentation/mehnert2009.bib>`__)
-
+**Automatically generated type-safe GTK+ binding for Dylan** (by Hannes Mehnert at ILC 2009 `pdf `__ `bib <../_static/documentation/mehnert2009.bib>`__)
We present an automated way to get language bindings for GTK+ for
Dylan, an object-oriented functional programming language related
to Lisp. Dylan supports multiple inheritance, polymorphism,
@@ -40,11 +31,7 @@ detection**
is type-safe, no up- and downcasts are needed.
-**A domain-specific language for manipulation of binary data in Dylan**
-(by Hannes Mehnert and Andreas Bogk at ILC 2007
-`pdf `__
-`bib <../_static/documentation/mehnert2007.bib>`__)
-
+**A domain-specific language for manipulation of binary data in Dylan** (by Hannes Mehnert and Andreas Bogk at ILC 2007 `pdf `__ `bib <../_static/documentation/mehnert2007.bib>`__)
We present a domain specific language for manipulation of binary
data, or structured byte sequences, as they appear in everyday
applications such as networking or graphics file manipulation. Our
@@ -56,11 +43,7 @@ detection**
https://dl.acm.org/citation.cfm?id=1622123.1622148
-**Efficient Compression of Generic Function Dispatch Tables**
-(by Eric Kidd - Technical Report Dartmouth College 2001
-`pdf `__
-`bib <../_static/documentation/kidd2001.bib>`__)
-
+**Efficient Compression of Generic Function Dispatch Tables** (by Eric Kidd - Technical Report Dartmouth College 2001 `pdf `__ `bib <../_static/documentation/kidd2001.bib>`__)
A generic function is similar to an overloaded operator, but
provides a way to select an appropriate behavior at run-time
instead of compile-time. Dujardin and colleagues have proposed an
@@ -75,11 +58,7 @@ detection**
https://dl.acm.org/citation.cfm?id=867862
-**Partial Dispatch: Optimizing Dynamically-Dispatched Multimethod Calls with Compile-Time Types and Runtime Feedback**
-(by Jonathan Bachrach and Glenn Burke - Technical Report 2000
-`pdf `__
-`bib <../_static/documentation/bachrach2000.bib>`__)
-
+**Partial Dispatch: Optimizing Dynamically-Dispatched Multimethod Calls with Compile-Time Types and Runtime Feedback** (by Jonathan Bachrach and Glenn Burke - Technical Report 2000 `pdf `__ `bib <../_static/documentation/bachrach2000.bib>`__)
We presented an approach to gaining back complete class hierarchy
information by delaying the construction of dispatch caches until
the whole class hierarchy is available at run- time. Run-time
@@ -95,11 +74,7 @@ detection**
components, multi-threaded runtime, incremental development, “pay
as you go philosophy”, and interoperability with standard tools.
-**D-Expressions: Lisp Power, Dylan Style**
-(by Jonathan Bachrach and Keith Playford - Technical Report 1999
-`pdf `__
-`bib <../_static/documentation/bachrach1999.bib>`__)
-
+**D-Expressions: Lisp Power, Dylan Style** (by Jonathan Bachrach and Keith Playford - Technical Report 1999 `pdf `__ `bib <../_static/documentation/bachrach1999.bib>`__)
This paper aims to demonstrate that it is possible for a language
with a rich, conventional syntax to provide Lisp-style macro power
and simplicity. We describe a macro system and syntax manipulation
@@ -109,11 +84,7 @@ detection**
syntax, the approach taken to describe and represent that syntax
is distinctly Lisp-like in philosophy.
-**Modern languages and Microsoft's component object model**
-(by David N. Gray, John Hotchkiss, Seth Laforge, Andrew Shalit and
-Toby Weinberg - Communications of the ACM May 1998
-`bib <../_static/documentation/gray1998.bib>`__)
-
+**Modern languages and Microsoft's component object model** (by David N. Gray, John Hotchkiss, Seth Laforge, Andrew Shalit and Toby Weinberg - Communications of the ACM May 1998 `bib <../_static/documentation/gray1998.bib>`__)
As the computer industry's reliance on component software increases,
it becomes increasingly difficult to integrate complex component
systems. Modern development environments take a variety of approaches
@@ -124,12 +95,7 @@ Toby Weinberg - Communications of the ACM May 1998
http://dl.acm.org/citation.cfm?id=274957
-**A Monotonic Superclass Linearization for Dylan**
-(by Kim Barrett and Bob Cassels and Paul Haahr and David A. Moon and
-Keith Playford and P. Tucker Withington at OOPSLA 1996
-`html `__
-`bib <../_static/documentation/barrett1996.bib>`__)
-
+**A Monotonic Superclass Linearization for Dylan** (by Kim Barrett and Bob Cassels and Paul Haahr and David A. Moon and Keith Playford and P. Tucker Withington at OOPSLA 1996 `html `__ `bib <../_static/documentation/barrett1996.bib>`__)
Object-oriented languages with multiple inheritance and automatic
conflict resolution typically use a linearization of superclasses
to determine which version of a property to inherit when several
@@ -148,11 +114,7 @@ Keith Playford and P. Tucker Withington at OOPSLA 1996
https://dl.acm.org/citation.cfm?id=236337.236343
-**Discovering the way programmers think about new programming environments**
-(by Joseph Dumas and Paige Parsons - Communications of the ACM June
-1995
-`bib <../_static/documentation/dumas1995.bib>`__)
-
+**Discovering the way programmers think about new programming environments** (by Joseph Dumas and Paige Parsons - Communications of the ACM June 1995 `bib <../_static/documentation/dumas1995.bib>`__)
An interesting usability study of a prototype development
environment for the Dylan programming language is presented
here. This study's purpose is to determine just how close the