Skip to content

Latest commit

 

History

History
149 lines (128 loc) · 13.4 KB

CHANGELOG.md

File metadata and controls

149 lines (128 loc) · 13.4 KB

Changelog

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.

Fixed

  • Fix spacing at the beginning of math formulae (PR#333 by sankantsu).
  • Fix spacing around ( and ) literally written in math formulae (PR#334 by sankantsu).
  • Slightly improve how to report syntax errors for empty files (PR#330 by leque).

Added

  • Extend load-image to support PNG images (PR#329 by leque).

0.0.7 - 2022-04-14

Fixed

  • Fix invalid errors emitted by --type-check-only by making the option extension-sensitive.
  • Fix the exhaustiveness check (PR#171 by matsud224).
  • Fix how to handle digits under \mathbb (PR#286 by elpinal).
  • Use images other than Lenna for tests (PR#288 by nekketsuuu).

Added

  • Add primitives (<<), (>>), bxor, band, bor, and bnot for bitwise operations (PR#85 by konn).
  • Add primitive read-file : string -> string list for reading external text files in subdirectories (PR#200 by puripuri2100).
  • Allow arbitrary Unicode code points other than few ASCII symbols to occur in the math mode (e.g. ${α + β}).
  • Add primitive set-math-char : int -> int -> math-class -> context -> context for handling various Unicode code points in the math mode.
  • Add primitive register-document-information for furnishing document information dictionaries with PDF files (PR#268 by puripuri2100).
  • Develop doc/doc-primitives.saty (PR#281 by puripuri2100).
  • Add Web colors to the color packge (PR#282 by yasuo-ozu).
  • Add primitive clip-graphics-by-path (PR#280 by yasuo-ozu).
  • Support negation on float/length literals such as -1.0, - 3.14, - 2.71828cm, etc. (PR#295 by leque).
  • Make doc comments about primitives automatically generated by invoking dune build @doc; dune build @doc-private (PR#285 by leque).
  • Support ${a'^1_2} and ${a'_2^1} for math sub/superscripts (PR#298 by leque).

Changed

  • Remove the build dependency on Ruby and migrate some build scripts from Makefile to dune (PR#142 by leque, and PR#226 by na4zagin3).
  • Remove the build dependency on depext (PR#289 by na4zagin3).
  • Build src/* as a private library (PR#173 by leque).
  • Improve the parser implementation (PR#175 by leque).

0.0.6 - 2021-02-06

Fixed

  • Improve how to emit errors when parsing invalid itemized expressions (PR#176 by hanazuki).
  • Does not embed null objects as /DW or /DW2 entries in output PDFs (mainly for services that use PDFs but do not support null objects) (PR#180).
  • Fix how to embed font subsets as to tags (PR#181 by matsud224).
  • Fix how to decode types written mainly in signatures (PR#208 by elpinal, which was encouraged by Issue#184 by nyuichi).
  • Allow ?* used in math expressions and limit the range of math symbols (encouraged by a report by @t_uemura669101).
  • Update README about how to install SATySFi on Windows in response to some amendment of brwrap-related problems (PR#242 by nekketsuuu).
  • Improve download-fonts.sh as to SHA checksum (PR#253 by na4zagin3).
  • Fix doc/math1.saty (PR#178 by y-yu).
  • Fix how to confirm that given document files are of type document (resp. string) in the PDF mode (resp. in the text mode) (encouraged by the bug report in Issue#257 by zeptometer).

Added

  • Add --no-default-config option to suppress using default configuration search paths (PR#212 by na4zagin3).
  • Add new primitive linear-transform-graphics : float -> float -> float -> float -> graphics -> graphics for the linear transformation of graphics, and new functions Gr.rotate-graphics and Gr.scale-graphics by using it (PR#241 and PR#254 by monaqa).
  • Add string literals of the form @`…`, which are equipped with their positions on source files and have type input-position * string at stage 0.
  • Add primitive get-input-position : input-position -> string * int * int for extracting filenames, line numbers, column numbers from positions on source files.
  • Add --debug-show-overfull option to visualize overfull or underfull lines.
  • Add GitHub Actions for the development (PR#250 and PR#256 by y-yu and PR#255 by puripuri2100).
  • Add primitive page-break-multicolumn for breaking contents into multiple columns on pages.
  • Add primitive hook-page-break-block.
  • Add primitives ceil and floor (PR#190 by elpinal).
  • Add font-latin-sans etc. to stdja, stdjareport, and stdjabook (PR#126 by puripuri2100).

0.0.5 - 2020-07-11

Fixed

  • 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 by matsud224).
  • Support OCaml 4.10 (encouraged by PR#207 by na4zagin3, PR#3 for gfngfn/camlpdf by y-yu, and PR#223 by yasuo-ozu).
  • Uses yojson-with-position.1.4.2+satysfi instead of yojson.1.4.1+satysfi in order to avoid version conflicts with yojson required by merlin etc.
  • Improve how listings are typeset by itemize package.
  • Improve download-fonts.sh (PR#231 by na4zagin3).

Added

  • Add new primitive string-explode : string -> int list (PR#202 by puripuri2100).
  • Add new primitives log : float -> float and exp : float -> float.
  • Extend the syntax and the semantics for allowing code texts directly written in inline texts {… `…` …} and add new primitive set-code-text-command : [string] inline-cmd -> context -> context.
  • Add List.is-empty, List.map-with-ends, and Option.is-none.
  • Add a new primitive transform-path for applying linear transformations to paths, and new functions, Gr.rotate-path and Gr.scale-path, which utilize the primitive (PR#218 by monaqa).

0.0.4 - 2020-01-25

Fixed

  • Rename math command \centerdot to \cdot (PR#114 by nekketsuuu).
  • Does not fail when a script value evaluates to OtherScript (PR#121 by na4zagin3).
  • Handles CR+LF correctly as one line ending (PR#122 by matsud224).
  • Fix how to generate ToUnicodeCMap as to ligatures (PR#140 by matsud224).
  • Fix a bug of \ref in stdjareport (PR#135 by matsud224).
  • Fix a bug of the signature matching (PR#143 and PR#144 by elpinal).
  • Fix a bug of the type inference algorithm about records (PR#148 by elpinal).
  • Fix a bug about decoding fonts that have NULL as the DefaultLangSys entry in a Script table.
  • Fix (a kind of) bug about decoding fonts that have 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 from v.0.3.6+satysfi to v.0.3.7+satysfi, which was due to a PR by matsud224).

Added

  • Begins to support Markdown inputs.
  • 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, and script-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 by nyuichi).
  • Supports the insertion of images by ![…](…) in Markdown sources (PR#139 by hikalium).
  • 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’s failwith).
  • 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.

Deprecated

  • 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

Fixed

Added

  • Supports the application of math commands to optional arguments.
  • Provides primitives set-space-ratio-between-scripts and get-space-ratio-between-scripts.

0.0.2 - 2018-08-09

Fixed

  • Make the type inference algorithm firmer (mainly about records and optional arguments).

Changed

  • Conforms to a new operational semantics as to optional arguments.
  • Starts reporting errors for duplicated fields in a record expression.
  • Improve type error reports about applications of non-function expressions.

0.0.1 - 2018-08-05

Added

  • Initial version of SATySFi