NGPT - Next Generation POSIX Threading TODO - last update 2001-08-01 ==== PRIORITY ITEMS LEFT FOR POST Version 1.0.1 ------------------------------------------ 1. Additional platform support. Right now, the x86 platform has the most extensive platform support. S/390 is probably next in line. Other architectures, specifically PowerPC and Itanium need to be supported as well. Itanium support is very close to complete and can be completed very quickly. PowerPC needs a lot of work. The base package has run under AIX on PowerPC but not under Linux on either an RS6000 or PowerMAC. S/390 is near complete but needs a bit more work. UPDATE: S/390 work on the NGPT was completed thanks to the efforts of Neale Ferguson, R&D Fellow at Software-AG who contributed his changes back to integration. These changes have been integrated for the 0.9.2 release. UPDATE: IA-64 work on the NGPT was completed thanks to the efforts of Nick Pollit, SGI. It's been integrated into the 0.9.4-2 release. UPDATE: PowerPC work is in progress and we hope to have it complete by the 1.0 release. UPDATE: PowerPC didn't make it into release 1.0. We now anticipate its' inclusion in a point release around 15-July-2001. At this time, we also plan to include support for S/390 64 bit (again contributed by Neale). UPDATE: Still no PowerPC (any takers?). Attempting to gain access to S/390 64 bit box for testing prior to release of code. ITEMS UNDER CONSIDERATION FOR 2.0 --------------------------------- 1. When in M:N mode, it may be better to use an "idler" instead of a scheduler on the native threads and run only a single copy of the scheduler. This should be investigated. 2. Support for pshared flag = PTHREAD_PROCESS_SHARED attribute of mutexes. UPDATE: We have some ideas for a design for this but we're still refining it. 3. POSIX Semaphore support. There's a prototype but it needs a lot more work before it can be integrated in the main stream. 4. Full debugging support. There is none currently. We need to build and test a version of gdb that will support this threading model. 5. Integration with glibc. While not immediately pressing, the code base needs to be prepped for future integration with glibc. This may involve some architectural changes but at present it doesn't seem as though this will be necessary. Needs serious investigation. 6. POSIX Realtime support. There's no support currently for the POSIX Realtime APIs. With the advent of kernel 2.4, these APIs may need to be supported before glibc integration can take place. 7. Documentation needs to be updated to reflect the use of environment variables to trigger various behavior and overrides. Additionally, there needs to be a few more enviroment variables exposed to enable further runtime control of the library. 8. Configuration file may be needed. Currently all the configuration parameters of the library are passed via environment variables. An ngpt.conf file in /etc needs to be created and be used to access configuration parameters of the library.