• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Changelog
2
3
4## Work In Progress
5
6- Renamed Puffs to Wuffs.
7- Ship as a "single file C library"
8- Added a `skipgendeps` flag.
9- Added a `nullptr` literal and `nptr T` type.
10- Added `io_bind` and `io_limit` keywords.
11- Added a `use` keyword.
12- Added a `yield` keyword.
13- Made the `return` value mandatory; added `ok` literal.
14- Restricted `var` statements to the top of functions.
15- Dropped the `= RHS` out of `var x T = RHS`.
16- Changed func out-type from struct to bare type.
17- Renamed the implicit `in` variable to `args`.
18- Added an implicit `coroutine_resumed` variable.
19- Added `std/adler32`, `std/crc32` and `std/gzip`.
20- Spun `std/lzw` out of `std/gif`.
21- Spun `std/zlib` out of `std/flate`.
22- Let the `std/zlib` decoder ignore checksums.
23- Renamed `std/flate` to `std/deflate`.
24- Renamed `!=` to `<>`; `!` is now only for impure functions.
25- Renamed `~+` to `~mod+`; added `~mod-`, `~sat+` and `~sat-`.
26- Removed `&^`.
27- Renamed `$(etc)` to `[etc]`.
28- Renamed `[N] T` and `[] T` types to `array[N] T` and `slice T`.
29- Renamed `buf1`, `reader1`, etc to `io_buffer`, `io_reader`, etc.
30- Renamed `u32`, `io_reader`, etc to `base.u32`, `base.io_reader`, etc.
31- Renamed `unread_u8?` to `undo_byte!`; added `can_undo_byte`.
32- Renamed some `decode?` methods to `decode_io_writer?`.
33- Replaced `= try foo` with `=? foo`.
34- Prohibited effect-ful subexpressions.
35- Redesigned iterate blocks.
36- Added `{frame,image,pixel}_config` and `pixel_buffer` types.
37- Added a `reset` method.
38- Added `peek_uxx`, `skip_fast` and `write_fast_uxx` methods.
39- Renamed some `read_uxx` methods as `read_uxx_as_uyy`.
40- Report image metadata such as ICCP and XMP.
41- Added I/O positions.
42- Added extra fields (uninitialized internal buffers) to structs.
43- Tweaked how marks and limits work.
44- Supported animated (not just single frame) and interlaced GIFs.
45- Marked some internal status codes as private.
46- Removed closed-for-read/write built-in status codes.
47- Changed the string messages for built-in status codes.
48- Changed `error "foo"` to `"#foo"` or `base."#bar"`.
49- Added warnings as another status code category.
50- Made the status type a `const char *`, not an `int32_t`.
51- Disallowed `__double_underscore` prefixed names.
52- Moved the base38 package from `lang/base38` to `lib/base38`.
53- Added a stand-alone `lib/interval` package.
54- Added fuzz tests.
55- Added `WUFFS_CONFIG__MODULES`.
56- Added `WUFFS_CONFIG__STATIC_FUNCTIONS`.
57- Added some C++ convenience methods.
58- Added some Go and Rust benchmarks.
59- Made struct implementations private (opaque pointers).
60- Sped up the `mimic_deflate_xxx` benchmarks.
61
62
63## 2017-11-16
64
65- [Initial open source
66  release](https://groups.google.com/d/topic/puffslang/2z61mNTAMns/discussion),
67  under the "Puffs" name.
68
69
70---
71
72Updated on April 2019.
73