7.0.40

Aus BC-Wiki
Wechseln zu: Navigation, Suche

Zur Übersicht

  • XML parser: make low-level functions inline, in an attempt (unsuccessful, as far as I can tell) to boost performance
  • Some C++ files in client had execute permissions (??). Clear them.
  • a bunch of skin files had execute permissions (??). Clear them.
  • remove execute permissions from various files that shouldn't have them
  • client: fix bug where, when updating a project, we fail to request work even though higher-priority projects are marked as no-new-tasks or are otherwise ineligible for work fetch.
  • build fixes for OpenBSD, from rustyBSD
  • client: TIME_STATS fields go in <time_stats> part of state file
  • compile fix for FreeBSD
  • remove deprecated MAC address code
  • client: if a project has 64 or more ready-to-report tasks, report them. 64 is chosen a bit arbitrarily, but the idea is to limit the number of tasks reported per RPC, and to accelerate the reporting of small tasks.
  • client: if a project is anonymous platform, don't send list of alternate platforms in scheduler RPC.
  • client: fix uninitialized vars in CPU feature detection (from RustyBSD)
  • client: when reset a project, clear its scheduler URL list (force a reload of the master page)
  • allow config.xml to be a symlink
  • Mgr: Fix Windows hangs and simplify code for notices display:
    • Handle protocol-relative URLs which hung Manager on Windows. RSS feeds and web pages may use protocol-relative (scheme- relative) URLs, such as <img src="//sample.com/test.jpg"/> Since the html comes from a web server via http, the scheme is assumed to also be http. But we have cached the html in a local file, so it is no longer associated with the http protocol / scheme. Therefore all our URLs must explicity specify the http protocol.
    • The Manager would hang when trying to get data from web servers if there was no Internet connection. This happened on Windows only, not on Mac. (I don't have the hardware to test on Linux, but I suspect it is OK as Mac uses UNIX.) I fixed this by implementing asynchronous network I/O in CBOINCHtmlListBox on Windows.
    • Eliminate need for CBOINCVListBox class and greatly simplify CBOINCHtmlListBox class.
  • client: add "client app configuration" feature; see http://boinc.berkeley.edu/trac/wiki/ClientAppConfig This lets users do the following: 1) limit the number of concurrent jobs of a given app (e.g. for WCG apps that are I/O-intensive) 2) Specify the CPU and GPU usage parameters of GPU versions of a given app. Implementation notes:
    • max app concurrency is enforced in 2 places: 1) when building the initial job run list 2) when enforcing the final job run list. Both are needed to avoid possible starvation.
    • however, we don't enforce it during RR simulation. Doing so could cause erroneous shortfall and work fetch. This means, however, that work buffering will not work as expected if you're using max concurrency.
  • client: add the above to VS project
  • client: bug fixes for app config feature
  • client: add new files app_config.cpp,h to Xcode project.
  • client (Win) preallocate large files to avoid file fragmentation when you write to them incrementally (workaround for shoddy filesystem design)
  • lib: Win compile fix for boinc_allocate_file()
  • Mgr: Fix some rare issues on Windows (including a possible memory leak) when switching to a client on a different computer after trying to display notices without an Internet connection.
  • client: if <dont_check_file_sizes> is set, don't check file existence at startup
  • Mac installer: add missing pclose() (from RustyBSD)
  • OpenCL: Add definition of GPU_TYPE_INTEL to match definitions of GPU_TYPE_ATI and GPU_TYPE_NVIDIA.
  • OpenCL: First pass at adding support for Intel Ivy Bridge GPUs. The following files still need updating: ProjectInfoPage.cpp,.h, ProjectListCtrl.cpp,.h
  • lib: add size info to messages when realloc() fails in MFILE
  • MGR: Fix two potential security issues with browser.cpp where the query to the cookie database could have been abused. At present neither of the two parameters originate as user input so using it as an attack vector isn't very high. Prevent the functions from being exploited in the future in case the routines were ever used in a different way.
  • client: strcasestr doesn't exist on Windows.
  • client: strcasestr does exist on Windows in lib/str_replace.cpp, but I just needed to #include "str_replace.h". This is preferable because it handles INTEL as well as Intel and intel.
  • fix typo in GUI RPC
  • OpenCL: Add peak FLOPS computation for Intel Ivy Bridge GPUs.
  • Mac: remove deleted files from Xcode project. (Checked into 7.0.40 tag)