From: Chip Morris
Subject: Re: (actually none) Some problems with Coral Allegro CL
Date: 
Message-ID: <424@soi.UUCP>
This is a retraction of one comment I made earlier.  I can no longer
justify my assertion that there is a bug in the file-write-date
function, or any other function having to do with univeral time in
Coral Allegro Common Lisp.

No, this is not being said under duress.

-- 
Chip Morris, Senior Engineer
US Mail:  Software Options, Inc., 22 Hilliard St., Cambridge MA 02138
Internet:  ········@harvard.harvard.edu
UUCP:     ...!harvard!soi!chip                   Phone:    (617) 497-5054

From: Dorai Sitaram
Subject: readmacros in CL: getting "[", "]" to work as "(", ")"
Date: 
Message-ID: <2848@kalliope.rice.edu>
Could someone please tell me how to define brackets ("[", "]") as
macro characters in CommonLisp so that they have the same effect as
the usual parens (but make for more readable code)? 

E.g., (let ([x 2]) (+ x x)) should parse as (let ((x 2)) (+ x x)).

Since this is about the only place where I'll ever (?) have to mess
with tricky readmacros, and the chapter on Input/Output in CLtL is way
too humongous right now, I request indulgence for not figuring it out
for myself.

Email would be divine.

--dorai
From: Eric A. Raymond
Subject: Re: readmacros in CL: getting "[", "]" to work as "(", ")"
Date: 
Message-ID: <1053@ptolemy.arc.nasa.gov>
In article <····@kalliope.rice.edu> ·····@titan.rice.edu (Dorai Sitaram) writes:
>Could someone please tell me how to define brackets ("[", "]") as
>macro characters in CommonLisp so that they have the same effect as
>the usual parens (but make for more readable code)? 


Here goes, but I bet you'll never use them if you let your editor do
your formatting (and are too lazy to rewrite the indenter).  

;;; This may reference LISPM specific code

(defun bracket->list-reader (stream sub-char)
  "This allows you to use the characters [ and ] to delimit lists.
  This is especially useful when using nested list structures.  (i.e.
  (let ([this 1] [that 2]) (+ this that)) ) One drawback is that the
  editor will not flash the opening/closing bracket like it will a
  parenthesis.  Also, it will not catch unbalanced brackets or indent
  some special forms properly.  Hint: Use brackets for inner most
  forms (i.e. (let ([a 1]) ) not (let [(a 1)])) Do NOT mix parenthesis
  and brackets."
  (declare (ignore sub-char))
  (values (read-delimited-list #\] stream t)))
(set-macro-character #\[ #'bracket->list-reader T)
(set-macro-character #\] (get-macro-character #\)))


Here's something for progn's:


(defun curly-brace->progn-reader (stream sub-char)

  "This allows a shorthand for progn (ala C). Uses balance pairs of {}
   to delimit progns."
  
  (declare (ignore sub-char))
  (list* 'progn (read-delimited-list #\} stream t)))
(set-macro-character #\{ #'curly-brace->progn-reader T)
;;; This prevents } from being part of form
(set-macro-character #\} (get-macro-character #\)))



-- 
Eric A. Raymond  (·······@pluto.arc.nasa.gov)
Nothing left to do but :-) :-) :-)
From: Marty Kent
Subject: Re: (actually none) Some problems with Coral Allegro CL
Date: 
Message-ID: <28417@ucbvax.BERKELEY.EDU>
I just want to get a bit more realistic a tone in this thread.  While I
do the majority of my programming nowadays with Allegro on a Mac II, and I
think it's a quite decent system, it's by no means free from bugs.  Parts
of the low-level system interface are a bit screwed up (Allegro throws up
on pointers into ROM, for instance most pointers returned by calling
GetTrapAddress cause errors), the inspector is subject to cause system
divide-by-zero errors on a fairly regular basis, there are problems with
the scrolling capabilities of table-dialog-items, etc. etc. 

I don't mean to run the system down; I use it on a daily basis and I
certainly don't regret making the commitment to base several large
development efforts in it.  But there are more than enough holes (the
above list is just off the top of my head, by no means exhaustive) in the
system to "keep life interesting..."


Marty Kent  	Sixth Sense Research and Development
		415/642 0288	415/548 9129
		·····@dewey.soe.berkeley.edu
		{uwvax, decvax, inhp4}!ucbvax!mkent%dewey.soe.berkeley.edu
Kent's heuristic: Look for it first where you'd most like to find it.