Commit Graph

245 Commits

Author SHA1 Message Date
Ykkrosh 266977bc78 Attempt to fix manifest problems in autobuild.
This was SVN commit r9607.
2011-06-09 23:16:27 +00:00
janwas 6feb143e61 OS X compile fix
This was SVN commit r9582.
2011-05-30 23:06:16 +00:00
janwas ef74ad7f7b OS X compile fix (hopefully): add definition for O_DIRECT
This was SVN commit r9581.
2011-05-30 21:49:33 +00:00
janwas 034881d30c sync with work. simplify wnuma, refactor+fix topology (bugs: APIC IDs array didn't correspond to OS processor number; couldn't handle noncontiguous APIC ID field values)
This was SVN commit r9580.
2011-05-30 13:00:20 +00:00
Ykkrosh ce647cf8e3 Add a manifest hack to fix building in VC2008+, when loading DLLs built in VC2005
This was SVN commit r9576.
2011-05-29 21:13:21 +00:00
janwas e3d87b0375 remove no longer necessary lowlevel wsock implementation (superseded by enet) since the delay load hook isn't compatible with a DLL packaging of enet.
-> cstr serialization uses lib/byte_order.h instead of htons; removed
hostname/IP from system_info (Philip agrees its utility is negligible)

This was SVN commit r9572.
2011-05-29 19:59:51 +00:00
janwas 34186dd017 refactor file interface. requires workspace update
- separate file_system_util into vfs functions (-> vfs/vfs_util) and
file_system (avoids ugly fs_util namespace prefix)
- get rid of non-portable O_BINARY_NP etc. flags
- use standard O_WRONLY etc. flags instead of LIO_WRITE; but avoid the
need for specifying O_CREAT|O_TRUNC
- only open files for aio when O_DIRECT is specified (which 0ad does
not) - avoids wasting time and security issues
- return file descriptor directly instead of via output param
- waio: safer FCB mechanism that avoids mixing descriptors between lowio
and aio

This was SVN commit r9550.
2011-05-25 10:39:13 +00:00
janwas 7600c3862b refactor gfx detection code (interface), allow exporting from DLL (required at work)
This was SVN commit r9546.
2011-05-24 14:17:47 +00:00
janwas f1a1f023df reinstate aligned_allocator.h (required at work)
further fixes to preserve the last error while building error messages
somewhat more accurate NUMA factor computation

This was SVN commit r9545.
2011-05-23 14:10:45 +00:00
Ykkrosh 1075e206f7 Fix some format string errors
This was SVN commit r9534.
2011-05-18 19:10:36 +00:00
janwas 0ea42d3185 avoid stomping on the last error while dumping stack
refs #849

This was SVN commit r9519.
2011-05-15 00:00:01 +00:00
janwas 963960fafa no longer warn when SetFileValidData fails, as it does on all FAT volumes (boo)
fixes #849

This was SVN commit r9511.
2011-05-14 10:37:42 +00:00
janwas 9b7cdef124 ensure WHRT debug messages are always displayed (in case of compatibility trouble)
refs #709

This was SVN commit r9485.
2011-05-08 09:14:21 +00:00
janwas 46e5db4dc4 fix build with ICC
This was SVN commit r9475.
2011-05-07 15:47:20 +00:00
janwas f608b44d1d fix self-test and map load on Windows (avoid mixing dir separators).
add more specific error codes (used at work)

This was SVN commit r9462.
2011-05-06 18:45:30 +00:00
Ykkrosh 1da3cdb498 Fix build errors
This was SVN commit r9453.
2011-05-05 20:24:22 +00:00
janwas 5c76bc12fa refactor status code definitions: allow modules to define an array of them (more convenient+efficient).
merge ERR::NO_SYS, NOT_IMPLEMENTED into NOT_SUPPORTED
renderer: remove unnecessary ogl_shader include

This was SVN commit r9447.
2011-05-05 13:03:34 +00:00
janwas fd561cb88b hotloading fix on Windows
refs #781

This was SVN commit r9446.
2011-05-05 10:50:47 +00:00
janwas a7152270f4 Path now goes to some trouble to prevent mixing / and \ slashes (causes trouble when hotloading, and some Windows APIs can't handle it, either)
WARNING: that means stuff like Path(nativeDataPath/"art/") is forbidden
and will raise errors on Windows when nativeDataPath contains \. always
use /"" to add a trailing slash. never embed "/" in OsPath component
strings (it's OK for VFS strings since they consistently use /).

wdir_watch, CmdLineArgs: avoid mixed separators
wutil: remove overzealous assertion (infinite recursion if an error
arose before we create a window)

refs #781

This was SVN commit r9424.
2011-05-04 12:16:51 +00:00
janwas 7523894760 ENSURE(0) -> DEBUG_WARN_ERR(ERR::LOGIC) (a bit smaller, and more descriptive)
This was SVN commit r9423.
2011-05-04 12:10:17 +00:00
Ykkrosh 9733affb05 Fix non-PCH build
This was SVN commit r9419.
2011-05-04 01:17:09 +00:00
Ykkrosh 178a700c16 Fix build
This was SVN commit r9412.
2011-05-03 15:58:25 +00:00
janwas cce3bebe0c fix error propagation/avoid SetLastError pollution
This was SVN commit r9411.
2011-05-03 13:46:35 +00:00
janwas cccd6849a7 cleanup (requires update-workspaces)
lib_errors.cpp: replace with status.cpp, adapt to needs at work
wutil: fix runtime warning reported via feedback box
config: merge CONFIG_PARANOIA and !CONFIG_FINAL into
CONFIG_ENABLE_CHECKS
add openmp, pointer_typedefs.h

This was SVN commit r9410.
2011-05-03 12:38:42 +00:00
Ykkrosh 791ecee26b Build fixes
This was SVN commit r9365.
2011-04-30 13:55:55 +00:00
janwas 5ca66fc757 cleanup: move ADTs into lib/adts (separate files). fix definition of ASSERT
This was SVN commit r9364.
2011-04-30 13:35:36 +00:00
janwas 0720025073 cleanup
reduce dependency on PCH. move KiB constants to alignment, ARRAY_SIZE to
code_annotation.h.
move glext_funcs.h to external_libraries/glext_funcs.h, move part of
ogl.h to external_libraries/opengl.h
remove unused saturating arithmetic functions

This was SVN commit r9363.
2011-04-30 13:22:46 +00:00
janwas 4663ac0fe7 split debug_assert into ENSURE and ASSERT as discussed in a previous meeting.
the old debug_assert always ran and tested the expression, which slows
down release builds. wrapping them in #ifndef NDEBUG is clumsy. the new
ASSERT behaves like assert and ENSURE like the old debug_assert. Let's
change any time-critical but not-super-important ENSURE to ASSERT to
speed up release builds. (already done in bits.h and unique_range.h)

This was SVN commit r9362.
2011-04-30 13:01:45 +00:00
janwas 6c915291cc cleanup (requires update-workspaces):
major refactor of wfilesystem - remove gotos and workaround for FAT file
times
replace more round_up of constants with Align<>
remove old unused allocators (STL aligned, matrix, some shared_ptr)
move allocator utils into separate headers.
remove lockfree, wterminal
avoid testing __cplusplus

This was SVN commit r9361.
2011-04-30 12:34:28 +00:00
janwas 9bdb54bc76 fix failure to preallocate disk space on Windows by always rounding up the file size regardless of the io::Parameters
This was SVN commit r9358.
2011-04-30 09:13:10 +00:00
janwas 2374caac3e major refactor of file/io and alignment code. requires update-workspaces
. completely rewrite waio - use IOCP, add several hardcore
optimizations. now outperforms the
  AS SSD and ATTO benchmarks when writing
. refactor file interface - use LIO_READ instead of 'r', allow access to
file descriptor.
. completely rewrite the IO wrapper. now much more simple, less CPU
overhead, adds
  support for pre-issue/post-completion hooks and preallocation.
  io::Run defaults to simple synchronous IO; use io::Parameters to get
asynchronous.
. add alignment.h with constants and Align() function template (more
efficient than
  round_up for compile-time constants)
. add UniqueRange - similar to C++0x unique_ptr (emulated for C++03),
plus a
  built-in size. avoids expensive thread-safe reference counting in
shared_ptr.

cleanup:
- move fat_time functions into archive_zip
- remove no longer needed io_align and block_cache
- reduce dependencies in sysdep/compiler (move parts to
code_annotation.h)
- move IOCP into separate file (reused by waio)

This was SVN commit r9350.
2011-04-29 19:10:34 +00:00
Ykkrosh 5a773d4ca0 Be robust to null proxy URL strings. Should fix #778.
This was SVN commit r9299.
2011-04-22 16:05:00 +00:00
Ykkrosh e1b9083c41 Fix probable OS X build error
This was SVN commit r9196.
2011-04-07 17:18:32 +00:00
janwas 99aa427ffa make use of SMBIOS information to detect CPU frequency and memory size
smbios fixes: also ignore max value (used by Dell BIOS to report invalid
MemoryDevice bit width); fix incorrect error check that caused 0 to be
returned on all but the first call; add implicit conversion operator to
allow using size without appending .value

This was SVN commit r9195.
2011-04-07 17:06:00 +00:00
janwas dcde67038f ICC compile fixes (VC's overload resolution is apparently quite different)
This was SVN commit r9169.
2011-04-05 17:45:47 +00:00
Ykkrosh 0ddf2b0f34 Fix build on VC2008
This was SVN commit r9157.
2011-04-03 21:41:17 +00:00
janwas 2c72e1f364 (requires update-workspaces)
add initial SMBIOS implementation for retrieving system information
wacpi -> wfirmware (now also used to retrieve SMBIOS table)

This was SVN commit r9144.
2011-04-03 15:38:48 +00:00
janwas 6026330fce updated version of Aken that includes support for MSR and static validation (-> .c instead of .cpp)
closes #754 (please re-open if not)

This was SVN commit r9137.
2011-04-01 15:06:52 +00:00
janwas d5b3201bfe noted while checking MSR prerequisites that the previous HasNehalem is inaccurate. PLATFORM_INFO is also supported by newer processors (e.g. Sandy Bridge), whereas UNCORE_* are tied to Nehalem and Westmere => split up HasNehalem into HasPlatformInfo and HasUncore. (the latter has been replaced by a "system agent" in newer designs)
refs #754

This was SVN commit r9136.
2011-03-31 21:30:42 +00:00
janwas c396997009 fixes from work: avoid potential 0-pointer dereference in freelist, also avoid branching in freelist functions via sentinel
wdll_main.h: avoid warning for DLLs using TLS
file_system_util.h: export functions

This was SVN commit r9128.
2011-03-28 12:28:29 +00:00
Ykkrosh 9193ba56f9 Build fixes and whatnot
This was SVN commit r9115.
2011-03-23 21:15:22 +00:00
janwas 1f7e8d7194 per discussion with Philip, remove STL_HASH_MAP etc. because they're ugly, rarely used and superseded by boost::unordered*
This was SVN commit r9111.
2011-03-23 16:56:27 +00:00
janwas 588bfa11bf remove unnecessary utf8 includes
This was SVN commit r9110.
2011-03-23 16:32:44 +00:00
janwas 0999ba0941 refactoring:
- simplify sys_get_executable_name interface - return OsPath directly,
rename to sys_ExecutablePathname
- add validation of path components in GetDirectoryEntries
- replace multiple calls to GetModuleFileNameW with
sys_ExecutablePathname
- lift nearly all MAX_PATH limitations (required at work)

This was SVN commit r9109.
2011-03-23 16:14:47 +00:00
janwas 64a02932e3 refactor headers: path_util -> path, native_path -> os_path, remove where unnecessary
This was SVN commit r9108.
2011-03-23 14:43:35 +00:00
janwas dcd192cb60 refactor path interface:
- use wrapper class instead of std::wstring (reduces mixing of
strings/paths; allows safe+easy join via operator/ and convenient
case-insensitive comparison via operator==, avoids NativePathFromString,
similar to boost::filesystem)
- NativePath -> OsPath
- add hash and To/FromJSVal for Path
- add TS_ASSERT_PATH_EQUALS
- replace _wfopen_s with sys_OpenFile
- remove obsolete SortFiles/Directories

This was SVN commit r9107.
2011-03-23 13:36:20 +00:00
Ykkrosh c4cd85bb98 Build fixes
This was SVN commit r9100.
2011-03-22 18:46:39 +00:00
Ykkrosh c0a105432e Use path types and conversions more consistently.
This was SVN commit r9094.
2011-03-21 22:59:00 +00:00
Ykkrosh 83271ec816 Fix build errors.
Fix VFS root directory failing IsDirectory, which breaks the search for
textures.xml.
Fix incompatible change to loose cache name determination.

This was SVN commit r9092.
2011-03-21 21:06:08 +00:00
janwas c3405e6f50 path improvements/fixes:
- replace more std::wstring with Native or VfsPath; wstring_from_utf8 ->
NativePathFromString
- replace sequences of Join(Path(), Basename+extension) with
ChangeExtension in wsdl, CacheLoader
- add Path::IsDirectory to replace .empty() / path_is_dir_sep(.back()).
also changed behavior to reflect the fact that "" is the VFS root
_directory_
- Path::Join now allows 2 identical path types (e.g. VfsPath) or one
char* literal (prevents inadvertently introducing non-safe characters).
to convert from wstring or wchar_t, use an explicit ctor (e.g.
VfsPath(wchar_t_string))

This was SVN commit r9091.
2011-03-21 19:54:08 +00:00