What's wrong with the defaults? They are parameters are they not?
The point of that message is necessarily the declaration, but how it's going to be called. Delphi (which is the origin for this feature) simply does not allow
TMyRec.Create; and if you have only default parameters this is a possibility to do. FPC adheres to this restriction.
So you either need to have at least one non-default parameter or you need to use a
class function (there isn't really that much of a difference between a
constructor and a
class function for records).
Record constructors do not accept defaults.
Record constructors
do allow default parameters. It's just that you can't have
only default parameters.