This Saturday we had a short (6 hours) Pike meeting in Linköping where
we discussed what we would like to do with the langauge for the near
future. The two topics were basically (besides trading ideas and
discussions in general) what we need to do to make the next release in
shortest amount of time, and what we would like to do for the next
immediate release.
The consensus was to attempt to push for a 8.0 release, given the
large amount of changes since 7.0, and to make that release with the
current feature set. The task list for that on a high level is
- Fork a 8.0 and next branch (9.0?) soonish (within a week?)
- Fix compilation issues. This basically boils down to a requirement
on version 4 of GCC and to remove redundant configure tests that
today prevents correct behavior.
- Fix the testsuite. There are not very many issues that needs to be
fixed, but they have been around for a while, suggesting that they
may be tricky to fix, or at least requires a time investment from
someone knowledgable. We have a few type system issues, a scope
issue with inherit, a test case that breaks the pike stack and
broken dumped file system.
- Valgrind currently takes issue with a few of the tests. Check if
these are real and fix them.
- We have a few documentation issues reported by the autodoc
extractor. These should be fixed.
- Test that exported source and exported builds
compile/installs/work.
- Set up Xenofarm to build Pike 8.
- Check if there are obvious performance regressions from 7.8, and
address them if that appears to be easy.
- And everyones favorite; Write a changelog.
For the next version of Pike we want to be more explicit about
supported operating systems. Linux, Solaris, MacOS, Windows and, if
Marcus supports it, AmigaOS.
- Remove configure and transition to a profile based system where a
pike script generates header files.
- Remove the compat system, as it creates a lot of maintenance
overhead, ugly code and is of dubious value in practice.
- Consider removing the less used C modules to cut down on
dependenices and compilation time. DVB, Mird, spider and PDF were
mentioned as examples.
- Remove the Pike security system. This is not maintained and would
simplify the code.
- Remove the bundle system. All the bundle dependencies are now
available as packages and most are already installed by default.
- Make support for bignums mandatory, to remove all ifdef bignum
code.
- Remove support for old systems (e.g. outdated code in port.c)
- Remove short svalue support.
- Remove Fd_ref from Stdio.File, currently implemented under
STDIO_DIRECT_FD define.
- Implement typed constants.
- Implement "operator" as an alternative syntax for "`".
- Replace block alloc with a single (and better) implementation.
- Remove local calendar locale configuration support.
- Split mega apply into a pike and a C version to speed up calls
between pike functions.
- Remove the mark stack.
- Renumber the types so that PIKE_T_INT becomes 0.
Any item that makes the release of 8.0 easier and faster should be
done there rather than later.