GripNews

🌗 Tcl 程式語言:綜合指南
➤ Tcl 語言的權威指南
magicsplat.com/ttpl/index.html
這本《Tcl 程式語言:綜合指南》第二版涵蓋了 Tcl 9 的所有內容,提供對此極具彈性和多功能語言的全面介紹。從基礎知識到進階概念,本書深入探討了 Tcl 的核心功能、模組化、國際化、I/O 框架、並行程式設計、安全性以及部署方法。書中提供可下載的章節、支援資源和使用者評論,廣受好評,被譽為 Tcl 程式設計領域的最佳參考書籍。
+ 這本書真的是 Tcl 程式設計領域的佼佼者,深度和廣度都遠超其他同類書籍。
+ 內容詳盡,實用性強,是 Tcl 學習和工作不可或缺的參考資料。
#程式設計 #Tcl #技術書籍

The Tcl Programming Language: A Comprehensive Guide | Magicsplat

Official page for the book The Tcl Programming Language

www.magicsplat.com
Habr

SVG-виджеты и tcl/tk-9.0

Работая над проектом « SVG -виджеты для tckl/tk» , я с нетерпением ждал выхода не только релиза Tcl/Tk-9.0 , но и выхода интерпретатора tclexecomp с его поддержкой. Релиз Tcl/Tk-9.0 появился в сентябре 2024 года, когда работа над проектом приближалась к завершению. После выхода релиза Tcl/Tk-9.0.0 , сразу же появилось желание протестировать свой проект с новым интерпретатором, но я решил дождаться появления и интерпретатора tclexecomp с поддержкой нового релиза Tcl/Tk . Время шло, на Хабре была выложена финальная статья про svg -виджеты , а tclexecomp на базе Tcl/Tk-9.0 так и не появлялся. В настоящее время уже вышел второй релиз, а именно Tcl/Tk-9.0.1 . И тогда было решено воспользоваться советом Ивана Владимировича Мичурина:

habr.com/ru/articles/894670/

#svg #виджеты #gui #linux #tkpath #cookfs #графический_дизайн #tcl #tk #графические_интерфейсы

SVG-виджеты и tcl/tk-9.0

Работая над проектом « SVG -виджеты для tckl/tk» ,…

Хабр
GripNews

🌘 tänzer:Tcl 的可愛網頁伺服器框架
➤ tänzer:Tcl 的全新網頁伺服器框架
tanzer.io/
tänzer 是 Tcl 的一個產業級網頁伺服器框架,提供簡單環境撰寫 HTTP/1.1 網路應用程式。它具有異步支持、請求路由引擎、SCGI 客戶端及伺服端支持等特點,讓您輕鬆寫出網路應用程式。
+ 這個 Tcl 框架看起來很有潛力,讓網路應用程式開發變得更輕鬆。
+ 簡潔而強大的工具,對於想要快速建立網路服務的開發者來說會非常實用。
#Tcl 框架

tänzer: The lovable web server framework for Tcl!

tanzer.io
Paul Buetow

#SQLite was designed as an #TCL extension. There are ~trillion SQLite databases in active use. SQLite heavily relies on #TCL: C code generation via mksqlite3c.tcl, C code isn't edited directly by the SQLite developers, and for testing , and for doc generation). The devs use a custom editor written in Tcl/Tk called "e" to edit the source! There's a custom versioning system Fossil, a custom chat-room written in Tcl/Tk!

tcl-lang.org/community/tcl2017

SQLite's Use Of Tcl

www.tcl-lang.org
l_b_i

Might as well give this a shot.

I want to get out of my current field and do something I can be happy with for a company I can feel good about. I'm currently in the SE US, but want to move back to mid-Atlantic/ North East. Remote is good too.

I have over 10 years of experience of various odd jobs in the embedded electronics space. I'm often moved around as I pick things up quickly and give insight others find valuable.
I've done FPGA verification, FPGA design, software and hardware reverse engineering. I have at least some experience with most standard embedded communication protocols and am very at home in electronics labs. I've recently been self teaching web dev using #Flask. I know #VHDL , #python , a bit rusty on #tcl , #c , and #cpp.
#FediHire #getfedihired

Kristoffer Lawson

@onyxraven @mcc Tcl is very, very easy to bind to other languages. It was actually a key original goal: rather than creating DSLs, just use Tcl and extend it suitably.

I remember at the time reading that #Lua was influenced by #Tcl. I was never quite sure why I'd thus use Lua rather than just go with Tcl. Possibly at the time, with Tcl being so dynamic, things could be made a bit more efficient in Lua (and thus perform better in games, where it was used). Not sure that's relevant anymore.

Kristoffer Lawson

@mcc so then you could do:

webForeach name $names {
<p>Hello: $name</p>
}

Which would return a bunch of HTML with $name replaced suitably. And of course all of that can be in another [subst] that processes your HTML template, so it looks like:

<html>
<body>
[webForeach name $names {
<p>Hello: $name</p>
}]
</body>
</html>

#Tcl

Kristoffer Lawson

@mcc I have personally used [subst] in exactly that way: as a templating language for stuff. It's very effective for some basic things. Also really easy to build around it and do even more powerful things due to how #Tcl allows you to build your own language constructs.

So like in addition to [foreach] I could do a [webForeach] (for wont of a better name) that returns whatever string is in it, concatenated for each iteration, but runs [subst] on it for each round.

Kristoffer Lawson

To this day I'm convinced that by far the best way to do concurrent programming with #threads (beyond graphical programming languages like #Labview, where concurrency is natural) is that used by #Tcl

In other words each thread is created with its own sub-interpreter. Each has its own context, not shared. Information is passed by messaging (which the receiver receives in their own event loop). Channels moved (not shared) explicitly.

This massively reduces race conditions and other nasties.

AllTheThingsBest

TCL Announces Next Gen of Mini LED TV’s
allthethings.best/tcl-announce
TCL has introduced the QM7K series, a new addition to its 2025 TV lineup under the Precise Dimming Series. This release follows the QM6K, launched earlier in the year, and is significant for its incorporation of the Halo Control System.
#news #smarttv #tcl

AllTheThingsBest

TCL Shows Off New RayNeo AR Glasses and More at MWC 2025
allthethings.best/tcl-shows-of
TCL has recently participated in the Mobile World Congress 2025 (MWC) following its announcement as the official Worldwide Olympic and Paralympic Partner in the Home Audiovisual Equipment and Home Appliances category. This event represents TCL's first international exhibition appearance since securing this partnership.
#news #ar #tcl

pmonks (330ppm)

@mcc You might learn something from the original Vignette content management system. It originally used TCL for templating (albeit of HTML, rather than ASM or Verilog). Not sure how much information is still available on it, given that technology was retired circa 2004, but there might still be something out there. #TCL #PTSD

Kristoffer Lawson

@mhkohne @mcc comments actually are a little unique. But also they couldn’t be removed before processing as you can literally put anything in {} as long as the curlies match. At that point #Tcl doesn’t know or care what’s inside it, so can’t touch it. It is passed as an arg onwards and only once something [eval]s it, or does something else with it, does the string gain meaning.

Of course you could preprocess with cpp but that could break other things.

Feb 09, 2025, 23:58 · · · 0 · 0
Kristoffer Lawson

@mcc I have been (slowly) working on a spec that would unify dicts and arrays for #Tcl. I think they desperately need that. But arrays are indeed older. They are basically uniquely named variables.

Feb 09, 2025, 23:53 · · · 0 · 0
Kristoffer Lawson

@mcc there’s a very important reason for that. Remember, everything is a string. Code is too. Passing a code body to e.g. [proc] is just that. You are not passing a block, but a string wrapped in {} so as to avoid evaluating variables and everything else inside the body parameter. You could pass it in “ but you would have to escape lots of stuff.

#Tcl takes a while to fully understand, but it is very consistent which allows a lot of very nice things.

Feb 09, 2025, 23:50 · · · 0 · 0
mcc

Answers to the above questions per #tcl on libera:

- Type compatibility in tcl can be tested with [string is …]. "Actual" (interpreter level) type is apparently not exposed. tcl-lang.org/man/tcl8.6/TclCmd

- Strings can be concatenated with [string cat …].

- Arrays are "weird"; they live in a single scope and can't be exported or passed to a function except by breaking things with "upvar". Additionally, dicts are ordered. "arrays" feel like an old version of "dicts" and I think I intend to avoid them

string manual page - Tcl Built-In Commands

www.tcl-lang.org
cliffle

Alright, cleaned up my use of wartcl on the stm32g031 and posted it. This is a very basic worked example of wartcl on a microcontroller. Currently 10,916 bytes of flash and something like 5 kiB of RAM (of the 8 kiB available).

github.com/cbiffle/stm32g0-war

#rustlang #embedded #tcl

GitHub - cbiffle/stm32g0-wartcl: wartcl demo on the stm32g031 nucleo board

wartcl demo on the stm32g031 nucleo board. Contribute…

GitHub
Feb 07, 2025, 02:07 · · · 0 · 0
patpro

Si c’est *important*, tête de cul, POURQUOI C’EST PAS ACCESSIBLE ?
#AccessibilitéNumérique #tcl

Kristoffer Lawson

@HaraldKi we do agree on garbage collection (at least reference based). It is a very useful tool (and I say that as a C programmer). In fact it is one weakness in #Tcl that as OO systems tend to be built on top of commands, and that 'everything can be a string', GC for objects is not really feasible.

I have an idea for how that could be achieved for most common cases, but it requires quite deep (but compatible) work on the core.

Kristoffer Lawson

@HaraldKi we disagree fundamentally. It is dynamic typing which is the tool. At lower levels one tends to have to be more aware of typing due to different processing. At higher levels you can do things like "Oh I'm using this number as a string. NP" and magic happens.

SW dev is indeed difficult, and having to mash things into a strictly typed system can make it more so. I am a major fan of flexible languages, even ones that allow new lang constructs to be built to suit a domain (see: #Tcl).