cdecl-12.0
Added suggestions
Added suggestions to error messages in certain cases when a keyword is expected, for example:
cdecl> declare x as type poiner to int
^
19: syntax error: "poiner": "as" expected; did you mean "pointer"?
Better executable name checking
Previously, if cdecl was invoked as cast
, declare
, or explain
, or with a name that isn't a command (through renaming or a hard or a symbolic link) without command-line arguments, it behaved as if it were invoked as cdecl
without error. This has been fixed.
C23
The placeholder name of C2X has been changed to C23.
Color and TERM
The TERM
environment variable is no longer considered when determining whether color should be used in output. Now, all that matters is whether the output stream is connected to a TTY.
exit
auto-completion
The exit
command is no longer auto-completable enabling explain
to be auto-completed after typing only ex
rather than exp
as before.
help options
types
Help for types was added to options help.
explicit
help
The missing explicit
was added to the help.
explicit-escu
for enum
The explicit-ecsu
option for enums is fixed.
include
Added a new include
command to include cdecl commands from files either from a configuration file or the cdecl command line.
_Noreturn
deprecated
_Noreturn
is now deprecated in C2X.
Printing of types
Now printing types in error messages as they were originally defined (pseudo-English vs. gibberish) in more cases.
Additional sanitizers
The configure
options of --enable-msan
and --enable-ubsan
have been added to enable clang's Memory Sanitizer and Undefined Behavior Sanitizer, respectively. The previous --enable-address-sanitizer
has been renamed to --enable-asan
.
show
autocompletion
The show
command now uses command-specific autocompletion.
Overloading co_await
operator
Overloading the co_await
operator is now supported.
Predefined types
Fixed spelling of bad_typeid
; added source_location
, type_index
, and type_info
.
Types as objects, English edition
Previously declared types in pseudo-Engilsh are now checked to ensure they're not being used as objects:
cdecl> struct S
cdecl> declare S as int // error (now)