383 karma · joined September 8, 2015
> ... and Rust. Although Rust doesn't have a regex library in std, the official regex crate (I am its author) descends from RE2[1].
... and Tcl (see my earlier post). You might argue that Tcl is not popular but it still has a significant following.
Regexps in Tcl use a non-backtracking implementation which handles such cases with minimal slowdown, e.g. the example shown with 16 and 32-character inputs:
(dep) 7 % timerate {regexp (a+)+b aaaaaaaaaaaaaaaa}
0.353737 µs/# 2826961 # 2826961 #/sec 1000.000 net-ms
(dep) 8 % timerate {regexp (a+)+b aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}
0.412612 µs/# 2423587 # 2423587 #/sec 1000.000 net-ms
One discussion of this can be found at https://comp.lang.tcl.narkive.com/XPVME8zS/tcl-regexp-perfor... .Tcl's threading implementation has no GIL, which not only avoids the type of lock-up described here, but also allows performance to scale to use all cores of your machine, see: https://www.hammerdb.com/blog/uncategorized/why-tcl-is-700-f... .
Also "modern" is in the eye of the beholder. There are many features that Tcl had long before some of the supposedly more modern languages. In some areas like single-file deployment of applications it's arguably still ahead of its newer competitors.
I believe there was once a separate BBC radio license, but they gave up on that long ago. So now BBC radio is financed from the TV licence fee, but there's no requirement to have a TV licence to listen to radio.
You seem to be ignoring Tcl, which solved this problem about 20 years ago with Starkits (https://wiki.tcl-lang.org/page/Starkit) and Starpacks (https://wiki.tcl-lang.org/page/Starpack).