The (Active) State of Tcl

Total Page:16

File Type:pdf, Size:1020Kb

The (Active) State of Tcl The (Active) State of Tcl 15th Annual Tcl Conference (2008) Jeff Hobbs Director, Languages ActiveState Corporation Agenda Introduction What has happened… Developments in the Tcl community The Active State Developments of the Tcl/Tk core Future directions About ActiveState ActiveState Software Inc. Over 10 years focusing on open source dynamic languages Independent again since February, 2006 ActiveState provides multi-language, cross-platform software & services Tcl, Perl, PHP, Python, Ruby AIX, HP-UX, Linux, Mac OS X, Solaris, Windows, … Comprehensive Software Stacks for Dynamic Languages Make programming easier using dynamic languages Active distributions Software development tools (IDEs, Dev Kits) Programmer resources (ASPN) Enterprise support & OEM redistribution History of Tcl 1. Tcl created as general-purpose 4. Scriptics formed: command/scripting language by 7. ActiveState introduces • Evolve and extend Tcl platform Tcl support and services John Ousterhout • Create development tools 6.0 Sept 7.0 Sept 7.4 July 7.6 Oct 8.0 Aug 8.1 Apr 8.3 Feb 8.4 Sept 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 … 8.2 Aug 5. Tcl Core Team 8.3.5 EOL Oct formed (August) 2. Open source distributions from U.C. Berkeley: 6. Scriptics/Ajuba Acquired • Easy GUIs under Unix by Interwoven (Nov) • Extensible applications 3. Tcl enhanced at Sun Microsystems: 8. ActiveState acquired by • Windows, Macintosh ports Sophos (Sept) • Web/Internet support • Java support Recent History of Tcl Sophos Acquires ActiveState (Sept) ActiveState Publishes Dynamic Languages ActiveState Tcl Dev ActiveState Tcl Dev Whitepaper (July) Kit 2.6 (May) Kit 3.0 (Dec) 8.5a1 Mar 8.5a3 June 8.5.0 ?? 2003 2004 2005 … 9.0 ?? 10th Tcl Conference 11th Tcl Conference 12th Tcl Conference (July) Ann Arbor (Oct) New Orleans (Oct) Portland 8.4.7 July 8.4.11 June Tcl’Europe 2003 (May) Recent History of Tcl ActiveState Becomes Independent From Sophos (Feb) 8.5b1 Sep 8.5.0 Dec 8.6a3 Oct 8.6.0 !! 2006 2007 2008 … 9.0 ?? 13th Tcl Conference 14th Tcl Conference 13th Tcl Conference (Oct) Chicago (Sep) New Orleans (Oct) Manassas 8.4.14 Oct 8.4.16 Sep 8.4.19 Apr 8.5.5 Oct You are here Status as of Tcl’2007 September 24-28 New Orleans Mmm mmm good Tcl/Tk 8.4.16 was the standard stable version Further stabilization 8.4 now base standard in all distros 5 years since 8.4.0 Numerous enhancements and additions Getting long in the tooth ... 8.5b1 released Focus on putting 8.5 to bed 8.6 vs. 9.0 Primary topics … 8.5 finalization Food Tcl Core Team Formed in August 2000 with 14 charter members Elected by community vote Collectively manage development of the core Now at 16 members Mo DeJong Andreas Kupries Donal Fellows Karl Lehenbauer Mark Harrison Joe English (2005) D. Richard Hipp Jan Nijtmans Jeffrey Hobbs John Ousterhout George Howlett Don Porter Jim Ingham Brent Welch Kevin Kenny (2001) Miguel Sofer (2004) TCT: TIP Initiatives TIP page for Tcl http://tip.tcl.tk/ TIPs are intended to guide and document development on the core They focus on new or changing features, not bugs Voted on by the TCT following community discussion using the TYANNOTT process Currently 335 TIPs Divided into process, informational & project TIPs TCT discussion is open on the public mailing list: [email protected] Tcl/Tk Maintainers Tcl/Tk maintainers are separate from the TCT Maintainers oversee a specific area of the core, as defined in TIP #16 (Tcl) and TIP #23 (Tk) They assist, but are not solely responsible for, fixing bugs and adding docs in their area They are responsible for reviewing code and approving code changes to their area Open to anyone willing to learn the core New volunteers always welcome The Maintainers… Tcl (TIP #24): Daniel Steffen Jim Ingham Kevin Kenny Jeff Hobbs Miguel Sofer Andreas Kupries Rolf Schroedter Vince Darley Don Porter Jan Nijtmans Donal Fellows Mo DeJong Pat Thoyts Joe Mistachkin Pavel Goran Tk (TIP #30): Allen Flick Peter Spjuth Todd Helfter Jeff Hobbs George Smith Frédéric Bonnet Kevin Griffin Vince Darley Chengye Mao Jan Nijtmans Donal Fellows Mo DeJong Joe English Daniel Steffen Ben Riefenstahl Miguel Bañón Always open for new recruits … Tcl @ ActiveState ActiveState established 1997 “Dynamic Tools for Dynamic Languages” Used to be Perl specific . Well known ActivePerl distribution Added Python and XML/XSLT expertise in 2000 Jeff Hobbs & Andreas Kupries hired in 2001 Other knowledgeable Tcl’ers on staff Wealth of scripting knowledge at ActiveState Acquired by Sophos in September 2003 Freed from Sophos in February 2006 ActiveState remains dedicated to dynamic languages ActiveState and Tcl ActiveState provides the Tcl community with… Improvements to open source Tcl core Host of the Tcl Developer Xchange Enterprise support infrastructure Professional services for Tcl High quality development tools . ActiveTcl • Batteries-Included free distribution . Komodo IDE • Professional IDE with extensive Tcl support . Tcl Dev Kit • Essential tools for Tcl programmers . ActiveTcl Pro Studio • Tcl Dev Kit, Komodo IDE, Safari Online ActiveState 2008 Tcl Cookbook on new ASPN ActiveTcl 8.4.19.0 Based on the 8.4.19 Tcl core Released September 2008 Enhanced with many popular extensions XOTcl, [incr Tcl], TclX, expect, tcllib, tklib, Bwidgets, iwidgets, tktable, tkcon, tile, SQLite, … 300+ packages in all A standard batteries-included distribution for Tcl users Available for AIX, HP-UX, Linux, Mac OS X (universal), Solaris (x86 and sparc), Windows . Windows and OS X builds are fully threaded Other platforms supported in Enterprise Edition TEApot code repository via teacup ActiveTcl aes asn autoproxy autoscroll Banking base64 bee bibtex blowfish BWidget calendar cgi2dom cksum cmdline comm compiler control counter crc16 crc32 critcl csv ctext cursor datefield dde des dns docstrip doctools dom dommap domtext domtree exif expat Expect fileutil ftp ftp::geturl ftpd getstring history html htmlparse http ico ident Img inifile ip ipentry irc Itcl Itk Iwidgets javascript jpeg jpegtcl ldap log logger math md4 md5 md5crypt Memchan mime Mk4tcl mk4vfs msgcat multiplexer ncgi nntp opt Oratcl parser Plotchart pluginmgr png pngtcl pop3 pop3d pop3d::dbox pop3d::udb profiler puretclparser rc4 rcs registry report resolv ripemd128 ripemd160 rpcvar SASL sgml sgmlparser sha1 sha256 smtp smtpd snack snackogg snacksphere snit SOAP sound soundex spf sqlite3 starkit stooop struct style sum swaplist switched Tablelist tar tbcload Tcl tclDES tclDESjr tcllibc tclparser TclScript tcltest Tclx tcom tdom tdomhtml textutil Thread tie tifftcl tile time tipstack Tk Tkhtml tkpiechart Tktable tnc tooltip treectrl treeql Trf trofs units uri uri::urn uuencode uuid vfs vfslib vu widget widget::all widget::dialog widget::panelframe widget::ruler widget::screenruler widget::scrolledwindow widget::superframe win32 xml xmldefs XMLRPC xmlswitch XOTcl xpath xslt xslt::cache yencode zipvfs zlibtcl ActiveTcl 8.5.5.0 Based on the 8.5.5 Tcl core Released October 2008 – on your USB key Distributed with fewer extensions Can utilise the 8.4 extension set 90+ packages - the rest available via teacup Considered the default download An enhancement to the stable 8.4 distribution Available for AIX, HP-UX, Linux, Mac OS X, Solaris, Windows . All builds are fully threaded (including known pthread/fork issues) What are you missing? ActiveTcl 8.6.0.0 Beta 1 Based on 8.6a3 Tcl core Not yet released - on your USB key Similar to ActiveTcl 8.5 extension set More discussion on 8.6 to follow The TEApot Binary code repository in the style of ActivePerl's PPM Fully populated for ActiveTcl platforms Makes use of Tcl module system Allows zip archives with special teapot.txt Repository is web visible, but rough Downloads index – local searches Integrated with TclApp package searching (TDK 5) ActiveTcl Pro Studio Formerly ASPN Tcl Introduced December 2001 Professional Tools for Tcl Developers Tcl Dev Kit 5.0 Komodo Pro IDE 4.4 (5.0 now in beta) Safari Bookshelf online books Tcl Dev Kit 5 5.0 released October 2008 Added 8.6 support Enhanced static syntax analysis Supports multi-architecture starkits, x-platform starpacks Includes the traditional TclPro tools, revamped: Debugger: source-level debugger with GUI Checker: find errors without running application TclApp (Wrapper): create self-contained applications for distribution Compiler: protect your source code Enhanced features and UIs for original tools Version independent from ActiveTcl Tcl Dev Kit 5 Additional tools Coverage: coverage and hot-spot analysis built into the Debugger TclSvc: create and manage Tcl scripts as Windows NT services TclApp: rewrite of the wrapper based on VFS and starkit architecture, cross-platform wrapping Inspector: runtime Tcl application browser to complement the Debugger X-ref: examine dependencies in your code VFS Explorer: examine starkits/starpacks Komodo 5 Professional IDE for dynamic languages Professional IDE features Integration with Tcl Dev Kit Unique Tcl editing features Cross-platform (Windows, Linux, & OS X) Also supports Perl, Python, PHP, Ruby and more New in 5.x ... Added support for git, hg, bazaar (4.x had cvs, p4, svn) Code formatting tool hooks Multiple toplevel windows Faster and slicker UI Performance improvements and bug fixes Komodo 5 In the Community… The Tcl Developer Xchange: http://www.tcl.tk/ aka http://tcl.ActiveState.com/ Official home page for Tcl and Tk Formal front-end, downloads,
Recommended publications
  • Ajuba Solutions Version 1.4 COPYRIGHT Copyright © 1998-2000 Ajuba Solutions Inc
    • • • • • • Ajuba Solutions Version 1.4 COPYRIGHT Copyright © 1998-2000 Ajuba Solutions Inc. All rights reserved. Information in this document is subject to change without notice. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means electronic or mechanical, including but not limited to photocopying or recording, for any purpose other than the purchaser’s personal use, without the express written permission of Ajuba Solutions Inc. Ajuba Solutions Inc. 2593 Coast Avenue Mountain View, CA 94043 U.S.A http://www.ajubasolutions.com TRADEMARKS TclPro and Ajuba Solutions are trademarks of Ajuba Solutions Inc. Other products and company names not owned by Ajuba Solutions Inc. that appear in this manual may be trademarks of their respective owners. ACKNOWLEDGEMENTS Michael McLennan is the primary developer of [incr Tcl] and [incr Tk]. Jim Ingham and Lee Bernhard handled the Macintosh and Windows ports of [incr Tcl] and [incr Tk]. Mark Ulferts is the primary developer of [incr Widgets], with other contributions from Sue Yockey, John Sigler, Bill Scott, Alfredo Jahn, Bret Schuhmacher, Tako Schotanus, and Kris Raney. Mark Diekhans and Karl Lehenbauer are the primary developers of Extended Tcl (TclX). Don Libes is the primary developer of Expect. TclPro Wrapper incorporates compression code from the Info-ZIP group. There are no extra charges or costs in TclPro due to the use of this code, and the original compression sources are freely available from http://www.cdrom.com/pub/infozip or ftp://ftp.cdrom.com/pub/infozip. NOTE: TclPro is packaged on this CD using Info-ZIP’s compression utility.
    [Show full text]
  • Tclpro™ User's Guide
    TclPro™ User’s Guide • • • • • • Scriptics Corporation Version 1.3 COPYRIGHT Copyright © 1998, 1999 Scriptics Corporation. All rights reserved. Information in this document is subject to change without notice. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means electronic or mechanical, including but not limited to photocopying and recorded for any purpose other than the purchaser’s personal use, without the express written permission of the Scriptics Corporation. Scriptics Corporation 2593 Coast Avenue Second Floor Mountain View, CA 94043 U.S.A http://www.scriptics.com TRADEMARKS TclPro and Scriptics are trademarks of the Scriptics Corporation. Other products and company names not owned by the Scriptics Corporation that appear in this manual may be trademarks of their respective owners. ACKNOWLEDGEMENTS Michael McLennan is the primary developer of [incr Tcl] and [incr Tk]. Jim Ingham and Lee Bernhard handled the Macintosh and Windows ports of [incr Tcl] and [incr Tk]. Mark Ulferts is the primary developer of [incr Widgets], with other contributions from Sue Yockey, John Sigler, Bill Scott, Alfredo Jahn, Bret Schuhmacher, Tako Schotanus, and Kris Raney. Mark Diekhans and Karl Lehenbauer are the primary developers of Extended Tcl (TclX). Don Libes is the primary developer of Expect. TclPro Wrapper incorporates compression code from the Info-ZIP group. There are no extra charges or costs in TclPro due to the use of this code, and the original compression sources are freely available from http://www.cdrom.com/pub/infozip or ftp://ftp.cdrom.com/pub/infozip. NOTE: TclPro is packaged on this CD using Info-ZIP’s compression utility.
    [Show full text]
  • 0:Object-Oriented Programming with [Incr Tcl] 0:Building Mega-Widgets with [Incr
    0:Object-Oriented Programming with [incr Tcl] 0:Building Mega-Widgets with [incr Tk] Michael J. McLennan Bell Labs Innovations for Lucent Technologies 1247 S. Cedar Crest Blvd. Allentown, PA 18104 [email protected] Copyright © 1996 Lucent Technologies ABSTRACT Applications with short development cycles have the best chance for success in today’s marketplace. Tcl/Tk provides an interactive development environment for building Graphical User Interface (GUI) applications with incredible speed. Tcl/Tk applications look like they were constructed with the Motif toolkit, but they can be written in a fraction of the time. This is due, in part, to the high- level programming interface that the Tcl language provides. It is also due to the interpretive nature of the Tcl language; changes made to a Tcl/Tk application can be seen immediately, without waiting for the usual compile/link/run cycle. Developers can prototype new ideas, review them with customers, and deliver a finished product within a span of several weeks. The finished product will run on all of the major platforms: Unix, PC Windows, and Macintosh. But the Tcl language was not designed to support large programming projects. When Tcl/Tk scripts grow larger than a thousand lines, the code complexity can be difficult to manage. [INCR TCL] extends the Tcl language to support object- oriented programming. This allows developers to write high-level building blocks that are more easily assembled into a finished application. The resulting code has more encapsulation, and is easier to maintain and extend. [INCR TCL] is patterned after C++, so for many developers, it is easy to learn.
    [Show full text]
  • 7Th USENIX Tcl/Tk Conference February 14-18, 2000 Austin, Texas, USA
    7th USENIX Tcl/Tk Conference February 14-18, 2000 Austin, Texas, USA Tutorial Sessions Monday, Feb. 14 to Tuesday, Feb. 15, 2000 Please select one morning and one afternoon tutorial. Sorry, no partial registrations are allowed. Monday, February 14, 2000 Morning Sessions (9:00 am - 12:30 pm) M1am: Effective Tcl/Tk Programming Michael McLennan, Cadence Design Systems, Inc. Who should attend: Programmers and managers who are using Tcl/Tk to build real-world applications. This tutorial assumes a working knowledge of Tcl/Tk and goes beyond that to show how nontrivial Tcl/Tk programs are put together. Topics include: • How to use the Tk canvas widget to synthesize new types of widgets • How to use binding tags to add new widget behaviors • How to organize Tcl code into reusable libraries and packages. These techniques come together to create professional-looking applications that are easier to maintain and extend. Michael McLennan has been a Tcl/Tk enthusiast since 1992. He has taught more than 100 Tcl/Tk courses, and is co-author of Effective Tcl/Tk Programming and Tcl/Tk Tools. He also developed [incr Tcl], an object-oriented extension of Tcl/Tk. Michael, who received a Ph.D. in 1990 from Purdue University, is currently an Architect at Cadence Design Systems, Inc. M2am: XML and Tcl/Tk Steve Ball, Zveno Pty. Ltd. Who should attend: Developers who wish to add XML support to their applications, use XML for storing data, or process XML documents using Tcl. XML is set to revolutionize not only the Web but also many industries and businesses, as it allows easy, robust data exchange between machines.
    [Show full text]
  • Medical Image Analysis with VTK: a Tutorial
    Medical Image Analysis with VTK: A Tutorial Xenophon Papademetris December 13, 2006 Departments of Biomedical Engineering and Diagnostic Radiology, Yale University, New Haven, CT 06520-8042. www.bioimagesuite.org Abstract This paper describes a new tutorial book titled “An Introduction to Programming for Medical Im- age Analysis with the Visualization Toolkit.” This book derived from a set of class handouts used in a biomedical engineering graduate seminar at Yale University. The goal for the seminar was to introduce the students to the Visualization Toolkit (VTK) and, to a lesser extent, the Insight Toolkit (ITK). A draft version of the complete book (including all the sample code) is available online at www.bioimagesuite.org/vtkbook. Contents 1 Introduction 1 2 Motivation 2 3 Book Contents 3 4 Conclusions 4 1 Introduction While both the Visualization Toolkit (VTK)[9] and the Insight Toolkit (ITK) [2] come with excellent online documentation, there is still a great need for introductory material to guide the beginner along the often steep learning curve required to learn using these toolkits. This article summarizes the contents of a book in preparation[6], a draft version of which is available freely online in .pdf format from the BioImage Suite web-page. The goal of this book was precisely to fill that void in the availability of introductory material. This book builds on a previous similarly named tutorial [5] that many have found useful in the past. 2 This book is an edited collection of class handouts that I wrote for the graduate seminar “Programming for Medical Image Analysis” (ENAS 920a) that was taught at Yale University, De- partment of Biomedical Engineering, in the Fall of 2006.
    [Show full text]
  • Poet: an OOP Extension to Tcl Supporting Constraints, Persistence, and End-User Modification Philip J
    Poet: An OOP Extension to Tcl Supporting Constraints, Persistence, and End-User Modification Philip J. Mercurio Thyrd.org [email protected] Abstract Integrated Construction Set) supports end-user inspection and modification of a running application. The primary tool is an object browser that displays an object's attributes Poet (Prototype Object Extension for Tcl) extends the Tcl (called slots), methods, constraints, and relationships to language with objects featuring dynamic, prototype-based other objects. Poetics also employs Poet's optional type inheritance, persistence, and one-way constraints between annotation feature so that appropriate content-specific object attributes. Poet includes wrappers around the Tk and editors can be created to edit slot values. A syntax- BWidget widgets that are automatically generated using highlighting code editor allows an application's source code introspection. This paper also describes Poetics (Poet to be edited, saved, and reloaded in a running application. Integrated Construction Set), a sub-project within Poet to create tools to allow a Poet application's code and user As of this writing, the Poetics tools are incomplete and not interface to be modified by the end-user, from within a ready for end-user use. However, even in its current, running Poet application. The goal of Poetics is to provide limited form Poetics can be very useful to the Poet some of the functionality of an integrated development application developer. environment to the user of a Poet application. An object inspector and code editor are the beginnings of the Poetics Related Work toolset. The primary inspiration for Poet is Self [2], a dynamic object-oriented programming language and environment.
    [Show full text]
  • The Book in a Compressed .Pdf Format (1.9MB)
    c Copyright 2009 by Xenophon Papademetris and Alark Joshi All Rights Reserved This book is an edited collection of class handouts that was written for the graduate seminar “Programming for Medical Image Analysis” (ENAS 920a). This class was taught at Yale University, Department of Biomedical Engineering, in the Fall of 2006 and again in the Spring 2009 semester. Some the comments in this draft version of the book reflect this fact. For example, see comments beginning “at Yale”. Furthermore, many of the references that will appear in the final version are still omitted. It is made available at this stage in the hope that it will be useful. Draft Sep. 2009 Contents Preface 5 Preface to the First Edition 6 I Introduction 8 1. Introduction 9 2. Revision Control with Subversion 14 II Programming with Tcl/Tk 19 3. Introduction to Tcl 20 4. Advanced Topics in Tcl 28 5. An Introduction To Tk 35 6. Tk Part II 43 7. Object Oriented Programming with [ Incr ] Tcl 53 8. Iwidgets: Object Oriented Programming for GUIs 63 III The Visualization Toolkit I – Using Tcl 70 9. An Introduction to the Visualization Toolkit 71 10.Curves and Surfaces in VTK 75 11.Images in VTK 85 12.Displaying Images in VTK 92 13.Transforming Surfaces and Reslicing Images 104 3 CONTENTS Draft Sep. 2009 IV Interfacing To BioImage Suite using Tcl 114 14.Leveraging BioImage Suite Components and Classes 115 15.Writing your own BioImage Suite Tcl Application 125 16.BIS Algorithm Framework 152 V C++ Techniques 169 17.Cross-Platform Compiling with CMAKE 170 18.C++ Techniques and VTK 177 VI VTK Programming with C++ and Tcl 189 19.VTK Code in C++: Procedural Code and Derived Classes 190 20.Implementing Point-Based Registration 202 21.Implementing Intensity Based Segmentation 220 22.More Advanced Image Algorithm/Filters and Templated Execution 239 23.Copying Data Objects and Breaking the Pipeline 251 24.The Insight Toolkit 256 VII Appendices 267 A.
    [Show full text]
  • CS 520 – Principles of Programming Languages a Report on Tcl/Tk Balaji Ramamurthy – [email protected] Xuchen Wang –
    CS 520 – Principles of Programming Languages A Report on Tcl/Tk Balaji Ramamurthy – [email protected] Xuchen Wang – [email protected] TABLE of CONTENTS Topic Page 1. INTRODUCTION 2 2. FEATURES of Tcl/Tk 2 2.1. The interpreted nature of Tcl 2 2.2. Syntax 3 2.3. Scope rules in Tcl 4 2.4. Procedures 4 2.5. Call by value and reference 4 2.6. Conditionals 5 2.7. Iterators 5 2.8. Error and Exception Handling 6 3. EMBEDDABILITY and EXTENSIBILITY 7 4. OBJECT ORIENTED? 7 5. MEMORY MANAGEMENT and GARBAGE COLLECTION 7 6. ADVANCED CONCEPTS 8 7. Tk - THE CROSS-PLATFORM TOOLKIT 9 8. SUMMARY and CONCLUSION 10 9. REFERCENCES 10 1. INTRODUCTION Tcl (pronounced as "tickle" or "tee-cee-ell") is a scripting language. Tcl was created by Professor John Ousterhout of the University of California, Berkeley. Tcl is believed to be a programming language that is easy to learn. It is a general purpose scripting language originally intended to be embedded in other applications as a configuration and extension language. Tcl is a dynamic, string oriented language, which makes it an ideal candidate for developing web applications. It also has the ability to interact seamlessly with other software and hardware, which makes it a great choice in the area of testing and automation. Tcl also has many packages and extensions that enable to integrate with the majority of the standard databases available in the market. It can also seamlessly integrate with embedded databases using these packages and extensions. Due to the presence of such fantastic features as mentioned above, Tcl is the most popular choice for embedded development.
    [Show full text]
  • TCL/TK ELECTRONIC REFERENCE for Tcl /Tk Version 8.0.X and [Incr Tcl] Version 3.0
    TCL/TK ELECTRONIC REFERENCE for Tcl /Tk version 8.0.x and [incr Tcl] version 3.0 Coverted to Adobe Acrobat Format (.pdf) by Charles Todd, Oct 1998. [email protected] BUILT-IN Tcl APPLICATIONS CLIBRARYIBRARY BUILT-IN TK APPLICATIONS CLIBRARYIBRARY [INCRINCR TCL] [INCRINCR WIDGETSIDGETS] [INCR TK] Tcl Applications tclsh ( 1 ) NAME tclsh − Simple shell containing Tcl interpreter SYNOPSIS tclsh ?fileName arg arg ...? DESCRIPTION Tclsh is a shell-like application that reads Tcl commands from its standard input or from a file and evalu- ates them. If invoked with no arguments then it runs interactively, reading Tcl commands from standard input and printing command results and error messages to standard output. It runs until the exit command is invoked or until it reaches end-of-file on its standard input. If there exists a file .tclshrc in the home directory of the user, tclsh evaluates the file as a Tcl script just before reading the first command from stan- dard input. SCRIPT FILES If tclsh is invoked with arguments then the first argument is the name of a script file and any additional arguments are made available to the script as variables (see below). Instead of reading commands from standard input tclsh will read Tcl commands from the named file; tclsh will exit when it reaches the end of the file. There is no automatic evaluation of .tclshrc in this case, but the script file can always source it if desired. If you create a Tcl script in a file whose first line is #!/usr/local/bin/tclsh then you can invoke the script file directly from your shell if you mark the file as executable.
    [Show full text]
  • Tcl Programming
    Tcl Programming en.wikibooks.org December 29, 2013 On the 28th of April 2012 the contents of the English as well as German Wikibooks and Wikipedia projects were licensed under Creative Commons Attribution-ShareAlike 3.0 Unported license. A URI to this license is given in the list of figures on page 65. If this document is a derived work from the contents of one of these projects and the content was still licensed by the project under this license at the time of derivation this document has to be licensed under the same, a similar or a compatible license, as stated in section 4b of the license. The list of contributors is included in chapter Contributors on page 63. The licenses GPL, LGPL and GFDL are included in chapter Licenses on page 69, since this book and/or parts of it may or may not be licensed under one or more of these licenses, and thus require inclusion of these licenses. The licenses of the figures are given in the list of figures on page 65. This PDF was generated by the LATEX typesetting software. The LATEX source code is included as an attachment (source.7z.txt) in this PDF file. To extract the source from the PDF file, you can use the pdfdetach tool including in the poppler suite, or the http://www. pdflabs.com/tools/pdftk-the-pdf-toolkit/ utility. Some PDF viewers may also let you save the attachment to a file. After extracting it from the PDF file you have to rename it to source.7z.
    [Show full text]
  • Prashant Thakre and Tushar Gupta
    Porting a large scale enterprise application from 2.0 Glossary Tcl/Tk 8.4 to 8.5 - A Case Study Description of terms used in the paper: Prashant Thakre, Tushar Gupta {prashant_thakre, [incr Tcl] - is an OO system for tushar_gupta}@mentor.com Tcl, and [incr Tcl] provides a similar object model, including multiple inheritance, and public 1.0 Abstract and private classes and variables. This paper describes the challenges involved in porting a [incr Tk] - Megawidget large scale enterprise framework based upon [incr application from Tcl/Tk 8.4 to Tcl]. Tcl/Tk 8.5, and lists down all Iwidgtes - is an object-oriented issues encountered during the mega-widget set which extends migration. The migration to Tcl/Tk and is based on [incr Tcl] Tcl/Tk 8.5 required adjustments and [incr Tk]. in application code, necessitated due to changes in [mti Widgets] - Collection of interface, or as a result of mega-widget, additions and unexpected functional enhancements to Iwidgets. This behaviour. On some occasions it megawidget requires TIP #125 was required to patch the (wm toplevel) Tcl/Tk 8.5 distribution with fixes which are now expected to be included into standard Tcl/Tk 3.0 Motivation release. The application Veloce The case-study describes in GUI, is from the Mentor detail various external and Emulation Division (MED) at internal dependencies requiring Mentor Graphics Corp. The resolution and covers Veloce GUI is used for performance related emulation compiles, emulation benchmarks/issues. Also, runtime control, and project changes in various packages management and most (core and external) resulting in importantly for design debug.
    [Show full text]
  • Tcl/Tk and the OAG Tcl/Tk Environment
    Outline • Introduction to the Tcl/Tk environment Tcl/Tk and the OAG Tcl/Tk • Misconceptions about Tcl/Tk Environment • Explanation of OAG Tcl/Tk • Channel Access extension Robert Soliday - Loading the package Assistant Scientist / AOD - Explanation of commands • SDDS extension September 21st, 2004 - Loading the package - Explanation of commands • Documentation on the web • How to obtain OAG Tcl/Tk for your system Argonne National Laboratory A U.S. Department of Energy 2 Office of Science Laboratory Office of Science Pioneering Office of Science U.S. Department of Energy Operated by The University of Chicago Science and U.S. Department Technology of Energy Introduction to the Tcl/Tk Environment Misconceptions about Tcl/Tk • Why would I want to use Tcl/Tk? What is in it for me? • Perl is faster than Tcl? - With Tcl (Tool Command Language) you can creating useful - This was true many years ago, but Tcl caught up with the 8.0 programs in minutes. release in 1997. This version introduced the bytecode - Freely available for X Windows, Windows, and Macintosh. interpreter. - Tcl has simple constructs and looks somewhat like C. • Perl has better regular expressions? - This means that it is easy read and understand the source - Again, this was true in the past, but the current Tcl’s regular code. This is useful when editing other people’s programs. expression package has all of the advanced features Perl has. • Three benefits to a script-based Tk approach to user interface • Tcl doesn’t support namespaces or object-oriented programming. programming? - No compilations means fast development. - Namespaces were added in 1997 and object-oriented - GUIs require just a handful of commands to define them programming is available in the [incr Tcl] extension.
    [Show full text]