CHANGES.md 4.52 KB
Newer Older
1 2 3 4 5
# Version 1.5.0
## The acgc.opt/acgc compiler and the acg.opt/acg interpreter:
* Removed the dependency to BOLT (replaced by Logs) and dypgen (replaced by menhir)
* Some syntax changes:
  1. Prefix operators have the highest priority
6 7 8
  2. Application has precedence over infix operators
  3. An associativity property (none, left, right) can be set to infix operators (left is the default), and a precedence level as well. See the associativity and the precedence section in the [README](README.me).
* Removed the dependency to BOLT (replaced by Logs) and dypgen (replaced by menhir)
9

10 11
# Version 1.4.0
## The acgc.opt/acgc compiler and the acg.opt/acg interpreter:
12 13
* Improved performance by better logging management (for debug)
* Extended set of latin1 characters allowed in .acg files
14 15 16

# Version 1.3.3
## The acgc.opt/acgc compiler and the acg.opt/acg interpreter:
17
* the build process now relies on `jbuilder`
18 19 20 21


# Version 1.3.1
## The acg.opt/acg interpreter
22 23 24 25 26
* Bug fix: constants that were given two interpretations in a lexicon (only the last one is available) generated two rules in the corresponding datalog program (hence possibly several parses)
* Bug fix: when an object constant was the direct interpretation of an abstract constant, parsing this object constant raised an exception
* an option `-svg filename` is added to `./acg` and `./acg.opt` to allow the user to provide another name than the default `realize.svg` to the svg output file.
## Configuration and opam file
* an option `--disable-warning-as-errors` to the `.configure` script in order to make opam compile without the `-warn-error A` option.
27 28 29

# Version 1.3.0
## The acg.opt/acg interpreter
30
* Colors and link between signature and rendering engines are now defined in a json configuration file. The option to load the configuration is `-realize`.
31 32 33

# Version 1.2
## The acg.opt/acg interpreter
34 35
* Added the generation of a `realize.svg` file when the `realize` command of `acg` is invoked. Colors and link between signature and rendering engines are hard-coded.
* An option is added to toggle of the `realize.svg` file generation (takes a bit of time)
36 37 38

# Version 1.1
## The acgc.opt/acgc compiler and the acg.opt/acg interpreter:
39 40
* Fixed severe bug that prevented finding some parses and sometimes caused a `Fatal Error`
* Added a control on the compiler version that generated the object (`.acgo`) files. The version has to be the same as the current version of the compiler or of the interpreter that is being used.
41 42

## The acgc.opt/acgc compiler:
43
* added a `nl_lexicon` keyword that causes the interpretation of any functional type (`->` or `=>`) of the abstract signature to be interpreted by the intuitionistic arrow `=>` in the object signature.
44

45
	Accordingly, the interpretation should use `Lambda`.
46 47

## The acg.opt/acg interpreter:
48 49 50
* Improved terminal output (colors and formatting)
* added a `-nc` option to disable colored outputs
* added a `-npp` option to disable formatting on the output
51 52

## The acg emacs mode
53
* improved handling of long files
54 55 56

# Version 1.0b
## The acgc.opt/acgc compiler:
57 58
* Now outputs an `file.acgo` file when compilation is successful
* Can declare a lexicon as the composition of two other lexicons using the following declaration:
59 60 61 62

	```
	lexicon lex_name = lex_name2 << lex_name1
	```
63 64

## The acg.opt/acg interpreter:
65
* Can load an acg object file using the command:
66 67 68
  ```
  load o file.acco;
  ```
69

70 71
* The `analyse` command is deprecated. It is replaced by:
  * A `check` command, prefixed by signatures, that typecheck the typing assignment of a term
72 73 74 75

	```
	Sig1 Sig2 check term:type;
	```
76
  * A `realize` command that must be preceded by lexicons and followed by the type assignment of a term. It checks that the term is well typed in the abstract signatures of the lexicons and compute its realizations through the lexicons.
77

78 79 80
	```
	Lex1 Lex2 realize term:type;
	```
81
  * A `parse` command has been added. It must be preceded with the name of a lexicon and it returns the antecedent by this lexicon of the input term with respect to some distinguished (atomic) type:
82 83 84 85

	```
	Lex parse object_term:distinguished_type;
	```
86 87 88 89 90 91 92 93 94 95

* A `query` command has been added. It follows the `parse` command syntax and it outputs the associated query and associated extensional database.
```
Lex query object_term:distinguished_type;
```

* A `idb` command has been added. It must be preceded with the name of a lexicon and it returns the intensional database associated with the lexicon
```
Lex idb;
```
96 97
  

98 99 100
## Current limitation:
* Only parse images of atomic types
* The result of parsing with non-linear lexicons is unspecified yet