Detailed 2.2.0 Todo

From Lazarus wiki
Jump to navigationJump to search

This todo is for people working on fpc to write down what they want to do till 2.2.0 is released. It's not a wishlist what shall be done. Feature requests etc. should be added to mantis.

General

  • Document changes potentially affecting currently working code to User_Changes_2.2.0 (all)
    • Document regcal stack parameter order change
    • Document val change regarding the handling of #0
  • Fix bugs with target 2.2.0

Compiler

  • packages (Florian/Peter) (2.4.0)
  • Module handling rewrite (Peter/Florian) (2.4.0)
  • Crosscompiling to Mac OS X (Marco, been done, but not end user ready ->2.4.0)
  • rewrite assigning of automated types like variants and widestrings (Florian)
  • complete unique type support (Florian)
  • dispinterfaces (Florian)
  • improve HTML rendering of IDE (Florian/Tomas(?))
  • Internal linker for ELF platforms? (2.4.0)
  • better string append support (Peter)
  • Use Sysutils (Peter)
  • Directory caching (Peter)
  • All path/filename handling in the compiler ansistring. (Thomas)
  • generics support (Florian)
  • PIC support for Darwin/ppc and Darwin/i386 and compile rtl, packages and fcl with PIC support because non-PIC dynamic libraries are unsupported (although they work in simple situations) (Jonas)
  • Fix all testsuite failures which are in 2.1.x but not in 2.0.x (all)
  • bug fixing (all)
    • Delphi incompatibility regarding register calling convention (push order of stack based arguments) (Florian)
    • fix bugs in *nix tthread.inc's (joining detached threads, possibly some more dataraces) (Jonas)
  • Binary writer generates incorrect debug info, for example enums do not show. (Peter)
  • Ansistrings/widestrings should show in gdb as string, not address. We can achieve this by emitting debug information for zero terminated strings.
  • Fix -pg gprof support.

Packaging

  • Use fpmake for building (Michael/Peter)
  • Use fppkg for package repository (Michael/Peter)
  • get an initial set of packages for often used pkgs. (during RC'ing?)

RTL

  • 64-bit file support for Solaris (?)
  • 64-bit file support for MacOS (?)
  • 64-bit file support for Netwlibc (?)
  • 64-bit file support for Linux (Neli)
  • 64-bit file support for Linux/FPC_USE_LIBC (Neli, bug 7987)
  • Fix get_caller_frame stuff for code without stackframes (Jonas)
  • ARM badly needs mod/divide helpers in assembler
  • add {$optimization nostackframe} to objects unit and to all code which uses it (IDE, fvision) (superseded by r5146)
  • basic template unit (map and list) (Neli)
  • TFormatSettings (bug 6242). (Marco/Michael)
  • Make decision about threading in Linux (NTPL, unit libc) (bug 6280) (???, Marco is willing to help with the implementation)
  • bug 7247 (TStringList incompat, Marco/Michael. Scheduled fro XMas week)
  • bug 6824 (stored=false property storage, Lazarus angles?)
  • bug 7947 (Syncobjs cleanup)
  • properly scan and clean up sockets on all platforms (Ales)
  • fix internal ThreadManager inconsistencies (Ales?, March 31? - probably not)
  • Make declarations in Windows unit for WinCE compatible with those in the windows unit for Win32. (Yury)

FCL

  • DB: Restructure the db-testsuite (Joost)
  • DB: bufdataset: implement calculated fields (Joost)
  • DB: bufdataset: implement in-memory-filtering (Joost)
  • DB: bufdataset: make it possible to use bufdataset directly, thus not only it's descendents. (like TClientDataset) (Joost)
  • DB: bufdataset: save and read datapackets as XML (Joost)
  • DB: sqldb: improve speed by fetching more then one record at a time (Joost)
  • DB: sqldb: add the ability to make plugins (Joost)
  • DB: sqldb: a backup and restore plugin for firebird (Joost)
  • DB: sqldb: revise the TSQLScript component (2.4.0 ? Joost)
  • If possible: set up a test-suite for the fcl, like the db-testsuite. In such a way thet it can be used automatically, just like the compiler test-suite (Joost)

IDE

  • Try to implement a TP like evaluate/modify window (Daniel)
  • Check and modify compile options window to reflect all new 2.2 compiler options.

Documentation

  • Update runtime error list.