What's new

0.20.2


Fixes
  • Fixes a regression introduced in 0.20.1 that affected right-hand boundary checking within an underline structure
    • Specifically, rules such as VN > [+nas] / <(..)_> now work as expected

0.20.1


New Features
  • Segments and matrices can be negated in input and environment with - or ¬
    • e.g. <(..)-G> > [+str] ;; a syllable that doesn't have an off-glide is stressed
      • saj.nam => saj'nam
  • Boundaries can be used at the periphery of structures
    • Allows for boundary manipulation with all the benefits of underline structures
    • e.g. V:[-str] $ > * / _S:[+str] | #<(..)_>
      • me.da'ra.ni => me'dra.ni
      • ka'ra.sa    => ka'ra.sa
Fixes
  • Options at the beginning or end of a structure properly check if they fill a syllable

0.20.0


BREAKING CHANGES
  • Group C now stands for [+cons, -syll], no longer just [-syll]
    • This is motivated in part so that C:[+syll] has the expected behaviour.
    • Note that as glides are [-cons], they are no longer covered under C. Use {C,G} or [-syll] (or after 0.20.1 -V) to capture both consonants and glides.

  • Glottalic consonants (e.g. h, ʔ) are now [+cons]

  • Rules such as a > e now preserve length
    • Previously, this rule would cause a word such as ha:t to become het.
    • This change now brings the behaviour of IPA Literals in line with Groups and Matrices.
    • Previous behaviour is preserved when the input is matched by length e.g. a:[+lng] > e which is equiv. to a:[+lng] > e:[-lng]
    • See here for an archived explanation for the previous behaviour.

New Features
  • Allow for multi-dimensional suprasegmentals (stress and length) to be referenced with one alpha.
    • [A long, B overlong] can be replaced with just [A length]
    • [A stress, B sec.str] can be replaced with just [A anystress]

  • Allow for the underline to be placed within an environment structure.
    • e.g. VN > [+nas] / <(..)_> instead of VN > [+nas] / _$ guarantees V and N are of the same syllable and N is coda.

  • Rework of Sets
    • Allow for multiple items in set choices
      • e.g. {i:[+long], u:[+long]} > {aj, aw}
      • These items can be mixed type e.g. {k<CV>, N$[-syll]}
    • Allow for sets, as a whole, to be modified by a matrix.
      • e.g. {i, u}:[+long] rather than {i:[+long], u:[+long]}

  • Rework of Metathesis logic
    • Ellipses act to group elements on either side
      • e.g. pf..s > & to result in pfas => safp whereas it currently would render pfas => sfap
      • In general: abcd..ef..ghi => ihg..fe..dcba
    • New @ metathesis operator which allows for maintaining grouped element orderings
      • e.g. pf..s > @ to result in pfas => sapf
      • In general: abcd..ef..ghi => ghi..ef..abcd

  • Added aliases J and W for ʝ and ɯ respectively
Fixes
  • ʁ̞ is correctly encoded as [+cons]
  • (Metathesis) Swapping segments of different lengths in the same syllable works as expected
  • Corrected structure location error highlighting
  • Removed redundant error locations from error messages

  • Increased Stability
    • Attempt to detect hanging rules and provide error to user
    • Rules such as $ > a$ no longer hang
    • Insertion rules with optionals that match zero times should no longer hang

  • Potential matches with ellipsis input are not skipped if a previous match has the wrong environment
    • e.g. k..h > & | #_ results in ka.ko.he => ka.ho.ke rather than previous ka.ko.he => ka.ko.he

0.19

Web Changes

  • Separate this changelog from main page to decrease unnecessary loads
  • Add grabber on rule blocks on mobile for easier scrolling
  • Add handedness toggle for mobile so you can move rules with your preferred hand
  • Decrease padding and margins to increase useful space
  • When an error occurs, the erroring rule block is now highlighted

0.18

Library Changes

  • Structures and References now allowed inside sets
  • Various bug fixes. See release notes
  • Trying to swap syllables between words, i.e. % ## % > &, now works
  • Leading spaces before a phrase no longer affect output
  • Avoided infinite loop after lengthening a segment in certain situations at the end of a word
  • Enforce use of commas within a set i.e. {p,t,k} not {ptk} (trailing comma allowed)

Web Changes

  • Saves can now be shared
  • Comments can now be retained in the output
  • Finally moved input box to CodeMirror, allowing keybindings and syntax highlighting for comments
  • Tab Indentation allowed in input and rule boxes, press Escape beforehand to allow tab navigation

0.17

Library Changes

  • Cross Boundary Interactions with ## allowing for External Sandhi, Rebracketing, and Affixation (see docs).
  • New substitution implementation allowing for ellipses and implicit syllable boundary deletion/insertion.
  • Retroflex diacritic ʵ works as expected.
  • Variables are now called References.
  • Long segments are correctly deleted and metathesised.

Web Changes

  • Fixed potential HTML escaping issues when displaying errors.
  • Ability to toggle output romanisation.
  • Updated pie-to-proto-germanic example save.

0.16

Library Changes

  • [-long] matrices match correctly after an ellipsis.
  • A comment after a deletion rule with no environment no longer errors.
  • Special environment checking works properly with a following comment.
  • Reworked segment rendering to reduce weird edgecases.

Web Changes

  • Comments delimited by # now allowed in input.
  • Added pie-to-proto-germanic example save.

0.15

Library Changes

  • Diacritic aliases are now preceded by " instead of ^ to remove ambiguity between ʔ͡h and ʔʰ which are now ?^h and ?"h respectively.
  • Added more inbuilt diacritic aliases using the new " prefix.
  • Removed dedicated americanist aliases in favour of custom aliasing. See release notes for a replacement.
  • Prenasalised palatal and retroflex consonants now use consistent diacritics (ᶮC and ᶯC respectively).
  • Fixed infinite loop caused by erroneous use of ^ in certain situations.
  • Fixed , , , q‼, and being falsely encoded as +voice.
  • Ellipses can now be wrapped in brackets i.e. (..) to skip 'zero or more' segments instead of 'one or more' segments.
  • Options and Sets are now allowed in non-output Structures.

Web Changes

  • Added formatting options for output.

0.14

Web Changes

  • Brand-new saving system allowing for multiple files to be loaded at once.

0.13

Web Changes

  • Move(ing) to CodeMirror inputs and added syntax highlighting.
    Colours are work in progress and probably will change!
  • Add section collapse buttons for mobile and small screens to reduce scrolling.
  • Added hotkeys for easier keyboard navigation.

0.12

Library Changes

  • Inbuilt aliases for common diacritics.
  • A $ or * alone in the output of a deromanisation rule is now allowed.
  • Added easy right-to-left propagation with the tilde ~ | ~> operator (see docs).
  • Aliases now work correctly when tracing.
  • Segment length character ː is correctly omitted when removing a long segment.

Web Changes

  • The values of any segments that couldn't be represented are now displayed at the bottom of the output.
  • These unknown segments are colour-coded in the output for easier debugging.
  • Traced rules are now highlighted.

0.11

Library Changes

  • A given word or phrase can now be traced throughout its evolution.
  • Multiple words can now be placed on the same line separated by a space.
  • Fixed infinite loop when inserting after a boundary in certain cases.

Web Changes

  • Ability to specify adding a rule to either the beginning or the end of the list.
  • Ability to duplicate a given rule.
  • Sticky UI elements to reduce scrolling.

0.10

Library Changes

  • Rules can now have single-line comments delimited by ;;
  • Multiple contiguous underlines are now allowed in environments.
  • Environments can now be grouped so they can be checked all at once, similarly to a set (see docs).
  • Structural Matching (see docs).
  • Various performance improvements and bug fixes, see releases 0.5.0 and 0.5.1.

Web Changes

  • Ability to temporarily enable/disable rules with quick global toggle button.
  • Updated global rule collapse button change to also expand all.

0.9

Library Changes

0.8

Library Changes

  • Added "voiced stridentised" diacritic. (release 0.3.1)
  • Fixed bug whereby IPA literals with a feature alpha modifier were not correctly matching. (release 0.2.1)
  • Fixed options falsely matching in certain situations (issue #3)
  • Fixed some bugs regarding matching ipa
  • Added normalisation for some precomposed Unicode characters
  • Rule errors now show rule and line numbers

Web Changes

  • Added changelog as modal dialog
  • Working drag and drop on mobile

0.7

Library Changes

  • Some common Americanist characters such as ƛ can now be used (no longer supported as of v0.15)
  • Rules with just whitespace no longer error

Web Changes

  • Fixed some behavioural differences between chromium and firefox

Before 0.7

Library Changes

  • Palatal lateral fricatives and affricates now use ExtIPA characters, matching their retroflex and velar counterparts
  • Updated distinction between glides and their approximant counterparts
  • Fixed neighbouring matches sometimes being skipped in substitution rule
  • Added Strident diacritic to help catch possible errors when converting +strid consonants

Web Changes

  • Now require confirmation before deleting rules
  • Added collapse and clear buttons