X-Git-Url: https://code.delx.au/gnu-emacs-elpa/blobdiff_plain/d78bc26f8a2fec19df8f7ba9084cd59d4e4e8bc5..9e2de34d6c42dc54148303b334dea23e630be2ba:/README diff --git a/README b/README index 89a470085..097e43049 100644 --- a/README +++ b/README @@ -1,153 +1,116 @@ -SML-MODE (3.3b) -- Major Emacs mode for editing Standard ML. +Copyright (C) 2010-2011 Free Software Foundation, Inc. +See the end of the file for license conditions. - 3.3(beta) because i really am looking at the indentation algorithm, - but the new features mentioned below are stable -- modulo bugs. -Files: +This branch contains the sources, deployment scripts, and auxilliary +files for the Emacs Lisp package archive (elpa.gnu.org). - sml-mode.el (SML mode elisp code) - sml-proc.el (ML interaction code, defaults to SML/NJ(0.93)) - sml-hilite.el (hilit19 functions) - sml-font.el (font-lock functions) - sml-menus.el (Simple menus) +This file explains the branch layout, how to add and edit packages, +and how to deploy the archive (either on elpa.gnu.org, or a local copy +for testing purposes). - sml-poly-ml.el (Additional library code to run Poly/ML) - sml-mosml.el (Additional library code to run Moscow ML) - sml-mode.info (Softcopy manual -- Info for (X)Emacs19) - sml-site.el (Simple, system-wide installation) +* DIRECTORY LAYOUT -Extras: +** admin/ -- scripts for administering the package archive. +** html/ -- HTML for the elpa.gnu.org website. +** packages/ -- source code for the packages. - sml-mode.dvi (Hardcopy manual) -Warning: +* PACKAGES - Tried and sort of tested on GNU Emacs 19.3{3,4} and XEmacs 19.14. +** Contents of the packages/ directory: +This directory holds the package sources, with one subdirectory for +each package. - XEmacs 19.11 is known to hang on sending regions to the interaction - buffer -- so leave the variable SML-TEMP-THRESHOLD = 0. +** To add a package: -System Installation Guide: +*** Add a simple (1-file) package as packages/NAME/NAME.el. - If you're installing this for others in the Emacs hierarchy, either +*** Add a multi-file package as a directory, packages/NAME. - go to the site-lisp directory and unpack the tar file there, +*** Commit your changes the usual way ("bzr add", "bzr commit", etc). - or create a subdirectory, say site-lisp/sml-mode, and copy at - least the sml*.el files into it. +Changes in the Bzr repository do not immediately propagate to the +user-facing archive (what users see when they do `M-x list-packages'). +That is done by deploying the archive. - In either case move or copy the file sml-site.el into the site-lisp - directory itself (or some other place that's on the user's default - load-path) and read and edit this file. All that's really needed is - to ensure that Emacs can find the sml*.el files and the .info file. - Tell your eager users to +* DEPLOYMENT - (requite 'sml-site) +** To use the package repository as a "site installation" of packages: - in their .emacses. Point them to the help file. At your option, byte - compile the sml*.el files (and sml-site.el too, if you like). + make site -Private Installation Guide: +This compiles and generates autoloads for all the packages in the +packages/ directory, and creates a site/ directory containing symlinks +to the package directories. - If you are having to install his in your home directory, say, create - a directory like "/home/xxx/lib/emacs/sml-mode", if your login name - is xxx, and copy the sml-*.el files to there. Then put: - - (setq load-path (cons "/home/xxx/lib/emacs/sml-mode" load-path)) - (autoload 'sml-mode "sml-mode" "Major mode for editing ML programs." t) +Now you have to add this site/ directory to `package-directory-list', +and all the packages will be available. - in your .emacs file. Add: +** To deploy the package repository as a remotely-accessible archive: - (setq auto-mode-alist - (append '(("\\.sml$" . sml-mode) - ("\\.sig$" . sml-mode) - ("\\.ML$" . sml-mode)) auto-mode-alist)) + make archive - to your .emacs so that whenever you visit a file with one of these - extensions you will automatically be placed in sml-mode. +or - Put the info file (sml-mode.info) somewhere convenient like - "/home/xxx/lib/emacs/sml-mode/sml-mode.info", and add + make archive-full - (setq sml-mode-info "/home/xxx/lib/emacs/sml-mode/sml-mode.info") +This deploys the packages to the archive/ directory. Unlike "make +site", this makes a full copy of the packages, and tars up multi-file +packages. - again to your .emacs -- this gives access to on-line help. This help - file gives lots of tips about configuring SML mode to suit your - preferences: C-c C-i will get you there from SML mode. +A full deployment also copies the admin scripts to archive/admin, and +fetches externally hosted packages (currently, the Org daily builds) +and adds them to the archive. - If you want SML mode to speak to Moscow ML or Poly/ML instead of - SML/NJ, just add something like this to your .emacs: +** To access a deployed archive - (defun my-mosml-setup () "Configure inferior SML mode for Moscow ML" - (load-library "sml-mosml")) - (add-hook 'inferior-sml-load-hook 'my-mosml-setup) +To access the archive via HTPP, have a symlink (say) /var/www/packages +pointing to DEST/packages, and set up Emacs with - so that when you M-x sml you'll get mosml instead. + (setq package-archives '(("new-elpa" . "http://foo.com/packages"))) -New in SML mode Version 3.3 (feedback welcomed on this): +You can also access the archive via normal file access. Such "local +archives" are useful for debugging: - 1 + (setq package-archives '(("local-elpa" . "DEST/packages"))) - implemented some multi-frame handling capabilities, specifically so - sml runs in a dedicated window. this is more complex than it needs to - be because of XEmacs... +** Notes specific to elpa.gnu.org - the variable SML-DEDICATED-FRAME defaults to t if running under a - window system; set it to nil in SML-LOAD-HOOK if you want the old - split window behaviour back. +The way things are set up on this machine, we refresh the archive by +logging in (login access set up by FSF admins), and - 2 +su elpa +cd ~elpa/elpa +bzr up - debugged SML-NEXT-ERROR a bit, and improved it to echo the error - message in the minibuffer (if possible) and highlight the region in - which the error was found (if a suitable character range was given). +Then make a full archive deployment, as discussed above. The symlink +/var/www/packages points to the staging package directory under +/home/elpa/. - the variable SML-ERROR-OVERLAY controls whether or not to highlight - (default is yes); set this to nil in SML-MODE-HOOK to switch this - off. +The Org mode dailies are also fetched and added by the script +admin/org-synch.sh, run as a cron job. - SML-NEXT-ERROR won't always raise the inferior ML buffer's frame; it - only does so if there's no window already showing the buffer, or if - there's an error message it can't understand. i think! + +This file is part of GNU Emacs. - 3 +GNU Emacs is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. - support for Moscow ML -- see sml-mosml.el. +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. - 4 +You should have received a copy of the GNU General Public License +along with GNU Emacs. If not, see . - forms (aka, templates or macros) insertion semantics have changed - because there were bugs. maybe there still are, but anyway: by - default C-c C-m inserts the macro at point, C-u C-c C-m will do a - newline-and-indent before inserting the macro. - - abstractions are history, and you can play with extending the - collection of builtin macros to your heart's content. lookup the - function SML-ADDTO-FORMS-ALIST, and the variable SML-FORMS-ALIST. - - 5 - - drag-and-droppishness, without the drop: SML-DRAG-MOUSE is bound to - M-S-down-mouse-1; if you drag the mouse over a region it will be - magically sucked into the ML buffer (like C-c C-r, only you don't - have to C-@ first). this might be flakey as it heavily depends on - the underlying mouse-drag/track-mouse semantics of the various - Emacses out there. can't do much about that, sorry. - - 6 - - anything else i've forgotten already! - -To Do: - - 0 - - indentation is hopeless for sequential code (semicolons). this needs - attention; indeed all the indentation code does. Ian Zimmerman's very - excellent (looking) indentation code for caml-mode may point the way - forward. or we all go over to programming in Lisp instead of ML... - -Matthew Morley -05/97 + +Local variables: +mode: outline +paragraph-separate: "[ ]*$" +end: