The Simple Development Library bug database 

1. Open bugs

Criticality Number
Critical 0
Urgent 0
Routine 1
Total 1

2. Bug database

Number 1
Title Incorrect error message when giving more arguments than expected to an extended procedure
Description When giving more arguments to an extended procedure than expected, the raised error reads called "foo-%AFTER-FLAGS% with too many arguments instead of called "foo" with too many arguments
Location SimpleProc 0.1
Criticality Routine
Solution Errors in the call to the "after flags" procedure are now catched. As the only error this call may throw is the "too many arguments" one, the -%AFTER-FLAGS% string is deleted from the error message and the error is rethrown
Status Closed in SimpleProc 0.2

Number 2
Title Deleting a namespace does not delete its extended procedures
Description When a namespace is deleted, the extended procedures therein are not fully deleted.
Location SimpleProc 0.1
Criticality Urgent
Solution The bug was due to the fact that the state of the extended procedures was stored in arrays in the ::Simple::ExtProc namespace instead of in the procedure namespace. Now all the extended procedures state is stored in one array per namespace named %ExtProcs% so that both the procedure and its state vanish when the namespace is deleted. This same approach is used by other Simple Development Library elements, as the errors of the SimpleError package and the extended variables of the SimpleVariable package
Status Closed in SimpleProc 0.2

Number 3
Title Undeclaring a package forgets that package other versions
Description When a declared package is undeclared via ::Simple::Package::undeclare, the ifneeded script of other versions of the same package are forgotten
Location SimplePackage 0.2
Criticality Routine
Solution ::Simple::Package::Priv::available-or-unknown used package forget $package $version, but this command only accepts a package name, not a version; due to a bug in Tcl itself, no error is raised when supplying two arguments. That procedure now accepts a package name only; it saves the ifneeded scripts of that package versions, restoring them after package forget\ $package
Test-case SimplePackage / undeclare-4
Status Closed in SimpleProc 0.3

Number 4
Title The greatest matching version is not used if requisite specifies version when declaring a package
Description When a package is declared via ::Simple::Package::declare and the requisites list specifies a version for a package, the greatest available version of that package matching the requisite should be used, but that was not the case
Location SimplePackage 0.2
Criticality Critical
Open date 02-jun-2000
Solution A package requisites (such as '-exact foo 2.2' or 'bar 1') and a package required packages (such as 'foo 2.2' or 'bar 1.2') are two different things but they were mixed before
Test-case SimplePackage / declare-13
Status Closed in SimpleProc 0.3
Date 17-jun-2000

Number 5
Title Bad handling of arguments in after flags procedures
Description Some argument values, such as "{", confuse the "after flags" procedures sometimes created by ::Simple::Proc::create
Location SimpleProc 0.4.4
Criticality Urgent
Open date 14-nov-2002
Solution The creation of the "after flags" procedure didn't properly quote the procedure arguments
Test-case SimpleProc / create-58
Date 16-nov-2002

Number 6
Title Bad handling of 'package A loads package B which requires package A' situation
Description In the situation when a package A loads package B upon being required, (not because it requires it) which in turn requires package A, SimplePackage throws a "namespace owned" error
Location SimplePackage 0.4.1
Criticality Routine
Open date 16-nov-2002
Solution Handle that situation in ::Simple::Package::Priv::add-namespaces-info
Status Closed in SimplePackage 0.4.2
Date 02-dec-2002

Number 7
Title ::Simple::List::enumerate returns braced string with one-element list containing spaces
Description ::Simple::List::enumerate with a single argument as [list {foo bar}] returns {foo bar}, but should return foo bar
Location SimpleError 0.5.2
Criticality Routine
Open date 07-sep-2004
Solution Handle that situation in ::Simple::List::enumerate
Test-case SimpleError / enumerate-1
Status Closed in SimpleError 0.5.3
Date 07-sep-2004

Number 8
Title Bad handling of invalid command name errors within subcommands
Description When a subcommand throws an invalid command name error the ::Simple::Subcommand::Priv::subcommand-error procedure handles it as an invalid call to the base command, so that a bad option ...: must be ... is thrown
Location SimpleSubcommand 0.5.1
Criticality Urgent
Open date 24-oct-2004
Solution Correct the identification of an invalid call to the base command in ::Simple::Subcommand::Priv::subcommand-error
Test-case SimpleSubcommand / proc-sub-12
Status Closed in SimpleSubcommand 0.5.2
Date 24-oct-2004

Number 9
Title Bad handling of errors while compiling subcommands
Description When a subcommand has an error which is catched by the bytecode compiler, the ::Simple::Subcommand::Priv::subcommand-error procedure handles it as any other run-time errora and so could be missinterpreted. For example, an wrong # of args; should be .. was interpreted as an invalid call to the actual subcommand procedure
Location SimpleSubcommand 0.5.3
Criticality Urgent
Open date 10-feb-2005
Solution Correct the identification of an error while compiling in ::Simple::Subcommand::Priv::subcommand-error and and simplyt rethrow it
Test-case SimpleSubcommand / proc-sub-13
Status Closed in SimpleSubcommand 0.5.4
Date 10-feb-2005

Number 10
Title Can not have two classes using each one the class type of the other
Description It is currently not possible to declare a package with class A, class type (-classtype) typea and with a method with an argument of type typeb and, at the same time, another class B, class type typeb and with a method with one argument of type typea
Location SimpleDevLib 1.0
Criticality Routine
Open date 10-feb-2005
Solution This is a workaround, the SPR remains open: define a regular type (-type within the package declaration, instead of -classtype within the class declaration) named typeb with -matchingscript equal to return [$value isa B] and omit class B class type
Test-case ---
Status Open
Date 10-mar-2005

Number 11
Title Bad handling of errors within submethods with "after flags" method
Description The title says it all
Location SimpleProc 0.5.3
Criticality Routine
Open date 11-may-2005
Solution Protect with list the "after flags" command name upon evaluation
Test-case SimpleClass / declare-class-58
Status Closed
Date 11-may-2005