SlideShare a Scribd company logo
1 of 24
Looking Ahead to Tcl 8.6


Jeff Hobbs
Director, Engineering
ActiveState Software Inc.
Agenda
 About ActiveState

 Tcl 8.6 roadmap

 Tcl 8.6 features in depth
  Knowledge of Tcl 8.5 expected
  For 8.5 review, see previous webinar:
    https://www1.gotomeeting.com/register/446757680

 Q&A
About ActiveState
 The Dynamic Language Experts
  Over 10 years focusing on open source dynamic
  languages
  Experience across multiple dynamic languages
   Tcl, Perl, PHP, Python, Ruby, JS
  And platforms
   AIX, HP-UX, Linux, Mac OS X, Solaris, Windows, …
 Assist in the development, management and
 distribution of dynamic languages
  97% of Fortune 1000 companies use ActiveState
  products
ActiveState Languages Universe
Tcl/Tk 8.6 Roadmap
 Currently in active development
  8.6a1 development initiated April 2008
    Same month of 8.4.19 release
  8.6b1 released December 2008
  8.6b2 coming soon
 Release schedule marching towards final
  8.6.0 targeted for 2011
 Community input is important
Tcl/Tk 8.6 Changes
 Numerous TIPs implemented for 8.6
  49 TIPs final (1 more in accepted state)
    8 more in draft state
  70 TIPs targeting 8.7 (in draft state)
    7 TIPs targeting 9.0
 99.9% compatible with Tcl 8.5
  Changes are in error messages
  Bytecodes have changed - watch version compatibility
    ActiveTcl tbcload can load 8.5 bytecodes in 8.6
    Separate Tcl Dev Kit bytecode compilers for 8.5 and 8.6
Tcl 8.6 OO
 Core OO! (T257 T320 T354)
                                     % oo::class create example {
  Major effort by Donal Fellows        variable foo
  Foundational OO system               constructor {{value 10}} {
                                          set foo 0
  inspired by XOTcl and snit              my bar $value
                                       }
  Provided in core (no package)        destructor { }
  oo::class, oo::define, oo::copy,     method bar {input} {
                                          incr foo $input
  oo::object, ...                      }
  Class-based object system with     }
                                     => ::example
  dynamic redefinition allowed       % example create b 4
                                     => ::b
  Per-object customization with      % b bar 3
  filters, mixins and more           => 7
  Has C API to create and
  manage classes, instances and
  methods
Tcl 8.6 string and list handling
 Simplified Tcl prefix matching (T195)
   tcl::prefix,   with C API for option parsing (T265)
 Unicode aware string trim* (T318)
 Find insertion point in sorted list lsearch -bisect
 (T313)
 Grouped sort with lsort -stride (T326)
  Great for use with array get or dict output
 Allow lset to extend lists (T331)
  lset myList end+1 foo equivalent to lappend     myList foo
Tcl 8.6 interp and namespace
 Ability to cancel script evaluation (T285)
  interp cancel,  C API helper Tcl_CancelEval
  Check if interp is active Tcl_InterpActive (T335)
 namespace ensemble create -parameters (T314)
 encoding system at startup is iso8859-1, not
 identity
 info errorstack, -errorstack return dict (T348)
 tcl::unsupported::representation
  Get Tcl_Obj internal rep
Tcl 8.6 extras
 New binary encode|decode with base64 (T317)
  binary   is now a namespace ensemble
 Base-2 support in format and scan with %b (T343)
 dict filter takes multiple patterns args (T341)
 Windows registry has 64-bit support (T362)
 Added tcl_platform(pathSeparator) key (T315)
  For $::env(PATH), not file paths (use file)
More 8.6 stuff!
 More commands take no args gracefully (T323)
  Reduce non-essential error cases, good with {*}

 New try/finally syntax (T329)             set f [open $file a]
                                           try {
  try body ?handler...? ?finally script?
                                               puts $f "oops ..."
  throw type message                           # ...
    Alternative to error                   } finally {
                                               close $f
                                           }
   try {
       set f [open $file]
   } trap {POSIX EISDIR} {}     {
       puts "failed to open     $file: it's a directory"
   } trap {POSIX ENOENT} {}     {
       puts "failed to open     $file: it doesn't exist"
   }
Tcl 8.6 files and channels
 New file tempfile ?nameVar? ?template?
  Creates tempfile and returns a channel (T210)
 Enhanced chan command
  close can close only read or write side (T332)
  Anonymous pipes with chan pipe (T304)
  Tcl level channel transformations chan push|pop (T230)
 IPv6 support in socket (T162)
  Currently uses OS preference for AF selection
But wait, there’s more!
 Zlib compression included with new core zlib
 command (T234)
  Builds on standard zlib sources
  Full zip and unzip support for gzip and zlib formats
  Supports channel streaming for transforms
  Includes adler32 and crc32 checksumming
  Includes Tcl_Zlib* C API
And on the C side of 8.6
 Make Tcl_Interp more opaque
  No more interp->result (T330)
   Use Tcl_GetStringResult(interp) instead
  API for interp->errorLine (T336)
    Tcl_Get|SetErrorLine
 Access to startup scripts from C (T338)
  Tcl_Obj *Tcl_GetStartupScript(const char **encodingNamePtr)
  void Tcl_SetStartupScript(Tcl_Obj *pathPtr, const char *encodingName)

 Exported Tcl_TransferResult (T307)
 Portable Tcl_StatBuf access (T316)
  Tcl_Get*FromStat
 New Tcl_BackgroundException for bgerror (T337)
More 8.6 Under the Hood
 Exported library loading functions (T357)
  Tcl_LoadFile, Tcl_FindSymbol, Tcl_FSUnloadFile
 Windows moving to full -DUNICODE build
  Supports Windows XP or later
 OS X moving to Cocoa
  Supports OS X 10.5 or later, allows 64-bit builds
 Next version of [incr Tcl] (v4) uses TclOO
 Thread extension to be included with core sources
  Thread builds (--enable-threads) now default (T364)
  Other extensions being considered
Tcl 8.6 TDBC
     Standard interface for database connectors (T308)
      Currently has drivers for sqlite, mysql, odbc and postgres
     Leverages TclOO framework

package require tdbc::sqlite3      db transaction {
tdbc::sqlite3::connection create     set firstname "Fred"
   db "phonebook.sqlite3"            set lastname "Flintstone"


set statement [db prepare {            $statement foreach row {
 SELECT phone_num FROM directory         puts [dict get $row phone_num]
                                       }
 WHERE first_name = :firstname
                                   }
 AND last_name = :lastname
}]                                 $statement close
                                   db close
Tk 8.6 Features
 Windows Vista/7 theme support for Ttk
  Backported to 8.5.8
 Updated mouse-wheel behavior (T171)
 Tk OS X Cocoa
  Enables 64-bit builds
  Requires OS X 10.5+
  Available for Tk 8.5
 New canvas features
  Absolute canvas item positioning (T236)
  Canvas item vertex editing (T97)
  Angled text items (T119)
Tk 8.6 font dialog
 Uses native dialog on Windows, OS X (T324)
 % tk fontchooser show
 % tk fontchooser configure
 -parent . -title {} -font {{Gill Sans} 12 bold roman}
 -command {} -visible 1
Tk 8.6 PNG support
 Full PNG support with compression (T244)
  Leverages zlib support
 image create photo -file ouster.png 
                    -format "png -alpha 0.5"
Tk 8.6 extras
 New tk busy adapted from BLT’s busy (T321)
 User can generate <Focus*> events
 Unfocussed text insertion cursor control (T197)
 GIF image writing uses LZW compression
 wm attributes -type on X11 (T359)
 Modernized X11 menus (T360)
 New ttk::spinbox widget (also in 8.5.9)
  Consider the alternate widgets combobox and menubutton
In summary ...
 8.6 currently in beta
  99.9% compatible with Tcl 8.5
    Changes in error messages
    New features bring new core commands (e.g. try)
    Internal bytecodes have changed
  Almost 50 new features for developers
    Possibly a few more to come
    Slower than 8.5, performance wasn’t a focus
  Final release ETA 2011

 Tcl Dev Kit and Komodo support both 8.5 and 8.6
  Further 8.6 changes may require further updates
ActiveTcl 8.6.0.0 Beta 4
 Based on 8.6b1.2 Tcl core
  Released October 2010
  Incudes VFS Explorer (tclvfse)
 Similar to ActiveTcl 8.5 extension set
  Adds new core modules for TDBC, trofs
  90+ packages - the rest available via teacup
 Mac OS X architecture change
  Was x86-ppc “universal” with Carbon
  Now x86-x64 with Cocoa
  teapot understands both architectures
Q&A

      www.activestate.com
  business-solutions@activestate.com
          Twitter: @activestate
Thank You!
Next Steps ...
  Watch our webinar, Exploring the Benefits of Embedding
  Dynamic Scripting Languages in Your Products

  http://www.activestate.com/webinars/exploring-benefits-
  embedding-dynamic-scripting



            or speak to a representative about
      ActiveTcl Enterprise or OEM: 1-778-786-1107
           business-solutions@activestate.com
                  www.activestate.com

More Related Content

What's hot

The Ring programming language version 1.10 book - Part 34 of 212
The Ring programming language version 1.10 book - Part 34 of 212The Ring programming language version 1.10 book - Part 34 of 212
The Ring programming language version 1.10 book - Part 34 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.5.1 book - Part 24 of 180
The Ring programming language version 1.5.1 book - Part 24 of 180The Ring programming language version 1.5.1 book - Part 24 of 180
The Ring programming language version 1.5.1 book - Part 24 of 180Mahmoud Samir Fayed
 
EuroPython 2016 - Do I Need To Switch To Golang
EuroPython 2016 - Do I Need To Switch To GolangEuroPython 2016 - Do I Need To Switch To Golang
EuroPython 2016 - Do I Need To Switch To GolangMax Tepkeev
 
An Intro to Python in 30 minutes
An Intro to Python in 30 minutesAn Intro to Python in 30 minutes
An Intro to Python in 30 minutesSumit Raj
 
Programming Under Linux In Python
Programming Under Linux In PythonProgramming Under Linux In Python
Programming Under Linux In PythonMarwan Osman
 
The Ring programming language version 1.5.4 book - Part 32 of 185
The Ring programming language version 1.5.4 book - Part 32 of 185The Ring programming language version 1.5.4 book - Part 32 of 185
The Ring programming language version 1.5.4 book - Part 32 of 185Mahmoud Samir Fayed
 
Commit ускоривший python 2.7.11 на 30% и новое в python 3.5
Commit ускоривший python 2.7.11 на 30% и новое в python 3.5Commit ускоривший python 2.7.11 на 30% и новое в python 3.5
Commit ускоривший python 2.7.11 на 30% и новое в python 3.5PyNSK
 
06 file processing
06 file processing06 file processing
06 file processingIssay Meii
 
The Ring programming language version 1.2 book - Part 15 of 84
The Ring programming language version 1.2 book - Part 15 of 84The Ring programming language version 1.2 book - Part 15 of 84
The Ring programming language version 1.2 book - Part 15 of 84Mahmoud Samir Fayed
 
Apache avro and overview hadoop tools
Apache avro and overview hadoop toolsApache avro and overview hadoop tools
Apache avro and overview hadoop toolsalireza alikhani
 
Clojure made simple - Lightning talk
Clojure made simple - Lightning talkClojure made simple - Lightning talk
Clojure made simple - Lightning talkJohn Stevenson
 
The Ring programming language version 1.7 book - Part 30 of 196
The Ring programming language version 1.7 book - Part 30 of 196The Ring programming language version 1.7 book - Part 30 of 196
The Ring programming language version 1.7 book - Part 30 of 196Mahmoud Samir Fayed
 
The Ring programming language version 1.5.3 book - Part 25 of 184
The Ring programming language version 1.5.3 book - Part 25 of 184The Ring programming language version 1.5.3 book - Part 25 of 184
The Ring programming language version 1.5.3 book - Part 25 of 184Mahmoud Samir Fayed
 
Dts x dicoding #2 memulai pemrograman kotlin
Dts x dicoding #2 memulai pemrograman kotlinDts x dicoding #2 memulai pemrograman kotlin
Dts x dicoding #2 memulai pemrograman kotlinAhmad Arif Faizin
 
Kotlin Bytecode Generation and Runtime Performance
Kotlin Bytecode Generation and Runtime PerformanceKotlin Bytecode Generation and Runtime Performance
Kotlin Bytecode Generation and Runtime Performanceintelliyole
 

What's hot (20)

The Ring programming language version 1.10 book - Part 34 of 212
The Ring programming language version 1.10 book - Part 34 of 212The Ring programming language version 1.10 book - Part 34 of 212
The Ring programming language version 1.10 book - Part 34 of 212
 
The Ring programming language version 1.5.1 book - Part 24 of 180
The Ring programming language version 1.5.1 book - Part 24 of 180The Ring programming language version 1.5.1 book - Part 24 of 180
The Ring programming language version 1.5.1 book - Part 24 of 180
 
EuroPython 2016 - Do I Need To Switch To Golang
EuroPython 2016 - Do I Need To Switch To GolangEuroPython 2016 - Do I Need To Switch To Golang
EuroPython 2016 - Do I Need To Switch To Golang
 
An Intro to Python in 30 minutes
An Intro to Python in 30 minutesAn Intro to Python in 30 minutes
An Intro to Python in 30 minutes
 
Programming Under Linux In Python
Programming Under Linux In PythonProgramming Under Linux In Python
Programming Under Linux In Python
 
The Ring programming language version 1.5.4 book - Part 32 of 185
The Ring programming language version 1.5.4 book - Part 32 of 185The Ring programming language version 1.5.4 book - Part 32 of 185
The Ring programming language version 1.5.4 book - Part 32 of 185
 
Commit ускоривший python 2.7.11 на 30% и новое в python 3.5
Commit ускоривший python 2.7.11 на 30% и новое в python 3.5Commit ускоривший python 2.7.11 на 30% и новое в python 3.5
Commit ускоривший python 2.7.11 на 30% и новое в python 3.5
 
06 file processing
06 file processing06 file processing
06 file processing
 
The Ring programming language version 1.2 book - Part 15 of 84
The Ring programming language version 1.2 book - Part 15 of 84The Ring programming language version 1.2 book - Part 15 of 84
The Ring programming language version 1.2 book - Part 15 of 84
 
Java Class Design
Java Class DesignJava Class Design
Java Class Design
 
Comparing JVM languages
Comparing JVM languagesComparing JVM languages
Comparing JVM languages
 
Java VS Python
Java VS PythonJava VS Python
Java VS Python
 
Apache avro and overview hadoop tools
Apache avro and overview hadoop toolsApache avro and overview hadoop tools
Apache avro and overview hadoop tools
 
Clojure made simple - Lightning talk
Clojure made simple - Lightning talkClojure made simple - Lightning talk
Clojure made simple - Lightning talk
 
The Ring programming language version 1.7 book - Part 30 of 196
The Ring programming language version 1.7 book - Part 30 of 196The Ring programming language version 1.7 book - Part 30 of 196
The Ring programming language version 1.7 book - Part 30 of 196
 
The Ring programming language version 1.5.3 book - Part 25 of 184
The Ring programming language version 1.5.3 book - Part 25 of 184The Ring programming language version 1.5.3 book - Part 25 of 184
The Ring programming language version 1.5.3 book - Part 25 of 184
 
The Stack and Buffer Overflows
The Stack and Buffer OverflowsThe Stack and Buffer Overflows
The Stack and Buffer Overflows
 
Kotlin, why?
Kotlin, why?Kotlin, why?
Kotlin, why?
 
Dts x dicoding #2 memulai pemrograman kotlin
Dts x dicoding #2 memulai pemrograman kotlinDts x dicoding #2 memulai pemrograman kotlin
Dts x dicoding #2 memulai pemrograman kotlin
 
Kotlin Bytecode Generation and Runtime Performance
Kotlin Bytecode Generation and Runtime PerformanceKotlin Bytecode Generation and Runtime Performance
Kotlin Bytecode Generation and Runtime Performance
 

Viewers also liked

The ActiveState of Tcl
The ActiveState of TclThe ActiveState of Tcl
The ActiveState of TclActiveState
 
Tcl tk
Tcl tkTcl tk
Tcl tkTiago
 
Tcl corporate presentation 2015 campus 08-02-2016
Tcl corporate presentation   2015 campus 08-02-2016Tcl corporate presentation   2015 campus 08-02-2016
Tcl corporate presentation 2015 campus 08-02-2016geetha k
 
Computer Networks- Network Basics
Computer Networks- Network BasicsComputer Networks- Network Basics
Computer Networks- Network BasicsTrinity Dwarka
 
PERFORMANCE STUDIES ON THE VARIOUS ROUTING PROTOCOLS IN AD-HOC NETWORKS
PERFORMANCE STUDIES ON THE  VARIOUS ROUTING PROTOCOLS IN AD-HOC NETWORKSPERFORMANCE STUDIES ON THE  VARIOUS ROUTING PROTOCOLS IN AD-HOC NETWORKS
PERFORMANCE STUDIES ON THE VARIOUS ROUTING PROTOCOLS IN AD-HOC NETWORKSJYoTHiSH o.s
 
Security Attack Analysis for Finding and Stopping Network Attacks
Security Attack Analysis for Finding and Stopping Network AttacksSecurity Attack Analysis for Finding and Stopping Network Attacks
Security Attack Analysis for Finding and Stopping Network AttacksSavvius, Inc
 
Programación en OTcl
Programación en OTclProgramación en OTcl
Programación en OTclJesus Vilchez
 
TAO Fayan_Canvas design by tcltk_Final report
TAO Fayan_Canvas design by tcltk_Final reportTAO Fayan_Canvas design by tcltk_Final report
TAO Fayan_Canvas design by tcltk_Final reportFayan TAO
 
Making an Object System with Tcl 8.5
Making an Object System with Tcl 8.5Making an Object System with Tcl 8.5
Making an Object System with Tcl 8.5Donal Fellows
 
Zone Routing Protocol
Zone Routing ProtocolZone Routing Protocol
Zone Routing Protocolnitss007
 
Network Basics
Network BasicsNetwork Basics
Network Basicstmavroidis
 
Dynamic source routing
Dynamic source routingDynamic source routing
Dynamic source routingAshraf Uddin
 
Why R? A Brief Introduction to the Open Source Statistics Platform
Why R? A Brief Introduction to the Open Source Statistics PlatformWhy R? A Brief Introduction to the Open Source Statistics Platform
Why R? A Brief Introduction to the Open Source Statistics PlatformSyracuse University
 
Routing in Manet
Routing in ManetRouting in Manet
Routing in Manetshiujinghan
 

Viewers also liked (20)

Tcl tk howto
Tcl tk howtoTcl tk howto
Tcl tk howto
 
The ActiveState of Tcl
The ActiveState of TclThe ActiveState of Tcl
The ActiveState of Tcl
 
Tcl tk
Tcl tkTcl tk
Tcl tk
 
Tcl corporate presentation 2015 campus 08-02-2016
Tcl corporate presentation   2015 campus 08-02-2016Tcl corporate presentation   2015 campus 08-02-2016
Tcl corporate presentation 2015 campus 08-02-2016
 
Computer Networks- Network Basics
Computer Networks- Network BasicsComputer Networks- Network Basics
Computer Networks- Network Basics
 
PERFORMANCE STUDIES ON THE VARIOUS ROUTING PROTOCOLS IN AD-HOC NETWORKS
PERFORMANCE STUDIES ON THE  VARIOUS ROUTING PROTOCOLS IN AD-HOC NETWORKSPERFORMANCE STUDIES ON THE  VARIOUS ROUTING PROTOCOLS IN AD-HOC NETWORKS
PERFORMANCE STUDIES ON THE VARIOUS ROUTING PROTOCOLS IN AD-HOC NETWORKS
 
Security Attack Analysis for Finding and Stopping Network Attacks
Security Attack Analysis for Finding and Stopping Network AttacksSecurity Attack Analysis for Finding and Stopping Network Attacks
Security Attack Analysis for Finding and Stopping Network Attacks
 
Programación en OTcl
Programación en OTclProgramación en OTcl
Programación en OTcl
 
TAO Fayan_Canvas design by tcltk_Final report
TAO Fayan_Canvas design by tcltk_Final reportTAO Fayan_Canvas design by tcltk_Final report
TAO Fayan_Canvas design by tcltk_Final report
 
Making an Object System with Tcl 8.5
Making an Object System with Tcl 8.5Making an Object System with Tcl 8.5
Making an Object System with Tcl 8.5
 
Ad Hoc
Ad HocAd Hoc
Ad Hoc
 
Zone Routing Protocol
Zone Routing ProtocolZone Routing Protocol
Zone Routing Protocol
 
20111126 ns2 installation
20111126 ns2 installation20111126 ns2 installation
20111126 ns2 installation
 
Networking basics
Networking basicsNetworking basics
Networking basics
 
Network Basics
Network BasicsNetwork Basics
Network Basics
 
Basics of network
Basics of networkBasics of network
Basics of network
 
Ns2
Ns2Ns2
Ns2
 
Dynamic source routing
Dynamic source routingDynamic source routing
Dynamic source routing
 
Why R? A Brief Introduction to the Open Source Statistics Platform
Why R? A Brief Introduction to the Open Source Statistics PlatformWhy R? A Brief Introduction to the Open Source Statistics Platform
Why R? A Brief Introduction to the Open Source Statistics Platform
 
Routing in Manet
Routing in ManetRouting in Manet
Routing in Manet
 

Similar to Looking Ahead to Tcl 8.6

Os Vanrossum
Os VanrossumOs Vanrossum
Os Vanrossumoscon2007
 
2 architecture anddatastructures
2 architecture anddatastructures2 architecture anddatastructures
2 architecture anddatastructuresSolin TEM
 
Introduction to clojure
Introduction to clojureIntroduction to clojure
Introduction to clojureAbbas Raza
 
Coding convention
Coding conventionCoding convention
Coding conventionKhoa Nguyen
 
Tcl Status Update, July 2014
Tcl Status Update, July 2014Tcl Status Update, July 2014
Tcl Status Update, July 2014Donal Fellows
 
Ikenna Okpala: London Java Community: Wicket and Scala - 27/07/2010.
Ikenna Okpala: London Java Community: Wicket and Scala - 27/07/2010.Ikenna Okpala: London Java Community: Wicket and Scala - 27/07/2010.
Ikenna Okpala: London Java Community: Wicket and Scala - 27/07/2010.Skills Matter
 
Short Lightening Talk
Short Lightening TalkShort Lightening Talk
Short Lightening TalkIkenna Okpala
 
The Ring programming language version 1.10 book - Part 102 of 212
The Ring programming language version 1.10 book - Part 102 of 212The Ring programming language version 1.10 book - Part 102 of 212
The Ring programming language version 1.10 book - Part 102 of 212Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 19 of 212
The Ring programming language version 1.10 book - Part 19 of 212The Ring programming language version 1.10 book - Part 19 of 212
The Ring programming language version 1.10 book - Part 19 of 212Mahmoud Samir Fayed
 
Sour Pickles
Sour PicklesSour Pickles
Sour PicklesSensePost
 
JDK1.7 features
JDK1.7 featuresJDK1.7 features
JDK1.7 featuresindia_mani
 
Optimizing Tcl Bytecode
Optimizing Tcl BytecodeOptimizing Tcl Bytecode
Optimizing Tcl BytecodeDonal Fellows
 
The Ring programming language version 1.6 book - Part 184 of 189
The Ring programming language version 1.6 book - Part 184 of 189The Ring programming language version 1.6 book - Part 184 of 189
The Ring programming language version 1.6 book - Part 184 of 189Mahmoud Samir Fayed
 
The Ring programming language version 1.8 book - Part 95 of 202
The Ring programming language version 1.8 book - Part 95 of 202The Ring programming language version 1.8 book - Part 95 of 202
The Ring programming language version 1.8 book - Part 95 of 202Mahmoud Samir Fayed
 
The Ring programming language version 1.2 book - Part 5 of 84
The Ring programming language version 1.2 book - Part 5 of 84The Ring programming language version 1.2 book - Part 5 of 84
The Ring programming language version 1.2 book - Part 5 of 84Mahmoud Samir Fayed
 
10 Lines or Less; Interesting Things You Can Do In Java With Minimal Code
10 Lines or Less; Interesting Things You Can Do In Java With Minimal Code10 Lines or Less; Interesting Things You Can Do In Java With Minimal Code
10 Lines or Less; Interesting Things You Can Do In Java With Minimal CodeKathy Brown
 
BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...
BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...
BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...panagenda
 

Similar to Looking Ahead to Tcl 8.6 (20)

Summary of C++17 features
Summary of C++17 featuresSummary of C++17 features
Summary of C++17 features
 
Os Vanrossum
Os VanrossumOs Vanrossum
Os Vanrossum
 
2 architecture anddatastructures
2 architecture anddatastructures2 architecture anddatastructures
2 architecture anddatastructures
 
Introduction to clojure
Introduction to clojureIntroduction to clojure
Introduction to clojure
 
tokyotalk
tokyotalktokyotalk
tokyotalk
 
Coding convention
Coding conventionCoding convention
Coding convention
 
Tcl Status Update, July 2014
Tcl Status Update, July 2014Tcl Status Update, July 2014
Tcl Status Update, July 2014
 
Ikenna Okpala: London Java Community: Wicket and Scala - 27/07/2010.
Ikenna Okpala: London Java Community: Wicket and Scala - 27/07/2010.Ikenna Okpala: London Java Community: Wicket and Scala - 27/07/2010.
Ikenna Okpala: London Java Community: Wicket and Scala - 27/07/2010.
 
Short Lightening Talk
Short Lightening TalkShort Lightening Talk
Short Lightening Talk
 
The Ring programming language version 1.10 book - Part 102 of 212
The Ring programming language version 1.10 book - Part 102 of 212The Ring programming language version 1.10 book - Part 102 of 212
The Ring programming language version 1.10 book - Part 102 of 212
 
The Ring programming language version 1.10 book - Part 19 of 212
The Ring programming language version 1.10 book - Part 19 of 212The Ring programming language version 1.10 book - Part 19 of 212
The Ring programming language version 1.10 book - Part 19 of 212
 
Sour Pickles
Sour PicklesSour Pickles
Sour Pickles
 
JDK1.7 features
JDK1.7 featuresJDK1.7 features
JDK1.7 features
 
Optimizing Tcl Bytecode
Optimizing Tcl BytecodeOptimizing Tcl Bytecode
Optimizing Tcl Bytecode
 
Apache Thrift
Apache ThriftApache Thrift
Apache Thrift
 
The Ring programming language version 1.6 book - Part 184 of 189
The Ring programming language version 1.6 book - Part 184 of 189The Ring programming language version 1.6 book - Part 184 of 189
The Ring programming language version 1.6 book - Part 184 of 189
 
The Ring programming language version 1.8 book - Part 95 of 202
The Ring programming language version 1.8 book - Part 95 of 202The Ring programming language version 1.8 book - Part 95 of 202
The Ring programming language version 1.8 book - Part 95 of 202
 
The Ring programming language version 1.2 book - Part 5 of 84
The Ring programming language version 1.2 book - Part 5 of 84The Ring programming language version 1.2 book - Part 5 of 84
The Ring programming language version 1.2 book - Part 5 of 84
 
10 Lines or Less; Interesting Things You Can Do In Java With Minimal Code
10 Lines or Less; Interesting Things You Can Do In Java With Minimal Code10 Lines or Less; Interesting Things You Can Do In Java With Minimal Code
10 Lines or Less; Interesting Things You Can Do In Java With Minimal Code
 
BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...
BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...
BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...
 

More from ActiveState

Robust Algorithms for Machine Learning
Robust Algorithms for Machine LearningRobust Algorithms for Machine Learning
Robust Algorithms for Machine LearningActiveState
 
ActiveState - The Open Source Languages Company
ActiveState - The Open Source Languages CompanyActiveState - The Open Source Languages Company
ActiveState - The Open Source Languages CompanyActiveState
 
ActiveState Open Source Survey - 2016
ActiveState Open Source Survey - 2016ActiveState Open Source Survey - 2016
ActiveState Open Source Survey - 2016ActiveState
 
ActiveState Tcl Survey - 2016
ActiveState Tcl Survey - 2016ActiveState Tcl Survey - 2016
ActiveState Tcl Survey - 2016ActiveState
 
Practical LPeg - Lua Workshop 2016
Practical LPeg - Lua Workshop 2016Practical LPeg - Lua Workshop 2016
Practical LPeg - Lua Workshop 2016ActiveState
 
Overview of Komodo IDE 10.1
Overview of Komodo IDE 10.1Overview of Komodo IDE 10.1
Overview of Komodo IDE 10.1ActiveState
 
PERL SURVEY 2016
PERL SURVEY 2016PERL SURVEY 2016
PERL SURVEY 2016ActiveState
 
Improving Customer Experience Using ActivePerl and ActivePython
Improving Customer Experience Using ActivePerl and ActivePythonImproving Customer Experience Using ActivePerl and ActivePython
Improving Customer Experience Using ActivePerl and ActivePythonActiveState
 
Python: The Programmer's Lingua Franca
Python: The Programmer's Lingua FrancaPython: The Programmer's Lingua Franca
Python: The Programmer's Lingua FrancaActiveState
 
Continuing Evolution of Perl: Highlights of ActivePerl 5.14
Continuing Evolution of Perl: Highlights of ActivePerl 5.14Continuing Evolution of Perl: Highlights of ActivePerl 5.14
Continuing Evolution of Perl: Highlights of ActivePerl 5.14ActiveState
 
Migrating from matlab to python
Migrating from matlab to pythonMigrating from matlab to python
Migrating from matlab to pythonActiveState
 
US SEC Mandates, Python, and Financial Modeling
US SEC Mandates, Python, and Financial ModelingUS SEC Mandates, Python, and Financial Modeling
US SEC Mandates, Python, and Financial ModelingActiveState
 
ActiveState, CA, Taking quality products to market faster with enterprise rea...
ActiveState, CA, Taking quality products to market faster with enterprise rea...ActiveState, CA, Taking quality products to market faster with enterprise rea...
ActiveState, CA, Taking quality products to market faster with enterprise rea...ActiveState
 
Keeping up with Perl: Development, Upgrade and Deployment Options for Perl 5.12
Keeping up with Perl: Development, Upgrade and Deployment Options for Perl 5.12Keeping up with Perl: Development, Upgrade and Deployment Options for Perl 5.12
Keeping up with Perl: Development, Upgrade and Deployment Options for Perl 5.12ActiveState
 
Python & Finance: US Government Mandates, Financial Modeling, and Other Snake...
Python & Finance: US Government Mandates, Financial Modeling, and Other Snake...Python & Finance: US Government Mandates, Financial Modeling, and Other Snake...
Python & Finance: US Government Mandates, Financial Modeling, and Other Snake...ActiveState
 
Best Practices in Porting & Developing Enterprise Applications to the Cloud u...
Best Practices in Porting & Developing Enterprise Applications to the Cloud u...Best Practices in Porting & Developing Enterprise Applications to the Cloud u...
Best Practices in Porting & Developing Enterprise Applications to the Cloud u...ActiveState
 
Safeguarding Against the Risks of Improper Open Source Licensing - Valuable...
Safeguarding Against the Risks of Improper Open Source Licensing - Valuable...Safeguarding Against the Risks of Improper Open Source Licensing - Valuable...
Safeguarding Against the Risks of Improper Open Source Licensing - Valuable...ActiveState
 
Take Quality Products to Market Faster with Enterprise-Ready Dynamic Languages
Take Quality Products to Market Faster with Enterprise-Ready Dynamic LanguagesTake Quality Products to Market Faster with Enterprise-Ready Dynamic Languages
Take Quality Products to Market Faster with Enterprise-Ready Dynamic LanguagesActiveState
 
The True Cost of Open Source Software: Uncovering Hidden Costs and Maximizing...
The True Cost of Open Source Software: Uncovering Hidden Costs and Maximizing...The True Cost of Open Source Software: Uncovering Hidden Costs and Maximizing...
The True Cost of Open Source Software: Uncovering Hidden Costs and Maximizing...ActiveState
 

More from ActiveState (20)

Robust Algorithms for Machine Learning
Robust Algorithms for Machine LearningRobust Algorithms for Machine Learning
Robust Algorithms for Machine Learning
 
TDD Pros & Cons
TDD Pros & ConsTDD Pros & Cons
TDD Pros & Cons
 
ActiveState - The Open Source Languages Company
ActiveState - The Open Source Languages CompanyActiveState - The Open Source Languages Company
ActiveState - The Open Source Languages Company
 
ActiveState Open Source Survey - 2016
ActiveState Open Source Survey - 2016ActiveState Open Source Survey - 2016
ActiveState Open Source Survey - 2016
 
ActiveState Tcl Survey - 2016
ActiveState Tcl Survey - 2016ActiveState Tcl Survey - 2016
ActiveState Tcl Survey - 2016
 
Practical LPeg - Lua Workshop 2016
Practical LPeg - Lua Workshop 2016Practical LPeg - Lua Workshop 2016
Practical LPeg - Lua Workshop 2016
 
Overview of Komodo IDE 10.1
Overview of Komodo IDE 10.1Overview of Komodo IDE 10.1
Overview of Komodo IDE 10.1
 
PERL SURVEY 2016
PERL SURVEY 2016PERL SURVEY 2016
PERL SURVEY 2016
 
Improving Customer Experience Using ActivePerl and ActivePython
Improving Customer Experience Using ActivePerl and ActivePythonImproving Customer Experience Using ActivePerl and ActivePython
Improving Customer Experience Using ActivePerl and ActivePython
 
Python: The Programmer's Lingua Franca
Python: The Programmer's Lingua FrancaPython: The Programmer's Lingua Franca
Python: The Programmer's Lingua Franca
 
Continuing Evolution of Perl: Highlights of ActivePerl 5.14
Continuing Evolution of Perl: Highlights of ActivePerl 5.14Continuing Evolution of Perl: Highlights of ActivePerl 5.14
Continuing Evolution of Perl: Highlights of ActivePerl 5.14
 
Migrating from matlab to python
Migrating from matlab to pythonMigrating from matlab to python
Migrating from matlab to python
 
US SEC Mandates, Python, and Financial Modeling
US SEC Mandates, Python, and Financial ModelingUS SEC Mandates, Python, and Financial Modeling
US SEC Mandates, Python, and Financial Modeling
 
ActiveState, CA, Taking quality products to market faster with enterprise rea...
ActiveState, CA, Taking quality products to market faster with enterprise rea...ActiveState, CA, Taking quality products to market faster with enterprise rea...
ActiveState, CA, Taking quality products to market faster with enterprise rea...
 
Keeping up with Perl: Development, Upgrade and Deployment Options for Perl 5.12
Keeping up with Perl: Development, Upgrade and Deployment Options for Perl 5.12Keeping up with Perl: Development, Upgrade and Deployment Options for Perl 5.12
Keeping up with Perl: Development, Upgrade and Deployment Options for Perl 5.12
 
Python & Finance: US Government Mandates, Financial Modeling, and Other Snake...
Python & Finance: US Government Mandates, Financial Modeling, and Other Snake...Python & Finance: US Government Mandates, Financial Modeling, and Other Snake...
Python & Finance: US Government Mandates, Financial Modeling, and Other Snake...
 
Best Practices in Porting & Developing Enterprise Applications to the Cloud u...
Best Practices in Porting & Developing Enterprise Applications to the Cloud u...Best Practices in Porting & Developing Enterprise Applications to the Cloud u...
Best Practices in Porting & Developing Enterprise Applications to the Cloud u...
 
Safeguarding Against the Risks of Improper Open Source Licensing - Valuable...
Safeguarding Against the Risks of Improper Open Source Licensing - Valuable...Safeguarding Against the Risks of Improper Open Source Licensing - Valuable...
Safeguarding Against the Risks of Improper Open Source Licensing - Valuable...
 
Take Quality Products to Market Faster with Enterprise-Ready Dynamic Languages
Take Quality Products to Market Faster with Enterprise-Ready Dynamic LanguagesTake Quality Products to Market Faster with Enterprise-Ready Dynamic Languages
Take Quality Products to Market Faster with Enterprise-Ready Dynamic Languages
 
The True Cost of Open Source Software: Uncovering Hidden Costs and Maximizing...
The True Cost of Open Source Software: Uncovering Hidden Costs and Maximizing...The True Cost of Open Source Software: Uncovering Hidden Costs and Maximizing...
The True Cost of Open Source Software: Uncovering Hidden Costs and Maximizing...
 

Recently uploaded

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

Recently uploaded (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

Looking Ahead to Tcl 8.6

  • 1. Looking Ahead to Tcl 8.6 Jeff Hobbs Director, Engineering ActiveState Software Inc.
  • 2. Agenda About ActiveState Tcl 8.6 roadmap Tcl 8.6 features in depth Knowledge of Tcl 8.5 expected For 8.5 review, see previous webinar: https://www1.gotomeeting.com/register/446757680 Q&A
  • 3. About ActiveState The Dynamic Language Experts Over 10 years focusing on open source dynamic languages Experience across multiple dynamic languages Tcl, Perl, PHP, Python, Ruby, JS And platforms AIX, HP-UX, Linux, Mac OS X, Solaris, Windows, … Assist in the development, management and distribution of dynamic languages 97% of Fortune 1000 companies use ActiveState products
  • 5. Tcl/Tk 8.6 Roadmap Currently in active development 8.6a1 development initiated April 2008 Same month of 8.4.19 release 8.6b1 released December 2008 8.6b2 coming soon Release schedule marching towards final 8.6.0 targeted for 2011 Community input is important
  • 6. Tcl/Tk 8.6 Changes Numerous TIPs implemented for 8.6 49 TIPs final (1 more in accepted state) 8 more in draft state 70 TIPs targeting 8.7 (in draft state) 7 TIPs targeting 9.0 99.9% compatible with Tcl 8.5 Changes are in error messages Bytecodes have changed - watch version compatibility ActiveTcl tbcload can load 8.5 bytecodes in 8.6 Separate Tcl Dev Kit bytecode compilers for 8.5 and 8.6
  • 7. Tcl 8.6 OO Core OO! (T257 T320 T354) % oo::class create example { Major effort by Donal Fellows variable foo Foundational OO system constructor {{value 10}} { set foo 0 inspired by XOTcl and snit my bar $value } Provided in core (no package) destructor { } oo::class, oo::define, oo::copy, method bar {input} { incr foo $input oo::object, ... } Class-based object system with } => ::example dynamic redefinition allowed % example create b 4 => ::b Per-object customization with % b bar 3 filters, mixins and more => 7 Has C API to create and manage classes, instances and methods
  • 8. Tcl 8.6 string and list handling Simplified Tcl prefix matching (T195) tcl::prefix, with C API for option parsing (T265) Unicode aware string trim* (T318) Find insertion point in sorted list lsearch -bisect (T313) Grouped sort with lsort -stride (T326) Great for use with array get or dict output Allow lset to extend lists (T331) lset myList end+1 foo equivalent to lappend myList foo
  • 9. Tcl 8.6 interp and namespace Ability to cancel script evaluation (T285) interp cancel, C API helper Tcl_CancelEval Check if interp is active Tcl_InterpActive (T335) namespace ensemble create -parameters (T314) encoding system at startup is iso8859-1, not identity info errorstack, -errorstack return dict (T348) tcl::unsupported::representation Get Tcl_Obj internal rep
  • 10. Tcl 8.6 extras New binary encode|decode with base64 (T317) binary is now a namespace ensemble Base-2 support in format and scan with %b (T343) dict filter takes multiple patterns args (T341) Windows registry has 64-bit support (T362) Added tcl_platform(pathSeparator) key (T315) For $::env(PATH), not file paths (use file)
  • 11. More 8.6 stuff! More commands take no args gracefully (T323) Reduce non-essential error cases, good with {*} New try/finally syntax (T329) set f [open $file a] try { try body ?handler...? ?finally script? puts $f "oops ..." throw type message # ... Alternative to error } finally { close $f } try { set f [open $file] } trap {POSIX EISDIR} {} { puts "failed to open $file: it's a directory" } trap {POSIX ENOENT} {} { puts "failed to open $file: it doesn't exist" }
  • 12. Tcl 8.6 files and channels New file tempfile ?nameVar? ?template? Creates tempfile and returns a channel (T210) Enhanced chan command close can close only read or write side (T332) Anonymous pipes with chan pipe (T304) Tcl level channel transformations chan push|pop (T230) IPv6 support in socket (T162) Currently uses OS preference for AF selection
  • 13. But wait, there’s more! Zlib compression included with new core zlib command (T234) Builds on standard zlib sources Full zip and unzip support for gzip and zlib formats Supports channel streaming for transforms Includes adler32 and crc32 checksumming Includes Tcl_Zlib* C API
  • 14. And on the C side of 8.6 Make Tcl_Interp more opaque No more interp->result (T330) Use Tcl_GetStringResult(interp) instead API for interp->errorLine (T336) Tcl_Get|SetErrorLine Access to startup scripts from C (T338) Tcl_Obj *Tcl_GetStartupScript(const char **encodingNamePtr) void Tcl_SetStartupScript(Tcl_Obj *pathPtr, const char *encodingName) Exported Tcl_TransferResult (T307) Portable Tcl_StatBuf access (T316) Tcl_Get*FromStat New Tcl_BackgroundException for bgerror (T337)
  • 15. More 8.6 Under the Hood Exported library loading functions (T357) Tcl_LoadFile, Tcl_FindSymbol, Tcl_FSUnloadFile Windows moving to full -DUNICODE build Supports Windows XP or later OS X moving to Cocoa Supports OS X 10.5 or later, allows 64-bit builds Next version of [incr Tcl] (v4) uses TclOO Thread extension to be included with core sources Thread builds (--enable-threads) now default (T364) Other extensions being considered
  • 16. Tcl 8.6 TDBC Standard interface for database connectors (T308) Currently has drivers for sqlite, mysql, odbc and postgres Leverages TclOO framework package require tdbc::sqlite3 db transaction { tdbc::sqlite3::connection create set firstname "Fred" db "phonebook.sqlite3" set lastname "Flintstone" set statement [db prepare { $statement foreach row { SELECT phone_num FROM directory puts [dict get $row phone_num] } WHERE first_name = :firstname } AND last_name = :lastname }] $statement close db close
  • 17. Tk 8.6 Features Windows Vista/7 theme support for Ttk Backported to 8.5.8 Updated mouse-wheel behavior (T171) Tk OS X Cocoa Enables 64-bit builds Requires OS X 10.5+ Available for Tk 8.5 New canvas features Absolute canvas item positioning (T236) Canvas item vertex editing (T97) Angled text items (T119)
  • 18. Tk 8.6 font dialog Uses native dialog on Windows, OS X (T324) % tk fontchooser show % tk fontchooser configure -parent . -title {} -font {{Gill Sans} 12 bold roman} -command {} -visible 1
  • 19. Tk 8.6 PNG support Full PNG support with compression (T244) Leverages zlib support image create photo -file ouster.png -format "png -alpha 0.5"
  • 20. Tk 8.6 extras New tk busy adapted from BLT’s busy (T321) User can generate <Focus*> events Unfocussed text insertion cursor control (T197) GIF image writing uses LZW compression wm attributes -type on X11 (T359) Modernized X11 menus (T360) New ttk::spinbox widget (also in 8.5.9) Consider the alternate widgets combobox and menubutton
  • 21. In summary ... 8.6 currently in beta 99.9% compatible with Tcl 8.5 Changes in error messages New features bring new core commands (e.g. try) Internal bytecodes have changed Almost 50 new features for developers Possibly a few more to come Slower than 8.5, performance wasn’t a focus Final release ETA 2011 Tcl Dev Kit and Komodo support both 8.5 and 8.6 Further 8.6 changes may require further updates
  • 22. ActiveTcl 8.6.0.0 Beta 4 Based on 8.6b1.2 Tcl core Released October 2010 Incudes VFS Explorer (tclvfse) Similar to ActiveTcl 8.5 extension set Adds new core modules for TDBC, trofs 90+ packages - the rest available via teacup Mac OS X architecture change Was x86-ppc “universal” with Carbon Now x86-x64 with Cocoa teapot understands both architectures
  • 23. Q&A www.activestate.com business-solutions@activestate.com Twitter: @activestate
  • 24. Thank You! Next Steps ... Watch our webinar, Exploring the Benefits of Embedding Dynamic Scripting Languages in Your Products http://www.activestate.com/webinars/exploring-benefits- embedding-dynamic-scripting or speak to a representative about ActiveTcl Enterprise or OEM: 1-778-786-1107 business-solutions@activestate.com www.activestate.com