diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..df93662 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +_build/ +/utop-*.tar.gz +/setup.data +/setup.log +/setup.exe +/setup-dev.exe +/man/*.gz +/src/lib/uTop_version.ml diff --git a/CHANGES b/CHANGES deleted file mode 100644 index 6a15ac3..0000000 --- a/CHANGES +++ /dev/null @@ -1,55 +0,0 @@ -===== 1.2.1 (2012-07-31) ===== - - * fix: do not expunge Toploop - * install a non-expunged version of utop: utop-full - -===== 1.2 (2012-07-30) ===== - - * ocaml 4.00 compatibility - * prevent findlib from being initialized twice - * better highlighting of errors - * automatically insert Lwt_main.run for - toplevel expressions of type 'a Lwt.t - * better camlp4 support - ** parse quotations and antiquotations to - handle completion inside them - ** better support revised syntax - * emacs mode improvements - ** various fixes - ** highlight errors - ** add a menu - ** add interactive list of findlib packages - ** packages can be pre-loaded via the file variable - "utop-package-list" - ** better tuareg integration - ** typerex integration - ** allow to complete using the toplevel environment - in a tuareg buffer - ** allow to change the utop command - ** use the same history as the terminal mode - ** follow output of ocaml - -===== 1.1 (2010-08-06) ===== - - * add completion on labels - * add completion on methods - * smarter completion on record fields - * fix a bug in the lexer - * improvement for the emacs mode: - ** now pressing Tab really complete input - ** when sending input from a tuareg buffer, the cursor follow the - end of buffer in all utop windows - ** fix usage of threads - * add help - * add manual pages - * show more information in the prompt: - ** show the current value of the macro counter - ** show the nnumber of key pressed since the beginning of a macro - when recording a macro - ** show intermediate key sequence - * better support for light colors terminals - * add colors for module name and directives - * add UTop.smart_accept to send only lines terminating with a ";;" token - * search for compiler libraries at configure time - * add a script to install compiler libraries - * fix compatibility with ocaml 3.13 diff --git a/CHANGES.md b/CHANGES.md new file mode 100644 index 0000000..364ce0e --- /dev/null +++ b/CHANGES.md @@ -0,0 +1,58 @@ +1.2.1 (2012-07-31) +------------------ + +* fix: do not expunge `Toploop` +* install a non-expunged version of utop: `utop-full` + +1.2 (2012-07-30) +---------------- + +* ocaml 4.00 compatibility +* prevent findlib from being initialized twice +* better highlighting of errors +* automatically insert `Lwt_main.run` for + toplevel expressions of type `'a Lwt.t` +* better camlp4 support + * parse quotations and antiquotations to + handle completion inside them + * better support revised syntax +* emacs mode improvements + * various fixes + * highlight errors + * add a menu + * add interactive list of findlib packages + * packages can be pre-loaded via the file variable + `utop-package-list` + * better tuareg integration + * typerex integration + * allow to complete using the toplevel environment + in a tuareg buffer + * allow to change the utop command + * use the same history as the terminal mode + * follow output of ocaml + +1.1 (2010-08-06) +---------------- + +* add completion on labels +* add completion on methods +* smarter completion on record fields +* fix a bug in the lexer +* improvement for the emacs mode: + * now pressing Tab really complete input + * when sending input from a tuareg buffer, the cursor follow the + end of buffer in all utop windows + * fix usage of threads + * add help + * add manual pages + * show more information in the prompt: + * show the current value of the macro counter + * show the nnumber of key pressed since the beginning of a macro + when recording a macro + * show intermediate key sequence + * better support for light colors terminals + * add colors for module name and directives + * add `UTop.smart_accept` to send only lines terminating with a `;;` token + * search for compiler libraries at configure time + * add a script to install compiler libraries + * fix compatibility with ocaml 3.13 diff --git a/README b/README deleted file mode 100644 index 56c18bc..0000000 --- a/README +++ /dev/null @@ -1,83 +0,0 @@ -A universal toplevel for OCaml. - -url: https://forge.ocamlcore.org/projects/utop/ - -* Requirements: - - utop depends on the following packages: - - * findlib (http://projects.camlcity.org/projects/findlib.html) - * react (http://erratique.ch/software/react) - * lwt (http://ocsigen.org/lwt/) - * camomile (http://camomile.sourceforge.net/) - * zed (http://forge.ocamlcore.org/projects/zed/) - * lambda-term (http://forge.ocamlcore.org/projects/lambda-term/) - - Lwt must be compiled with react support, configure it with: - - $ ./configure --enable-react - - utop also requires OCaml compiler libraries. If you are using - debian, they are available as the package ocaml-compiler-libs, if - you are using godi, they are installed by default. If you installed - ocaml by hand, you can run the script utils/install-compiler-libs.sh. - -* Installation: - - To compile and install lambda-term just type: - - $ ocaml setup.ml -configure - $ ocaml setup.ml -build - $ ocaml setup.ml -install - - If you get the development version of utop you must obtain oasis - (http://oasis.forge.ocamlcore.org/). - -* Usage: - - To use utop, simply run: - - $ utop - - utop display a bar after the prompt which is used to show possible - completions in real-time. You can navigate in it using Alt+Left and - Alt+Right, and select one completion using Alt+Tab. - -* Customization: - - To add colors to utop, copy one of the files utoprc-dark or - utoprc-light to ~/.utoprc. utoprc-dark is for terminals with dark - colors (such as white on black) and utoprc-light is for terminals - with light colors (such as black on white). - - You can also customize the prompt of utop by setting the reference - UTop.prompt. - -* Integration with emacs: - - To use utop in emacs, add the following line to your ~/.emacs file: - - (autoload 'utop "utop" "Toplevel for OCaml" t) - - Then you can run utop by executing the command "utop" in emacs. - -* Integration with the tuareg/typerex mode: - - You can replace the default toplevel used by the tuareg or typerex - mode by utop, for that add the following lines to your ~/.emacs - file: - - (autoload 'utop-setup-ocaml-buffer "utop" "Toplevel for OCaml" t) - (add-hook 'tuareg-mode-hook 'utop-setup-ocaml-buffer) - (add-hook 'typerex-mode-hook 'utop-setup-ocaml-buffer) - - You can also complete text in a tuareg or typerex buffer using the - environment of the toplevel. For that bind the function - "utop-edit-complete" to the key you want. - -* Development: - - The last development version of utop can always be found in the - darcs repository hosted at darcs.ocamlcore.org: - - $ darcs get http://darcs.ocamlcore.org/repos/utop diff --git a/README.md b/README.md new file mode 100644 index 0000000..349a6c0 --- /dev/null +++ b/README.md @@ -0,0 +1,104 @@ +utop - a universal toplevel for OCaml +===================================== + +utop is an improved toplevel for OCaml. It can run in a terminal or +in Emacs. It supports line edition, history, real-time and context +sensitive completion, colors, and more. + +It integrates with the tuareg and typerex modes in Emacs. + +Dependencies +------------ + +* [OCaml](http://caml.inria.fr/ocaml/) (>= 3.12) +* [findlib](http://projects.camlcity.org/projects/findlib.html) +* [react](http://erratique.ch/software/react) +* [lwt](http://ocsigen.org/lwt/) (>= 2.4.0) built with react support +* [Camomile](http://github.com/yoriyuki/Camomile) (>= 0.8) +* [zed](http://github.com/diml/zed) (>= 1.2) +* [lambda-term](http://github.com/diml/lambda-term) (>= 1.2) + +For building the development version, you also need to install +[oasis](http://oasis.forge.ocamlcore.org/) (>= 0.3.0). + +utop also requires OCaml compiler libraries. Since OCaml 4.00 they are +already installed, for previous versions: + +* if you are using debian, they are available as the package + ocaml-compiler-libs, +* if you are using godi, they are installed by default, +* if you installed ocaml by hand, you can run the script + `utils/install-compiler-libs.sh`. + +Installation +------------ + +To build and install Lambda-Term: + + $ ./configure + $ make + $ make install + +### Documentation and manual pages _(optional)_ + +To build the documentation: + + $ make doc + +It will then be installed by `make install`. + +### Tests _(optionnal)_ + +To build and execute tests: + + $ ./configure --enable-tests + $ make test + +Usage +----- + +To use utop, simply run: + + $ utop + +utop display a bar after the prompt which is used to show possible +completions in real-time. You can navigate in it using `Alt+Left` and +`Alt+Right`, and select one completion using `Alt+Tab`. + +Customization +------------- + +To add colors to utop, copy one of the files `utoprc-dark` or +`utoprc-light` to `~/.utoprc`. `utoprc-dark` is for terminals with +dark colors (such as white on black) and `utoprc-light` is for +terminals with light colors (such as black on white). + +You can also customize the prompt of utop by setting the reference +`UTop.prompt`. + +Integration with emacs +---------------------- + +To use utop in emacs, add the following line to your ~/.emacs file: + +```scheme +(autoload 'utop "utop" "Toplevel for OCaml" t) +``` + +Then you can run utop by executing the command `utop` in emacs. + +Integration with the tuareg/typerex mode +---------------------------------------- + +You can replace the default toplevel used by the tuareg or typerex +mode by utop, for that add the following lines to your `~/.emacs` file: + +```scheme +(autoload 'utop-setup-ocaml-buffer "utop" "Toplevel for OCaml" t) +(add-hook 'tuareg-mode-hook 'utop-setup-ocaml-buffer) +(add-hook 'typerex-mode-hook 'utop-setup-ocaml-buffer) +``` + +You can also complete text in a tuareg or typerex buffer using the +environment of the toplevel. For that bind the function +`utop-edit-complete` to the key you want. diff --git a/_oasis b/_oasis index d6f4bb1..41468fc 100644 --- a/_oasis +++ b/_oasis @@ -137,6 +137,6 @@ Document "utoprcs" # +-------------------------------------------------------------------+ SourceRepository head - Type: darcs - Location: http://darcs.ocamlcore.org/repos/utop - Browser: http://darcs.ocamlcore.org/cgi-bin/darcsweb.cgi?r=utop;a=summary + Type: git + Location: https://github.com/diml/utop.git + Browser: https://github.com/diml/utop diff --git a/boring b/boring deleted file mode 100644 index 8ec1466..0000000 --- a/boring +++ /dev/null @@ -1,5 +0,0 @@ -(^|/)_build($|/) -^utop-.*\.tar\.gz$ -^setup\.data$ -^setup\.log$ -^src/lib/uTop_version.ml$ diff --git a/dist b/dist new file mode 100755 index 0000000..ae5efa6 --- /dev/null +++ b/dist @@ -0,0 +1,38 @@ +#!/bin/bash +# +# dist +# ---- +# Copyright : (c) 2012, Jeremie Dimino +# Licence : BSD3 +# +# Script to build the release + +set -e + +# Extract project parameters from _oasis +NAME=`oasis query Name 2> /dev/null` +VERSION=`oasis query Version 2> /dev/null` +PREFIX=$NAME-$VERSION +ARCHIVE=$(pwd)/$PREFIX.tar.gz + +# Temporary directory +DIR=$(mktemp -t -d dist.XXXXXXXXXX) +trap "rm -rf $DIR" EXIT + +# Copy files into the temporary directory +git archive --format=tar --prefix $NAME-$VERSION/ HEAD | tar xf - -C $DIR + +cd $DIR/$PREFIX + +# Generate files +oasis setup + +# Set release mode in the Makefile +sed -i 's/^SETUP := setup-dev.exe.*/SETUP := setup.exe/' Makefile + +# Remove this script +rm -f dist + +# Create the archive +cd .. +tar czf $ARCHIVE $PREFIX diff --git a/dist.sh b/dist.sh deleted file mode 100755 index 8363cf5..0000000 --- a/dist.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -NAME=`oasis query Name 2> /dev/null` -VERSION=`oasis query Version 2> /dev/null` -DARCS_REPO=`pwd` -export DARCS_REPO - -exec darcs dist --dist-name $NAME-$VERSION diff --git a/predist.sh b/predist.sh deleted file mode 100755 index 9ceef43..0000000 --- a/predist.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -# Generate CHANGES.darcs -[ -d "$DARCS_REPO" ] && darcs changes --repodir "$DARCS_REPO" > CHANGES.darcs - -# Add oasis stuff -oasis setup - -chmod +x utils/install-compiler-libs.sh - -# Cleanup -rm -f predist.sh boring dist.sh