tnfox-announce Mailing List for FOX for Tn
Brought to you by:
ned14
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
(1) |
Oct
(1) |
Nov
(2) |
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
|
Feb
(1) |
Mar
(5) |
Apr
(1) |
May
|
Jun
(1) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(1) |
2005 |
Jan
|
Feb
(2) |
Mar
(1) |
Apr
|
May
(1) |
Jun
(1) |
Jul
(1) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2006 |
Jan
(1) |
Feb
(1) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
From: Niall D. <s_s...@ne...> - 2008-10-31 16:10:45
|
Homepage: http://www.nedprod.com/TnFOX/ Docs: http://tnfox.sourceforge.net/TnFOX/html/ SVN: http://developer.berlios.de/svn/?group_id=2262 * Ported to Mac OS X 10.5 Leopard * Merged FOX v1.6.34 * Assorted bug fixes from user reports Cheers, Niall |
From: Niall D. <s_s...@ne...> - 2008-06-14 03:33:49
|
Homepage: http://www.nedprod.com/TnFOX/ Docs: http://tnfox.sourceforge.net/TnFOX/html/ SVN: http://developer.berlios.de/svn/?group_id=2262 TnFOX v0.88 is out almost eleven months to the day from when v0.87 was released. New features this release: * Merged FOX v1.6.33 and SQLite v3.5.9 * Added a few features from C++0x, the upcoming new C++ standard. So far we have proper static assertions instead of the TnFOX faked ones, the use of __func__ in error reporting and most significantly move constructors. Whether the compiler supports these or not is detected at runtime - currently only GCC v4.3 or later does (and currently has broken rvalue reference construction). * Added a SIMD optimised Maths::Vector generic metaprogrammed class capable of representing any arbitrary vector and using SIMD optimisation for those combinations supported by hardware. Currently, SSE gives you any multiple of 4 of floats and SSE2 gives you any multiple of 4 of ints, any multiple of 8 of shorts, plus any multiple of 2 of doubles. There are further optimisations for when SSE4 is available. Later on it'll have AVC, the forthcoming SSE replacement. * Replaced Maths::FRandomness with a SIMD version written using the new Maths::Vector code. This new implementation can generate 2Gb/sec of very high quality randomness versus 600Mb/sec with the non-SIMD version. * Rewritten FXFSMonitor to use inotify on Linux instead of FAM. This finally cures us of the plague of misbehaving FAM daemons hanging TnFOX programs on Linux (yay!). Obviously this means that TnFOX now requires a 2.6 kernel. * Improved UTF detection via testing for used & unused code planes. The new heuristic detector is much better. * Added automated tool for translating TnFOX translation files via Google Translation. TnFOX now comes with complete language support for Arabic, Bulgarian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hindi, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish & Swedish! And it is particularly cool to see all the help text appear in Hindi! There was no Apple Mac available for testing and so this release does not come with Apple Mac binaries. Ditto goes for FreeBSD this release. Also, there is a bug in recent xorg's which prevents multithreaded GUI programs from working - this hangs TnFOX but ONLY when you run the GUI event loop via TnFXApp (non-multithreaded FXApp based applications are fine). And once again, sadly no Python bindings - I just haven't had the time to work on them, sorry! Cheers, Niall |
From: Niall D. <s_s...@ne...> - 2007-07-12 16:11:20
|
Homepage: http://www.nedprod.com/TnFOX/ Docs: http://tnfox.sourceforge.net/TnFOX/html/ SVN: http://developer.berlios.de/svn/?group_id=2262 TnFOX v0.87 is finally out after some sixteen months since the v0.86 release (sorry!). New features include: * FOX v1.4.35 and FOX v1.6.28 merged. * 2D and 3D graphing support of arbitrary datasets rendered using OpenGL along with official Visualisation Toolkit (VTK) support. * Modular building support. You can now build separate no-GUI, SQL database and Graphing sublibraries. You can also toggle whether large proportions of FOX and TnFOX are compiled into your library or not, making for a very slimline standalone executables if you so choose. * Added child process device i/o class QChildProcess. You can now redirect i/o and manage child processes on all supported platforms. * An automated test suite now can perform full regression testing on all supported platforms. It stores its results inside a SQLite3 database and can output the database in HTML format (as you can see on the TnFOX website). * TnFOX is now completely portable to any architecture (not just Intel based ones). * Fixed stack backtracing on exception throw for Windows (which had become broken thanks to Microsoft) and added support for stack backtracing on Linux via glibc. * Even more performance increases. Tn now runs on Linux slightly faster than Windows! * Lots of bugs (some major) fixed. * New platforms now officially supported: Apple Mac OS X (using Apple's X11 server), CoLinux and Microsoft Windows Vista. TnFOX is fully & officially supported on all 32 bit and 64 bit platforms. Note that the v1.4 based branch will be dropped from this release onwards - only v1.6 or later shall be used in subsequent TnFOX releases. Anyone still using the v1.4 (non-Unicode) branch will need to upgrade. FreeBSD precompiled binaries have not been provided this time round due to a (current) lack of a FreeBSD installation. There is no reason why it shouldn't compile and run. The Python bindings have been much improved since the last release, but still aren't quite there (hence not supplying binaries). I am afraid that they are not a high priority for me currently, but I hope to get back to them relatively soon. I have a new computer whose extra power should greatly ease compiling & debugging them. Cheers, Niall |
From: Niall D. <s_s...@ne...> - 2006-04-04 00:07:54
|
Homepage: http://www.nedprod.com/TnFOX/ Docs: http://tnfox.sourceforge.net/TnFOX/html/ SVN: http://developer.berlios.de/svn/?group_id=2262 A year and two months later, the second STABLE release of TnFOX is out! Much of the long wait has been for FOX v1.6 STABLE to be released, and this version, v0.86 of TnFOX, comes in two flavours - v1.4.32 FOX based and v1.6.1 FOX based. I have spent the last week in testing and adding minor new features - I don't want a repeat of the embarrassing failure of v0.85 to work on Linux (fixing that was the first thing I committed to SVN)! Just to make absolutely sure it works on all platforms, this release comes with a TnFOX enhanced version of Adie, the FOX text editor of which precompiled binaries are provided. Major new functionality in this release includes: * Substantial speed improvements, especially multi-processor scalability improvements and even further optimisations for x64 architectures. * Nanosecond accurate timers. Handy for timing short running code. x64 architecture support for Windows, Linux and FreeBSD. * New GUI class FXHandedMsgBox, which supersedes FXMessageBox. QSSLDevice can now mix reads & writes and permits random access. * All Qt-compatible classes are now prefixed with Q instead of FX. This was required as newer versions of FOX were calling classes the same names. * FXTime is now a microsecond accurate count, and understands timezones. File metadata functions now work with host OS native resolution rather than to the nearest second. * Non-GUI builds of TnFOX are now possible. Precompiled binaries are provided. * SQL database support, including drivers for SQLite3 and via-IPC remote access. The way this feature integrates the SQL and C++ type systems by metaprogramming I just think is very, very cool! A copy of SQLite3 is bundled in with the library which has bulked up the binary a bit (you can always disable it). * Portable windows shell link file support. This lets you read and write Windows format shell links even on Linux as though they were symbolic links. Tested on win2k and winxp (the shell link file format differs on each). * Portable NTFS junction support. NTFS junctions now appear as symbolic links to TnFOX based code so your Unix code will work with them just fine. You can also create and delete NTFS junctions. ptmalloc2 has been replaced with nedmalloc, a superior malloc implementation. nedmalloc is currently the fastest (in real world code) memory allocator on Windows, Linux and FreeBSD at least - it even beats Hoard and tcmalloc in my real world tests and scales excellently with extra processors. * Build support for msvc8 (Visual Studio .NET 2005) and GCC v4.1 Thread processor affinity support where the host OS provides support. * Transparent BZip2 file support * UDP support in QBlkSocket * Unicode support (on v1.6 FOX based versions only) * Automatic UTF text translation support permitting transparent reading and writing of UTF16LE, UTF16BE, UTF32LE and UTF32BE (on v1.6 FOX based versions only) * And many, many bug fixes As v1.6 of FOX breaks Latin1 support, a v1.4.32 FOX based version of TnFOX remains available. The python bindings which were previously based on pyste are now based on pyplusplus and due to continuing teething problems with this very new tool, no python bindings come with this release. This should get fixed pretty soon. Enjoy! Cheers, Niall |
From: Niall D. <s_s...@ne...> - 2006-02-22 20:54:32
|
Homepage: http://www.nedprod.com/TnFOX/ Docs: http://tnfox.sourceforge.net/TnFOX/html/ SVN: http://developer.berlios.de/svn/?group_id=2262 This is the one many of you have been waiting for, and finally a chance to run your code on the very latest FOX release! The single biggest change from snapshot four is the merging of FOX v1.6.0 RC3. This is a highly experimental build, so expect breakages even though the test suite and adie work perfectly. Furthermore, the python bindings have not been included in this snapshot as they need substantial upgrading to support all the new API's. Also, as v0.86 release will use pyplusplus instead of pyste, so a whole new set of (much improved) bindings will be provided. Any feedback on this experimental build would be much appreciated (post to the tnfox discussion mailing list). You may find the new "FOX compatibility layer" option inside config.py useful for compiling your existing code without changing too much. Enjoy! Cheers, Niall |
From: Niall D. <s_s...@ne...> - 2006-01-02 21:15:18
|
Homepage: http://www.nedprod.com/TnFOX/ Docs: http://tnfox.sourceforge.net/TnFOX/html/ SVN: http://developer.berlios.de/svn/?group_id=2262 I really must apologise for v0.86 itself not being released, but we are waiting on FOX v1.6 to be released and that just keeps on getting later and later. However, on the upside, you should have a shiny new set of python bindings based on pyplusplus which are far superior in quality to the old pyste based ones. Other changes since snapshot 3 include full SQL database support with two embedded drivers for SQLite3 and accessing a remote SQL database via an IPC transport. This SQL database support uses heavy amounts of metaprogramming and makes usage especially easy with automatic C++ object to BLOB SQL type conversions. Some important speed tweaks were made yielding yet another 30% increase in Tn benchmarks. TnFOX can now be built without a GUI - this is intended for the Tn kernel as it runs as a daemon, but it's useful to others too. TnFOX applications now look identical on X11 as Windows if the right fonts are installed. TnFOX can now manipulate Windows shell link files even from Unix (by reverse engineering) and now understands NTFS junction points. You can now use one series of code to handle whatever symbolic link support is available on whichever platform. In build support, there is now full support for MSVC 8.0 RTM as well as newer GCC's and FreeBSD 6.0. A new superior memory allocator called nedmalloc has replaced ptmalloc2 in TnFOX. There are also lots of other small improvements and bug fixes. Enjoy! Cheers, Niall |
From: Niall D. <s_s...@ne...> - 2005-08-17 10:48:38
|
As of revision 550 in SVN, you can now build just the TnFOX extensions with almost no FOX code ie; no GUI code. This is intended for statically linking the Tn kernel which must run as a daemon and would have security issues if it used TnFOX as a DLL, but should be useful to others who simply want a simple non-GUI C++ support library. Some shrinkage figures with this build enabled (figures are for DLLs): On MSVC7.1 x86, from 3.08Mb to 1.06Mb. On MSVC8.0 x64, from 4.59Mb to 1.7Mb. On GCC v4.0.1 x64, from 11Mb to 1.9Mb. If you link statically, you can get executables less than 1.5Mb (not bad considering the clib is in there too) Cheers, Niall |
From: Niall D. <s_s...@ne...> - 2005-07-27 12:12:39
|
Homepage: http://www.nedprod.com/TnFOX/ Docs: http://tnfox.sourceforge.net/TnFOX/html/ SVN: http://developer.berlios.de/svn/?group_id=2262 The Python bindings are now complete and a FXPy example ported to TnFOX, though there are still bugs. There is an improved message box implementation, FXHandedMsgBox and the old FOX one deprecated. FXSSLDevice can now mix reads & writes and supports full random access and truncates. Generic::lockedAccessor allows reference or pointer returns to hold the lock on their owner outside the return from the access method. FXRefedObject_DisableCount allows temporary disabling of reference counting. All Qt-compatible classes now begin with Q instead of FX (this breaking all existing code) which was necessary for future integration of FOX v1.6. All TnFOX extension code now supports Unicode when FOX v1.6 is merged in the future. FXTime has been turned into a class supporting locale-specific dates & times to microsecond granularity across years 0-584,556 and all file time functions upgraded to support this where the host OS also does (Windows, FreeBSD). Enjoy! Cheers, Niall |
From: Niall D. <s_s...@ne...> - 2005-06-13 00:45:34
|
As above is now in SVN. There is also a new example ported from FXPy, the imageviewer example which mostly runs (though it doesn't shut down properly). Thus, as you might be guessing, while the bindings are now full & complete there still remains a number of bugs and issues. I have run out of development time, so anyone who wants to can get started on debugging it for me! :) I can advise and certainly all the hard work is done, though I won't have coding time to go fix things myself without very detailed specifics on the bug (shrunk down example etc). Enjoy! Cheers, Niall |
From: Niall D. <s_s...@ne...> - 2005-05-14 10:29:57
|
Homepage: http://www.nedprod.com/TnFOX/ Docs: http://tnfox.sourceforge.net/TnFOX/html/ SVN: http://developer.berlios.de/svn/?group_id=2262 The biggest change in this snapshot is x64 support for all supported platforms - Windows, Linux and FreeBSD (including 5.4). There is also support for MSVC8 (from Visual Studio .NET 2005) and GCC 4.0 which now includes my symbol visibility patch. Some bugs have been fixed, iterators optimised and a further 17% of performance squeezed out of FXMutex on Windows builds. It turns out that x64 builds have a mixed effect on performance - for some operations it's faster (eg; copying memory), for others it's slower (eg; pointer and iterator work). For Tn, FreeBSD 5.4 is very considerably faster and better than 5.3 and now equals Linux 2.6 kernel performance with it likely to surpass it in the future. Enjoy! Cheers, Niall |
From: Niall D. <s_s...@ne...> - 2005-03-11 01:45:35
|
Homepage: http://www.nedprod.com/TnFOX/ Docs: http://tnfox.sourceforge.net/TnFOX/html/ SVN: http://developer.berlios.de/svn/?group_id=2262 Now that we're into the production quality releases, the first of the TnFOX snapshots of the current SVN tree has been made - these shall continue as and when the source tree is known to be compiling and working reasonably well on all platforms. As nedprod.com is still down, you can go straight to the sourceforge page at http://sourceforge.net/projects/tnfox/. Changes include: * Bug fixes, including the embarrassing breakage of shared memory functionality on Linux in v0.85. * More optimisations such as sparing use of force inlining, in fact as many as v0.86 is going to get for the foreseeable future. Tn is now running very, very fast on TnFOX indeed and scaling itself across multiple processors very nicely indeed. * FXAtomicInt and FXMutex can now be inlined into all FXThread.h including files. This can both help and hinder. * Added FXProcess::getNsCount() which provides a portable nanosecond accurate counter for high resolution timing. * Improved performance on FreeBSD substantially, including replacing its default memory allocator with TnFOX's. * FXFont now always requests font smoothed and cleartyped fonts on Windows. * FXFSMonitor now can disable itself if it detects a broken FAM implementation such as like that on Fedora Core 3. Enjoy! Cheers, Niall |
From: Niall D. <s_s...@ne...> - 2005-02-16 12:39:24
|
I've just realised that I inadvertently broke shared memory on Linux late in the release cycle when fixing it being broken on FreeBSD. There's a fix right now in SVN, if people want new Linux binaries enough I'll generate them otherwise I'll leave things as they are. Sorry about that. Cheers, Niall |
From: Niall D. <s_s...@ne...> - 2005-02-13 06:03:44
|
Homepage: http://nedprod.com/TnFOX/ Docs: http://tnfox.sourceforge.net/TnFOX/html/ It's been a year in coming, but finally the first STABLE release of TnFOX has been made! The decision to do this was an easy one, Tn is now finally testing most parts of TnFOX in real-world production code and the finding of bugs rate has dropped enormously in recent months. One can see the evidence of this maturity in the TnFOX completedness table on its homepage where green has become the prevalent colour! Major new functionality this release includes: * SMP and non-SMP builds. If a non-SMP build is chosen, TnFOX uses far faster FXAtomicInt primitive implementation at assembler level resulting in some serious performance increases for uniprocessor machines (between 48% and 106%). Of course, such a binary will not work on SMP machines. * More optimisations in various places such as FXMutex, QDictBase etc. * Rewrote the nested exception handling framework. It works now, honest! :) * Fleshed out loads of little API's here and there. * Added FreeBSD v5.3 and RedHat Fedora Core 3 support along with support for 64 bit architectures. * As per user request, modified FXScrollBar to use 64 bit ranges. Merged FOX v1.4.1 and updated python bindings to use Boost v1.3.2. So obviously, not a lot of new features - it's mostly bug fixes. From now on it is intended that TnFOX will mirror FOX stable releases, if one wants a newer version in between then there is always SVN access which has proved very popular. The biggest thing coming in the next version of TnFOX is improved FreeBSD support - right now performance is substantially lower than either Linux or Windows and considerably less consistent, hence for now TnFOX remains of BETA quality on FreeBSD. Much of this is because FreeBSD 5.x has only very recently become stable itself, but as it's the primary development platform for Tn on POSIX I'm expecting it to improve in quality substantially during the next few months. Enjoy! Cheers, Niall |
From: Niall D. <s_s...@ne...> - 2004-12-15 17:32:56
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Homepage: http://www.nedprod.com/TnFOX/ Docs: http://tnfox.sourceforge.net/TnFOX/html/ Well here's a christmas treat for those of you who were wanting it, v1.3.20 (the latest development release) of FOX has been merged into TnFOX mainline SVN which you can find at http://developer.berlios.de/svn/?group_id"62. The previous version of FOX that TnFOX was based upon was v1.2.4 (stable). Note that NO FULL TEST CYCLE has been performed, after all if it had been then I'd be actually releasing v0.85 of TnFOX. What has been cursorily tested is: 1. Tn runs fine on both Win32 and FreeBSD v5.3. 2. Adie runs fine on both Win32 and FreeBSD v5.3. As these heavily rely upon the TnFOX and FOX parts of TnFOX they are a good indicator of success. I haven't been particularly thorough in my testing though. You should also consult the SVN docs on new changes between FOX and TnFOX given the v1.3.x FOX's threading support and what TnFOX has done to support the FOX API. All that's required now for the v0.85 release is running the test suite on Win32, Linux and FreeBSD and upgrading the python bindings to support the changes to the FOX API. This is quite a lot of work, and it won't be happening this year. However I hope that this is enough for now to let people move along with their work. May you all have a merry christmas and happy new year! Cheers, Niall -----BEGIN PGP SIGNATURE----- Version: idw's PGP-Frontend 4.9.6.1 / 9-2003 + PGP 8.0.2 iQA/AwUBQcB1IMEcvDLFGKbPEQLhBQCg4F+v5NuHceWoBu/3RhaXtkz862MAn0si YXJi+d3SdmwmUtotwX4t1A1h =c0T0 -----END PGP SIGNATURE----- |
From: Niall D. <s_s...@ne...> - 2004-11-13 20:20:51
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Homepage: http://www.nedprod.com/TnFOX/ Docs: http://tnfox.sourceforge.net/TnFOX/html/ Given how v0.85 keeps slipping as I don't get time to get round to a full release cycle, I've made the development branch of TnFOX available by SVN. The latest changelog is at http://svn.berlios.de/viewcvs/tnfox/trunk/ChangeLog.txt?view=markup Full instructions are at http://developer.berlios.de/svn/?group_id"62 and you'll need a subversion client. v0.85 will come eventually, the main obstacle is time to merge FOX development into TnFOX. I'll get to it eventually. Cheers, Niall -----BEGIN PGP SIGNATURE----- Version: idw's PGP-Frontend 4.9.6.1 / 9-2003 + PGP 8.0.2 iQA/AwUBQZZsdsEcvDLFGKbPEQKvrwCgrqNgi9fCG8Bfo8/tit+GZKmVygsAoMri eZRRhrbIAAyzAm1wFXz2r8j8 =2imy -----END PGP SIGNATURE----- |
From: Niall D. <s_s...@ne...> - 2004-07-13 03:57:46
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Homepage: http://nedprod.com/TnFOX/ Docs: http://tnfox.sourceforge.net/TnFOX/html/ [Please note that FreeBSD and Win32 binaries will be uploaded tomorrow - sorry, I'm too tired to continue uploading tonight] This is a big release for the third beta release of TnFOX. As would be expected in over three months of testing, a huge number of bugs have been fixed but furthermore features have been tweaked for easier usage, small new features added and some optimisation done on certain classes now that they are mature. The TnFOX homepage now contains a table showing the completedness of each of the TnFOX extension classes. I'll only list new features here: * FOX v1.2.4 merged and FXString has been fully TnFOX-ised and now throws an exception if memory is not available for the string. * Lots of default constructors added to classes which didn't have them. Many other small API tweaks here and there. * FXIPCChannel is now mature having been very extensively tested and hand optimised:- New message routing facilities have been added and messages can now be tunnelled from one channel to another even ones unknown to the bridge; Messages now self-optimise endian conversion automatically; Extra robustness features are now present to allow FXIPCChannel to be attacked maliciously. Testing shows that FXIPCChannel is substantially faster than CORBA (OmniOrb). * All QDictBase subclasses can now have their table size be dynamically adjusted according to runtime factors by QDICTDYNRESIZE. * FXThreadPool now works, having been unintentionally completely broken in previous versions. It's also mature and hand optimised. * Generic::instantiateH has been reimplemented - it now causes less compiler slowdown and is much faster to compile. All metaprogramming tools can now take up to four variable parameters. * Build system has been much enhanced:- Whole Program Optimisation supported for compilers which have it (MSVC, ICC); Due to user request, build system can now always generate a static library; MSVC and ICC optimisation options have been hand tuned for performance. * Full support for GCC v3.5 upcoming symbol visibility extension added - now all private classes are marked as such, substantially improving generated code quality. * Linux kernel 2.6 support added. Kernel 2.6.6 is noticeably faster and less memory hungry than 2.4 which is good because 2.6.5 was slow and had broken shared memory too. All Linux precompiled binaries are now for RedHat Fedora Core 2. * Substantial improvements to the custom memory pool infrastructure, including a new port of ptmalloc2 from glibc v2.3.3. Threads can now set a "current heap" which prevents remote resource depletion attacks. This infrastructure is now mature and hand optimised. * Threading support is now mature and hand optimised. In particular, all operations involving a FXMutex are now as efficient as it's humanly possible to make it. * Lastly, unfortunately the python bindings library on POSIX still doesn't work fully - any exceptions thrown by the library (eg; when python raises an exception) lose their typeinfo should they exit that shared object and thus fail to match any catch handler. This may be a long-standing bug in GCC/GNU ld/Linux (http://sources.redhat.com/ml/libc-alpha/2002-05/msg00222.html) or indeed, it may not. Let's hope I can find a solution by next release - v0.80 is actually a whole seven days late just from investigating this one issue :( A few more words on FXIPCChannel performance - on my machine (dual Athlon 1700 running Win2k), I can sustain the following figures for operations across two IPC channels across pipes with a tunnel on the remote end: Ops per sec: 29770 asynchronous, 5306 synchronous. Multiply the first by two and the second by four to roughly calculate ops/sec across a single connection. Pipes are known to be much slower on Win2k than Linux. With sockets: 12981 asynchronous, 3018 synchronous. With sockets and 128 bit AES encryption: 5633 asynchronous, 1469 synchronous. All these figures can be improved upon again with Profile Guided Optimisation (ICC, the upcoming MSVC8) or even simply symbol ordering within the binary to improve cache locality. Enjoy! Cheers, Niall -----BEGIN PGP SIGNATURE----- Version: idw's PGP-Frontend 4.9.6.1 / 9-2003 + PGP 8.0.2 iQA/AwUBQPNdx8EcvDLFGKbPEQK49QCgp+IOqlA2B9bdrSC5IJdIvK3vsGgAoMVE wlDXbHUozlz5jw0eUmoC7xMt =5grR -----END PGP SIGNATURE----- |
From: Niall D. <s_s...@ne...> - 2004-06-21 17:53:40
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Seeing as so many new people have joined the TnFOX discussion lists recently, I thought I should let you all know what's going on. Tn's capability infrastructure is done and has provided an excellent test for TnFOX's IPC infrastructure. I can tell you now that I can push ~40,000 asynchronous ops per second or ~7000 synchronous ops per second on my machine here with excellent usage of any extra processors you may have. This is in debug mode but with optimisations on, so expect a further 10-20% improvement again with all the sanity checks removed. I'll have exact figures for the v0.80 announcement. Unfortunately testing has found a small but annoying bug in the memory allocation system which is new in v0.80 - you can now set a "current" memory pool for each thread to use but unfortunately this raises issues with our memory allocator replacements being tolerant enough to handle being fed allocations from some other heap (or indeed allocator). I'm expecting to fix these in the next few days. Thereafter I'll merge FOX v1.3, update the python bindings and run a full test suite on all systems and compilers. I'm expecting I'll find issues, so I'm going to provisionally mark around the start of July as being when v0.80 will be released. v0.80 is very considerably more debugged than any previous version of TnFOX with large sections of it having finally been put through real world usage and as Tn is so demanding of the system. As things are going slowly, it's become clear I won't get the python bindings into real world usage this summer and possibly, this year. That's unfortunate, but I guess it gives more time for pyste to get itself fixed. If anyone has any questions, please ask on tnfox-discussion. Cheers, Niall -----BEGIN PGP SIGNATURE----- Version: idw's PGP-Frontend 4.9.6.1 / 9-2003 + PGP 8.0.2 iQA/AwUBQNcgusEcvDLFGKbPEQK+VACeNzLMFjsm4g2iZVZz/Hk2wCbu2OUAoIvK TXkaeurqh5AS12H+RduKXoVy =gYzT -----END PGP SIGNATURE----- |
From: Niall D. <s_s...@ne...> - 2004-04-09 23:50:37
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Homepage: http://nedprod.com/TnFOX/ Docs: http://tnfox.sourceforge.net/TnFOX/html/ This release was ready on the 1st, but persistent problems with the TnFOX python bindings on POSIX kept being found and with the six hour rebuild time it's a long debug cycle - also, I really had to patch GCC to enable the TnFOX Python bindings to be at all useable (patch is now submitted for inclusion into GCC v3.5). However, with this release we at least now have partially working bindings on POSIX - and while I was at it, I added v1.31 Boost support plus now the latest BPL indexing suite from CVS is supported. However what made it realistically possible was that GCC v3.4 from CVS is now mature enough - which I had been waiting for - and on my machine at least the full bindings can be compiled inside seven hours (less than two with precompiled headers enabled). I am therefore pleased to be able to offer a prebuilt binary for Linux with this release. As I've been finishing up Tn's user authentication support, the security facilities of TnFOX are now well tested and many bugs have been fixed plus small bits of new functionality added to round things out (eg; inheritable ACL's, user password checking). Optimisations have been made eg; FXFile now uses native Win32 calls, language translations are faster and SGI's FAM library is now used to implement FXFSMonitor on POSIX. The latter was done primarily as part of the new code enabling FreeBSD support with several key bits of code rewritten to use FreeBSD's native facilities, making matters on that platform often more efficient than on Linux. I am also pleased to be able to offer prebuilt binaries for FreeBSD 5.x too. As the second beta release of TnFOX, I believe substantial improvement has been made. My thanks to Mykhaylo Sorochan for helping with the FreeBSD testing. Linux & FreeBSD binaries are still building at the time of writing, they shall be uploaded shortly. Cheers, Niall -----BEGIN PGP SIGNATURE----- Version: idw's PGP-Frontend 4.9.6.1 / 9-2003 + PGP 8.0.2 iQA/AwUBQHc26cEcvDLFGKbPEQIPIACff4Z/kInvsIUp9UBuAorMpFVQQ9wAoJ7A lHK+C7QScX6cmWalZSFBABmx =Z/Bv -----END PGP SIGNATURE----- |
From: Niall D. <s_s...@ne...> - 2004-03-27 06:52:58
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 http://www.nedprod.com/TnFOX/patches/TnFOXv074_Patch.zip Now that I have FreeBSD v5.2.1, this point release enables full compiling & linking without error of TnFOX and all tests. All tests pass except TestDeviceIO and TestSSL which both fail with illegal instruction - I have the feeling it's the compiler, so I'll see what the latest GCC v3.4 from CVS thinks. v0.74 x - -=-=-=-=-=-=-=-=-=-Thanks to Mykhaylo Sorochan for reporting problems with FreeBSD. B Malcode in QMemArray::sort fixed B Malcode in FXRefedObject::PtrRef() fixed B Malcode in Generic::ptr when comparing against zero fixed B scons was using GCC v3.4 options incompatible with GCC v3.2/3.3 B SOL_TCP didn't exist on BSD so replaced with getprotobyname() B MSG_NOSIGNAL is Linux only, so moved FXPipe signal catcher into common code and integrated into FXBlkSocket B FXACL::check() was failing on Win32 when the calling thread was not the main process thread B Fixed segfault caused by FXIPCMsgRegistry getting deleted before its registrants B FXACLEntity::isGroup() was totally broken on Win32 B FXACLEntity::root() on Win32 returned the root group as the user B FXACLEntity::lookupUser() was totally broken on Win32 B Removed the include zutil.h in FXGZipDevice as BSD doesn't come with that B pthreads and dlopen weren't being found on FreeBSD B CppMunge.py wasn't being invoked on Unix systems B shm_open is only in librt on Linux B Linux-only signal type constants in FXProcess are now compiled on Linux! B Fatal and non retryable errors were disabling the wrong button in FXExceptionDialog B Fixed faulty referencing of a string in FXExceptionDialog (caused SIGBUS on BSD) B Fixed FXMutex::lock() causing abort when called from a cleanup/signal handler on FreeBSD B Fixed amazingly stupid mistake by me in FXThread::checkForTerminate() where I was testing for thread cancel while holding the thread's mutex + Added Generic::TL::findC + Added comparison operators to FXSSLPKey and FXSSLKey + Added FXSSLPKey::publicKeyAsString() + Added Secure::TigerHashValue::asString() + Added FXSSLPKey::publicKeyAsHash() * Finally reimplemented FXFile in native Win32 calls + Added FXSettingsHelpers + Added FXACLEntity::isLoginPassword() with some difficulty * FXTextField now zeros its contents on destruct if it holds a password * Rewrote FXFSMonitor to use SGI's FAM on POSIX + Added FXACLEntity::owner() + Added inheritability support to FXACL * FXACL can now set object ownership to entities other than the current user * Reimplemented FXProcess::noOfProcessors(), mappedFiles(), hostOS(), hostOSDescription() and hostOSMemoryLoad() to use native FreeBSD functionality * Main SConstruct now builds tnfox by default Cheers, Niall -----BEGIN PGP SIGNATURE----- Version: idw's PGP-Frontend 4.9.6.1 / 9-2003 + PGP 8.0.2 iQA/AwUBQGUk48EcvDLFGKbPEQINhwCcDDfcs8bZy8lvB9F0VCKDDMM262kAoNWV VZCkhPr5f2rXwy8RRoqYukpC =yOpK -----END PGP SIGNATURE----- |
From: Niall D. <s_s...@ne...> - 2004-03-15 23:00:22
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 http://www.nedprod.com/TnFOX/patches/TnFOXv073_Patch.zip NOTE: The ACL based code has changed a lot and due to me leaving for Scotland tomorrow, I wasn't able to do extensive testing. TnFOX tests may fail and certainly on POSIX there is a permissions bug. I will return on Wednesday 24th March whereupon I'll fix the remaining problems - note that during this time I shall be unavailable by email. Happy St. Patrick's day everyone in two days time! Thanks to Mykhaylo Sorochan for reporting problems with FreeBSD. B Malcode in QMemArray::sort fixed B Malcode in FXRefedObject::PtrRef() fixed B Malcode in Generic::ptr when comparing against zero fixed B scons was using GCC v3.4 options incompatible with GCC v3.2/3.3 B SOL_TCP didn't exist on BSD so replaced with getprotobyname() B MSG_NOSIGNAL is Linux only, so moved FXPipe signal catcher into common code and integrated into FXBlkSocket B FXACL::check() was failing on Win32 when the calling thread was not the main process thread B Fixed segfault caused by FXIPCMsgRegistry getting deleted before its registrants B FXACLEntity::isGroup() was totally broken on Win32 B FXACLEntity::root() on Win32 returned the root group as the user B FXACLEntity::lookupUser() was totally broken on Win32 B Removed the include zutil.h in FXGZipDevice as BSD doesn't come with that B pthreads and dlopen weren't being found on FreeBSD B CppMunge.py wasn't being invoked on Unix systems B shm_open is only in librt on Linux B Linux-only signal type constants in FXProcess are now compiled on Linux! B Fatal and non retryable errors were disabling the wrong button in FXExceptionDialog + Added Generic::TL::findC + Added comparison operators to FXSSLPKey and FXSSLKey + Added FXSSLPKey::publicKeyAsString() + Added Secure::TigerHashValue::asString() + Added FXSSLPKey::publicKeyAsHash() * Finally reimplemented FXFile in native Win32 calls + Added FXSettingsHelpers + Added FXACLEntity::isLoginPassword() with some difficulty * FXTextField now zeros its contents on destruct if it holds a password * Rewrote FXFSMonitor to use SGI's FAM on POSIX + Added FXACLEntity::owner() + Added inheritability support to FXACL * FXACL can now set object ownership to entities other than the current user -----BEGIN PGP SIGNATURE----- Version: idw's PGP-Frontend 4.9.6.1 / 9-2003 + PGP 8.0.2 iQA/AwUBQFYzUcEcvDLFGKbPEQJhKQCg54aoJe7Y5Y4bvqOh2SXxfC7YpWkAoJh0 YGGwnB4hAVEgiJIqggRDFRMR =fZ8F -----END PGP SIGNATURE----- |
From: Niall D. <s_s...@ne...> - 2004-03-14 02:23:06
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 http://www.nedprod.com/TnFOX/patches/TnFOXv072_Patch.zip Thanks to Mykhaylo Sorochan for reporting problems with FreeBSD. B Malcode in QMemArray::sort fixed B Malcode in FXRefedObject::PtrRef() fixed B Malcode in Generic::ptr when comparing against zero fixed B scons was using GCC v3.4 options incompatible with GCC v3.2/3.3 B SOL_TCP didn't exist on BSD so replaced with getprotobyname() B MSG_NOSIGNAL is Linux only, so moved FXPipe signal catcher into common code and integrated into FXBlkSocket B FXACL::check() was failing on Win32 when the calling thread was not the main process thread B Fixed segfault caused by FXIPCMsgRegistry getting deleted before its registrants B FXACLEntity::isGroup() was totally broken on Win32 B FXACLEntity::root() on Win32 returned the root group as the user B FXACLEntity::lookupUser() was totally broken on Win32 B Removed the include zutil.h in FXGZipDevice as BSD doesn't come with that B pthreads and dlopen weren't being found on FreeBSD B CppMunge.py wasn't being invoked on Unix systems + Added Generic::TL::findC + Added comparison operators to FXSSLPKey and FXSSLKey + Added FXSSLPKey::publicKeyAsString() + Added Secure::TigerHashValue::asString() + Added FXSSLPKey::publicKeyAsHash() * Finally reimplemented FXFile in native Win32 calls + Added FXSettingsHelpers + Added FXACLEntity::isLoginPassword() with some difficulty * FXTextField now zeros its contents on destruct if it holds a password * Rewrote FXFSMonitor to use SGI's FAM on POSIX -----BEGIN PGP SIGNATURE----- Version: idw's PGP-Frontend 4.9.6.1 / 9-2003 + PGP 8.0.2 iQA/AwUBQFPBKMEcvDLFGKbPEQIVqACghs3eJ1qOg80sBCMKFy9MPUEe2EIAnA2L HXQ1kSR6Zs2XqH782GBpPqv5 =N9pF -----END PGP SIGNATURE----- |
From: Niall D. <s_s...@ne...> - 2004-03-12 05:14:01
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 http://www.nedprod.com/TnFOX/patches/TnFOXv071_Patch.zip Thanks to Mykhaylo Sorochan for reporting problems with FreeBSD. B Malcode in QMemArray::sort fixed B Malcode in FXRefedObject::PtrRef() fixed B Malcode in Generic::ptr when comparing against zero fixed B scons was using GCC v3.4 options incompatible with GCC v3.2/3.3 B SOL_TCP didn't exist on BSD so replaced with getprotobyname() B MSG_NOSIGNAL is Linux only, so moved FXPipe signal catcher into common code and integrated into FXBlkSocket + Added Generic::TL::findC + Added comparison operators to FXSSLPKey and FXSSLKey + Added FXSSLPKey::publicKeyAsString() + Added Secure::TigerHashValue::asString() + Added FXSSLPKey::publicKeyAsHash() * Finally reimplemented FXFile in native Win32 calls -----BEGIN PGP SIGNATURE----- Version: idw's PGP-Frontend 4.9.6.1 / 9-2003 + PGP 8.0.2 iQA/AwUBQFFElsEcvDLFGKbPEQLoeACg3VzqDbK94CYVlRnVBYwOP+Xjm5YAoO/9 i6FQDFZTIBF4CQmbeBRR1D/r =YW5D -----END PGP SIGNATURE----- |
From: Niall D. <s_s...@ne...> - 2004-03-09 22:22:02
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Homepage: http://nedprod.com/TnFOX/ Docs: http://tnfox.sourceforge.net/TnFOX/html/ I was in two minds whether to do a release now as the real debugging effort is only just beginning and I'm sure there are many bugs yet to be found. However similarly, many bugs have been fixed and small but important bits of new functionality added, so I thought it best. This marks the first beta release of TnFOX and it also includes wider compiler support (with GCC v3.4 from CVS and Intel's C++ compiler v8). There have been loads of bugs fixed, some new functional metaprogramming constructs like Generic::filter, Generic::apply, Generic::replicate, Generic::MapBools and Generic::dynamicAt (this is particularly cool, it assembles a const jump table at compile time making run time code about four instructions). Small screen support has been added, see the TnFOX website for example screenshots. User handed orientated interfaces just got easier with the new FXHandedInterfaceI base class which also can collapse its button well if the window gets too small. The old FOX problem of timers and chores not firing during a modal loop has also been fixed. IPC messaging has been the most tested thus far, so there are some API changes, FXBlkSocket::waitForConnection() now thread cancels correctly as well as now being able to timeout. FXPipe now supports deep pipes and FXIODeviceS can now wait on multiple FXIODeviceS instances for more data to arrive. FOX v1.1.48 has been folded in. Lastly the problem of page locking on Linux has been partially fixed, if you run your process with suid root then TnFOX realises and appropriately adjusts itself and the filing system access uid & gid to be as secure as possible. Hereonafter will come point releases which probably won't have the python bindings nor the latest FOX updates - this is because it costs a few hours to do these things, and right now I'm wanting to push on with the Tn kernel namespace code which is at the heart of Tn as fast as possible. Cheers, Niall -----BEGIN PGP SIGNATURE----- Version: idw's PGP-Frontend 4.9.6.1 / 9-2003 + PGP 8.0.2 iQA/AwUBQE5BcsEcvDLFGKbPEQLbbwCg6t9tHbYZ5WiLzol+F4jTyROgZqoAoKms +1U2Y0jvjOjZ+ahTC1xqnKaT =e4bY -----END PGP SIGNATURE----- |
From: Niall D. <s_s...@ne...> - 2004-02-08 06:48:46
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 http://www.nedprod.com/TnFOX/ Well, after eight months of work I'm finally finished all the functionality I had in mind so now I can start Tn! (some of which is now in the TestSuite directory). There's loads of goodies this release, one or two of which made their way back into FOX itself. There will be no more significant new features from now on, only bug fixes as we drive through the beta period towards becoming a mature library. More bugs have been fixed this release than in any other, I spent three days testing and while there's still two tests which partially fail on Linux, it's not too important. FXCursor now supports 32 bit alpha cursors and TnFOX's TestCursor shows portable, animated dynamically created full colour cursors in action. We now have the promised Inter Process Communication framework which is highly efficient with perhaps only a 15-25% overhead despite being able to transport arbitrary C++ object instances from A to B. The channel is multiplexable, allowing multiple protocols to coexist over the same transmission medium and it also has optional zlib compression for low bandwidth connections (eg; my 33k modem). Another major new feature also promised since the start is per-thread event loops allowing multiple threads to operate multiple FOX window trees concurrently. It is very easy to upgrade your code to use this as each thread maintains a totally separate GUI environment so unless you write static data, you would need no code modifications. I found out that you can't define operator new in a namespace according to the ISO C++ standard - despite GCC and MSVC happily accepting the code, GCC was screwing up when it got called which was causing the previous segfaults. I've reworked the secure heap while adding zeroing on any exit plus locking its pages in memory so that it now works perfectly on GCC and thus Linux. More dynamism has been added to TnFOX with a real-time memory load indicator which correctly causes caches and thread pools to automatically shrink in low memory situations plus now programs can know the handedness of the user as so to place dialog buttons correctly. In fact the new FXPrimaryButton automatically places itself to the left and right appropriately and in future versions disability support will enable special semantics for this kind of button. Lots more debugging tools have been added with a fatal exit upcall (ie; if a segfault or general protection fault happens), data dumping functions, improved error code to message decoding (I typed many in manually) and alternate mutex behaviour. FXRefedObject has been completely rewritten (again) to use a totally generic design based on Generic::ptr and it's likely nearly finished - reference counted objects are now easy! In combination with the new Qt-compatible FXLRUCache, it's easy to maintain a least recently used deletion cache of any arbitrary object, most especially FXRefedObject's. FXIODevice and all file-type i/o devices now have read and write functions which don't need nor alter the current file position, thus easing multiple concurrent thread use plus substantially increasing efficiency for the memory mapped i/o device (as memory copies don't need a current file pointer). All file-type i/o devices now support the IO_ShredTruncate flag which causes any truncated data to be securely shredded, thus preventing leakage of secrets. The only thing remaining to make TnFOX as secure as it can be is root semantics for POSIX as memory page locking cannot be performed as a user (next version). The new FXMemoryPool is a dynamic allocator based on ptmalloc2, the standard allocator in glibc. I ported this to Win32 and its performance so totally smashed the Win32 dynamic allocator that I've replaced the global operator new and delete for TnFOX with it (on win32 only of course)! FXMemoryPool lets you create arbitrary custom memory pools which let your classes save on fragmenting the process heap, greatly speed mass deallocations and improve multithreaded performance too! The secure heap is in fact implemented as a FXMemoryPool. The documentation has been greatly enhanced with a new categorised class list, clarified descriptions and extra examples. See for yourself at http://tnfox.sourceforge.net/TnFOX/html/ Lastly, I also fixed namespace problems caused by FOX using namespaces wrong across all the FOX sources, added serialisation with FXApp to FXSettings and a few other places, enabled by default the alpha Xft2 support for anti-aliased fonts, added FXDataTargetI a generic container combined with FOX data target and added the new SEL_APPLY message type which reflects Tn dialog apply semantics. Enjoy! Cheers, Niall -----BEGIN PGP SIGNATURE----- Version: idw's PGP-Frontend 4.9.6.1 / 9-2003 + PGP 8.0.2 iQA/AwUBQCXbxMEcvDLFGKbPEQIiswCdHid4fEZuxW1G1ZYR/LkjHoz1YDcAoJB3 XIxH3FdD6dFX71T2Qt+9OwU9 =/ME2 -----END PGP SIGNATURE----- |
From: Niall D. <s_s...@ne...> - 2003-12-27 02:25:22
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 This is in fact the penultimate release of TnFOX alphas as v0.6 will contain the last lot of major new code and my apologies for the remainder of this release actually appearing on the 27th - some friends turned up mid-upload. This release has been very much centred around filling in the gaps so to speak and because the new features build on old ones, a particularly large number of bugs have been fixed (including all memory leaks known). I also took the opportunity to improve on hashing, memory use and removed some hard limits in previous versions. The generic tools library now has generic functors and bound functors which are used throughout TnFOX now - all callback style code is gone. You can also instantiate a typelist into a container which is very powerful plus we now have a policy driven Alexandrescu-style smart pointer. This unfortunately causes yet more problems with GCC but I've submitted the bug reports. There are more extensions to the QTL, including QPtrVector, QStringList and QFileInfoList plus a generic policy driven list sort algorithm which easily outperforms ANSI qsort() never mind being far more flexible. Qt compatibility is further enhanced with API compatible FXFileInfo and FXDir. Improved host OS facilities include FXThreadPool (with timed dispatches as well as instant) and FXFSMonitor, the latter allowing infinite monitoring of filesystem paths for changes. Security gets another boost with FXACL & FXACLEntity which provide Access Control List based security for Windows NT and SE-Linux with a reasonable emulation for POSIX - all FXIODevice's now permit reading of device permissions and most permit setting. There is no longer any technical reason why TnFOX based code can't run as a NT service. Python support is now more or less finished with FXPythonInterp completely rewritten. You can now embed python into your C++ /extremely/ easily in the form of mini-scripts or even just manipulate python variables directly from C++. You can also run multiple interpreters and multiple threads within those interpreters with remarkable ease - it's all abstracted away and taken care of for you. Lastly, the old problem of FOX GUI sort functions now has a very useable workaround based on some particularly heinous template code :) Unfortunately the namespace scoping bug of GCC v3.2 is also present in v3.3.2 and there's also a problem with GCC ignoring templated friends with that release. v3.4 CVS is just not ready yet with issues concerning building the stdc++ as well as linking against it. Hence once again no binaries will be provided for Linux as you get a segmentation fault on process exit. Next version will see the IPC messaging classes imported from Tornado - - however I'll be reworking them to use thread pools and a finite state machine so the performance problems when you created a data stream in Tornado (it took half a second) caused by deeply recursing message handlers goes away. I also need to tackle FXCursor with a full colour & animated replacement so Tornado's funky hourglass code can be ported. And after that, it will be betas only! Happy Christmas! Cheers, Niall -----BEGIN PGP SIGNATURE----- Version: idw's PGP-Frontend 4.9.6.1 / 9-2003 + PGP 8.0.2 iQA/AwUBP+ztqsEcvDLFGKbPEQIY0gCfQZRVTyqDu9rHmkdskeVH+Neo5CQAn0zV CMMEbPRzuSR7xUsbiy7dptXD =quog -----END PGP SIGNATURE----- |