Ticket UUID: | 1492630 | |||
Title: | Installer not creating tcllibc + related uuid issue | |||
Type: | Bug | Version: | None | |
Submitter: | juliannoble | Created on: | 2006-05-21 21:05:09 | |
Subsystem: | Installer | Assigned To: | andreas_kupries | |
Priority: | 5 Medium | Severity: | Minor | |
Status: | Closed | Last Modified: | 2024-06-03 18:54:11 | |
Resolution: | Not Applicable Here | Closed By: | aku | |
Closed on: | 2024-06-03 18:54:11 | |||
Description: |
installer.tcl (on windows at least) doesn't create the tcllibc module - nor does INSTALL.txt mention how to build it. I found out about 'sak.tcl critcl' through a c.l.t article where the original poster was complaining about slow pure tcl implementations. A missing tcllibc module means that the uuid package at least, will fallback to Tcl only mode even though critcl is installed. for uuid without tcllibc - the faster version can be accessed by first package requiring critcl.. then directly calling the c proc. e.g on a machine without tcllibc installed. %package require critcl 0.35 %package require uuid 1.0.1 %uuid::tostring [uuid::generate_c] <some guid> %time {uuid::tostring [uuid::generate_c]} 100 150.0 microseconds per iteration %time {uuid::uuid generate} 51560 microseconds per iteration As you can see there's a huge performance difference (due to exec call to ipconfig I guess) so it seems that the fast critcl version is usable without tcllibc - yet the default in this case is to still use the pure Tcl version. Note that if critcl is 'package required' after uuid then you just get: invalid command name "uuid::generate_c" I guess I'm suggesting that either uuid shouldn't depend on tcllibc being present - just critcl... and/or that tcllibc should be built by the tcllib installer and documented, or at least just explained in INSTALL.txt. | |||
User Comments: |
aku added on 2024-06-03 18:54:11:
Shifted to https://core.tcl-lang.org/tcllib/tktview/4799af766d8045f8524e8b576879c82473119865 Tcllib actually has tcllibc. Tklib here has nothing to do with tcllibc, nor critcl. andreas_kupries added on 2006-06-14 05:31:49: Logged In: YES user_id=75003 Hm. There are a number of packages which can use tcllibc, and IIRC none of them look for and use an installed critcl to compile the acceleration codes dynamically. Yes, extending the installer should be possible, to have it look for critcl, and build tcllibc if it is present. That should alleviate most concerns I think. Otherwise we have go deeper into the code of all the packages loading their various accelerators and have it check for critcl alone as well. The other stuff are documentation issues I will address after we have consensus regarding tcllibc/critcl. I have notified Pat Thoyts directly, as he wrote most of the packages using critcl in general, and uuid in particular. |
