Boost C++ Libraries: Ticket #4581: Filesystem V3 should not require wstring support https://svn.boost.org/trac10/ticket/4581 <p> V2 of the filesystem library did not require wstring support; V3 does require wstring. There are systems in widespread use (such as those that use uclibc instead of glibc) that do not have wchar_t, and will probably never have wchar_t. So long as filesystem V2 still exists, this is not a problem, but V2 is officially deprecated, so might not be around much longer. </p> <p> You need to either: </p> <ol><li> Keep filesystem V2 around forever. </li></ol><p> or </p> <ol start="2"><li> Modify filesystem V3 so that it does not require wstring/wchar_t. (This would be my preference.) </li></ol> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/4581 Trac 1.4.3 anonymous Tue, 24 Aug 2010 15:32:58 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/4581#comment:1 https://svn.boost.org/trac10/ticket/4581#comment:1 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">wontfix</span> </li> </ul> <p> AFAIK, <a class="missing wiki">SourceForge</a> is committed to keep the distribution files for old versions of Boost available for the foreseeable future. So in that sense, V2 will be around for a long, long, time. But I've got my hands full getting V3 off the ground, so want to stop supporting V2 as quickly as possible. </p> <p> I have no interest in modifying V3 to support systems without wstring/wchar_t. I'm afraid it would take too much time and complicate the source code. It isn't just the core library itself; the test code is a serious concern too, as is down the road support. </p> <p> If someone wants to create a patch, I'll take a look. But unless it can be done in a way that doesn't degrade the maintainability of the source code, include tests, I'm not likely to be interested. </p> <p> --Beman </p> Ticket wim@… Thu, 24 Mar 2011 08:56:18 GMT <link>https://svn.boost.org/trac10/ticket/4581#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/4581#comment:2</guid> <description> <p> I'd also appreciate if this gets fixed. Reasons: </p> <ol><li>even though it's a pragmatic approach that works in many cases, std::wstring is not a nicely portable solution for internationalized strings anyway (2 bytes per char on windows, 4 bytes per char on unix, and uses in general still an unspecified encoding). It's use should not be encouraged. You seem to realise this too, since you provide separate unicode methods (u16string, u32string). </li><li>many embedded systems don't support wstring. For example: Android, uclibc, ... </li></ol><p> I'd be much more interested in a method that is actually generally usable, such as a u8string() method that returns UTF8 path info. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Tue, 10 Jul 2012 14:00:48 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/4581#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/4581#comment:3</guid> <description> <p> Same here ... I'm using boost on android and since version 1.50 only V3 is included I'm stuck with version 1.49 and won't benefit from further updates .... </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Beman Dawes</dc:creator> <pubDate>Wed, 18 Jul 2012 17:45:59 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/4581#comment:4 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/4581#comment:4</guid> <description> <p> Hum... Interesting about Android... </p> <p> It would not be too difficult to eliminate the wchar_t and std::wstring requirement for POSIX API systems as long as it is retained for Windows. </p> <p> The issue then becomes testing. It is pretty hard to support a platform that is not covered by regular regression tests. </p> <p> Is it even possible to run the regular boost regression tests on an Android development platform? </p> <p> --Beman </p> </description> <category>Ticket</category> </item> <item> <author>suky0001@…</author> <pubDate>Mon, 14 Jan 2013 14:08:31 GMT</pubDate> <title>attachment set https://svn.boost.org/trac10/ticket/4581 https://svn.boost.org/trac10/ticket/4581 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">Filesystem_1_52_Android_unit_tests.txt</span> </li> </ul> <p> Filesystem 1.52 unit testing on Android </p> Ticket suky0001@… Mon, 14 Jan 2013 14:10:13 GMT <link>https://svn.boost.org/trac10/ticket/4581#comment:5 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/4581#comment:5</guid> <description> <p> @Beman: Yes, you can run the regular boost tests on Android, but this is not as trivial as running them on the host machine. Procedure: </p> <ul><li>As for normal tests, go to <code>libs/SOMELIB/test</code> and run b2. The command line for b2 may have options specific to Android. </li><li>Test will compile, but will obviously fail running since you're on the host machine. </li><li>Copy <code>bin.v2/libs/SOMELIB/test</code> directory on your device or emulator (using ADB), and manually run them. <ul><li>Depending on your API (Android version), you may use a specific directory (say <code>/data/local/tmp</code>), because you may not have run permissions elsewhere. The other solution is to root your device. </li><li>Also copy the boost libs the tests depends on. </li></ul></li><li>Run a terminal or an "adb shell" </li><li>Write "<code>export LD_LIBRARY_PATH=directory-you-put-boost-libs-in</code>" (ex: "<code>export LD_LIBRARY_PATH=/data/local/tmp</code>") </li><li>Run each test manually. </li></ul><p> Actually some tests fail on Android with boost 1.52: </p> <ul><li>operations_test / operations_test_static </li><li>operations_unit_test (no errors, but outputs some wchar garbage) </li><li>path_unit_test / path_unit_test_static </li></ul><p> Attached to the ticket is <a class="attachment" href="https://svn.boost.org/trac10/attachment/ticket/4581/Filesystem_1_52_Android_unit_tests.txt" title="Attachment 'Filesystem_1_52_Android_unit_tests.txt' in Ticket #4581">the full output</a><a class="trac-rawlink" href="https://svn.boost.org/trac10/raw-attachment/ticket/4581/Filesystem_1_52_Android_unit_tests.txt" title="Download">​</a>, where unreadable characters have been replaced by "<code>*** n UNREADABLE CHARS ***</code>". </p> <p> About the issue, I guess it would be possible to add dummy functions and types, so that wchar_t==char. That way, wchar would work as expected. Don't you think? </p> </description> <category>Ticket</category> </item> <item> <author>Sukender <suk0001@…></author> <pubDate>Mon, 14 Jan 2013 14:16:37 GMT</pubDate> <title>cc set https://svn.boost.org/trac10/ticket/4581#comment:6 https://svn.boost.org/trac10/ticket/4581#comment:6 <ul> <li><strong>cc</strong> <span class="trac-author">suk0001@…</span> added </li> </ul> <p> Forgot to mention: the wchar issues seem to prevent iostream "filtering_stream_test" from running properly (See <a class="ext-link" href="http://lists.boost.org/Archives/boost/2013/01/200096.php"><span class="icon">​</span>what I posted on boost mailing list</a>). </p> Ticket