News for hackers. Stuff that matters.

schlenk

Re:“Python's batteries are leaking” on Sunday May 19, 2019 @06:41AM (#19952616)
Maybe just use kitdll instead of a full blown Tcl/Tk distro, to provide the dependency, that would shrink the size a lot.

http://kitcreator.rkeene.org/fossil/wiki?name=KitDLL

Re:“Python's batteries are leaking” on Sunday May 19, 2019 @06:30AM (#19952570)
And backing out of it when running on pypy, as that does not deprecate python 2 compatibility...
Re:“Python's batteries are leaking” on Sunday May 19, 2019 @06:25AM (#19952548)
I develop in python since 10+ years. And setting up a virtualenv only happens when developing patches for 3rd party packages. (due to the other commercial environment that doesn't work with venvs).

And it is a totally miserable experience on Windows, every single time.

Re:“Python's batteries are leaking” on Sunday May 19, 2019 @06:21AM (#19952531)
Unless your dependency is a C-header file updated by your distro as part of a new version.
Re:“Python's batteries are leaking” on Sunday May 19, 2019 @06:16AM (#19952513)
As long as you cannot even prove that due to a lacking python code signing infrastructure for packages (wheels can do it, but it is far from wide spread).

And setup.py is a trainwreck, e.g. some packages compile download and compile huge dependencies (e.g. a full Apache httpd...), the default compiler flags may lack all the mandatory security flags (e.g. for using ASLR on python 2.x), or ship their own copy of openssl statically and break your FIPS-140 certification that way...

It is a kind of fallout from a long overdue reform of that law area. In theory you even have to stop 'sending' your website between 6:00 and 22:00 if it contains adult content, same law. The reform failed due to the totally insane requirement of rating every single website for child protection. As it is a law with state and federal parts, you have lots of duplications and weird rules.

So the 'register all XMPP clients' is a side effect of german regulations that still consider Internet to be mostly just a slight variant on Phone&TV&Radio.

In the past (1980s/1990s) you had (in theory) to register any BBS service as a telecom provider, but they didn't even have a proper form to do the registration.

Try the tcl channel on freenode. Expect is a Tcl extension.
Re:What is Tcl? on Tuesday February 24, 2015 @03:15PM (#9103193)
Well, you might not notice Tcl if you see it sometimes.

For example have a look at the build scripts in MacPorts, those are valid Tcl programs (if you load the needed procs first). https://guide.macports.org/chunked/development.examples.html

As Tcl is very often used for DSL style usecases, you might mistaken Tcl code for more or less pseudo code, config files or something like that.

Re:What is Tcl? on Tuesday February 24, 2015 @02:33PM (#9102936)
I don't write much Tcl the last few years (mostly Python now, as it pays the bills), but looking from the Python perspective towards Tcl, i see a lot of good things i left behind:

* No GIL. Real threads with no silly global locks

* A very cool VFS layer, a bit like the stuff you can see in windows powershell with the Registry/Certstore/etc drives

* A beautiful implementation really worth a read (no silly 'XXX: don't know what to do, lets print to stderr' inside a library like you find in pythons source)

* An extremly consistent language far more than python which does all kinds of junk 'to make parsing easier' even if it makes the language harder

* Sandboxing interpreters (doesn't work with python, no chance)

* Stacked channels and a cool streams abstraction (Pythons io module is still some way behind its options)

* A built in event loop (Python just got one with 3.4...)

* A standard lib that mostly takes event driven as given (unlike pythons blocking stuff)

* very powerful metaprogramming support (e.g. have some logging code with 'ZERO' overhead when disable at runtime)

* good C-API and excellent support for embedding

* Stable ABI since more than 10 years (e.g. you can load a binary extension compiled against 8.1 into a current 8.6 interpreter and it just works, one of the reasons many Tcl projects didn't release new versions, no need. Unlike the python nonsense with -2.5,2.6,2.7 versions for every package, okay Python got a partial stable ABI now too, years later)

* mostly sane platform abstractions (the world isn't posix everywhere)

* packaging with starpacks (python's pyinstaller comes close, but lacks the VFS stuff, years later), a bit like cross-platform OS X app bundles

* Non mutable values by default, no pointers, so it is kind of functional

* A nice package system that doesn't mix up filesystem layout and namespaces and supports version

So if you look at it, it is kind of a weird crossover between ideas you now find in: Go, Node.js, Lisp, Powershell. Just a bit outdated and in need of some love.

Tcl's C implementation is far from messy. Its actually one of the best commented C based language code bases i have ever seen. But your project was doomed by false assumptions. (oh, and Tcl has more than one implementation, e.g. there is a version based on Parrot for example, http://code.google.com/p/partcl/ or the JACL interpreter based on the JVM).
Tcl dicts are ordered, so you have a defined order for this. http://www.tcl.tk/man/tcl/TclCmd/dict.htm#M27