onetodo / cld2

Automatically exported from code.google.com/p/cld2
0 stars 0 forks source link

Support mmap-ing dynamic data on win32 #20

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
As described in issue 19, the current implementation of dynamic data won't work 
in windows because it relies on:
 * from sys/mman.h: mmap(), munmap()
 * from unistd.h: close()

These header files don't exist in vanilla win32 build environments, so 
compatibility is broken. The fix for close() is being implemented in issue 19, 
but the fix for mmap() is less straightforward.

Original issue reported on code.google.com by andrewha...@google.com on 13 Aug 2014 at 11:40

GoogleCodeExporter commented 9 years ago
For now, the answer is going to be that loading/unloading from a file is not 
going to work. Instead, Windows support will have to be limited to the "raw" 
modes:

Instead of CLD2::loadDataFromFile, use CLD2::loadDataFromRawAddress. It is up 
to the caller to figure out how to get that raw pointer to point to the correct 
thing, presumably using CreateFileMapping and associate functions.

Internally, these methods will be disabled for win32:
CLD2DynamicDataLoader::loadDataFile
CLD2DynamicDataLoader::unloadDataFile

Instead, use these if needed:
CLD2DynamicDataLoader::loadDataRaw
CLD2DynamicDataLoader::unloadDataRaw

Original comment by andrewha...@google.com on 13 Aug 2014 at 12:00

GoogleCodeExporter commented 9 years ago
We should really also have an MSVC project file for building CLD2 on Windows. 
Contributions welcome, as I have no experience with MSVC.

Original comment by andrewha...@google.com on 13 Aug 2014 at 12:09

GoogleCodeExporter commented 9 years ago
Windows support for data file disabled in r166. Use raw modes instead, as 
described above. This should keep windows compilers happy.

Original comment by andrewha...@google.com on 13 Aug 2014 at 12:38

GoogleCodeExporter commented 9 years ago
Clarifying subject, since raw mode SHOULD work on Windows. It's only file mode 
that is disabled.

Original comment by andrewha...@google.com on 13 Aug 2014 at 12:50

GoogleCodeExporter commented 9 years ago

Original comment by andrewha...@google.com on 27 Oct 2014 at 8:44