Tuesday, August 26, 2008

OmniThreadLibrary 1.0 released

After 164 repository commits and two months of development, OmniThreadLibrary 1.0 was released today.

There were little changes since the 1.0 beta, mostly regarding the TOmniValue record, which can now seamlessly hold Double, Extended and Boolean values.

OmniThreadLibrary 1.0 is available via SVN (http://omnithreadlibrary.googlecode.com/svn/tags/release-1.0) or as a ZIP archive.

If you like OmniThreadLibrary, spread the word around. After all, not every Delphi developer is reading my blog (yet ;). Feel free to include any parts of the marketing blurb (below).

What is OmniThreadLibrary?

OmniThreadLibrary is simple to use threading library for Delphi. It's main "selling" points (besides the price, of course ;) are power, simplicity, and openess. With just few lines of code, you can set up multiple threads, send messages between them, process Windows messages and more. OmniThreadLibrary doesn't limit you in any way - if it is not powerfull enough for you, you can ignore any part of its "smartness" and replace it with your own code.

OmniThreadLibrary is an open source project. It lives in the Google Code and is licensed under the BSD license.

At the moment, OmniThreadLibrary supports Delphi 2007 on the Win32 platform. It will support Delphi 2009 as soon as it's available. Currently, there are no plans to support older Delphi compilers and .NET.

Where can I get more imformation?

Home page: http://otl.17slon.com/

Web discussion forum: http://otl.17slon.com/forum/

Downloads: http://code.google.com/p/omnithreadlibrary/downloads/list

Issue tracker: http://code.google.com/p/omnithreadlibrary/issues/list

SVN checkout instructions: http://code.google.com/p/omnithreadlibrary/source/checkout

Author's blog: http://thedelphigeek.com

Author's home page: http://gp.17slon.com

12 comments:

  1. Anonymous16:35

    Congratulations.. really nice work.
    -mouser

    ReplyDelete
  2. Anonymous22:13

    Come on Support Delphi 2006

    ReplyDelete
  3. Download the code, change it to support D2006 and send me the diff. Then I'll see if it is too much work to support both Delphis or not.

    ReplyDelete
  4. Great works.
    Any intention on support lazarus and linux?

    ReplyDelete
  5. Uh, I don't think so. But on the other hand I had no idea how compatible lazarus is with Delphi 2007. Probably not compatible enough.

    ReplyDelete
  6. Anonymous09:38

    Nice work Gabr!

    BTW: Did you ever read this article?
    "Lock-Free Code: A False Sense of Security" by Herb Sutter

    ReplyDelete
  7. No, I didn't, but I will now :)

    Thanks for the link!

    ReplyDelete
  8. Gabr, is a lot compatible. more than you can believe. :)

    So, maybe i will take a look in your code and comment how much is your code compatible with lazarus and delphi.

    Best regards.

    ReplyDelete
  9. If lazarus can consume smart records and operator overloading then it is truly a great tool!

    BTW, is Donald Shimoda your real name or alias? (Yes, I've read through all Bach's novels.)

    ReplyDelete
  10. Anonymous10:53

    Gabr, great works!

    It works fine on Delphi 2006, but some code changes are made.

    ./src/GpStuff.pas

    {$IFDEF ConditionalExpression!s}
    {$IF CompilerVersion >= 18} //D2006+
    //{$DEFINE GpStuff_Inline}
    {$DEFINE GpStuff_AlignedInt}
    {$IFEND}
    {$IF CompilerVersion >= 18.5} //D2007+
    {$DEFINE GpStuff_AlignedInt}
    {$IFEND}
    {$ENDIF}

    ReplyDelete
  11. Errr, is this OK? Didn't you mean to re-enable GpStuff_Inline for CompilerVersion >= 18.5?

    ReplyDelete
  12. Anonymous02:31

    There is no problem in D2006.

    {$IFDEF ConditionalExpression!s}
    {$IF CompilerVersion >= 18} //D2006+
    {$DEFINE GpStuff_Inline}
    {$DEFINE GpStuff_AlignedInt}
    {$IFEND}
    {$IF CompilerVersion >= 18.5} //D2007+
    {$DEFINE GpStuff_AlignedInt}
    {$IFEND}
    {$ENDIF}

    Maybe it's right.

    ReplyDelete