Replies: 2 comments
-
If you have any question or suggestion that you would like to share don't hesitate to write here. 😃 |
Beta Was this translation helpful? Give feedback.
0 replies
-
Nice one 👌 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
After five months, the rewrite of the Tau virtual machine in C is almost done.
As I've mentioned in the old discussion, the experimental CTau repository is discontinued as there's no need to rewrite each part of the language in C thanks to Go's awesome CGO feature.
So the project will mostly stay in our beloved Go but with a portable C heart.
The next major release of Tau will include the C VM as part of the main repository and will disable the evaluator, which will be only used for some compiler optimizations.
All the C code in Tau has been written with speed and portability in mind, for more details and benchmark results refer to the bottom of this comment.
I'm currently considering disabling or removing the old Go VM alltogether since it has been greatly outperformed by the C implementation (roughly 5x faster).
The development of the C VM can be followed in the fast-vm branch.
At the moment it's still missing a few builtins and an implementation of the pipe object.
The missing builtins are:
push
(removed)range
(removed)plugin
(might change)pipe
send
recv
close
open
(removed)bytes
The major changes to the VM are:
Up-to-date benchmarks on Linux 6.2.9 running on an Intel Core i7 8700K (x86_64):
CTau: 10,899s
CPython 3.11.2: 13,231s
CPython 3.10.10: 20,397s
GoTau: 53,563s
Benchmarking Tau code:
Benchmarking Python code:
Beta Was this translation helpful? Give feedback.
All reactions