[comp.lang.eiffel] Bug in ARGUMENTS specification and other problems

weiner@novavax.UUCP (Bob Weiner) (02/03/90)

Has anyone else noticed that the specification for the argument count
feature in ARGUMENTS is off by one in Eiffel V2.2B?  The input parameter
classes I posted a few days ago use the correct indexing.

In trying to build E_CLASS, I found it is a client of E_DIRECTORY now
but this supplier class is nowhere to be found.  Can anyone provide help
on this?

I write multi-line feature specifications with precise formatting
conventions so when I produce class specs with 'short', I don't want it
to fill these lines.  But I also quote identifier names in comments with
Meyer's recommended quoting convention and I would like these to come
out italicized from short.  The problem is that the single option '-m'
both fills comments and italicizes identifiers.  Two separate options
are desperately needed in order for us to produce readable
documentation.  Doesn't anyone else find this a problem?

'ec' truly needs an option like 'es' that lets one specify the directory
in which the SDF resides.  Meyer highly recommends clustering classes
into different directories but ec provides no way to compile the class
from the directory in which it resides if the SDF is not also in the
same directory.  A cruel oversight that prevents us from having a simple
button push method of compiling.


-- 
Bob Weiner, Motorola, Inc.,   USENET:  ...!gatech!uflorida!novavax!weiner
(407) 364-2087

jos@cs.vu.nl (Jos Warmer) (02/05/90)

In article <1777@novavax.UUCP> weiner@novavax.UUCP (Bob Weiner) writes:

>out italicized from short.  The problem is that the single option '-m'
>both fills comments and italicizes identifiers.  Two separate options
>are desperately needed in order for us to produce readable
>documentation.  Doesn't anyone else find this a problem?

Yes, I do.



                                 Jos Warmer
				 jos@cs.vu.nl
				 ...uunet!mcvax!cs.vu.nl!jos
--
                                 Jos Warmer
				 jos@cs.vu.nl
				 ...uunet!mcvax!cs.vu.nl!jos

hws@icsi.Berkeley.EDU (Heinz Schmidt) (02/08/90)

In article <1777@novavax.UUCP>, weiner@novavax.UUCP (Bob Weiner) writes:

	 > conventions so when I produce class specs with 'short', I don't want it 
	 > to fill these lines. 
	...  	
	 > problem is that the single option '-m'
	 > both fills comments and italicizes identifiers.  Two separate options
	 > are desperately needed

Yes.  Also I'd like that short and flat go through the SDF file so we can get a quick
overview of what's available and how it is called this time (as compared to other OO
libraries). Moreover it would be nice to have some kind of apropos command (which
probably should be independent of the indexing stuff in Eiffel to make it less
dependent of special-purpose language features). Short, flat and apropos should use
same defaults as ec and friends do. 

	 > into different directories but ec provides no way to compile the class
	 > from the directory in which it resides if the SDF is not also in the
	 > same directory. 

Also True. For an Emacs 'single button' ec I include this from my Eiffel mode
extension, maybe it helps for some time.  

(defvar run-ec-args "" "<arguments for ec>") 
(defun class-compile (ARG) 
  "Calls ec (Eiffel compile).  By default, ec is called on the file associated to 
the current buffer.
With numeric argument 0 prompts for explicit command line arguments.
Other numeric arguments allow you to insert options or further class names to go
with ec of the current file."
  (interactive "P")
  (let* ((ec-output (get-buffer-create "*ec-output*"))
	 (ec-process (get-buffer-process ec-output))
	 (ec-args nil)
	 (curr-buffer (current-buffer))
	 (curr-name (buffer-file-name curr-buffer)))
    (if ec-process  
	(if (y-or-n-p "Kill current ec process? ")
	    (delete-process ec-process)
	  (error "Can't ec concurrently.")))
    (if (and (buffer-modified-p curr-buffer)
	     (y-or-n-p (format "Save file %s? " curr-name)))
	(progn (save-buffer) (message "")))
    ;; maybe prompt for args and dispatch according to numeric ARG
    (setq run-ec-args (if ARG (read-input "ec args: " run-ec-args) ""))
    (setq ec-args
	  (if (and ARG (zerop ARG)) run-ec-args (concat run-ec-args " " curr-name)))
    ;; switch to shell buffer and run ec
    (set-buffer ec-output) (erase-buffer)
    (insert "ec " ec-args "\n" )
    (set-buffer curr-buffer)
    (display-buffer ec-output)
    (eval   
     (append '(start-process "ec" ec-output "ec")
	     (str2argv ec-args)))))
(define-key eiffel-mode-map "\C-c\C-e" 'class-compile)

-- hws
-------------------------------------------------------------------------------
Heinz W. Schmidt                                     hws@icsi.berkeley.edu
International Computer Science Institute             (415) 643-9153   x175
1947 Center Street, Ste. 600                    /\/\|;; CLOS saves time and
Berkeley, CA 94704                              \/\/|-- Eiffel is faster