utop/CHANGES.md

12 KiB

2.12.0 (unreleased)

  • 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) (#xxx @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)

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