From: SourceForge.net <no...@so...> - 2003-08-24 23:43:54
|
Feature Requests item #793779, was opened at 2003-08-23 10:58 Message generated for change (Comment added) made by dgp You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=360894&aid=793779&group_id=10894 Category: 18. Commands M-Z Group: None >Status: Closed >Resolution: Rejected Priority: 5 Submitted By: Markus Elfring (elfring) Assigned to: Don Porter (dgp) Summary: Include source files only once Initial Comment: Multiple inclusion of source files can be avoided in compiled programming languages like C++ by preprocessor statements. ... #if !defined(_my_text_included) #include "my_text.h" #endif ... The TCL function "source" includes files, too. But there are no preprocessor directives in a scripting language like TCL. Their statements get executed every time. The language PHP provides the function "http://de.php.net/manual/en/function.include- once.php". I suggest to add the option "-once" to avoid multiple inclusions of TCL code. ... if {_my_text_included == 0} \ { source "my_text.h" } ... # Write just one line to achieve the same as before with more safety source -once "my_text.h" ---------------------------------------------------------------------- >Comment By: Don Porter (dgp) Date: 2003-08-24 19:43 Message: Logged In: YES user_id=80530 Perhaps auto-loading is a more attractive alternative for you? http://wiki.tcl.tk/tclindex Either auto-loading or packages is the right answer. Adding this kind of magic to [source] is not a good idea. ---------------------------------------------------------------------- Comment By: Markus Elfring (elfring) Date: 2003-08-24 15:41 Message: Logged In: YES user_id=572001 I do not want to create a package for every file that needs to be inluded once. I think that is to much work. ---------------------------------------------------------------------- Comment By: Donal K. Fellows (dkf) Date: 2003-08-24 11:32 Message: Logged In: YES user_id=79902 I'd suggest using packages instead, and [package require] works a bit like [source -once] would except it uses a slightly more abstract notion (package name) and works with things other than single Tcl script files. dgp: Please reopen if you disagree. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=360894&aid=793779&group_id=10894 |