[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
zile-220.127.116.11 released [beta]
zile-18.104.22.168 released [beta]
Fri, 04 Dec 2020 15:08:32 +0000
I'm happy to announce the release of Zile 22.214.171.124. This beta release is the
first of a complete rewrite, from C into Vala. This makes the code shorter
(about 75% of its previous length, so far) and easier to maintain (Vala
overcomes a lot of C's shortcomings).
Perhaps best of all, users don't have to care that it is written in Vala, as
Vala is compiled to C, and the release tarballs, thanks to automake, contain
C sources. Thus the only change is that glib is now required to build Zile,
and this is a library users are likely to have installed in any case; if
not, it is widely ported.
Those with long memories may recall a previous alpha version of Zile written
in Lua. Unfortunately, the advantages of writing in Lua did not make up for
the disadvantages: Lua was harder to get working with C, and its lack of
static typing led to new bugs that were hard to track down and fix. Vala on
the other hand is statically typed, and designed to work closely with C.
I have had a lot of fun learning Vala and contributing to its ecosystem: I
have helped to improve Vala support in automake (released with automake
1.16.3), taken on the maintainership of vala-mode for Emacs, and contributed
GNU regex and getopt_long bindings to valac that should ship in the next
release (0.52). I owe the Vala maintainer Rico Tschichholz a vote of thanks
for the huge amount of help he gave both in answering my questions, and
helping install my various contributions to valac and related projects.
Despite its relatively long history (Vala was first released in 2006), it is
still an immature language: I found myself running into compiler bugs, and
even after removing the last line of C code from the project, still find
myself sometimes having to debug at the C level. On the other hand, Vala is
easy to pick up for anyone who has worked with a mainstream object-oriented
language, and its closeness to C made the translation extremely
straightforward. The fact that it doesn't require users to have a Vala
compiler (at least, when used with GNU autotools) is a big bonus too; and
Vala can straightforwardly implement C APIs as well as consume them.
Conversely, Vala's library support is broad and mature: a wide range of
bindings for all sorts of GNU and GNOME libraries comes built-in, and it's
straightforward to write your own for missing functionality. In particular,
there's comprehensive support for the entire GNOME stack, from GLib up,
while libgee provides modern generic container types.
I therefore commend Vala to the consideration of hackers who are fed up with
C's limitations, put off by C++'s complexity, yet want to be able to write
portable software with familiar GNU tools that imposes a minimal extra
burden on users.
Here are the compressed sources and a GPG detached signature[*]:
Use a mirror for higher download bandwidth:
[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact. First, be sure to download both the .sig file
and the corresponding tarball. Then, run a command like this:
gpg --verify zile-126.96.36.199.tar.gz.sig
If that command fails because you don't have the required public key,
then run this command to import it:
gpg --keyserver keys.gnupg.net --recv-keys 68089F7380EE4A00
and rerun the 'gpg --verify' command.
This release was bootstrapped with the following tools:
* Noteworthy changes in release 188.8.131.52 (2020-12-04) [beta]
** Bug fixes
Writing files has been made more robust, in the case where the system may
not write all the data requested at once.
Zile has been rewritten in Vala. This makes the code considerably shorter
(~6kLoC as compared with 8kLoC for the C version) and easier to
maintain. It now requires glib and libgee to build, but a Vala compiler is
not required, as the generated C sources are shipped in release tarballs.
|[Prev in Thread]
||[Next in Thread]|
- zile-184.108.40.206 released [beta],