blob: b28930b79d1fe6666f589975968219c11e78b191 [file] [log] [blame]
Christian Egli13c5d032012-05-31 21:21:01 +00001liblouis NEWS -- history of user-visible changes. -*- org -*-
Christian Egli7fbd3c42009-01-15 22:45:46 +00002
Christian Egli0ae8b0a2012-09-05 09:33:14 +00003* Noteworthy changes in release 2.5.0 (2012-9-5)
4
5This release contains a tremendous amount of work many developers.
6Many long standing bugs have been fixed. The tables can finally be in
7UTF-8. A grand table cleanup removed duplication from the tables.
8There are now two extensive test frameworks for table writers. A
9number of new tables have been contributed on top of the usual
10assortment of table improvements. Thanks to all of this liblouis has
11already seen quite a bit of uptake in a number of places, notably the
12new DAISY pipeline will ship with this release of liblouis.
Christian Egli539f6b32012-02-27 09:13:17 +000013
14** New features
Christian Egli1d7b3022012-05-16 07:59:44 +000015*** New Braille tables
16 - Estonian grade 0, thanks to Jürgen Dengo.
17 - Portuguese 8 dot Computer braille, Thanks to Rui Fontes
Christian Egli328d0c92012-07-10 07:14:48 +000018*** UTF-8 support in tables
19 Braille tables can now contain UTF-8 in the opcode arguments.
Christian Egli539f6b32012-02-27 09:13:17 +000020*** Improvements to the python bindings
21 All constants defined in liblouis.h are now exposed in the bindings.
Christian Eglicc1a0a42012-03-02 13:34:09 +000022*** Add a doctest infrastructure
Christian Egli66cfe502012-03-01 14:50:42 +000023 These tests are based on the Python doctest framework and are only
24 run if there is a Python interpreter on the system
Christian Eglicc1a0a42012-03-02 13:34:09 +000025*** Add a test harness
26 This test infrastructure allows the user to do table tests in a
Christian Egli0ae8b0a2012-09-05 09:33:14 +000027 simple and concise syntax. These tests are based on the Python
28 nose testing framework and are only run if either Python 2.x or
29 3.x with the related nose python module is installed on the
30 system. See the documentation for more information. Thanks to
31 Mesar Hameed.
Mesar Hameed96f30d82012-07-20 08:43:00 +000032*** Add a test harness generator
Christian Egli0ae8b0a2012-09-05 09:33:14 +000033 A harness generator that uses simple text files with a little
34 formatting to help to generate the json harness files. The purpose
35 of this tool is to make it much easier and faster to add checks
36 for a given table. You are expected to read the generated harness
37 file and make necessary changes, the tool only helps you to get
38 the tests into the harness format, not check their validity.
Christian Egli1d7b3022012-05-16 07:59:44 +000039*** Support for Python 3 in the Python bindings
40 The Python bindings now work for both Python 2 and Python 3.
41 Thanks to Michael Whapples.
Christian Egli539f6b32012-02-27 09:13:17 +000042
Christian Egli13c5d032012-05-31 21:21:01 +000043** Improved C-based test framework
44 - Improved the test framework to be able to test translations
45 involving Unicode.
46 - Added numerous tests, e.g. for lowercase and Unicode, for the
47 input position, for repeated, etc.
48
Christian Egli539f6b32012-02-27 09:13:17 +000049** Improved the documentation
Mesar Hameedaa633e52012-07-26 12:55:37 +000050 - Document the test harness (json format, fields, flags).
Christian Egli1d7b3022012-05-16 07:59:44 +000051 - Document the use of Valgrind to find memory leaks
Christian Egli48422152012-06-28 09:06:18 +000052 - Improve the documentation on the display opcode
Christian Egli539f6b32012-02-27 09:13:17 +000053
54** Bug fixes
Christian Egli13c5d032012-05-31 21:21:01 +000055 - lou_allround and lou_translate now properly handle Unicode
Christian Eglie30b08b2012-04-17 08:27:13 +000056 characters
Christian Egli8b0740d2012-05-11 12:41:02 +000057 - Fix some issues reported by Valgrind
Christian Egli1d7b3022012-05-16 07:59:44 +000058 - Fix inputPos for situation where context and multipass opcodes
59 are involved
Christian Egli13c5d032012-05-31 21:21:01 +000060 - Fixed a number of bugs with the letter, uppercase and lowercase
61 opcodes when dealing with Unicode
Christian Egli9a018072012-06-07 12:08:54 +000062 - Fixed a couple of bugs with hyphenation (documentation, Python
63 bindings and a number of buffer overruns in the C library).
64 Thanks Milan Zamazal <pdm@brailcom.org> for reporting this.
Christian Eglid4e73742012-06-07 15:33:03 +000065 - Fix a bug in the $a. matcher in the multipass rules where only 32
66 chars were matched. It now matches 0xffff chars.
Christian Egli8da99ad2012-09-06 19:46:48 +000067 - Fix a bug reported by James Teh related to pass1Only
Christian Egli539f6b32012-02-27 09:13:17 +000068
69** Braille Table Improvements
Christian Egli0ae8b0a2012-09-05 09:33:14 +000070 - all table files have consistent encoding, UTF-8.
Christian Egli13c5d032012-05-31 21:21:01 +000071 - The grand table cleanup: Reorganize the tables to remove
72 duplication. Move common parts such as Latin letter, eight and
73 six dot digit definitions to separate files which are then
74 included. This should ease table maintenance. Thanks to Mesar Hameed.
Christian Egli1d7b3022012-05-16 07:59:44 +000075 - Fixes to de-de-comp8.ctb thanks to Aliminator83@gmail.com
Mesar Hameed6ae9d6d2012-06-12 06:50:58 +000076 - hu1.ctb renamed to hu-hu-g1.ctb
Mesar Hameedfa475f22012-06-12 07:18:43 +000077 - hu.ctb renamed to hu-hu-comp8.ctb
Mesar Hameed01382982012-07-09 13:54:08 +000078 - eo.ctb renamed to eo-g1.ctb
79 - Fixes to eo-g1.ctb thanks to Aaron Cannon <cannona@fireantproductions.com>
Christian Egli0ae8b0a2012-09-05 09:33:14 +000080 - hu-hu-g1.ctb: improvements and extensive test harness, with
81 working back-translation, Thanks to Hammer Attila
Christian Egli8da99ad2012-09-06 19:46:48 +000082 - Fixes to fr-bfu-comp6.utb and fr-bfu-comp8.utb thanks to Michel
83 Such <michel.such@free.fr>
84 - Reworked and extended Ethiopic braille table ethio-g1.ctb,
85 superseeds gez*, thanks to Dr. Tamru E. Belay
86 <g.braille@sympatico.ca>
Mesar Hameed38689372012-09-05 09:45:11 +000087
Christian Egli539f6b32012-02-27 09:13:17 +000088
Christian Egli86193412012-02-21 12:41:32 +000089* Noteworthy changes in release 2.4.1 (2012-2-22)
Christian Egli12717a52011-05-18 07:16:00 +000090
Christian Egli29f38552011-06-28 10:19:39 +000091** New features
Christian Eglib3d59042012-02-01 10:03:21 +000092 - Czech hyphenation table thanks to Jan Hegr
Christian Egli3ef96cf2012-02-06 10:49:00 +000093 - Spanish grade 1 table provided by José Enrique Fernández del
Christian Egli1d9171d2012-02-22 11:08:53 +000094 Campo and Juan Carlos Buño Suárez
Christian Eglib5502892012-02-23 08:24:01 +000095 - New Tamil table thanks to Mesar Hameed
Christian Eglib3d59042012-02-01 10:03:21 +000096
97** Braille Table Improvements
Christian Egli5dcf5b52012-02-01 13:01:35 +000098 - Improvements to the Portuguese grade1 braille tables
Christian Eglia9b36872012-02-20 09:58:20 +000099 - Updates and additions to Icelandic 8-dot braille table.
Christian Egli86193412012-02-21 12:41:32 +0000100 - Improvements to the uncontracted Spanish computer braille table.
Christian Egli65791262012-02-22 09:04:52 +0000101 - Improvements to the Norwegian braille table thanks to David Hole.
Christian Eglia9b36872012-02-20 09:58:20 +0000102
Christian Eglib3d59042012-02-01 10:03:21 +0000103* Noteworthy changes in release 2.4.0 (2012-01-31)
104
105** New features
Christian Eglia620a142012-01-09 11:12:09 +0000106 - New Generic Farsi Grade 1 table: A new table for Generic Farsi
107 Grade 1 braille has been provided by Mesar Hameed.
Christian Eglia620a142012-01-09 11:12:09 +0000108 - Emacs mode for editing Braille tables thanks to Christian Egli
109
Christian Egli12717a52011-05-18 07:16:00 +0000110** Braille Table Improvements
111 - Improvements to the French comp6 and comp8 braille tables
Christian Egli728b77d2011-05-30 06:40:27 +0000112 - Improvements to the Romanian braille table
Christian Egli29f38552011-06-28 10:19:39 +0000113 - Improvements to the Generic Arabic Grade 1 table
Christian Eglia620a142012-01-09 11:12:09 +0000114 - Improvements to the Czech tables thanks to Jan Halousek and to
115 Jan Hegr
Christian Egli12717a52011-05-18 07:16:00 +0000116
Christian Eglie3a003d2011-05-09 06:52:24 +0000117* Noteworthy changes in release 2.3.0 (2011-05-09)
Christian Egli3929eac2010-09-27 15:05:08 +0000118
Christian Eglifa8b3e92011-05-09 07:39:06 +0000119This release contains support for many more languages than before
120(Swedish, Kurdish, Ethiopic, Serbian, many Indian languages). The
121search path for tables is now a list of paths. Finally there is the
122usual assortment of bug fixes.
123
Christian Eglia6119352011-03-14 09:47:59 +0000124** New features
125*** Multiple table search path
126 The environment variable LOUIS_TABLEPATH can now contain a list of
127 paths (separated by commas) where liblouis should look for tables.
128 This allows the user to keep local tables.
Christian Egli34c886e2011-03-14 13:13:32 +0000129*** New --quiet option for lou_checktable
130 lou_checktable writes to stderr even in the case of success. This
131 can now be suppressed with the new option --quiet.
Christian Egli6a127f32011-03-30 09:35:25 +0000132*** New Swedish table
133 A new table for Swedish braille has been provided by Samuel
134 Thibault.
Christian Egli36cf0dc2011-04-15 10:31:17 +0000135*** New table for Sorani (Kurdish)
Christian Egli12717a52011-05-18 07:16:00 +0000136 A new table for Sorani (Kurdish) Braille has been donated by Peter
137 Engström from Index Braille
Christian Eglibc8401c2011-04-15 11:36:22 +0000138*** New table for Ethiopic
Christian Egli12717a52011-05-18 07:16:00 +0000139 A new table for Ethiopic Braille has been donated by Tamru E.
140 Belay PH.D from Adaptive Technology Center for the Blind (ATCB)
Christian Egli7ddbd8c2011-04-15 13:24:03 +0000141*** New table for Serbian
Christian Egli12717a52011-05-18 07:16:00 +0000142 A new table for Serbian Braille has been donated by Peter Engström
143 from Index Braille
Christian Eglia6119352011-03-14 09:47:59 +0000144
Christian Egli60fc9902011-03-28 06:59:40 +0000145** Improved the documentation
146 The deprecated opcodes have been moved to a separate section
147
Christian Egli9863b722011-03-03 10:16:33 +0000148** Bug fixes
Christian Egli12717a52011-05-18 07:16:00 +0000149 - Fixed a long standing bug with an infinite loop in the table
150 compiler
Christian Egli6826d572011-04-15 08:57:16 +0000151
152** Braille Table Improvements
Christian Egli12717a52011-05-18 07:16:00 +0000153 - Improvements to the Chinese braille table
154 - Improvements to the Flemish Braille Math Code tables
155 - Improvements to the Dutch Braille tables
156 - Improvements to the Spanish Braille tables.
157 - Fixes for the uncontracted French 6 and 8 dot tables
158 - Improved support for Italian 8 dot
159 - Improvements to the Generic Arabic Grade 1 table
Christian Egli9863b722011-03-03 10:16:33 +0000160
161* Noteworthy changes in release 2.2.0 (????-??-??)
162
Christian Egli3929eac2010-09-27 15:05:08 +0000163** New features
164*** New tables
165 - Support for many indian languages
166 - Support for Icelandic 6- and 8-dot
Christian Egli85c57f52010-11-12 13:10:13 +0000167 - Support for Catalan
Christian Egli221783c2010-12-07 13:37:29 +0000168 - Support for Dutch Braille (for Belgium and the Netherlands)
169 - Support for Flemish Braille Math Code (a.k.a. Woluwe code)
Christian Egli85c57f52010-11-12 13:10:13 +0000170
Christian Egli6b68c1a2011-03-30 12:31:03 +0000171
172*** New functions to make libraries relocatable
173 Two new functions, to set the search path for tables and files.
174 They make the library relocatable. See the in the documentation
175 for lou_setDataPath and lou_getDataPath.
176
Christian Egli85c57f52010-11-12 13:10:13 +0000177** Bug fixes
178 - Improved support for Spanish
Christian Eglicc417ae2010-12-09 07:57:18 +0000179 - Improved Norwegian tables
Christian Egli3929eac2010-09-27 15:05:08 +0000180
Christian Egli48665712010-08-27 12:40:11 +0000181* Noteworthy changes in release 2.1.1 (2010-8-23)
182
183** Bug fixes
184 - Fixed problems with the Danish grade 2 table
185 - Fixed problems with the Marburg maths table for mathematics and
186 the UK maths table for mathematics
187
Christian Egli48262182010-08-19 11:56:40 +0000188* Noteworthy changes in release 2.1.0 (2010-8-19)
189
190** New features
191*** New tables
192 - Added tables for Portuguese grade 1 and 2
193 - Added unicode.dis for Unicode braille
194*** Modified tables
195 - Updated Danish tables
196*** Implemented language to table mapping
197*** New format of error messages
198 The error messages are now reported in a format similar to the one
199 used in gcc.
200*** New opcode
201 - added undefined opcode
202*** Python bindings
203 - Allow the user to configure the maximum output length by
204 specifying a number by which the input length is multiplied
205 using the outlenMultiplier module variable. The default will
206 handle the case where every input character is undefined in the
207 translation table. Previously, this was hard-coded to 2, which
208 was insufficient in some cases.
209 - Add compbrlLeftCursor mode constant.
210 - Add compileString function which wraps lou_compileString.
211 - Corrections/clarifications to docstrings.
212 - Add python binding for the lou_hyphenate function.
213 - Added python wrapper for lou_backTranslateString and lou_backTranslate.
214
215*** liblouisxslt as an example
216 Add liblouisxslt as an example to python/examples. This is
217 basically an extension of libxslt that lets you invoke liblouis
218 from an xslt stylesheet to do Braille translation on text nodes
219 for example.
220*** compbrlLeftCursor
221 Added a patch provided by Volker Bijewitz to implement
222 compbrlLeftCursor.
223
224** Bug fixes
225*** output cursorPos
226 Fix the output cursorPos when the compbrlAtCursor mode is enabled
227 and the characters around the cursor translate to multiple braille
228 cells, such as in the Chinese braille tables.
229*** outpos when doing back translation
230 Include a patch by Timothy Lee to fix outpos when doing back translation
James Tehfd769b52010-08-22 22:06:45 +0000231 (issue 11)
232*** inputPos/outputPos for undefined characters
233 Fix the input/output position arrays for characters in the input
234 which are undefined in the translation table.
Christian Egli48262182010-08-19 11:56:40 +0000235*** table fixes
James Tehfd769b52010-08-22 22:06:45 +0000236 - Fixed a bug with back translation of '*n'. (issue 13)
Christian Egli48262182010-08-19 11:56:40 +0000237 - Fixes to the en-us-g2.ctb table
238*** Python bindings
James Tehfd769b52010-08-22 22:06:45 +0000239 - Remove unnecessary imports, allowing the bindings to run in Python
240 2.7. (issue 12)
Christian Egli48262182010-08-19 11:56:40 +0000241 - lou_translate* writes output information in typeform, so
242 allocate enough bytes for it. Fixes possible buffer overruns and
243 resultant crashes.
244*** Miscellaneous
245 - Fixes to the man page generation to fix issues that were
246 reported by the Debian packaging builder
247 - Do not invoke help2man when cross-compiling
James Tehfd769b52010-08-22 22:06:45 +0000248 - Documentation updates (issue 10)
Christian Egli48262182010-08-19 11:56:40 +0000249 - Removing noletsign defaults
250 - Many small fixes
Christian Egli48262182010-08-19 11:56:40 +0000251
252* Noteworthy changes in release 2.0.0 (2010-7-6)
253
254** New features
255*** New functions
256 - Adding lou_charSize function
257
258* Noteworthy changes in release 1.9.0 (2010-6-29)
259
260** New features
261*** New functions
262 - lou_dotsToChar and lou_charToDots function
263 - Added lou_compileString for adding entries to tables at
264 run-time.
265
Christian Egli9c390c92009-11-21 07:17:09 +0000266* Noteworthy changes in release 1.8.0 (2009-11-23)
267
268This release contains a number of improvements notably the integration
269of gnulib, the automatic generation of man pages and the addition of
270tables for German grade 2.
271
272** New features
273*** New tables
274 - Tables German Grade 2
275 - Swiss German
Christian Egli21facb52009-11-24 11:03:36 +0000276 - Swedish (1989 standard)
277 - Swedish (1996 standard)
Christian Egli9c390c92009-11-21 07:17:09 +0000278
279*** Modified tables
280 - Updated Norwegian tables
Christian Egli21facb52009-11-24 11:03:36 +0000281 - Updated Chinese braille table
Christian Egli9c390c92009-11-21 07:17:09 +0000282
283*** man pages
284 All tools accept the --version and --help options and are
285 documented in man pages
286
287*** Corpus based test cases for tables
288 You can now have corpus based tests for tables. See the README in
289 tests/table_test_corpuses.
290
291** Bug fixes
Christian Egli21facb52009-11-24 11:03:36 +0000292 - config.h is no longer exported
Christian Egli9c390c92009-11-21 07:17:09 +0000293 - Many small fixes
294
Christian Egli277d71d2009-08-19 08:12:39 +0000295* Noteworthy changes in release 1.7.0 (2009-08-21)
296
297The main new feature of this release is the support for UK and Marburg
298math. Other changes include a new tool to check hyphenation and the
299usual improvement and addition of tables. Also The test suite has been
300enhanced and finally passes.
Christian Eglifbbe9542009-08-18 15:06:20 +0000301
302** New features
303*** New tables
304 - Tables for UK and Marburg math
305 - Hong Kong Cantonese
306 - Hebrew
307 - Hungarian
308 - Slovene
309 - Tibetan
310 - Irish
311 - Maltese
312
313*** Modified tables
314 - Updated Norwegian tables
315 - Bug fixes in Russian tables
316 - Updated French tables
317
318*** lou_checkhyphens tool
319 New tool to check hyphenation
320*** rpm spec file
321*** Test cases for tables
322 The tables can now be tested with `make check'
323*** New opcodes
Christian Egli277d71d2009-08-19 08:12:39 +0000324 - noback and nofor opcode prefixes
325 - grouping opcode
326 - multipass subopcodes
Christian Eglifbbe9542009-08-18 15:06:20 +0000327
328** Bug fixes
329 - Fix for library name and Python bindings
330 - Documentation fixes
331 - Many small fixes
John Boyer638ffe32009-05-28 02:47:00 +0000332
Christian Egli8466dad2009-05-27 14:14:24 +0000333* Noteworthy changes in release 1.6.2 (2009-05-01)
Christian Egli7a1a70e2009-05-27 13:58:45 +0000334
335This release contains a new opcode for Malaysian Braille. See the
336documentation for a description of the new opcode.
337
338** New features
339
340*** repword opcode
341The repword opcode is needed for Malaysian Braille
342
Christian Egli8466dad2009-05-27 14:14:24 +0000343* Noteworthy changes in release 1.6.1 (2009-04-21)
Christian Egli7a1a70e2009-05-27 13:58:45 +0000344
345This is mostly a bug fix release. It contains many bug fixes that were
Christian Egli8466dad2009-05-27 14:14:24 +0000346discovered in the course of developing UK Math tables.
Christian Egli7a1a70e2009-05-27 13:58:45 +0000347
348** Bug fixes
349
Christian Egli48262182010-08-19 11:56:40 +0000350*** bug fixes for correct, context and multipass opcodes
351*** bug fixes for largesign opcode
Christian Egli7a1a70e2009-05-27 13:58:45 +0000352*** fixed bug with French back-translation
353*** fixed the installation path for docs
354*** documentation improvement
355
Christian Egli79105452009-03-09 13:13:10 +0000356* Noteworthy changes in release 1.6 (2009-03-04)
357
358This release features support for Danish and Russian and updated
359tables for French and Norwegian. The search path for tables can now be
360specified using an environment variable. Finally there is the usual
361assortment of bug fixes.
362
363** New features
364
365*** exactdots opcode
366The exactdots opcode is intended for use in liblouisxml
367semantic-action files to specify exact dot patterns, as in
368mathematical codes.
369*** LOUIS_TABLEPATH env variable
370You can now specify where liblouis is to look for tables with the
371LOUIS_TABLEPATH environment variable.
372*** New Tables for Danish and Russian
373There is now support for Danish and Russian.
374
375** Bug fixes
376
377*** Updated French and Norwegian tables
378*** Use stdcall calling convention if building for Windows
379
380** Changes in behavior
381
382None
383
Christian Egliba0095a2009-01-21 08:33:09 +0000384* Noteworthy changes in release 1.5 (2009-01-21)
Christian Egli7fbd3c42009-01-15 22:45:46 +0000385
386This is a big release for liblouis. It's the first time that it is
Christian Egliba0095a2009-01-21 08:33:09 +0000387done from the Google code page. A number of people have contributed,
James Teh50e69c32009-01-20 22:45:15 +0000388namely John Boyer (table debugger, bug fixes), Eitan Isaacson (Python
Christian Egliba0095a2009-01-21 08:33:09 +0000389bindings), James Teh (Python bindings, bug fixes), Christian Egli
390(documentation) and Michel Such (table for French grade 2).
Christian Egli7fbd3c42009-01-15 22:45:46 +0000391
392
393** New features
394
Christian Egliba0095a2009-01-21 08:33:09 +0000395*** Python bindings
396The liblouis library can now be used from Python. For more info
397consult the README file in the python directory.
Christian Egli7fbd3c42009-01-15 22:45:46 +0000398
Christian Egliba0095a2009-01-21 08:33:09 +0000399*** Table debugger
400liblouis now comes with a debugger that can help to find problems with
401translation tables.
Christian Egli7fbd3c42009-01-15 22:45:46 +0000402
Christian Egliba0095a2009-01-21 08:33:09 +0000403*** French table for grade 2
404There is now a translation table for French grade 2.
405
406*** pass1Only mode bit
407The new pass1Only mode bit will help developers of screen readers as
408the cursor will stay where it is expected to.
Christian Egli7fbd3c42009-01-15 22:45:46 +0000409
410** Bug fixes
411
412Fix the inpos array values for the case where a rule has an output
413length which is larger than its input length.
414
415fixed multi-word phrases
416
417fixed bug in character display
418
419fixed bug in findOpcodeName
420
Christian Egliba0095a2009-01-21 08:33:09 +0000421lou_version now returns the correct liblouis version
422
Christian Egli7fbd3c42009-01-15 22:45:46 +0000423** Changes in behavior
424
425None
Christian Egli277d71d2009-08-19 08:12:39 +0000426