Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C++ Standardization Net TS1 & Filesys TS

Tags:

c++

I have a few questions about the standardization, in particulair the prototype of Net TS1 coming this year (see here).

  • When does it exactly come?
  • Does it support portable binairy serialization?
  • Can it serialize to iostreams like files/std::cout etc?
  • Is there some other place where I can find the current status besides the mailing lists?
  • When will GCC/Clang implement it?

About the filesystem (Filesys TS):

  • It was supposed to be finished as prototype this month, why can't I find anything anywhere?
  • Is it the same a boost::filesystem? (So it can easily be ported.)

I hope I'm not asking too much questions, and I also hope some can be answered!

like image 712
Tim Avatar asked Mar 29 '13 09:03

Tim


2 Answers

The latest full Networking Library proposal, based on Boost.Asio, was published in 2007. At that time, C++0x was still planned for sometime before 2010 and there was also a plan for a C++ Technical Report 2. The idea was to get the Networking Library into TR2.

Working on C++0x clearly stole everybody's attention, because not much else happened with the networking library until after it was published. In 2012, they produced a Networking Library Status Report and noticed that a lot had changed with Boost.Asio in the past 5 years. A study group was formed (SG4) to work on the Networking Library.

Now TR2 doesn't seem to be a happening, and it's full steam ahead for C++14 and beyond. As far as I can tell, there has been no explicit mention of a planned time frame for SG4. However, since it was formed, these are the most up-to-date papers from the mailings:

  • Using Asio with C++11 (N3388)
  • Urdl: a simple library for accessing web content (N3477)
  • C++ Internet Protocol Classes (N3477)
  • A URI Library for C++ (N3507)
  • IP Address Design Constraints (N3565)
  • A Three-Class IP Address Proposal (N3603)
  • Network Byte Order Conversion (N3620)

So combine these with the full TR2 proposal and you have a pretty good picture of the current status.

  1. When does it exactly come?

    There doesn't seem to be a specific time frame. Hopefully we'll see a technical specification sometime before C++14 (maybe even in 2013), but this is merely speculation. It'll be done when it's done.

  2. Does it support portable binary serialization?

    I don't think so. I can't find any mention of serialization in any of the papers. I think it's probably beyond the scope of the Networking Library.

  3. Can it serialize to iostreams like files/std::cout etc?

    See above.

  4. Is there some other place where I can find the current status besides the mailing lists?

    Not at the moment. However, they have been gradually making the mailing lists for each of the study groups public, so maybe SG4 will be made public soon. If it is, we'll get a better view of current progress.

  5. When will GCC/Clang implement it?

    Not yet!


In January 2013, revision 4 of the Filesystem Library proposal hit the mailing list. Again, I see no explicit time frame, but this and the Networking Library are the two library study groups with the most focus right now. Hopefully we'll be able to see a technical specification for this too sometime this year or at least before 2014.

  1. It was supposed to be finished as prototype this month, why can't I find anything anywhere?

    I haven't seen anything about a prototype, but I guess things sometime take a little longer than planned. Perhaps it just isn't public yet. The Bristol meeting is being held next month and all study groups' progress reports are on the agenda. I'm sure we'll see a technical specification when it's ready.

  2. Is it the same a boost::filesystem?

    Pretty much! Take a look at the latest revision; it mentions that it is heavily based on the Boost Filesystem Library version 3. There is a small section on differences:

    In the Boost library, facilities in class path to handle narrow (i.e. char) character strings with encodings other than the operating system's native encoding depend on codecvt arguments. In the proposal, these facilities depend on locale arguments and additional UTF-8 facilities have been added. The Filesystem Study Group believes this approach is more reliable and useful, particularly as UTF-8 use continues to spread.

    Otherwise, the proposal is very similar to the Boost library. Indeed, most of the proposed wording is generated from the same source as the Boost library's reference documentation.

like image 165
Joseph Mansfield Avatar answered Nov 19 '22 02:11

Joseph Mansfield


Like all formal ISO C++ documents, Technical Specifications come when they're done. What it will support is hard to say up front. Features may be cut if they're not ready, or conversely publication may be delayed to get a wanted feature in. E.g. C++98 was delayed for ~2 years to merge in the STL.

The FileSystem TS is indeed being derived from Boost FileSystem, so there is very likely a high degree of commonality.

like image 37
MSalters Avatar answered Nov 19 '22 02:11

MSalters