- Fix unavailable expunge on Windows (#447, @jonahbeckford)
-
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)
-
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)
-
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)
- 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)
- 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
- Add support for OCaml 5.0 (#377 @dra27)
- Add support for OCaml 5.0 (#371 @favonia)
- Add support for OCaml 4.14 (#360 @kit-ty-kate)
- Document options in utop(1) manpage (#364 #365 @lindig)
- 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)
- add support for OCaml 4.12 (@emillon, #339)
- compatible with OCaml 4.11 (@kit-ty-kate, #322)
- switch to the new parser exposed since 4.11
- Vi edit mode: register support
- add
#edit_mode_vi
and#edit_mode_default
mode to set the editing mode(@kandu) - Backport the
#use_output
directive (@diml, #313)
- 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)
- add support for OCaml 4.10
- Add support for OCaml 4.09.0 (@octachron @avsm, #299)
- Remove camlp4 remnants (@XVilka, #290) (@kandu, #293)
- Allow to statically link utop (@diml, #285) (@hongchangwu, #286)
- Remove broken elisp (m-plamann, #292)
- Add OCaml 4.08 build in Travis CI (XVilka, #291)
- 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)
- 4.08 compatibility (#284)
- module
UTop
: addget_load_path
andset_load_path
to manage the include directories (#284)
- module
UTop
:val load_path : string list ref
is removed (#284)
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)
- 4.07.0 compatibility (#238, @hcarty)
- Fix compatibility with latest tuareg-mode (#241, @Wilfred)
- Do not expand include directories (#242, @sliquister)
- Add support for company-mode based completion in utop.el (#233)
- 4.06.0 compatibility (#221)
- Fix: restore the installation of
utop.el
(#210, Louis Gesbert)
- Add
-implicit-bindings
option to automatically bind expressions to names_0
,_1
and so on. For example,3 + 4;;
becomeslet _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
- fix compatibility with 4.04.0+beta1
- Make ppx_tools dependency optional
- fix compatibility with 4.03.0+beta2
- 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
- fix compatibility with OCaml 4.03
- fix compatibility with findlib 1.5.6
- emace mode improvements (Mads Hartmann Jensen)
- add
utop-minor-mode
to make integration with major modes cleaner - clean-up of the elisp code
- add
- add
UTop.end_and_accept_current_phrase
to avoid typing;;
at the end of every phrases - fix compatibility with OCaml trunk
- re-export
Config.load_path
asUTop.load_path
(Peter Zotov) - enable utop-command to be buffer-local (Mads Hartmann Jensen)
- fix 4.01 compatibility (Peter Zotov)
- make camlp4 support optional
- require OCaml 4.01.0 or newer
- implement wrapper for -safe-string
- fix compatibility with OCaml 4.02.0
- fix compatibility with OCaml 4.00.1 and earlier
- 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
- supports -require for scripts
- support for React 1.0.0
- make utop.el compatible with melpa: http://melpa.milkbox.net
- update the async hook following the renaming of
Async_core
toAsync_kernel
- fix tab completion not working on some emacs
- complete
#load_rec
the same way as#load
- add the
-require
command line argument to specify packages on the command line
- automatically load all files in
$OCAML_TOPLEVEL_PATH/autoload
at startup. Can be disabled withautoload: false
in~/.utoprc
or-no-autoload
. - fix #38: handle errors from custom camlp4 ast filters
- fix #7: avoid a stack overflow in UTop_lexer
- handle new syntax errors
- extend
#typeof
to values and modules. Thanks to Thomas Refis for this feature
- fix compilation with ocaml < 4.01
- 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
- 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
- hide identifiers starting with
_
. This can be disabled withUTop.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
- allow to automatically wait for ascync deferred values
- added the
-short-paths
options for OCaml >= 4.01.0 (and make it the default)
- fix: do not expunge
Toploop
- install a non-expunged version of utop:
utop-full
- 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
- 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