|title "Pliant overall project status"
[Last check on 2001/9/16]
| para "What's available"
| header "What's available"
| [Pliant is currently three things: a language, some applications and an operating system ]
[(see ] ; link "what is Pliant" "whatisit" ; [ for extra details).] ; eol
[All three parts are now basically stable.] ; eol
[So, at the moment, if you plan to start a custom, mainly database, application, Pliant provides all you need to write the code and setup and maintain the servers and clients. ]
[Using Pliant will seriously bring down the overall cost because of Pliant's tight consistency.]
| para "What's on the way"
| header "What's on the way"
| [Now that Pliant is both feature complete enough and stable enough for many real applications, I'm starting to do what I call 'polish' it (which means rewriting some small parts to get cleaner code, remove small bugs and design flaws, make it more flexible etc) and more than anything else, upgrade the documentation.] ; eol
[I also plan to publish a Pliant journal once a month that will demonstrate how to provide basic services using Pliant.] ; eol
[Finally, I need to switch to an even more open development model where, each night, I post two patches on the forum, one including the changes of the day, and one including all the changes since the last official release.]
header "To do list: next release or so"
item [Add the 'plugin'/'custom' instructions.]
item [Add an 'Anything' special data type in the database engine.]
item [Add a per site definition homepage field.]
item [Add a static area flag in the sites definition so that we can have areas that will not execute dynamic page (so where it's safe to upload to).]
item [Include sessions support in the HTTP server.]
item [Build a trivial bug generic search engine mechanism.]
item [Move secured proxy to port 80.]
item [Always run a local DNS in FullPliant operating system.]
item [Add code in the DNS to reject immediately when the external DNS cannot be reached (no route).]
item [Create temporary DNS entries so that using the secured proxy can be completely transparent (same URL).]
item [Add code to copy all or create minimal configuration files when installing a FullPliant system.]
item [Include the enhancement in the compiler engine in order to avoid exponential time when an expression fails to compile (Patrice).]
item [Enable users to change their account settings.]
header "To do list: middle term"
| para "Pliant core language"
| header "Pliant core language"
item [Add a flag to specify that a type object reference count must be incremented when an object with this type is created (so that the type can be safely freed at a later point).]
item [Finish mark and sweep garbage collector: add a flag to specify that mark and sweep automatic loop discovery is available for a specified type, and keep in a list all references to such types for each thread.]
item [Make 'Function' 'Type' 'Expression' and 'Module' data types garbage collector ready.]
item [Add a basic optimizer for floating points arithmetics (in order to avoid pushing and popping on i387 stack for each individual operation).]
item [Use more i386 complex instructions (current optimizer is rather targeted to risk like processors).]
item [Study more advance optimizing algorithms for the Pliant code generator (in order to save register to register copies).]
item [Clean 32/64 bits issues in the code (Pliant 'Int' is 64 bits on a 64 bits platform, but C 'int' is generally 32 bits even on a 64 bits platform).]
item [Port the code generator to new processors.]
| para "Pliant applications"
| header "Pliant applications"
item [Add clustering to Pliant database engine (the engine has been reengineered in release 61-62, so now it should be fairly straight forward).]
item [Add an HTML/XML parser/generator and a very simple macros engine in the HTTP server in order to enable easier custom styles.]
item [Port Zlib code to Pliant so that we don't need to call an external DLL for a so basic and important feature.]
| para "FullPliant operating system"
| header "FullPliant operating system"
item [Add an alarm system in FullPliant (sends mail when some measures get strange, such as disk space too low, or CPU usage too high for too long and so on).]
item [Add a 'cron' like tasks scheduler.]
item [Add a modified file hook system that will provide files clustering.]
header "To do list: on the long run"
| note right 0.5
| box right width "50%" color (color hsl 60 50 80) round 5
| [Pliant desktop applications (Word processor and spreadsheet) will use HTTP/HTML as their native user interface so that the documents can be viewed and edited from any web browser. ]
[They will also use HTML as their native file format so that the document can be viewed without the help of any server of specific application. ]
[The extensibility of HTML (the ability to add properties to tags) will be used to code application specific properties (such as the formulas in the spreadsheet).]
item [Pliant graphic library (I'm working for a packaging company and I have C++ existing code).]
item [Pliant spreadsheet]
item [Pliant word processor]
item [Rewrite Pliant compiler kernel in Pliant, using a Pliant cross compiler.]
item [Use DOM to provide higher level of interactivity still through a standard web browser such as Mozilla.]
header "Win32 specific to do list"
italic [First of all, we need a guy with reasonable programming capabilities to carry the day to day Win32 port (when I make changes, it sometimes breaks details in the Win32 port).]
item [Discover why Zlib interface does not work on Win32.]
[Add the 'execute' command for Win32 ] ; how "/pliant/admin/execute.pli"
item [Provide a script to start Pliant services automatically at boot time (for Win98, and NT/2000).]
item [Provide one click installation for Win98.]
item [Some Win32 users would like an IDE (a graphical interface for writing, running and debugging Pliant programs).]