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: