David  Jan 2 2009
    - added a script to make profile.has_picture consistent
        with the images actually on disk

    html/ops/
       repair_profile_pictures.php 

David  Jan 2 2009
    - client: more work-fetch stuff.
        No more per-project shortfall.
        It's getting pretty close.

    client/
        client_state.cpp
        client_types.cpp,h
        cs_scheduler.cpp
        rr_sim.cpp
        scheduler_op.cpp
        work_fetch.cpp,h
    lib/
        coproc.cpp,h

Janus   Jan 6 2009
    - Various translation fixes
    - Added Danish web interface translation
    - Added some Danish translation texts to the client translation file    
    - Added Finnish web interface translation (contributed by ORE)

    html/
    inc/
        user.inc
    user/
        info.php
    languages/translations
        da.po (fully rewritten)
        fi.po (new)
    locales/da
    BOINC-Manager.po

Charlie Jan 6 2009
    - client: preserve ownership when copying files to slot directory. Fixes
        a problem with Enigma@home which uses the <copy_file/> tag.

    lib/
        filesys.cpp

Rom    7 Jan 2009
    - Fix build environment so that it can build the client again
      (From Nicols Alvarez)
      
    /
        configure.ac
        Makefile.am
    sea/
        make-tar.sh
        make-tar_debug.sh

David  7 Jan 2009
    - get_project_config: don't send error text if no terms_of_use.txt
    - client: compute and store project work-fetch attributes
        fixes #820

    client/
        client_state.h
        work_fetch.h,cpp
    html/user/
        get_project_config.php

Charlie Jan 6 2009
    - client: fix compiler warnings (formats didn't match data).

    client/
        work_fetch.cpp

David  9 Jan 2009
    - client: connected_frac -1 is OK; fixes #821

    client/
        time_stats.cpp

David  9 Jan 2009
    - scheduler: add support for resource-specific scheduler requests:
        - parse new request message elements
            (CPU and coproc requested seconds and instances)
        - decide how many jobs to send based on these params
        - select app version based on these params
            (may send both CPU and CUDA app versions for the same app!)

    lib/
        coproc.cpp
    sched/
        handle_request.cpp
        main.cpp,h
        sched_plan.cpp
        sched_send.cpp
        server_types.cpp,h

David  9 Jan 2009
    - client: debugging CUDA-related stuff
    - client: if reset a project, clear its overall and per-resource backoffs

    client/
        client_state.cpp
        client_types.cpp
        cs_scheduler.cpp
        rr_sim.cpp
        scheduler_op.cpp
        sim.h
        work_fetch.cpp,h
    lib/
        coproc.cpp

Charlie Jan 10 2009
    - Mac: Fix build scripts for new locale source directory layout.
    
    mac_installer/
        release_GridRepublic.sh
        release_boinc.sh

David  Jan 10 2009
    - client: work_req_seconds is CPU req, not max(CPU req, CUDA req).
        In order to work with the 6.7 client,
        projects with both CUDA and CPU jobs must use the newest scheduler code.

    client/
        work_fetch.cpp

David  Jan 11 2009
    - scheduler: if a Windows host has a GPU slower than 60 GFLOPS,
        don't send it CUDA jobs (they may cause BSOD);
        send user a message to this effect

    sched/
        sched_plan.cpp
        sched_send.cpp
        server_types.h

David  Jan 12 2009
    - lib: check return values of RSA_*() functions.
        Also fix a memory leak, missing RSA_free().
        Fixes #823.

    lib/
        crypt.cpp
        error_numbers.h
        str_util.cpp

Rom    12 Jan 2009
    - WINSETUP: Update custom actions in case the goofy setup
        problems are related to old custom actions.  I don't
        really think this is it, but i'm running out of ideas.
        
    win_build/installerv2/redist/Windows/src/boinccas/
        boinccas.rc
    win_build/installerv2/redist/Windows/Win32/
        boinccas.dll
        boinccas95.dll
    win_build/installerv2/redist/Windows/x64/
        boinccas.dll
        boinccas95.dll

David  12 Jan 2009
    - web: add Eric's script for forum RSS

    html/user/
        forum_rss.php

David  12 Jan 2009
    - scheduler, file upload handler: fix server runtime message in FCGI case

    sched/
        file_upload_handler.cpp
        handle_request.cpp
        main.cpp
        sched_util.cpp,h
        server_types.cpp

David  12 Jan 2009
    - scheduler: initialize COPROC fields

    lib/
        coproc.cpp

David  12 Jan 2009
    - scheduler: if we're not sending work because of the user's "no GPUs" pref,
        tell them so.
    - scheduler: fix bug that caused no CUDA jobs to be sent

    lib/
        coproc.cpp,h
        common_defs.h
    sched/
        handle_request.cpp
        sched_send.cpp
        sched_plan.cpp
        server_types.h

David  12 Jan 2009
    - scheduler: bug fixes

    sched/
        handle_request.cpp
        sched_send.cpp

David  12 Jan 2009
    - scheduler: bug fixes

    sched/
        sched_plan.cpp

David  13 Jan 2009
    - GUI RPC: add the following items to PROJECT_CONFIG
        (corresponding to the get_project_config.php web RPC):
        - platforms: list of platforms supported by the project
        - sched_stopped: scheduler disabled
        - web_stopped: DB-driven web features disabled
        - min_client_version
    - GUI RPC: add the following items to CC_STATE:
        - platforms: list of platforms supported by the client
            (this replaces the unused <platform_name>)
    - GUI RPC: add the following items to PROJECT_LIST_ENTRY
        (entry in the "all projects" list):
        - platforms: list of platforms supported by the project
    - GUI RPC: move APP_VERSION pointer from WORKUNIT to RESULT;
        include plan class in APP_VERSION lookup.
        This completes the change of March 2008,
        and allows the Manager to work correctly when a project
        has two different app versions of the same (app, platform, version)
        running on a client at once (e.g., a CPU and a GPU app)
    - get_project_config.php: remove logic that checks client version.
        This page is accessed by PHP, not just by client
    - web: add link to forum page to get forum as RSS

    client/
        cs_statefile.cpp
    clientgui/
        DlgItemProperties.cpp
        MainDocument.cpp
        ViewWork.cpp
        sg_ViewTabPage.cpp
    html/user/
        get_project_config.php
        forum_rss.php
        forum_forum.php
        img/feed_logo.png (new)
    lib/
        gui_rpc_client_ops.cpp
        gui_rpc_client.h

David  13 Jan 2009
    - client: GPU bug fix; compile warning fixes

    client/
        client_types.cpp
    clientgui/
        BOINCTaskBar.cpp
    lib/
        filesys.cpp
        parse.cpp

David  13 Jan 2009
    - GUI RPC: finish the changed started above;
        update the way that app versions are identified.

    Old: WORKUNIT contains version_num
        RESULT contains app_version_num (but only if running)

    New: Keep old fields so new client works with old manager.
        RESULT contains version_num, plan_class
        Manager: if RESULT doesn't have version/plan_class
        (because talking to old client)
        look up app version based on WU version num.

    clientgui/
        BOINCTaskBar.cpp
        sg_ViewTabPage.cpp
        MainDocument.cpp
        DlgItemProperties.cpp
        ViewWork.cpp
    lib/
        gui_rpc_client_ops.cpp
        gui_rpc_client.h
        
Eric   13 Jan 2009
    - STILL WORK TO BE DONE TO GET locale STUFF INSTALLED PROPERLY!!!
    - Update to libtool 1.5.24
    - build environment:  Major automake changes that I've been warning about
      for some time.
    - Now uses libtool to build libraries.
    - Builds separate boinc_fcgi and sched_fcgi libraries for use with 
      FCGI server components.
    - New macro "BOINC_CHECK_LIB_WITH" that executes a "AC_CHECK_LIB" on
      a library only if --with-libname[=DIR] is specified on the configure
      command line.  This is to allow inclusion of libraries when the 
      ssl, gtk, wxWidgets, or other configuration is incorrect for static
      libraries.
    - Added a lot of "--with-*" for some libraries that might be required for
      static builds.
    - The sea directory has been moved to packages/generic.  Changes to sea
      and the associated scripts might be required to better make use of the
      staging mechanism and shared libraries.
    - Fixed includes of boinc_fcgi.h in many files.
    - Fixed places where FCGI_FILE needs to be used implicitly.
    - Fixed missing define of _SC_PAGESIZE on hosts that define only
      _SC_PAGE_SIZE.
    - Moved build of boinc_cmd (and source file) from lib to client
    

  ltmain.sh
  config.guess
  config.sub
  Makefile.incl
  m4/
      sah_check_lib.m4
      check_ssl.m4
      boinc_gtk.m4 (new)
      boinc_check_lib_with.m4 (new)
      libcurl.m4
      boinc_wxwidgets.m4
  sea/ (moved to packages/generic/sea)
  packages/ (new)
      generic/ (new)
          sea/ (new)
        Makefile.am
  client/
      Makefile.am
      hostinfo_unix.cpp
  sched/
      edf_sim.cpp
      sched_shmem.h
      sched_msgs.h
      sched_msgs.cpp
      sched_send.cpp
      handle_resuest.cpp
      file_upload_handler.cpp
      main.cpp
      sched_assign.cpp
      Makefile.am
  lib/
      boinc_cmd.cpp (moved to client)
      diagnostics.cpp
      prefs.cpp
      msg_log.h
      cert_sig.cpp
      Makefile.am
  zip/
      Makefile.am
  samples/
      example_app/
          Makefile
  api/
      Makefile.am
  clientgui/
      Makefile.am
  tools/
      backend_lib.cpp
      Makefile.am
  doc/
      manpages/
          Makefile.am

David  13 Jan 2009
    - client/manager fixes

    client/
        client_types.cpp
    lib/
        gui_rpc_client_ops.cpp
        gui_rpc_client.h

David  14 Jan 2009
    - client: fix bug that caused estimated time to completion to increase
        while processing suspended
        Fixes #825

    client/
        app_control.cpp

David  14 Jan 2009
    - client: clamp long term debts tp +- 1 week
    - client: fix CUDA debt calculation
    - client: don't accumulate debt if project->dont_request_more_work
    - client: improves messages

    client/
        rr_sim.cpp

Rom    15 Jan 2009
    - WINSETUP: Fix the problem introduced where Enable Application
        execution wasn't working.
        
    win_build/installerv2/
        BOINC.ism
        BOINCx64.ism

Rom    15 Jan 2009
    - MGR: Don't convert strings to ANSI juts to have to reconvert them
        back to Unicode.  Fix several help link issues.
        Fixes #826
        
    clientgui/
        AdvancedFrame.cpp
        DlgAdvPreferences.cpp
        sg_BoincSimpleGUI.cpp
        sg_DlgMessages.cpp
        sg_DlgPreferences.cpp
        sg_ProjectsComponent.cpp

David  15 Jan 2009
    - scheduler: improve message formatting; add <debug_locality> flag
        for locality scheduling messages

    lib/
        msg_log.cpp
    sched/
        *.cpp

David  15 Jan 2009
    - GUI RPC: add CUDA info to PROJECT struct
    - manager: display CUDA info in project properties page
    - manager: use struct assignment instead of copy() function

    client/
        boinc_cmd.cpp
    clientgui/
        AsyncRPC.cpp
        DlgItemProperties.cpp
    lib/
        gui_rpc_client_ops.cpp
        gui_rpc_client.h

David  15 Jan 2009
    - scheduler: remove clause in app_plan() that withholds jobs from slow GPUs.
        The SETI@home/CUDA app has been fixed so that it works on all GPUs.

    sched/
        sched_plan.cpp

Eric   15 Jan 2009
    - build:  Made static linkage of BOINC libraries the default for client,
      manager, and server components

    configure.ac
    tools/
        Makefile.am
    clientgui/
        Makefile.am
    client/
        Makefile.am
    samples/
        example_app/
	    Makefile

Charlie Jan 15 2009
    - client: boinc_copy ownership fix of 1/6/09 didn't work because it used 
        system(cp ...) call, which invokes a shell, and POSIX specifies that 
        shells run from an application use the real UID and GID not the 
        effective UID and GID.  Under Mac Sandbox security, we need to use 
        the effective UID and GID.  Changed boinc_copy to copy file directly.
    - MGR: On Mac, fix problems showing Manager window when it was minimized 
        to Dock, especially if window was closed using Dock menu.
    - Mac: Fix XCode project for boinc_cmd.cpp moved to client/ from lib/.
    
    client/
        app_start.cpp
    clientgui/
        BOINCBaseFrame.cpp
        BOINCGUIApp.h
        BOINCTaskBar.cpp
    lib/
        filesys.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  16 Jan 2009
    - client: remove limits on LTD.

    client/
        work_fetch.cpp

Rom    19 Jan 2009
    - Tag for 6.6.2 release, all platforms
      boinc_core_release_6_6_2

    /
        configure.ac
        version.h

Charlie Jan 20 2009
    - Mac client: fix bug in build script so that curl-7.19.2 actually 
        does build with c-ares 1.6.0.  Fixes #830.  (Checked into 
        boinc_core_release_6_6_2 tag and boinc_core_release_6_6a branch.)
    
     mac_build/
        buildcurl.sh

David  20 Jan 2009
	- client: fix messages

	client/
		rr_sim.cpp
		work_fetch.cpp

David  21 Jan 2009
	- client: fetch work from non-CPU-intensive projects

	client/
		work_fetch.cpp,h

David  21 Jan 2009
    - client: compile fix, remove spurious message

	client/
		work_fetch.cpp,h

Rom    21 Jan 2009
    - MGR: Make sure the UI thread doesn't call a GUI RPC
        that uses the SET_LOCALE class.
        
    clientgui/
        BOINCClientManager.cpp

Charlie Jan 22 2009
    - MGR: fix compile error.
        
    clientgui/
        BOINCClientManager.cpp

David  22 Jan 2009
    - client: if an app has avg_ncpus < 1, run it at above-idle priority
        even if it doesn't use a coprocessor.
    - scheduler: added an "nci" (non CPU intensive) plan class
        to sched_plan.cpp.  It declares the use of 1% of a CPU.

    The above two changes are intended to allow the QCN app to
    run at above_idle priority, which it needs in order to do 500Hz polling.

    - API: the std::string version of boinc_resolve_filename()
        acts the same as the char[] version.

    client/
        app.cpp
        app_start.cpp
    lib/
        app_ipc.cpp
        gui_rpc_client.cpp
    sched/
        sched_plan.cpp

Charlie Jan 22 2009
    - client sandbox: add details in switcher_exec "execv failed" message.
    - MGR: Work around bug in generic list control GetSelectedItemCount() 
        which caused incorrect update of buttons in Projects tab after 
        detching from a project; remove redundant UpdateSelection() call.
        
    client/
        sandbox.cpp
    clientgui/
        BOINCBaseView.cpp
        BOINCListCtrl.cpp,.h

Charlie Jan 23 2009
    - MGR: Remove override of GetSelectedItemCount() introduced yesterday;  
        instead, call DeleteItem() rather than SetItemCount() when number of 
        rows has been reduced, to allow virtual ListCtrl adjust its list of 
        selected rows (and thus keep its count in sync with reality.)
        
    clientgui/
        BOINCBaseView.cpp
        BOINCListCtrl.cpp,.h

Rom    26 Jan 2009
    - MGR: Don't use wxT() to describe parameters passed to GUI RPCs.
    
    clientgui/
        BOINCClientManager.cpp

Charlie Jan 26 2009
    - MGR: In CBOINCClientManager::StartupBOINCCore() allow time for Client
        to start up, to avoid repeated attempts which put spurious messages
        "Another instance Another instance of BOINC is running" in 
        stderrdae.txt.
        
    clientgui/
        BOINCClientManager.cpp

David  22 Jan 2009
    - client: simplify message describing scheduler request;
        to get work request details, use <sched_op_debug>

    client/
        scheduler_op.cpp

David  22 Jan 2009
    - client: when preempting a process, remove it from memory if:
        1) it uses a coprocessor
        2) it has checkpointed since the client started
        3) it's being preempted because of a user action
            (suspend job, project, or all processing)
            or user preference (time of day, computer in use)
    - scheduler: if shared mem seg doesn't exist,
        report it and don't crash

    client/
        app.h
        app_start.cpp
        app_control.cpp
        cpu_sched.cpp
    sched/
        main.cpp

David  23 Jan 2009
	- client: clear debts when reset project
	- client: respect work-fetch backoff for non-CPU-intensive projects
	- client: for non-CPU-intensive project, fetch new job
		if no currently running jobs
	- client: skip non-CPU-intensive projects in debt calculations
	- manager: show resource backoff times correctly

	client/
		app_control.cpp
		client_state.cpp
		client_types.cpp,h
		work_fetch.cpp,h
	clientgui/
		DlgItemProperties.cpp

David  26 Jan 2009
    - client: if we're doing an RPC (for whatever reason)
        to a non-CPU-intensive project without a job, ask for one.

    client/
        work_fetch.cpp

David  27 Jan 2009
    - client: change the LTD policy so that
        1) net adjustment for eligible projects is zero;
        2) max LTD is zero

    client/
        work_fetch.cpp

Rom    27 Jan 2009
    - Tag for 6.6.3 release, all platforms
      boinc_core_release_6_6_3

    /
        configure.ac
        version.h

Charlie Jan 29 2009
    - MGR: call UpdateSelection() from OnListRender() instead of from 
        RestoreSelections().  Fixes #837.

    clientgui/
        BOINCBaseView.cpp

Charlie Jan 30 2009
    - MGR: Suppress Skin Manager error messages by default; enable them 
        only if the Manager is launched from the command line with an 
        argument -c or --checkskins.
        
    clientgui/
        BOINCGUIApp.cpp, .h
        SkinManager.cpp, .h

David  27 Jan 2009
    - client: if we're making an RPC to a project because of user request,
        clear the resource backoff times so that we potentially
        can ask the project for work.

    client/
        cs_scheduler.cpp
        work_fetch.cpp

David  27 Jan 2009
    - lib: comment out perror()s in connection code.

    lib/
        gui_rpc_client.cpp

David  27 Jan 2009
    - client: remove the "deadlines_missed" and "overworked"
        clauses from RSC_WORK_FETCH::choose_project()

    client/
        work_fetch.cpp,h

David  27 Jan 2009
    - client: restore notion of overworked;
        if a project is overworked for a resource R,
        don't fetch work for R unless there are idle instances

    client/
        work_fetch.cpp,h

David  28 Jan 2009
    - GUI RPC: the "get all projects" RPC now also returns account managers

    lib/
        gui_rpc_client_ops.cpp
        gui_rpc_client.h

Charlie Jan 28 2009
    - GUI RPC: Fix compiler warning (missing return value).

    lib/
        gui_rpc_client_ops.cpp

David  29 Jan 2009
	- client: if user requests RPC, do it even if project is backed off
	- manager: show backoff interval correctly

	client/
		cs_scheduler.cpp
		work_fetch.cpp
	clientgui/
		DlgItemProperties.cpp

David  29 Jan 2009
	- client: update LTD correctly

	client/
		work_fetch.cpp

David  30 Jan 2009
    - Work fetch / scheduler:
        There are two mechanisms to prevent the scheduler from
        sending jobs that won't finish by their deadline.
        Simple mechanism:
            The client sends the interval x for which CPUs are projected
            to be saturated.
            Given a job with estimated duration y,
            the scheduler doesn't send it if x + y exceeds the delay bound.
            If it does send it, x is incremented by y.
        Complex mechanism:
            Client sends workload description.
            Scheduler does EDF simulation, sees if deadlines are missed.
            The only project using this AFAIK is BOINC alpha test.
        Neither of these mechanisms takes coprocessors into account,
        and as a result jobs could be sent that are doomed to
        miss their deadline.
        This checkin adds coprocessor awareness to the Simple mechanism.

        Changes:
        Client:
            compute estimated delay (i.e. time until non-saturation)
            for coprocessors as well as CPU.
            Send them in scheduler request as part of coproc descriptor.
    - client: fixed bug that computed CPU estimated delay incorrectly
    - client: the work request (req_secs) for a resource is the min
        of the project's share and the shortfall.

    client/
        cs_scheduler.cpp
        rr_sim.cpp
        work_fetch.cpp,h
    lib/
        coproc.cpp,h

David  30 Jan 2009
    - client: computation of # idle CUDA instances was wrong

    client/
        rr_sim.cpp

David  30 Jan 2009
	- client: tweak work fetch messages
    - client: buffer 2000 messages instead of 1000

    client/
        client_msgs.cpp
        work_fetch.cpp
    lib/
        coproc.cpp

David  30 Jan 2009
    - client: work fetch fixes

    client/
        work_fetch.cpp
        scheduler_op.cpp

David  31 Jan 2009
    - client: there was a problem with how the round simulator
        worked in the presence of coprocessors.
        The simulator maintained per-project queues of pending jobs.
        When a job finished (in the simulation) it would get
        one or more jobs from that project's pending queue.

        The problem: this could cause "holes" in the scheduling of GPUs,
        and produce an erroneous nonzero shortfall for GPUs,
        leading to infinite work fetch.

        The solution: maintain a separate (per-resource, not per--project)
        queue of pending coprocessor jobs.
        When a coprocessor job finishes,
        start pending jobs from the queue for that resource.

        Another change: the simulator did strict reservation of coprocessors.
        If there are 2 instances of CUDA,
        and a 1-instance job is running in the simulation,
        it wouldn't start an additional 2-instance job.
        This also can cause erroneous nonzero shortfalls.

        So instead, schedule coprocessors like CPUs, i.e. saturate them.
        This can cause distorted completion time estimates,
        but it's better than infinite work fetch.

    client/
        client_types.cpp,h
        rr_sim.cpp,h
        work_fetch.cpp,h

David  1 Feb 2009
    - client: code cleanup

    client/
        rr_sim.cpp,h
        work_fetch.cpp,h

David  2 Feb 2009
    - client: code cleanup

    client/
        rr_sim.cpp,h
        work_fetch.cpp,h

Rom    2 Feb 2009
    - Tag for 6.6.4 release, all platforms
      boinc_core_release_6_6_4

    /
        configure.ac
        version.h

David  3 Feb 2009
    - client: fix bug that caused infinite sched RPCs if project down

    client/
        cs_scheduler.cpp
        scheduler_op.cpp

Rom    Jan 29 2009
    - MGR: Save and Restore the last email address/user id used to attach
        to a project or account manager
    
    clientgui/
        AccountInfoPage.cpp

Rom    29 Jan 2009
    - MGR: Add a virtual list box to display available account managers.
    
    clientgui/
        AccountManagerInfoPage.cpp, .h
        AccountManagerProcessingPage.cpp
        AccountManagerPropertiesPage.cpp
        ProjectInfoPage.cpp, .h
        WizardAccountManager.cpp
    lib/
        gui_rpc_client_ops.cpp

Rom    29 Jan 2009
    - MGR: Filter project list so that it shows only projects supported
        by the core client.
        
    clientgui/
        ProjectInfoPage.cpp, .h

David  2 Feb 2009
    - Manager: change terms for STD, LTD
    - web: change script that locks old threads to exempt team forums

    clientgui/
        DlgItemProperties.cpp
    html/ops/
        autolock.php

Rom    5 Feb 2008
    - MGR: Display all projects in the project list but disable the text control
        is the project doesn't list a supported platform.  If the user clicks
        on it display a message box stating that once attached the user may not
        get any work.
        
    clientgui/
        AccountManagerInfoPage.cpp
        ProjectInfoPage.cpp, .h
        ProjectListCtrl.cpp, .h

Rom    5 Feb 2009
    - MGR: Back out David's change which broke clipboard functionality
        on Linux.  Take care of the real performance problem with
        copying 20000+ records to the clipboard in a Debug build
        by pre-allocating the buffer.
        
    clientgui/
        ViewMessages.cpp, .h

David  5 Feb 2009
    - client: redefine "overworked" as
        debt < -1.5 * work_buf * cpu_sched_period
    - web: on team page, link to cross-project team stats sites

    api/
        graphics2_win.cpp
    client/
        work_fetch.cpp
    html/
        inc/
            stats_sites.inc
            team.inc
        user/
            team_display.php

Rom    5 Feb 2009
    - MGR: On newer versions of the wxWidget framework the project list
        wasn't being properly sized, so create it with a fixed size.
        
    clientgui/
        ProjectListCtrl.cpp

David  5 Feb 2009
    - client: when accounting job elapsed time,
        ignore intervals longer than 10 secs;
        that could only happen if the client or host was suspended/hibernated.
    - client: in adjust_debts(), ignore intervals longer than
        2*work fetch period, not 2*CPU sched period.
        adjust_debts() is called from work fetch.

    client/
        app_control.cpp
        client_state.h
        cpu_sched.cpp
        cs_scheduler.cpp
        work_fetch.cpp

David  5 Feb 2009
    - client: if time intervals for debt adjustment or job elapsed time
        are negative, ignore (must be clock reset)

    client/
        app_control.cpp
        cpu_sched.cpp

David  5 Feb 2009
    - client: it the state file or an RPC reply has an app version
        using a coprocessor we don't know about, ignore it
        (and all results using that app_version will be flushed).
        This deals with the situation where we have some GPU jobs,
        but the GPU card is removed (previously this resulted in a crash).
        This requires some code shuffling so that we check for coprocessors
        before reading state file.

    client/
        client_types.cpp,h
        client_state.cpp
        cs_scheduler.cpp
        cs_statefile.cpp

Rom    7 Feb 2009
    - MGR: fix build break for GCC based compilers.
    
    clientgui/
        ProjectInfoPage.cpp

Rom    9 Feb 2009
    - Tag for 6.6.5 release, all platforms
      boinc_core_release_6_6_5

    /
        configure.ac
        version.h

David  9 Feb 2009
    - client: all scheduler RPCs except user request are subject to backoff.
    - client: if a project-requested RPC doesn't return work,
        don't do resource backoff.
    - client: if a user-requested scheduler RPC errors out, clear the request

    client/
        cs_scheduler.cpp
        scheduler_op.cpp
        work_fetch.cpp

David  10 Feb 2009
    - client: add SCHEDULER_OP::rpc_failed();
        this gets called when the op fails, either at initialization or later on;
        it clears the project's sched_rpc_pending flag if needed.
        This fixes a bug that caused user-requested RPCs to retry every 10 seconds
        when the network is down.
    - client: if debt-adjust period is too long, reset accounting.
        Otherwise we'll get this infinitely.


    client/
        cpu_sched.cpp
        file_xfer.cpp
        gui_http.cpp
        http_curl.cpp,h
        scheduler_op.cpp,h

David  10 Feb 2009
    - client: show proxy info correctly on startup
    - client: fix minor bug that produced spurious
        adjust debt interval too long messages when zero projects

    client/
        client_state.cpp
        cpu_sched.cpp
        cs_scheduler.cpp

David  11 Feb 2009
    - client: change the formula for debt update
        so that largest debt among eligible projects tends towards zero
    - client: change definition of "overworked"; debt must be < 1 day

    client/
        work_fetch.cpp

David  11 Feb 2009
    - client: change garbage collection so that an app version
        is deleted only if there's another version *of the same plan class*
        with a higher version number

    client/
        client_state.cpp

David  11 Feb 2009
    - client and API: eliminate dynamically-allocated parts of GLOBAL_PREFS.
        This fixes a double-free bug in the API.

    lib/
        prefs.cpp,h

David  11 Feb 2009
    - boinc_zip: put null arg at end of argv.
        Fixes crashing bug.
        From Michael Tyka.

    zip/
        boinc_zip.cpp
        unzip/
            unzip.c

Rom    11 Feb 2009
    - MGR: Check to see if the app version pointer is legit before attempting
        to use it.
        
    clientgui/
        ViewWork.cpp

David  11 Feb 2009
    - lib: implement APP_INIT_DATA::copy() with assignments instead of
        memcpy().  This protects against any future double-free bugs.

    lib/
        app_ipc.h,cpp

Rom    11 Feb 2009
    - MGR: Remove remaining UI thread calls to setlocale which could
        confuse the parsing system or vise versa.
        
    clientgui/
        AdvancedFrame.cpp
        DlgItemProperties.cpp
        ViewWork.cpp

David  11 Feb 2009
    - client, API: populate APP_INIT_DATA::hostid.
        Remove userid and teamid fields, since the client doesn't know these.

    client/
        app_start.cpp
    lib/
        app_ipc.cpp,h

David  12 Feb 2009
    - client: debt_eligible() was returning false if the backoff was max.
        This can lead to a situation where a project never gets work.
        Remove that clause.

    client/
        work_fetch.cpp

David  12 Feb 2009
    - client, web: add preference for not using GPU while computer busy

    client/
        cpu_sched.cpp
    html/inc/
        prefs.inc
    lib/
        prefs.cpp,h

David  12 Feb 2009
    - client: bug fix for GPU pref

    client/
        cpu_sched.cpp
        sim.h
    lib/
        prefs.cpp

Rom    12 Feb 2009
    - Tag for 6.6.6 release, all platforms
      boinc_core_release_6_6_6

    /
        configure.ac
        version.h

David  13 Feb 2009
    - GUI RPC: "get prefs" RPC was messed up by yesterdays's checkin;
        also, change all bools to <foo>0|1</foo> rather than <foo/>

    lib/
        prefs.cpp

David  13 Feb 2009
    - Manager: add GPU preference to advanced prefs dialog

    clientgui/
        DlgAdvPreferences.cpp
        DlgAdvPreferencesBase.cpp,h

Rom    13 Feb 2009
    - Tag for 6.6.7 release, all platforms
      boinc_core_release_6_6_7

    /
        configure.ac
        version.h

David  13 Feb 2009
    - client: fix bug where master fetch failure doesn't clear request flag,
        leading to infinite retry without backoff

    client/
        scheduler_op.cpp,h

David  13 Feb 2009
    - client: fix bug in time-of-day limit prefs (both CPU and network)

    lib/
        prefs.cpp,h

David  13 Feb 2009
    - GUI RPC: add master_url and local_revision to PROJECT_CONFIG struct.
        The former will allow the Manager to verify project URLs

    lib/
        gui_rpc_client_ops.cpp
        gui_rpc_client.h

Rom    16 Feb 2009
    - WINBUILD: Remove ReleaseSigned build depends.
    - WINBUILD: Add NVAPI to the list of static libraries to include during
        the build process.  Driver version detection.
        
    /
        <Various Files>

David  16 Feb 2009
    - client: detect NVIDIA driver version number, show it on startup,
        and include it with CUDA coprocessor descriptor in request msgs

    lib/
        coproc.cpp,h
    win_build/
        libboinc.vcproj

Charlie 16 Feb 2009
    - client: fix compile break on Mac.

    lib/
        coproc.cpp

David  16 Feb 2009
    - client: add a debug flag <dcf_debug> for seeing changes in DCF

    client/
        work_fetch.cpp
        log_flags.cpp,h
        cpu_sched.cpp

David  17 Feb 2009
    - client: don't ignore jobs with fraction_done=1 (but still running)
        in RR simulation; we may need to mark them as deadline miss.

    client/
        rr_sim.cpp

Rom    17 Feb 2009
    - Tag for 6.6.8 release, all platforms
      boinc_core_release_6_6_8

    /
        configure.ac
        version.h

David  18 Feb 2009
    - client: if "no more work" checked, don't request more work (duh!)

    client/
        work_fetch.cpp

Rom    17 Feb 2009
    - Tag for 6.6.9 release, all platforms
      boinc_core_release_6_6_9

    /
        configure.ac
        version.h

David  18 Feb 2009
    - client: adjust debts at least every minute.
        This fixes a bug that can cause debts to NEVER get updated.
    - client: added "abort_jobs_on_exit" feature
        (available by --abort_jobs_on_exit cmdline
        or <abort_jobs_on_exit> in cc_config.xml).
        If set, when the client is exited by user request
        (this includes signals on Unix)
        it marks all pending jobs as aborted,
        and does a scheduler RPC to all projects with jobs.
        When these are completed the client exits.
        This is useful when BOINC is being used on grids
        where it is wiped clean after each run.

    client/
        client_state.cpp,h
        cpu_sched.cpp
        cs_cmdline.cpp
        cs_prefs.cpp
        cs_scheduler.cpp
        log_flags.cpp
        main.cpp
        work_fetch.cpp
    lib/
        error_numbers.h

David  19 Feb 2009
    - client: add more info to <work_fetch_debug> messages

    client/
        work_fetch.cpp

David  19 Feb 2009
    - client: don't complain that master URLs differ if it's only in case

    client/
        cs_scheduler.cpp

Rom    19 Feb 2009
    - Tag for 6.6.10 release, all platforms
      boinc_core_release_6_6_10

    /
        configure.ac
        version.h

David  20 Feb 2009
    - client: if a project is at max backoff for a resource,
        stop accumulating debt if it's at or around zero.
        This prevents other projects from being driven unboundedly negative.
    - client: if the number of overworked projects exceeds the number
        of device instances, clear debts; this indicates that an earlier
        client was buggy and produced bad debt values.

    client/
        client_state.h
        cpu_sched.cpp
        sim.h
        work_fetch.cpp,h

David  20 Feb 2009
    - client: new work-fetch policy:
        1) if an instance is idle, get work from highest-debt project,
            even if it's overworked.
        2) if resource has a shortfall, get work from highest-debt
            non-overworked project
        3) if there's a fetchable non-overworked project with no runnable jobs,
            get from from the highest-debt one.
        (each step is done first for GPU, then CPU)
        Clause 3) is new.
        It will cause the client to get jobs for as many projects as possible,
        even if there is no shortfall.
        This is necessary to make the notion of "overworked" meaningful
        (otherwise, any project with long jobs can become overworked).
        It also maintains as much variety as possible (like pre-6.6 clients).

        Also (small bug fix) if a project is overworked for resource R,
        request work for R only in case 1).

    client/
        work_fetch.cpp,h

David  20 Feb 2009
    - client: remove the "debt repair" mechanism added earlier today.
        There are situations where multiple projects can legitimately
        have large negative LTD on a uniprocessor.
        Instead...
    - client: add <zero_debts> option to cc_config.xml

    client/
        log_flags.cpp,h
        work_fetch.cpp,h

David  20 Feb 2009
    - client: fix bug that can cause no GPU jobs to be scheduled
        even when a GPU is free

    client/
        cpu_sched.cpp

David  21 Feb 2009
    - client: tweak the LTD calculation so that the largest debt
        always tends towards zero

    client/
        work_fetch.cpp

David  22 Feb 2009
    - client: print message if downloaded file has wrong size
    - client: associate file xfer messages with a project; fixes #848

    client/
        cs_files.cpp
        file_xfer.cpp
        pers_file_xfer.cpp

David  22 Feb 2009
    - client: more instances of showing project with message.  Fixes #848

    client/
        app_start.cpp
        app_graphics.cpp
        file_xfer.cpp
        cs_account.cpp
        cs_scheduler.cpp
        scheduler_op.cpp
        app.cpp
        app_control.cpp

David  22 Feb 2009
    - client: fix work-fetch bug that caused infinite fetch;
        cleanup/reorganization of work fetch logic

    client/
        work_fetch.cpp,h

David  22 Feb 2009
    - client: work-fetch bug fix: if we're fetching work for a starved
        project, it most have no runnable jobs for ANY resource.
    - client: work-fetch bug fix: when setting requests in the
        shortfall case, don't request anything if project is backed off
        or overworked for the resource.

    client/
        rr_sim.cpp
        work_fetch.cpp,h

David  22 Feb 2009
    - scheduler: include driver version in the CUDA description string
        storing in the database;

    client/
        cpu_sched.cpp
        work_fetch.h
    lib/
        coproc.cpp

Rom    22 Feb 2009
    - WINSCR: Fix the BOINC text displayed is the screensaver control
        panel applet
    - WINSCR: Get rid of the 'Up to 5 second wait' for the data thread
        to terminate.  Force terminate the thread and clean up the
        graphics app in a clean-up routine.  Forcing the user to wait
        when they return to the system isn't a good idea.
    - WINSCR: Fix screensaver issue where the screensaver locks up
        when the graphics application deadlocks for one reason or
        another.
        
        Create two new threads:
          1. Monitor system for keyboard and mouse events.
          2. Shuffle window z-order positions if needed.
          
        The keyboard/mouse event monitor is isolated from either
          the core client getting stuck in a loop and not returning
          the results of an RPC or the window shuffling code which
          can get stuck if the graphics application dead locks.
          
        The window shuffle code is isolated due to the
          BroadcastSystemMessage() API using something akin to
          SendMessage() which waits for a return value from the
          target windows winproc.  If a graphics application
          deadlocks for one reason or another it'll cause
          the thread to stall.  This isn't terminal and so we
          just wait for the next time the data thread chooses
          a new application and terminates the old one which
          will cause the thread to resume.
          
        This should resolve all outstanding issues with the
          screensaver not exiting when the mouse or keyboard
          is used.
          
    clientscr/
        boinc_ss.rc
        screensaver.cpp
        screensaver_win.cpp, .h

Rom    24 Feb 2009
    - WINSCR: Clean-up some of the thread cleanup logic.
    
    clientscr/
        screensaver_win.cpp

Rom    24 Feb 2009
    - Tag for 6.6.11 release, all platforms
      boinc_core_release_6_6_11

    /
        configure.ac
        version.h

Charlie 25 Feb 2009
    - Mac screensaver: fix build break.  Note: the order of included 
        headers is critical in this file; don't change it! Checked into 
        boinc_core_release_6_6_11 tag.

    clientscr/
        screensaver.cpp

Charlie 2 Mar 2009
    - client: Revise Apple idle time detection for compatibility with OS 10.6.

    client/
        hostinfo_unix.cpp
    lib/
        hostinfo.h

Charlie 3 Mar 2009
    - Mac: Update libCurl to 7.19.4.

    mac_build/
        buildcurl.sh
        HowToBuildBOINC_XCode.rtf
        setupForBOINC.sh
        boinc.xcodeproj/
            project.pbxproj

David  25 Feb 2009
    - client: fix bugs in "abort_jobs_on_exit" feature:
        - clear project backoffs when start abort sequence
        - don't back off projects if in abort sequence

    client/
        client_state.cpp
        main.cpp
        scheduler_op.cpp

David  25 Feb 2009
    - boinccmd: fix bug in --set_proxy_settings command
        (it wasn't setting the "use_XXX" flags).  Fixes #776
    - client: you can now include a <proxy_info> element
        in your cc_config.xml options.

    TODO: the whole proxy info thing needs an overhaul:
    - no separate "use_XXX" flags;
        non-empty http_server_name implies using HTTP proxy, etc.
    - merge PROXY_INFO and GR_PROXY_INFO classes
    - use XML_PARSER for parsing
    - no PROXY_INFO element in HTTP_OP; just use gstate.proxy_info

    client/
        boinc_cmd.cpp
        http_curl.cpp
    lib/
        parse.h
        proxy_info.cpp

David  25 Feb 2009
    - client: if you put <host_venue> in global_prefs_override.xml,
        it should select the venue from the network prefs.
        Now it does.

    client/
        gui_rpc_server.cpp
        cs_prefs.cpp

David  25 Feb 2009
    - client: make timeout values into #defines

    client/
        (several).cpp

David  26 Feb 2009
    - client: tag messages with project where possible; fixes #852
    - client: show fetch share rather than run share in wfd message

    client/
        client_types.h
        work_fetch.cpp
        cs_prefs.cpp
        cs_scheduler.cpp
        cpu_sched.cpp

David  26 Feb 2009
    - client: abort jobs that are unstarted and past deadline
    - client: abort runaway jobs based on elapsed time instead of CPU time.
        Specifically, abort jobs for which
        elapsed time > WU.rsc_fpops_bound / app_version.flops
        This policy works for
        1) GPU jobs (which may use little CPU time)
        2) jobs that run but because of bugs use little CPU time
            (e.g., because they're sleeping)
        whereas the old policy didn't.

    client/
        client_state.cpp,h
        app.cpp,h
        app_control.cpp
    lib/
        error_numbers.h
        str_util.cpp

David  26 Feb 2009
    - client: skip the above elapsed-time check for non-CPU-intensive jobs

    client/
        app_control.cpp

Rom    26 Feb 2009
    - MGR: Remove the ability to display graphics on a remote computer,
        or from a remote computer on *nix machines using v5 graphics.
        fixes #674
        
    clientgui/
        ViewWork.cpp

David  26 Feb 2009
    - client: fix bug where if a GPU job is running,
        and a 2nd GPU job with an earlier deadline arrives,
        neither job is executed ever.
        Reorganized things so that scheduling of GPU jobs is
        done independently of CPU jobs.
        The policy for GPU jobs:
        - always EDF
        - jobs are always removed from memory, regardless of checkpoint
        (GPU memory is not paged, so it's bad to leave an idle app in memory)

    client/
        app.cpp,h
        app_start.cpp
        client_state.h
        cpu_sched.cpp
    sched/
        handle_request.cpp

David  26 Feb 2009
    - client: shuffle the startup code to avoid showing wrong prefs info
        on first-time startup.
    - client: don't do an RPC until we've done CPU benchmarks.
        We need the benchmark values to fill in app_version.flops

    client/
        client_state.cpp
        cs_scheduler.cpp

David  26 Feb 2009
    - boinccmd: make --get_messages output more readable

    client/
        boinc_cmd.cpp

David  27 Feb 2009
	- manager: fix roundoff error in Advanced Prefs; fixes #613

	clientgui/
		DlgAdvPreferences.cpp

Rom    27 Feb 2009
    - MGR: Make CTRL-SHIFT-A the accelerator in the simple GUI that
        switches back to the advanced view.
        refs #147

    clientgui/
        sg_BoincSimpleGUI.cpp, .h

David  27 Feb 2009
    - client: fix bug that could cause scheduler RPC
        to ask for work inappropriately,
        and tell user that it wasn't asking for work.
        Here's what was going on:
        There are two different structures with work request fields
        (req_secs, req_instances, estimated_delay):
        COPROC_CUDA *coproc_cuda
        and
        RSC_WORK_FETCH cuda_work_fetch.
        WORK_FETCH::choose_project() copied from cuda_work_fetch to coproc_cuda,
        but only if a project was selected.
        WORK_FETCH::clear_request() clears cuda_work_fetch but not coproc_cuda.

        Scenario:
        - a scheduler op is made to project A requesting X>0 secs of CUDA
        - later, a scheduler op is made to project B for reason
            other than work fetch (e.g., user request)
        - choose_project() doesn't choose anything,
            so the value of coproc_cuda->req_secs remains X
        - clear_request() is called but that doesn't change *coproc_cuda

        Solution: work-fetch code no longer knows about internals of
            COPROC_CUDA and is not responsible for settings its request fields.
            The copying of request fields from RSC_WORK_FETCH to COPROC
            is done at a higher level,
            in CLIENT_STATE::make_scheduler_request()

        Additional bug fix: estimated_delay wasn't being cleared in some cases.

    client/
        cs_scheduler.cpp
        scheduler_op.cpp
        work_fetch.cpp

David  27 Feb 2009
    - client: RR sim FLOPS estimate for GPU jobs should reflect
        fraction of time BOINC is running.

    client/
        rr_sim.cpp
        work_fetch.cpp

David  1 Mar 2009
    - client: if we're going to do a scheduler RPC for reasons
        other than work fetch (e.g., user request, project request)
        temporarily clear resource backoffs while deciding
        whether to request work.
        The backoffs are there only to delay RPCs,
        and we're going an RPC anyway.

    client/
        work_fetch.cpp

David  1 Mar 2009
    - manager and GUI RPC: always show resource debt and backoff even if zero;
        also show backoff interval

    clientgui/
        DlgItemProperties.cpp
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.cpp

David  2 Mar 2009
    - fix bugs in the above.
    - GUI RPC: remove unused items from get_state RPC: host_info, time_stats,
        net_stats, host_venue

    NOTE: any change to a GUI RPC struct requires changing AsyncRPC.cpp.
    This is undesirable.

    client/
        cs_statefile.cpp
    clientgui/
        AsyncRPC.cpp
    lib/
        gui_rpc_client_ops.cpp

David  2 Mar 2009
    - Manager: scheduling params are not defined for non-CPU-intensive projects;
        don't show them.

    clientgui/
        DlgItemProperties.cpp

Rom    2 Mar 2009
    - Update to OpenSSL 0.9.8j for Win32 and Win64
    
    openssl/
        <Various Files>

Rom    3 Mar 2009
    - Update to LibCurl 7.19.4 for Win32 and Win64
    
    curl/
        <Various Files>

David  3 Mar 2009
    - client: fix message: "idle instance" => "starved"

    client/
        work_fetch.cpp

David  3 Mar 2009
    - manager: when filtering messages by project,
        show messages not tagged with a project (fixes #852)

    clientgui/
        ViewMessages.cpp

David  3 Mar 2009
    - client: change garbage-collect logic.
        old: reference-count files involved in a PERS_FILE_XFER
        new: if a PERS_FILE_XFER refers to an unreferenced file,
            delete it (and the associated FILE_XFER and HTTP_OP if present)
        May fix #366

    client/
        client_state.cpp

Rom    3 Mar 2009
    - Tag for 6.6.12 release, all platforms
      boinc_core_release_6_6_12

    /
        configure.ac
        version.h

David  4 Mar 2009
    - client: run CPU benchmarks and contact ref site if platform changes

    client/
        client_state.cpp

David  4 Mar 2009
    - client: show duration estimates for CPU and CUDA separately

    client/
        cs_scheduler.cpp

David  4 Mar 2009
    - client: get rid of CPU_PESSIMISM_FACTOR; it wasn't actually being used.
    - manager: compile fix for gcc4.4
        (this works on my computer; Rom/Charlie, please verify)

    client/
        rr_sim.cpp
        sim.h
    clientgui/common/
        wxFlatNotebook.cpp

David  4 Mar 2009
    - client: don't allow coproc apps in app_info.xml.
        Otherwise we'll get stuck in a loop where the client asks for CPU work,
        and the scheduler sends jobs for what it thinks is a CPU app
        but is actually a coproc app.

        Eventually we should add coproc info to the app descriptions
        send in scheduler request,
        so that you can use anonymous platform for coproc apps.
        But let's wait on this.

    - scheduler: compile fix for gcc 4.4.  Fixes #854

    client/
        cs_statefile.cpp
    sched/
        sched_driver.cpp
        sched_util.cpp

David  4 Mar 2009
    - client: reorganize and improve the logic for deciding
        when to do a scheduler RPC:
        if user request or acct mgr request, ignore backoff and suspend via GUI;
        in all other cases honor both of these.

    client/
        cs_scheduler.cpp
        scheduler_op.cpp

David  5 Mar 2009
    - client: if using anonymous platform, ignore (and complain about)
        app versions in scheduler reply
    - client: when reporting anonymous platform apps in sched request,
        don't include <file_info>s (not relevant to server)

    client/
        client_types.cpp,h
        cs_scheduler.cpp
        cs_statefile.cpp

David  5 Mar 2009
    - manager: show version minor numbers as 0n

    clientgui/
        ViewWork.cpp

David  5 Mar 2009
    - client: anon plaform app versions can specify coprocs

    client/
        cs_statefile.cpp

Rom    5 Mar 2009
    - MGR: Remove previous implementations of the already attached
        to projects detection code.
    - MGR: Prevent the user from progressing beyond the project
        selection page if they are already attached to the
        project they are trying to attach to.  Display a dialog
        box telling they are already attached to that project
        and to choose a different project.  This skips a bunch
        of steps if they meant to attach to a different project.
        
    clientgui/
        AlreadyAttachedPage.cpp, .h
        BOINCWizards.h
        ProjectInfoPage.cpp
        ProjectPropertiesPage.cpp, .h
        WizardAttachProject.cpp, .h
    win_build/
        boincmgr_curl.vcproj

Rom    5 Mar 2009
    - MGR: Account for new error code returned by the CC in response
        to a get_project_config.php request.  It was causing the
        wizards to throw a temp unavailable error page instead
        of the not a boinc project page. Fixes #640
        
    clientgui/
        AccountManagerPropertiesPage.cpp
        ProjectPropertiesPage.cpp

Rom    5 Mar 2009
    - MGR: Newer versions of the server-side software publish their
        master url in the response to the get_project_config.php
        request.  If it exists use it over what was specified
        by the user.  Fixes #259
        
    clientgui/
        AccountManagerProcessingPage.cpp
        ProjectProcessingPage.cpp

Rom    5 Mar 2009
    - MGR: Saving and Restoring window diminisions is not a Mac only
        operation when starting up or shutting down the client. Increase
        the frequency of the auto-save state timer from 5 minutes to
        5 seconds.  Fixes #69, Fixes #735, Fixes #790, 
    - MGR: Lengthen the connected to client status field. Fixes #632
    - MGR: Properly update the connected to client status field
        even after a change to the simple view. Fixes #688
        
    clientgui/
        AdvancedFrame.cpp
        sg_BoincSimpleGUI.cpp, .h

Rom    5 Mar 2009
    - MGR: Don't display the Simple GUI 'Remove Project' menu item
        if it was attached via an account manager. Fixes #261
    
    clientgui/
        sg_StatImageLoader.cpp

David  5 Mar 2009
    - client: with anonymous platforms, app versions are identified
        by app/platform/version/plan-class, same as normal

    client/
        client_state.cpp

Rom    5 Mar 2009
    - MGR: Set the dial-up and VPN connection list box to a static
        size so that a scroll bar will appear if the number of items
        exceeds the space to display them. Fixes #96
    
    clientgui/
        DlgOptions.cpp

Charlie 5 Mar 2009
    - MGR: On Mac, revert to auto-save frequency of 5 minutes because:
        * The 3 bugs did not occur on the Mac, and 
        * The saved info is written to a file on the Mac, but the file 
            is not flushed to disk until the Manager is closed, so the 
            extra auto-saves have no effect but only waste CPU cycles.
    
    clientgui/
        AdvancedFrame.cpp

Rom    6 Mar 2009
    - Tag for 6.6.13 release, all platforms
      boinc_core_release_6_6_13

    /
        configure.ac
        version.h

David  6 Mar 2009
    - GUI RPC: the Jan 13 checkin removed some items from the
        get_state() reply which are not included in our client interface.
        However, it turns out that BoincView uses these items; put them back.
    - GUI RPC: set_debt() can set CUDA LTD as well as CPU

    client/
        gui_rpc_server_ops.cpp
        cs_statefile.cpp

Rom    6 Mar 2009
    - MGR: Don't hide the main window after attaching to an account manager
        if we don't support the system tray on that platform. refs #844
        
    clientgui/
        AdvancedFrame.cpp

Rom    6 Mar 2009
    - Tag for 6.6.14 release, all platforms
      boinc_core_release_6_6_14

    /
        configure.ac
        version.h

Charlie 6 Mar 2009
    - Mac: Remove obsolete files AlreadyAttachedPage.cpp, .h from 
        XCode project. Checked in to 6.6.14 tag.

     mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  6 Mar 2009
    - lib: remove "owner" array from COPROC.
        This was used in client to keep track of assignment of
        coprocessors to tasks, but we got rid of the reserve/free scheme.
        NOTE: this breaks the mechanism for passing --device N to apps;
        I'll have to do this another way.  Stay tuned.

    client/
        app_start.cpp
        cpu_sched.cpp
    lib/
        coproc.cpp,h

David  6 Mar 2009
    - client: add a new mechanism for assigning coproc instances to tasks,
        and passing them the corresponding --device N cmdline args.
        This fixes a bug introduced in 17402 (Feb 26)
        that broke the --device feature,
        presumably causing problems on systems with multiple GPUs.

    client/
        app_start.cpp
        client_types.h
    lib/
        coproc.h

David  6 Mar 2009
    - client: fix crash
    lib/
        coproc.h

Charlie 6 Mar 2009
    - client: Fix compiler warning on Mac.

    client/
        app_start.cpp

David  8 Mar 2009
    - client, GUI RPC: put <host_venue> back in get_state reply;
        it's used by BoincView

    client/
        cs_statefile.cpp

Rom    8 Mar 2009
    - MGR: Fix a long standing bug where the pie control in the
        disk usage tab was being created but a default pie part
        wasn't being added to the control.  This caused the
        control to display black circles during window
        initialization on slower systems.  This issue has been
        around since we started using the pie control based disk
        usage tab.
    
    clientgui/
        ViewResources.cpp

Rom    9 Mar 2009
    - MGR: Set the window size through the window creation routine
        instead of calling SetSize() after the fact.  It removes
        all the flicker out of the Advanced GUI.
    - MGR: Consolidate all the window position restore functionality
        for both the Simple GUI and Advanced GUI in BOINCGUIApp.cpp
        instead of having duplicate copies in each view.
    - MGR: Have the Advanced GUI remember position across restarts.
    - MGR: Create new window events that will save and restore
        window state for both GUIs.  This avoids multiple UI
        updates.  Each time you would change window size from within
        a OnShow or OnSize event it would spawn an update of its own.
        Sometimes certain controls would ignore the event because
        it believed it was already processing the event.
        
    clientgui/
        AdvancedFrame.cpp, .h
        BOINCBaseFrame.cpp, .h
        BOINCGUIApp.cpp
        sg_BoincSimpleGUI.cpp, .h
        ViewStatistics.cpp
    win_build/
        boincmgr_curl.vcproj

Rom    9 Mar 2009
    - MGR: Restore state even if we are not going to display the
        window.  Otherwise when restoring from the system tray
        we'll end up on the resources tab.
    - MGR: Save state before exit.
    
    clientgui/
        BOINCBaseFrame.cpp
        BOINCGUIApp.cpp

Charlie 9 Mar 2009
    - MGR: CBOINCBaseFrame::FireRestoreState() calls ProcessEvent() 
        on Mac instead of AddPendingEvent() to avoid displaying Disk 
        tab for an instant when showing the Window on manual launch.

    clientgui/
        BOINCBaseFrame.cpp

Charlie 9 Mar 2009
    - MGR: suspend periodic RPCs only when displaying SafeMessageBox() 
        not for all dialogs, so tabs can update during Preferences 
        dialog, etc.

    clientgui/
        BOINCBaseFrame.cpp
        BOINCGUIApp.h
        MainDocument.cpp

Rom    10 Mar 2009
    - Tag for 6.6.15 release, all platforms
      boinc_core_release_6_6_15

    /
        configure.ac
        version.h

David  9 Mar 2009
	- client: backoff overrides project-requested scheduler RPC.
		Otherwise, if scheduler is down, we'll retry infinitely every 10 secs
	- client: remove auto_update.poll() (not used)

	client/
		client_state.cpp
		cs_scheduler.cpp
		scheduler_op.cpp

David  11 Mar 2009
    - Manager: show elapsed time instead of CPU time in Task tab.
        CPU time is visible in task Properties.
    - Manager: in task Properties, show final CPU and elapsed times
        if job is finished
    - client: honor backoff for account-manager-requested scheduler RPCs
    - client: keep track final elapsed time for results
    - GUI RPC: report final elapsed time

    client/
        app_control.cpp
        client_types.cpp,h
        cs_scheduler.cpp
    clientgui/
        DlgItemProperties.cpp
        ViewWork.cpp
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.cpp

Charlie 12 Mar 2009
    - MGR: Simplify the fixes for saving and restoring window sizes and other 
        settings; eliminate unnecessary new events EVT_FRAME_RESTORESTATE and 
        EVT_FRAME_SAVESTATE, etc; call SaveState() and RestoreState() directly.
    - MGR: Handle EVT_END_SESSION event to call SaveState() on Windows logout 
        or shutdown; this fixes a long-standing problem where current settings 
        were not being saved.

    clientgui/
        AdvancedFrame.cpp, .h
        BOINCBaseFrame.cpp, .h
        BOINCGUIApp.cpp, .h
        sg_BoincSimpleGUI.cpp, .h

Charlie 16 Mar 2009
    - MGR: Fix possible deadlock when exiting manager.
    
    clientgui/
        AsyncRPC.cpp

Charlie 17 Mar 2009
    - MGR: Delete RPCThread::OnExit() because it is not called on Windows 
        for some reason.
    
    clientgui/
        AsyncRPC.cpp

Rom    17 Mar 2009
    - Tag for 6.6.16 release, all platforms
      boinc_core_release_6_6_16

    /
        configure.ac
        version.h

Charlie 17 Mar 2009
    - MGR: CMainDocument::KillRPCThread() defers to RPC thread before testing 
        if thread has exited on its own.
    
    clientgui/
        AsyncRPC.cpp

David  18 Mar 2009
    - client: consider fetching work from overworked projects
        if resource is saturated for < work_buf_min()
        (rather than saturated for 0).
        So now the only significance of "overworked" is that we
        won't ask overworked projects for work if resource is saturated
        more than work_buf_min() but less than work_buf_total()

    client/
        work_fetch.cpp,h

David  18 Mar 2009
    - client: in RR simulation, use app_version.flops
        instead of host_info.fpops as the FLOPS estimate for non-GPU apps.
        I don't see why this would make any difference
        (these two are equal for non-GPU apps)
        but people have reported that this change improves estimates.

    client/
        rr_sim.cpp

Rom    18 Mar 2009
    - Tag for 6.6.17 release, all platforms
      boinc_core_release_6_6_17

    /
        configure.ac
        version.h

David  19 Mar 2009
    - client: work fetch: in RR sim, keep track of the number
        of device instances used by jobs that miss deadline.
        Don't do "variety" work fetch if this is >= # of instances

    client/
        rr_sim.cpp
        work_fetch.cpp,h

David  20 Mar 2009
    - client: reduce frequency of writing state file:
        1) multiply checkpoint period by # of cores (or GPUs)
        2) don't write statefile after schedule_cpus()
            (we write it after enforce_schedule() if anything
            started or stopped, and that's all that matters)
    - client: add new log flag <statefile_debug>;
        tells you when and why statefile is written

    client/
        app_start.cpp
        client_state.cpp
        cpu_sched.cpp
        cs_statefile.cpp
        log_flags.cpp,h

David  20 Mar 2009
    - client: add --no_priority_change cmdline arg
        (and <no_priority_change> flag in cc_config.xml).
        If set, run apps at same priority as client.

    client/
        app_start.cpp
        cs_cmdline.cpp
        log_flags.cpp,h

David  20 Mar 2009
	- client: garbage collect after scheduler RPC;
		if project sent some irrelevant FILE_INFOs,
		this will avoid starting transfers for them.

	client/
		cs_scheduler.cpp
		gui_rpc_server_ops.cpp

David  23 Mar 2009
    - client (linux): if don't find libcudart.so in the current dir,
        look for it in the library search path.  Fixes #863

    lib/
        coproc.cpp

David  25 Mar 2009
    - client: give highest work-fetch priority to resources with idle instances

    client/
        work_fetch.cpp

David  26 Mar 2009
    - client: clear resource backoffs on user-requested RPC
    - client: randomize resource backoffs to avoid lockstep

    client/
        cs_scheduler.cpp
        work_fetch.cpp

David  26 Mar 2009
    - client: when a job finishes,
        clear the project's backoff for its resource type.
        This fixes a problem where a project has a "max jobs in progress"
        limit, and we're backed off because of that.
        We'll now fetch work immediately instead of waiting 24 hrs.

    client/
        app.cpp

Rom    26 Mar 2009
    - Tag for 6.6.18 release, all platforms
      boinc_core_release_6_6_18

    /
        configure.ac
        version.h

Charlie 25 Mar 2009
    - MGR: Remove erroneous call of locale in main thread which may be causing 
        undesired chanegs in date and numeric formatting due to conflicts 
        between threads

    clientgui/
        asyncrpc.cpp

David  27 Mar 2009
    - manager: display versions as x.xx

    clientgui/
        DlgItemProperties.cpp

Rom    27 Mar 2009
    - Tag for 6.6.19 release, all platforms
      boinc_core_release_6_6_19

    /
        configure.ac
        version.h

David  27 Mar 2009
    - manager: fix message

    clientgui/
        ProjectInfoPage.cpp

David  27 Mar 2009
    - client: typo in work fetch code; may cause minor errors

    client/
        work_fetch.cpp

Rom    30 Mar 2009
    - Tag for 6.6.20 release, all platforms
      boinc_core_release_6_6_20

    /
        configure.ac
        version.h

Charlie 1 Apr 2009
    - Mac: Add -lresolv to XCode linker flags for screensaver.
    - MGR: on Mac, implement standard Preferences item under BOINC menu 
        with standard keyboard shortcut; same as Advanced/Preferences.

    clientgui/
        AdvancedFrame.cpp
        mac/
            MacSysMenu.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Rom    2 Apr 2009
    - WINSCR: It appears newer notebook models with multiple video
        chipsets exhibit an interesting situation.  It appears as though
        in certain conditions a single monitor machine actually reports
        itself as having three monitors.  Normally the monitor that
        contains the primary window (coord 0,0) is on monitor 0, but on
        these machines coord 0,0 is actually on monitor 2.  This led to the
        screensaver not properly exiting when keyboard and/or mouse activity
        was detected.  Now when we detect that keyboard and/or mouse activity
        has happened we send the WM_INTERRUPTSAVER event to all windows
        on all monitors.
        
    clientscr/
        screensaver_win.cpp, .h

Rom    7 Apr 2009
    - WINSETUP: When uninstalling, don't migrate the client data back
        to the 5.x location.
    - WINSETUP: On some setups, how we were including the 'Everyone' well
        known security ID in the boinc_users group didn't work properly.
        
        From now on include the 'Everyone' security ID in the various
        ACLs instead.  This will probley clean up a wide range of
        various issues with multi-user installs.
        
    win_build/installerv2/redist/Windows/Win32/
        boinccas.dll
        boinccas95.dll
    win_build/installerv2/redist/Windows/x64/
        boinccas.dll
        boinccas95.dll

David  30 Mar 2009
    - GUI RPC: client side: if parse a RESULT and CPU is nonzero
        but elapsed time is zero, we must be talking to an old client;
        set elapsed = CPU

    lib/
        gui_rpc_client_ops.cpp

David  1 Apr 2009
    - client: show project name in "backoff ended" msg

    client/
        app.cpp
        cpu_sched.cpp
        cs_scheduler.cpp

David  7 Apr 2009
    - web and client: change the default for "run_gpu_if_user_active"
        from true to false.
        Currently running CUDA apps on NVIDIA GPUs causes
        a significant slowdown in GUI response.
        
    html/inc/
        prefs.inc
    lib/
        prefs.cpp
    tools/
        make_project

David  7 Apr 2009
    - client: we were setting config defaults after parsing cmdline.
        This meant that the cmdline args that set config params weren't working:
            --allow_multiple_clients
            --report_results_immediately
            --no_priority_change
            --start_delay

    client/
        client_state.cpp
        cs_cmdline.cpp
        log_flags.cpp,h

Charlie 7 Apr 2009
    MGR: Fix compatibility problem with sizing of all-projects list in Attach 
        Project Wizard when using wxWidgets 2.8.8 or later.

    clientgui/
        ProjectListCtrl.cpp

Charlie & Rom 8 Apr 2009
    - Tag for 6.6.21 release, all platforms
      boinc_core_release_6_6_21

    /
        configure.ac
        version.h

Charlie 9 Apr 2009
    - Mac client: fill in command field of PROCINFO struct so <exclusive_app> 
        log flag works properly on Mac.

    lib/
        procinfo_mac.cpp

Rom    10 Apr 2009
    - WINSETUP 'Everyone' is not just a group, it is a well known
        group.
    - WINSETUP: Be sure to define INSTALLDIR if it isn't already
        defined by the system or the transform.  DATADIR was
        already being handled.
    - WINSETUP: Save setup state at the end of the execution phase
        as well as the end of the UI phase.
        
    win_build/installerv2/
        BOINC.ism
        BOINCx64.ism
    win_build/installerv2/redist/Windows/Win32/
        boinccas.dll
        boinccas95.dll
    win_build/installerv2/redist/Windows/x64/
        boinccas.dll
        boinccas95.dll

Rom    10 Apr 2009
    - Tag for 6.6.22 release, all platforms
      boinc_core_release_6_6_22

    /
        configure.ac
        version.h

David  9 Apr 2009
    - client: for each app version,
        keep track of the largest WSS of tasks using it.
        In checking whether tasks fit in RAM,
        use this as an estimate for tasks that haven't started yet.
        This avoids a situation where the client starts a lot of
        tasks in sequence, only to find that each one doesn't fit in RAM.

    client/
        client_types.h
        cpu_sched.cpp

David  10 Apr 2009
    - client: for coproc jobs, don't start a job while a quit is pending.
        Otherwise the new job may fail on memory allocation.

    client/
        cpu_sched.cpp

David  10 Apr 2009
    - client: instead of scheduling coproc jobs EDF:
        - first schedule jobs projected to miss deadline in EDF order
        - then schedule remaining jobs in FIFO order
        This is intended to reduce the number of preemptions of coproc jobs,
        and hence (since they are always preempted by quit)
        to reduce the wasted time due to checkpoint gaps.
    - client: the CPU scheduling policy made use of the number
        of deadline misses in various places.
        This should include only the deadline misses of CPU jobs.
        So move "deadlines_missed" from RR_SIM_STATUS and PROJECT
        to RSC_PROJECT_WORK_FETCH so that we have separate counts
        for CPU and coproc jobs, and use the count for CPU jobs.
    - GUI RPC: removed the rr_sim_deadlines_missed field
        from project descriptor.
        This is no longer meaningful, and it didn't seem to be used anywhere.

    client/
        client_types.cpp,h
        cpu_sched.cpp
        rr_sim.cpp,h
        work_fetch.cpp,h
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.cpp

David  10 Apr 2009
    - GUI RPC and manager: send slot and show it in task properties
        rather than slot path
        (slot_path is defined only for apps with graphics app).

    clientgui/
        DlgItemProperties.cpp
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.cpp

David  12 Apr 2009
    - client: put back the call to res_init() on lookup failure.
        Apparently it worked after all.

    client/
        http_curl.cpp
    lib/
        network.cpp,h

Rom    13 Apr 2009
    - Tag for 6.6.23 release, all platforms
      boinc_core_release_6_6_23

    /
        configure.ac
        version.h

Charlie 13 Apr 2009
    - Mac: Add -lresolv to XCode linker flags for client, manager boinccmd 
        and screensaver to link with libresolv.dylib for res_init() call 
        (again).  Add #include of <resolv.h> to non-Windows network.cpp.
        (Changes checked in to boinc_core_release_6_6_23.)

    lib/
        network.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Rom    15 Apr 2009
    - Fix compiler errors
      ( From: Sascha Manns )
      
    client/
        hostinfo_unix.cpp
    clientgui/
        DlgAdvPreferences.cpp

Charlie 15 Apr 2009
    Mac MGR: Add keyboard shortcuts command-shift-S to switch to Simple View
        and command-shift-A to switch back to Advanced View.
        
    clientgui/
        AdvancedFrame.cpp, .h
        sg_BoincSimpleGUI.cpp, .h

David  15 Apr 2009
    - client: fixed a crash caused by using %f to write
        working-set size into a fixed-size buffer.
        Use %e instead.
        TODO: figure out why WSS was huge.

    client/
        app_control.cpp

Davaid  16 Apr 2009
    - client: another try at fixing the above crash

    client/
        app_control.cpp

David  16 Apr 2009
    - client: if detach a project, adjust debts and trigger
        CPU sched and work fetch

    client/
        client_state.cpp
        cpu_sched.cpp

David  19 Apr 2009
    - client: improve CPU sched debug messages
        (say what kind of job and why we're scheduling it)
    - client: log messages describing GPUs: one line per GPU; fixes #879

    client/
        cpu_sched.cpp
    lib/
        coproc.cpp,h

David  20 Apr 2009
    - partial checkin so I can edit locally (bad network connection)

    lib/
        coproc.cpp,h

David  21 Apr 2009
    - client: new approach to handling multiple GPUs.
        old: find fastest GPU, and pretend that others are the same.
            Problem: other GPUs might be less capable,
            and not able to handle jobs sent by server.
        new: find the most "capable" GPU, use others that are equivalent,
            don't use those that are not.
            "Capable" is defined by
            - compute capability (i.e., hardware version)
            - driver version
            - memory size
            - FLOPs
            in that priority order.
        See comments in lib/coproc.h

    client/
        app_start.cpp
    lib/
        coproc.cpp,h

David  21 Apr 2009
    - client: fix crash bug in CUDA init

    lib/
        coproc.cpp

David  22 Apr 2009
    - client: When a preemptable task wasn't preempted
        (e.g. because it hadn't finished its time slice)
        we were failing to mark it as scheduled.

    client/
        cpu_sched.cpp

Rom    23 Apr 2009
    - Tag for 6.6.24 release, all platforms
      boinc_core_release_6_6_24

    /
        configure.ac
        version.h

David  24 Apr 2009
    - client: message tweak

    client/
        work_fetch.cpp

David  24 Apr 2009
    - client: tweak to 4/21 checkin.
        After finding the "most capable" GPU,
        ignore FLOPS in deciding what GPUs are equivalent to it.
        This opens up the possibility that the client will get jobs
        that it won't be able to finish in time.
        But it still avoids getting jobs that will crash.

    lib/
        coproc.cpp

David  24 Apr 2009
    - fix typo in compare_cuda()

    lib/
        coproc.cpp

David  27 Apr 2009
    - client: show message when user does a project or task op
        (suspend, resume, update, etc.)

    client/
        gui_rpc_server_ops.cpp

David  27 Apr 2009
    - client: add <use_all_gpus> config option.  If set, use GPUs
        even if they're not equivalent to the most capable one.

    client/
        client_state.cpp
        log_flags.cpp,h
    lib/
        coproc.cpp,h

Rom    28 Apr 2009
    - Tag for 6.6.25 release, all platforms
      boinc_core_release_6_6_25

    /
        configure.ac
        version.h

Rom    30 Apr 2009
    - MGR: Turn GetViewName into the unlocalized version of the view
        name, so the configuration group name is consistant across
        all languages and does not cause conversion issues on
        different platforms where the configuration information
        is treated differently when compiled Unicode vs. ANSI.
        
    clientgui/
        ViewMessages.cpp
        ViewProjects.cpp
        ViewResources.cpp
        ViewStatistics.cpp
        ViewTransfers.cpp
        ViewWork.cpp

Rom    1 May 2009
    - Tag for 6.6.26 release, all platforms
      boinc_core_release_6_6_26

    /
        configure.ac
        version.h

David  4 May 2009
    - client: view 2 GPUs as equivalent if their memory differs by <30%.
        (maybe their memory differed slightly from the most capable one)

    lib/
        coproc.cpp

David  4 May 2009
    - client: simplify enforce_schedule(), and maybe fix bugs.
        New approach: take the "ordered_schedule_results" list,
        add running jobs that haven't finished their time slice,
        and order the result appropriately.
        Then run jobs in order until CPUs are filled.
        Simpler and clearer than the old way.

    client/
        client_types.h
        client_state.h
        cpu_sched.cpp

Rom    4 May 2009
    - Tag for 6.6.27 release, all platforms
      boinc_core_release_6_6_27

    /
        configure.ac
        version.h

Charlie 4 May 2009
    - client: fix compiler warning.
        
    client/
        cpu_sched.cpp

David  5 May 2009
    - client: enforce_schedule() wasn't starting GPU jobs

    client/
        cpu_sched.cpp

Rom    5 May 2009
    - Tag for 6.6.28 release, all platforms
      boinc_core_release_6_6_28

    /
        configure.ac
        version.h

David  6 May 2009
    - client: write message (and show new config info) when config file reread
    - client: improve cpu_sched_debug messages

    client/
        gui_rpc_server_ops.cpp
        cpu_sched.cpp

David  7 May 2009
    - client, Mac: don't do res_init().  It causes a crash.
    - client (Unix): if client crashes while benchmark processes are going,
        make sure they detect this and exit.

    client/
        cs_benchmark.cpp
    lib/
        network.cpp

Charlie 7 May 2009
    - Mac: Remove -lresolv from XCode linker flags for client, manager, boinccmd 
        and screensaver which linked with libresolv.dylib for res_init() call.
    - MGR: CBOINCClientManager::IsBOINCCoreRunning() tests whether the Client 
        process exists, rather than doing an RPC.  We can't use an async RPC 
        here because we may not yet be connected to the Client, and the direct
        RPC which was being done would hang the Manager if the Client was 
        running but not responding.  This should fix some of the situations 
        where the manager would become unresponsive.
    - Mac client: fix parent died test in benchmark_time_to_stop().

    client/
        cs_benchmark.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Charlie 7 May 2009
    - Tag for 6.6.29 release, all platforms (only Mac is needed)
      boinc_core_release_6_6_29

    /
        configure.ac
        version.h

Charlie 13 May 2009
    - MGR: Always treat quit RPCs as non-demand so Manager can exit when 
        client is not responding; don't remove currently active RPC request 
        from queue when receiving a quit RPC request.
    
    clientgui/
        AsyncRPC.cpp

Charlie 15 May 2009
    - MGR: Update m_dtCachedCCStatusTimestamp only when RPC completes.
    - MGR: Add an "Exit BOINC" button ("Quit BOINC" on Mac) to async RPC 
        "Communicating with BOINC Client. Please wait..." dialog.  This allows 
        users to exit BOINC more easily when Client is unresponsive.
    
    clientgui/
        AsyncRPC.cpp, .h
        BOINCClientManager.cpp
        MainDocument.cpp

Charlie 16 May 2009
    - MGR: Fix bug which prevented skin change from being saved if exiting Manager 
        while in Simple View.

    clientgui/
        BOINCGUIApp.cpp

Rom    20 May 2009
    - MGR: Fix bug where *nix platforms using UCS2 Unicode encoding
        were not able to display graphics as one or more null bytes
        seperate each character.
        
    clientgui/
        MainDocument.cpp

Rom    20 May 2009
    - MGR: Fix bug where there was no trailing backslash before
        'symbols' was appended to the end of the symbol path.  This
        caused the stack tracing code not to download the actual
        symbol files needed to debug a problem.  I have no idea
        when this bug was introduced.
        
    lib/
        stackwalker_win.cpp

Rom    20 May 2009
    - Tag for 6.6.30 release, all platforms
      boinc_core_release_6_6_30

    /
        configure.ac
        version.h

David  28 May 2009
    - client: fixed nasty bug that caused GPU jobs to crash on startup
        when they're preempting another GPU job.
        The problem was as follows:
        - job A is chosen to preempt job B
        - we tell job B to quit, and initialize job A but don't start it;
            however, we set if scheduler state to SCHEDULED
            (rather than UNINITIALIZED)
        - job B exits, and we start job A.
            Since its state is not UNITIALIZED, we don't set up its slot dir.
        - job A runs in an empty slot dir, doesn't find its files, and bombs out.
    - client: add <slot_debug> option (prints messages about
        allocation of slots, creating/removing files in slot dirs).

    client/
        app.cpp,h
        app_control.cpp
        app_start.cpp
        cpu_sched.cpp
        file_names.cpp
        sandbox.cpp,.h
        sim_util.cpp
    clientgui/
        ViewWork.cpp

Rom    20 May 2009
    - Tag for 6.6.31 release, all platforms
      boinc_core_release_6_6_31

    /
        configure.ac
        version.h

David  22 May 2009
    - fix display problem when talking to old clients

    lib/
        gui_rpc_client_ops.cpp

Charlie 2 June 2009
    MGR: In Async RPC logic, change calling order for wxCondition and 
        wxMutex from <Set Boolean, Lock, Unlock, Signal> to <Lock, 
        Set Boolean, Signal, Unlock> to be consistent with examples in 
        literature, hoping this might fix an intermittent hang in 
        wxConition::Wait().

    clientgui/
        AsyncRPC.cpp

Charlie 2 June 2009
    - Tag for 6.6.32 release, all platforms
      boinc_core_release_6_6_32

    /
        configure.ac
        version.h

David  31 May 2009
    - client: include plan class in other_result list in sched request
        (for resource-specific jobs-in-progress limit)

    client/
        cs_scheduler.cpp

Rom    2 June 2009
    - Tag for 6.6.33 release, all platforms
      boinc_core_release_6_6_33

    /
        configure.ac
        version.h

David  1 June 2009
    - client: if scheduler request didn't request work, don't report 0 tasks

    client/
        cs_scheduler.cpp

David  2 June 2009
	- client: show "est. delay" correctly in work fetch debug msgs
	- client: show times correctly in rr_sim debug msgs
	- client: in "requesting new tasks" msg,
		say what resources we're requesting (if there's more than CPU)
	- client: estimated delay was possibly being calculated incorrectly
		because of roundoff error

	client/
		cs_scheduler.cpp
		rr_sim.cpp
		scheduler_op.cpp
		work_fetch.cpp

David  2 June 2009
    - client: add a 1e-6 slop factor in deciding if
        a resource is fully utilized.

    client/
        work_fetch.cpp

David  3 June 2009
    - client: when parsing app_info.xml, make sure coprocessors are present.
        fixes #911

    client/
        cs_statefile.cpp

Rom    4 June 2009
    - Tag for 6.6.34 release, all platforms
      boinc_core_release_6_6_34

    /
        configure.ac
        version.h

Charlie 5 June 2009
    - MGR: CBOINCClientManager::ProcessExists() finds the process by name if 
        we don't have a pid (Mac, Linux) or process HANDLE (Windows).  On Mac
	  and Linux, it returns the pid if the process was found.
    
    clientgui/
        BOINCClientManager.cpp, .h
    win_build/
        boincmgr.vcproj

Charlie 5 June 2009
    - MGR: Use code like get_client_mutex() to determine if client is running.  
        New CBOINCClientManager::KillClient() uses process name to kill client 
        if we don't have a pid (Mac, Linux) or process HANDLE (Windows).  
        NOTE: Windows implementation not yet finished.
    
    clientgui/
        BOINCClientManager.cpp, .h

Charlie 5 June 2009
    - MGR: Implement CBOINCClientManager::KillClient() and IsBOINCRunning() 
        for Windows.
        NOTE: I have confirmed that the "ps -a -x -c -o command,pid" command
        as used in IsBOINCRunning() should works in Ubuntu under VMWare, but 
        it needs to be tested on other Linux platforms.
        
    clientgui/
        BOINCClientManager.cpp, .h
    win_build/
        boincmgr.vcproj

Charlie 5 June 2009
    - lib: Fix FILE_LOCK::unlock() to reset fd to -1 so FILE_LOCK works 
        correctly with repeated calls.

    lib/
        filesys.cpp

Charlie 8 June 2009
    - MGR: Fix compiler error on Windows.
    - lib: Fix compiler error on Windows.

    lib/
        filesys.cpp

Charlie 8 June 2009
    - Mac MGR: In Async RPC logic, use posix mutexes and conditions instead 
        of wxWidgets implementations on the Mac, as this appears to fix an 
        intermittent hang in wxCondition::Wait().
    
    clientgui/
        AsyncRPC.cpp, .h
        MainDocument.cpp. .h

Charlie 9 June 2009
    - lib: FILE_LOCK::lock() makes lockfile group-writable so both client and 
        manager can create and write it under sandbox security.

    lib/
        filesys.cpp

Rom    9 June 2009
    - Tag for 6.6.35 release, all platforms
      boinc_core_release_6_6_35

    /
        configure.ac
        version.h

David  4 June 2009
    - client: read app_info.xml's AFTER scanning GPUs.
        Otherwise we'll discard all GPU apps and results.

    client/
        client_state.cpp

Rom    9 June 2009
    - Tag for 6.6.36 release, all platforms
      boinc_core_release_6_6_36

    /
        configure.ac
        version.h

Charlie 10 June 2009
    - MGR: use branded Manager name in async RPC Please Wait dialog.
    
    clientgui/
        AsyncRPC.cpp

Charlie 11 June 2009
    Mac: Update copyright date in InfoPlist.strings files to 2009.

    clientgui/
        mac/
            SetVersion.cpp

Charlie 11 June 2009
    - Mac MGR: strip /n from command field of PROCINFO struct so <exclusive_app> 
        log flag works properly on Mac.
    - MGR: Change CBOINCClientManager::KillClient() to get client pid from 
        procinfo_setup() on all non-Windows platforms.

    clientgui/
        BOINCClientManager.cpp
    lib/
        procinfo_mac.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Charlie 12 June 2009
    Mac Sandbox: check_security() writes path of bad file to stderr for some  
        error codes.
    Mac MGR: fix compile break.
        
    client/
        check_security.cpp
    clientgui/
        BOINCGUIApp.cpp
    lib/
        procinfo_mac.cpp

Charlie 16 June 2009
    - MGR: Compile fix.

    clientgui/
        BOINCClientManager.cpp

David  3 June 2009
    - client: include device number in message describing NVIDIA GPU,
        and call it "NVIDIA GPU" rather than "CUDA device"
        fixes #879

    lib/
        coproc.cpp

David  3 June 2009
    - client: tweak messages

    client/
        client_types.cpp
        cs_scheduler.cpp
        cs_statefile.cpp

Charlie 3 June 2009
    - client: Fix missing argument in printf statements.
    
    lib/
        coproc.cpp,h

David  3 June 2009
    - fix to the above

    lib/
        coproc.cpp,h

Charlie 10 June 2009
    - Mac Installer: Delete any old PTP branded versions.

    mac_installer/
        PostInstall.cpp

David  16 June 2009
    - client: prepend rather than append to LD_LIBRARY_PATH;
        on Mac, change DYLIB_LIBRARY_PATH also.

    client/
        app_start.cpp

Charlie 16 June 2009
    - MGR: Fix Mac compile error in addition of DYLIB_LIBRARY_PATH.
        
    client/
        app_start.cpp

Rom    19 June 2009
    - MGR: Fix a long standing bug where the project list control
        for the account manager info page and the project info page
        was not consuming available screen space.  Previously
        we hacked around it by setting an explicit size.
        
        Note: this works on Windows, I don't yet know about Mac and
          Linux.
          
    clientgui/
        AccountManagerInfoPage.cpp, .h
        ProjectInfoPage.cpp
        ProjectListCtrl.cpp, .h

Charlie 16 June 2009
    - MGR: Fix fatal error which caused crash in Accoount Manager Wizard.

    clientgui/
        AccountManagerInfoPage.cpp

David  26 June 2009
    - client: when suspending a GPU job,
        always remove it from memory, even if it hasn't checkpointed.
        Otherwise we'll typically run another GPU job right away,
        and it will bomb out or revert to CPU mode because it
        can't allocate video RAM

    client/
        app.cpp

Rom    30 June 2009
    - MGR: Remove project list randomization, sort on name.
    
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.cpp

Rom    30 June 2009
    - MGR: Previous sorting method wasn't working, use a sort
        function pointer instead.
        
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.cpp

David  30 June 2009
    - client: record the time results are received.
        Process non-EDF GPU jobs in this order.

    client/
        client_types.cpp,h
        cpu_sched.cpp
        cs_scheduler.cpp
    clientgui/
        DltItemProperties.cpp
    lib/
        gui_rpc_client_ops.cpp
        gui_rpc_client.h

Rom    6 June 2009
    - Tag for 6.6.37 release, all platforms
      boinc_core_release_6_6_37

    /
        configure.ac
        version.h
        
Charlie 7 July 2009
    - Mac Installer: use escaped form of branded screensaver name when needed.
    (checked in to 6.6.37 tag.)

    mac_installer/
        PostInstall.cpp
