From 8373d118d967a165a0df1c8832761c3d2710e62b Mon Sep 17 00:00:00 2001 From: fracek Date: Sun, 10 Mar 2013 18:19:54 +0100 Subject: [PATCH 1/4] Use sidebar navigation on documentation page This commit is a first iteration of a reorganization of the documentation page. --- .../website/source/documentation/index.rst | 62 +++++++++++-------- 1 file changed, 36 insertions(+), 26 deletions(-) diff --git a/documentation/website/source/documentation/index.rst b/documentation/website/source/documentation/index.rst index 7261fc39f..8931e6218 100644 --- a/documentation/website/source/documentation/index.rst +++ b/documentation/website/source/documentation/index.rst @@ -1,3 +1,19 @@ +.. raw:: html + +
+ +
+ ************* Documentation ************* @@ -8,12 +24,10 @@ Documentation in the near future. :class: alert alert-block alert-warning -.. raw:: html - -
-
+Learning Dylan +============== -

Learning Dylan

+.. raw:: html

Just getting started with Open Dylan? We recommend that @@ -56,10 +70,10 @@ Documentation the portable window programming toolkit. This is only useful if you are using Open Dylan on Windows. -.. raw:: html +Articles +======== -


-

Articles

+.. raw:: html

Featured articles and blog postings.

@@ -85,19 +99,15 @@ Documentation An exciting look at using DIME and emacs for Dylan development. -.. raw:: html - -
-

Publications

+Publications +============ `See our publications page `_. -.. raw:: html - -
-
+Cheat Sheets +============ -

Cheat Sheets

+.. raw:: html

Quick one-page sheets for common tasks.

@@ -111,10 +121,10 @@ Documentation * `Collections `_ * `For Scheme programmers `_ -.. raw:: html +References +========== -
-

References

+.. raw:: html

These are some lengthier reference materials. While they @@ -148,10 +158,10 @@ Documentation 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 @@ -178,10 +188,10 @@ Documentation implementation and related libraries. -.. raw:: html +Archived Documentation +====================== -


-

Archived Documentation

+.. raw:: html

This is old documentation that we don't plan to From 96dae1565f004da6b4ff8f89f10708dad4128a09 Mon Sep 17 00:00:00 2001 From: fracek Date: Sun, 17 Mar 2013 17:36:04 +0100 Subject: [PATCH 2/4] Use definition style on documentation page Replace the old quotes style (gray bars) with the new definiton (no gray bars) style for text blocks. --- .../website/source/documentation/index.rst | 58 ++++--------------- 1 file changed, 11 insertions(+), 47 deletions(-) diff --git a/documentation/website/source/documentation/index.rst b/documentation/website/source/documentation/index.rst index 8931e6218..cfbe50ddf 100644 --- a/documentation/website/source/documentation/index.rst +++ b/documentation/website/source/documentation/index.rst @@ -37,35 +37,21 @@ Learning Dylan book.

-`An Introduction to Dylan `_ -[`pdf `__] -[`epub `__] - +`An Introduction to Dylan `_ [`pdf `__] [`epub `__] This tutorial is written primarily for those with solid programming experience in C++ or another object-oriented, static language. It provides a gentler introduction to Dylan than does the Dylan Reference Manual (DRM). -`Dylan Programming `_ -[`pdf `__] -[`epub `__] - +`Dylan Programming `_ [`pdf `__] [`epub `__] A good, book length Dylan tutorial by several Harlequin employees. -`Getting Started with Open Dylan `_ -[`pdf `__] -[`epub `__] -[`old HTML `__] - +`Getting Started with Open Dylan `_ [`pdf `__] [`epub `__] [`old HTML `__] Describes Open Dylan's development environment. The first two chapters are useful on any platform, whereas the remaining chapters document the Open Dylan IDE on Windows. -`Building Applications Using DUIM `_ -[`pdf `__] -[`epub `__] -[`old HTML `__] - +`Building Applications Using DUIM `_ [`pdf `__] [`epub `__] [`old HTML `__] Describes how to use DUIM (Dylan User Interface Manager), the portable window programming toolkit. This is only useful if you are using Open Dylan on Windows. @@ -82,12 +68,10 @@ Articles

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. @@ -96,7 +80,6 @@ Articles

Tools

`Development inside emacs using DIME <../news/2011/12/12/dswank.html>`_ - An exciting look at using DIME and emacs for Dylan development. Publications @@ -131,16 +114,10 @@ References 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 @@ -151,9 +128,7 @@ References 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. @@ -169,21 +144,14 @@ For Open Dylan Developers 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. @@ -199,14 +167,10 @@ Archived 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. From 7f3b1ed38d1029ccd286e05e3ee9f0a8014d556a Mon Sep 17 00:00:00 2001 From: fracek Date: Sun, 17 Mar 2013 17:55:03 +0100 Subject: [PATCH 3/4] Add 3 publications to the documentation page --- .../website/source/documentation/index.rst | 48 ++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/documentation/website/source/documentation/index.rst b/documentation/website/source/documentation/index.rst index cfbe50ddf..2aaceb09b 100644 --- a/documentation/website/source/documentation/index.rst +++ b/documentation/website/source/documentation/index.rst @@ -85,7 +85,53 @@ Articles Publications ============ -`See our publications page `_. +**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 ============ From 1fee29d479b67a4c3c85b73c43defcddb4806369 Mon Sep 17 00:00:00 2001 From: fracek Date: Sun, 17 Mar 2013 18:08:52 +0100 Subject: [PATCH 4/4] Convert the publications page to the new style Change the old quote style to the new style. --- .../source/documentation/publications.rst | 56 +++---------------- 1 file changed, 9 insertions(+), 47 deletions(-) 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