Tcl Library Source Code

Check-in [41be063903]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Fix to sak.tcl to accommodate Tcl sources which could include lines like: if { [string range $line 0 14] != "package provide" } continue (As was the case in practcl.tcl)
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 41be0639030fa8412cd17880527e5accdb1ab737
User & Date: hypnotoad 2016-04-21 15:52:05
Original Comment: Fix to sak.tcl to accomidate Tcl sources which could include lines like: if { [string range $line 0 14] != "package provide" } continue (As was the case in practcl.tcl)
Context
2016-04-26
11:09
Simplified the process of assembling the final dict in oometa Tool now rebuilds the method ensembles for all invocations of tool::define. In IRM I was seeing very primitive renditions of a method ensemble win out, and fail to exercise submethods that were defined by child classes. The property method is now dynamically generated Added trace info to tool background event processing Added a forward called <class> for every object When an option of class "variable" is specified, TOOL now ensures the variable is created on object startup check-in: d6217fcdeb user: hypnotoad tags: trunk
2016-04-21
16:49
Pulling changes from trunk check-in: 97bb3a69e3 user: hypnotoad tags: odie
15:52
Fix to sak.tcl to accommodate Tcl sources which could include lines like: if { [string range $line 0 14] != "package provide" } continue (As was the case in practcl.tcl) check-in: 41be063903 user: hypnotoad tags: trunk
14:47
Bumped practcl to 0.3 Added ::practcl::os, to autodetect basic operating system information in the absence of autoconf. Needed for odie (and projects base on kitbuilders) where the local autoconf relies on Tcl, and Tcl hasn't been compiled yet, and practcl is doing the downloading and compiling of Tcl Added an "smake" like target/dependency system. Users can build target objects, and give them dependencies and triggers. The actual code executes to resolved the dependencies and triggers is not implemented explicetly, instead the use is given a ::make array with a list of potentail targets with a true/false if the need to be built in this pass. The new target_obj class shares some core functions with ::practcl::object, but they are not full-fledged practcl objects. Added a mechanism for a static executable to build a table of contents for static packages that are included. TK is now build statically and linked into the final executable. Added a fix for tclconfig to prevent it from trying to unpack itself inside of itself Added a config.sh method for core libraries. This dumps out the XXXConfig.sh built by autoconf into a key/value list for easier parsing. check-in: a982e672c7 user: hypnotoad tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to sak.tcl.

262
263
264
265
266
267
268
269







270
271
272
273
274
275
276

	    set xline $line
	    regsub {^.*provide } $line {} line
	    regsub {\].*$}       $line {\1} line

	    sakdebug {puts stderr __$f\ _________$line}

	    foreach {n v} $line break








	    # HACK ...
	    # Module 'page', package 'page::gen::peg::cpkg'.
	    # Has a provide statement inside a template codeblock.
	    # Name is placeholder @@. Ignore this specific name.
	    # Better would be to use general static Tcl parsing
	    # to find that the string is a variable value.







|
>
>
>
>
>
>
>







262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283

	    set xline $line
	    regsub {^.*provide } $line {} line
	    regsub {\].*$}       $line {\1} line

	    sakdebug {puts stderr __$f\ _________$line}

            #foreach {n v} $line break
            if {[catch {
	      set n [lindex $line 0]
              set v [lindex $line 1]
            } err]} {
              sakdebug {puts stderr "Line: $line of file $f threw $err"}
              continue
            }

	    # HACK ...
	    # Module 'page', package 'page::gen::peg::cpkg'.
	    # Has a provide statement inside a template codeblock.
	    # Name is placeholder @@. Ignore this specific name.
	    # Better would be to use general static Tcl parsing
	    # to find that the string is a variable value.