allegro-cl archives 1997-4-2 | home index prev H thread-prev K thread-next J next L |
From: Bill Dubuque Subject: future of Editi [was: Any port of the ACLW Editi interface to Gnu Emacs 19.34.1?] Date: 1997-4-2 15:54 : Date: Wed, 02 Apr 1997 01:21:34 -0600 : From: Dale Arntson <uchicago.edu at d-arntson> : : Has anyone ported the ACLW Editi for Win-Emacs to Gnu Emacs 19.34.1? : I find Win-Emacs 1.5 to be too outdated and too unstable on NT 4.0 to use. This is a good opportunity to discuss future plans for Editi (vs. FI, ilisp, etc), but first let me address your specific concerns: Editi is not yet ported to FSF Emacs, although I have discussed this with Franz and they may well fund such work in the near future. Many ACLW users are using Win-Emacs + Editi under NT 4.0. We are not aware of any problems with stability. Please report any problems you encounter to <pearlsoft.com at tech> (or <Franz.com at Editi> for Editi specific problems). [Version 1.35 of Win-Emacs was slow and unstable under NT, but the latest version 1.5 avoids such problems since it is a true Win32s app]. Win-Emacs is indeed not the latest version of XEmacs, but this shouldn't affect its use as an IDE for Lisp software development (i.e. Editi usage). If there are particular features you find missing, incompatible, etc. please feel free to send e-mail to the above addresses so your request may be considered for the next release of Win-Emacs and/or Editi. Note that version 1.3 of Editi will soon be superseded by version 3.0, which is currently in beta test. Version 3.0 offers much new functionality versus version 1.3 (I've appended below an extract from the Editi changes.txt file). Anyone still using the toy ACL resident editor is now underpowered and will be very seriously underpowered after the release of Editi version 4.0 -- which will be a next generation interface. As planned, version 4.0 of Editi will not only run on FSF Emacs, but will be the "Grand Unified Emacs <-> Lisp Interface", subsuming all functionality of existing interfaces (Franz FI, GNU ilisp, etc). Additionally it will include many powerful next-generation features that far surpass any of the older Emacs <-> Lisp interfaces. Just when version 4.0 appears will depend upon when I can talk Franz into funding the work. If you'd like to see this happen soon then be sure to communicate your opinions to Franz so that they may correctly assess the needs of the Allegro Lisp user community. By the way, per Franz, <cs.berkeley.edu at allegro-cl> is now the recommended forum for discussion of Editi. Use <franz.com at editi> for bug-reports. -Bill Dubuque (author of Editi) Changes in Editi version 3.0 (vs. version 1.3) ============================================= o Symbol completion is available in Lisp Mode buffers Tab instantly completes the symbol at point using documented ACL symbols and any tags completion table. Another Tab will enter tags-apropos, and a Tab from tags-apropos will exit back to the original state. Sh-Tab in Lisp Mode does a tags-apropos 'grep', i.e. finds matches that begin anywhere within a tags symbol instead of just those matches that begin at the start of a symbol (as does Tab completion). Sh-Tab within a tags-apropos buffer toggles between the two types of matching: start vs. substring. See section [14] of the README for further detail. ACL WinHelp topics also enjoy analogous full completion (cf. below). o Changes Mode: tracking changes not yet evaluated in ACL Changes Mode is a new minor mode that keeps track of all changed top-level forms that have not yet been evaluated in the external ACL process. Use 'M-x changes-mode' to enter/exit changes mode in a Lisp Mode buffer. Use C-8 C-E to eval in ACL all changed forms in the current buffer. Use C-c C-p and C-c C-n to go to the prior and next changed form, and C-c C-u to change the state of a form from changed to unchanged. See Section 15 of the README for further detail. o ACL WinHelp is now available via M-D, with completion over topics Full completion is available over all help topics when typing in the help topic in the minibuffer. Sh-Tab switches from a start-of-word match to a substring match anywhere (grep); Tab switches back. E.g. Try 'M-1 M-D get? Sh-Tab Tab'. You must have an ACL process loaded to use acl-winhelp (M-D). The completions listing generated by M-D functions as a menu: Button2 browses: shows the help topic without exiting this M-D command. Button1 jumps: does the same, but instead exits the M-D command For example, to browse all topics containing the string 'vector' type: C-u M-D vector ? Shift-TAB, then click Button2 on various topics. M-D parses format directives: try typing M-D at various points while you are at various directives within format strings. The precise manual page for each format directive will be located. o Ediff: visual interface to 'diff', quickly browse source changes Ediff, a visual interface to 'diff', has been ported to Editi. See the file "ediff.txt" for documentation. Instead of the command 'M-x diff' use 'M-x ediff' for spiffy visual diff's. Both 'ediff' and 'diff' have been extended to diff against autosave or backup files if invoked with no prefix arg: if invoked from a modified buffer, it is autosaved and compared against the last saved version, thus showing the changes since the last save. If the buffer is not modified, and there is a backup from this session, then the latest save is compared against the latest backup; otherwise you are prompted for the filenames. Specifying a prefix arg always results in a prompt for the filenames to diff. Thus to see what changes you've made to a file you are editing simply type 'M-x ediff RET', or 'M-x diff RET'. o New ACL Tools Commands Trace Commands arg > +1 C-u C-T build trace call to function at point (in minibuf) arg = +1 C-T trace function at point arg = 0 C-0 C-T display list of traced functions arg = -1 C-- C-T untrace function at point arg < -1 C--9 C-T build untrace call (default: all traced functions) repeated C-T C-T untrace function at point Breakpoint Commands arg > +1 C-u C-B build breakpoint call to function at point arg = +1 C-B breakpoint function at point arg = 0 C-0 C-B display list of breakpointed functions arg = -1 C-- C-B unbreakpoint function at point arg < -1 C--9 C-B build unbreakpoint call (all breakpointed functions) repeated C-B C-B unbreakpoint function at point Profile Commands arg > +1 C-u C-P build profile call to function at point arg = +1 C-P profile function at point arg = 0 C-0 C-P display list of profiled functions arg = -1 C-- C-P unprofile function at point arg < -1 C--9 C-P build unprofile call (all profiled functions) repeated C-P C-P unprofile function at point Results/Reset Commands arg > +1 C-u C-R build profile-results call to all profiled functions arg = +1 C-R profile-results of function at point arg = 0 C-0 C-R display list of traced,profiled,break'ed functions arg = -1 C-- C-R profile-reset function at point arg < -1 C--9 C-R build profile-reset call to all profiled functions Class Browsing arg = none C-C display class outline of symbol at point arg = 1 C-1 C-C browse superclasses of symbol at point arg = -1 C-- C-C browse subclasses of symbol at point arg = 2 C-2 C-C browse class methods of symbol at point arg = C-u C-u C-C build display class outline call (in minibuffer) arg = 11 C-11 C-C build browse superclasses call arg = -11 C--11 C-C build browse subclasses call arg = 22 C-22 C-C build call to browse class methods Generic Function Browsing Commands arg = none C-F browse generic function of symbol at point arg = any C-u C-F build call to browse generic function o ACL Evaluation and Compilation Command Enhancements ACL eval and compile commands now display output and results in a transient popup (or in the minibuffer if a single line). To suppress this display supply a negative prefix-arg, e.g. C-- C-E. To later review the prior output, toggle its display via C-z. All ACL eval and compile commands now take a prefix argument specifying the object to evaluate. If the region is inactive, then the prefix arg selects the evaluation object as follows: arg none the top-level form containing point, e.g. C-E arg C-u prompt and read an sexp from minibuffer, e.g. C-u C-E arg = 0, the symbol at point, e.g. C-0 C-E arg = 1, the sexp containing point (or just before/after point) arg = 4, the top-level form containing point (same as 'arg none') arg = 8, all changed forms in buffer (cf. Changes Mode above) arg = 16, the entire buffer, e.g. C-u C-u C-E, or C-16 C-E All the ACL eval/compile commands have been unified. In particular, the GNU eval/compile commands (C-c C-e, C-c C-c etc.) have been generalized to accept a region if active, else the current defun (top-level form), i.e. they're now bound to acl-eval-region-or-defun and acl-compile-region-or-defun respectively, the same as C-E. All accept prefix arguments as described just above. New command acl-schedule-next-command-in-background, alias &acl, bound to C-c C-&, schedules next ACL command in the background, which allows subsequent commands to interrupt it, vs. blocking. Use this command before lengthy ACL commands (e.g. compile-file) if you desire to execute other ACL commands in the interim. C-RET can be typed *within* a top-level form and still behaves correctly, evaluating and inserting the result. 'C-x u' undoes this, removing the output and bringing you back to the original point within the top-level form you evaluated. You can use this to quickly evaluate a form, for various values of sub-expressions. C-C is no longer a compile command; instead use C-E or C-c C-e or M-C-x (or C-c C-c or C-c C-x if editi-compile-via-compile-file is true and (rarely) you really desire compilation vs. evaluation; see the 'Technical Note' in README section [1] for more on this). o Editi now has a Menubar exposing much of its functionality. o Tags Occur Enhancements C-c C-c now jumps to the source buffer match in full-screen mode. M-, will resume to the tags-occur buffer, like any tags command. Sh-button1 on a highlighted occur match in a source buffer takes you back to the tags-occur buffer, just like M-, C-l C-l toggles match highlighting from within source buffers; Highlights are removed upon occur exit (C-RET, Tab or kill-buffer). Occur movement up/down functions now traverse a complete visible chunk per command, allowing more rapid traversal of matches. Occur output is now fontified. The default argument is now the symbol at point, just like M-. o Tags Apropos Enhancements Matches are now highlighted in the 'occur-source face. M-, will resume to the tags-apropos buffer, like any tags command. New commands: '_' or '-' toggle on/off use of the underline separator in favor of highlighting. The '\' command toggles on/off whether long lines are truncated or wrapped at end of line. Auto-tags now precisely locates auto-generated CLOS accessor def's, i.e. M-. and selections from tags completion menus will bring you to the precise definition line of the method within the defclass. o Popup Window Enhancements toggle-acl-popup-window has been moved from C-* to C-z, and the prior command on C-z, iconify-emacs, has been moved to C-x C-z. Clicking on the modeline of a transient popup window pins it up. Transient popups will stay up during window traversal and scrolling functions; isearch mode is also preserved by scrolling functions, e.g. you can type C-M-v to scroll the other or next window up without exiting isearch or a transient popup window. If after executing an external ACL command such as acl-apropos, you tire of waiting for the result and begin executing other commands, when the ACL result is received by Emacs, the popup window displaying it will no longer be transient, i.e. it will remain shown until explicitly removed via C-z. o Miscellaneous Enhancements New command reindent-lisp (from ilisp) is now on M-q in lisp-mode. This command will reindent the current top-level form, filling comments, and closing parentheses if needed. C-/ = quick-symbol-info, the same as in ACL. C-' = popup-mode-menu, just like Button3. Button3 on a modeline now has its own map and menu, mode-line-menu and mode-line map. DDE mode is no longer incorrectly forced on if it has been disabled via the 'M-x editi-dde-mode' command. ======== end of excerpt from Editi 3.0 changes.txt ======= |