All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Fix how to handle font stretch values (a strange behavior due to this bug had first been reported by
zeptometer
, and the cause of the bug was suggested bymatsud224
). - Support OCaml 4.10 (encouraged by PR#207 by
na4zagin3
, PR#3 forgfngfn/camlpdf
byy-yu
, and PR#223 byyasuo-ozu
).
- Add new primitive
string-explode : string -> int list
(PR#202 bypuripuri2100
). - Add new primitives
log : float -> float
andexp : float -> float
. - Extend the syntax and the semantics for allowing code texts directly written in inline texts
{… `…` …}
and add new primitiveset-code-text-command : [string] inline-cmd -> context -> context
.
0.0.4 - 2020-01-25
- Rename math command
\centerdot
to\cdot
(PR#114 bynekketsuuu
). - Does not fail when a script value evaluates to
OtherScript
(PR#121 byna4zagin3
). - Handles
CR
+LF
correctly as one line ending (PR#122 bymatsud224
). - Fix how to generate ToUnicodeCMap as to ligatures (PR#140 by
matsud224
). - Fix bug of
\ref
instdjareport
(PR#135 bymatsud224
). - Fix bug of signature matching in the type checker (PR#143 and PR#144 by
elpinal
). - Fix bug of type inference about records (PR#148 by
elpinal
). - Fix bug about decoding fonts that has NULL as the DefaultLangSys entry in a Script table.
- Fix (a kind of) bug about decoding fonts that has NULL in a BaseRecord table (PR#164 by
matsud224
). - Fix the page breaking algorithm.
- Fix how to detect cyclic synonym type definition(s) (bug reported by
nyuichi
). - Fix how to embed fonts (by updating
otfm
fromv.0.3.6+satysfi
tov.0.3.7+satysfi
, which was due to a PR bymatsud224
).
- Begins to support Markdown input.
- Supports PDF hyperlinks (PR#113 by
matsud224
). - Supports fixed-length list patterns (PR#123 by
nekketsuuu
). - Supports PDF outlines (PR#134 by
matsud224
). - Reports detailed error messages when a given image file is invalid (PR#138 by
matsud224
). - Provides new primitives
get-leftmost-script : inline-boxes -> script option
,get-rightmost-script : inline-boxes -> script option
, andscript-guard-both : script -> script -> inline-boxes -> inline-boxes
. - Regards
<LIBROOT>/local/packages/
as a place for user-defined packages. - Uses
<LIBROOT>/local/hash/fonts.satysfi-hash
(as well as<LIBROOT>/dist/fonts.satysfi-hash
) for a font fash file (the same holds for<LIBROOT>/local/hash/mathfonts.satysfi-hash
). - Supports (non-extensible) record updates, i.e.,
(| <record> with <label> = <new-value> |)
. - Supports a MetaML-like two-stage computation performed by bracket
& <expr>
and escape~ <expr>
and equipped with (a somewhat restrictive variant of) cross-stage persistence. - Uses
"$(pwd)/.satysfi/"
as one of the library roots, and provides option--config <colon-separated paths>
(or-C …
) for adding arbitrary paths to the library roots (PR#161 bynyuichi
). - Supports the insertion of images by
![…](…)
in Markdown sources (PR#139 byhikalium
). - Supports the local import
@import: …
for the text-generating mode (i.e. supports importing.satyh-*
or.satyg
files). - Provides a new primitive
omit-skip-after
. - Provides new options
--debug-show-block-bbox
and--debug-show-block-space
. - Allows
[]
(i.e. the empty list) or(| |)
(i.e. the empty record) as an expression argument of commands. - Add new primitive
abort-with-message
(which is equivalent to OCaml’sfailwith
). - Add new primitives
lift-int
,lift-string
, etc. for lifting basic values in two-stage computation (which may be, however, replaced with a more general single primitive operation based on cross-stage persistence). - Add the MacroML-like notion of macro based on two-stage programming.
- Supports two-column page break.
- The use of
"src-dist":
entries in font hash files is deprecated; use"src":
instead, which requires a font file’s path relative to<LIBROOT>
. An entry of the form"src-dist": "<path/to/font-file>"
is now treated equivalently to"src": "dist/fonts/<path/to/font-file>"
.
0.0.3 - 2018-10-09
- Does NOT insert spacing between different scripts when the line breaking class of the posterior charcter is CL, CP, QU, NS, JLCP (= JLreq cl-02), JLFS (= JLreq cl-06), or JLCM (= JLreq cl-07).
- Supports the application of math commands to optional arguments.
- Provides primitives
set-space-ratio-between-scripts
andget-space-ratio-between-scripts
.
0.0.2 - 2018-08-09
- Make type inference algorithm firmer (mainly about records and optional arguments).
- Conforms to a new operational semantics as to optional arguments.
- Starts reporting error for duplicated fields in a record expression.
- Improve type error report as to application of non-function expressions.
- Initial version of SATySFi