package utop

  1. Overview
  2. Docs
Universal toplevel for OCaml

Install

Dune Dependency

Authors

Maintainers

Sources

utop-2.14.0.tbz
sha256=0fd5a9bc5b458524a71463a1fe0cd16f9b7be13673ae303118b7216e0d273ba9
sha512=d64a5ab671424279be13ebd080deac7ee46e2c9bc3abcfc37a6dff164124cc3abc52801527c35d9160ec868f9b8f334880026aaeaad02e507112fd8392094845

CHANGES.md.html

2.14.0 (2024-02-26)

  • Add support for OCaml 5.2 (#470, fixes #466, @leostera, @ManasJayanth, @huwaireb)

2.13.1 (2023-07-07)

  • Fix unavailable expunge on Windows (#447, @jonahbeckford)

2.13.0 (2023-07-03)

  • Fix behavior of utop -stdin (#434, fixes #433, @tuohy)

  • Handle bounds with Zed.next_error (#442, @tmattio)

  • Load files from XDG directories (the legacy paths still work). (#431, @Skyb0rg007)

  • Remove deprecated values prompt_continue, prompt_comment, smart_accept, new_prompt_hooks, at_new_prompt (#427, @emillon)

  • Require OCaml 4.11.0 or newer. (#444, @emillon)

2.12.1 (2023-04-21)

  • Fix regression with unit qualification when a Unit module is in scope with no () constructor (#429, fixes #428, @emillon)

  • emacs: add completion-at-point implementation (#406, fixes #261, @j-shilling)

2.12.0 (2023-04-17)

  • Add support for OCaml 5.1 (#421, @emillon)

  • Mark prompt_continue, prompt_comment, smart_accept, new_prompt_hooks, at_new_prompt as deprecated (they have been documented as such since 2012 and most of them are ignored) (#415, @emillon)

  • Qualify () constructor in generated expressions. (#418, fixes #417, @emillon)

2.11.0 (2023-01-05)

  • Bump the compatibility to 4.08+ (#393 @emillon)

  • Load @toplevel_printer annotated printers for functors (#378 @metavinek)

  • Do not display a backtrace when exiting normally (#399 #398 @emillon)

2.10.0 (2022-10-06)

  • Use dependencies compatible with OCaml 5:

    • Use zed 3.2.0, based on uucp, uutf, and uuseg instead of camomile

    • Use logs.lwt instead of lwt_logs

2.9.2 (2022-06-15)

  • Add support for OCaml 5.0 (#377 @dra27)

2.9.1 (2022-03-28)

  • Add support for OCaml 5.0 (#371 @favonia)

2.9.0 (2021-12-09)

  • Add support for OCaml 4.14 (#360 @kit-ty-kate)

  • Document options in utop(1) manpage (#364 #365 @lindig)

2.8.0 (2021-06-18)

  • If the current working directory is the home directory, then do not load .ocamlinit (@hyphenrf @copy #338)

  • With OCaml 4.12.0 and later, the toplevel uses the toplevel state to exit with the right status code (#348 @octachron)

  • Fix color highlight for errors (#350 @chripell)

  • Add support for OCaml 4.13 (#353 @kit-ty-kate)

Emacs mode fixes:

  • Company text-completion fixes (@leungbk #340)

  • utop-query-arguments always returns (utop-arguments) whether it sets the utop-command or not (@dansanduleac #347)

  • Fix completion returning bogus candidates (#352 @chripell @rgrinberg)

2.7.0 (2021-01-06)

  • add support for OCaml 4.12 (@emillon, #339)

2.6.0 (2020-05-30)

  • compatible with OCaml 4.11 (@kit-ty-kate, #322)

  • switch to the new parser exposed since 4.11

  • Vi edit mode: register support

2.5.0 (2020-04-26)

Additions

  • add #edit_mode_vi and #edit_mode_default mode to set the editing mode(@kandu)

  • Backport the #use_output directive (@diml, #313)

General

  • Load init file from ~/.config/utop/init.ml as per XDG conventions (@copy, #144)

  • Add OCaml 4.09 and 4.10 to the CI matrix (@kit-ty-kate, #310)

  • Add documentation for dune utop usage in emacs (@samarthkishor, #307)

2.4.3 (2019-12-31)

  • add support for OCaml 4.10

2.4.2 (2019-09-18)

  • Add support for OCaml 4.09.0 (@octachron @avsm, #299)

2.4.1 (2019-08-09)

General

  • Remove camlp4 remnants (@XVilka, #290) (@kandu, #293)

  • Allow to statically link utop (@diml, #285) (@hongchangwu, #286)

Misc

  • Remove broken elisp (m-plamann, #292)

  • Add OCaml 4.08 build in Travis CI (XVilka, #291)

2.4.0 (2019-05-17)

General

  • Better support for wide and combined glyph (@kandu)

  • Added tips for simpe prompt without fancy features (Marshall Abrams, #279)

  • Correct quoting for Windows command shell (Dmitry Bely, #272)

Additions

  • 4.08 compatibility (#284)

  • module UTop: add get_load_path and set_load_path to manage the include directories (#284)

Breaking

  • module UTop: val load_path : string list ref is removed (#284)

2.3.0 (2019-01-31)

The new feature in this release is to automatically install printers marked with [@@ocaml.toplevel_printer] (#269 @diml). Adding this annotation to your libraries will remove the need to have a separate top package to install the printers.

For example, in the uri library, the old printing function for Uri.t was:

val pp_hum : Format.formatter -> t -> unit

Just adding this annotation results in Uri.t values being automatically pretty printed in this version of utop.

val pp_hum : Format.formatter -> t -> unit [@@ocaml.toplevel_printer]
  • Add cool screenshot to README (#259 @rizo) and update links (#257 @bobot)

  • Improve robustness by using more tail-recursive functions (#251 @gpetiot)

  • Remove deprecation warnings in newer compilers (#246 @ncihnegn)

  • Minimum OCaml version supported is now 4.03.0 (#254 @XVilka)

  • Publish API documentation online and add doc: entry to opam file (#270 @avsm)

  • Port build to dune from jbuilder (#268 @avsm)

  • Upgrade local opam metadata to opam 2.0 format (#268 @avsm)

2.2.0 (2018-07-15)

  • 4.07.0 compatibility (#238, @hcarty)

  • Fix compatibility with latest tuareg-mode (#241, @Wilfred)

  • Do not expand include directories (#242, @sliquister)

2.1.0 (2018-02-28)

  • Add support for company-mode based completion in utop.el (#233)

2.0.2 (2017-11-07)

  • 4.06.0 compatibility (#221)

2.0.1 (2016-05-30)

  • Fix: restore the installation of utop.el (#210, Louis Gesbert)

2.0.0 (2016-05-26)

  • Add -implicit-bindings option to automatically bind expressions to names _0, _1 and so on. For example, 3 + 4;; becomes let _0 = 3 + 4;; (#161, #193, Fabian Hemmer)

  • Add tab completion for #mod_use (#181, Leonid Rozenberg)

  • Mention #help in #utop_help (#190, Fabian Hemmer)

  • Add #utop_stash and #utop_save to save the session to a file (#169, #199, Christopher Mcalpine and Fabian Hemmer)

  • Add support for reason in the emacs mode (#206, Andrea Richiardi)

  • Fix a bug where utop wouldn't apply ppx rewriters when running in emacs (Bug report: #192, fix: #202, Deokhwan Kim)

  • Refactor the use of hooks to support the various OCaml emacs mode (#201, Andrea Richiardi)

  • Drop support for camlp4/camlp5

  • Drop support for OCaml <= 4.01

  • Switch the build system to jbuilder

  • Resurect UTop_main.interact

1.19.3 (2016-08-15)

  • fix compatibility with 4.04.0+beta1

1.19.2 (2016-04-25)

  • Make ppx_tools dependency optional

1.19.1 (2016-04-18)

  • fix compatibility with 4.03.0+beta2

1.19 (2016-04-07)

  • allow to configure the external editor with UTop.set_external_editor

  • add UTop.set_margin_function to allow users to set the margin for the toplevel outcome. It is 80 by default

  • better for quoted strings ({|...|})

  • add a #pwd directive

  • experimental support for running utop in the middle of a program with UTop_main.interact

  • fix Async integration (automatic waiting of _ Deferred.t value). The new version is more robust against future change in Async

  • fix use of the non-existing replace-in-string function in the emacs mode (Syohei Yoshida)

  • fallback to Latin-1 for invalid UTF-8 sequences in the compiler output

1.18.2 (2016-03-02)

  • fix compatibility with OCaml 4.03

1.18.1 (2015-11-03)

  • fix compatibility with findlib 1.5.6

1.18 (2015-06-23)

  • emace mode improvements (Mads Hartmann Jensen)

    • add utop-minor-mode to make integration with major modes cleaner

    • clean-up of the elisp code

  • add UTop.end_and_accept_current_phrase to avoid typing ;; at the end of every phrases

  • fix compatibility with OCaml trunk

1.17 (2014-12-12)

  • re-export Config.load_path as UTop.load_path (Peter Zotov)

  • enable utop-command to be buffer-local (Mads Hartmann Jensen)

  • fix 4.01 compatibility (Peter Zotov)

1.16 (2014-10-20)

  • make camlp4 support optional

  • require OCaml 4.01.0 or newer

  • implement wrapper for -safe-string

1.15 (2014-08-30)

  • fix compatibility with OCaml 4.02.0

1.14 (2014-07-05)

  • fix compatibility with OCaml 4.00.1 and earlier

1.13 (2014-07-04)

  • don't try to colorize the output when there is too much

  • add auto-completion for the #ppx directive

  • add support for -ppx, -dparsetree and -dsource

  • fix compatibility with OCaml 4.02

  • update pa_optcomp

  • do not display the camlp4 welcome message

1.12 (2014-04-21)

  • supports -require for scripts

  • support for React 1.0.0

  • make utop.el compatible with melpa: http://melpa.milkbox.net

1.11 (2014-02-11)

  • update the async hook following the renaming of Async_core to Async_kernel

  • fix tab completion not working on some emacs

  • complete #load_rec the same way as #load

1.10 (2013-12-10)

  • add the -require command line argument to specify packages on the command line

1.9 (2013-11-26)

  • automatically load all files in $OCAML_TOPLEVEL_PATH/autoload at startup. Can be disabled with autoload: false in ~/.utoprc or -no-autoload.

  • fix #38: handle errors from custom camlp4 ast filters

  • fix #7: avoid a stack overflow in UTop_lexer

1.8 (2013-10-25)

  • handle new syntax errors

  • extend #typeof to values and modules. Thanks to Thomas Refis for this feature

1.7 (2013-08-08)

  • fix compilation with ocaml < 4.01

1.6 (2013-08-07)

  • hide topfind messages by default

  • more predefined prompts available via #utop_prompt_XXX

  • fix a bug in #require when passing multiple packages

  • display errors in ~/.lambda-term-inputrc nicely

  • doc update

  • fix an issue when using first-class modules

1.5 (2013-04-28)

  • when evaluating a region/buffer in emacs, evaluate all phrases instead of just the first one. Thanks to Matthias Andreas Benkard for this feature

  • change the default prompt from # to $ to match the standard toplevel

  • add the option UTop.show_box to allow one to hide the completion bar

  • enhance the lwt/async hooks for automatically waiting on a thread/deferred. Hooks were not triggered when the type of the expression was a type alias

1.4 (2013-03-09)

  • hide identifiers starting with _. This can be disabled with UTop.set_hide_reserved false.

  • automatically load camlp4 parsing (with original syntax) when trying to load a syntax extension

  • fix a small bug when using camlp4, causing an exception to be raised when pressing Enter in the middle of a comment

1.3 (2013-01-29)

  • allow to automatically wait for ascync deferred values

  • added the -short-paths options for OCaml >= 4.01.0 (and make it the default)

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 number 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

OCaml

Innovation. Community. Security.