User:PascalDragon

From Lazarus wiki
Jump to navigationJump to search

Hi! My name is Sven, I'm a Free Pascal user and core developer from Germany and these are my current FPC/Lazarus related projects:

ports

  • Native NT: This port allows to write early user space applications, sub systems and device drivers for Windows NT based systems (NT, 2000, XP, 2003, Vista, 2008, 7).
State: Base RTL works nearly completely
next steps:
  • enable process execution, threading and utilize NT's exception handling
  • test the compiler on Native NT
  • get units crt, keyboard, video, graph working
  • get all Pascal only units in packages working
  • get the textmode IDE working
  • MINIX: MINIX is a Unix-like operating system that is based on top of a microkernel originately developed by Andrew S. Tanenbaum. All device drivers are running in usermode and communicate using IPC.
State: working on implementation in compiler

current projects

  • Improvements for generics: Generics still are either not as bug free as wished or don't support specific features like generic methods/functions/procedures.
  • Wayland units: Convert the Wayland headers so clients for this new display server can be written in Pascal. This should provide the basis for a CustomDrawn-Wayland widgetset

planned projects (no particular order)

  • Support for Attributes (this is being worked on by Joost) and extended RTTI introduced with Delphi 2009
  • Support for anonymous functions
  • Support for runtime packages
  • Add "WinRT" (aka Metro) target
  • Add fpmake support for utils, compiler and RTL
  • Improve the RTL/FCL:
    • add TMonitor support
    • bring SyncObjs up to par with Delphi XE3 (possibly with various spin lock algorithms)
    • add generic Collection [List, Queue, Stack] interfaces and classes (possibly compatible with Delphi XE3)
    • add a "Random" unit with an IRandom interface and various Random implementations
    • add a cross plattform unit for SIMD operations
    • maybe add support for higher order functions (map, filter, fold) in standard classes/interfaces
    • further improvements in other units
    • further additions of other units
  • Add compiler/RTL provided profiling system (callback called on each begin and end)
  • Add support for "as" and "is" to CORBA interfaces
  • Support for contracts (ensure, require, invariants) introduced by Oxygene (Delphi Prism)
  • Maybe implement an oxygene syntax mode
  • Add operators for "EntersScope" and "LeavesScope"
  • Support for native linking with C++ classes (aka finish the cppclass concept)
  • Explore additional language concepts like Traits, Aspect Oriented Programming, Type Inference and Duck Typing

past projects

  • External thread variables collector for Windows: This is needed for Windows systems (Win32, Win64, WinCE) to allow the initialization of the RTL for external threads. External threads are threads that are not created by BeginThread (TThread uses BeginThread). Although work is underway to implement Thread Local Storage in FPC, the collector will be needed for older systems (Win9x) and maybe WinCE as those don't implement Thread Local Storage.
See also this bug report
State: nearly done
  • Class/record helpers: Delphi 2006 (or even 2005) introduced so called class and record helpers which allow to extend the scope the compiler uses when searching for symbols (methods primarily).
The work is done in a branch
State: Some examples are working, but I run into a dead end and need to completely rework my implementation (which is nearly done, so normal development can continue)
  • Type helpers: Delphi XE3 introduced support for helper types for primitive types. Support for these was added to FPC as well.
See also this announcement e-mail
  • Extension of TThread class: Newer Delphi versions added further methods to TThread like Queue. In December 2012 the TThread class was brought up to par with Delphi XE3.
See also this announcement e-mail
  • Generic constraints: Generic constraints allow to state an restriction for the types that can be used to specialize a generic.
See also this announcement e-mail