CHANGELOG.md
# Changelog
## Dev
## v0.3.11 (2024-12-21)
- Enable support for Elixir 1.18
## v0.3.10 (2024-07-14)
- Enable support for Elixir 1.17
## v0.3.9 (2024-06-25)
- `Dune.Allowlist.Default` allows the `Version` module
## v0.3.8 (2024-05-26)
### Bug fixes
- Make sure the `Duration` atom is available
## v0.3.7 (2024-05-26)
### Bug fixes
- Fix incorrect type definitions, remove unused ones
### Enhancements
- `Dune.Allowlist.Default` allows the new `Duration` module and new kernel
functions from Elixir 1.17
- Add an `:inspect_sort_maps` option for deterministic outputs
- Capture and return parser warnings in `stdio`
## v0.3.6 (2023-12-23)
- Support Elixir 1.16
- `Dune.Allowlist.Default` allows `**/2`
## v0.3.5 (2023-11-10)
### Enhancements
- Prepare Elixir 1.16 support(handle line-column positions in diagnostics)
## v0.3.4 (2023-09-14)
### Bug fixes
- Fix `UndefinedFunctionError` when using external modules in a custom allowlist
## v0.3.3 (2023-08-13)
### Bug fixes
- Fix vulnerability allowing an attacker to crash the VM using bitstrings
## v0.3.2 (2023-08-12)
### Enhancements
- `dbg/1` uses pretty printing
### Bug fixes
- Fix error message on restricted `dbg/0`
## v0.3.1 (2023-08-12)
### Enhancements
- Add support for `dbg/1`
### Bug fixes
- Properly distinguish user code `throw/1` from internal ones
## v0.3.0 (2023-08-09)
### Breaking changes
- Drop support for Elixir 1.13
- Compile errors are now returned as a separate type `:compile_error`
### Enhancements
- Support Elixir 1.15
- Capture compile diagnostics (Elixir >= 1.15)
### Bug fixes
- Better handle `UndefinedFunctionError` for dynamic module names
## v0.2.6 (2022-10-17)
### Enhancements
- Support Elixir 1.14
## v0.2.5 (2022-08-25)
### Bug fixes
- Restrict the use of `:counters` in `Dune.Allowlist.Default`, since it can leak
memory
## v0.2.4 (2022-07-13)
### Bug fixes
- Validate module names in `defmodule`, reject `nil` or booleans
## v0.2.3 (2022-04-13)
### Bug fixes
- `Dune.string_to_quoted/2` quotes modules with `.` correctly
- OTP 25 regression: keep a clean stacktrace for exceptions
## v0.2.2 (2022-04-05)
### Enhancements
- Add `Dune.string_to_quoted/2` to make it possible to visualize AST
- Merged parsing and eval options in a single `Dune.Opts` for simplicity
- Add a `pretty` option to inspect result
- Better error message when `def/2` and `defp/2` called outside a module
### Breaking changes
- Removed Dune.Parser.Opts and Dune.Eval.Opts
## v0.2.1 (2022-03-19)
### Bug fixes
- Handle default arguments in functions
- Handle conflicting `def` and `defp` with same name/arity
## v0.2.0 (2022-01-02)
### Breaking changes
- Support Elixir 1.13, drop support for 1.12
- This fixes a [bug in atoms](https://github.com/elixir-lang/elixir/pull/11313)
was due to the Elixir parser
## v0.1.2 (2021-10-17)
### Enhancements
- Allow safe functions from the `:erlang` module
### Bug fixes
- Fix bug when calling custom function in nested AST
## v0.1.1 (2021-10-16)
### Bug fixes
- Prevent atom leaks due to `Code.string_to_quoted/2` not respecting
`static_atoms_encoder`
- Handle Elixir 1.12 bug on single atom ASTs
- Handle atoms prefixed with `Elixir.` properly
- Fix inspect for quoted atoms
## v0.1.0 (2021-09-19)
- Initial release