TIP 417: Use Explicit Option Names for "file tempfile"

FlightAware bounty program for improvements to Tcl and certain Tcl packages.
Author:		Christophe Curis <christophe.curis@free.fr>
State:		Draft
Type:		Project
Tcl-Version:	8.7
Vote:		Pending
Created:	16-Nov-2012
Keywords:	Tcl, future expansion, extensibility


This TIP proposes altering the way in which optional arguments are specified to file tempfile (see [210]) to make them easier to understand and extend in the future.


The current documentation for file tempfile states that there are two optional arguments using a fixed order. This has some limits:

  • it is not possible to use the second argument without the first

  • being an infrequently-used function, having a fixed order implies that a look to the manual page will be obligatory to make sure of the order

  • this inhibits potential for any future expansion of the command.

Switching to option/value format will make the optional arguments easier to understand.


The syntax of the command would be changed to:

file tempfile ?options...?

with supported options:

  • -namevar variable: Specifies a variable for receiving the file name.

  • -template template: Defines a template for the file name.

This syntax would allow:

  • easy extension in the future, as any option name can be added,

  • ability to use any of the options in any order,

  • an explicit syntax making the code easier to read and understand.

Reference Implementation

No implementation is available now, but the change is probably not complex; the priority have been placed on raising the subject before the release of the final 8.6 version of Tcl.


This document has been placed in the public domain.