Re[2]: [web-devel] FilePath in WAI

Hello Vagif, Saturday, June 16, 2012, 2:00:14 AM, you wrote: 1. Currently, filenames are stored as String requiring serializaton to UTF-16 on Windows and (usually) to UTF-8 on Unixes. With Filename=ByteString it will be `id` on Unixes and utf-to-utf conversion on Windows. Actually, it will became much faster on BOTH platforms 2. System calls usually have such large overhead than even conversion from String doesn't have any srious impact on performance. For example, i can open about 10k files/sec and find about 100k files/sec 3. The real difference will be, though, in the operations involving filenames but not requiring system calls. For example, file caching 4. We don't need only to store filenames, but to perform various operations on them. So it's probably better to store filenames in efficient and easy to operation way, leaving all conversions to syscall-shells. since from the user perspective filenames are just strings, the String or Text type looks like the best fit 5. Making its own file manipulation library for the needs of web servers looks like too expensive solution. If we really need this faster library, it may be proposed as general purpose Haskell library 6. Ideally, we should have Unix/Windows/...-specific libraries dealing with files using native filename representation and higher-level universal library, hiding OS differences and in particular converting native filenames from/to String and Text filename representation
Considering that we are talking about the web server, it would be safe to assume that most people would not run it on windows for production use.
So i say WAI should switch to ByteString, and let the windows users be penalized just a little bit. You can't please everyone.
On Friday, June 15, 2012 02:47:15 PM Johan Tibell wrote:
On Fri, Jun 15, 2012 at 2:41 PM, Greg Weber
wrote: The ticket would be to switch the standard libraries to use system-filepath, which probably requires a mailing list discussion somewhere, a lot of boring changes of code, and a more inconvenient API for end users. I will wait for Text to become standardized first
:)
The FilePath issue has been discussed at length before. The problem is that different OS:es define file paths to be different things (i.e. Unicode or bytes.) The FilePath type somehow has to bridge that, that will be difficult. My main grip with FilePath right now is that it's not an abstract type.
-- Johan
_______________________________________________ web-devel mailing list web-devel@haskell.org http://www.haskell.org/mailman/listinfo/web-devel
_______________________________________________ web-devel mailing list web-devel@haskell.org http://www.haskell.org/mailman/listinfo/web-devel
-- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com
participants (1)
-
Bulat Ziganshin