Corrected a bug in the signatures generation in the HTTP server (it was too restrictive).
Corrected a bug in the HTTP server: the 'answer_extra' list was not emptyed at the beginning of each request. It was no problem with Netscape but was disturbing IE.
The HTTP server can now use either '|' or '?' to provide embedded variables (I'm still not sure which is the best).
Corrected buggy algorithm for parsing multipart forms (used for files uploading in the HTTP server).
A few final field renames in the 'HttpRequest' data type.
More documentation in the HTTP server implementation details section.
Corrected obsolete paths in the installation procedure documentation.
Better termination (the random shaker and database saver threads will be properly stopped, the memory will be freed), so it should be possible to load Pliant DLL from another application. (not tested)
'precompile_rewrite' method for 'Expression' will no more automatically recurse.
Revisited C compiler and OS calling convention specifications to a more conservative one.
Corrected the wrong handling of threads handles under Win32 that led to deadlocking in 'parallel' instruction.
The OS/2 version is on the way back.
Added 'local_variable' method to expression data type.
The FTP server has been updated.
Transparent transmission of database pointers in the HTTP server buttons.
Better authentification dialog with the browser in the HTTP server (Patrice).
Better navigation in the HTTP server.
Better 'fixed' and 'listing' attribut in the .page default style.
'Set:Void' data type is now handled properly by the database engine.
Reordered the top level pages of the Pliant site.
Corrected uninitialized data pointers in the database engine.
Corrected a 'wear a brown bag' bug in the database engine the caused databases to be emptyed when reloaded as part of .dump file.
Added the nice 'One shot configuration' system.
Better site assignment in the HTTP server (Thomas Bakketun).
Faster and weak
Will generate just a litte bit smaller keys in order to satisfy the constraint in
Chanded the default Unix rights to more restrictive ones in
subtree. This is because
must be secret.
Remamed 'create' generic function to 'build', so now we have build/destroy for data types initialisation/terminaison, and create/delete for adding/removing keys in database or sets, and insert/remove for adding/removing values in sets. You can use
script to automate the change in your tree,
but you should make a backup before !
Added a 'properties' field in 'Module' data type.
Includes the final version of Pliant database engine, and it's
Running Pliant programs
Better handling of 'blackhole' flag in 'Module' data type.
More bug fixes in the new generic data types (Patrice and me).
A few more improvements in the HTTP server, the biggest one beeing the 'ultrasafe' style that enable to safely execute uploaded dynamic pages in the HTTP server.
The 'to do' list of the HTTP server is now empty !
Corrected incorrect prototype for 'close_operator_name' in Expression (Patrice).
The files and datas browser in the HTTP server are working again, also their design is still rough.
The Pliant interpreter now works within the HTTP server.
Undefined intergers will now be displayed as blank fields in the browser, instead of '?'.
A few more improvements in the HTTP server in the attempt to drive browsers at best.
More bug fixes in the new generic data sets, and more flexible lists.
More cleanups in the memory allocation:
cells containing true objects are now marked on bit number 0, so we can scan the memory and enumerate all true objects.
the step beetween two cells is now always 8 bits aligned, so bit number 2 is available for mark and sweap.
allocated cells are now properly 8 bytes aligned (they should have already been, but they where not since the cell header was instead of the cell content).
this is the first step towards including a mark and sweap GC.
Removed the hook that could (but was not) be used to create objects with wilder headers.
Changed the 'options' field (which had type 'Str') in various compiler related data types ('Argument', 'Instruction', 'Expression', 'Function', 'Type', ...) to a more powerfull 'properties' field with type 'Dictionary'. The drawback is that it will consume much more memory.
Under Posix, finds the amount of memory and number of processors using 'sysctl'.
Todo: find it under Win32.
Changed 'enlarge' to 'padding' in the HTTP default style (backward compatible at the moment).
Changed (and extended) 'key' method to 'kmap' in the old non generic 'Dictionary' data type in order to avoid semantic conflict.
Pliant did not work any more when installed in $HOME/pliant/ (Basile STARYNKEVITCH)
More bug fix in new optimizers.
Bug fix in GCC interface (added volatile to kernel function calls).
Better scripts for compiling and installing Pliant.
Under Windows, Found a way to get around GCC buggy WINAPI attribute, so the Win32 precompiled binary are now compiled using GCC.
Benchmarked and seriously revisited semaphores and the threads start/stop mechanism (including a new workaround what I think is a Linux kernel bug).
Included some part of the memory semaphore code in the C part of Pliant in order to avoid calling a hook most time.
Included low level Linux code to scan how many processors are available. This code must be extended for FreeBSD, OpenBSD and Win32.
More bug fixes in the new generic data sets, and more flexible indexes.
Some updates in the SMTP server (Gordon Matzigkeit).
More corrections in the code generator new optimizers.
More advanced GCC interface using __attribute__((const)) in order to enable GCC to better optimize ... but still buggy.
Fast HTML encoding/decoding routines.
Temporary files security hole closed on Linux and Posix (review wanted).
Added a parameter to function 'new_button_id' in default.pli HTTP server style helper.
Revisited various make scripts:
moved /pliant/pliant/language/bin/ and /pliant/pliant/language/dump/ directories to /pliant/binary/
under Unix, Pliant is now compiled as a pure executable (should avoid DLL relocation related problems).
under Windows, Pliant can now be compiled using GCC (also called cygwin).
Upgraded the installation script in order to avoid the /bin/pliant soft link to be changed automatically each time /pliant/install/precompile.pli module is loaded.
The softlink will now be created according the Pliant root location.
Corrected the incorrect handling of [lf] in release 41 HTTP server.
Corrected plenty of errors in the generic data sets types introduced in release 41.
Corrected errors in (code generator) optimizers introduced in release 41.
Added a few more optimizers.
Changed arguments order in 'suckup' method for 'GeneratorContext' data type.
Better GCC interface environment checking.
Corrected incorrect error line number in .page files.
Improved GCC interface so that it can now be loaded first. So, now Pliant is just as fast as C.
New set of consistent generic data sets types.
OpenBSD port (Daniel Neri).
Added a few optimizers that will change things like *2^n to shift n left, and so on.
Improved large intergers division and casting to string (Antonio Eduardo Costa Pereira).
Corrected 'evaluate' method for 'Expression' data type in order to prevent to crash when calling 'runtime_compile' with an invalid program.
Improved the various access control functions in the default style through automatically providing the authentification request whenever required.
Corrected recursive buttons in .page files (broken in release 40)
Added a sample optimize in the HTTP server.
Improved 'execute' function under Linux so that the executable path will be searched if not provided.
Add uInt -> Float casting