www.digitalmars.com         C & C++   DMDScript  

c++.announce - STLSoft 1.8.1 released with Digital Mars C++ 8.41

reply "Matthew Wilson" <admin.hat stlsoft.dot.org> writes:
I'm happy to announce the release of v1.8.1 of STLSoft.

The two important changes are:
 - all components (of STLSoft main project, and *all* sub-projects) are now
licensed using the BSD License, as ratified by the Open Source Initiative
 - the release of the STLSoft implementation of RangeLib
(http://www.rangelib.org/), the implementation of the Range concept, just in
time for the publication of the (hopefully) seminal article on the subject,
in October's C/C++ Users Journal, written by yours truly and fellow
contributing editor John Torjo. Ranges are a complimentary concept to
Iterators, aimed at manipulation of collections as a whole, and are both
easier to use and provide a more comprehensive abstraction of collections.

Of course, there are also a lot of minor additions, and several bug fixes,
as follows at the end of this post.

As usual, please feel free to send in comments, suggestions and bug reports,
either direct to me in email or, preferably, on the STLSoft newsgroup. Oh,
and if any of you fancy a riveting good read, you can buy my new book -
Imperfect C++ (http://www.imperfectcplusplus.com/) - which will be published
on the 9th October, by Addison-Wesley. :-)

Cheers, and good coding!!

Matthew Wilson

Author: "Imperfect C++", Addison-Wesley, 2004
    (http://imperfectcplusplus.com)
Contributing editor, C/C++ Users Journal
    (http://synesis.com.au/articles.html#columns)
Director, Synesis Software
    (http://synesis.com.au)
STLSoft moderator
    (http://stlsoft.org)

mailto:admin stlsoft.org
mailto:stlsoft hotmail.com
http://www.stlsoft.org
news://news.digitalmars.com/c++.stlsoft

"So far, C++ is the best language I've discovered to say what I want to
say" -- Alex Stepanov

----------------------------------------------------------------------------

============================================================================
====
11th September 2004 : STLSoft 1.7.1 => 1.8.1
----------------------------------------------------------------------------
----

Sub-project versions

  ATLSTL  1.3.1 -  no changes
  COMSTL  1.4.1 -  no changes
  .netSTL 1.1.1 -  no changes
  InetSTL 1.0.1 => 1.0.2
  MFCSTL  1.3.5 -  no changes
  UNIXSTL 1.1.1 => 1.2.1
  WinSTL  1.4.1 => 1.5.1

Changes:

 The most obvious change is that the licensing for all STLSoft libraries has
 changed to use the BSD license
 (see http://www.opensource.org/licenses/bsd-license.html).

 The other significant change is the addition of the STLSoft RangeLib
 implementation (see http://www.rangelib.org/)

 There are other, minor changes and bug fixes, as follows:

 STLSoft:
  - addition of value_proxy proxy template class to
stlsoft_argument_proxies.h
  - minor adjustments to auto_buffer
  - addition of stlsoft_environment_block.h, defining environment_block
    class
  - addition of os_exception class to stlsoft_exceptions.h file
  - fix to fast_string_concatenator to remove assumption of contiguous
storage
    (thanks to Sean Kelly for spotting this)
  - addition of is_char_type<> discriminator to stlsoft_meta.h
  - addition of stlsoft_proxy_iterator.h file, defining proxy_iterator class
  - fix to stlsoft_string_access.h, for GCC 3.3.x (thanks to Peter Kreger
for
    this)
  - addition of difference_type and const_reference to string_tokeniser

 InetSTL:
  - addition of difference_type to basic_findfile_sequence

 UNIXSTL:
  - addition of unixstl_exceptions.h file, defining unix_exception class
  - addition of swap() method to file_path_buffer class
  - addition of is_file() and is_directory() methods to filesystem_traits
  - minor bug fix to unixstl_functionals.h
  - significant reworking of glob_sequence class, including throwing of
    glob_sequence_exception on (non-GLOB_NOMATCH) glob() failure, and
correct
 (maintenance of) sorting of filtered results sets.
  - addition of unixstl_module.h file, defining module class for loading
    shared objects (dynamic libraries)
  - addition of unixstl_path.h file, defining path class

 WinSTL:
  - fix to winstl_absolute_path.h
  - addition of winstl_console_ctrl_handler_scope.h file, defining
    console_ctrl_handler_scope class
  - fix to winstl_drophandle_sequence.h
  - addition of winstl_environment_block.h, defining environment_block
    class
  - addition of set() and reset() methods to event class
  - addition of winstl_exceptions.h file, defining windows_exception class
  - addition of swap() method to file_path_buffer class
  - addition of winstl_winstl_filesystem_functions.h file
  - addition of is_file(), is_directory(), create_directory(),
remove_directory().
    delete_file() and rename_file() methods to filesystem_traits
  - addition of difference_type to basic_findfile_sequence
  - minor bug fix to winstl_functionals.h
  - addition of IsWaitObjectSignalled() and HasOverlappedIoCompleted()
functions to
    winstl_functions.h
  - addition of winstl_module.h file, defining module class for loading
    shared objects (dynamic libraries)
  - minor bug fix to winstl_module_filename.h
  - addition of winstl_path.h file, defining path class
  - addition of handle() accessor method to process_mutex
  - addition of StringFileInfo handling to version_info
  - addition of winstl_window_icon_scope.h file, defining window_icon_scope
    class
Sep 11 2004
next sibling parent reply "Pablo Aguilar" <paguilarg hotmail.com> writes:
Great to hear it's out...
I hadn't had a chance to play with the new features up 'till now...

And now that I have, I've one question, why's copy_if missing from the 
rangelib algorithms?...

No, wait...
First off, I'm wondering why it's missing, since I started reading the docs 
for rangelib
Then I thought I'd look in the files themselves to see if it was only 
missing in the docs, but couldn't find them!
I went to the rangelib homepage, but the downloads point back to stlsoft, 
where I got the original file for stlsoft 1.8.1. Then I thought the 
distribution from the digital mars website did include it, but that wasn't 
true either...

So now the question is, where can rangelib be downloaded from?
Is it in the download package and I'm just not seeing it? or is it really 
missing?

Also, while reading the docs for the range adapters, the docs say the 
include file is adaptors.hpp, which, doesn't quite follow your conventions 
for header files (or are you changing them?)

Anyway, more comments to come later
Great job finally releasing this version, thanks for the good work...
Sep 20 2004
next sibling parent reply "Pablo Aguilar" <paguilarg hotmail.com> writes:
The digital marks package that's linked to in the main stlsoft downloads 
page is also broken, it's 1.5 mb and can't be opened, I'm trying now the one 
that's on the digital mars ftp server
Sep 20 2004
next sibling parent reply "Pablo Aguilar" <paguilarg hotmail.com> writes:
Got it

The one from digital mars does contain range lib and is the full download 
(4+ mb), while both downloads from stlsoft are either missing stuff or 
broken
Can anyone else confirm this?


 The digital marks package that's linked to in the main stlsoft downloads 
 page is also broken, it's 1.5 mb and can't be opened, I'm trying now the 
 one that's on the digital mars ftp server

Sep 20 2004
parent "Matthew" <admin.hat stlsoft.dot.org> writes:
 Got it

 The one from digital mars does contain range lib and is the full download (4+
mb), while both downloads from stlsoft 
 are either missing stuff or broken
 Can anyone else confirm this?

Confirmed. Fixed Again, many thanks for catching this.
Sep 20 2004
prev sibling parent "Matthew" <admin.hat stlsoft.dot.org> writes:
"Pablo Aguilar" <paguilarg hotmail.com> wrote in message
news:cinocs$8g9$1 digitaldaemon.com...
 The digital marks package that's linked to in the main stlsoft downloads page
is also broken, it's 1.5 mb and can't be 
 opened, I'm trying now the one that's on the digital mars ftp server

Have uploaded that now. Sorry for the multiple stupidities. ;)
Sep 20 2004
prev sibling parent reply "Matthew" <admin.hat stlsoft.dot.org> writes:
"Pablo Aguilar" <paguilarg hotmail.com> wrote in message
news:cinnip$829$1 digitaldaemon.com...
 Great to hear it's out...
 I hadn't had a chance to play with the new features up 'till now...

 And now that I have, I've one question, why's copy_if missing from the
rangelib algorithms?...

Do you mean copy_if(), not copy_n()? The algorithms there so far are largely influenced from the STL. I'm not aware of an implementation of STL that has a copy_if, hence it's not (yet) been included. If you want to suggest some workable semantics for a r_copy_if(), I'd be happy to add it. :-)
 No, wait...
 First off, I'm wondering why it's missing, since I started reading the docs
for rangelib
 Then I thought I'd look in the files themselves to see if it was only missing
in the docs, but couldn't find them!

Gah! I'm a fool. I'd ensured they were in the stlsoft_1_8_1-libs.zip, but not in the "full" zip. Now fixed.
 I went to the rangelib homepage, but the downloads point back to stlsoft,
where I got the original file for stlsoft 
 1.8.1. Then I thought the distribution from the digital mars website did
include it, but that wasn't true either...

I'm pretty sure that does. The zip, which I've verified to contain the /rangelib files, is 4261519 bytes. That's the size of the stlsoft-1.8.1.zip file on the DMC server. Are you remembering to look in the /rangelib subdirectory?
 So now the question is, where can rangelib be downloaded from?

stlsoft.org/downloads.html :-)
 Is it in the download package and I'm just not seeing it? or is it really
missing?

Missing from "full", but it is in "libs"
 Also, while reading the docs for the range adapters, the docs say the include
file is adaptors.hpp, which, doesn't 
 quite follow your conventions for header files (or are you changing them?)

The .hpp is used for RangeLib. I'm evolving. :-)
 Anyway, more comments to come later

Good stuff.
 Great job finally releasing this version, thanks for the good work...

Thanks for the help, and the +ve feedback. :) Please continue to feel free to post questions, etc, on STLSoft / RangeLib, but note that RangeLib now has its own newsgroup: news://news.digitalmars.com/rangelib. Cheers Matthew
Sep 20 2004
next sibling parent reply "Pablo Aguilar" <paguilarg hotmail.com> writes:
 Great to hear it's out...
 I hadn't had a chance to play with the new features up 'till now...

 And now that I have, I've one question, why's copy_if missing from the 
 rangelib algorithms?...

Do you mean copy_if(), not copy_n()? The algorithms there so far are largely influenced from the STL. I'm not aware of an implementation of STL that has a copy_if, hence it's not (yet) been included. If you want to suggest some workable semantics for a r_copy_if(), I'd be happy to add it. :-)

Now, I actually meant copy_if... I know it's not part of the STL, but if you google around for planned additions for C++0x I'm pretty sure you'll find it. I found several quotes stating that the fact that it's missing is just "because of an oversight" And, being that it's pretty straight forward to implement, I found no compelling reason NOT to include it, even if it's not yet part of the standard, it is useful and often implemented (according to another quote, sorry, I forgot the links!)
 No, wait...
 First off, I'm wondering why it's missing, since I started reading the 
 docs for rangelib
 Then I thought I'd look in the files themselves to see if it was only 
 missing in the docs, but couldn't find them!

Gah! I'm a fool. I'd ensured they were in the stlsoft_1_8_1-libs.zip, but not in the "full" zip. Now fixed.

Great, got it now...
 I went to the rangelib homepage, but the downloads point back to stlsoft, 
 where I got the original file for stlsoft 1.8.1. Then I thought the 
 distribution from the digital mars website did include it, but that 
 wasn't true either...

I'm pretty sure that does. The zip, which I've verified to contain the /rangelib files, is 4261519 bytes. That's the size of the stlsoft-1.8.1.zip file on the DMC server. Are you remembering to look in the /rangelib subdirectory?

You're right, the thing is, when I looked at the DMC page, it sent me back to stlsoft to download, and I somehow missed the DMC download of 4 mb, which I later found (hence my later posts)... you're right that does have it BTW, is there any significant difference between the DMC distribution from the other one? (as in, why would I want to download the 1_8_1_full.zip + the docs zip, if I could just get the full package with the DMC file and I'd be getting DMC support?!)
 So now the question is, where can rangelib be downloaded from?

stlsoft.org/downloads.html :-)

Thanks!
 Also, while reading the docs for the range adapters, the docs say the 
 include file is adaptors.hpp, which, doesn't quite follow your 
 conventions for header files (or are you changing them?)

The .hpp is used for RangeLib. I'm evolving. :-)

Boost's influence finally got to you? ;-)
 Anyway, more comments to come later

Good stuff.

Got one more!... minor doc bug: The docs for ansi2unicode (or something like that) say ANST instead of ANSI
 Great job finally releasing this version, thanks for the good work...

Thanks for the help, and the +ve feedback. :) Please continue to feel free to post questions, etc, on STLSoft / RangeLib, but note that RangeLib now has its own newsgroup: news://news.digitalmars.com/rangelib. Cheers Matthew

Yeah, I found that out yesterday, and saw your post today... will check it out later... Oh, and thanks for the acknowledgement on the help file!
Sep 21 2004
parent "Matthew" <admin stlsoft.dot.dot.dot.dot.org> writes:
"Pablo Aguilar" <paguilarg hotmail.com> wrote in message
news:ciq986$2ops$1 digitaldaemon.com...
 Great to hear it's out...
 I hadn't had a chance to play with the new features up 'till now...

 And now that I have, I've one question, why's copy_if missing from



 rangelib algorithms?...

Do you mean copy_if(), not copy_n()? The algorithms there so far are largely influenced from the STL. I'm


 aware of an implementation of STL that has a copy_if, hence it's not


 been included.

 If you want to suggest some workable semantics for a r_copy_if(),


 happy to add it. :-)

Now, I actually meant copy_if... I know it's not part of the STL, but

 google around for planned additions for C++0x I'm pretty sure you'll

 it. I found several quotes stating that the fact that it's missing is

 "because of an oversight"

 And, being that it's pretty straight forward to implement, I found no
 compelling reason NOT to include it, even if it's not yet part of the
 standard, it is useful and often implemented (according to another

 sorry, I forgot the links!)

It's in now. Will be available in the next update. Thanks to the magic of the indirect_range_adaptor<>, it took 10 minutes coding + testing. :-)
 No, wait...
 First off, I'm wondering why it's missing, since I started reading



 docs for rangelib
 Then I thought I'd look in the files themselves to see if it was



 missing in the docs, but couldn't find them!

Gah! I'm a fool. I'd ensured they were in the


 not in the "full" zip.

 Now fixed.

Great, got it now...

Good
 I went to the rangelib homepage, but the downloads point back to



 where I got the original file for stlsoft 1.8.1. Then I thought the
 distribution from the digital mars website did include it, but that
 wasn't true either...

I'm pretty sure that does. The zip, which I've verified to contain


 /rangelib files, is 4261519 bytes. That's the size of the
 stlsoft-1.8.1.zip file on the DMC server. Are you remembering to


 the /rangelib subdirectory?

You're right, the thing is, when I looked at the DMC page, it sent me

 to stlsoft to download, and I somehow missed the DMC download of 4 mb,

 I later found (hence my later posts)... you're right that does have it

 BTW, is there any significant difference between the DMC distribution

 the other one? (as in, why would I want to download the 1_8_1_full.zip

 docs zip, if I could just get the full package with the DMC file and

 getting DMC support?!)

Only that the DMC version has Digital Mars specific instructions that the other does not.
 So now the question is, where can rangelib be downloaded from?

stlsoft.org/downloads.html :-)

Thanks!
 Also, while reading the docs for the range adapters, the docs say



 include file is adaptors.hpp, which, doesn't quite follow your
 conventions for header files (or are you changing them?)

The .hpp is used for RangeLib. I'm evolving. :-)

Boost's influence finally got to you? ;-)

Hah! :-) I'm a pragmatist, and always learning, so if something seems better, I'm going to adopt it.
 Anyway, more comments to come later

Good stuff.

Got one more!... minor doc bug: The docs for ansi2unicode (or something like that) say ANST instead of

Thanks. That's in your other post, I think, which I'm leaving marked unread for when I've time to address those points.
 Great job finally releasing this version, thanks for the good



 Thanks for the help, and the +ve feedback. :)

 Please continue to feel free to post questions, etc, on STLSoft /
 RangeLib, but note that RangeLib now has its own newsgroup:
 news://news.digitalmars.com/rangelib.

 Cheers

 Matthew

Yeah, I found that out yesterday, and saw your post today... will

 out later...
 Oh, and thanks for the acknowledgement on the help file!

You're most welcome. Cheers Matthew
Sep 21 2004
prev sibling parent reply "Pablo Aguilar" <paguilarg hotmail.com> writes:
I know copy_if is done already, but take a look anyway:
http://www.artima.com/cppsource/wishlist.html

Item 23 of the Standard Library group's wishlist for C++0x 
Sep 29 2004
parent "Matthew" <admin stlsoft.dot.dot.dot.dot.org> writes:
copy_if's now in STLSoft, in the up and coming 1.8.3, along with a few 
other new algorithms


"Pablo Aguilar" <paguilarg hotmail.com> wrote in message 
news:cjeten$1ar2$1 digitaldaemon.com...
I know copy_if is done already, but take a look anyway:
 http://www.artima.com/cppsource/wishlist.html

 Item 23 of the Standard Library group's wishlist for C++0x
 

Feb 03 2005
prev sibling parent reply "Pablo Aguilar" <paguilarg hotmail.com> writes:
Found a couple of doc errors:
- window_icon_scope, seems to've been born out of copy-pasting window_enable 
scope, and so, I think you forgot to update it's purpose
- setcursor_scope has the same problem as above
- unicode2ansi says ANST instead of ANSI (I also posted ansi2unicode had the 
same problem)
- I think the docs for winstl and unixstl's pipe class are wrong, they state 
the pipe handles a Win32 Event synch object

That's all for now...
I'll keep looking later...
Sep 21 2004
parent "Matthew" <admin.hat stlsoft.dot.org> writes:
"Pablo Aguilar" <paguilarg hotmail.com> wrote in message
news:ciqbh8$2t4e$1 digitaldaemon.com...
 Found a couple of doc errors:
 - window_icon_scope, seems to've been born out of copy-pasting window_enable
scope, and so, I think you forgot to 
 update it's purpose
 - setcursor_scope has the same problem as above
 - unicode2ansi says ANST instead of ANSI (I also posted ansi2unicode had the
same problem)
 - I think the docs for winstl and unixstl's pipe class are wrong, they state
the pipe handles a Win32 Event synch 
 object

All modified. Thanks
Sep 25 2004