Common-Extensions 
Author Message
 Common-Extensions

We've decided that any Dylan compiler should be able to compile the d2c
source code. This means that d2c must be written in "standard" Dylan, so
we'll need to clean up a number of incompatibilities.

As part of this work, we want to create a Common-Extensions module (or
library) which exports the Dylan extensions shared by Harlequin and
Gwydion. We already have significant overlap, so this shouldn't require
much more than a few "export:" clauses.

Here's what lives in the Gwydion extensions module, thanks to the efforts
of CMU:

  // More integers.
  <general-integer>, <extended-integer>,
  $maximum-integer, $minimum-integer, integer-length,

  // Ratios.
  <ratio>, ratio, numerator, denominator,

  // More types.
  <byte-character>, <true>, <false>,

  // Type extensions.
  false-or, one-of, <never-returns>, subclass, direct-instance,

  // Condition extensions.
  <format-string-condition>, report-condition, condition-format,
  condition-force-output, *warning-output*,

  // De{*filter*} Hooks
  <de{*filter*}>, invoke-de{*filter*}, *de{*filter*}*,

  // Byte vector stuff.
  <byte>, <byte-vector>,

  // Misc other stuff.
  $not-supplied, ignore, functional-==, key-exists?, assert,
  exit, on-exit, limited-collection-definer,
  limited-vector-class, element-type, %elem, %elem-setter,
  limited-sv-class, ssv-data, ssv-data-setter, lsv-data-type,
  lsv-fill, %main, main

Harlequin currently provides:

  assert <byte-character> concatenate!  condition-to-string debug-assert
  debug-message default-last-handler "define table" difference false-or
  fill-table!  find-element float-to-string <format-string-condition>
  found?  ignore ignorable integer-to-string iterate last-handler-definer
  one-of position remove-all-keys!  <simple-condition> <stretchy-sequence>
  <string-table> string-to-integer subclass supplied?  timing $unfound
  unfound unfound?  $unsupplied unsupplied unsupplied?  when

The most obvious candidates for standardization are:

  * anything related to assertions
  * false-or, one-of
  * $unfound and $unsupplied
  * <format-string-condition> and friends
  * subclass
  * anything else with a trivial implementation

We also provide "define function" and "inline", although we might not
provide all the extended inlining forms used in Harlequin Dylan.

Which extensions are widely used in Harlequin's code? What ones are most
critical for us to support if we want to achieve full source compatibility?

Cheers,
Eric



Thu, 05 Jul 2001 03:00:00 GMT  
 
 [ 1 post ] 

 Relevant Pages 

1. VRML Extensions common to Cortona4.x and BS Contatact 6.x

2. Common Lisp Extensions (Was: UK lispers mailing list)

3. Common Lisp as an extension language for C programs

4. Common virus extensions

5. COMMON isn't COMMON?

6. HELP! COMMON within COMMON

7. What I want from my Common Lisp vendor and the Common Lisp community

8. #+COMMON, #+COMMON-LISP, #+CLtL1 or #+CLtL2?

9. lucid common lisp -- C -- Common lisp intercallability

10. Lucid (Sun) Common Lisp vs Allegro (Franz) Common Lisp - the Summary

11. Lucid (Sun) Common Lisp vs Allegro (Franz) Common Lisp

12. Sun Common Lisp vs. Allegro Common Lisp

 

 
Powered by phpBB® Forum Software