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.