C Runtime In Tcl

Timeline
Login

Timeline

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

371 check-ins using file test/basic.tst version ddcff41caa

2011-08-16
20:25
And extend [80c63d04c0] to the -tea mode as well. Closed-Leaf check-in: f3e933dbb9 user: andreask tags: v3-development
19:11
Commit [80c63d04c0] weas not quite right. Have to provide the namespaced package name as the stubs "library" name, and do the appropriate mapping in the code generators. Because the StubLib.h has one place where the proper namespaced package name must be used. When the package is actually required by name. check-in: 6a72635b18 user: andreask tags: v3-development
05:33
Extended the stubs support code to handle packages with namespaced names, i.e. "c::stack". This is done by mapping "::"-sequences to underscores ("_"). I.e. in the generated C code, expected header paths, and header file names a package name "c::stack" becomes "c_stack". Updated the documentation. check-in: 80c63d04c0 user: aku tags: v3-development
2011-08-12
02:46
Examples, "stack": Fixed bugs in the "trim" methods, introduced into "stackc" when the original code was split into "cstack" and "stackc" and the high-level methods got re-implemented in terms of the new low-level API. check-in: b88ecdfde8 user: aku tags: v3-development
02:42
Let changes to the C companion files trigger a rebuild of cached binaries, for mode "build & run". check-in: 2497011f79 user: aku tags: v3-development
2011-08-11
19:50
Fixed problem with the 8.4 package index code. The removal of the transient procedure must be caught, for a recursively required package may have redefined and destroyed that already, leaving us with nothing to do. check-in: 68f793b01b user: andreask tags: v3-development
19:50
Fixed bug introduced yester-yesterday with [18fa4c033e]. While we dropped the inclusion of fooDecls.h from C companion files we cannot drop the USE_foo_STUBS defines, or the result is not using the stubs :( Instead of adding to the files we use -D... settings for this, now. check-in: c48ffdfe3b user: andreask tags: v3-development
02:22
Get AIX xlc configuration. check-in: f09ac983f5 user: aku tags: v3-development
02:22
Added configuration for AIX xlc compiler. Closed-Leaf check-in: f4b4a34e20 user: aku tags: trunk
2011-08-09
21:45
Refreshed the derived documentation files. check-in: 3488e2a72f user: aku tags: v3-development
18:10
Dropped 'critcl::purepublic' and the whole of automatically adding stubs related headers to the 'critcl::csources' files. Let the developer add the necessary #include directives where needed by C companion files. check-in: 27507b018c user: aku tags: v3-development
18:07
Tweaked the output a bit for better separation of the examples in the log check-in: cfe0c37071 user: aku tags: v3-development
06:47
Fixed issue with the use of a critcl file as its own Tcl companion. The dummy implementation of "critcl::Ignore" cannot really be just a placeholder. It has to maintain the same data structure as the regular command, is pretty much the regular command.

Plus the runtime used by the package index (Fetch) has to "source" the file in the global scope to properly handle definitions with names which are not fully-qualified. Running the "source" in the procedure-local scope would put these anywhere but where we wanted them.

Extended the example with inactive log commands to show that at runtime the already built C parts are ignored. check-in: 18fa4c033e user: aku tags: v3-development

04:40
Fixed issue with the new 8.4 package index code. We have to wrap the procedure call as well, to ensure proper handling of directories containing spaces. check-in: 4a32d54db2 user: aku tags: v3-development
04:40
Modified the cproc result handling for Tcl_Obj* to recognize and report a NULL result as Tcl error. check-in: 36294a7a1a user: aku tags: v3-development
04:39
Fixed lots of issues with the clist example. Requiring 8.5 actually, as we set up an ensemble. check-in: df23b431b7 user: aku tags: v3-development
2011-08-08
17:52
Fixed bug in selfcompanion example, added the missing brew control script. check-in: bef5a301e8 user: andreask tags: v3-development
17:51
New exammple: Regular package with tcl companion file and code. List operations check-in: eafbb213b7 user: andreask tags: v3-development
15:57
New example: Demonstrate setup of the critcl file as its own Tcl companion file. check-in: ddbe3c45d1 user: andreask tags: v3-development
2011-07-29
19:36
Activated the new index command (generation), plus fixes and tweaks for it. check-in: c6b59d041e user: aku tags: v3-development
17:52
Fixed typo and bad path in the code handling the scanning of Tcl companion files. check-in: 42fda61653 user: aku tags: v3-development
17:29
Fixed missing initialization in the handling of user-defined configuration settings. check-in: f0023391ac user: aku tags: v3-development
2011-07-28
22:55
Reworked the dependency extraction. Now using reduced static scanners instead of intercepting the builtin "package" command. Much stricter control which commands are found and accepted. It especially doesn't require lots of hacks to prevent critcl internals from showing up in the dependencies. check-in: 519d4e6b9c user: andreask tags: v3-development
2011-07-27
23:09
Fix oops in last command regarding the support package files, missing extension. Extended tclconfig to report the files, not just the directory check-in: 11c7b05a90 user: andreask tags: v3-development
23:03
Extended the set of files reported by -tea as included. check-in: 065f4ee4b0 user: andreask tags: v3-development
22:54
Fix of md date processing, changes to key names. check-in: 2d705a3196 user: aku tags: v3-development
22:54
More fixes for [9e11207f36]: Typo in md collection. Platform for TEA wrap is "source". Processing of input files for key "included". check-in: 182fcc4f82 user: andreask tags: v3-development
22:28
Fixed typo in [51f4637c58] check-in: 401a188d48 user: andreask tags: v3-development
22:26
Fixed typo in [9e11207f36] check-in: 925b431fa9 user: andreask tags: v3-development
22:24
Fixed scope bugs in [9e11207f36] check-in: 81002820ad user: andreask tags: v3-development
22:06
Documented the command "critcl::buildrequirement", providing control over the recording of dependencies. Fixed the documentation for "critcl::api extheader", was at the wrong location. Updated the list of changes for v3. Regenerated the derived documentation files. check-in: c8ff3985cc user: andreask tags: v3-development
21:11
Added meta data collection to the static scanner and extended the application level to make use of this information. Factored a few pieces of code common to both static scanner and compile-time meta data collection into separate procedures, to share. check-in: 9e11207f36 user: andreask tags: v3-development
19:41
Refactored package index generation, and moved generation of the index command into its own procedure. Wrote alternate procedures which do not defer to the runtime for the load-script, but precompute most pieces, making them visible in the index file. This part is not tested yet, and inactive. check-in: d1595f3f20 user: andreask tags: v3-development
2011-07-20
16:59
Added more meta data handling at the tool level, i.e. files included in the package, plus prep for the entrytclcommand. check-in: 138f2d4ffb user: andreask tags: v3-development
16:42
Tweaked MD, as::author -> author, as::build::date -> build::date. Added platform hackery to get full identify where possible, and generic otherwise. Reworked the 'internalmeta' API, take single list-argument, not varargs, getting rid of all the eval/linsert. Fixed author processing. check-in: 51f4637c58 user: andreask tags: v3-development
07:45
More work on the exact processing of meta data, still not quite right. check-in: 4dab640ff7 user: aku tags: v3-development
07:22
Fix oopses in [24fcdba82a], [c888cfa23b], and [d1b06b067d] check-in: 429c660624 user: aku tags: v3-development
2011-07-19
23:39
Updated the examples to use the nicer commands for the major pieces of meta data. check-in: d1b06b067d user: andreask tags: v3-development
23:29
Gave the consolidated information under 'config package' a good name => system meta data. Moved the setup of platform and build-date to a better place (where 'provide' is recorded), further simplifying the merging in 'GetMeta'. Added the overdue code-internal documentation about the meta and package sections. check-in: c888cfa23b user: andreask tags: v3-development
23:18
Added critcl commands for specific pieces of meta data (description, summary, subject), and consolidated the information under the 'config package' sub dictionary, with keys matching the final meta data. This simplified the merge process in 'GetMeta'. Added documentation. check-in: 24fcdba82a user: andreask tags: v3-development
22:18
Redesign of part of the stubs management I wasn't truly satisfied with. Dropped the 'hdrexternal' setting and replaced it with a 'extheader' method of '::critcl::api'. This keeps the static scanning of the methods simple, and also allows a mix of internal and external exported headers. Updated documentation and example (zlibwrap). Still thinking about the 'purepublic' setting and the automatic inclusion of generated headers in companion .c files. check-in: 87f9bd87d8 user: andreask tags: v3-development
2011-07-16
18:21
Reworked the interception of the 'package' command to capture only the toplevel execution inf .critcl files, and ignore recursive load and provision of dependent packages.

Added a command to hide internal packages from the dependency tracker, and exposed it as "critcl::builddependency", enabling a developer to hide packages required by the build but not the result in the same manner.

Defered insertion of license and author information into the meta data, to give "critcl::license" priority over "critcl::meta".

Fixed "GetMeta" to survive partial data, like it happens for the generated bracketing code, and added the build date.

Added handling of the generic meta data to the static scanner, and tweaked output for warnings to include the underlying error message as clue to the potential problem. Further removed a number of 8.5-isms from this part of the system. check-in: 84281d6509 user: aku tags: v3-development

18:12
Tweaked app-level interception of the 'package' command, moved original into the app package's namespace. Fixed list/value mistake in the code merging the meta data of all the input files. Separated check and collapse of meta data keys, and extended the set of keys whose values are collapsed. check-in: 16eae0291b user: aku tags: v3-development
18:08
Fixed varname typo in high-level random example, and added command hiding the build-requirements from the meta data dependency tracking. This is in preparation of commit [84281d6509]. check-in: 3616f8e6a4 user: aku tags: v3-development
18:07
Fixed varname typo in low-level random example. check-in: cfeefd18af user: aku tags: v3-development
18:06
Fixed the examples' main brew to use the shell running the script to run the subordinates, and added a separator line to the output check-in: ae450320bc user: aku tags: v3-development
2011-07-14
22:55
Updated examples, added teapot meta data declarations. check-in: e48a20c4ed user: andreask tags: v3-development
22:09
Extended both critcl package and application with functionality enabling package developers to declare teapot meta data. Various pieces of meta data (like package name etc), are pulled directly out existing critcl commands, or the intercepted package command. check-in: 1b215ebd8f user: andreask tags: v3-development
18:09
Merge config substitution fix. check-in: 1e589f63da user: andreask tags: v3-development
18:06
Fixed OS X brokenness introduced by my rewrite of the internals.

The old code running the external compiler commands through the run interpreter was not only unsafe, but also picking up variable substitutions like "SDKROOT" and "osxmin". By converting to the safe "linsert" construction these substitutions got blocked.

Plus "Config" was apparently not setting this information either anymore.

Instead of reverting to the unsafe construct I fixed "getconfigvalue" and then used this to access the configuration instead of directly accessing the "critcl::c" sub-namespace. This makes the substitutions explicit. check-in: 60269210f0 user: andreask tags: trunk

2011-07-12
22:40
Updated the documentation for custom build config option commands, related critcl application options, influence on -tea mode, etc. check-in: c5c8f93bdd user: andreask tags: v3-development
21:50
Extended user-config declarations with description, for in-code documentation, and use by a generated TEA configure (help string). Fixed missing default setup for --with-* options. Updated example. check-in: 04598d5e17 user: andreask tags: v3-development
20:58
Extended the TEA scanner and generation with code to handle user-specified configuration options. check-in: a2026ea678 user: andreask tags: v3-development
05:00
Added use of user-config to the install code of example "zlibwrap". Also fixed an issue with variant "system-static". It needs an explicit path of the .a file to get/force static linkage of libz. The original '-static -lz' doesn't work. check-in: 163eeab000 user: aku tags: v3-development
04:58
Lifted user-config support into the application, allowing the setting of flags via command line options (-enable X, -disable X, -with-X value). check-in: 9335ec389d user: aku tags: v3-development
04:57
Fixed small typos in the userconfig support. check-in: 6a2251f6cc user: aku tags: v3-development
04:53
Fixed check for the wrong command (lassign) in the dict forward compat package. check-in: 1996107c88 user: aku tags: v3-development
04:52
Drop 8.5-isms from stubs support packages. check-in: 4b636da68d user: aku tags: v3-development
2011-07-01
06:56
Output tweak in random, plus bugfixes in rnmath and stackc introduced during the integration of the examples, which contained lots of renaming, and some places were missed. check-in: bb02cbfd37 user: aku tags: v3-development
2011-06-30
23:42
Draft user-flags commands, plus zlib example updated as user of this facility check-in: 4b799b54fd user: andreask tags: v3-development
22:13
Third example, wrapping zlib. This one is in the works. The example includes the whole sources of zlib 1.2.5. check-in: c411270032 user: andreask tags: v3-development
21:48
Renamed example controller to match my brew convention. check-in: 17db7bfac1 user: andreask tags: v3-development
21:47
Second example, stack data structure, added. check-in: 813d770f03 user: andreask tags: v3-development
20:46
Adding my various worked examples to the repository, for documentation. Starting with the random number generators. check-in: be14cf7eec user: andreask tags: v3-development
20:46
Added overarching testsuite controller. check-in: 7d650fe00d user: andreask tags: v3-development
05:18
Continued stubs documentation through testing. Extended container with human-readable semi-serialization. Extended container tests to document various table contents. Created testsuite for .decls reader, documenting the generated structures for various types of function arguments, especially none, and var-args. Created testsuite for .decls writer, making sure that output is semantically equivalent for input. Fixed bug in the handling of var-args functions. check-in: 930fe81761 user: aku tags: v3-development
03:56
TEA mode fixes. Added missing initialization, more log output, and removing duplicates from the sets of files to copy. check-in: 50597b9767 user: aku tags: v3-development
2011-06-29
22:22
Added a number of stubs management commands for special cases when wrapping around an external library, example "zlib". A few of these should possibly be moved into a single "api config" command. check-in: b8325756da user: andreask tags: v3-development
22:20
Whitespace tweaks check-in: 448f027246 user: andreask tags: v3-development
22:18
Added support for TCL_FORMAT_PRINTF, taken from modern 8.6 headers. Note: Have to update the siloed 8.6 headers too. check-in: b8cd62ed54 user: andreask tags: v3-development
06:00
Merged trunk extensions to package name handling. check-in: 2330caf78f user: aku tags: v3-development
05:51
Renamed brew, and added the missing installation of the new utility and stubs management packages. check-in: 2e7c248b63 user: aku tags: v3-development
05:49
Fixed Tk/X11 stubs variable definition, missed by commit [8af95f12eb]. check-in: ed48d0c71a user: aku tags: v3-development
05:47
Backported [61969b91b1] of the v3 line and extended it to distinguish actual package name from file and directory names. The name of the init function is derived from the latter. The system now handles namespaced package names as well. The proper package name for this is now determined by intercepting "package provide" commands and recording the file -> package mapping. Further, "critcl::failed" and "critcl::load" are now skipped with OK status when in mode "generate package", as an error message they may invoke in case of failure will prevent the display of the full compilation log, making debugging difficult. Better to skip them and have the application always force an explicit build. check-in: 7f174aa793 user: aku tags: trunk
2011-06-24
18:34
Added forgotten writer package to TEA critcl app main script check-in: 8c68526e96 user: andreask tags: v3-development
2011-06-23
23:26
Added more argument checks to stubs "declare". check-in: 7d27c6aab9 user: andreask tags: v3-development
23:12
Continuing to extend stubs testsuite, plus additional argument check in "slot" check-in: 01f14ebe01 user: andreask tags: v3-development
22:35
Continued testsuite for stubs container. More semantic changes:
The command 'interface' now checks for duplicate interface names and rejects them.
The commands 'hooks?, 'slot?', 'hooksof', 'platforms', 'lastof', 'slotplatforms', and 'slot' now all check for and reject unknown interface names.
check-in: 09b19cd20e user: andreask tags: v3-development
21:20
Started on testsuite for the stubs package, begining with the container. Uses testutils of tcllib. check-in: f72f3d11fc user: andreask tags: v3-development
21:20
Modified the semantics of "hooksof" to simply return nothing if the interface has none, instead of an error check-in: 5ea274e918 user: andreask tags: v3-development
19:42
Fixed handling of soft-links when assembling a TEA package. check-in: ceb9fc3369 user: andreask tags: v3-development
19:41
Fixed issue with the static code scanner where it aborted when the critcl commands where to dynamic for it. Also added code to recognize which of these failures may impact the generated TEA, and warn in these cases. check-in: 634f97c237 user: andreask tags: v3-development
03:19
Updated the stubs related documentation to mention the generated .decls file, and its uses. check-in: b6a30b1a96 user: aku tags: v3-development
03:05
Use stubs writer to generate a .decls file, and look for it on import. check-in: a826dd840c user: aku tags: v3-development
03:03
Tweak and fix the stubs writer package. check-in: 4152310397 user: aku tags: v3-development
2011-06-22
23:26
New package, draft, generating a .decls file (contents) from the internal representation of a stubs table. check-in: 913fbda320 user: andreask tags: v3-development
22:25
Changed "critcl::api import" to actually check if the API headers can be found at the point of import, using the currently known header paths.

Reworked the internals of header path setup to allow for this. That is the separation of path collection from the transformation into -I options in "SystemIncludes", plus merging of "GetHeaders" (doing the same for "critcl::cheaders") into the path collection.

Updated the documentation.

NOTE: Import should do 'package require foo' as well, before checking, so give the imported package the time to actually build and install its headers, if it is a critcl-based package (must be non-lazy to work, could be overcome by checking critcl's in-memory database of pending builds). NOTE 2: The above 'package require' should be caught, enabling the build of the importing package even if the exporting package is not truly installed, just its headers. check-in: 2d1fc4e66d user: andreask tags: v3-development

21:55
Extended the stubs documentation. Specification of the API, i.e. which header files are expected, where, with what contents. With examples. For anybody wanting to interface with this variant of stubs. check-in: 335a8a3c9e user: andreask tags: v3-development
19:41
Changed the communication of imported API paths in TEA. Making this a part of the CC setting puts a header at the beginning where an outside tclDecls.h may be found, with declarations in conflict with the internal definitions.

Now such paths are regular configure subst results, and the Makefile (template) is changed to have variables for them, and to propagate them into critcl via -I options. As part of this the order of 'SystemIncludes' and 'TclIncludes' was changed as well, to search the latter first. An optimization added at the same time to 'SystemIncludes', dropping duplicate paths.

Further fixed the internal 8.4 and 8.5 headers to match [08264b4696].

At last some junk from aclocal.m4 left over from the development of the macro and committed with [5c73e5275f]. check-in: 8af95f12eb user: andreask tags: v3-development

2011-06-21
20:07
Updated the documentation with information about the stubs table management commands, and the "Generate TEA" mode check-in: 1ef720993b user: andreask tags: v3-development
07:49
Tweaked the output of the generator for xxxStubLib a bit, reducing the amount of empty lines all around. check-in: 5d39425a5a user: aku tags: v3-development
07:48
Fixed problem with installing headers when an older installation is already present. check-in: 5fcd0e19b3 user: aku tags: v3-development
07:48
Fixed header search, forgot that the headers are put into package-specific subdirectories check-in: 7a3d1e1bbc user: aku tags: v3-development
07:26
Fixed the local Tcl/Tk stubs table variable declarations to match the modern settings (const), as in TEA mode the system may pull in installed Tcl/Tk headers instead of the copies local to critcl. check-in: 08264b4696 user: aku tags: v3-development
07:12
Fixed TEA critcl setup, now needs all the stubs generator packages as well. check-in: e7e26ef742 user: aku tags: v3-development
07:12
Fixed scanner bug regarding handling of "critcl::api" calls. The "header" method has to declare its arguments as companion files. check-in: 5b8807383a user: aku tags: v3-development
07:10
Fixed quoting errors in the new autoconf macro to search for api header files. check-in: 967beb72a2 user: aku tags: v3-development
2011-06-20
23:07
Added handling of -includedir to the TEA Makefile template. check-in: 9e5215902c user: andreask tags: v3-development
23:05
Extended the package's TEA scanner to handle the new "critcl::api" calls. Added export of the list of imported APIs to the application. Extended application and TEA template files to create and handle '--with-FOO-include' options for any imported API FOO. The include paths are communicated via critcl's cc configuration variable. Not yet handled: -includedir check-in: 5c73e5275f user: andreask tags: v3-development
2011-06-19
23:46
Tweaks to comments, messages, and fix for stubs header inclusion. check-in: e86e6a33f5 user: aku tags: v3-development
2011-06-17
23:09
Merge latest fix from trunk. check-in: 721e1a87a2 user: andreask tags: v3-development
23:08
Rev [ba20f11391] was not completely right yet. Fixed to handle a fully qualifed command name as well, ignoring the callers namespace in that case. check-in: a04923ddf9 user: andreask tags: trunk
22:56
Fix the processing of arguments in declared API, was borked for multi-argument. Fixed the inclusion of exported headers into the generated API header. check-in: 82a44e9b3f user: andreask tags: v3-development
20:41
Extended the "critcl" application with option -includedir, to specify where the headers of exported APIs are to be installed. Extended package to report the directories containing API headers to export. check-in: e683094400 user: andreask tags: v3-development
16:26
Lots of fixes to the stubs code, making it operational. For a small example not using custom headers, nor C companion files. check-in: 6be04c5a93 user: andreask tags: v3-development
16:14
Fixed issues in the stubs lib-stub generator check-in: a68905644c user: andreask tags: v3-development
2011-06-16
17:51
Merged latest bugfix and "cproc" reorganization. Also committed the draft code for handling stubs APIs, import and export. check-in: 7179fd9964 user: andreask tags: v3-development
17:40
Reorganized the internals of "critcl::cproc" a bit and exposed the argument processing and code generation for advanced users. Updated the documentation. check-in: 24251f45a0 user: andreask tags: trunk
2011-06-15
19:01
Determined what is going wrong when a ccommand/cproc name has namespace qualifiers of its own, and fixed it. This means that from now on it is possible to directly write "critcl::cproc ::some::where::foo" instead of having to wrap the ccommand/cproc in a namespace eval to get the correct namespace. This makes the commands behave like the builtin "proc" does. Finally. check-in: ba20f11391 user: andreask tags: trunk
2011-06-10
00:29
Brought the stub generator packages into sync with the latest genStubs.tcl found in thc tcl head. check-in: d0a9f9b513 user: andreask tags: v3-development
2011-06-09
22:11
Fixed more semantic mismatches between the various stubs packages and app. check-in: 27a8dc2d8f user: andreask tags: v3-development
19:26
Fixed all the issues in [123f2bba84] found by running TDK tclchecker over the files. check-in: 62d946cf44 user: andreask tags: v3-development
2011-06-08
23:21
Added draft conversion of genStubs.tcl tool into set of packages. check-in: 123f2bba84 user: andreask tags: v3-development
22:07
Split the forward compatibility support into their own packages, so that I can use them in other support packages, like the upcoming packages for stubs table processing. Updated TEA package generation to place these into the output. Needs re-testing. check-in: 6441757e49 user: andreask tags: v3-development
2011-06-07
18:56
Merged doc changes from trunk check-in: cdac697234 user: andreask tags: v3-development
18:54
Reworked the documentation files listing changes to match the structure in the v3-development branch. This should make future merges easier. check-in: 934c393597 user: andreask tags: trunk
18:51
Merged trunk debugging help. check-in: e440f7e8bf user: andreask tags: v3-development
18:50
Extended 'AbortWhenCalledAfterBuild' to report as much about the location of the problem as it can, using 'info level', and 'info frame', if possible. check-in: cc528055dc user: andreask tags: trunk
2011-06-03
20:04
Merge brew change from trunk check-in: 442630b79e user: andreask tags: v3-development
20:03
Do the same check in brew::usage as we introduced in crimp to distinguish internal errors from regular bad usage. check-in: 02e0ce7ba1 user: andreask tags: trunk
2011-05-26
02:23
Integrated latest changes for building TEA (windows specific comand line flags), plus added flushing to the messaging hooks. check-in: 04d6d0c739 user: aku tags: v3-development
2011-05-25
20:37
Merged config file management from trunk. check-in: 957153132e user: andreask tags: v3-development
20:32
Extended the critcl utility package with commands to manage (incrementally build) config files (series of #define/#undef statements). check-in: 8299af2478 user: andreask tags: trunk
2011-05-19
21:12
Merge trunk changes. check-in: 6b4f81eeb8 user: andreask tags: v3-development
21:00
Added (and documented) new hook "critcl::msg" for general messaging, like "critcl::error" is for error reporting.

Ignored by mode "compile & run". Prints to stdout for mode "generate package".

Updated changes log in the documentation for this and the previous commit. check-in: dadd48851e user: andreask tags: trunk

20:33
Modified "critcl::checklink" to place the temp link result into the cache. Cleans it now up as well.

Modified "critcl::clean_cache" to accept any number of patterns instead of just one.

Modified "critcl::setconfig" to __not__ place env(CFLAGS) into the "c::link" command line, only "c::compile". Compiler flags should not be seen by the linker.

Updated the calculation of 'platform' in critcl::BuildPlatform to deal with extensions in the name of the compiler, a full path to it, and possible options coming after it. This is all possible through env(CC). check-in: 46f104459c user: andreask tags: trunk

2011-05-11
21:05
In continuation of [8092f0e87d], properly quote the files in the windows link response file. check-in: d9f65a6c10 user: andreask tags: trunk
19:06
Added previously missing quoting of the linker output file in the targets for Win-platforms check-in: 8092f0e87d user: andreask tags: trunk
2011-05-10
05:19
Merged last fixes from trunk. Integrated the utilities into the TEA mode. Made utilities work for both v21 and v3 critcl. check-in: baa9755e16 user: aku tags: v3-development
05:18
Fixed missing namespace creation in the utilities. check-in: 76ae0bc3f3 user: aku tags: trunk
04:59
Merged update to "brew" check-in: bb4d948863 user: aku tags: v3-development
04:59
Fixed oops in last commit, updated "brew" to install the new utility package. check-in: a2a79264cd user: aku tags: trunk
04:54
Merged the v21 extensions to build-time checking. check-in: 0e4122a4e5 user: aku tags: v3-development
04:48
Extended critcl::check with logging. Added critcl::checklink to check not only buildability of a piece of C, but linkability as well. Added a new utility package. First utility command is checking existence of a function, built on the new checklink. Updated and added documentation for all the previous. check-in: fbcb5e52f0 user: aku tags: trunk
2011-05-09
19:07
Updated the documentation to record the latest v3 changes which make TEA generation functional. check-in: 66068dd2ed user: andreask tags: v3-development
2011-05-07
03:08
Updated configure and Makefile templates with data gained from test builds, notably platform specific modifications to the translation of the TEA settings seen so far. Plus better output by the configure. Merged from trunk: Simplified the code stripping the compiler name from the targetplatform, using a loop, and extended it to handle the more exotic names of cc found on AIX. Further changed the code to be able to deal with a full-blown path name for cc, as it can be specified through the environment variable CC. check-in: 96ca88e1ab user: aku tags: v3-development
03:03
Simplified the code stripping the compiler name from the targetplatform, using a loop, and extended it to handle the more exotic names of cc found on AIX. Further backported from the v3 branch the detection of GCC even if named cc, and changed the code to be able to deal with a full-blown path name for cc, as it can be specified through the environment variable CC. check-in: 507fda9070 user: aku tags: trunk
2011-05-05
01:16
Drop dependency on package "starkit" in the main of the TEA-distributed critcl. Added comments regarding the required and recommended external packages. check-in: cd032de7ed user: aku tags: v3-development
2011-04-30
21:29
Changed the logging for mode 'tea' a bit in the package. Added extended gcc detection for regular use, i.e. detect gcc even if specified as 'cc'. check-in: 2e449f313b user: aku tags: v3-development
21:29
Extended the application code with a 'showtarget' option, so that the TEA configure is able to figure out critcl's notion of the build/target platform, and put this into the custom Config file. Changed the logging for mode 'tea' a bit. Added extended gcc detection for regular use, i.e. detect gcc even if specified as 'cc'. check-in: 0b37103124 user: aku tags: v3-development
21:25
Reworked the configure and Makefile templates to inject the TEA settings into critcl via a custom Config file. This change bypasses critcl's selection logic should allow the building of the generated package anywehere TEA is able to figure things out, ie. even on platforms critcl has no standard settings on its own for. check-in: 9c36ebb309 user: aku tags: v3-development
2011-04-27
04:41
From trunk: Modified brew's install target to compute the destination for the application properly from the library destination path, when it is specified check-in: b0a7db174b user: aku tags: v3-development
04:40
Modified brew's install target to compute the destination for the application properly from the library destination path, when it is specified check-in: 90f792f55c user: aku tags: trunk
2011-04-21
02:29
Inserting a bit more information into the generated configure.in and Makefile.in, about the how and when of their creation. check-in: d571bb25d7 user: aku tags: v3-development
01:05
Merged cobjects fix from trunk. check-in: 02093baa48 user: aku tags: v3-development
01:04
Removed duplicate definition of critcl::cobjects. check-in: 1b64f5e963 user: aku tags: trunk
2011-04-20
23:17
Better defaults for the package version, and fixed handling of input file for list of TEA source files. check-in: 95c081d1f4 user: andreask tags: v3-development
23:16
Fixed typo in Makefile template check-in: b8ee988563 user: andreask tags: v3-development
23:16
Extended the critcl core with a command to declare related files which are part of a TEA package but not a csources, etc. or dynamically used. check-in: 154bd386a7 user: andreask tags: v3-development
22:44
Activated the scanner for TEA mode, collect its results, and place the data into the generated TEA hierarchy. check-in: a4c66f13be user: andreask tags: v3-development
22:42
Modified TEA support files to be ready for organization info. check-in: 0f844078ba user: andreask tags: v3-development
22:42
Implemented the non-code executing scanner pulling the companion files out of a .critcl file. check-in: 3afc930f38 user: andreask tags: v3-development
18:05
Fixed broken check for missing runtime helper file check-in: d6f847ad29 user: andreask tags: trunk
06:46
Added placement of the core input files, and placement of the critcl support code. Split the outname into outname and pkgname, and handle a version number in the package name argument properly (used for package directory, but not shlib). This required the aformentioned split to separate the different uses and forms. Now the only part missing is scanning of the input files, extracting the companions, license information, etc. to put into the TEA hierarchy. This is, of course, the most difficult thing of the -tea implementation. check-in: 61969b91b1 user: aku tags: v3-development
05:56
Fix a few issues with the TEA Makefile template, and added insertion of the input files. check-in: 749585a645 user: aku tags: v3-development
05:32
First stages of TEA support. Application level, partial assembly of the TEA directory hierarchy, plus (templates for) the necessary TEA support files. check-in: 826489f978 user: aku tags: v3-development
03:30
Added the embedded documentation forgotten before doing the last commit. check-in: 319f0d3b6e user: aku tags: v3-development
03:28
Starting development on critcl v3, doing the planned incompatible changes. Up ahead are TEA repackaging, support for stubs, and custom Tcl_ObjTypes. check-in: 325e6f95ae user: aku tags: v3-development
2011-04-14
21:27
Added embedded documentation derived from doc/ check-in: 9482bccf25 user: andreask tags: trunk
2011-04-04
21:24
Moved the notes about remaining commands without examples into a comment. check-in: 45968e306f user: andreask tags: trunk
21:01
Fixed two compatibility issues I introduced during all my changes. check-in: 6fd9c7e21f user: andreask tags: trunk
2011-03-30
00:19
Added basic text about -I option. check-in: 48234116b1 user: andreask tags: trunk
2011-03-29
21:30
Inserted reference to the unofficial bug tracker into the documentation. An official tracker does not exist, as told to me by JCW. check-in: d738bab015 user: andreask tags: trunk
2011-03-22
17:52
Fixed bug in [677f3c8bf8]. Forgot to update the package index file of critcl::app check-in: 9f7524f84c user: andreask tags: trunk
2011-03-21
22:17
Fixed typos in the changes section. check-in: e59fe8479d user: andreask tags: trunk
21:33
Continued work on the critcl command examples. check-in: b59c95faa3 user: andreask tags: trunk
20:24
Bumped package to version 2.1 check-in: 677f3c8bf8 user: andreask tags: trunk
20:18
Extended generation of #line pragmas. If "info frame" is available we use it to put exact line numbers into the generated C file, making it much easier to find errors and warnings. check-in: fcf6e01bc8 user: andreask tags: trunk
19:51
Accepting the code of branch "cc-selection-experiment", merging back to trunk. Closing the branch. check-in: 2dffdc1ec8 user: andreask tags: trunk
16:42
Added pragmas to guide meta data scanner (inclusion of non-tcl files into the package). check-in: 7398a37034 user: andreask tags: trunk
2011-03-17
19:30
Merge: Fixed bug where critcl was unable to load a cached library. Closed-Leaf check-in: b93d6ae7a1 user: andreask tags: cc-selection-experiment
19:29
Fixed bug where critcl was unable to load a cached library. check-in: 4b9716fb21 user: andreask tags: trunk
19:04
Merged recent fixes done to trunk. check-in: 23fdfdf7f8 user: andreask tags: cc-selection-experiment
19:03
Fixed ignore / Ignore mismatch when exporting commands. check-in: 7728fee658 user: andreask tags: trunk
18:58
Fix oops in the install target of the nano-build check-in: 5a8a529edb user: andreask tags: trunk
18:17
Extended the nano-build code to determine and use the package versions during installation. check-in: 076f87cd70 user: andreask tags: trunk
18:07
Merged recent documentation updates and changes to "tsources". check-in: 8c8696e18a user: andreask tags: cc-selection-experiment
2011-03-16
23:09
Changed semantics of "tsources" to keep order of declaration as order of sourcing. Needs testing. check-in: 6f5c4e9f65 user: andreask tags: trunk
22:25
Documented the critcl package structure check-in: 5e7d259a9d user: andreask tags: trunk
2011-03-15
23:43
Merge the recent documentation work done on trunk. check-in: 68e660ab85 user: aku tags: cc-selection-experiment
23:41
Fix oopses in [22e857248f]. check-in: 7e78663177 user: andreask tags: trunk
23:40
Continued example work, new sections for tcl, tk, check, and clibraries. check-in: 22e857248f user: andreask tags: trunk
23:39
Continued example wor, moved dual C/Tcl to different file check-in: bd748ceb74 user: andreask tags: trunk
22:27
Continued expansion of the command examples. check-in: 671c3d6cff user: andreask tags: trunk
22:09
Fixed bug in my rewrite of BuildDefines. The loop I eliminated is necessary, because the definitions argument of "cdefines" provides _glob patterns_, not plain identifiers. Updated the documentation as well. check-in: 577b4d6201 user: andreask tags: trunk
2011-03-14
23:47
Added a minimal example of using a Tcl companion file. check-in: baf1d9b7a6 user: andreask tags: trunk
23:21
Added section containing a list of the user-visible changes for the (tentative) v2.1 of critcl. check-in: 3a6253c734 user: andreask tags: trunk
22:41
Added notes regarding use of gcc for HPUX PA-RISC, i.e. 32 vs 64 bit builds. No cmdline switch available, only different variants of gcc. check-in: 534c811288 user: andreask tags: cc-selection-experiment
2011-03-12
05:02
Merged solaris fixes from trunk, and added sections for 64bit gcc on solaris. check-in: 702ab6b811 user: aku tags: cc-selection-experiment
04:58
Added missing PIC options for solaris native cc. check-in: e88c322406 user: aku tags: trunk
04:12
Merged fixes from trunk check-in: 3819fba988 user: aku tags: cc-selection-experiment
04:06
Extended package and application to ensure that compile and link errors are properly reported. check-in: 710d7751ce user: aku tags: trunk
04:05
More fixes to the unix targets, mainly unsetting the strip flags, and another correction to the aix64 linker command line. check-in: 421c009332 user: aku tags: trunk
2011-03-10
19:06
Merged from trunk. check-in: 345027e64f user: andreask tags: cc-selection-experiment
18:31
More verbose output for linking on windows, and fixes for link issues seen. check-in: e8144344f2 user: andreask tags: trunk
18:29
Fixed bad command options for 64bit native AIX builds, and bad platform keys in the aix block. check-in: f485371157 user: andreask tags: trunk
18:26
Fixed issue with missing "platform" keys for the OSX targets, which declares the necessary platform mappings. check-in: 7d3560a2b7 user: andreask tags: trunk
18:19
On windows the linker setup uses a file "link.fil" to hold the paths of all object files to link, presumably to avoid the length limitations of command lines on this platform.

This is ok for mode 'compile & run'.

In mode 'generate package' however, if the package is a bundle of multiple packages this setup is completely circumvented, because the critcl application uses 'critcl::clibraries' to reinject the object files of the constituent packages into the bracketing code, and this information is not run through the code path for object files.

To fix this a new command 'critcl::cobjects' has been created and the application updated to use it. Re-injection of object files through this API puts them on the path ending up in "link.fil", as they should be. check-in: f5f36624c7 user: andreask tags: trunk

2011-03-08
05:22
Merged and updated the extended configuration from trunk for the modified selection logic. check-in: b057597084 user: aku tags: cc-selection-experiment
05:15
Two fixes:
  1. Some native C compilers do not my use of line-number 0 in #line directives to get proper line-information in compiler error messages. For these we use line 1, and live with the off-by-one result.
  2. We have to strip compiler suffixes from the target platform identifier in code, because default configurations without data in the Config file can't do this through a 'platform' directive.
check-in: a0e7883597 user: aku tags: cc-selection-experiment
05:02
Mini-make to install the packages and produce various forms of wrapped applications (kit, pack). check-in: 266d0bca90 user: aku tags: trunk
04:56
Moved DetermineShlib out of the condition. In the condition a -force will prevent it from being done, breaking Link and Load steps trying to access now missing information. check-in: fdb8d206a4 user: aku tags: trunk
04:54
Added more native compiler configurations (aix 64, hppa 32/64, solaris sparc/intel 32/64). Forced the link_preload to blank until we know what to use there. The gcc specific arguments would definitely be wrong IMHO. check-in: 9c6c3067fb user: aku tags: trunk
04:45
Moved the fortran (critclf) specific keys out of Config to their own file in critclf. critcl misinterprets them as platform names, because it doesn't know them as cofiguration keys check-in: 037c508943 user: aku tags: trunk
04:41
Fix oops in BuildPlatform, where I left the old selection logic. check-in: dbc3e3a8e5 user: aku tags: cc-selection-experiment
2011-03-05
01:01
Experimental change to the CC selection logic and dependent configuration names. check-in: d8d705f337 user: andreask tags: cc-selection-experiment
2011-03-04
23:57
Completed documentation of the configuration file syntax. check-in: 4914cac492 user: andreask tags: trunk
23:32
Added documentation about the content of configuration files, and the use of custom configurations. Not complete, config file syntax is missing. check-in: a0db8d32d0 user: andreask tags: trunk
2011-02-25
20:37
Continued with the application how-to's. Left: custom config files, handling of -I, and possibly, default compiler selection. check-in: 8673f065d3 user: andreask tags: trunk
19:35
Started on the how-to's for using the critcl application. check-in: b220e78d67 user: andreask tags: trunk
02:48
Sectioned the existing examples to make it easier to shuffle them in the future, plus tweaked the content for clarity, and proper cross-references between related sections. check-in: 0205e9c28f user: aku tags: trunk
2011-02-24
23:55
Additional notes regarding "cheaders". check-in: 17bdfa4748 user: andreask tags: trunk
23:31
Split each example for embedding C into a separate file, and added three new ones for "cdata", "ccode", and "cheaders". check-in: 3f9c04e17c user: andreask tags: trunk
18:10
Tweaked section titles, getting rid of full capitalization/shouting. check-in: 415cacc297 user: andreask tags: trunk
18:06
Corrected capitalization typos in inter-document references which broke the links to the How-To. check-in: 8267b4e52f user: andreask tags: trunk
05:43
Continued work on the how to / faq / tutorial, "cproc" and "ccommand". check-in: 1a30b3c68a user: aku tags: trunk
01:28
Documented the internals of shared library preloading. check-in: 3de3a1cd37 user: andreask tags: trunk
01:07
Completed documentation of preload search paths, for libraries specified with an absolute path. check-in: 03996dffe3 user: andreask tags: trunk
01:03
Documented most of the preload search paths. check-in: b9b1dac63f user: andreask tags: trunk
01:01
Corrected doctools cmd syntax error. check-in: 1bb81abd5d user: andreask tags: trunk
00:38
Corrected result of "compiled". This is no an alias for "compiling", as I found out when working on the runtime support for -pkg. Corrected the documentation as well. check-in: de33aa2fde user: andreask tags: trunk
00:27
Changed the handling of -cache by the application, making it meaningful even when -pkg is active. This also fixes a bug where chosing a custom -target overrode the user's choice of cache. check-in: c487e4545d user: andreask tags: trunk
00:18
Completed documentation of the result cache, adding a note about a platform specific default and shared file systems. check-in: 4c15ddc39c user: andreask tags: trunk
00:16
Changed "ccommand" to use fully-qualified Tcl command name for delproc/clientdata storage, reducing possibility of name clashes. check-in: 6c112db1d6 user: andreask tags: trunk
00:08
Added code throwing an error when "ccommand" is invoked with an illegal option. Plus completed the documentation of "ccommand". check-in: 6b6d2d9a1c user: andreask tags: trunk
2011-02-23
23:18
Continued work on the documentation. Factored the welcome message into an includable file, and added references to the new example document everywhere where examples could reasonably be expected to be found. check-in: 84b841b427 user: andreask tags: trunk
23:17
Continued work on the documentation. Started a document introducing critcl by way of examples. check-in: 0792c56962 user: andreask tags: trunk
00:49
Corrected handling of first input file without extension, but more files following. Corrected case of no input files, force an early application exit with proper message. Reworked the -help text to better align with the argument processing. Corrected the description of -pkg in the man-pages, and extended with examples. check-in: e87091a7bc user: andreask tags: trunk
00:11
Renamed app-critcl to critcl::app, bringing package name and namespace used back into sync. check-in: 0be15caabf user: andreask tags: trunk
2011-02-22
23:39
Fix the application level bug I introduced when changing "critcl::debug" to store its information per-file (See [aa851753e1]). This change means that the processing of the -debug flag cannot directly use "critcl::debug" any longer. We can only save the data now, and then force it on the input files during their processing.

Plus fix to definition of -cache option (it takes an argument), and removal of outdated notes and variables (lib flag). check-in: 0d3ae885fc user: andreask tags: trunk

23:23
Continued documentation of the application level. check-in: 7e3f32ae7e user: andreask tags: trunk
00:34
Added draft documentation for the critcl application. check-in: 0098ed735b user: andreask tags: trunk
00:24
Added draft of the application package reference manpage. check-in: bd3ad492fe user: andreask tags: trunk
00:24
Fixed the modes section to make the result cache reference local to the package documentation. check-in: 965438acde user: andreask tags: trunk
00:05
Made "framework" unconditional, ignoring its payload when not building for OS X, and documented this behaviour. Fixes ticket [6a91fa5929]. check-in: 2d10150b65 user: andreask tags: trunk
2011-02-21
23:57
Tiny bit of listification in package generation. check-in: b21536d4e4 user: andreask tags: trunk
23:46
Extended the documentation of "cheaders", "csources", "clibraries", and "tsources" to note that relative paths are interpreted relative to the directory of the .critcl file itself.

I had thought that such resolution was done relative to the CWD and actually wanted it to change to the current behaviour. Checking back why I had thought it was CWD I found that it was "tsources" which was divergent and indeed improperly using CWD. This bug has been fixed, bringing this control command into line with the others. check-in: 8cb50e845d user: andreask tags: trunk

2011-02-19
18:00
Completed documentation of command "license". check-in: 1fe8bcd53c user: aku tags: trunk
17:57
Fixed typo in documentation of "cdefines", and added the missing info about the default namespace used.

See ticket [1eb2908feb], closed. check-in: 1fbfcae614 user: aku tags: trunk

17:56
Tweaked documentation to speak properly of .critcl files.

See ticket [1eb2908feb], closed. check-in: e31c328601 user: aku tags: trunk

17:47
Documented the internals of "cdefines", and made its data storage per-file. Updated and completed the documentation of the public effects of the command

See ticket [1eb2908feb], closed. check-in: 61dcb7991e user: aku tags: trunk

2011-02-17
18:25
Merged inadvertent fork. check-in: 50b29401a4 user: andreask tags: trunk
2011-02-15
01:01
Completed documentation of critcl::config. Documented all the commands provided specifically for tools like the critcl application. check-in: 0944c4a74e user: andreask tags: trunk
2011-02-12
04:12
Removed the last direct poke into the package's internal from the application. check-in: 192e2ca042 user: aku tags: trunk
04:07
Use a 'Max' procedure. We have to be able run on Tcl 8.4, which doesn't provide a max() math function. check-in: 71baf20079 user: aku tags: trunk
00:56
Modified handling of -pkg to use a private and transient cache directory which doesn't conflict with other instances of the application, nor with the cache used by 'compile & run' check-in: 54fdd41f71 user: andreask tags: trunk
00:46
Dropped support for -lib from the application. This fixes ticket [9fc402ac4c]. check-in: 4eb56dda0c user: andreask tags: trunk
00:41
Dropped two deprecated/unused commands. This fixes tickets [2c98cdbfb6] and [83c069c927]. check-in: db3c00a7ea user: andreask tags: trunk
00:40
Renamed the internal commands still using public names. check-in: ef8595faae user: andreask tags: trunk
00:35
A bit more renaming, and importantly, internals docs of the new naming scheme. check-in: 68fc7e9af4 user: andreask tags: trunk
00:05
Renaming frenzy regarding config codes, platforms, etc., in both variables and command names. I should converge on a use sometime. Also dropped the win32-*-cl hack in "setconfig". This last fixes ticket [baed77fd53]. check-in: ebb72dd867 user: andreask tags: trunk
2011-02-11
23:31
Documentation updated and continued. check-in: f010e4c5f3 user: andreask tags: trunk
2011-02-10
00:18
Renaming of variables, reformatting of a comment check-in: e15b360251 user: andreask tags: trunk
2011-02-09
00:56
Drop superfluous variable "myself" check-in: 9554815c06 user: andreask tags: trunk
00:52
v::generic is v::buildplatform check-in: 448e335f10 user: andreask tags: trunk
00:43
platform is targetplatform check-in: d753d7e581 user: andreask tags: trunk
00:35
Commentary in showconfig check-in: 22f1ca9095 user: andreask tags: trunk
00:34
Added an older OSX configuration: universal ppc/intel check-in: 17df8e0fbe user: andreask tags: trunk
00:34
hostplatform -> targetplatform check-in: 40117172b3 user: andreask tags: trunk
2011-02-08
22:32
More output regarding the various config and platform codes, plus better names for them at application level. check-in: 238d50dc6f user: andreask tags: trunk
22:11
Additional comments regarding the "setconfig" hack. check-in: b4c16cdd8d user: andreask tags: trunk
20:35
Changed the internals of "critcl::tk". This is not a global option, but a per-file setting. Modified the implementation to suit. check-in: bc196a4ba8 user: andreask tags: trunk
20:11
Moved the remapping of a cross-compile target to actual platform into the package. The only place where the application now accesses the internals of the package directory is critcl::app::Mapping, which is about creating a mapping for the package index. check-in: 041a81471f user: andreask tags: trunk
01:21
config processing. Additional commentary. Unnesting the code. check-in: 53ea1f9013 user: andreask tags: trunk
00:11
Updates to comments. check-in: 0805efba9f user: andreask tags: trunk
2011-02-07
23:14
And factored "critcl::Preload". check-in: 0b6d53c2aa user: andreask tags: trunk
22:53
Better documentation of the preload search path used by "critcl -pkg". check-in: 0f167e278c user: andreask tags: trunk
22:08
Continued factoring of "AssemblePackage". Looks complete now. Next up likely is the new "Preload" procedure. check-in: 7038827ad3 user: andreask tags: trunk
2011-02-05
06:28
Reworked the error handling in package and application. Default for package is throwing errors, and application overrides that to print them to terminal instead, and abort. check-in: 843981bd11 user: aku tags: trunk
01:03
Reworked the generation of the dummy critcl package to check and define each command individually. We cannot assume that having critcl::FOO implies having critcl::BAR, with the exported API of critcl changing. check-in: a9b7112e8d user: andreask tags: trunk
00:51
Now factoring "AssemblePackage". First pieces are the code generating the dummy critcl and copy of platform::generic check-in: ab79b97795 user: andreask tags: trunk
00:36
Final placement of the generated shlib is now a procedure as well. check-in: b26b98642e user: andreask tags: trunk
00:24
Moved the code assembling the package for -pkg into its own procedure. This made "main" small enough to rework it a bit as well, making the failure handling more readable. check-in: 1b3a4550c1 user: andreask tags: trunk
00:03
critcl backend, added early return for commands which can be called with no arguments. check-in: 6deaa678d6 user: andreask tags: trunk
00:00
Made the eval's in BuildBracket resistant to spaces (in paths). check-in: db38ea6169 user: andreask tags: trunk
2011-02-04
23:54
Simplify the setup of the bracket, especially the magic of using a #define to rename the bracketing _Init function from Critcl to XXX. This magic wired also in an assumption about the name of the applications's .tcl file. It is much easier to get the same effect by using 'info script' to set the file name to use by the backend, causing to generate the proper function name in the first place. check-in: 8b92645b86 user: andreask tags: trunk
23:41
Moved the code creating and building the overarching init code into a procedure. check-in: de608d82e8 user: andreask tags: trunk
23:27
Moved the main loop processing the input files into a helper procedure. Moved its public state to the "app::v" namespace. check-in: 0e02056b1c user: andreask tags: trunk
22:39
Moved the command-line processing into a helper procedure, and figured out which of the variables were application state, vs. local to the processing. check-in: bc3803fccb user: andreask tags: trunk
20:23
Added notes on the interception of "package" commands by the app. This is now understood. check-in: 40d2f1d4ec user: andreask tags: trunk
20:09
Reordered procedures to prefered form. main first, then helpers as used, top-down. check-in: 03223ab398 user: andreask tags: trunk
20:00
Put the main chunk of the application code into a procedure. Still large, however from there we can now easily factor pieces out. This needed some adaptions to ensure that critcl.tcl is still seen as the file the overarching package setup is based on, and to make sure that the introspection done by critcl itself will not pick up the critcl::app namespace. check-in: e4842301ec user: andreask tags: trunk
00:22
Dropped irrelevant code to support pre8.4 Tcl. check-in: e331db9b5b user: andreask tags: trunk
00:22
Application. Moved existing procedures into the "critcl::app" namespace. check-in: 09757e529e user: andreask tags: trunk
2011-02-03
06:59
More documentation updates. check-in: dea186ef15 user: aku tags: trunk
06:33
Docmented the new "critcl::tcl" command specifying the minimum version of Tcl package code is for. check-in: 7adfea16e5 user: aku tags: trunk
06:32
Made some notes final. check-in: 25a4461349 user: aku tags: trunk
04:55
Fixed bug [e4bb516471], making license work for mode "compile & run" without catch. The command now works like the other control commands. It simply remembers the information, build copies it over to the results, and the application collates the data and is responsible for writing the actual file into the generated package. check-in: 08a2bca38b user: aku tags: trunk
04:31
Fixed bug [ae37f80dad]. Trying to use critcl commands in a file after invoking load/failed for that file now results in an error. check-in: 47c1bd6e98 user: aku tags: trunk
04:13
Fixed bug [d3c99d31df], enhancing critcl::done to return proper results afrer failed/load. Fixed problems with using the self file as tsource, compile & run has to use "ignore" as well. Also fixed problem with "critcl::load", in mode "generate package" we must not honor load requests. check-in: f288bdf815 user: aku tags: trunk
01:02
Updated the package documentation to realign it with the code changes. check-in: f1bd291d85 user: andreask tags: trunk
2011-02-02
20:11
Added an "ignore" API call to ignore critcl invokations from specific files, and use this to disable critcl functionality in the tsources of a prebuilt critcl-based package. check-in: 6d00e2ded1 user: andreask tags: trunk
2011-02-01
21:28
Additional notes on the interaction of prebuilt packages from "generate package" and mode "compile & run", when both are used. check-in: 369c03112c user: andreask tags: trunk
21:17
Continued. Renamed the runtime critcl.tcl to critcl-rt.tcl (We have way to many critcl.tcl of different persuasions). More work on having everyting in the runtime namespace. Hopefully fixed the interference of the dummy critcl procedures with regular critcl by making their definition conditional (to not overwrite an existing critcl package in memory), and not declaring them as fake critcl package (so that a compile&run is still able to load the true critcl package). check-in: 14506a0d5c user: andreask tags: trunk
20:44
Continued, moved everything into the critcl::runtime namespace. First steps in disentangling the package runtime from the critcl compile & run mode. check-in: 398b3c4c5d user: andreask tags: trunk
20:27
Continued, moved procedures out of the namespaces, plus re-indented. check-in: 421bd2506f user: andreask tags: trunk
20:25
Generate package, application: Make the procedures in the runtime fully qualified. check-in: d254153af1 user: andreask tags: trunk
06:27
Moved the accumulator for preloaded libraries into the "config" and "result" dictionaries, plus proper recording in the package uuid. Updated all users. And the application drops again direct access into the package state in favor of data from "cresults". check-in: ac9946c214 user: aku tags: trunk
05:58
Moved the copying of the preload.c file to MakePreloadLibrary, i.e. defering until necessary, and avoiding the copy altogether if the critcl package is on disk. check-in: 265d576cd2 user: aku tags: trunk
05:57
Extended the error message of the code searching for preload libraries to tell the user which places it looked at. check-in: c27a0fbde8 user: aku tags: trunk
05:56
Fixed bug in preload.c. The PreloadInfo* preload variable was not defined conditionally, although it is used only for Win32 check-in: e51e77441f user: aku tags: trunk
05:37
Fixed bug [767c8da0b7], copying the headers to the cache when needed, i.e. the critcl package residing in a virtual filesystem the compiler has no access to. check-in: 61b51b3d30 user: aku tags: trunk
05:04
Added the missing 8.5 and 8.6 headers. Updated the 8.4 headers, which were actually an alpha of 8.5. Fixed various problems in the previous commit: Missing version decls for "generate package", bad query of version in Load, modified the stubs.c template to take and insert the declared minimum version check-in: 6bd7f56fa2 user: aku tags: trunk
04:39
Moved the in-package Tcl/Tk headers into a core-version-specific subdirectory. In preparation the ability to choose a different minimum version of Tcl to build the code against. Created API command for doing the switch as well. Only the 8.5 and 8.6 headers are missing still. check-in: ce42c971ff user: aku tags: trunk
2011-01-30
04:45
Split into the cproc implementation into smaller, more readable pieces, and converted the big switches into array-based mappings. check-in: 52ca529030 user: aku tags: trunk
03:44
Shuffled sections to get related things back near to each other. check-in: 8ca7a9e85c user: aku tags: trunk
03:35
Moved replicated code computing the stem for the init function into API command. check-in: 1415bc6bad user: aku tags: trunk
03:27
Shuffled mainly pieces of the CC cmdline generation around, simplified by removing dependent variables, etc. check-in: 81d480b7a8 user: aku tags: trunk
02:57
Fixed oops in transmission of copts to Link (used by MakePreloadLibrary). check-in: 8582f37396 user: aku tags: trunk
02:53
Removed the magic v::objs, and made transmission of object files more explicit through the result dictionary. Updated the application. check-in: 265e23cec0 user: aku tags: trunk
02:38
Application tweaked for readability and internal docs. check-in: e8ab8e5fef user: aku tags: trunk
02:14
Reworked the API from application to package with regard to the various build control flags. The signaling is now handled by an explicit new API, "buildforpackage", instead of optional arguments. "failed" is now much simpler. A new API, "load", to force build and load, i.e. non-lazy use of a critcl package in mode "compile & run" check-in: 88b6c94830 user: aku tags: trunk
2011-01-29
22:59
Fixed and dropped a few of the remaining noted locations (XXX) check-in: 935a4e036d user: aku tags: trunk
22:47
Fixed limitation of critcl::debug, and the bug which caused the companion C files to be built without the cflags of their main file (like debugging). check-in: c0134528a7 user: aku tags: trunk
22:24
Fixed the double bracing in the C code generated for ccommand's. Fixed the line-counting relative to the location of the cproc/ccommand in the .tcl file. Was off by 2 (cproc), and off by 4 (ccommand). check-in: a1ef8ce127 user: aku tags: trunk
21:57
Readability tweaks check-in: 5497410c5f user: aku tags: trunk
21:52
Modified the uuid generation a bit, giving each digest a proper label, i.e. where it came from, plus added cflags and ldflags into the uuid, as their changes can result in changes of the generated binary as well. check-in: d75596cdaa user: aku tags: trunk
21:45
Oops. Missed a place in [5c977fff99] check-in: 770bfe2640 user: aku tags: trunk
21:32
Fixed an old bug, a loop variable inconsistency, "x" vs. "name" actually used. Not seen before, because the old loop to separate function names and C digests used "name" as well, allowing the bogus code to execute and not throw an error. check-in: 5c977fff99 user: aku tags: trunk
21:28
Moved the per-file list of fragments into the per-file dictionary, splitting the various functions into separate elements (functions, fragments, block, and uuid). With the C fragments and their hashes now stored per-file cleanup is simplified. Access for the various needs is simplified too (direct access to list of function names, of code blocks, etc. Management of the uuid (change detection) is now in helper procedures. An old bug was found, but kept for the moment, its fix should be a separate changeset. Coming next. check-in: c39213e5f2 user: aku tags: trunk
09:15
The code determining the caller's namespace was duplicated. Moved it into the common helper procedure called immediately after it, unduplicating it. Modified callers, and code segment to handle the changes in signatures and environment. check-in: a15213822c user: aku tags: trunk
08:45
Moved init & ext (of cinit) into the config dictionary. Updated all users. Simplified setup and cleanup. Added the ext part to the digest for change detection. check-in: fdf1449b63 user: aku tags: trunk
2011-01-28
05:31
Continued listification of the CC command line. Simplified the handling of external header files, be it Tcl/Tk, or user-specified. Instead of copying them into the cache simply use proper -I flags to point to the necessary directories. check-in: 3fda2a47a4 user: aku tags: trunk
04:58
Start on listification of the cc commandline. Moved the code generating the .c file backing a .tcl file with embedded C sources into a separate procedure. check-in: 61a15e544e user: aku tags: trunk
00:42
Moved access to the failure status of a build into helper procedures, and the information into a namespace variable. Updated all users, moving status checks into the higher-level build commands, and status update down into the code actually running a command. Ex Do*, renamed Exec*. check-in: 0c0f80b09a user: andreask tags: trunk
00:01
Tweak to code building the preload support shlib. Location could be had easier. Plus notes. check-in: b51d9b8154 user: andreask tags: trunk
2011-01-27
23:46
Treat the linker command line as list, not a string. Moved a number of blocks into helper procedures. check-in: d3491c53f7 user: andreask tags: trunk
08:03
Made the cflags and ldflags per-file settings. Updated all users. check-in: aa851753e1 user: aku tags: trunk
07:20
Moved the SetParam based settings (cheaders/sources/libraries) to the dictionary. check-in: 7fd3985560 user: aku tags: trunk
06:18
Moved linker setup and execution to separate helper command. check-in: 7355fce008 user: aku tags: trunk
05:53
Moved the logging of command lines around a bit, and also reformatted the output (multiple lines, indented) to better see the command arguments. check-in: d436295075 user: aku tags: trunk
03:53
Tweaks and docs check-in: 226cc01bf7 user: aku tags: trunk
03:42
Encapsulated log access (open,close,extend) within new helper commands. check-in: 97dd4c2fd0 user: aku tags: trunk
00:07
Moved series of build setup code from cbuild to separate helper commands. check-in: 6818fc5da9 user: andreask tags: trunk
2011-01-26
23:29
Factored shlib load into separate helper command, and modified the tsources handling to be moved through the new per-file dictionary check-in: aae056eaf8 user: andreask tags: trunk
23:06
Extended the forward-compat dict support with an implementation of 'dict update' check-in: fdc1c2edde user: andreask tags: trunk
22:36
Fix ccode/code typo in [ff3b3b6a953fa65fbca592acf65d5d9f92975e32], updated internal documentation. check-in: 85489563ba user: andreask tags: trunk
22:23
Moved the result data from a cbuild to a per-file dictionary, dropped the multiplexing of result object and shlib, and updated all callers. check-in: ff3b3b6a95 user: andreask tags: trunk
00:37
Moved the forward compatibility code to a separate file, and added dict forward compatibility. I want dictionaries later. check-in: e55a7adde9 user: andreask tags: trunk
2011-01-22
00:53
define -> BeginCommand, new EndCommand compile -> Compile, this is internal. Documented the arguments. new Write* commands, for easy creation of temp and other files. More notes. check-in: 5868d7178b user: andreask tags: trunk
2011-01-21
20:45
Continued work on removing direct access to package state. Now we have commands to retrieve build results. This part is likely not in the final state yet. (Have to decide on per-file storage, or as it currently is, stored until the next build overwrites things). check-in: 188831b79a user: andreask tags: trunk
2011-01-18
08:24
Tweaks check-in: 99b3df3f50 user: aku tags: trunk
08:10
Reworked critcl::failed for multiple calls, now memoizing. Reworked critcl::cbuild to always save its results in the package state. Got rid of direct access to failed state from the app. Still have to change the signaling of gen pkg mode, and result access. check-in: 0134b8cf4c user: aku tags: trunk
07:38
A few small tweaks check-in: 066f9ddb13 user: aku tags: trunk
02:56
More commenting, mainly figuring out the communication app/pkg regarding critcl::cbuild/failed. check-in: 3113afe699 user: andreask tags: trunk
00:58
First go at [07fa71551e]. I really have to trace the stuff with v::libsrc/v::libfile .This one may be broken. check-in: 9a68707b72 user: andreask tags: trunk
00:36
Continued replacemt of direct access of package internals by the application with API commands. check-in: 3c0a16995f user: andreask tags: trunk
00:27
First steps in removing direct access of package internals by the application. check-in: 0426d58002 user: andreask tags: trunk
2011-01-17
23:54
Added notes documenting the direct read/write of package internals by the application. check-in: 6b0e04f16b user: andreask tags: trunk
23:53
Notes + changes of some var access to equivalent commands. check-in: ba52413993 user: andreask tags: trunk
23:38
New category for the commands which are public for access by the app. Plus notes on undocumented vars. check-in: 1433f52eb1 user: andreask tags: trunk
23:37
Indent tweaking for readability check-in: d67a971f6b user: andreask tags: trunk
23:00
Renamed the internal commands (capitalization). check-in: 2d22c29637 user: andreask tags: trunk
22:48
More notes. clean_cache extended to arbitrary pattern. Reused in check. check-in: 9e22773f42 user: andreask tags: trunk
22:24
Cross-checked the configvars in critcl::c against Config, plus local docs. check-in: 9bb9a9455e user: andreask tags: trunk
21:40
More annotations, plus docs of the internal state. check-in: d46dce2cc6 user: andreask tags: trunk
2011-01-15
08:00
Moved a few larger code blocks into helper files, added commands for easy access of these templates (Template, Cat). I note that the code generation is a bit of an inconsistent mess, using emit* commands, direct puts to a file, append-to-var+later-puts, and now I am guilty of adding a bit more, reading from a Template file, and subst'ing variables. Wish I could use text::write (See tcllib PT). This is 8.5+ however, and another external dependency. Maybe I should snarf it, i.e. local copy, then modify for 8.4. check-in: b6bf683eec user: aku tags: trunk
06:59
Consolidated execution of compiler, etc. in common helper commands. check-in: 4e2e18612a user: aku tags: trunk
06:41
More annotations, standardized error return, and gave a number of commands deterministic results, mostly empty string check-in: 59157b300c user: aku tags: trunk
06:31
A bit of cleanup in the platform determination and use. check-in: bb74384b02 user: aku tags: trunk
06:15
Nicer option (dash) matching. check-in: d5dcbd14d1 user: aku tags: trunk
06:14
Added some annotations (queries & comments), fixed a few warnings reported by tclchecker. Nicer string comparisons (eq/ne for ==/!=) check-in: 7992af9c03 user: aku tags: trunk
05:40
Tweaked the [info script] usage, hopefully more readable. check-in: 5cef420e23 user: aku tags: trunk
05:25
Tweaked the initialization, hopefully more clear now check-in: 41e30af370 user: aku tags: trunk
05:06
Moved the md5_hex setup to the top, to the other md5 song&dance check-in: e45f273fd8 user: aku tags: trunk
05:01
Assume Tcl 8.4, killed the dance about the emulation of "file normalize". check-in: fa31cdd29c user: aku tags: trunk
04:57
Sorted the procedures into internal vs public, and the latter further into the six known categories (embed, control , introspect, build mgmt, cache mgmt, and build config). check-in: b15b81bde1 user: aku tags: trunk
04:42
Moved all procedures before the state definitions, and continued the re-indentation. Kept the order of procedures. check-in: 57bfa579f2 user: aku tags: trunk
04:27
Made all procedure definitions fully qualified. Started on proper indentation. Started with section separators. check-in: 406e704cc1 user: aku tags: trunk
03:08
First draft of doctools based reference manpages. check-in: b11be8e405 user: aku tags: trunk
02:44
Development work on critcl, package and application. Semi-fork. check-in: 32ecbb6fb1 user: aku tags: trunk