aboutsummaryrefslogtreecommitdiff
path: root/contrib/lyaml/NEWS.md
blob: 32611d83671ac69df1697cc7d1fa633e7aff0e86 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
# lyaml NEWS - User visible changes

## Noteworthy changes in release 6.2.8 (2022-10-22) [stable]

### Bug fixes

  - `luke` no longer crashes in `std.normalize` require loops
    occasionally in Lua 5.4.

  - lyaml emitter no longer leaks at least six bytes for every
    map, sequence and scalar emitted.


## Noteworthy changes in release 6.2.7 (2020-11-27) [stable]

### Bug fixes

  - Don't skip YAML entries from mixed key Lua tables.


## Noteworthy changes in release 6.2.6 (2020-08-28) [stable]

### Bug fixes

  - `luke` really propagates `LDFLAGS` to module compilation
    commands.


## Noteworthy changes in release 6.2.5 (2020-04-15) [stable]

### Bug fixes

  - `luke` really propagates `YAML_BINDIR`, `YAML_DIR`,
    `YAML_INCDIR` and `YAML_LIBDIR` to checksymbol test in lukefile
    given the change to `external_dependencies` layout in 6.1.2.


## Noteworthy changes in release 6.2.4 (2019-07-20) [stable]

### Bug fixes

  - `luke` works with upgraded bootstrap luarocks version of
    `require`.


## Noteworthy changes in release 6.2.3 (2018-09-16) [stable]

### New Features

  - Initial support for Lua 5.4.


## Noteworthy changes in release 6.2.2 (2018-03-28) [stable]

### Bug fixes

  - Remove spurious dependency on `std.normalize` and `std._debug`
    libraries.


## Noteworthy changes in release 6.2.1 (2018-02-20) [stable]

### Bug fixes

  - `spec/spec_helper.lua` now looks in the correct objdir
    for object modules built by luke, instead of adding unused
    paths from old Autotools objdirs.  So now specl is properly
    running examples against the not yet installed lyaml objects.


## Noteworthy changes in release 6.2 (2017-11-26) [stable]

### Bug fixes

  - `luke` uses the correct spelling of LIBFLAG to match luarocks now.

  - `luke` no longer throws spurious `cp: file exists` errors.

  - `luke` works on luajit again.


## Noteworthy changes in release 6.1.3 (2017-05-29) [stable]

### Bug fixes

  - `luke` no longer bombs out with a nil concat error.


## Noteworthy changes in release 6.1.2 (2017-04-30) [stable]

### Bug fixes

  - `luke` now propagates `LUA_DIR`, `YAML_INCDIR` and `YAML_LIBDIR`
    correctly.


## Noteworthy changes in release 6.1.1 (2017-01-22) [stable]

### New Features

  - Builds and installs with `luke` instead of Autotools.


## Noteworthy changes in release 6.1 (2016-10-08) [stable]

### Bug fixes

  - `lyaml.load` now correctly reads implicit null scalars in a YAML
    document as an `lyaml.null` reference, identical to the "~"
    shorthand syntax, according to [the specification][nullspec].

    ```yaml
    empty:
    canonical: ~
    english: null
    ~: null key
    ```


## Noteworthy changes in release 6.0 (2015-07-27) [stable]

### New Features

  - `lyaml.load` now correctly reads a !!bool tagged scalar from a
    YAML document, or an implicit bool value, according to
    [the specification][boolspec].

    ```yaml
    %TAG ! tag:yaml.org,2002:
    ---
    truthy:
      - !bool Y
      - !bool y
      - !bool True
      - !bool "on"
    falsey:
      - !bool n
      - !bool OFF
      - !bool garbage
    ```

  - `lyaml.load` now correctly reads a !!float tagged scalar from a
    YAML document, or an implicit float value, according to
    [the specification][floatspec].

  - `lyaml.load` now correctly reads a !!int tagged scalar from a
    YAML document, or an implicit integer value, according to
    [the specification][intspec].

  - `lyaml.load` now supports the !!merge key type according to
    [the specification][mergespec].

    ```yaml
    - &MERGE { x: 1, y: 2 }
    - &OVERRIDE { x: 0, z: 1 }
    -
      << : [&MERGE, &OVERRIDE]
      z: 3
    ```

    The anchored tables remain in the document too, so this results in
    the following Lua table:

    ```lua
    {                           -- START_STREAM
      {                         -- START_DOCUMENT
        { x = 1, y = 2 },       -- MERGE
        { x = 0, z = 1 },       -- OVERRIDE
        { x = 1, y = 2, z = 3}, -- <<<
      }                         -- END_DOCUMENT
    }                           -- END_STREAM
    ```

### Bug fixes

  - Multi-line strings were previously being dumped using single quotes
    which caused the dumped YAML to break.

    For example, { foo = "a\nmultiline\nstring" } would get dumped as:

    ```yaml
    foo: 'a

    multiline

    string'
    ```

    Note the extra line-breaks in between each line. This also causes
    YAML parsing to fail (since the blank lines didn't have the expected
    indentation).

    This patch fixes the dump to use the YAML literal syntax for any
    multi-line strings so the same example gets dumped as:

    ```yaml
    foo: |-
      a
      multiline
      string
    ```

  - `lyaml.load` now correctly reads the !!null tag in a YAML
    document as an `lyaml.null` reference, identical to the "~"
    shorthand syntax, according to [the specification][nullspec].

### Incompatible Changes

  - `lyaml.load` now takes a table of options as an optional second
    argument, not a simple boolean to determine whether all documents
    should be returned from the stream.  For now, a `true` second
    argument will be converted to the modern equivalent:

    ```lua
    lyaml.load (document, { all = true })
    ```

  - `lyaml.dump` now takes a table of options as an optional second
    argument, not an initial table of anchors.  For now, a second
    argument without any new API keys will be converted to the modern
    equivalent:

    ```lua
    lyaml.dump (t, { anchors = arg2 })
    ```

[boolspec]:  http://yaml.org/type/bool.html
[floatspec]: http://yaml.org/type/float.html
[intspec]:   http://yaml.org/type/int.html
[mergespec]: http://yaml.org/type/merge.html
[nullspec]:  http://yaml.org/type/null.html


## Noteworthy changes in release 5.1.4 (2015-01-01) [stable]

  - This release is functionally identical to the last.


## Noteworthy changes in release 5.1.3 (2015-01-01) [stable]

  - This release is functionally identical to the last.


## Noteworthy changes in release 5.1.2 (2014-12-27) [stable]

### Bugs Fixed

  - No more spurious .travis.yml is out of date warnings during
    `luarocks install lyaml`.


## Noteworthy changes in release 5.1.1 (2014-12-19) [stable]

### Bugs Fixed

  - When using `sudo make install` instead of LuaRocks, `lyaml.so`
    is now correctly installed to `$luaexecdir`.


## Noteworthy changes in release 5.1.0 (2014-12-17) [stable]

### New Features

  - Lua 5.3.0 compatibility.


## Noteworthy changes in release 5 (2014-09-25) [beta]

### Build

  - Significantly reduced pointer mismatch warnings from modern GNU
    compilers.

### New Features

  - `lyaml.dump` now takes a second argument containing a table of
    potential anchor values in `ANCHOR_NAME = { "match", "elements" }`
    pairs format.  The first time any are matched in the table being
    dumped, they are preceded by `&ANCHOR_NAME` in the output YAML
    document; subsequent matches are not written out in full, but
    shortened to the appropriate `*ANCHOR_NAME` alias.

### Bugs Fixed

  - `yaml.emitter` no longer emits numbers in SINGLE_QUOTE style by
    default.

  - `yaml.emitter ().emit` returns error strings correctly for invalid
    STREAM_START encoding, and MAPPING_START, SEQUENCE_START & SCALAR
    style fields.


## Noteworthy changes in release 4 (2013-09-11) [beta]

### New Features

  - New yaml.emitter API returns an object with an emit method for
    adding events using yaml_*_event_initialize() calls.

  - New yaml.parser API returns a Lua iterator that fetches the next
    event using yaml_parser_parse().

  - New yaml.scanner API returns a Lua iterator that fetches the next
    token using yaml_parser_scan().

  - Beginnings of Specl specs, starting with a reasonably comprehensive
    specifications for the new APIs above.

  - C implementation of lyaml.dump has moved to Lua implementation as
    yaml.dump.

  - C implementation of lyaml.load has moved to Lua implementation as
    yaml.load.

  - The new Lua implementation of lyaml.load () handles multi-document
    streams, and returns a table of documents when the new second
    argument is `true`.


## Noteworthy changes in release 3 (2013-04-27) [beta]

  - This release is functionally identical to the last.

### New Features

  - lyaml builds are now made against Lua 5.1, Lua 5.2 and luajit 2.0.0
    automatically, with every commit.

  - move to a cleaner, automated release system.


## Noteworthy changes in release 2 (2013-03-18) [beta]

  - This release is functionally identical to the last.

  - Use correct MIT license attribution, relicensing build files to match
    Andrew Danforth''s MIT licensed lyaml.c too.


## Noteworthy changes in release 1 (2013-03-17) [beta]

### New Features

  - A binding for libYAML, by Andrew Danforth:  Updated for Lua 5.1 and
    5.2, and packaged as a luarock.

  - I spun this out of Specl (http://github.com/gvvaughan/specl) so that
    other projects may use it, and to simplify the Specl build.

### Known Issues

  - There's not really any documentation, sorry.  Contributions welcome!