# Tuareg

> OCaml programming mode, REPL, debugger for Emacs

**Wikidata**: [Q114272130](https://www.wikidata.org/wiki/Q114272130)  
**Source**: https://4ort.xyz/entity/tuareg

## Summary
Tuareg is an OCaml programming mode, REPL, and debugger for GNU Emacs that provides integrated development environment features for OCaml programmers. It is free software that has been actively developed since 1997 and serves as the standard Emacs mode for OCaml development.

## Key Facts
- Tuareg is an Emacs mode specifically designed for OCaml programming, providing syntax highlighting, REPL integration, and debugging capabilities.
- Created by Albert Cohen in 1997, with the first version (1.00) released on January 8, 1997.
- It is free software distributed under terms that allow users to freely run, study, change, and distribute it and modified versions.
- Tuareg is part of NonGNU ELPA (Emacs Lisp Package Archive) since November 21, 2020.
- The software is maintained by Christophe Troestler (primary maintainer), Stefan Monnier, and original creator Albert Cohen.
- It is cross-platform software capable of operating on multiple computing platforms through GNU Emacs.
- Tuareg replaces the earlier Caml-Mode and is based on it, providing enhanced functionality for OCaml development.
- The source code is hosted on GitHub at https://github.com/ocaml/tuareg and is also available through GNU Savannah.

## FAQs
### Q: What is Tuareg used for?
A: Tuareg is an Emacs mode specifically designed for OCaml programming, providing syntax highlighting, REPL integration, and debugging capabilities within the Emacs environment.

### Q: Who created Tuareg and when was it first released?
A: Tuareg was created by Albert Cohen, with the first version (1.00) released on January 8, 1997. It has been actively developed since then.

### Q: Is Tuareg free software?
A: Yes, Tuareg is free software distributed under terms that allow users to freely run, study, change, and distribute it and modified versions.

### Q: How can I install Tuareg?
A: Tuareg is available through NonGNU ELPA (Emacs Lisp Package Archive) since November 21, 2020. It can also be installed from source code available on GitHub or GNU Savannah.

### Q: Who maintains Tuareg now?
A: Tuareg is currently maintained by Christophe Troestler (primary maintainer), Stefan Monnier, and original creator Albert Cohen.

## Why It Matters
Tuareg plays a crucial role in the OCaml development ecosystem by providing a mature, feature-rich Emacs interface for the language. Before Tuareg, OCaml programmers had limited options for integrated development environments within Emacs. Tuareg filled this gap by offering syntax highlighting, interactive REPL sessions, and debugging capabilities specifically tailored to OCaml's syntax and semantics. Its long history of development since 1997 demonstrates its reliability and importance to the OCaml community. As free software, it embodies the open-source philosophy and has become the standard Emacs mode for OCaml development, enabling programmers worldwide to efficiently write, test, and debug OCaml code within their preferred editor environment.

## Notable For
- Being the standard Emacs mode for OCaml development since its inception in 1997, predating many other language-specific Emacs modes.
- Providing comprehensive REPL integration that allows OCaml programmers to execute code snippets and evaluate expressions directly within Emacs.
- Offering debugging capabilities specifically designed for OCaml programs, distinguishing it from generic text editors.
- Having a long and stable development history with regular version updates since 1997, demonstrating its reliability and ongoing relevance.
- Being distributed through multiple channels including NonGNU ELPA, GitHub, and GNU Savannah, ensuring wide accessibility to OCaml developers.

## Body
### Overview
Tuareg is an Emacs mode specifically designed for OCaml programming, providing an integrated development environment within GNU Emacs. It offers syntax highlighting, REPL integration, and debugging capabilities tailored to OCaml's syntax and semantics.

### Development History
- Created by Albert Cohen in 1997
- First version (1.00) released on January 8, 1997
- Subsequent versions released regularly, including 1.10 (March 17, 1997), 1.12 (March 20, 1997), 1.20 (March 23, 1997), 1.27 (July 28, 1997), 1.30 (April 14, 1998), 1.31 (June 8, 1998), 1.32 (June 26, 1998), 1.33 (November 24, 1998), and 1.34 (December 15, 1998)
- Based on and replaces the earlier Caml-Mode (created in 1993)
- Added to NonGNU ELPA on November 21, 2020

### Technical Details
- Instance of: free software, software library (for GNU Emacs)
- License: Q27016754 (MIT License)
- Platform: GNU Emacs (cross-platform)
- Operating system: cross-platform
- Source code repository: https://github.com/ocaml/tuareg (primary), https://git.savannah.gnu.org/cgit/emacs/nongnu.git/tree/?h=elpa/tuareg
- Issue tracker: https://github.com/ocaml/tuareg/issues
- Website: https://github.com/ocaml/tuareg (primary), https://elpa.nongnu.org/nongnu/tuareg.html

### Distribution and Installation
- Distributed by: Emacs Lisp Package Archive (since November 21, 2020)
- Available as: emacs-tuareg (primary name), also known as tuareg-mode
- Package names in various distributions:
  - FreeBSD: lang/tuareg-mode.el
  - Gentoo: app-emacs/tuareg-mode
  - Ubuntu: elpa-tuareg, tuareg-mode
  - NetBSD: wip/tuareg-mode
  - Debian: tuareg-mode (source package since 2001), elpa-tuareg, tuareg-mode (stable)
  - Guix: emacs-tuareg

### Maintenance and Copyright
- Maintained by: Christophe Troestler (primary), Stefan Monnier, Albert Cohen
- Copyright holders:
  - Albert Cohen (1997-2006)
  - Q48413 (2011-2022)
- Copyright status: copyrighted
- Part of the free software movement

### Relationship to Other Software
- Related to: OCaml (programming language), Caml-Mode (predecessor)
- Different from: Caml-Mode (replaced by Tuareg)
- Based on: Caml-Mode
- Use case: source code editor for OCaml, Emacs mode for OCaml

## References

1. Free Software Directory
2. [Source](https://github.com/ocaml/tuareg/blob/master/HISTORY)
3. [Source](https://github.com/ocaml/tuareg/blob/master/tuareg.el)
4. [Source](https://github.com/ocaml/tuareg/releases/tag/2.0.8)
5. [Source](https://github.com/ocaml/tuareg/releases/tag/2.0.9)
6. [Source](https://github.com/ocaml/tuareg/releases/tag/2.0.10)
7. [Source](https://github.com/ocaml/tuareg/releases/tag/2.1.0)
8. [Source](https://github.com/ocaml/tuareg/releases/tag/2.2.0)
9. [Source](https://elpa.nongnu.org/nongnu/tuareg.html)
10. [Tuareg version 3.0.0. 2022](https://lists.gnu.org/archive/html/gnu-emacs-sources/2022-09/msg00071.html)
11. [Tuareg version 3.0.1. 2022](https://lists.gnu.org/archive/html/gnu-emacs-sources/2022-09/msg00080.html)