non port: devel/cdecl/distinfo |
Number of commits found: 76 |
Monday, 9 Jan 2023
|
20:21 Larry Rosenman (ler)
devel/cdecl: update to 13.1
ChangeLog:
auto type definitions and casts
Defining or casting a type containing auto is now correctly reported as an
error.
C23 auto
Added support for auto as a deduced type in C23.
C23 trigraphs
Trigraphs are no longer supported in C23.
_BitInt(<int>) help
_BitInt(<int>) was added to the help text.
Color prompt
Now printing the prompt in color even when readline is disabled.
More English synonyms
The following English synonyms have been added:
boolean _Bool
Boolean _Bool
char 8 char8_t
char 16 char16_t
char 32 char32_t
const-eval consteval
constant-evaluation consteval
const-expr constexpr
constant-expression constexpr
const-init constinit
constant-initialization constinit
double precision double
floating point float
user defined user-defined
wide character wchar_t
C++ auto help
auto is now correctly listed as a C++ type in the help for C++11 and later.
More pseudo-English type names
When explaining gibberish, print types in C/C++ (e.g., int), not pseudo-English
(e.g., integer).
--no-english-types, -T, & english-types
Added command-line options to disable printing type names in pseuso-English and
corresponding set option.
More english for user-defined conversions
User-defined conversions in pseudo-English now allow "const[ant] eval[uation]",
"const[ant] expr[ession]", and "const[ant] init[ialization]" for a storage
class.
_BitInt maximum bits
Now check that the maximum number of bits for _BitInt is 64.
explicit-int parsing
Fixed a bug of not resetting the current explicit-int option to none before
parsing a new string.
friend scoped user-defined conversion operators
Explaining a friend scoped user-defined conversion operator, e.g.:
explain friend C::operator int()
is now parsed correctly.
[[noreturn]] in C23.
[[noreturn]] is now printed rather than _Noreturn in C23.
Invalid destructor name error
Improved the error message for an invalid destructor name, e.g., S::~T.
Removed --interactive & -i options
Removed these command-line options. They've been in cdecl since the beginning,
but never seemed to have a justification.
exit and quit command line arguments
Both the exit and quit commands when given as the first word of the first
argument on the command line are now correctly reported as an error.
C23 constexpr help
Added missing constexpr to the help for C23.
Missing C++ types man page
Added some missing C++23 types to the manual page.
Octal digit separators
Digit separators are now supported for octal integers.
reproducible and unsequenced man page
Added missing reproducible and unsequenced to the manual page.
Variadic function parameter
A ... is now correctly allowed as the only function parameter in C++ as well as
C23.
6e09787 |
Tuesday, 1 Nov 2022
|
14:16 Larry Rosenman (ler)
devel/cdecl: Update to 13.0
ChangeLog:
Better copy constructor support
Declarations like:
c++decl> explain C(C const&)
declare C as constructor (reference to constant C)
are now supported better.
C23 alignas
In C23, alignas is now used instead of _Alignas.
C23 _BitInt(N)
The _BitInt(N) type in C23 in now supported.
C23 bool
In C23, bool is now used instead of _Bool.
C23 constexpr
The constexpr storage class in C23 is now supported.
C23 fixed type enum
Fixed-type enumerations in C23 are now supported.
Digit separators
Digit separators are now supported.
C23 reproducible & unsequenced
These C23 attributes are now supported.
C23 thread_local
In C23, thread_local is now used instead of _Thread_local.
C23 true, false, nullptr, static_assert, & thread_local
These are now also keywords in C23.
C23 typeof & typeof_unqual
These C23 keywords are now recognized, but not supported by cdecl.
More C++23 standard types
Added the standard C++23 types std::bfloat16_t, std::float128_t,
std::float16_t, std::float32_t, std::float64_t, std::ospanstream,
std::spanbuf, std::spanstream, std::stacktrace, std::unexpect_t,
std::wospanstream, std::wspanbuf, and std::wspanstream.
Enumeration bit-fields
Enumerations in C++ can now be bit fields.
C++23 explicit object parameters
Explicit object parameters in C++23 are preliminarily supported.
C++ static operator()
Now allow operator() to be static in C++23.
Added std::bernoulli_distribution and std::random_device
Added these missing C++11 types.
static or const array parameters
Both static or const array declarations are now additionally recognized
outside of function parameters allowing more specific error reporting
(since they're still illegal).
C++11 explicit user-defined conversion operators
Explicit user-defined conversion operators are now correctly allowed in
C++11 and later.
Echoing commands
A new --echo-commands/-O command-line option and echo-commands set
option has been added that echos command given before corresponding
output. (This is primarily useful for associating command output with
input in test scripts.)
Better alignment error location
Improved the location of alignment errors.
Fixed aligned bit fields
Aligned bit fields are now correctly forbidden.
Fixed noprompt error column
Fixed the error column when the prompt is disabled.
ecc6a02 |
Sunday, 7 Aug 2022
|
01:30 Larry Rosenman (ler)
devel/cdecl: distfile re-rolled
due to a minor bug.
f34ecf5 |
Saturday, 6 Aug 2022
|
15:24 Larry Rosenman (ler)
devel/cdecl: update to 12.0
ChangeLog:
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)
75ff759 |
Sunday, 15 May 2022
|
01:46 Larry Rosenman (ler)
devel/cdecl: Upgrade to 11.15
ChangeLog:
Atomic arrays
_Atomic arrays are now correctly forbidden:
typedef int A[2]
explain _Atomic A x // error: _Atomic array of T is illegal
Note that:
_Atomic int x[2]; // OK: array of _Atomic T is legal
is legal.
CDECLRC environment variable
If none of the --config, -c, --no-config, nor -C command line options
are given and the value of the CDECLRC environment variable isn't empty,
it's used as the full path to the cdeclrc file to read upon start-up.
Configuration file default language
Previously, cdecl would temporarily set the current language to the
latest supported version of C++ while reading a configuration file. It
no longer does this as a special case. Now, as always, it sets the
default language based on the executable name.
enum alignment in C11
Alignment of enums is now correctly allowed in C11.
Types as objects
Previously declared types are now checked to ensure they're not being
used as objects:
cdecl> struct S
cdecl> explain int S // error (now)
cf19ea6 |
Friday, 11 Mar 2022
|
16:01 Larry Rosenman (ler)
devel/cdecl: upgrade to 11.14
ChangeLog:
Alternative tokens & digraphs
Now prints a warning that neither alternative tokens nor digraphs are
supported until C95. Also now printing a warning if alternative tokens
are set and the current language changes to one that doesn't support
them.
east-const in K&R C
Now prints a warning that east-const isn't supported until C89.
using
Now prints a warning that using isn't supported until C++11.
Fixed void f(int())
The long-standing issue #10 has finally been fixed.
Fixed help message
The old mention of files... in the help messages was removed.
06dd8b8 |
Sunday, 27 Feb 2022
|
21:03 Larry Rosenman (ler)
devel/cdecl: update to 11.13
ChangeLog:
Aligned enum, struct, and union in C
Alignment of enum, struct, and union is now correctly forbidden in C.
alignas & _Alignas
These keywords are now additionally allowed instead of aligned [as|to]
in pseudo-English.
Auto-completion of cdecl keywords
Cdecl keywords are now not auto-completable when explaining gibberish.
Auto-completion tweaks
new is now auto-completable; variadic is now autocompletable only in C89
and later. The following are now not autocompletable: co_await,
co_return, co_yield, concept, decltype, and requires.
restrict of typedef
restrict is now correctly allowed on typedefs of pointer:
cdecl> typdef int *pint
cdecl> explain restrict pint p
declare p as restricted pint
return English shorthand
return is now accepted as a shorthand for returning in pseudo-English.
English new-style cast synonyms
The C++ keywords const_cast, dynamic_cast, reinterpret_cast, and
static_cast are now synonyms for their respective two-word counterparts
in pseudo-English.
Fixed core dump for --debug/-d for operator
Fixed a core dump when using the --debug/-d option for an operator.
Fixed function returning function parameter crash
A crash for:
explain void f( int()() )
(which is illegal) has been fixed.
2f70772 |
Friday, 11 Feb 2022
|
15:47 Larry Rosenman (ler)
devel/cdecl: Upgrade to 11.12.
ChangeLog:
noexcept for function parameters
noexcept is now correctly allowed for pointers to function parameter
arguments:
c++decl> explain void g( void (*f)() noexcept )
declare g as function (f as pointer to no-exception function returning
void) returning void
Dynamic exception specifications
These are now parsed, but either not supported by cdecl through C++14 or
no longer supported in C++17.
Ignore leading whitespace for command completion
Previously, if there was any leading whitesplace before a command, that
is:
cdecl> dec<TAB>
^
leading whitespace
it wouldn't match: now it does.
Fixed interactive column
The column number printed for error and warning messages
while interactive is now correct.
1d3251a |
Sunday, 23 Jan 2022
|
02:33 Larry Rosenman (ler)
devel/cdecl: update to 11.11
ChangeLog:
using with attributes
Now supporting using with attributes:
c++decl> explain using Int [[maybe_unused]] = int
declare Int as maybe unused type int
Declare types with using
In C++11 and later, types are now declared with using instead of typedef
by default.
using declarations
New --no-using/-u command-line option and using set option that control
whether types are declared with using instead of typedef in C++11 and
later:
c++decl> declare pint as type pointer to int
using pint = int*;
c++decl> set nousing
c++decl> declare pint as type pointer to int
typedef int *pint;
More K&R C types
The types caaddr_t and daddr_t were added; jmp_buf was moved from C89.
1c27917 |
Monday, 3 Jan 2022
|
16:03 Larry Rosenman (ler)
devel/cdecl: upgrade to 11.10
ChangeLog:
Pre-C99 implicit int
Added more support for pre-C99 implicit int:
explain *p // pointer to int
explain *p, i // pointer to int, int
explain *a[4] // array 4 of pointer to int
explain *f() // function returning pointer to int
explain (*p) // pointer to int -- unnecessary ()
const void function parameters
const (and volatile) qualifiers for void as a function "parameter" (even via a
typedef) are now correctly flagged as an error:
void f1(void); // OK
void f2(const void); // error
typedef void Void;
void f3(Void); // OK
typedef const void CVoid;
void f4(CVoid); // error
Redefinition check in C++
C++ doesn't support tentative definitions, so:
int i, i; // OK in C; error in C++
is always an error in C++ even if the types match.
Restricted pointer to non-object
A restricted pointer to a non-object, e.g., function, is now correctly flagged
as an error:
int (*restrict pf)(); // error
d281b78 |
Wednesday, 22 Dec 2021
|
18:32 Larry Rosenman (ler)
devel/cdecl: update to 11.9
ChangeLog:
Fixed reading from stdin
Fixed reading from stdin when it's not a TTY.
Redefinition check
Names being redefined with a different type in the same declaration are now
correctly forbidden:
int i, i; // OK (tentative definition)
int j, *j; // error: different type
Function-like parameter redefinition check
Function-like parameters are now checked for redefinition (more than one
parameter having the same name).
More C++ standard types
Added the standard C++ types std::ispanstream, std::stacktrace_entry, and
std::wispanstream.
60c384a |
Tuesday, 14 Dec 2021
|
18:14 Larry Rosenman (ler)
devel/cdecl: update 11.8
ChangeLog:
New cdecl keywords
There are now the new pseudo-English keywords of evaluation (plus eval as a
shorthand), expression (plus expr), and initialization (plus init) that can
optionally be used after constant (or const) instead of consteval, constexpr, or
constinit, respectively:
c++decl> declare f as constant expression function returning int
constexpr int f();
There are now the new pseudo-English keywords of maybe, unused, thread, local,
as well as discard, except, and return that can be used after no that can be
used instead of maybe_unused, thread_local, nodiscard, noexcept, and noreturn.
Fixed reading of stdin
The "no files as arguments" change broke reading of stdin; fixed.
b311b6c |
Saturday, 11 Dec 2021
|
02:04 Larry Rosenman (ler)
devel/cdecl: update to 11.7
ChangeLog:
Cdecl keywords
When an unexpected name token is encountered, if said token is a cdecl keyword,
it's now mentioned in the error message:
cdecl> declare ptr as pointer to void
^
16: syntax error: "ptr": name expected ("ptr" is a cdecl keyword)
Additionally, cdecl keywords are now also offered in suggestions.
register arrays
register arrays are now correctly allowed.
Zero-sized arrays
Zero-sized arrays are now correctly forbidden.
No files as arguments
Command-line arguments were treated as files if they weren't commands.
This dubious use-case was a hold-over from the original cdecl and has
been removed. (If you want to read a file use -f.)
fca70e7 |
Friday, 3 Dec 2021
|
18:37 Larry Rosenman (ler)
devel/cdecl: update to 11.6
ChangeLog:
C++23 integer literal suffixes
The case-insensitive integer literal suffixes of uz and zu for size_t and z for
ssize_t are now supported.
C++23 operator[]
Now allowing operator[] to have zero or more arguments starting in C++23.
Fixed bug with array of function
Given:
cdecl> explain int f[5](double)
declare f as function (double) returning int
cdecl (1) incorrectly elided the array and therefore (2) didn't report the array
of function as an error.
typedef of function
typedefs of function are now correctly allowed:
typedef int F(void)
b63b0b7 |
Thursday, 11 Nov 2021
|
15:03 Larry Rosenman (ler)
devel/cdecl: update to 11.5.
ChangeLog:
Better error/warning locations
Locations for error and warning messages have been improved.
show error improvement
The show command now correctly prints all possible commands to define a type
when requested to show a type that doesn't exist.
register warnings
A deprecated warning is now printed for a register array, enum, class, struct,
union, pointer, pointer to member, reference, and rvalue reference between C++11
and C++14. (Previously, a warning was printed only for built-in types and
typedefs.)
K&R function parameter printed as int
For functions having K&R C typeless parameters, int is now printed in C89 and
later since such parameters are implicitly int.
show using before C++11
A show using before C++11 now prints an error.
Help output
Tweaked help output.
fee84292 |
Tuesday, 19 Oct 2021
|
14:52 Larry Rosenman (ler)
devel/cdecl: upgrade 11.2->11.4
ChangeLog:
11.3:
Added explicit-ecsu option
Both an --explicit-csu/-S command-line and explicit-ecsu set option have been
added that set which type keywords enum, class, struct, or union, are included
explicitly in C++ declarations. The default is struct and
union only, so:
c++decl> declare ps as pointer to struct S
struct S *ps;
c++decl> declare pt as pointer to class T
T *pt;
Fixed nested array declaration
Explaining a declaration like:
explain int (a)[4]
is now fixed.
11.4:
_Atomic(T) in C++23
Now supporting the _Atomic(T) macro in C++23.
Fixed pointer to a typedef of void
Declarations like:
typedef void V
explain V *p
are now fixed.
Allow declarations using unknown scoped type names
Previously, cdecl complained about things like:
cdecl> define S as struct S
cdecl> explain S::T x
^
19: error: "T": unknown name
Now, it just assumes the T is a type:
declare x as T of structure S
cvr-qualified _Atomic
const-volatile-restrict-qualified _Atomic types are now correctly forbidden.
156e051 |
Sunday, 3 Oct 2021
|
23:15 Larry Rosenman (ler)
devel/cdecl: upgrade from 8.0->11.2
See the github repo for all the changes
6fcfe55 |
Thursday, 30 Jul 2020
|
20:18 ler
devel/cdecl: update to 8.0.
C2X support
Added support for C2X:
Added type char8_t.
Added [[...]] syntax for attributes.
Added [[deprecated]], [[maybe_unused]], and [[nodiscard]] attributes.
Removed support for typeless function arguments in K&R C.
More C++20 support
Added support for constinit and export in C++20.
Embedded C support
Added support for Embedded C:
Added types _Accum and _Fract (and accum and fract).
Added modifier _Sat (and sat and saturated).
Added the typedefs int_hk_t, int_hr_t, int_k_t, int_lk_t, int_lr_t, int_r_t,
uint_uhk_t, uint_uhr_t, uint_uk_t, uint_ulk_t, uint_ulr_t, and uint_your_t.
Since the Embedded C standard is based on C99, support for Embedded C is
available only when the language is set to C99.
Forbidding attribute syntax
The [[xxx]] attribute syntax is now forbidden until either C2X or C++11.
class, struct, & union optional ;
Semicolons are now optional after class, struct, or union declarations.
class, struct, & union define themselves
Before now:
class C { typedef int Int; }
would define only C::Int as a type. Now, the enclosing class, struct, or union
is also defined as a type. Hence, the above is now equivalent to:
define C as class C
define C::Int as int
This also means that either:
class C { }
class C
is eqivalent to:
define C as class C
class, struct, & union commands
class, struct, and union are now commands (just like namespace).
Per-scope types; fixed English scope name order
Each scope of a scoped name (sname) now has its own type. Additionally, the
English printed order is now (correctly) inner-to-outermost. For example:
c++decl> namespace N { class C { typedef int I; }; }
c++decl> explain N::C::I x
declare x as I of class C of namespace N
Floating-point extensions for C types
Added types _Decimal32_t, _Decimal64_t, _Decimal64x, _Decimal128x, _Float32,
_Float32x, _Float64, _Float128, _Float128x, femode_t, and long_double_t.
Aligned to
Now allowing to in addition to as for ... aligned [as|to] ....
show as
Now allowing an optional as in show ... [as] typedef.
asm
Added the asm keyword to prevent declarations from using it.
 |
Monday, 13 Jul 2020
|
15:26 ler
devel/cdecl: update to 7.4.1.
Allowing signed main()
The legal signed main() signature is now accepted.
Ignoring east-const in English
East const is now ignored when explaining gibberish.
Disallowing reference to reference
References to references are now errors.
 |
Thursday, 2 Jul 2020
|
01:57 ler
devel/cdecl: update to 7.4.
Bison debugging change
Changed --enable--yydebug configure option to --enable-bison-debug, --yydebug/-y
cdecl options to --bison-debug/-B, and yydebug to bison-debug set option.
Added Flex debugging
Added --enable-flex-debug configure option, --flex-debug/-F cdecl options, and
flex-debug set option.
Fixed set options
Finally fixed parsing of set options.
 |
Monday, 29 Jun 2020
|
16:35 ler
devel/cdecl: upgrade to 7.3.
Checking main()s signature
The signature of main() is now checked.
More C standard types
Added the standard C types atomic_flag, double_t, fenv_t, fexcept_t, float_t,
jmp_buf, memory_order, va_list, wctrans_t, and wctype_t.
Fixed explaining pointer-to-array function arguments
Explaining a declaration like:
cdecl> explain void f(double (*a)[5])
crashed; fixed.
 |
Monday, 15 Jun 2020
|
19:21 ler
devel/cdecl: upgrade to 7.2.
- changelog:
new & delete operator overloading
Added support for composing and deciphering C++ overloaded new, new[], delete,
and delete[] operators.
extern &static functions
extern or static functions can not be const.
English scoped types
Given:
struct S { typedef int Int; }
explain S::Int x
the explanation is:
declare x as Int of structure S
but English types ("T of ...") weren't legal in cdecl's grammar. They are now.
More C++ std types
Added types std::align_val_t, std::destroying_delete_t, and std::nothrow_t.
throw() put back
throw is still a keyword so it was put back in C++20.
Fixed user-defined literal argument
Explicitly specifying int is now accepted.
 |
Tuesday, 26 May 2020
|
17:25 ler
devel/cdecl: upgrade to 7.1.
dded more GNU extensions
Added GNU C's __complex, __complex__, __const, __inline, __restrict, __signed,
__signed__, __volatile, and __volatile__.
_Bool in C
In C, _Bool is now emitted rather than bool.
register removed
register is now removed (but still reserved) in C++17 and later.
 |
Friday, 15 May 2020
|
19:22 ler
devel/cdecl: upgrade to 7.0.
East const
New -E/--east-const command-line and east-const set options to use "east const"
in gibberish:
cdecl> declare x as const int
int const x;
Correct scope names for nested types
Previously, scope names for nested types were always printed as "of scope"; now
they print the type of scope (class, struct, union, or namespace):
c++decl> struct S { typedef int Int; };
c++decl> explain S::Int x
declare x as Int of structure S
Declare const/volatile user-defined conversion operators
Can now declare const/volatile user-defined conversion operators.
no_unique_address
Added support for the [[no_unique_address]] attribute in C++20.
Typename
Now allowing typename in declarations (even though it's not needed):
struct S { typedef int I; };
explain typename S::I x
typedef typename S::I T
throw() deprecated/removed
throw() has been deprecated starting with C++11 and removed in C++20.
Fixed unknown type in typedef
Fixed a crash caused by a case like:
define S as struct S
explain S::T x
 |
Monday, 27 Apr 2020
|
16:05 ler
devel/cdecl: upgrade to 6.11.
Added __inline__, __restrict__, and __thread
Added GNU C's __inline__, __restrict__, and __thread.
Added GNU C types
The GNU C types _Decimal32, _Decimal64, _Decimal128, _Float128, __float128,
_Float16, __fp16, __ibm128, _Float64x, __float80, and __int128 were added to the
set of predefined types.
Added WIN32 types
All of the Windows types, e.g., DWORD, HANDLE, INT, etc., given here were added
to the set of predefined types.
Fixed retypedef
Fixed a crash caused by a case like:
typedef int I
typedef I J
typedef I J
 |
Monday, 13 Apr 2020
|
17:09 ler
devel/cdecl: update to 6.10
Added __auto_type
Added GNU C's __auto_type.
Fixed long long C version
The long long type was incorrectly allowed in C89; it wasn't added until C99.
Added pthread.h, threads.h, and C++ thread types
The types pthread_t, pthread_barrier_t, pthread_barrierattr_t, pthread_cond_t,
pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t, pthread_once_t,
pthread_rwlock_t, pthread_rwlockattr_t, and pthread_spinlock_t from <pthread.h>
(POSIX); the types thrd_t, cnd_t, mtx_t, once_flag, thrd_start_t, tss_dtor_t,
and tss_t from <thread.h> (C11); and std::thread (C++11) and std::jthread
(C++20) from <thread> to the set of predefined types.
 |
Thursday, 27 Feb 2020
|
23:08 ler
devel/cdecl: upgrade to 6.9.
Cast accepts as and to
The cast command now accepts as and to in addition to into.
Autocomplete of explain-by-default
Autocomplete was missing explain-by-default; fixed.
 |
Tuesday, 21 Jan 2020
|
21:39 ler
devel/cdecl: update to 6.8.1.
- Reset lexer start-state
In 6.8, start states were added to the lexer. Resetting the lexer now includes
also resetting the start state.
 |
Monday, 13 Jan 2020
|
17:04 ler
devel/cdecl: upgrade to 6.8.
Added set lang=lang
Since the set explicit-int option was added (an option that takes a value), a
set lang=lang option was added.
 |
Tuesday, 7 Jan 2020
|
15:40 ler
devel/cdecl: update to 6.7.
Explicit int in English
Previously when explaining integer declarations, int was implicit:
cdecl> explain unsigned x
declare x as unsigned
Now int is explicit:
cdecl> explain unsigned x
declare x as unsigned int
Added explicit-int option
Both a command-line --explicit-int/-I and explicit-int set option have been
added that set which integer types have int explicitly included in declarations.
 |
Thursday, 12 Dec 2019
|
15:57 ler
devel/cdecl: update to 6.6.2.
Added atomic_char8_t
Added atomic_char8_t typedef for C++20.
Fixed flex & bison dependency
Now insists on flex & bison only when lexer.c & parser.c don't exist (i.e., when
building from a git clone that doesn't include those files rather than an
official release that does).
Explicit structure definition error
Structure declarations (that were never supported) now produce a specific error
message:
cdecl> explain struct S { int x; };
^
18: error: structure definitions are not supported
Fixed libreadline & libcurses dependency
Moved check for libcurses before libreadline since some implementations of the
latter depend on the former (e.g., Solaris 11).
More gcc warnings
Enabled more gcc warnings and fixed them.
thread-local
Added this (with a -) as an English synonym for thread_local (with an _).
 |
Thursday, 31 Oct 2019
|
17:17 ler
devel/cdecl: update to 6.6.1.
Fixed upgrade install
When installing an upgrade, no longer fails when a c++decl symbolic link already
exists.
 |
Wednesday, 23 Oct 2019
|
20:38 ler
devel/cdecl: upgrade to 6.6.
Release Notes:
Defaulted & deleted support
Defaulted & deleted special member functions are now supported.
Explain-by-default option
Both a command-line --explain/-e and explain-by-default set option have been
added that assume a command that doesn't start with any command means explain.
Set option abbreviations
Unambiguous set option name abbreviations may now be used.
Virtual constexpr
Virtual constexpr declarations are now only correctly allowed in C++20.
 |
Wednesday, 24 Jul 2019
|
17:43 ler
devel/cdecl: update to 6.5.1.
Complete storage-class-like constructors
Previously, only explicit was supported for constructors. Now all of constexpr,
explicit, friend, inline, and
noexcept (or throw()) are supported.
 |
Monday, 15 Jul 2019
|
20:34 ler
devel/cdecl: update to 6.5.
Much better alternative tokens support
Alternative tokens (and, and_eq, etc.) are now parsed correctly in all cases.
Additionally, alternative tokens can be emitted via the new set alt-tokens
option.
Changed -q to -p
The --quiet and -q options (that were in the original cdecl) were changed to
--no-prompt and -p so they're more explicit about what they do.
Trigraphs warning
If the trigraphs option is set and the language is C++17 or later, a warning
will be printed (since trigraphs were removed from C++17).
Set command output changed
The set command now only prints the current options. Its help has beed added to
the help command.
Better K&R C prototypes error
The error message given when attempting to use function prototypes in K&R C has
been improved.
--
 |
Wednesday, 26 Jun 2019
|
04:00 ler
devel/cdecl: upgrade to 6.4.2.
Fixed 32-bit CPU support
Now (again) supports running on 32-bit platforms.
More help
The --help option now prints long options and project URLs.
 |
Friday, 21 Jun 2019
|
02:15 ler
devel/cdecl: update to 6.4.1.
Fixed use of GNU Readline
Several things relating to the use of GNU Readline were fixed.
(I (ler) reported the warnings, and bison warnings that were
also fixed).
 |
Wednesday, 19 Jun 2019
|
13:22 ler
devel/cdecl: update to 6.4.
Added support for user-defined conversion operators
Now supports C++ user-defined conversion operators.
cdecl> explain operator int const*() const
declare constant user-defined conversion operator returning pointer to constant
int
Added support for alignment specifiers
Now supports C11 _Alignas and C++11 alignas specifiers.
cdecl> explain _Alignas(64) int x
declare x as int aligned as 16 bytes
Added more predefined typedefs
More predefined typedefs were added: fd_set, nfds_t, and sigset_t.
Reported by: portscout
 |
Thursday, 23 May 2019
|
17:34 ler
devel/cdecl: Upgrade to 6.3.2.
Added missing virtual for destructor
Added virtual that was missing from the help and man page for destructor.
 |
05:15 ler
devel/cdecl: upgrade to 6.3.1.
Added support for noexcept constructors
Constructors can now be noexcept.
Added support for noexcept and virtual destructors
Destructors can now be noexcept and/or virtual.
 |
Wednesday, 22 May 2019
|
13:49 ler
devel/cdecl: upgrade to 6.3.
Added support for constructors & destructors
Now supports C++ constructors & destructors.
Split up help command output
The output of the "help" command has been split into "command" and "english"
because the output has gotten too big for an 80x24 screen.
 |
Saturday, 11 May 2019
|
22:37 ler
devel/cdecl: upgrade to 6.2.
Added C++11 user-defined literal support
Added support for user-defined literals. For example:
cdecl> explain int operator"" _a(unsigned long long x)
declare _a as user-defined literal (x as unsigned long long) returning int
More commands as first argument
More commands (define, namespace, set, static, typedef, and using) are now
recognized as such when they are the first argument.
Added support for char8_t
Now supports C++20's char8_t.
Added support for more standard types
Added typedef declarations for div_t, imaxdiv_t, ldiv_t, lldiv_t, sig_atomic_t,
streambuf, streamoff, streamsize, and wstreambuf.
 |
Wednesday, 17 Apr 2019
|
09:55 ler
devel/cdecl: update to 6.1.
Final or override now implies virtual
Either final or override in a function's signature now implies it's virtual:
cdecl> explain void f() override
declare f as overridden virtual member function returning void
Reported by: portscout
 |
Sunday, 31 Mar 2019
|
02:58 ler
devel/cdecl: update to 6.0.2
Added strndup()
Added Gnulib's strndup() for systems that don't have it.
Fixed cast warning
Fixed "cast to pointer from integer of different size" on some compilers.
 |
Tuesday, 26 Mar 2019
|
17:37 ler
devel/cdecl: update to 6.0.1.
6.0 release notes:
Added C++ scoped name support
Added support for scoped names in C++. For example:
cdecl> explain int S::x
declare x of scope S as int
cdecl> define S::T as struct T; explain S::T x
declare x as T of scope S
Added partial namespace support
Specifically, you can now perform typedef and using declarations within
namespaces or inline namespaces:
c++decl> namespace S { inline namespace T { typedef int Int; } }
c++decl> show user typedef
namespace S::T { typedef int Int; }
6.0.1 release note:
Fixed undefined uint64_t
Fixed a compile-time error on some platforms.
Reported by: portscout
 |
Thursday, 13 Dec 2018
|
19:50 ler
devel/cdecl: Update to 5.2.
Added digraph and trigraph support
Added support for digraphs and trigraphs.
 |
Saturday, 8 Dec 2018
|
19:51 ler
devel/cdecl: Update to 5.1
Added C++20 support
Specifically, consteval functions, operator<=>(), and predefined typedefs were
added: partial_ordering, strong_equality, strong_ordering, weak_equality, and
weak_ordering.
Added C18 support
Since C18 is only a bugfix version, "C18" is merely recognized as a valid
version of C.
 |
Saturday, 1 Dec 2018
|
15:30 ler
devel/cdecl: update to 5.0.
pet portlint.
Added all C/C++ keywords
All C/C++ keywords have been added to the lexer/parser to prevent declaring
variables or functions having names that are keywords. For example:
declare break as int
is now correctly reported as an error.
Additionally, names that are keywords is later versions of C/C++, while legal,
now issue warnings, e.g.:
cdecl> declare class as int
^
18: warning: "class" is a keyword in C++98
int class;
Operator overloading
Added support for composing and deciphering C++ overloaded operators.
Fixed const/volatile reference
Declarations of the form:
declare r as const reference to int
declare r as volatile reference to int
are now correctly reported as an error.
Added member/non-member to functions
You can now explcitly specify either "member" or "non-member" in declarations:
declare f as const member function
Additionally, cdecl will include "member" in function explanations when it can
infer a function is a member function:
cdecl> explain void f() const
declare f as constant member function returning void
Fixed friend const/volatile/override/final/virtual/reference functions
Declarations of the form:
declare f as friend const function returning bool
are now correctly reported as an error.
 |
Monday, 8 Oct 2018
|
16:45 ler
devel/cdecl: update to 4.8.
Show command improvement
The show command can now show the definition of a type in English
(same as before, but now the default) or in gibberish as a typedef
(new, optional).
Note also that the trailing types keyword has been removed from
the command: it wasn't needed.
 |
Tuesday, 11 Sep 2018
|
16:41 ler
devel/cdecl: update to 4.7.
Added more predefined typedefs
More predefined typedefs were added: blkcnt_t, blksize_t, clockid_t, clock_t,
dev_t, errno_t, FILE, fpos_t, gid_t, in_addr_t, ino_t, in_port_t, mbstate_t,
mode_t, nlink_t, off_t, pid_t, rlim_t, rsize_t, sa_family_t, socklen_t,
suseconds_t, time_t, uid_t, useconds_t, and wint_t.
 |
Sunday, 1 Jul 2018
|
21:22 ler
devel/cdecl: update to 4.6.1:
Fixed explaining of unnamed array function arguments
Explaining unnamed array function arguments like:
void f(char[])
now works.
 |
19:50 ler
devel/cdecl: update from 4.4.3 to 4.6
4.5 Release Notes:
Using declarations
Added support for C++11's using declarations as a synonym for typedef.
4.6 Release Notes:
Explain using declarations
Added support for explaining C++11's using declarations.
Notified by: portscout
 |
Monday, 19 Mar 2018
|
01:08 ler
devel/cdecl: update to 4.4.3.
Minor fix to red-black tree code.
Now initializing node->parent to NIL.
 |
Sunday, 5 Nov 2017
|
19:50 ler
devel/cdecl: upgrade to 4.4.2.
Fixed declare of function with an invalid argument
A declaration like:
declare f as function (x as unknown_type)
now correctly reports the unknown type.
 |
Sunday, 29 Oct 2017
|
19:56 ler
devel/cdecl: update to 4.4.1
Fixed typedef of pointer-to-function
A typedef like:
typedef void (*f)(int)
now works correctly.
Added CONFIGURATION FILE section
The cdecl(1) man page now contains a CONFIGURATION FILE section.
 |
Thursday, 26 Oct 2017
|
19:53 ler
devel/cdecl: upgrade to 4.4.
Added C++ attribute specifier support
The C++ attrribute specifiers carries_dependency, deprecated, noreturn,
maybe_unused, and nodiscard are now supported.
 |
Saturday, 14 Oct 2017
|
23:50 ler
devel/cdecl: update to 4.3:
Added C99 _Imaginary number support
C99 _Imaginary number declarations are now supported.
External
The keyword external is now a synonym for extern.
More English for explain
More English synonyms are used in explanations, e.g.:
declare x as automatic
declare x as constant int
declare x as enumeration E
declare x as structure S
 |
09:11 ler
devel/cdecl: update to 4.2.
Added noexcept and throw() support
Function declarations may now include exception specifications.
Fixed handling of leading whitespace in command-line argument
The unusual case of:
cdecl ' declare x as int'
i.e., a quoted argument having leading whitespace, is now handled correctly.
 |
Monday, 9 Oct 2017
|
19:53 ler
devel/cdecl: upgrade to 4.1.
New C11 standard atomic types
The following C11 atomic types are now supported via the new typedef command:
atomic_bool, atomic_char, atomic_schar, atomic_char16_t, atomic_char32_t,
atomic_wchar_t, atomic_short, atomic_int, atomic_long, atomic_llong,
atomic_uchar, atomic_ushort, atomic_uint, atomic_ulong, atomic_ullong,
atomic_ptrdiff_t, atomic_size_t, atomic_intmax_t, atomic_intptr_t,
atomic_uintptr_t, atomic_uintmax_t, atomic_int_fast8_t, atomic_int_fast16_t,
atomic_int_fast32_t, atomic_int_fast64_t, atomic_uint_fast8_t,
atomic_uint_fast16_t, atomic_uint_fast32_t, atomic_uint_fast64_t,
atomic_int_least8_t, atomic_int_least16_t, atomic_int_least32_t,
atomic_int_least64_t, atomic_uint_least8_t, atomic_uint_least16_t,
atomic_uint_least32_t, and atomic_uint_least64_t.
Fixed typedef and define commands with storage classes
Typedef and define now prohibit storage classes, e.g.:
typedef static int sint;
is now correctly reported as an error.
 |
Friday, 22 Sep 2017
|
13:19 ler
devel/cdecl: upgrade to 4.0.
Added C++17 support
Specifically, inline variable declarations are now supported.
New typedef and define commands
New typedef gibberish and define english commands have been added to allow new
types to be defined that can then be used in subsequent declarations and
explanations.
New C99 standard types
The following C99 types are now supported via the new typedef command:
int8_t, int16_t, int32_t, int64_t, int_fast8_t, int_fast16_t, int_fast32_t,
int_fast64_t, int_least16_t, int_least32_t, int_least64_t, int_least8_t,
intmax_t, intptr_t, ptrdiff_t, uint8_t, uint16_t, uint32_t, uint64_t,
uint_fast8_t, uint_fast16_t, uint_fast32_t, uint_fast64_t, uint_least8_t,
uint_least16_t, uint_least32_t, uint_least64_t, uintmax_t, and uintptr_t.
New --no-typedefs/-t command-line options
Either of these options suppresses the definition of the standard C99 types.
Reads configuration file
Upon start-up and if it exists, reads ~/.cdeclrc (by default) for
user-definedtypedef or define commands.
New --config/-c command-line options
These options specify an alternate configuration file to read upon start-up. As
a result, the -c option in earlier versions of cdecl used to specify when to
colorize output has been renamed to -k.
New --no-config/-C command-line options
These options suppress the reading of a configuration file, even one
explicitlyspecified via --config/-c.
New show command
A new show command has been added to show the definition of either predefined or
user-defined types.
Register warning
The use of register now triggers a warning in C++11 and later.
Reported by: portscout
 |
Wednesday, 30 Aug 2017
|
18:06 ler
devel/cdecl: upgrade to 3.6.
First word of first argument
The first word of the first non-option command-line argument is now also checked
to see
if it's a command thus allowing fully quoted strings:
$ cdecl 'explain int *const p'
 |
Sunday, 27 Aug 2017
|
03:26 ler
devel/cdecl: upgrade to 3.5
Added ssize_t
Similar to size_t, support for ssize_t has been added.
 |
Monday, 17 Jul 2017
|
17:45 ler
devel/cdecl: update to 3.4.1
Fixed new-style casts C++ version
New-style casts are now permitted as far back as C++98.
 |
Friday, 14 Jul 2017
|
17:52 ler
devel/cdecl: update to 3.4.
Static & type-qualified arrays
Added support for C99 static and type-qualified array function arguments, e.g.:
void f( int a[static const 10] );
Variable length arrays
Added support for C99 variable length array function arguments, e.g.:
void f( int a[*] );
void g( int a[const *] );
Help command-line argument
Now prints the help message and exits if the first command-line argument is
"help".
Fixed reference to array
The generated gibberish for "reference to array" has been fixed.
 |
Wednesday, 7 Jun 2017
|
17:22 ler
Update devel/cdecl to 3.3.
Help command-line option
Added the command-line options of -h or --help that prints the usage message.
Fixed const pointers to members
Explaining const/volatile pointers to members now works.
 |
Tuesday, 30 May 2017
|
01:48 ler
devel/cdecl: upgrade to 3.1
**C++ new-style casts**
Added support for C++ new-style casts.
**Language-sensitive autocompletion**
Autocompletion is now language-sensitive in that it will not offer completions
that are not valid in the current language.
**Context-sensitive autocompletion**
Autocompletion is now slightly more context-sensitive in that it will offer only
command keywords for the first word in the input.
**Fixed command-line error printing**
Command-line input is now printed when there's an error.
 |
Monday, 29 May 2017
|
11:58 ler
Update devel/cdecl to 3.1.5
**Fixed color prompt caret position**
The position of the caret in error messages when using color prompts has been
fixed.
 |
Wednesday, 24 May 2017
|
19:51 ler
devel/cdecl upgrade to 3.1.4:
Fixed cv-qualifier in help
The <cv-qualifier> in the help text was missing .
 |
Saturday, 6 May 2017
|
15:32 ler
devel/cdecl: upgrade to 3.1.3
Fixed synonyms in explain
Explanations no longer wrongly allow English synonyms.
Approved by: adamw (mentor, implicit)
 |
Friday, 5 May 2017
|
23:17 ler
devel/cdecl: upgrade to 3.1.2
Fixed declarations with storage-class
Declarations like:
declare x as static pointer to function returning int
declare x as type pointer to function returning int
are fixed.
Approved by: adamw (mentor, implicit)
 |
Wednesday, 3 May 2017
|
12:16 mat
Simplify USE_GITHUB usage.
Sponsored by: Absolight
 |
Monday, 1 May 2017
|
01:54 ler
devel/cdecl: upgrade to 3.1.1
Parallel builds
Parallel builds were fixed.
Manual page caveats
Added additional caveats: qualified C++ data members or member functions
are not supported.
Approved by: adamw (mentor, implicit)
 |
00:39 ler
devel/cdecl: upgrade to new major version 3.1
This version fixes virtually all the deficiencies in earlier versions as well
as adds many new features, most notably:
Using GNU Autotools for building.
Command-line long-options.
Distinguishes among K&R C, C89, C95, C99, C11, C++98, C++03, C++11, and C++14.
Support for C11 and C++11 types bool, char16_t, char32_t, complex, restrict,
size_t, thread_local, and wchar_t.
Support for inline function declarations.
Support for typedef declarations.
Support for variadic function arguments.
Support for C++11 constexpr, enum class, mutable, rvalue references, and the
function trailing return-type syntax.
Support for const, final, friend, override, volatile, virtual, pure virtual, and
ref-qualified C++ member function declarations.
Better warning and error messages complete with location information and color.
Take Maintainer'ship.
Submitted by: paul@lucasmail.org
Approved by: adamw (mentor, implicit)
 |
Sunday, 3 Jul 2011
|
14:59 ohauer
-remove MD5
 |
Thursday, 24 Nov 2005
|
15:40 pav
- Add some SHA256 checksums
 |
Thursday, 29 Jan 2004
|
07:24 trevor
SIZEify.
 | Number of commits found: 76 |
|