aboutsummaryrefslogtreecommitdiff
path: root/stdlib.tcl
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2017-08-26 09:23:03 +1000
committerSteve Bennett <steveb@workware.net.au>2017-09-01 09:01:15 +1000
commit52c8b8b6adba1e32b460d44cb0a716db9fda69bc (patch)
tree4f882baf7ca1bac403389f12112d3406dc890975 /stdlib.tcl
parent9b746a28ddeaab0610c423b4426bb6f18b72c515 (diff)
downloadjimtcl-52c8b8b6adba1e32b460d44cb0a716db9fda69bc.zip
jimtcl-52c8b8b6adba1e32b460d44cb0a716db9fda69bc.tar.gz
jimtcl-52c8b8b6adba1e32b460d44cb0a716db9fda69bc.tar.bz2
Support lambda even if references are disabled
It's convenient to support a non-gc lambda, even if references are disabled. Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'stdlib.tcl')
-rw-r--r--stdlib.tcl7
1 files changed, 7 insertions, 0 deletions
diff --git a/stdlib.tcl b/stdlib.tcl
index 9cffb93..7fd1313 100644
--- a/stdlib.tcl
+++ b/stdlib.tcl
@@ -1,5 +1,12 @@
# Implements script-based standard commands for Jim Tcl
+if {![exists -command ref]} {
+ # No support for references, so create a poor-man's reference just good enough for lambda
+ proc ref {args} {{count 0}} {
+ format %08x [incr count]
+ }
+}
+
# Creates an anonymous procedure
proc lambda {arglist args} {
tailcall proc [ref {} function lambda.finalizer] $arglist {*}$args