Skip to content

Latest commit

 

History

History
121 lines (103 loc) · 10.7 KB

CHANGELOG.md

File metadata and controls

121 lines (103 loc) · 10.7 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 invalid errors emitted by --type-check-only by making the option extension-sensitive.

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).

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 bug of \ref in stdjareport (PR#135 by matsud224).
  • 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 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 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, 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 type inference algorithm firmer (mainly about records and optional arguments).

Changed

  • 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.

0.0.1 - 2018-08-05

Added

  • Initial version of SATySFi