-
Notifications
You must be signed in to change notification settings - Fork 242
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Backwards incompatible changes for "is_empty" in 1.6+ #313
Comments
thx for the report, the new behaviour also complies with the documentation. |
Tieske
added a commit
that referenced
this issue
Jul 30, 2020
bungle
added a commit
to Kong/kong
that referenced
this issue
Aug 6, 2020
### Summary #### New features - `pretty.debug` quickly dumps a set of values to stdout for debug purposes #### Changes - `pretty.write`: now also sorts non-string keys [#319](lunarmodules/Penlight#319) - `stringx.count` has an extra option to allow overlapping matches [#326](lunarmodules/Penlight#326) - added an extra changelog entry for `types.is_empty` on the 1.6.0 changelog, due to additional fixed behaviour not called out appropriately [#313](lunarmodules/Penlight#313) - `path.packagepath` now returns a proper error message with names tried if it fails #### Fixes - Fix: `stringx.rfind` now properly works with overlapping matches [#314](lunarmodules/Penlight#314) - Fix: `package.searchpath` (in module `pl.compat`) [#328](lunarmodules/Penlight#328) - Fix: `path.isabs` now reports drive + relative-path as `false`, eg. "c:some/path" (Windows only) - Fix: OpenResty coroutines, used by `dir.dirtree`, `pl.lexer`, `pl.permute`. If available the original coroutine functions are now used [#329](lunarmodules/Penlight#329) - Fix: in `pl.strict` also predefine global `_PROMPT2` - Fix: in `pl.strict` apply `tostring` to the given name, in case it is not a string. - Fix: the lexer would not recognize numbers without leading zero; "-.123". See [#315](lunarmodules/Penlight#315)
dndx
pushed a commit
to Kong/kong
that referenced
this issue
Aug 12, 2020
### Summary #### New features - `pretty.debug` quickly dumps a set of values to stdout for debug purposes #### Changes - `pretty.write`: now also sorts non-string keys [#319](lunarmodules/Penlight#319) - `stringx.count` has an extra option to allow overlapping matches [#326](lunarmodules/Penlight#326) - added an extra changelog entry for `types.is_empty` on the 1.6.0 changelog, due to additional fixed behaviour not called out appropriately [#313](lunarmodules/Penlight#313) - `path.packagepath` now returns a proper error message with names tried if it fails #### Fixes - Fix: `stringx.rfind` now properly works with overlapping matches [#314](lunarmodules/Penlight#314) - Fix: `package.searchpath` (in module `pl.compat`) [#328](lunarmodules/Penlight#328) - Fix: `path.isabs` now reports drive + relative-path as `false`, eg. "c:some/path" (Windows only) - Fix: OpenResty coroutines, used by `dir.dirtree`, `pl.lexer`, `pl.permute`. If available the original coroutine functions are now used [#329](lunarmodules/Penlight#329) - Fix: in `pl.strict` also predefine global `_PROMPT2` - Fix: in `pl.strict` apply `tostring` to the given name, in case it is not a string. - Fix: the lexer would not recognize numbers without leading zero; "-.123". See [#315](lunarmodules/Penlight#315)
Tieske
pushed a commit
to Kong/kong
that referenced
this issue
Sep 22, 2020
### Summary #### New features - `pretty.debug` quickly dumps a set of values to stdout for debug purposes #### Changes - `pretty.write`: now also sorts non-string keys [#319](lunarmodules/Penlight#319) - `stringx.count` has an extra option to allow overlapping matches [#326](lunarmodules/Penlight#326) - added an extra changelog entry for `types.is_empty` on the 1.6.0 changelog, due to additional fixed behaviour not called out appropriately [#313](lunarmodules/Penlight#313) - `path.packagepath` now returns a proper error message with names tried if it fails #### Fixes - Fix: `stringx.rfind` now properly works with overlapping matches [#314](lunarmodules/Penlight#314) - Fix: `package.searchpath` (in module `pl.compat`) [#328](lunarmodules/Penlight#328) - Fix: `path.isabs` now reports drive + relative-path as `false`, eg. "c:some/path" (Windows only) - Fix: OpenResty coroutines, used by `dir.dirtree`, `pl.lexer`, `pl.permute`. If available the original coroutine functions are now used [#329](lunarmodules/Penlight#329) - Fix: in `pl.strict` also predefine global `_PROMPT2` - Fix: in `pl.strict` apply `tostring` to the given name, in case it is not a string. - Fix: the lexer would not recognize numbers without leading zero; "-.123". See [#315](lunarmodules/Penlight#315)
bungle
added a commit
to Kong/kong
that referenced
this issue
Sep 23, 2020
### Summary #### New features - `pretty.debug` quickly dumps a set of values to stdout for debug purposes #### Changes - `pretty.write`: now also sorts non-string keys [#319](lunarmodules/Penlight#319) - `stringx.count` has an extra option to allow overlapping matches [#326](lunarmodules/Penlight#326) - added an extra changelog entry for `types.is_empty` on the 1.6.0 changelog, due to additional fixed behaviour not called out appropriately [#313](lunarmodules/Penlight#313) - `path.packagepath` now returns a proper error message with names tried if it fails #### Fixes - Fix: `stringx.rfind` now properly works with overlapping matches [#314](lunarmodules/Penlight#314) - Fix: `package.searchpath` (in module `pl.compat`) [#328](lunarmodules/Penlight#328) - Fix: `path.isabs` now reports drive + relative-path as `false`, eg. "c:some/path" (Windows only) - Fix: OpenResty coroutines, used by `dir.dirtree`, `pl.lexer`, `pl.permute`. If available the original coroutine functions are now used [#329](lunarmodules/Penlight#329) - Fix: in `pl.strict` also predefine global `_PROMPT2` - Fix: in `pl.strict` apply `tostring` to the given name, in case it is not a string. - Fix: the lexer would not recognize numbers without leading zero; "-.123". See [#315](lunarmodules/Penlight#315)
bungle
added a commit
to Kong/kong
that referenced
this issue
Sep 24, 2020
### Summary #### New features - `pretty.debug` quickly dumps a set of values to stdout for debug purposes #### Changes - `pretty.write`: now also sorts non-string keys [#319](lunarmodules/Penlight#319) - `stringx.count` has an extra option to allow overlapping matches [#326](lunarmodules/Penlight#326) - added an extra changelog entry for `types.is_empty` on the 1.6.0 changelog, due to additional fixed behaviour not called out appropriately [#313](lunarmodules/Penlight#313) - `path.packagepath` now returns a proper error message with names tried if it fails #### Fixes - Fix: `stringx.rfind` now properly works with overlapping matches [#314](lunarmodules/Penlight#314) - Fix: `package.searchpath` (in module `pl.compat`) [#328](lunarmodules/Penlight#328) - Fix: `path.isabs` now reports drive + relative-path as `false`, eg. "c:some/path" (Windows only) - Fix: OpenResty coroutines, used by `dir.dirtree`, `pl.lexer`, `pl.permute`. If available the original coroutine functions are now used [#329](lunarmodules/Penlight#329) - Fix: in `pl.strict` also predefine global `_PROMPT2` - Fix: in `pl.strict` apply `tostring` to the given name, in case it is not a string. - Fix: the lexer would not recognize numbers without leading zero; "-.123". See [#315](lunarmodules/Penlight#315)
bungle
added a commit
to Kong/kong
that referenced
this issue
Sep 27, 2020
### Summary #### New features - `pretty.debug` quickly dumps a set of values to stdout for debug purposes #### Changes - `pretty.write`: now also sorts non-string keys [#319](lunarmodules/Penlight#319) - `stringx.count` has an extra option to allow overlapping matches [#326](lunarmodules/Penlight#326) - added an extra changelog entry for `types.is_empty` on the 1.6.0 changelog, due to additional fixed behaviour not called out appropriately [#313](lunarmodules/Penlight#313) - `path.packagepath` now returns a proper error message with names tried if it fails #### Fixes - Fix: `stringx.rfind` now properly works with overlapping matches [#314](lunarmodules/Penlight#314) - Fix: `package.searchpath` (in module `pl.compat`) [#328](lunarmodules/Penlight#328) - Fix: `path.isabs` now reports drive + relative-path as `false`, eg. "c:some/path" (Windows only) - Fix: OpenResty coroutines, used by `dir.dirtree`, `pl.lexer`, `pl.permute`. If available the original coroutine functions are now used [#329](lunarmodules/Penlight#329) - Fix: in `pl.strict` also predefine global `_PROMPT2` - Fix: in `pl.strict` apply `tostring` to the given name, in case it is not a string. - Fix: the lexer would not recognize numbers without leading zero; "-.123". See [#315](lunarmodules/Penlight#315)
netbsd-srcmastr
pushed a commit
to NetBSD/pkgsrc
that referenced
this issue
Nov 23, 2020
## 1.9.1 (2020-09-27) - fix: dir.walk [#350](lunarmodules/Penlight#350) ## 1.9.1 (2020-09-24) - released to superseed the 1.9.0 version which was retagged in git after some distro's already had picked it up. This version is identical to 1.8.1. ## 1.8.1 (2020-09-24) (replacing a briefly released but broken 1.9.0 version) ## Fixes - In `pl.class`, `_init` can now be inherited from grandparent (or older ancestor) classes. [#289](lunarmodules/Penlight#289) - Fixes `dir`, `lexer`, and `permute` to no longer use coroutines. [#344](lunarmodules/Penlight#344) ## 1.8.0 (2020-08-05) ### New features - `pretty.debug` quickly dumps a set of values to stdout for debug purposes ### Changes - `pretty.write`: now also sorts non-string keys [#319](lunarmodules/Penlight#319) - `stringx.count` has an extra option to allow overlapping matches [#326](lunarmodules/Penlight#326) - added an extra changelog entry for `types.is_empty` on the 1.6.0 changelog, due to additional fixed behaviour not called out appropriately [#313](lunarmodules/Penlight#313) - `path.packagepath` now returns a proper error message with names tried if it fails ### Fixes - Fix: `stringx.rfind` now properly works with overlapping matches [#314](lunarmodules/Penlight#314) - Fix: `package.searchpath` (in module `pl.compat`) [#328](lunarmodules/Penlight#328) - Fix: `path.isabs` now reports drive + relative-path as `false`, eg. "c:some/path" (Windows only) - Fix: OpenResty coroutines, used by `dir.dirtree`, `pl.lexer`, `pl.permute`. If available the original coroutine functions are now used [#329](lunarmodules/Penlight#329) - Fix: in `pl.strict` also predefine global `_PROMPT2` - Fix: in `pl.strict` apply `tostring` to the given name, in case it is not a string. - Fix: the lexer would not recognize numbers without leading zero; "-.123". See [#315](lunarmodules/Penlight#315)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The changelog notes a fix for
is_empty
behavior for tables with boolean keys in 1.6.0, but the changes in 1.6+ appear to be more extensive than that. In 1.5.4,is_empty
returnedfalse
for many other object types that now returntrue
in 1.6-1.7. Examples:This appears related to the changes made in #267, which defaults
is_empty
totrue
for all unchecked cases, rather thanfalse
. A few additional tests were added in #279 which indicate the expected value foris_empty
for at least numbers and booleans istrue
, but I wanted to confirm if these changes were actually intentional.I personally find the
is_empty
behavior in 1.5 to more align with my expectations, since I wouldn't necessarily anticipate numbers, booleans, functions, or userdata to be considered "empty." But if this change is intentional andis_empty
is really only intended to be used to check strings, tables, and nil types, then should this change in behavior maybe be called out more explicitly in the CHANGELOG, since this change in behavior could have more impact than expected?The text was updated successfully, but these errors were encountered: