David  1 Jan 2011
    - fix some bad file permissions
    - delist defunct stats site

    clientgui/
        DlgItemProperties.cpp,h
        AsynRPC.cpp
    html/inc/
        stats_sites.inc
    samples/
        wrapper/
            wrapper.cpp
        example_app/
            uc2.cpp
    client/
        sim_control.cpp

David  2 Jan 2011
    - unix build: remove hardwired -ldl

    lib/
        Makefile.am

David  3 Jan 2011
    - client: show a given system notice at most once a week

    client/
        client_msgs.cpp
        sim_control.cpp
        cs_notice.cpp

Charlie 4 Jan 2010
    - Mac: Fix symbol table generation.
    
     mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  6 Jan 2011
    - user web: fix bugs in server status page
    - fix some indentation

    html/user/
        server_status.php
    client/
        *.cpp

David  6 Jan 2011
    - simulator work
    - fix some indentation

    various files

David  11 Jan 2011
    - client: use std::deque instead of std::vector
        for RR sim's pending-job lists.
        Erasing head of vector is slow.
    - lib: allow GPU peak FLOPS to be specified in XML (for simulator)
    - simulator work
    - client: old work fetch policy: projects may need enough jobs
        for all device instances, not just resource_share*ninst.
        E.g. a project that has only CPU jobs in a CPU/GPU client
    - client: with REC scheduling, don't ask for work for
        secondary resources if project has negative priority.
    - client: in RR sim, make sure we saturate devices if possible.
        Otherwise we may report a shortfall incorrectly
    
    client/
        coproc_detect.cpp
        cpu_sched.cpp
        rr_sim.cpp,h
        sim.cpp
        sim_control.php
        sim_scenario.php (new)
        work_fetch.cpp,h
    lib/
        coproc.cpp,h
    sched/
        sched_customize.cpp
        sched_types.cpp

David  11 Jan 2011
    - client: set PROJECT::last_upload_start when a job completes,
        NOT when its first upload starts.
        This prevents a scheduler RPC from happening between the two.
        This was a bug in [22841]

    client/
        cs_apps.cpp
        pers_file_xfer.cpp

David  12 Jan 2011
    - client: tweak [22842] so that system clock changes
        of < 60 seconds are ignored

    client/
        client_state.h

Rom    12 Jan 2011
    - MGR: Embed the BOINC skin in the executable using XPM files.

    clientgui/res/skins/default/graphic/
        <Various Files>
    clientgui/
        SkinManager.cpp
    win_build/
        boincmgr.vcproj

David  12 Jan 2011
    - single-job submission system: don't hardwire i686 architecture;
        make it work on any Linux system.
        From Steffen Moller.

    html/ops/
        single_job_setup.php

Rom    13 Jan 2011
    - MGR: Disable the background repaint events for the SGUI Messages and
        SGUI Preferences dialog.  Changing the font color wasn't as easy as
        I had hoped and the black background for the skin doesn't do any
        good when the text itself is black as well.
        
    clientgui/
        sg_DlgMessages.cpp
        sg_DlgPreferences.cpp

David  13 Jan 2011
    - scheduler/client/API: pass user ID and team ID from scheduler to client,
        and from client to app (host ID is already passed).
        E@h asked for this, not sure why.

    client/
        client_types.cpp,h
        app_start.cpp
    lib/
        app_ipc.cpp,h
    sched/
        sched_types.cpp

Rom    13 Jan 2010
    - MGR: re-enable background painting and just change the default background
        color for the new default skin to light gray.
        
    clientgui/
        sg_DlgMessages.cpp
        sg_DlgPreferences.cpp

Bernd  14 Jan 2011
    - unix build system: generate_svn_version
      - generate version string from plain git repositories, too
      - define SVN_REPOSITORY (URL) and SVN_REVISION (numerical) separately
        so these could be used in proprocessor directives 

    generate_svn_version.sh

David  14 Jan 2011
    - make the Manager build on FC11
    - simulator work

    clientgui/
        Makefile.am
    sched/
        edf_sim.cpp
    client/
        sim.cpp
        sim_control.php

David  15 Jan 2011
    - client: fix job scheduling bug.
        Scenario: we have 2 CPUs and 1GB RAM
        Project A has jobs that use 1GB.
        Project B has small-mem jobs.
        Currently, we ignore RAM usage in building the runnable job list,
        so we might pick 2 jobs from project A.
        enforce_schedule() (which checks RAM usage) will run just one of them,
        and the other CPU will be idle.
        Solution: keep track of RAM usage while building the runnable job list.
    client/
        cpu_sched.cpp

David  15 Jan 2011
    - client: code cleanup in CPU scheduling;
        eliminate global variable

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

Charlie 18 Jan 2011
    Mac: update release script to remove install of separate BOINC skin.

    mac_installer/
        release_boinc.sh

David  18 Jan 2011
    - simulator work

    client/
        cpu_sched.cpp
        work_fetch.h
        sim.cpp
        sim_control.cpp
        client_types.cpp

David  19 Jan 2011
    - client: eliminate unnecessary CPU reschedules.
        Currently we do a reschedule any time a job checkpoints,
        in case there's a job that has finished a time slice
        but hasn't checkpointed yet.
        Instead: flag such jobs, and trigger a reschedule
        on checkpoint only for flagged jobs.
    - client: fix instability in job scheduling that happens
        if a job's estimated completion time in RR sim is close to its deadline.
        It can alternate between making and missing deadline,
        causing the scheduler to alternate rapidly between jobs.
        Solution: if RR sim has marked a job as deadline miss
        any time in the last (CPU scheduling period),
        treat it as a deadline miss.

    client/
        app.cpp,h
        rr_sim.cpp
        app_control.cpp
        cpu_sched.cpp

David  19 Jan 2011
    - client: if we're using an acct mgr,
        and we're attached to a project manually (not via acct mgr)
        and the acct mgr tells us to detach from it, don't.

    client/
        acct_mgr.cpp

David  19 Jan 2011
    - server: fix for EmBOINC

    sched/
        sched_util.cpp

David  24 Jan 2011
    - server: disable upload certificates by default.
        These increase server load and it's not clear they're needed.
        
    py/Boinc/
        setup_project.py

Rom    25 Jan 2011
    - MGR: Fix advanced view button is Simple GUI.
        (Button Text is Verdana 8pt. in MS Paint)
    
    clientgui/res/skins/default/graphic/
        advanced_link_image.xpm
    clientgui/res/templates/skins/
        advanced_link_image.gif (Added)
        btnAdvancedView.png (Removed)

David  25 Jan 2011
    - client: accept <options/> and <log_flags/> in cc_config.xml
    - client: reset log flags (as well as options) when rereading cc_config.xml

    client/
        log_flags.cpp,h

David  25 Jan 2011
    - web: tweaks so that BOINC-Wide Teams site can warn people if
        their email address is not validated

    html/
        inc/
            user.inc
        user/
            edit_email_action.php

Charlie 27 Jan 2011
    Mac: update Mac_SA_Insecure.sh script to not require BOINC Client in 
        BOINC Data folder.

     mac_build/
        Mac_SA_Insecure.sh

Charlie 27 Jan 2011
    - MGR: Add new Simple GUI.
    
    clientgui/
        AdvancedFrame.cpp, .h
        BOINCGUIApp.cpp, .h
        Events.h
        sg_BoincSimpleFrame.cpp, .h (new)
        sg_CustomControls.cpp, .h
        sg_PanelBase.cpp, .h (new)
        sg_ProjectCommandPopup.cpp, .h (new)
        sg_ProjectPanel.cpp, .h (new)
        sg_ProjectWebSitesPopup.cpp, .h (new)
        sg_TaskCommandPopup.cpp, .h (new)
        sg_TaskPanel.cpp, .h (new)
        SkinManager.cpp
        mac/
            MacBitmapComboBox.cpp, .h (new)
        res/
            RedDot16.xpm (new)
            YellowDot16.xpm (new)
            GreenDot16.xpm (new)
     mac_build/
        boinc.xcodeproj/
            project.pbxproj
    win_build/
        boincmgr.vcproj

David  27 Jan 2011
    - client: fix bug in setting GPU peak flops

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

Charlie 28 Jan 2011
    - MGR: Fix default skin selection display in Simple Preferences 
            dialog.
    - MGR: Use standard native buttons in Simple Preferences and 
            Simple Notices dialogs.
    - MGR: Use our control IDs instead of wxID_HELP for Help buttons 
        for Mac accessibility (wxID_HELP makes a bitmap button on 
        Macs which VoiceOver screen reader can't read.)
    - MGR: Disable tooltips on Mac while new simple GUI menus are 
        popped up because they cover menus.
       
    clientgui/
        DlgAdvPreferences.cpp
        DlgAdvPreferencesBase.cpp
        sg_BoincSimpleFrame.cpp
        sg_DlgMessages.cpp
        sg_DlgPreferences.cpp
        sg_ProjectCommandPopup.cpp
        sg_ProjectWebSitesPopup.cpp
        sg_TaskCommandPopup.cpp
        wizardex.cpp
        SkinManager.cpp
        mac/
            MacBitmapComboBox.cpp, .h
     mac_build/
        boinc.xcodeproj/
            project.pbxproj
 
David  28 Jan 2011
    - back end: allow the specification of a read-only DB replica
        (in config.xml) to include DB name, user, and password.
    - back end: add read-only replica info to SCHED_CONFIG,
        so that C++ programs can use the replica
        (currently only PHP code can use it)
    - db_dump: use the read-only DB replica if it exists.

    html/inc/
        boinc_db.inc
        db.inc
    sched/
        sched_config.cpp,h
        db_dump.cpp

David  28 Jan 2011
    - new script sched/transitioner_catchup.php: transitions all WUs
        that need it, then exits.
        For big projects coming up after an outage, run this before bin/start
        to minimize startup overload
    - tweaks to PHP libraries to allow them to be used
        by scripts anywhere in the dir hierarchy

    sched/
        transitioner_catchup.php
    html/inc/
        boinc_db.inc
        util_basics.inc
    py/Boinc/
        setup_project.py

Charlie 29 Jan 2011
    - MGR: Code cleanup.
    
    clientgui/
        sg_PanelBase.cpp, .h
        sg_ProjectPanel.cpp, .h
        sg_TaskPanel.cpp, .h

Charlie 30 Jan 2011
    - MGR: New Simple GUI optimization.
    
    clientgui/
        sg_BoincSimpleFrame.cpp
        sg_PanelBase.cpp
        sg_TaskPanel.cpp, .h

Charlie 30 Jan 2011
    - MGR: Fix compile break on Linux.
    
    clientgui/
        sg_DlgPreferences.cpp

Charlie 31 Jan 2011
    - MGR: Update Makefile.
    - MGR: New Simple GUI optimization.

    clientgui/
        Makefile.am
        sg_TaskPanel.cpp, .h

Charlie 31 Jan 2011
    - Mac: Add info about dual-GPU Powerbooks to ReadMe files.
    
    mac_installer/
        GR-ReadMe.rtf
        PTP-ReadMe.rtf
        ReadMe.rtf

David  1 Feb 2011
    - client: make "wrong URL" message not be a notice
    - web: fix caching problem when PHP not installed as Apache module

    html/inc/
        cache.inc
    client/
        cs_scheduler.cpp

Charlie 1 Feb 2011
    - Mac: Localize items in Mac's BOINC menu.
    
    clientgui/
        AdvancedFrame.cpp
        sg_BoincSimpleFrame.cpp
        mac/
            MacGUI.pch
            Mac_GUI.cpp

Charlie 1 Feb 2011
    - MGR: Use branded short application name in Help tooltips instead 
        of always using "BOINC".
    - Mac: Eliminate unused source files Localization.cpp, .h from Mac 
        project.

    clientgui/
        DlgEventLog.cpp
        sg_BoincSimpleFrame.cpp
        sg_DlgMessages.cpp
        sg_DlgPreferences.cpp
        sg_ProjectsComponent.cpp
     mac_build/
        boinc.xcodeproj/
            project.pbxproj

Rom    1 Feb 2011
    - WINSETUP: Avoid a 0xc0000135 error by giving the boinc_master and
        boinc_project membership in the 'Users' group.  Dynamic linking
        to nvcuda.dll was failing because the project applications were
        being denied access to DLLs in the system directory.
        
    win_build/installerv2/redist/Windows/src/boinccas/
        boinccas.rc
        CACreateBOINCGroups.cpp
    win_build/installerv2/redist/Windows/Win32/
        boinccas.dll
        boinccas95.dll
    win_build/installerv2/redist/Windows/x64/
        boinccas.dll
        boinccas95.dll

David  1 Feb 2011
    - create_work: add -d option

    tools/
        create_work.cpp

Rom    3 Feb 2011
    - MGR: Enable the volunteer configurable 'shutdown core client' feature
        on exit for Linux.  It was orginally supposed to be enabled when
        the balloon features were enabled, but got lost in ifdef hell.
        (From "Lee")
        
    clientgui/
        DlgExitMessage.cpp
        MainDocument.cpp

David  3 Feb 2011
    - create_work: add some debugging printfs for Kamran

    tools/
        backend_lib.cpp
    html/
        inc/
            forum.inc
            profile.inc
        user/
            weak_auth.php

Charlie 3 Feb 2011
    - MGR: Eliminate unnecessary #ifdef.
        
    clientgui/
        BOINCGUIApp.cpp

David  4 Feb 2011
    - client/manager: show venue in project properties

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

David  7 Feb 2011
    - manager: msg tweak
    client/
        CompletionErrorPage.cpp

David  7 Feb 2011
    - client: don't crash if omit cmdline port#.  Fixes #1040

    client/
        cs_cmdline.cpp

Rom    8 Feb 2011
    - MGR: Fix a bug that is several years old, appears to have been
        introduced during the Unicode conversion phase for Windows. Passing
        a wide character string into an narrow character function causes
        a NULL reference exception.
        
        TODO: There is still an issue if the manager attempts to write to
          stderr when the BOINC Manager log files are redirected to a
          directory the user doesn't have access to.
          
    clientgui/
        SkinManager.cpp

David  8 Feb 2011
    - user web: add "delete account" feature.
        This allows a user to delete all traces of themselves from a project.
        Namely:
        - clear fields of user record: email_addr, authenticator,
            name, country, postal_code
            Note: record is not deleted
        - clear the domain_name and last_ip_addr fields of hosts
            Note: records are not deleted
        - quit team
        - delete private messages sent and received
        - delete forum posts, subscriptions, and forum prefs
        - delete profile and associated images
    - server: compile fix

    html/
        inc/
            pm.inc
            host.inc
            forum.inc
            user.inc
            util.inc
        user/
            delete_account.php
            stats.php
    tools/
        backend_lib.cpp

David  8 Feb 2011
    - create_work and possibly other back-end programs:
        fix bug that corrupted WU command lines.
        The problem: we were using strcpy(p, p+n) to delete the
        first n characters of p.
        This is incorrect - the behavior of strcpy() is undefined
        if its args overlap.
        On some systems (e.q. AQUA's server) it does wacky things.

    tools/
        backend_lib.cpp
    lib/
        str_util.cpp,h
        parse.cpp

David  9 Feb 2011
    - user web: apparently if you put links of the form
        http://setiathome.berkeley.edu/help.php?key=Viagra.uk
        all over the web, Google will list "Viagra.uk" in your site outline (why??).
        Preliminary checkin for dealing with this.

    html/
        inc/
            prefs.inc
            util.inc
        user/
            view_profile.php
            account_finish.php
            am_get_info.php
            add_venue.php

David  9 Feb 2011
    - user web: make all forum tables full-width
    html/inc/
        forum.inc

David  9 Feb 2011
    - user web: finish dealing with get args spam

    html/
        user/
            *.php
        inc/
            pm.inc
            prefs.inc
            forum.inc
            util.inc

David  9 Feb 2011
    - user web: appearance tweaks

    html/
        inc/
            forum.inc
        user/
            forum_help_desk.php
            forum_index.php
            white.css

David  10 Feb 2011
    - user web: fix "nowrap" post display

    html/inc/
        forum.inc

David  10 Feb 2011
    - user web: CSS cleanup.
        Use classes instead of IDs.
        white.css and black.css are cleaned up; style2.css needs work

    html/
        inc/
            pm.inc
            forum.inc
            user.inc
            util.inc
        user/
            pm.php
            sample_index.php
            forum_thread.php
            main.css
            forum_help_desk.php
            friend.php
            forum_forum.php
            forum_index.php
            style2.css
            white.css

David  10 Feb 2011
    - client: if a logical filename contains /'s,
        create the needed dirs under the slot dir
    - user web: pages with translatable text should not be cached.
        Fix this for home page; there are some others

    client/
        app_start.cpp
    html/user/
        sample_index.php

David  11 Feb 2011
    - manager: project properties: if no venue, show "default"

    clientgui/
        DlgItemProperties.cpp

David  11 Feb 2011
    - user web: style tweaks
    html/user/
        forum_post.php
        main.css
        white.css

David  11 Feb 2011
    - user web: disable "delete account" feature

    html/
        user/
            delete_account.php
        inc/
            user.inc

David  11 Feb 2011
    - user web: bug fixes
    html/user/
        team_quit_action.php
        team_manage.php
        forum_moderate_post.php

David  13 Feb 2011
    - user web: fix venue change
    html/
        inc/
            prefs.inc
            util.inc
        user/
            host_venue_action.php

David  13 Feb 2011
    - user web: bug fixes

    html/user/
        forum_moderate_thread.php
        add_venue.phhp

David  13 Feb 2011
    - user web: bug fix

    html/user/
        forum_reply.php

David  13 Feb 2011
    - user web: bug fix
    html/user/
        forum_banishment_vote_action.php

David  14 Feb 2011
    - user web: bug fix
    html/user/
        pm.php

David  14 Feb 2011
    - user web: fix [img] BBcode problem
    html/inc/
        text_transform.inc

David  14 Feb 2011
    - user web: various fixes
    html/
        inc/
            prefs.inc
        user/
            main.css
            prefs_remove.php
            forum_reply.php
            white.css
            add_venue.php
            forum_edit.php

David  14 Feb 2011
    - user web: fixes
    html/user/
        sample_index.php
        main.css

David  14 Feb 2011
    - client, linux: use X server for idle detection if available

    configure.ac
    client/
        hostinfo_unix.cpp

Charlie 15 Feb 2011
    Mac: Make backtrace compile properly with OS 10.5 and OS 10.6 SDKs.
    
    lib/
        mac/
            QBacktrace.c
            QCrashReport.c

Charlie 15 Feb 2011
    Mac Installer: Fix the code which deletes installer receipts to use  
        the current package name (which changed when I eliminated the 
        Mac installer wrapper application around the installer package.)
        This is needed to allow installing an older version to replace a  
        newer one under OS 10.4.x.

    mac_installer/
        PostInstall.cpp
        uninstall.cpp

David  15 Feb 2011
    - transitioner: fix bug that could cause file deletion to not be done
        for some WUs
    - back end: fix the way "report grace period" is implemented
        old: result.report_deadline (i.e. what's in the DB) and
            the deadline sent to the client are the same.
            Some confusing and incorrect logic in the transitioner
            tries to provide the desired semantics.
        new: result.report_deadline is the deadline sent to the client,
            plus the grace period.
            No logic in the transitioner is needed.

    db/
        boinc_db.cpp,h
    sched
        sched_config.cpp,h
        sched_send.cpp
        transitioner.cpp
        sched_resend.cpp
        
David  15 Feb 2011
    - file upload handler: if client-reported offset is less than file size,
        don't just print an error message;
        lseek() back to the offset point.
        Otherwise we can end up with duplication in the file.

    sched/
        file_upload_handler.cpp

David  15 Feb 2011
    - update_versions: if FILE.file_ref_info contains <open_name>,
        use that instead of physical name.
        This lets you have logical names with slashes

    py/Boinc/
        tools.py

Charlie 16 Feb 2011
    Mac: More thorough error checking and recovery in code which localizes 
        items in Mac's BOINC menu.
    
        mac/
            Mac_GUI.cpp

David  16 Feb 2011
    - user web: fixes to private message functions

    html/user/
        pm.php

David  16 Feb 2011
    - client: fix work-fetch bug.
        The change in [21877] caused tasks in "download stalled" state
        to be skipped in RR simulation,
        and therefore to not be counted in the work buffer.
        However, "download stalled" was not being evaluated correctly;
        it was considering only per-file backoff, not project-wide backoff.
    - client: another work-fetch bug:
        don't fetch work from a project in project-wide download backoff.

    client/
        client_types.cpp

David  16 Feb 2011
    - client: fix bug in mechanism that defers work request until
        pending uploads are finished.
        Due to a typo, this was not being done.

    client/
        cs_scheduler.cpp

David  16 Feb 2011
    - client: when exclusive app mechanism is used (CPU or GPU)
        wait for 30 secs after excl app exits
        before restarting computation

    client/
        app.cpp,h
        client_state.h
        cs_prefs.cpp

Charlie 17 Feb 2011
    Mac: Additional error checking and release created objects in code 
        which localizes items in Mac's BOINC menu.
    
        mac/
            Mac_GUI.cpp

Charlie 17 Feb 2011
    - Mac installer: update branded build scripts to eliminate wrapper 
        application around install package (as was done for BOINC 6.12.7).
    
    clientgui/
        res/
            MacPTPPkgIcon.zip (new)
            MacGRPkgIcon.zip (new)     
    mac_installer/
        make_GridRepublic.sh
        make_ProgThruProc.sh

David  17 Feb 2011
    - file upload handler: fix faulty bug fix of 2/15
    - client: make REC-based scheduling and hysteresis the defaults

    client/
        work_fetch.cpp
    sched/
        file_upload_handler.cpp

David  17 Feb 2011
    - client: when detach project, remove its RSS feeds from list
    - client: remove once-per-week limit for client-generated notices;
        need to show "network connection required" more often
    - client: when remove "network conn required" notice
        (because now have conn)
        set the flag that says complete notice list is being sent
    - client: if RSS feed fetch returns <error_num>,
        show the corresponding message rather than "XML parse error"

    client/
        client_state.cpp
        cs_notice.cpp
        gui_rpc_server_ops.cpp
        http_curl.cpp
        net_stats.cpp,h

Rom    18 Feb 2011
    - client: Fast User Switching does not change the session protocol
        to RDP when the active session is put into the background and
        a new one is brought into the foreground.  It appears it is safe
        to use the connected state in addition to the protocol
        to detect when the session is no longer capable of processing
        GPU work
        
    lib/
        win_util.cpp

Charlie 18 Feb 2011
    - Mac: Update link to NVIDIA CUDA Mac driver download page
    
    mac_installer/
        GR-ReadMe.rtf
        PTP-ReadMe.rtf
        ReadMe.rtf

David  18 Feb 2011
    - client: more notice-related fixes.
        I'm working on this case:
        - start up
        - disconnect (produces notice)
        - reconnect (removes notice)
        The client is now doing the right thing.
        The manager is not.

    client/
        acct_setup.h
        cs_notice.cpp,h
        gui_rpc_server.h
        gui_rpc_server_ops.cpp

David  19 Feb 2011
    - wrapper: add optional <exec_dir> element in <task> elements;
        specifies a directory to run app in.
        macro-substitute project dir for $PROJECT_DIR.
        From Carl Christensen, more or less

    samples/wrapper/
        wrapper.cpp

David  19 Feb 2011
    - wrapper: add optional <setenv> element in <task> elements;
        specifies an environment variable assignment;
        macro-substitute project dir for $PROJECT_DIR.
        From Carl Christensen

    samples/wrapper/
        wrapper.cpp

David  19 Feb 2011
    - client: make "wait 30 sec after exclusive app exits" apply to network too
    - client: fix bug in "wait 30 sec after exclusive app exits" logic
    - client: fix compile warning and possible bug in is_remote_desktop()
    - win: remove wrappture_example from solution
        (until Hubzereo guys get their win lib working)

    client/
        app.cpp
        cs_prefs.cpp
    lib/
        win_util.cpp
    samples/wrapper/
        wrapper.cpp
    win_build/
        boinc.sln

David  20 Feb 2011
    - wrapper: Windows fixes

    samples/wrapper/
        wrapper.cpp

David  20 Feb 2011
    - client: fix disk-space accounting bug when user quotas in use
        (Windows)

    lib/
        filesys.cpp

Charlie 21 Feb 2011
    - client: fix compiler warning.
        
    client/
        cs_notice.cpp

David  22 Feb 2011
    - client: add cpu_sched debug messages for anti-domino-effect
        and anti-thrasing mechanisms
    - wrapper: to kill an app, use SIGTERM instead of SIGKILL
    client/
        acct_mgr.cpp
        cpu_sched.cpp
    samples/wrapper/
        wrapper.cpp

David  22 Feb 2011
    - wrapper: improve and bullet-proof the way we kill apps.
        Win: enumerate all descendants, and kill them all TerminateProcess().
        Unix:
            send the main process a SIGTERM.
            Check once a sec for existence of descendants.
            if none, done
            If any still exist after 10 sec, kill all descendants
    - wrapper fix bug in Win env var stuff
    - scheduler: check for VBox version 3.2+ in app_plan()
        
    sched/
        sched_customize.cpp
    lib/
        procinfo.h
        procinfo.cpp (new)
        procinfo_win.cpp
        procinfo_unix.cpp
        Makefile.am
    samples/wrapper/
        wrapper.cpp

David  22 Feb 2011
    - client: send <?xml version="1.0" encoding="UTF-8" ?>
        at start of scheduler and account manager requests.

    client/
        cs_scheduler.cpp
        acct_mgr.cpp
        cpu_sched.cpp

David  22 Feb 2011
    - client: don't send <?xml to scheduler; it doesn't expect it
    - scheduler: handle optional <?xml

    sched/
        sched_types.cpp
    client/
        cs_scheduler.cpp

Charlie 22 Feb 2011
    - Mac: Fix compile error; add new procinfo.cpp to XCode Project.

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

David  22 Feb 2011
    - client: wait 15 seconds (instead of 5) for an app to exit
        before killing it.
        Apparently some apps take ~10 sec on slow computers.

    client/
        client_state.h
        app_control.cpp

David  22 Feb 2011
    - client: in the loop that starts up apps,
        check if we've been in the loop for 10 sec.
        If so, break out of it and reschedule.
        Avoid starving GUI RPCs and heartbeats.

    client/
        cpu_sched.cpp
        client_state.h

David  23 Feb 2011
    - client: finish [22902] (pass user ID, team ID to apps).
        Forgot to parse them in scheduler reply.

    client/
        scheduler_op.cpp

David  23 Feb 2011
    - scheduler: fix nasty bug introduced in [23040]
        that caused no jobs to be sent.

    db/
        boinc_db.cpp,h
    sched/
        sched_config.cpp,h
        sched_resend.cpp
        
David  23 Feb 2011
    - client: on finish upload, trigger work fetch
        (since we may have been waiting for upload finish)
    - client: fix crash: if remove an RSS feed, remove its active HTTP op if any.

    client/
        cs_notice.cpp
        pers_file_xfer.cpp
        work_fetch.cpp

David  24 Feb 2011
    - scheduler: fix a problem with job resend.
        When we first send a job, we pick an app version,
        then call wu_is_infeasible_fast()
        to see if the host is able to run the job with that app version.
        In addition to checking disk space etc.
        this calls wu_is_infeasible_custom() to do project-specific checks
        (e.g. for SETI@home: don't use GPUs for VLAR jobs).

        However, when we resend a job, we pick an app version
        (possibly different from the original one)
        and send the job without any checking.
        So, for example, we might send a VLAR job to a GPU,
        or send a job to a host with insufficient disk space
        (because free space has changed since original send).

        Solution: call wu_is_infeasible_fast() before resending a job,
        and if it returns true, mark the job as done and don't resend it.

    sched/
        sched_send.cpp
        sched_resend.cpp

David  24 Feb 2011
    - user web: fix "host delete" function
    - client: fix msg typo

    client/
        cpu_sched.cpp
    html/user/
        host_delete.cpp

David  24 Feb 2011
    - user web: fix "friend" functions

    html/user/
        friend.php

David  24 Feb 2011
    - wrapper: add "daemon" feature.
        A task descriptor may contain <daemon>.
        Daemons are started before regular tasks,
        run concurrently with them, and are killed on exit.

    samples/wrapper/
        wrapper.cpp

David  24 Feb 2011
    - client: remove auto update stuff from makefiles.
        This feature is mothballed.

    client/
        client_state.cpp,h
        scheduler_op.cpp,h
        file_names.cpp
        cs_scheduler.cpp
        cs_statefile
        Makefile.am

David  24 Feb 2011
    - wrapper: fixes from Carl

    lib/
        procinfo_win.cpp
    samples/wrapper/
        wrapper.cpp

Charlie 24 Feb 2011
    - Mac: Remove auto_update.cpp, auto_update.h from XCode Project.

     mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  25 Feb 2011
    - user web:
        - in friend request notification, link to user page
        - in user page, show ID
        - remove "Account data for " in page title

    html/
        inc/
            user.inc
            friend.in
        user/
            show_user.php

Rytis  26 Feb 2011
    - user web: add a config option to always show workunit details when using
        adaptive replication.
    
    html/user/
        workunit.php

David  26 Feb 2011
    - user web: fix wrong user ID

    html/inc/
        user.inc

David  26 Feb 2011
    - back end: add two example trickle handlers:
        trickle_credit: grants credit based on CPU time reported in msg
        trickle_echo: echoes trickle-up as a trickle-down

    sched/
        trickle_handler.cpp, h (new)
        sched_result.cpp
        trickle_credit.cpp
        credit.cpp,h
        trickle_echo.cpp
        validator.cpp
        Makefile.am

David  28 Feb 2011
    - user web: add a feature allowing project admins to control
        whether news items are exported as notices.
        The creator of a news item is shown a "Don't export" or "Export"
        button on the thread page.
        By default, news items are exported.

    db/
        schema.sql
    html/
        inc/
            news.inc
        user/
            forum_thread.php
            notices.php
            forum_thread_status.php

David  28 Feb 2011
    - user web: bug fix to the last checkin
    - boinccmd: fix --get_project_config operation

    html/user;
        forum_thread_status.php
    client/
        boinc_cmd.cpp

David  2 Mar 2011
    - user web: show date/time on friend request page

    html/user/
        friend.php

Rom    2 Mar 2011
    - MGR: Properly handle the case where the only notice in the manager
        is the 'no notice' notice and then we transition to a single notice
        from another source.

    clientgui/
        NoticeListCtrl.cpp, .h

David  2 Mar 2011
    - manager: show notice create time rather than arrival time
    - client: don't show "need network" notice if we don't need it

    clientgui/
        NoticeListCtrl.cpp
    client/
        cs_notice.cpp

David  2 Mar 2011
    - client: when get a bunch of notices from RSS feed,
        sort them by create time before appending to notice list.
        This ensures that, in the Notices tab,
        notices are ordered decreasing create time within an RSS feed
        (though not necessarily across feeds)

    client/
        cs_notice.cpp,h

Rom    2 Mar 2011
    - MGR: Turn -boincargs into a string instead of an option.

    clientgui/
        BOINCGUIApp.cpp

Rom    2 Mar 2011
    - MGR: Turn off the task pane for the notices tab.
    
    clientgui/
        ViewNotices.cpp

Rom    2 Mar 2011
    - MGR: Disable our color scheme is a non-white background is selected
        for the current theme. My commit on 3 Mar 2010 wasn't good enough
        for High-Contrast themes.
        
    clientgui/
        BOINCBaseView.cpp
        DlgEventLog.cpp

David  2 Mar 2011
    - client: in deciding whether to remove the "need network" notice,
        we were using the wrong (too high-level) interface

    client/
        cs_notice.cpp

Charlie 3 Mar 2011
    - MGR: Remove the old SimpleGUI from the projects.  The following 
        source files are no longer used; they have been removed from the 
        builds, but have not yet been deleted from the SVN repository:
        sg_BoincSimpleGUI.cpp,.h, sg_ClientStateIndicator.cpp,.h, 
        sg_ImageButton.cpp,.h, sg_ImageLoader.cpp,.h, sg_ProgressBar.cpp,.h, 
        sg_ProjectsComponent.cpp,.h, sg_StatImageLoader.cpp,.h, 
        sg_ViewTabPage.cpp,.h
        
    clientgui/
        AdvancedFrame.cpp, .h
        BOINCGUIApp.cpp, .h
        Events.h
        Makefile.am
        sg_BoincSimpleFrame.cpp, .h
     mac_build/
        boinc.xcodeproj/
            project.pbxproj
    win_build/
        boincmgr.vcproj

Rom    3 Mar 2011
    - MGR: Change the reminder frequency interval to hours and adjust the min/max
        values to 0/24.  Default value is now 6 hours between notification reminders.
        
    clientgui/
        BOINCBaseFrame.cpp
        BOINCDialupManager.cpp
        BOINCTaskBar.cpp
        DlgOptions.cpp

David  3 Mar 2011
    - client: fix inaccuracy in RR simulation reported by Bill Barber.
        The problem arises when there are jobs of projects
        with widely differing resource shares,
        and results in an overestimation of saturated time.

        Old: at the start of simulation, call WORK_FETCH::compute_shares() 
            to get resources of runnable projects.
            Use these throughout the simulation.

        Problem: suppose you have 2 runnable projects;
            P1 has large RS, P2 has small RS.
            P1's jobs finish quickly.
            P2's jobs then are running alone,
            but their FLOPS is scaled (incorrectly) by P2's small RS.

        Solution: recompute relative CPU resource share within the
            simulation loop,
            and compute it over the projects that have actives jobs
            in the simulation.
    client/
        rr_sim.cpp
        client_types.h

Charlie 3 Mar 2011
    - MGR: reduce duration of notifications on Mac from 15 to 5 seconds.

    clientgui/
        BOINCTaskBar.cpp

David  3 Mar 2011
    - manager: fix copyright date in about box

    clientgui/
        DlgAbout.cpp

David  4 Mar 2011
    - scheduler: if we're not sending jobs because of user prefs
        (no CPU, no GPU, selected apps)
        send a message, not a notice.
        Assume the user knew what they were doing,
        and doesn't want to be nagged.
    - scheduler: check for the existence of an app version
        before checking for user selected-app prefs.
        This prevents sending "no jobs available for selected apps"
        message when no app versions exist for non-selected apps
    - scheduler: use "tasks" instead of "work" in user messages

    sched/
        sched_array.cpp
        sched_send.cpp

David  4 Mar 2011
    - client: fix spurious error when removing a notice RSS feed

    client/
        cs_notice.cpp

David  6 Mar 2011
    - client: print smoothed as well as instantaneous WSS
    - manager: make RPC reason strings translatable

    client/
        app.cpp
    clientgui/
        ViewProjects.cpp

Rom    7 Mar 2011
    - MGR: Refactor part of the Options dialog out of the Advanced Frame
        code.
    - MGR: Change the Reminder Frequency option in the Options dialog to
        a combo box.
        
    TODO: Change the taskbar logic to handle the 'always' case.
    
    clientgui/
        AdvancedFrame.cpp
        BOINCBaseFrame.cpp, .h
        BOINCTaskBar.cpp
        DlgOptions.cpp, .h

Rom    7 Mar 2011
    - MGR: ComboBox's are zero index based.
    
    clientgui/
        DlgOptions.cpp, .h

Rom    7 Mar 2011
    - MGR: Handle the 'always' option by only popping a new balloon if the
        unread notice count differs from the last time we popped a
        balloon.
        
    clientgui/
        BOINCTaskBar.cpp, .h

Rom    7 Mar 2011
    - MGR: Don't attempt to set the project or account manager if the project
        list control does not contain any items.  This can cause a crash
        if the all_projects_list.xml is empty.
        
    clientgui/
        AccountManagerInfoPage.cpp
        ProjectInfoPage.cpp

Charlie 7 Mar 2011
    - MGR: Fix compiler warning.
    
    clientgui/
        DlgOptions.cpp

David  7 Mar 2011
    - client: fix to [23162] that broke work fetch

    client/
        work_fetch.cpp

David  8 Mar 2011
    - client: don't put CDATA around account manager opaque data
        in request msg

    client/
        acct_mgr.cpp

Charlie 10 Mar 2011
    - MGR: Remove from Skin Manager items no longer used by SimpleGUI.
        The following source files are no longer used; they have been 
        removed from the builds, but have not yet been deleted from the 
        SVN repository: 
        
    clientgui/
        common/
            wxFlatNotebook.cpp,.h
            wxFlatNotebookImages.h
            wxFNBDropTarget.h
        res/
            skins/
                default/
                    graphic/
                        spacer_image.xpm
                        state_indicator_background_image.xpm
                        connecting_indicator_image.xpm
                        error_indicator_image.xpm
                        workunit_active_image.xpm
                        workunit_suspended_image.xpm
                        workunit_tab_area_background_image.xpm
                        workunit_area_background_image.xpm
                        workunit_animation_background_image.xpm
                        workunit_gauge_background_image.xpm
                        workunit_gauge_progress_indicator_image.xpm
                        project_area_background_image.xpm
                        attach_project_button.xpm
                        attach_project_clicked_button.xpm
                        help_button.xpm
                        help_clicked_button.xpm
                        right_arrow_button.xpm
                        right_arrow_clicked_button.xpm
                        left_arrow_button.xpm
                        left_arrow_clicked_button.xpm
                        save_button.xpm
                        save_clicked_button.xpm
                        synchronize_button.xpm
                        synchronize_clicked_button.xpm
                        cancel_button.xpm
                        cancel_clicked_button.xpm
                        close_button.xpm
                        close_clicked_button.xpm
                        copy_all_button.xpm
                        copy_all_clicked_button.xpm
                        copy_button.xpm
                        copy_clicked_button.xpm
                        messages_link_image.xpm
                        messages_alert_link_image.xpm
                        suspend_link_image.xpm
                        resume_link_image.xpm
                        preferences_link_image.xpm
                        advanced_link_image.xpm
                        wizard_bitmap.xpm
                        
        The following files have been modified:
        
    clientgui/
        BOINCGUIApp.cpp
        SkinManager.cpp, .h
        sg_DlgPreferences.cpp
     mac_build/
        boinc.xcodeproj/
            project.pbxproj
    win_build/
        boincmgr.vcproj

Bernd  10 Mar 2011
    - unix build system: generate_svn_version
      - extended support for git repos:
        generate numeric version from last commit date,
        record host, remote and branch names

    generate_svn_version.sh

David  10 Mar 2011
    - client (Win): if available, use GetActiveProcessorCount()
        rather than GetSystemInfo() to get the # of CPUs.
        GetSystemInfo() returns the # of CPUs in the caller's
        processor group, which is always <= 64 even on hosts
        with > 64 CPUs

    client/
        hostinfo_win.cpp

David  10 Mar 2011
    - manager: Add Project wizard:
        if a project has old server software and
        doesn't export platform list (e.g. Superlink)
        don't show a confusing "this project may not support
        your type of computer" message;

    clientgui/
        ProjectInfoPage.cpp

Charlie 11 Mar 2011
    - MGR: Fill in initial URL on Account Manager Wizard Selection page.
    - MGR: Add a new page to Attach Wizard to be displayed if the user 
        rejects the Terms of Use.
    - lib: Make sorts of projects and account mangers case-insensitive.
    
    clientgui/
        AccountManagerInfoPage.cpp
        Makefile.am
        TermsOfUsePage.cpp
        UserDisagreesPage.cpp, .h (new)
        WizardAttach.cpp, .h
    lib/
        gui_rpc_client_ops.cpp
     mac_build/
        boinc.xcodeproj/
            project.pbxproj
    win_build/
        boincmgr.vcproj

Charlie 11 Mar 2011
    - MGR: Fix compiler warning.

    clientgui/
        sg_BoincSimpleFrame.cpp

Rytis  12 Mar 2011
    - user web: implement Memcache as an option for caching (defaults to
        in-file cache). Can be enabled by installing php5-memcached package
        and defining MEMCACHE_SERVERS in project.inc
    
    html/
        inc/
            cache.inc
        project.sample/
            project.inc
        user/
            show_user.php
            team_display.php
            top_hosts.php
            top_teams.php
            top_users.php
            view_profile.php

David  12 Mar 2011
    - move client simulator PHP code to doc/sim

    doc/sim/
        various

Rytis  13 Mar 2011
    - user web: change remaining occurrences of fullpage caching to object
        cache. start_cache() and end_cache() are now deprecated.
    
    html/
        inc/
            cache.inc
            team.inc
        user/
            download_network.php
            server_status.php
            team_members.php
            userw.php

David  13 Mar 2011
    - validator: if --credit_from_wu is set, and no credit specified in WU,
        assign zero credit and keep going
    - client simulator work

    client/
        sim.cpp
        makefile_sim
        cs_notice.cpp
        cpu_sched.cpp
    sched/
        validator.cpp

David  14 Mar 2011
    - API: get rid of BOINC_OPTIONS::backwards_compatible_graphics.
        Not necessary.
    - wrapper: add optional <append_cmdline_args/> element to
        task descriptor.
        If set, pass the wrapper's cmdline args to that task.
        NOTE: previously they were always passed.
        If you want this behavior, you now must set this.

    samples/wrapper/
        wrapper.cpp
    api/
        boinc_api.cpp,h

Rom    14 Mar 2011
    - SCR: Follow the Mac's lead and gracefully exit the Data Management
        thread.  Preserve the handle to take more drastic actions should
        that not work.
        
    clientscr/
        mac_saver_module.cpp, .h
        screensaver.cpp
        screensaver_win.cpp, .h

David  14 Mar 2011
    - client simulator stuff

    html/user/
        forum_thread.php
    client/
        cpu_sched.cpp

David  14 Mar 2011
    - ops: update script that counts GPUs

    html/ops/
        nvidia.php

Charlie 14 Mar 2011
    - SCR: Fix compile breaks.
    
    clientscr/
        mac_saver_module.cpp

David  15 Mar 2011
    - client simulator stuff
    client/
        sim_cpp,h

David  16 Mar 2011
    - wrapper: improved subprocess cleanup, Unix

    samples/wrapper/
        wrapper.cpp
    client/
        sim.cpp

Bernd  18 Mar 2011
    Einstein@home extensions:
      - protect malloc.h
      - validator: allow to update 'random' result field
      - assimilator: add global variables results_prefix and transcripts_prefix,
        set on command-line

    sched/
        assimilator.cpp
        assimilate_handler.h
        hr_info.cpp
    db/
        boinc_db.cpp

Bernd  18 Mar 2011
    - (locality) scheduler:
      omit confusing message & backoff in mixed scheduling

    sched/
        sched_locality.cpp

David  20 Mar 2011
    - client and API: pass "network suspended" flag from client to app;
        make it available as part of BOINC_STATUS

    api/
        boinc_api.cpp,h
    html/inc/
        uotd.inc
    client/
        app_control.cpp

David  21 Mar 2011
    - wrapper: macro-substitute $NTHREADS with the --nthreads option value
        in job.xml

    samples/wrapper/
        wrapper.cpp

Rom    22 Mar 2011
    - VBox: Checkpoint for Windows
        * Creates/registers virtual machine
        * Starts/Stops virtual machine
        * Suspends/Resumes virtual machine
        * Deletes/deregisters virtual machine
      
      TODO:
        * Fraction done properly
        * Standard error streams from virtualized applications
        * Find a way to hide the VBoxHeadless application window (It can be minimized manually)

    samples/vboxwrapper/
        vbox.cpp, .h
        vbox_win.cpp
        vboxwrapper.cpp
        vm.cpp, .h

Charlie 23 Mar 2011
    - client: Define MAXPATHLEN if not defined for compatibility with HURD.
    
    client/
        hostinfo_unix.cpp

David  24 Mar 2011
    - define MAXPATHLEN, if needed, in filesys.h
    - fix typo in a GUI RPC handler

    lib/
        filesys.h
    api/
        mac_icon.cpp
        graphics2_unix.cpp
    client/
        switcher.cpp
        gui_rpc_server_ops.cpp
        check_security.cpp
        hostinfo_unix.cpp

Charlie 24 Mar 2011
    - client: Begin adding OpenCL support.
    
    client/
        coproc_detect.cpp
    lib/
        cl.h (added)
        cl_platform.h (added)
        coproc.h
     mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  24 Mar 2011
    - client: generalize the GPU framework so that
        - new GPU types can be added easily
        - users can specify GPUs in cc_config.xml,
            referred to by app_info.xml,
            and they will be scheduled by BOINC
            and passed --device N options
            Note: the parsing of cc_config.xml is not done yet.
        - RPC protocols (account manager and scheduler)
            can now specify GPU types in separate elements
            rather than embedding them in tag names
            e.g. <no_rsc>NVIDIA</no_rsc> rather than <no_cuda/>
    - client: in account manager replies, parse elements of the form
        <no_rsc>NAME</no_rsc>
        indicating the GPUs of type NAME should not be used.
        This allows account managers to control GPU types
        not hardwired into the client.
        Note: <no_cuda/> and <no_ati/> will continue to be supported.
    - scheduler RPC reply: add
        <no_rsc_apps>NAME</no_rsc_apps>
        (NAME = GPU name)
        to indicate that the project has no jobs for the indicated GPU type.
        <no_cuda_apps> etc. are still supported 
    - client/lib: remove set_debts() GUI RPC
    - client/scheduler RPC
        remove <cuda_backoff> etc. (superceded by no_app)
        Exception: <ip_result> elements in sched request
        still have <ncudas> and <natis>.
        Fix this later.

    Implementation notes:
    - client/lib: change "CUDA" to "NVIDIA" in type/variable names, and in XML
        Continue to recognize "CUDA" for compatibility
    - host_info.coprocs no longer used within the client;
        use a global var (COPROCS coprocs) instead.
        COPROCS now has an array of COPROCs;
        GPUs types are identified by the array index.
        Index zero means CPU.
    - a bunch of other resource-specific structs (like RSC_WORK_FETCH)
        are now stored in arrays, with same indices as COPROCS
        (i.e. index 0 is CPU)
    - COPROCS still has COPROC_NVIDIA and COPROC_ATI structs to hold vendor-specific info
    - APP_VERSION now has a struct GPU_USAGE to describe its GPU usage

    client/
        acct_mgr.cpp,h
        app_start.cpp
        client_state.cpp,h
        client_types.cpp,h
        coproc_detect.cpp
        cpu_sched.cpp
        cs_account.cpp
        cs_prefs.cpp
        cs_scheduler.cpp
        cs_statefile.cpp
        gui_rpc_server_ops.cpp
        rr_sim.cpp
        scheduler_op.cpp.h
        work_fetch.cpp,h
    lib/
        coproc.h
        hostinfo.cpp,h
    win_build/
        boinc_cli.vcproj

Charlie 25 Mar 2011
    - client: Temporarily work around compile breaks introduced by the changes 
        to generalize the GPU framework.
        NOTE to David: please look for "//TODO: David, please fix" in these 
            files and fix as appropriate.
            
       client/
        app_start.cpp
        boinc_cmd.cpp

David  25 Mar 2011
    - manager: fix crashing bug when notices (or other text parsed by XML_PARSER)
        contain non-ASCII characters.
        Rom: please port to 6.12

    lib/
        parse.cpp

David  25 Mar 2011
    - client: Unix compile fixes

    client/
        app_start.cpp
        boinc_cmd.cpp

Charlie 25 Mar 2011
    - client: Continue adding OpenCL support.
    - lib: Fix inconsistent line endings in coproc.cpp.
    
    client/
        coproc_detect.cpp
    lib/
        coproc.cpp, .h

David  25 Mar 2011
    - manager: fix the above to detect premature EOF correctly

    lib/
        parse.cpp

David  25 Mar 2011
    - scheduler: compile fixes

    sched/
        sched_customize.cpp
        sched_version.cpp
        sched_send.cpp
        handle_request.cpp
        sched_types.cpp

David  25 Mar 2011
    - API: compile fixes for MinGW.  Fixes #955.  from Matt Arsenault

    lib/
        stackwalker_imports.h
        boinc_win.h
        Makefile.mingw
    api/
        Makefile.mingw

David  27 Mar 2011
    - client: Win OpenCL fix from [P3D] Crashtest

    client/
        coproc_detect.cpp

Rom    28 Mar 2011
    - MGR: Handle the link click events from the notices control for the
        Simgle GUI notices dialog box.
        
    clientgui/
        sg_DlgMessages.cpp, .h

Rom    28 Mar 2011
    - API: Flush buffers before terminating.
    - SCR: Flush buffers before terminating.
    
    api/
        boinc_api.cpp
    clientscr/
        screensaver_win.cpp

Charlie 29 Mar 2011
    - MGR: Fix compile break.
    
    clientgui/
        sg_DlgMessages.h

Charlie 29 Mar 2011
    - client: Continue adding OpenCL support.
    
    client/
        coproc_detect.cpp
    lib/
        coproc.cpp, .h

Rom    29 Mar 2011
    - client: prevent client from crashing in OpenCL code
    - client: fix function prototypes for dynamically calling
        OpenCL functions.
    
    client/
        coproc_detect.cpp

Rom    29 Mar 2011
    - MGR: Remove UserDisagreesPage from the wizard, replace functionality
        by enabling/disabling the next button as needed.
    - MGR: Fix a couple of warnings.

    clientgui/
        sg_CustomControls.cpp
        sg_DlgMessages.cpp
        TermsOfUsePage.cpp
        UserDisagreesPage.cpp, .h (Deleted)
        WizardAttach.cpp, .h

Rom    29 Mar 2011
    - WINSCR: So after looking over all the logs from WCG and now from Jacob
        Klein a pattern started to emerge.  At the end of the log files the last
        message logged was 0x12 which translates into WM_QUIT.  The latest
        documentation on WM_QUIT states it should never show up in the message
        loop to begin with.
        
        The docs now say that WM_QUIT should not be sent to the message loop by
        way of PostMessage.  We have been doing things this way for over 5 years.
        
        Change the shutdown logic so that only the primary curtain window can call
        PostQuitMessage() and all other curtain windows just exit when they receive
        a WM_DESTROY message.
        
        I'm not sure what causes this to be a problem on some machines and not
        others.  But preliminary results from Jacob are encouraging.
        
    clientscr/
        screensaver_win.cpp, .h

Charlie 30 Mar 2011
    - Mac: Eliminate unused source files UserDisagreesPage.cpp, .h from Mac 
        project.

     mac_build/
        boinc.xcodeproj/
            project.pbxproj

Rom    30 Mar 2011
    - client: OpenCL Profile Version wasn't being used anywhere and trying to get it
        was causing a crash on Windows.  Remove for now.
    - client: Fix ATI OpenCL detection so that the coproc test messages will appear.
    
    client/
        coproc_detect.cpp
    lib/
        coproc.h

Rom    30 Mar 2011
    - client: Beef up the trace logging when attempting to match OpenCL devices to their
        native counterparts.

    client/
        coproc_detect.cpp

Charlie 30 Mar 2011
    - client: Continue adding OpenCL support.
        We must check all OpenCL platforms; apparently ATI's platform reports only 
            ATI / AMD GPUs, and NVIDIA's platform reports only NVIDIA GPUs. 
        The NVIDIA vendor may be reported as "NVIDIA" or"NVIDIA Corporation"
        Note: The client currently always says "No usable GPUs found" because 
        David has not yet completed implementing the changes begun on 24 Mar.
    
    client/
        coproc_detect.cpp
    lib/
        coproc.h

Rom    31 Mar 2011
    - lib: Bring header and implementation files into sync over the coproc parsing
        function.
        
    lib/
        coproc.cpp, .h

Rom    31 Mar 2011
    - lib: Fix build break for Linux.

    lib/
        procinfo.cpp

Charlie 31 Mar 2011
    - Fix Win build breaks caused by renaming of directory coprocs/cuda/ 
        to coprocs/NVIDIA/.
    - Eliminate redundant cl.h and clpatform.h in lib/ directory because
        Rom has added them to new coprocs/OpenCL/include/ directory.
    NOTE: It is risky to have multiple copies of the same file in the same 
        source tree, as they can easily get out of sync.

    Makefile.incl
    lib/
        coproc.h
        cl.h (deleted)
        cl_platform.h (deleted)
     mac_build/
        boinc.xcodeproj/
            project.pbxproj
    win_build/
        boinc_cli.vcproj
        boinc_os_ss.vcproj
        boinc_ss.vcproj
        boinccmd.vcproj
        boinclog.vcproj
        boincmgr.vcproj
        example_app_multi_thread.vcproj
        libboinc.vcproj
        libboinc_staticcrt.vcproj
        libboincapi_staticcrt.vcproj
        libgraphics2.vcproj
        sleeper.vcproj
        uc2.vcproj
        uc2_graphics.vcproj
        vboxwrapper.vcproj
        wrapper.vcproj
        wrappture_example.vcproj

Charlie 31 Mar 2011
    - client: Add debug logging to show GPU detection when OpenCL is installed 
        but CAL and / or CUDA is not.  (I have verified this works for NVIDIA 
        GPUs on Mac OS 10.6 without CUDA support installed.)

    client/
        coproc_detect.cpp

David  1 Apr 2011
    - server/client: make a stripped-down OpenCL header file, lib/cl_boinc.h,
        for the things that BOINC actually needs
        (fixes server compile problems)
    - client: fix various compile errors in coproc_detect.cpp

    lib/
        coproc.h
        cl_boinc.h
        Makefile.am
    client/
        coproc_detect.cpp

David  1 Apr 2011
    - scheduler: removed unused destructors in COPROC that
        caused scheduler to crash (not sure why)

    sched/
        sched_types.cpp,h
    lib/
        coproc.h
        procinfo.h

Charlie 1 Apr 2011
    - Mac: Revise Mac project for deleted coprocs/OpenCL/include/ directory and 
        new cl_boinc.h.

     mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  1 Apr 2011
    - lib: fix compile warnings by removing virtual functions in COPROC

    lib/
        coproc.h

David  4 Apr 2011
    - scheduler: don't send unboundedly many assigned jobs
    - Makefile: don't include unnecessary files

    sched/
        sched_assign.cpp
    Makefile.incl

David  4 Apr 2011
    - client: discard messages whose create time OR arrival time
        is more than 30 days ago

    client/
        cs_notices.cpp

David  4 Apr 2011
    - client: use larger buffer for app command line,
        enough to accommodate 64KB from wu.cmdline

    client/
        app_start.cpp

David  4 Apr 2011
    - scheduler: <max_wus_in_progress> and <max_wus_in_progress_gpu>
        are per-processor, not per-host.

    sched/
        sched_config.cpp
        sched_limit.h

David  6 Apr 2011
    - manager: change simple view notices window title from Messages to Notices

    clientgui/
        sg_DlgMessages.cpp

David  6 Apr 2011
    - user web: fix numeric field sanitization in prefs.  Fixes #1087.
    - client: if PREFS::max_ncpus_pct is 0, don't set it to 100;
        doing so prevents PREFS::max_ncpus from having any effect.

    html/inc/
        prefs_util.inc
    lib/
        prefs.cpp

David  8 Apr 2011
    - client: defer reporting completed tasks if an upload started recently;
        we might be able to report more tasks once the upload completes.

    client/
        cs_scheduler.cpp

David  8 Apr 2011
    - "upgrade" script: copy sched/fcgi if it exists

    py/Boinc/
        setup_project.py

David  8 Apr 2011
    - "upgrade" script: remove --project_root option,
        and allow full path of project root dir
        instead of the short name

    tools/
        upgrade

David  10 Apr 2011
    - user web: fix "delete profile" function

    html/
        user/
            delete_profile.php
        inc/
            profile.inc

David  10 Apr 2011
    - scheduler: failure to set up COPROCS structure correctly
        led to per-GPU job limits not being enforced.

    lib/
        coproc.cpp

David  10 Apr 2011
    - user web: use special icon for hidden threads (from Jord)

    html/
        inc/
            forum.inc
        user/
            forum_forum.php
            img/
                hidden.png

Rom    11 Apr 2011
    - MGR: Remove unneeded asserts.
    
    clientgui/
        BOINCTaskBar.cpp

Rom    13 Apr 2011
    - MGR: Add missing keyboard accelerators for the event log.
    - MGR: Re-enable the next button when the terms of use wizard
        page when the back button is pressed.
        
    clientgui/
        DlgEventLog.cpp
        TermsOfUsePage.cpp

David  13 Apr 2011
    - admin web: remove options to delete apps and app versions.
        This is almost always a bad idea.

    html/ops/
        manage_apps.php
        manage_app_versions.php

David  13 Apr 2011
    - client:
        - add <heartbeat_debug> log flag
        - show trickle-up and int file upload msgs if <app_msg_receive> set
        - if scheduler RPC reason is trickle-up, say so
    - manager:
        - restore "non CPU intensive" to task description
        - project properties: show if RPC in progress or trickle-up pending.
            (show these low-probability things only if present)
    - manager: fix Unix build

    (from Ian Hay)

    clientgui/
        MainDocument.cpp
        Makefile.am
        DlgITemProperties.cpp
    lib/
        gui_rpc_client_print.cpp
    client/
        log_flags.cpp,h
        scheduler_op.cpp
        app.cpp
        app_control.cpp

Rom    14 Apr 2011
    - MGR: Check to see if keyboard accelerators can be redefined on the fly.
    
    clientgui/
        DlgEventLog.cpp

Rom    14 Apr 2011
    - MGR: Add missing event handler map item.
    
    clientgui/
        sg_DlgMessages.cpp

David  14 Apr 2011
    - API: add support for multi-process apps,
        i.e. those that create subprocesses.
        Previously, the client's job control options (suspend/resume/quit)
        would not work for subprocesses.
        Multiprocess apps must initialize with something like:
            BOINC_OPTIONS options;
            boinc_options_defaults(options);
            options.multi_process = true;
            boinc_init_options(&options);
        Note: an application can be both multi-thread and multi-process.
        In this case set options.multi_thread as well.
    - wrapper: add support for multi-process apps.
        Previously, suspend/resume operations did not work for subprocesses.
        If a task is multi-process, you must include
            <multi_process>1</multi_process>
        in its descriptor.

    lib/
        procinfo.cpp,h
    samples/wrapper/
        wrapper.cpp
    api/
        boinc_api.cpp,h

David  15 Apr 2011
    - client: fix bug that cause notice RSS feeds to disappear and reappear,
        and notices to erroneously be shown as new.

    client/
        cs_notice.cpp

David  18 Apr 2011
    - client: when estimating job runtime based on fraction done,
        use the elapsed time when fraction done was last reported,
        not current elapsed time.
        Fix problem where est time remaining increases linearly,
        then abruptly decreases when new frac done is reported.
        From Bruce Allen.

    client/
        app.h
        app_control.cpp
        work_fetch.cpp

David  18 Apr 2011
    - client: fix a couple of the messages that are appended to
        a job's stderr when the job is aborted

    client/
        client_state.cpp
        app_start.cpp

David  18 Apr 2011
    - user web and notices: fix message describing friend request

    html/inc/
        friend.inc

David  18 Apr 2011
    - client: replace % with %% in messages from scheduler
        (else they're interpreted as format strings)

    client/
        client_state.h
        cs_scheduler.cpp

David  18 Apr 2011
    - client: fix message describing work request

    client/
        scheduler_op.cpp

Rom    19 Apr 2011
    - MGR: Adjust the width of the various tabs in advanced view if the notice text
        width changes.
    - MGR: Remove dead code.
    
    clientgui/
        BOINCBaseFrame.cpp, .h
        AdvancedFrame.cpp

David  19 Apr 2011
    - scheduler: don't send translatable messages to pre-6.12 clients

    sched/
        sched_types.cpp

David  19 Apr 2011
    - admin web: allow specifying an SVN config dir in the web config file,
        in case your svn requires a proxy or something.
        From Boris Dayma.

    html/
        ops/
            index.php
        project.sample/
            project.inc

David  20 Apr 2011
    - web: show "logged in as" info on every page;
        remove funky "log out" link from user page
    - web: go to home page on logout,
        not dorky "you are logged out" page

    html/
        inc/
            user.inc
            util.inc
        user/
            sample_index.php
            logout.php
        project.sample/
            project.inc

David  20 Apr 2011
    - web: don't show "log in" link on login or create account pages
    
    html/
        inc/
            util.inc
        user/
            login_form.php

David  20 Apr 2011
    - client: if an app version has a missing GPU,
        we still need to keep track of the usage
        and write it to the state file.
    - get client simulator working again

    client/
        client_types.cpp,h
        sim.cpp
    tools/
        backend_lib.cpp

Charlie 21 Apr 2011
    - Mac: Update XCode Project to link procinfo.cpp and procinfo_mac.cpp into 
        boinscr (ss_app) because boinc_api.cpp now calls kill_descendants() and 
        suspend_or_resume_descendants().
        
     mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  21 Apr 2011
    - create_work and other tools: verify that the current dir,
        parent dir, or BOINC_PROJECT_DIR actually is a project dir.
    - client simulator: improvements

    sched/
        sched_config.cpp
    tools/
        create_work.cpp
    lib/
        coproc.cpp
    client/
        client_state.cpp,h
        sim.cpp
        work_fetch.cpp
        cs_statefile.cpp

Charlie 22 Apr 2011
    - Mac: We no longer request PowerPC applications on Intel Macs 
        because all projects supporting Macs should have Intel 
        applications by now, and PowerPC emulation ("Rosetta") is 
        not always supported in newer versions of OS X.

    client/
        cs_platforms.cpp

David  23 Apr 2011
    - client: don't use the Snooze mechanism to handle
        OS-requested suspension
        (especially with a 1-hour snooze period).
        Instead, handle them directly.

    client/
        client_state.cpp,h
        cs_prefs.cpp
        main.cpp
        sysmon_win.cpp
    clientgui/
        MainDocument.cpp
    lib/
        common_defs.cpp
        str_util.cpp
    sched/
        get_file.cpp
        send_file.cpp

David  23 Apr 2011
    - server: rename send_file to put_file.
        Factor out put_file() and get_file() functions
        so they have a C++ API as well as command-line

    sched/
        put_file.cpp
        get_file.cpp
        Makefile.am
    tools/
        backend_lib.cpp,h
    lib/
        common_defs.h

Charlie 24 Apr 2011
    - client: fix bug: statement had no effect.

    lib/
        str_util.cpp

David  24 Apr 2011
    - account manager RPC: include TIME_STATS and NET_STATS in request message

    client/
        acct_mgr.cpp

David  24 Apr 2011
    - client: show error messages from account managers correctly
    - client/manager: if a job is missing a GPU, show details
    - client: win compile fix
    
    client/
        acct_mgr.cpp
        client_msgs.cpp,h
        client_types.cpp
        sysmon_win.cpp

David  24 Apr 2011
    - client: simplify the semantics of sticky files:
        - All sticky files are reported on each scheduler RPC
        - If a scheduler reply says to delete a file, clear its sticky flag
        In particular:
        - remove the "send file list" tag in scheduler RPC replies
        - remove FILE_INFO::marked_for_delete
        - remove FILE_INFO::report_on_rpc
    - remove the request_file_list program

    client/
        client_types.cpp,h
        client_state.cpp
        cs_scheduler.cpp
        scheduler_op.cpp
    sched/
        request_file_list.cpp
        Makefile.am

David  24 Apr 2011
    - client: shuffle code to move CONFIG and LOG_FLAGS
        into lib/cc_config.h,
        in preparation for adding GUI RPCS

    client/
        main.cpp
        log_flags.cpp,h
    lib/
        Makefile.am
        cc_config.cpp,h (new)

Charlie 24 Apr 2011
    - Mac: Add new cc_config.cpp,h to XCode Project.
        
     mac_build/
        boinc.xcodeproj/
            project.pbxproj

Rom    25 Apr 2011
    - SCR: In certain cases WM_QUIT is sent to the message proc, which is
        is causing some type of deadlock and we don't break out of the message
        pump like we are suppose too.  For debug purposes, let us call DebugBreak()
        and see what the other threads are up too.
        
    clientscr/
        screensaver_win.cpp

David  25 Apr 2011
    - validator: fix bug when check_pair() returns retry=true,
        reported by Travis Desell.

    sched/
        validator.cpp

David  26 Apr 2011
    - client: fix bugs in runtime estimation of jobs that
        have run before but are not currently running.
        Old:
        - We maintain the most recent fraction_done in state file.
            But for apps that checkpoint seldom or never,
            this is not the relevant value,
            and frac done may go down when the app runs.
        - fraction_done_elapsed_time is not initialized,
            and can have garbage values for jobs that haven't run yet.
        New:
        - Record, in the state file, the values of
            fraction_done and fraction_done_elapsed_time
            at the most recent checkpoint.
            When the client starts up, use these values.

    client/
        app.cpp,h
        app_control.cpp

David  26 Apr 2011
    - web: fix infinite recursion when project is down

    html/inc/
        util.inc

Rom    26 Apr 2011
    - VBOX: Begin merging the two different vbox wrappers (COM vs. Daniel's from
        CERN).  Where possible stick with the POSIX API set and remove Windows
        specific code. (Example vbm_popen).
        
      NOTE: Not usable at the moment.
      
    samples/vboxwrapper/cernvm
        cernvmwrapper.cpp
    samples/vboxwrapper/
        vbox.cpp, .h
        vboxwrapper.cpp
    samples/vboxwrapper/
        vm.cpp, .h
    win_build/
        vboxwrapper.vcproj

David  26 Apr 2011
    - web: eliminate double calls to page_head()

    html/inc/
        util.inc

David  26 Apr 2011
    - web: fix bug that cause "use signature" preference to be ignored

    html/user/
        forum_reply.php

David  26 Apr 2011
    - client: fix bug in [23431]

    client/
        client_types.cpp

Charlie 27 Apr 2011
    - lib, MGR: Implement get_cc_config, set_cc_config RPCs.
    
    client/
        log_flags.cpp
    clientgui/
        AsyncRPC.cpp,.h
    lib/
        cc_config.cpp,.h
        gui_rpc_client.h
        gui_rpc_client_ops.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj
    win_build/
        boinc_os_ss.vcproj
        boinc_ss.vcproj
        boincmgr.vcproj

Charlie 28 Apr 2011
    - MGR: Begin adding Exclusive Apps pane to Computing Prefs dialog.
    - MGR: Implement Manage Settings menu item in Simple GUI.

    clientgui/
        DlgAdvPreferences.cpp
        DlgAdvPreferencesBase.cpp,.h
        sg_BoincSimpleFrame

David  28 Apr 2011
    - client: fix bug that prevented work fetch in some cases

    client/
        client_state.cpp
        main.cpp
        work_fetch.cpp
    lib/
        coproc.h
        hostinfo.cpp

David  28 Apr 2011
    - client: change the handling of account manager replies:
        Old:
            If the AM sends us a project we're already attached to,
            and the authenticator is different,
            print an error message and don't change anything.
        Problem:
            If the AM is using weak authenticators,
            and the user has changed their password,
            the weak authenticator changes.
            In this case the AM will send the new weak auth,
            the client will ignore it,
            and all subsequent scheduler RPCs will fail
            until the user removes/adds the project.
        Solution:
            If the AM sends us a new auth for a project, use it.
        Note:
            From the time the password is changed on the project
            to the next AM RPC,
            the client will have a bad weak auth and scheduler RPCs will fail.
            That's OK.

    client/
        acct_mgr.cpp

David  28 Apr 2011
    - scheduler: compile fix
    - client: don't print "Insufficient GPU" messages
        unless <coproc_debug> is set

    client/
        cpu_sched.cpp
    html/inc/
        util.inc
    sched/
        sched_types.cpp

David  28 Apr 2011
    - client: update to previous commit:
        only change the authenticator if both old and new
        authenticators are weak
        (strong authenticators don't change).

    client/
        acct_mgr.cpp

Charlie 29 Apr 2011
    - MGR: Continue adding Exclusive Apps pane to Computing Prefs dialog.
    - lib: add missing items in CONFIG, PROXY_INFO struct initializers.

    client/
        log_flags.cpp,.h
    clientgui/
        DlgAdvPreferences.cpp,.h
        DlgAdvPreferencesBase.cpp
    lib/
        cc_config.cpp,.h
        gui_rpc_client_ops.cpp
        proxy_info.cpp

Rom    29 Apr 2011
    - VBOX: Checkpoint, Re-implement the start/stop/suspend/resume/is_running
        and is_registered functions using the vboxmanage app.
    - VBOX: Simplify the virtualbox_vbm_popen function and remove a buffer
        copy operation.

    samples/vboxwrapper/
        vbox.cpp, .h

David  29 Apr 2011
    - GUI RPC client library: increase request buffer size
        from 4KB to 100B

    lib/
        gui_rpc_client.cpp

Rom    29 Apr 2011
    - VBOX: Checkpoint, Re-implement the registering and un-registering of the
        vm using the vboxmanage app.

    samples/vboxwrapper/
        vbox.cpp, .h
        vm.cpp, .h

David  29 Apr 2011
    - client: increase request msg buffer size for GUI RPCs
    client/
        gui_rpc_client_ops.cpp
        gui_rpc_client.cpp

Charlie 29 Apr 2011
    - MGR: Fix a few bugs in Exclusive Apps pane of Computing Prefs dialog.

    clientgui/
        DlgAdvPreferences.cpp
    lib/
        cc_config.cpp

Charlie 1 May 2011
    - lib: initialize data_dir in CONFIG::defaults(); don't write <data_dir> to 
        cc_config.xml if empty string, because older versions of BOINC choke.
    
    lib/
        cc_config.cpp

Rom    3 May 2011
    - VBOX: Handle both abort scenarios
    
    samples/vboxwrapper/
        vbox.cpp, .h
        vm.cpp, .h

Charlie 4 May 2011
    - MGR: Continue adding Exclusive Apps pane to Computing Prefs dialog.

    clientgui/
        DlgAdvPreferences.cpp
        DlgAdvPreferencesBase.cpp

David  4 May 2011
    - vbox wrapper: add Makefile
    - notices: fix bug where the URL in "friend request" notices
        doesn't work if you're not already logged in.

    html/
        inc/
            friend.inc
            util.inc
        user/
            friend.php
            login_form.php
    samples/vboxwrapper/
        vbox.cpp
        Makefile

Rom    4 May 2011
    - VBOX: Add function for a host being able to execute tasks within
        guest VMs.
        
    samples/vboxwrapper/
        vbox.cpp, .h
        vm.cpp, .h

Rom    4 May 2011
    - VBOX: Switch to using CreateProcess and CreatePipe on Windows, otherwise we
        get a bunch of flicking windows when we preform an operation against
        VirtualBox.
        
    samples/vboxwrapper/
        vbox.cpp

Charlie 5 May 2011
    - MGR: Fix compiler warning.

    clientgui/
        DlgAdvPreferences.cpp

David  5 May 2011
    - web: don't show login stuff on server status page

    html/inc/
        util.inc

David  5 May 2011
    - web: don't error out on old-style notice URL

    sched/
        validator.cpp
    html/user/
        friend.php

David  5 May 2011
    - web RPC: add RPC for getting teams by country

    html/user/
        team_search.php

David  6 May 2011
    - wrapper: tell the client when we checkpoint
        (else checkpoint_elapsed_time etc. don't get set)
    - make_project: enable update_stats by default
    - update_stats: add --min_age option

    sched/
        update_stats.cpp
    tools/
        make_project
    samples/wrapper/
        wrapper.cpp

Charlie 7 May 2011
    - Win: add missing procinfo_win.cpp to Windows libboinc project.

    win_build/
        libboinc.vcproj

David  7 May 2011
    - client: fix bug that broke work fetch.
        We can't set coprocs.n_rsc to zero in CONFIG::defaults().
    - multi_thread app: update initialization

    lib/
        cc_config.cpp
    samples/multi_thread/
        multi_thread.cpp

David  7 May 2011
    - client: add <http_transfer_timeout_bps> config option.
        Defines the transfer rate below which the connection
        is considered idle, and timeout starts

    lib/
        cc_config.cpp,h
    client/
        http_curl.cpp
        cs_files.cpp

David  7 May 2011
    - client: implement "report immediately" at the level of
        individual jobs rather than globally.
        To use this, projects must add <report_immediately/>
        to the <result> elements in job templates

    client/
        client_types.cpp,h
        cs_scheduler.cpp

Rom    9 May 2011
    - VBOX: Implement basic cpu time accounting and checkpointing
        for VMs.

    samples/vboxwrapper/
        vbox.cpp, .h
        vboxwrapper.cpp
        vm.cpp, .h

David  10 May 2011
    - client: don't check memory usage immediately after hibernation

    client/
        client_state.h
        app.cpp

David  10 May 2011
    - vbox wrapper: updates

    samples/vboxwrapper/
        vbox.cpp
        vm.cpp,h

Charlie 10 May 2011
    - MGR: Fixes to new Simple GUI for Linux.
    
    clientgui/
        sg_BoincSimpleFrame.cpp
        sg_ProjectPanel.cpp

Charlie 11 May 2011
    - MGR: Fixes to new Simple GUI for Linux.
    
    clientgui/
        sg_PanelBase.cpp, .h
        sg_TaskPanel.cpp

David  11 May 2011
    - Change the way update_versions works, and reimplement it in PHP.
        Problems with the old version:
        - Lots of info encoded in file and directory names: messy kludge
        - The convention that directory name == main program name
            created a bad situation when using the wrapper:
            if you made a new version of your application,
            you were forced make a new version of the wrapper
            just so it could have a different name.
        The new version is described here:
        http://boinc.berkeley.edu/trac/wiki/AppVersionNew
    - Remove some Python code that suppored the old version
    - client: some fixes to dir_size() that might fox
        a buffer overflow when using symbolic links

    tools/
        update_versions
    html/inc/
        boinc_db.inc
    lib/
        filesys.cpp
    py/Boinc/
        tools.py

David  11 May 2011
    - client: show HTTP errors in text form as well as number

    client/
        pers_file_xfer.cpp
        file_xfer.cpp

David  11 May 2011
    - client: fix problem with recursion in dir_size(), this time for real.

    lib/
        filesys.cpp

Charlie 12 May 2011
    - MGR: Fixes to new Simple GUI for Linux.
    
    clientgui/
        sg_BoincSimpleFrame.cpp
        sg_PanelBase.cpp, .h

Charlie 13 May 2011
    - MGR: Fixes to new Simple GUI for Linux and Windows.
    - MGR: Fix logic to enable / disable Show Graphics in new Simple GUI.
    - MGR: make sure new Simple GUI Pause / Resume button is large enough
        for the larger of the localized words for Pause and Resume; do 
        the same for the Add Project / Synchronize button.
    
    clientgui/
        sg_BoincSimpleFrame.cpp
        sg_PanelBase.cpp, .h
        sg_ProjectPanel.cpp, .h
        sg_TaskCommandPopup.cpp, .h
        sg_TaskPanel.cpp, .h

Charlie 13 May 2011
    - lib: Fix compile break on Windows.

    lib/
        filesys.cpp
    
David  13 May 2011
    - create_work: allow multiple URLs for non-local input files
        (from Zoltan Farkas)
    - scheduler: fix message describing per-app limits

    sched/
        sched_main.cpp
    tools/
        backend_lib.cpp
    html/project.sample/
        project.inc

David  13 May 2011
    - scheduler: per-processor limits should be based on
        "effective" # of processors (taking prefs into account)
        rather than the physical number

    sched/
        sched_send.cpp
        sched_limit.h

David  13 May 2011
    - client/manager: don't show resource usage for non-CPU-intensive jobs

    client/
        client_types.cpp
    clientgui/
        MainDocument.cpp

Charlie 16 May 2011
    - MGR: New Simple GUI: better displays if no tasks or no projects.

    clientgui/
        sg_BoincSimpleFrame.cpp
        sg_ProjectPanel.cpp

David  16 May 2011
    - client: XML-escape the contents of stderr files;
        otherwise non-ASCII characters in client_state.xml
        make it invalid XML
    - client: fix (I think) to scheduling logic.
        a job is preemptable if it's finished its time slice and
        Old: has checkpointed in last 10 sec
        New: has checkpointed since the end of the time slice

    client/
        app_control.cpp
        cpu_sched.cpp
    api/
        boinc_api.cpp
    lib/
        Makefile.am

David  17 May 2011
    - update_versions: fix bug in version number parsing (from Kevin)

    tools/
        update_versions

David  17 May 2011
    - scheduler: if an in-progress limit is given in config_aux.xml,
        and <per_proc> is not specified, default it to false.
    - scheduler: add some log messages

    sched/
        sched_limit.cpp
        sched_version.cpp
        sched_send.cpp
        sched_main.cpp

David  17 May 2011
    - scheduler: add <user_filter> config option.
        If set, and a WU has nonzero batch,
        it is interpreted as a user ID,
        and the job will be sent only to hosts with that user ID.

        Note: the use of workunit.batch is arbitrary;
        we could also use workunit.opaque or other deprecated field.

    client/
        cpu_sched.cpp
    sched/
        sched_send.cpp,h
        sched_config.cpp,h

Rom    17 May 2011
    - MGR: Prepopulate both the username field and the email address
        field with the cookie information since we do not know ahead
        of time which format the account manager uses.  Once the
        get_project_config RPC has completed, we'll know which one
        is the correct one.
        
    clientgui/
        WizardAttach.cpp

Charlie 18 May 2011
    - MGR: Fix welcome message in Account Manager Wizard completion page.
    
    clientgui/
        CompletionPage.cpp

David  18 May 2011
    - update_versions: make <copy_file> work
    
    tools/
        update_versions

David  18 May 2011
    - client: show GPU device number correctly

    client/
        client_types.cpp

Rom    19 May 2011
    - client: Account for new registry location that the new VirtualBox installer
        stashes the version number.  Check the new location first, if not found go
        back to the original location.
        
    client/
        hostinfo_win.cpp

Rom    19 May 2011
    - MGR: Initial stab at supporting Google Chrome cookies.  SQLite engine needs
        to be upgraded.  Write it while the code is still in my head.
        
    clientgui/
        browser.cpp, .h

David  19 May 2011
    - client: add log messages showing steps in exiting all tasks,
        enabled by <task_debug/>
    - client: remove redundant task-start messages

    client/
        app_start.cpp
        app_control.cpp
        cpu_sched.cpp

David  20 May 2011
    - update_versions: trim XML strings

    tools/
        update_versions
    db/
        boinc_db.h

David  20 May 2011
    - client: on hibernate, don't wait for apps to exit
        (NCI apps never will)

    client/
        sysmon_win.cpp

David  21 May 2011
    - client: if project is set to "don't request more work",
        report completed tasks immediately

    client/
        cs_scheduler.cpp

Charlie 22 May 2011
    - SCR: Fix Mac crash bug when user clicks SS Test button in system preferences.
        
    clientscr/
        mac_saver_module.cpp

David  24 May 2011
    - update_versions: flag main program as executable,
        otherwise client will reject it

    tools/
        update_versions

Charlie 25 May 2011
    - MGR: Fix shutting down of Client on Linux.

    clientgui/
        BOINCGUIApp.cpp

Rom    25 May 2011
    - scheduler: unescape the stderr_out field after parsing so we do not break
        other applications parsing the data.
        
    sched/
        sched_types.cpp

David  25 May 2011
    - client: escape only non-ASCII chars in stderr out, not control chars

    sched/
        sched_types.cpp
    lib/
        parse.cpp,h
    client/
        app_control.cpp

David  25 May 2011
    - client: if <ncpus> is specified in config file,
        set host_info.p_ncpus to that value,
        so that scheduler requests report that number of CPUs

    client/
        cpu_sched.cpp

David  25 May 2011
    - client: fix boinc_make_dirs() (from Josh Highley)
    - client: allow "non_cpu_intensive" to be specified independently
        for different apps in a project.
        This is intended to support projects that use the
        Attic file distribution system,
        which needs to have a daemon running.

    lib/
        filesys.cpp,h
    client/
        client_types.cpp,h
        app_control.cpp
        cpu_sched.cpp

David  25 May 2011
    - client: equate notices if their text is the same after removing digits,
        so that "need 25 GB disk" and "need 24 GB disk"
        don't result in 2 notices.

    client/
        cs_notices.cpp

David  25 May 2011
    - Manager: tweak messages in exit dialog

    clientgui/
        DlgExitMessage.cpp

David  27 May 2011
    - web: make front page work for Bossa projects

    html/user/
        sample_index.php

David  31 May 2011
    - client: when killing a nonresponsive task,
        kill its descendant processes too
    - manager: tweak strings related to task FLOP size

    client/
        client_state.cpp
        app_control.cpp

David  31 May 2011
    - client: Rom pointed out that on Win in secure mode,
        the client won't be able to convert descendant PIDs to handles,
        and therefore won't be able to terminate them.  Sigh.
        So terminate the main process using its handle
        (we'll still kill descendants in the non-secure case)

    client/
        app_control.cpp

David  31 May 2011
    - web: add counts in task list pages

    html/
        inc/
            boinc_db.inc
            util.inc
            result.inc
        user/
            results.php

Charlie 2 Jun 2011
    - MGR: Add SQLite3 v3.7.6.3 source code to Mac XCode project, adding
        initializers for two local variables to suppress compiler warnings; 
        don't link Mac Manager with older pre-installed sqlite3 library.

    clientgui/
        sqlite3.c (added)
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Charlie 2 Jun 2011
    - MGR: If Firefox 3 SQL query fails because cookie database is locked, 
        make a temporary copy of the cookie file and query that.  This works 
        around a bug in some builds of Firefox 3.5.x.
        
    clientgui/
        browser.cpp

Charlie 3 Jun 2011
    - MGR: Fixes for cookie detection on Google Chrome browser.
        
    clientgui/
        browser.cpp

David  3 Jun 2011
    - client: my checkin of 8 Apr 2011 didn't work in some cases, e.g.:
        - client finishes a job
        - before upload starts, work fetch runs and decides to fetch work
            from that project.
        Solution:
        - set PROJECT::last_upload_start when job finishes,
            and clear it when a job is uploaded.
        - defer scheduler RPC for a limited time if last_upload_start
            is set, even if a transfer is not active

    client/
        client_state.cpp
        cs_scheduler.cpp

David  3 Jun 2011
    - scheduler: app version FLOPS estimates were wrong
        in the case where we don't have enough elapsed-time stats
        for the host/app_version.
        The right formula is (peak FLOPS)/app_version.avg_pfc

    sched/
        sched_version.cpp

Charlie 3 Jun 2011
    - MGR: Convert Google Chrome browser time (microseconds since 
        January 1, 1601) to UNIX time (seconds since January 1, 1970)
    clientgui/
        browser.cpp

David  5 Jun 2011
    - scheduler, back end: add "homogeneous app version" feature.
        Lets you specify, on a per-app basis,
        that all instances should be done using the same app version.
        This is for validation in the presence of GPUs.
    - scheduler: code cleanup
        - Instead of adding a bunch of non-DB fields to RESULT,
            used a derived class SCHED_DB_RESULT.
        - Instead of storing a pointer to BEST_APP_VERSION in RESULT,
            store the structure itself.
            This simplifies the memory allocation situation.
    - client: condition "Got server request to delete file" messages
        on <file_xfer_debug>

    db/
        boinc_db.cpp,h
        schema.sql
    sched/
        sched_types.cpp,h
        sched_version.cpp
        sched_send.cpp,h
        sched_array.cpp
        sched_locality.cpp
        transitioner.cpp
        sched_resend.cpp
        sched_assign.cpp
        sched_score.cpp
    html/ops/
        db_update.php
    client/
        cs_scheduler.cpp

David  5 Jun 2011
    - scheduler: when creating HOST_APP_VERSION records,
        initialize the n_jobs_today field correctly

    sched/
        sched_send.cpp

David  5 Jun 2011
    - lib: fix compile warning

    lib/
        filesys.cpp

Eric K 6 Jun 2011
    - Added safe exit capabilities for Windows CUDA applications.
    - checking in the app can be added as below.
    
#ifdef _WIN32
//Jason: Safe exit check macro to play nicer with Cuda & MS-CRT
 #ifdef USE_CUDA
 #define SAFE_EXIT_CHECK  do { \
  if (worker_thread_exit_request) { \
     fprintf(stderr,"-> Worker received exit request, syncing Cuda...");
cudaThreadSynchronize(); fprintf(stderr,"Done.\n"); \
     fprintf(stderr,"  Worker Freeing Cuda data..."); cudaAcc_free();
fprintf(stderr,"Done.\n"); \
     fprintf(stderr,"  Worker Acknowledging exit request, spinning->\n");
worker_thread_exit_ack = true; \
     while (1) Sleep(10); \
  } \
 } while (0);
 #else
 #define SAFE_EXIT_CHECK  do { \
  if (worker_thread_exit_request) { \
     fprintf(stderr,"  Worker Acknowledging exit request, spinning-> ");
worker_thread_exit_ack = true; \
     while (1) Sleep(10); \
  } \
 } while (0);
 #endif
#else  // Linux or other probably have their own safe exit handling, defined as
blank, do nothing
 #define SAFE_EXIT_CHECK
#endif

and install at the top of the cffft loop, and more locations if desired:
 SAFE_EXIT_CHECK;

I'd like to implement these as BOINC API functions, but have not yet done so.

David  6 Jun 2011
    - backend: use new XML parser for input template files
        (so that they don't have to be 1 element/line)
        and also allow optional <input_template> root element
    - fix bug in WORKUNIT DB interface

    db/
        boinc_db.cpp
    tools/
        backend_lib.cpp

David  6 Jun 2011
    - API: undo the above API checkin, and provide a cleaner and
        documented way of doing the same thing; see
        http://boinc.berkeley.edu/trac/wiki/AppCoprocessor

    api/
         boinc_api.cpp,h

Charlie 7 Jun 2011
    - MGR: Fix bug I introduced on 6 Aug 2010: if currently connected host name is 
        empty string, we must treat it as localhost.  Implement different logic to 
        skip exit confirmation dialog and avoid shutting down client if second 
        instance of Manager is launched but Select Computer dialog is cancelled.
        
    clientgui/
        MainDocument.cpp, .h

Rom    7 Jun 2011
    - MGR: Cleanup compiler warnings. Fixes# 1051
        (From: Steffen Möller)
        
    clientgui/
        AdvancedFrame.cpp
    clientgui/common/
        wxFlatNotebookImages.h
    clientgui/res/skins/default
        advanced_link_image.xpm

David  7 Jun 2011
    - client: fix bug in app termination logic

    client/
        app_control.cpp

Charlie 8 Jun 2011
    - MGR: Fix About dialog to show (PowerPC) instead of (x86) when appropriate.
    
    clientgui/
        DlgAbout.cpp

Charlie 8 Jun 2011
    - MGR: Rework logic to skip exit confirmation dialog and avoid shutting down 
        client if second instance of Manager is launched, so it works if connect 
        to remote host fails.
    - MGR: If original instance of Manager is connected to remote host (or none)
        when exiting Manager. skip exit confirmation dialog but do shut down local 
        client if requested in most recently run exit dialog, whether or not 
        "Remember this decision" was set.
    - MGR: Use same exit confirmation dialog wording for Linux as for Windows.
        
    clientgui/
        BOINCGUIApp.cpp, .h
        MainDocument.cpp, .h
        DlgExitMessage.cpp

Rom    8 Jun 2011
    - MGR: Disable list view rules for now.
    
    clientgui/
        BOINCBaseView.h
        
Charlie 8 Jun 2011
    - MGR: Restore list view rules again.
    
    clientgui/
        BOINCBaseView.h

David  8 Jun 2011
    - API: forgot to fix boinc_api.h

    api/
        boinc_api.h

Charlie 9 Jun 2011
    - MGR: Event Log menu item restores Event Log when Minimized; fixed on Mac 
        and Windows XP, hopefully on other versions of Windows OS.
    
    clientgui/
        BOINCBaseFrame.cpp
        BOINCGUIApp.cpp

David  10 Jun 2011
    - client: fix bug in logic that defers work fetch if upload active

    client/
        cs_scheduler.cpp

David  10 Jun 2011
    - update_versions: read from stdin a different way

    tools/
        update_versions

David  10 Jun 2011
    - client: initialize some PROJECT fields (from Ian Hay).
        May fix bug in defer work fetch while uploading logic

    client/
        client_types.cpp

David  12 Jun 2011
    - client: change --detach_phase_two (??) to --detach_console
    - eliminate compiler warnings (e.g. shadowed vars)
        in various places, mostly in client

    sched/
        sched_main.cpp
    lib/
        cc_config.cpp
    samples/
        many.cpp
    client/
        many.cpp
    api/
        boinc_api.cpp

David  12 Jun 2011
    - client:restore --detach_phase_two as synonym for --detach_console

    client/
        cs_cmdline.cpp

David  13 Jun 2011
    - web: when creating an item in News forum,
        show "Export as Notice?" checkbox, and default to off.

    db/
        schema.sql
    html/
        inc/
            forum.inc
        user/
            forum_post.php

Bernd  14 Jun 2011
    - API: fix install headers in Makefile.mingw

    lib/
        Makefile.mingw

Rom    15 Jun 2011
    - MGR: Update the project list in the wizard to make use
        of more of the information contained in the all projects
        list and also make it more accessible than the previous
        implementation.
        
    clientgui/
        ProjectInfoPage.cpp, .h
        WizardAttach.cpp, .h
    clientgui/res/
        linuxicon.xpm
        macosicon.xpm
        windowsicon.xpm
    clientgui/res/skins/default/graphic/
        advanced_link_image.xpm
    win_build/
        libboinc.vcproj
        libboincapi_staticcrt.vcproj

Rom    15 Jun 2011
    - MGR: Add more polish to the new project list.
        
    clientgui/
        ProjectInfoPage.cpp, .h
    clientgui/res/
        blankicon.xpm

David  15 Jun 2011
    - manager: tweaks to project list

    clientgui/
        ProjectInfoPage.cpp

Charlie 16 Jun 2011
    - MGR: Fix project list layout for Mac; ellipse long items by size 
        instead of by number of characters.  Set tooltips of possibly 
        ellipsed items to full text for that item so user can read it.

    clientgui/
        ProjectInfoPage.cpp, .h

Charlie 16 Jun 2011
    - Fix typo in all projects list: Urbana-Chamapign -> Urbana-Champaign.
    
    docs/
        projects.inc
    win_build/
        installerv2/
            redist/
                all_projects_list.xml

David  16 Jun 2011
    - client: we were assuming that if we ask a task to exit
        and its main process exits, everything is OK.
        That's not necessarily the case - buggy apps may have
        subprocesses that the main process fails to kill.

        Solution: when we request a task to exit or abort,
        make a list of the descendants.
        When the main process exits, kill any remaining descendants.
        
        Also: we weren't checking for the ABORT_PENDING case
        in the process exit logic.
        This may explain the 5/15 second delay in detaching or
        resetting a project with running tasks

    client/
        app.cpp,h
        app_control.cpp

Charlie 17 Jun 2011
    - MGR: Fix project list identification of CUDA, ATI, and MT support (check 
        for "['cuda" not "[cuda". "['ati" not "[ati" and "['mt" not "[mt".)
    
    clientgui/
        ProjectInfoPage.cpp

Rom    17 Jun 2011
    - MGR: Revert previous change to the project list identification code.
    - MGR: Fix a bug introduced in a previous commit where the plan class
        was being surrounded by single quotes when generating an updated
        project list.
        
    clientgui/
        ProjectInfoPage.cpp
    doc/
        get_platforms.inc

Rom    17 Jun 2011
    - MGR: Change the project list description control into an HTML based
        window.
        
    clientgui/
        ProjectInfoPage.cpp, .h

David  17 Jun 2011
    - client: add a <dont_throttle/> flag to APP_VERSION.
        If set, the app does its own CPU throttling
        so the client doesn't have to.

    client/
        client_types.cpp,h
        app_control.cpp

Charlie 18 Jun 2011
    - MGR: Don't mark a project as supported if it requires a coprocessor we lack.
        NOTE: if the platform entry contains a modifier such as [cuda] or [ati], 
            that capability is required.  If a project offers both a cuda application 
            and a CPU-only application for an operating system, it must have two 
            separate platform entries for that OS, one with [cuda] and one without.
            Likewise for ati and mt.
        
    clientgui/
        ProjectInfoPage.cpp

David  20 Jun 2011
    - web: use ReCaptcha for account creation as well as profile creation
        (from Daniel)
    - GUI RPC: remove have_cuda from CC_STATE.
        Use the info in host_info.coprocs instead.

    html/
        ops/
            pass_percentage_by_platform.php
        user/
            create_account_form.php
            create_account_action.php
    lib/
        gui_rpc_client_ops.cpp
        gui_rpc_client.h

Rom    20 Jun 2011
    - MGR: Fix build breaks related to GUI RPC changes.

    clientgui/
        AdvancedFrame.cpp
        AsyncRPC.cpp
        BOINCTaskBar.cpp
        DlgItemProperties.cpp
        ProjectInfoPage.cpp

Charlie 20 Jun 2011
    - client: logic fix: test coprocs.none() after coprocs.add() calls, not before.
    
    client/
        client_state.cpp

David  21 Jun 2011
    - GUI RPC: restore <have_cuda>, <have_ati> elements in CC_STATE
        for compatibility
    - client: copy coprocs to host_info._coprocs at startup
        (else GUI RPCs don't have right info)

    client/
        client_state.cpp
        cs_statefile.cpp
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.cpp

David  21 Jun 2011
    - web: add a web-service interface for remotely submitting, querying
        and controlling batches of jobs
    - web: add an administrative interface for controlling
        user permissions for submitting jobs
    - web: add an interface where users can view and control
        their submitted jobs
    See: http://boinc.berkeley.edu/trac/wiki/RemoteJobs
    This is at a functional but rough stage.

    db/
        schema.sql
    tools/
        create_work.cpp
    html/
        ops/
            submit_permissions.php
            db_update.php
            submit_example.php
        inc/
            submit_db.inc
            boinc_db.inc
            db_conn.inc
        user/
            submit.php
            submit_status.php

Charlie 21 Jun 2011
    - MGR: Revert Rom's manager changes of 20 June related to GUI RPC changes,
        for compatibility with older Clients.

    clientgui/
        AdvancedFrame.cpp
        AsyncRPC.cpp
        BOINCTaskBar.cpp
        DlgItemProperties.cpp
        ProjectInfoPage.cpp

Charlie 22 Jun 2011
    - MGR: Rename CC_STATE::have_cuda to CC_STATE::have_nvidia to clarify its meaning, 
        add comment that it is referenced in GUI RPCs as <have_cuda> for compatibility.
        Wizard ProjectInfo page tests values appropriate for connected client version.
    - lib: fill in missing entries in COPROCS GUI RPCs, ensure that old data is reset 
        when connecting to a different host (not yet complete.)

    clientgui/
        AdvancedFrame.cpp
        AsyncRPC.cpp
        BOINCTaskBar.cpp
        DlgItemProperties.cpp
        ProjectInfoPage.cpp
    lib/
        coproc.cpp, .h
        gui_rpc_client.h
        gui_rpc_client_ops.cpp

Charlie 23 Jun 2011
    - MGR: It turns out we want the Wizard ProjectInfo Page to check for ATI and NVIDIA 
        GPUs regardless of whether they were reported by CAL, CUDA or OpenCL, so we can 
        just check CC_STATE::have_ati and CC_STATE::have_nvidia even for newer clients.  
        This means the Manager doesn't need to do get_host_info RPCs, because all the 
        host info it needs is available from the host_info section of the get_state RPC, 
        so eliminate the unnecessary Manager calls of get_host_info RPC.

    clientgui/
        DlgAdvPreferences.cpp
        MainDocument.cpp, .h
        ProjectInfoPage.cpp

David  23 Jun 2011
    - lib: fix compile warning

    lib/
        coproc.h

David  23 Jun 2011
    - client: add per-project GPU exclusion.
        If you put an element of the form
            <exclude_gpu>
                <url>http://project_url.com/</url>
                <device_num>1</device_num>
            </exclude_gpu>
        in your cc_config.xml, that GPU won't be used for that project

    lib/
        cc_config.cpp,h
    client/
        client_types.cpp,h
        client_state.cpp
        cpu_sched.cpp

David  23 Jun 2011
    - client: replace <ignore_cuda_dev> with <ignore_nvidia_dev>
        in cc_config.xml (but keep old one for compat)

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

Charlie 24 Jun 2011
    - SCR: Add url.cpp to Mac screensaver in XCode project to fix link error.

    mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  24 Jun 2011
    - client: add <type> element to <exclude_gpu> config option,
        in case of multiple GPU types

    lib/
        cc_config.cpp,h
    client/
        client_types.cpp,h
        client_state.cpp
        cpu_sched.cpp

David  25 Jun 2011
    - client: add optional <app> elements to <exclude_gpu> config option,
        to allow app-level exclusions

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

David  25 Jun 2011
    - client simulator: compile fix

    client/
        makefile_sim
        sim_util.cpp

David  25 Jun 2011
    - fix compile warnings

    api/
        boinc_api.cpp
    client/
        app_start.cpp

David  29 Jun 2011
    - back end: strip <output_template> tags from output templates
    - web: main RSS feed should include all news items, even non-notices

    tools/
        process_result_template.cpp
    html/inc/
        forum_rss.inc
    lib/
        str_util.cpp
    samples/wrappture/
        wrappture.cpp

David  29 Jun 2011
    - server: restore fpops/intops_cumulative to RESULT
        (structure, not table) for AQUA
    - client, Windows: when wake up from hibernation,
        get the time before printing log msg

    db/
        boinc_db.h
    client/
        client_state.h
        sysmon_win.cpp

David  30 Jun 2011
    - client (Win) add some bulletproofing in case Windows sends us a
        "suspending" event but not a resume event.

    client/
        client_state.cpp,h
        sysmon_win.cpp

David  30 Jun 2011
    - db_purge: make zip compression work (from Teemu Mannermaa)
    - get rid of a few compile warnings

    sched/
        sched_send.cpp
        db_purge.cpp
        sched_types.cpp
        sched_score.cpp
        sample_work_generator.cpp

David  4 July 2011
    - back end: fix bugs in [23648] which caused create_work
        to mess up input templates containing
        <copy_file/> or other attribute tags.
        XML_PARSER now contains a member element() for when
        you want to copy an element without knowing its structure.

    tools/
        backend_lib.cpp
    lib/
        parse.cpp,h
    html/user/
        openid_login.php

David  5 July 2011
    - update_versions: fix typo that produced bad XML

    tools/
        update_versions

Charlie 6 July 2011
    - Mac: Update to libcurl 7.21.7 and c-ares 1.7.4.
    
    client/
        http_curl.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj
        buildc-ares.sh
        buildcurl.sh
        setupForBOINC.sh
        HowToBuildBOINC_XCode.rtf

Rom    6 July 2011
    - Tag for 6.13.0 release, all platforms
      boinc_core_release_6_13_0

    /
        configure.ac
        version.h

Charlie 6 July 2011
    - Mac: Fix bad paths to MacBitMapComboBox.cpp, .h in XCode project.
        (Checked into 6.13.0 tag).

    clientgui/
        mac/
            MacBitmapComboBox.cpp, .h
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Charlie 7 July 2011
    - Mac: Fix bug where menubar icon menu did not work after changing skin.

    clientgui/
        mac/
            MacSysMenu.cpp

Rom    7 July 2011
    - WINSCR: Remove diagnostics screensaver dialog when the screensaver fails to
        be able open up the log files.

    clientscr/
        screensaver_win.cpp

David  7 July 2011
    - client: write log msgs saying whether GPUs are OpenCL-capable

    client/
        client_state.cpp

David  7 July 2011
    - client: fix bug introduced in [23765] that produced garbage
         in <coproc> elements in sched req msgs and elsewhere.
         peak_flops is a double.
         If you print it using %d, everything from that point forward
         is messed up.

     lib/
         coproc.cpp

David  7 July 2011
    - client: fix typo that caused a lot of spurious
        "project has XXXXXX deadline misses" messages
    - fix compile warnings

    client/
        sandbox.cpp
        rr_sim.cpp

David  7 July 2011
    - client: possibly fix bug that caused no-GPU prefs to be ignored

    client/
        client_types.cpp

Charlie 8 July 2011
    - Mac: Refine bug fix for menubar icon menu not working after changing skin.

    clientgui/
        BOINCTaskBar.cpp
        mac/
            MacSysMenu.cpp, .h

David  8 July 2011
    - client: fix bug related to deselecting resource types in project prefs.
        Some logic was missing.

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

David  10 July 2011
    - client emulator web interface: make cc_config.xml an attribute
        of the simulation, not the scenario.
        If you want to run a simulation w/ different log flags,
        you shouldn't have to create a new scenario.
    - client emulator: add --config_prefix cmdline arg
    - validator: prevent infinite loop when app_version.pfc_avg
        is wonky (like 1e-300).
        Next step: figure out how it got that way.

    client/
        sim.cpp
    sched/
        credit.cpp

David  10 July 2011
    - client: clear have_nvidia/ati flags in CC_STATE
        so you don't show garbage in project properties

    lib/
        gui_rpc_client_ops.cpp

David  10 July 2011
    - Manager and GUI RPC:
        Remove debt fields from PROJECT: not used anymore
        Add sched_priority field

    lib/
        gui_rpc_client_ops.cpp
        gui_rpc_client.h
    client/
        client_state.cpp
        client_types.cpp
    clientgui/
        DlgItemProperties.cpp

David  10 July 2011
    - client: fix scheduler bug that treated all CPU jobs
        as non-high-priority
    - client: don't print spurious "domino prevention"
        and "thrashing prevention" msgs
    - manager: show project descriptions in same size font
        as the rest of the dialog

    client/
        cpu_sched.cpp
        work_fetch.h
    clientgui/
        ProjectInfoPage.cpp

David  11 July 2011
    - manager: do the above font change only on Win

    clientgui/
        ProjectInfoPage.cpp

David  11 July 2011
    - manager: fix messed up logic that caused projects to show
        "platform not support" incorrectly.
        Note: the code in this entire area seems way too complex
    - manager: tweak project desc font size

    clientgui/
        ProjectInfoPage.cpp

David  11 July 2011
    - admin web: add page for showing app and app version details

    html/
        ops/
            submit_permissions.php
            app_reset.php (new)
            manage_apps.php
            login_form.php
            logout.php
            app_details.php (new)
        inc/
            util_ops.inc

David  12 July 2011
    - admin web: finish page for resetting app statistics

    html/
        ops/
            app_reset.php
            app_details.php
        inc/
            boinc_db.inc

David  12 July 2011
    - validator: if job FLOPs estimates are accurate,
        PFC values should be around 1.
        If they differ from 1 by a factor of > 1e4, ignore them,
        and put an error message into the validator log
    - validator: if get_pfc() fails because an app version is
        missing from the DB (i.e. the project deleted it)
        keep going so we don't reprocess the WU forever

    sched/
        credit.cpp

David  13 July 2011
    - client, work fetch policy:
        adjust project REC by the amount of work queued, to increase variety
        NOTE: at some point I think I had a reason to not do this,
        but I can't remember what it is.
    - client, job scheduling policy: fix how project REC is adjusted

    client/
        work_fetch.cpp,h
        cpu_sched.cpp
    lib/
        common_defs.h
    sched/
        credit.cpp,h
        trickle_credit.cpp

David  13 July 2011
    - manager: don't show "Estimated computation speed" in task properties
        The quantity involved is not actually computation speed.
        Also don't show Max RAM usage.

    clientgui/
        DltItemProperties.cpp

David  13 July 2011
    - admin web: improve the FLOPs estimation tool so that
        it works for GPU versions too

    html/
        ops/
            job_times.php
            app_details.php
        inc/
            util_ops.php

David  13 July 2011
    - client: precede OpenCL messages with [coprog_debug], not [coproc-test].
        The convention is to use the name of the enabling log flag.

    client/
        coproc_detect.cpp


Rom    14 July 2011
    - lib: Fix the various '????' fields in the diagnostics framework during a
        crash on Windows.  Somewhere along the lines I messed up with the
        conversions of single-byte characters vs. double-byte characters.

    lib/
        stackwalker_win.cpp

David  14 July 2011
    - client: add <rec_half_life_days> config option

    lib/
        cc_config.cpp,h
        cpu_sched.cpp

David  14 July 2011
    - client: if a project has zero resource share,
        don't piggyback a work request onto a non-work-request RPC

    client/
        work_fetch.cpp

David  14 July 2011
    - client: show the right prefix for <cpu_sched_debug> messages

    client/
        cpu_sched.cpp

Charlie 18 July 11
    - MGR: Fix "Can't load Image" messages in Simple View; allow gaps in slide 
        show file numbering; reload images if new project files downloaded.

    clientgui/
        sg_ProjectPanel.cpp, .h
        sg_TaskPanel.cpp, .h

Rom    18 July 2011
    - Tag for 6.13.1 release, all platforms
      boinc_core_release_6_13_1

    /
        configure.ac
        version.h

David  18 July 2011
    - web: when listing a user's message-board posts,
        don't show team message-board posts unless
        a) the requesting user is a member of the team, and
        b) if the post is hidden, the requesting user is a team admin
        This enforces the goal that a team's message board
        is visible only to the team.

    html/user/
        forum_user_posts.php

David  19 July 2011
    - validator: remove spurious messages

    sched/
        credit.cpp

David  19 July 2011
    - server: some stuff to prepare for distributed storage
        - don't create result records for uploads and downloads.
            Just create a msg_to_client record.
        - the scheduler handles file-transfer results specially;
            it makes a vector of them, then calls a project-supplied function
            handle_file_xfer_results()
        - change the interface and implementation of put_file and get_file
    - client write project sched priority in GUI RPC replies,
        but not to the state file

    sched/
        delete_file.cpp
        put_file.cpp
        get_file.cpp
        sched_types.cpp,h
        sched_customize.cpp,h
        handle_request.cpp
        credit_test.cpp
    tools/
        backend_lib.cpp,h
    py/Boinc/
        setup_project.py
    client/
        client_state.cpp
        boinc_cmd.cpp
        client_types.cpp

David  20 July 2011
    - client: changes to the client file model to support distributed storage,
        as described here: http://boinc.berkeley.edu/trac/wiki/ClientDataModel
        Compatibility:
            clients that upgrade to this version should see nothing unusual.
            Clients that downgrade from this version to a previous version
            should see all projects reset
            (i.e. tasks disappear and then get re-downloaded).
    - manager: always show whether a file transfer is upload or download
    - client: don't scale work requests by resource share

    client/
        client_types.cpp,h
        cs_apps.cpp
        cs_files.cpp
        cs_prefs.cpp
        cs_statefile.cpp
        file_xfer.cpp
        pers_file_xfer.cpp
        work_fetch.cpp
    clientgui/
        ViewTransfers.cpp
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.cpp

David  20 July 2011
    - client/server: change the implementation of upload certificates
        as described here: http://boinc.berkeley.edu/trac/wiki/ClientDataModel
        Compatibility: if your project is using upload certificates:
            - set ignore_upload_certificates
            - disable job creation
            - let your job queue drain
            - upgrade to new server software
            - clear ignore_upload_certificates
            - enable job creation

    sched/
        file_upload_handler.cpp
    tools/
        process_result_template.cpp
    lib/
        gui_rpc_client_print.cpp
    client/
        client_types.cpp,h
        file_xfer.cpp

David  20 July 2011
    - server: debug the above

    sched/
        file_upload_handler.cpp

David  20 July 2011
    - client: debug the above

    client/
        file_xfer.cpp

David  20 July 2011
    - server: debug distributed storage functions
        - generate upload signatures if needed
        - assign deadlines to file xfer jobs (default 1 week)
        - scheduler: ack completed file xfer results

    sched/
        put_file.cpp
        get_file.cpp
        sched_customize.cpp
    tools/
        backend_lib.cpp,h

David  20 July 2011
    - client: debug distributed storage functions

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

David  22 July 2011
    - server: some remote job submission code.  Not finished.

    tools/
        create_work.cpp
    html/
        inc/
            submit.inc
        user/
            submit.php
            submit_example.php

Charlie 25 July 11
    - Mac: Begin changes for XCode 4.1 and GCC 4.2.
    
    client/
        hostinfo_unix.cpp
    clientgui/
        browser.h
        sqlite3.c
        mac/
            MacBitmapComboBox.h
    lib/
        hostinfo.h

David  25 July 2011
    - web: more remote job submission code.  Not finished.

    db/
        boinc_db.h
    html/
        inc/
            submit.inc
            boinc_db.inc
            result.inc
        user/
            submit_example.php
            get_output.php
            submit.php

David  25 July 2011
    - user web: internationalization, from Christian Beer

    html/user/
        show_host_detail.php
        sample_index.php
        show_coproc.php
        show_user.php
        profile_search_action.php
        team.php

David  25 July 2011
    - user web: remote job submission:
        add the ability to download zipped output files

    html/user/
        submit_example.php
        get_output.php

Charlie 26 July 11
- Mac: Finish changes for XCode 4.1 and GCC 4.2.

    clientgui/
        sqlite3.c
    mac_build/
        boinc.xcodeproj/
            project.pbxproj
    mac_installer/
        PostInstall.cpp
        release_boinc.sh

David  26 July 2011
    - web: remote job submission: implement abort and cleanup functions

    html/
        inc/
            forum.inc
            submit.inc
            util.inc
            result.inc
        user/
            forum_thread.php
            submit_example.php
            submit.php

David  26 July 2011
    - web: remote job submission:
        - add fields to batch table, extend APIs accordingly
        - require that example web interface run on BOINC server
            (this makes many things easier;
            an actual remote interface would require a bit more work)

    db/
        boinc_db.h
        schema.sql
    html/
        ops/
            db_update.php
        inc/
            submit_db.inc
            submit.inc
            util.inc
            result.inc
        user/
            submit_example.php
            submit.php

Charlie 27 July 11
    - lib: Initialize config_coprocs struct in CONFIG::defaults().

    lib/
        cc_config.cpp

Charlie 27 July 11
    - SCR: Fix delay dismissing screensaver under Mac OS10.7.

    clientscr/
        mac_saver_module.cpp
        Mac_Saver_Module.h
        Mac_Saver_ModuleView.m, .h
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Charlie 28 July 11
    - Mac SCR: Fix vertical range of moving logo.

    clientscr/
        Mac_Saver_ModuleView.m

David  28 July 2011
    - remote job submission: bug fix and tweaks
    - client: cc_config.xml: if <devnum> is omitted from a <exclude_gpu>,
        it means exclude all instances of that GPU type
    - client: if all instances of a GPU type are excluded for a project,
        don't ask the project for jobs of that type

    html/
        ops/
            submit_permissions.php
        inc/
            util.h
        user/
            submit_example.php
    lib/
        cc_config.cpp,h
    client/
        work_fetch.cpp,h
        client_types.cpp,h
        client_state.cpp
        gui_rpc_server_ops.cpp
        cpu_sched.cpp

David  29 July 2011
    - client: fix bug in <exclude_gpu> config option
    - client: extend <exclude_gpu> option so that if <device_num> is omitted,
        all GPUs of the given type are excluded.
        
    client/
        cpu_sched.cpp
        work_fetch.cpp
    lib/
        cc_config.cpp,h

David  30 July 2011
    - server: fix typo

    db/
        boinc_db.h

David  30 July 2011
    - user web: in instructions for logging in with authenticator,
        show the actual account file name.

    html/user/
        get_passwd.php

David  30 July 2011
    - web: fix typo that prevented users from seeing their own hidden posts

    html/
        inc/
            prefs.inc
        user/
            forum_user_posts.php

David  31 July 2011
    - web: fix +/- forum rating, and tweak messages.  Fixes #1123

    html/user/
        forum_report_post.php
        forum_rate.php

David  31 July 2011
    - scheduler: check for negative elapsed time in results
        reported by client, set to zero

    sched/
        sched_result.cpp
        sched_types.cpp
    html/user/
        create_account_form.cpp

David  1 Aug 2011
    - web: fix bug in next_url mechanism

    html/inc/
        util.inc

David  1 Aug 2011
    - client: change the way upload signatures are generated
        in an attempt to make them work with existing servers

    client/
        file_xfer.cpp

David  1 Aug 2011
    - client: undo the above.  doesn't work

    client/
        file_xfer.cpp

David  1 Aug 2011
    - update_versions: add optional <gzip> element to
        <file> element in version.xml.
        If present, update_versions will gzip the file in the download dir.
        Use this only if you have gzip-encoding enabled in Apache.

    tools/
        update_versions

Charlie 2 Aug 11
    - Mac installer: Work around bug in Mac OS 10.7 dscl merge command.
    
    mac_installer/
        PostInstall.cpp

David  2 Aug 2011
    - update_versions: bug fixes

    tools/
        update_versions

David  3 Aug 2011
    - client: fix bug in get_descendants(),
        which prevented the client from cleaning up
        subprocesses of misbehaving multiprocess apps.
    - remote job submission system:
        assign physical names to input files (based on their MD5)
        rather than having the user provide physical names
    - VM apps: eliminate vbox64 plan class.  Only vbox.

    sched/
        sched_customize.cpp
    html/
        ops/
            manage_app_versions.php
        inc/
            submit.inc
        user/
            submit_example.php
            submit.php
    lib/
        procinfo.cpp
    client/
        app_start.cpp
        app_control.cpp

David  3 Aug 2011
    - client: add optional <file_prefix> to APP_VERSION>.
        If present, "file_prefix/" is prepended to the logical names
        of input and output files of jobs using that app version.
        I.e. for Vbox wrapper based app versions, file_prefix is "share",
        so that I/O files are put in a "share" subdirectory of the slot dir.
    - update_versions: add support for
        <dont_throttle>
        <file_prefix>x</file_prefix>
        in version.xml

    tools/
        update_versions
    client/
        client_types.cpp,h
        app.h
        app_start.cpp

David  3 Aug 2011
    - client: if an app version has nonempty file_prefix,
        copy all its input and output files

    client/
        app.h
        app_start.cpp

Charlie 3 Aug 11
    - Mac: Fix warning about potential memory leak.

    clientgui/
        mac/
            SystemMenu.m

David  3 Aug 2011
    - vbox wrapper: fix parsing of job file
    - vbox wrapper: fix code structure
        - merge vm and vbox
        - no global vars

    samples/vboxwrapper/
        vbox.cpp,h
        vm.cpp.h (removed)
        vboxwrapper.cpp
        Makefile

David  3 Aug 2011
    - vbox wrapper: hardwire logical name of image file to "vm_image.vdi".
    - vbox wrapper: on startup, rename image file to "vm_image_SLOT.vdi",
        where SLOT is the slot number.
        Vbox requires unique names for VM image files.

    samples/vboxwrapper/
        vbox.cpp,h
        vboxwrapper.cpp

David  4 Aug 2011
    - scheduler: apparently some hosts send GPU parameters that cause
        the peak_flops to be negative (probably #processors = -1).
        This leads to negative credit.
        Fix: if peak flops is negative, set it to 50 GFLOPS
    - web: fix email validate page

    lib/
        coproc.h
    html/user/
        validate_email_addr.php

Rom    4 Aug 2011
    - vbox wrapper: initialize xml parser with the correct starting tag.
    
    samples/vboxwrapper/
        vboxwrapper.cpp

David  4 Aug 2011
    - scheduler: turns out we need separate vbox32 and vbox64
        plan classes after all.
        Otherwise (since app_plan() is not passed an app version)
        there's no way to enforce that 64 bit hosts are sent
        only the 64 bit version (which is necessary because
        of the split-registry scheme).

    sched/
        sched_customize.cpp

David  6 Aug 2011
    - web: send user a private message when
        - one of their posts is moderated
        - a banishment vote starts or completes.
        This is needed in cases where the user can't or doesn't
        read email to their account's address.
        The "from" address of the PM is that of the user, not the moderator.

    html/
        inc/
            pm.inc
            forum_email.inc
        user/
            pm.php
            team_founder_transfer_action.php

David  6 Aug 2011
    - update_versions: fix bug where files not listed in version.xml
        are not processed correctly
    - remote job submission: debug
    - create_work: --rsc_fpops_est etc. should override the template file

    tools/
        backend_lib.cpp
        update_versions.cpp
    html/user/
        submit_example.php
        submit.php

David  7 Aug 2011
    - remote job submission: bug fixes

    html/
        inc/
            submit.inc
            util.inc
            result.inc
        user/
            submit_example.php
            submit.php

David  7 Aug 2011
    - client: projects with zero resource share are always lower priority,
        for both job sched and work fetch,
        than projects with positive resource share.

    client/
        cpu_sched.cpp
        work_fetch.cpp

David  7 Aug 2011
    - scheduler: fix nasty bug where SCHED_DB_RESULT::parse()
        was doing memset(this, 0, sizeof(RESULT)),
        i.e. it wasn't zeroing out the whole structure.
        The elapsed_time field (which isn't reported by old clients),
        is near the end of the struct,
        and it was getting garbage, e.g. 1e-304, in some cases,
        which led to zero credit (and maybe other problems)
    - validator: treat 1e-304 like zero in case of other problems
        like the above.
    - remote job submission: tweaks

    sched/
        credit.cpp
        sched_types.cpp
    html/user/
        submit_example.php
        submit.php

David  7 Aug 2011
    - web: when sending emails to other users, don't translate anything
        (since they don't necessarily speak our language)

    html/
        ops/
            index.php
        inc/
            pm.inc
            submit.inc

David  7 Aug 2011
    - client: make round-robin simulator match what the job scheduler now does:
        give lowest priority to projects with zero resource share.

    client/
        rr_sim.cpp
        client_types.h

Charlie 8 Aug 2011
    - Changes for Charity Engine Desktop.
    
    clientgui/
        mac/
            CE_ss_logo.tiff (new)
        res/
            CE_Install.icns (new)
            CharityEngine.icns (new)
            CE_Uninstall.icns (new)
            MacCEPkgIcon.zip (new)
        skins/
            Charity Engine/ (new)
                graphics/ (new)
                    (many new files)
                skin.xml (new)
    clientscr/
        mac_saver_module.cpp
        res/
            CE_ss_logo.png (new)
            CE_ss_logo.jpg (new)
        ss_app.cpp
    mac_installer/
        CE-Branding (new)
        CE-ReadMe.rtf (new)
        CharityEngine/ (new)
            acct_mgr_url.xml (new)
        GR-ReadMe.rtf
        make_CharityEngine.sh (new)
        PostInstall.cpp
        PTP-ReadMe.rtf
        ReadMe.rtf

Charlie 8 Aug 2011
    - Mac Client: Call NSVersionOfRunTimeLibrary("cuda") to set 
        cc.display_driver_version (from Oliver Bock.)
        
    client/
        coproc_detect.cpp

David  9 Aug 2011
    - client: rename MODE to RUN_MODE, and rename vars accordingly

    client/various

David  9 Aug 2011
    - client: pass XML_PARSER& rather than MIOFILE& to parse functions.
        Preparatory to using new-style XML parsing everywhere.

    client/various
    lib/various

Rom    10 Aug 2011
    - Changes for Charity Engine Desktop.

    client/win/res/
        ce.ico
    clientctrl/
        boincsvcctrl.rc
    clientgui/
        BOINCGUIApp.rc
    clientgui/res/
        ce.ico
    clientlib/win/
        boinc_dll.rc
    clientscr/
        boinc_ss.rc
    clientscr/
        boinc_ss_opengl.rc
    clientscr/res/
        ce.bmp
        ce.ico
    clienttray/
        boinc_tray.rc
    win_build/
        ce_boinc_cli.vcproj
        ce_boinc_dll.vcproj
        ce_boinc_ss.vcproj
        ce_boinccmd.vcproj
        ce_boincmgr.vcproj
        ce_boincsvcctrl.vcproj
        ce_boinctray.vcproj
        ce_ss_app.vcproj
        CharityEngine.sln
    win_build/installerv2/
        CharityEngine.ism
    win_build/installerv2/redist/0409/
        ce-eula.rtf
    win_build/installerv2/redist/CharityEngine/
        acct_mgr_url.xml
        ce.ico
        CE_IsDialogBanner.bmp
        CE_IsDialogBitmap.bmp
        CE_Splash.bmp

David  10 Aug 2011
    - Improve interface of XML_PARSER.
        Add parsed_tag and is_tag to the class,
        so that parsing functions don't need to declare them
        and pass them around.
    - Complete the task of using XML_PARSER as the argument
        to all parsing functions.
        (Internally, many of these functions still use the old XML parser;
        that's the next step.)

    db/
        boinc_db.cpp,h
    sched/
        various
    tools/
        backend_lib.cpp
    lib/
        various
    client/
        various

David  10 Aug 2011
    - fix compile warnings; msg tweak

    client/
        cpu_sched.cpp
    lib/
        parse.cpp

David  10 Aug 2011
    - client: use new XML parser pretty much everywhere

    lib/
        cert_sig.cpp,h
        parse.h
    client/
        pers_file_xfer.cpp
        cs_account.cpp
        client_types.cpp
        cs_statefile.cpp
        scheduler_op.cpp
        time_stats.cpp
        app.cpp
        current_version.cpp

Charlie 11 Aug 2011
    - Mac installer: Bug fixes for OS 10.7 Lion: LoginItemAPI.c did not 
        set hidden property for login items, so use AppleScript instead, 
        to prevent Lion from opening BOINC windows at system startup.
        - Fix a bug I introduced on 8 August which prevented launching 
        WaitPermissions.app.
    - Mac uninstaller: Remove Charity Engine BOINC app if present.
    
    mac_installer/
        AddRemoveUser.cpp
        PostInstall.cpp
        Uninstall.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  11 Aug 2011
    - client: more XML parsing stuff

    client/
        app.cpp
        net_stats.cpp

David  11 Aug 2011
    - scheduler: update XML parsing

    sched/
        sched_main.cpp
        sched_types.cpp

David  11 Aug 2011
    - client: XML tweak

    client/
        client_types.cpp

Charlie 12 Aug 2011
    - Mac installer: Bug fixes for OS 10.7 Lion.

    mac_build/
        Mac_SA_Secure.sh
    mac_installer/
        AddRemoveUser.cpp
        PostInstall.cpp

Rom    18 Aug 2011
    - WINSCR: Based on feedback from WCG about the screensaver lock-up
        problem attempt to provoke Windows into redrawing the primary
        display.  It turns out that the screensaver image is a ghost
        image, so create a blank top-most window and close it after
        the graphics application has been terminated.
        
    clientscr/
        screensaver_win.cpp, .h

David  21 Aug 2011
    - Vbox wrapper: add --trickle x option; sends a trickle-up message
        reporting incremental runtime exery x seconds of runtime.
    - client: more XML parsing cleanup
    - credit trickle handler: do sanity checks on CPU speed

    sched/
        trickle_credit.cpp
        credit.cpp,h
    samples/vboxwrapper/
        vboxwrapper.cpp
    client/
        acct_setup.cpp,h
        gui_rpc_server_ops.cpp

David  21 Aug 2011
    - credit trickle handler: write log messages if sanity checks fail

    sched/
        trickle_credit.cpp

David  21 Aug 2011
    - add script to purge trickle message records from DB
    - fix spelling errors in db_purge

    html/ops/
        purge_trickles.php (new)
    sched/
        db_purge.cpp

Charlie 22 Aug 2011
    - client: Fix compiler warnings.

    client/
        app.cpp
        coproc_detect.cpp

Charlie 22 Aug 2011
    - client: Correlate OpenCL results with CAL or CUDA results based 
        on index of devices reported by each.  This assumes that CUDA 
        and OpenCL and report NVIDIA devices in the same order, and 
        that CAL and OpenCL report ATI/AMD devices in the same order.

    client/
        coproc_detect.cpp
    lib/
        coproc.h

David  22 Aug 2011
    - client emulator fixes

    sched/
        edf_sim.h
    client/
        sim.cpp
        sim_util.cpp
        cs_statefile.cpp

Charlie 23 Aug 2011
    - client: If OpenCL is supported, add OpenCL information to 
        COPROC_ATI::write_xml() and COPROC_NVIDIA::write_xml(), and 
        parse OpenCL information in COPROC_ATI::parse() and 
        COPROC_NVIDIA::parse().
    - client: Add OpenCL platform version number to COPROC struct.

    client/
        coproc_detect.cpp
    lib/
        cl_boinc.h
        coproc.cpp, .h
        parse.h

David  23 Aug 2011
    - example app: change the app version structure to match the new format

    samples/example_app/
        various

David  23 Aug 2011
    - fix linux build errors in coproc stuff.
        I don't think unsigned long long is relevant here.

    lib/
        parse.h
        coproc.cpp
    client/
        coproc_detect.cpp

David  23 Aug 2011
    - example app: get it right this time
    
    samples/example_app/
        various

Charlie 24 Aug 2011
    - lib: fix compile errors on Mac, Ubuntu and Windows.

    lib/
        parse.h

Charlie 24 Aug 2011
    - client: fix compile warnings on Mac and Ubuntu.

    client/
        coproc_detect.cpp

Charlie 24 Aug 2011
    - lib, client: revert recent changes to restore unsigned long long so 
        we can determine cause of and try to fix Linux build errors.
    - lib: On Windows, call _strtoui64() instead of strtoull.

    lib/
        coproc.cpp
        parse.h
    client/
        coproc_detect.cpp

David  24 Aug 2011
    - job submission: fix bug where parameters specified in the
        input template (e.g., delay bound) were ignored
    - web: fix PHP warning

    tools/
        backend_lib.cpp
    html/
        inc/
            forum.inc
        user/
            forum_forum.php

David  24 Aug 2011
    - client: pass --gpu_type X (X=nvidia or ati) as well as --device.
        This lets device-neutral OpenCL apps figure out which GPU to use.

    client/
        app_start.cpp

Charlie 25 Aug 2011
    - client: fix Linux compile errors and warnings.

    client/
        coproc_detect.cpp
    lib/
        coproc.cpp
        parse.h

David  25 Aug 2011
    - client: fix bug where NVIDIA display driver version wasn't being
        set correctly for some laptop GPUs
    - client/server: improve estimation of NVIDIA GPU peak FLOPS

    lib/
        coproc.h
    client/
        coproc_detect.cpp

David  25 Aug 2011
    - validator: update credit statistics even if credit_from_wu
        is being used.
    - web: make almost everything translatable.  From Christian Beer.

    sched/
        validator.cpp
    html/user/
        various

Charlie 26 Aug 2011
    - lib: use standard implementation of strtoull when available.

    configure.ac
    clientgui/
        mac/
            config.h
    lib/
        parse.h

David  26 Aug 2011
    - web: more fixes from Christian Beer.  Fixes #1129

    html/
        ops/
        inc/

Rom    26 Aug 2011
    - VboxWrapper: Add functions for enable/disable network and throttling
        the CPU and network activity.

    samples/vboxwrapper/
        vbox.cpp, .h

David  26 Aug 2011
    - scheduler: don't send user a message when there is no
        app version for their platform for a particular app.
        The may be versions for other apps which don't have jobs right now.
        TODO: send a message if there are no versions of ANY app
        for any platform.
    - fix makefile indentation, caused manager to not be built
        fixes #1132

    sched/
        sched_version.cpp
        sched_send.cpp
    Makefile.am

David  26 Aug 2011
    - VirtualBox wrapper:
        - change names of CPU and network-limiting functions
            to express their units (always do this).
        - wrapper monitors status.suspend_network
            and suspends/resumes network accordingly
        - wrapper sets CPU and network bandwidth limits on startup
            (Rom: should this be done before run() rather than after?)
    Note: App versions using this wrapper should always have
        <dont_throttle/> in their version.xml,
        to tell the client that the app throttles itself.

    samples/vboxwrapper/
        vbox.cpp,h
        vboxwrapper.cpp

David  26 Aug 2011
    - fix build error in Linux screensaver (at least on FC14)

    clientscr/
        screensaver_x11.cpp

David  26 Aug 2011
    - web: comment out OpenID login - not working yet

    html/user/
        login_form.php

David  26 Aug 2011
    - job creation: handling of extra XML in input templates didn't work.
    - job creation: fix stripping of <output_template> tags
    - client: fix off-by-1 error in buffer overflow logic for scanning keys.

    tools/
        backend_lib.cpp
        process_result_template.cpp
    lib/
        crypt.cpp
        parse.cpp,h

David  26 Aug 2011
    - manager: Communitcations -> Communications.
        please, no spelling errors in function/variable names
    - client: parse deprecated tags in <file_info>

    clientgui/
        ProjectProcessingPage.cpp,h
        AccountManagerProcessingPage.cpp,h
    client/
        client_types.cpp

David  26 Aug 2011
    - client: fix bug that caused project attach to fail
    - clientgui: Rom, we should do error-checking of most GUI RPCs;
        look for REPORT ERROR in ProjectProcessingPage.cpp

    client/
        acct_setup.cpp
        coproc_detect.cpp
    clientgui/
        ProjectProcessingPage.cpp

David  26 Aug 2011
    - web: fix glitch in forum next/prev links

    html/inc/
        host.inc
        forum.inc
    
David  26 Aug 2011
    - web: more tra() stuff

    html/user/
        forum_thread.php

David  27 Aug 2011
    - web: add a magic header string that supposedly will make
        Recaptcha work on some IE variants.  WTF??

    html/
        inc/
            util.inc
        user/
            create_account_form.php
            create_profile.php

David  28 Aug 2011
    - web: fix to the above
    - web: fix forum search

    html/
        inc/
            util.inc
        user/
            forum_search.php
            forum_search_action.php

David  28 Aug 2011
    - web: fix some stuff broken by my checkin [24039].
    - web: use &amp; instead of & in URLs (not complete)

    html/
        inc/
            forum.inc
            util.inc
        user/
            forum_thread.php
            forum_forum.php
            edit_forum_preferences_action.php

David  29 Aug 2011
    - web: fix typo in profile credit/edit

    html/user/
        create_profile.php

David  29 Aug 2011
    - web: fix bug in "report post" function

    html/user/
        delete_profile.php
        forum_report_post.php

David  29 Aug 2011
    - Vbox wrapper: deal with checkpointing.
        Current: wrapper reports frequent checkpointing to client,
            but actually checkpoints only when the VM is stopped
        Problem: large amounts of work would be wasted if
            BOINC stops in an ungraceful way (e.g., power failure)
        Solution:
            Don't report frequent checkpointing.
            Every CPU scheduling period (typically once/hour)
            stop the VM (creating a checkpoint)
            and call boinc_temporary_exit(0).
            If the client wants to keep running this job,
            it will start us immediately.

    samples/vboxwrapper/
        vboxwrapper.cpp

David  29 Aug 2011
    - web: add page showing top GPU models

    html/user/
        gpu_list.php

Charlie 30 Aug 2011
    - Mac: Copy BOINC libraries built with XCode 4.1 to locations 
        where built by earlier versions of XCode so dependent 
        builds can always find them.
    - Vbox wrapper: create XCode project.
    
     mac_build/
        boinc.xcodeproj/
            project.pbxproj
    samples/vboxwrapper/
        vboxwrapper.xcodeproj
            project.pbxproj

David  30 Aug 2011
    - client: fix a couple of valgrind warnings

    client/
        cs_notice.cpp
        hostinfo_unix.cpp

David  30 Aug 2011
    - client: send all running jobs a "reread app info" message
        when global prefs change (in the case of vboxwrapper,
        it might have to change network or CPU throttling)

    sched/
        sched_version.cpp
        sched_send.cpp
    client/
        cs_prefs.cpp

David  30 Aug 2011
    - web: sort GPUs by average elapsed time

    html/user/
        gpu_list.php

David  30 Aug 2011
    - vbox wrapper: check for boinc_status.reread_init_data_file,
        and if set reread the file, set throttles, and clear flag

    samples/vboxwrapper/
        vboxwrapper.cpp

David  30 Aug 2011
    - validator: in "credit_from_wu" case, record what the new credit
        system would have assigned in result.claimed_credit.

    sched/
        validator.cpp

Charlie 31 Aug 2011
    - define GPU_TYPE_NVIDIA, GPU_TYPE_ATI, use everywhere instead of 
        literal strings "NVIDIA" and "ATI" to ensure uniformity.
        
    client/
        acct_mgr.cpp
        client_state.cpp
        client_types.cpp
        coproc_detect.cpp
        cpu_sched.cpp
        cs_account.cpp
        cs_scheduler.cpp
        log_flags.cpp
        scheduler_op.cpp
    lib/
        coproc.cpp, .h
        gui_rpc_client_ops.cpp

Charlie 31 Aug 2011
    - lib: Add OPENCL_REFERENCE boinc_get_opencl_ids(int argc, char** argv) 
        to be called by OpenCL project applications to get the platform ID 
        and device ID of the GPU assigned to the task by the scheduler.

    lib/
        coproc.cpp, .h

David  31 Aug 2011
    - API: move boinc_get_opencl_ids() from lib/ to api/.
        lib/ is for code that's used by >1 part of BOINC

    lib/
        coproc.cpp,h
    api/
        boinc_opencl.cpp,h (new)
        Makefile.am

David  31 Aug 2011
    - boinc_get_opencl_ids():
        - change signature to return int error code
        - no function overloading

    api/
        boinc_opencl.cpp,h

David  31 Aug 2011
    - client: fix bugs related to white space around code signing keys
    - win compile fixes

    api/
        boinc_opencl.cpp
    client/
        client_types.cpp
        cs_scheduler.cpp
        scheduler_op.cpp
    win_build/
        libboincapi_staticrt.vcproj

David  31 Aug 2011
    - web: show actual project info on "forget password?" page

    html/user/
        get_passwd.php

David  31 Aug 2011
    - API: boinc_get_opencl_ids() doesn't need to link
        the OpenCL library at runtime.
        It's used only in OpenCL applications,
        which already include the library.

    api/
        boinc_opencl.cpp,h
        Makefile.am

David  31 Aug 2011
    - scheduler: make sure there's a \n after </workunit> and </result>.
        Otherwise older clients won't be able to parse.

    sched/
        sched_types.cpp

Rom    31 Aug 2011
    - VboxWrapper: Specify a configuration directory under the slot directory to
        try and avoid permission errors on multiple platforms when BOINC
        is installed as a daemon.

    samples/vboxwrapper/
        vbox.cpp

Charlie 31 Aug 2011
    - api: Fix compile errors and warnings, add documentation in comments
    - lib: remove unnecessary #include, add needed function declarations 

    api/
        boinc_opencl.cpp, .h
    lib/
        cl_boinc.h
        coproc.cpp

David  31 Aug 2011
    - web: show relative performance on GPU list

    html/user/
        gpu_list.php

Charlie 1 Sep 2011
    - api: More fixes to boinc_get_opencl_ids()

    api/
        boinc_opencl.cpp
    lib/
        cl_boinc.h

Charlie 1 Sep 2011
    - lib: if OS_Darwin use procinfo_mac.cpp isntead of procinfo_unix.cpp.
    - lib, api: update XCode project to build same source files in each 
        library as corresponding make files.

    lib/
        makefile.am
     mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  1 Sept 2011
    - server: rename process_wu_template() to process_input_template(),
        and move it to its own file

    sched/
        Makefile.am
    tools/
        backend_lib.cpp,h
        process_input_template.cpp,h (new)
        Makefile.am
    api/
        reduce_main.cpp

David  1 Sept 2011
    - server: factor process_input_template() into smaller pieces

    tools/
        process_input_template.cpp

David  1 Sept 2011
    - web: fix bug in "allow beta apps" preferences editing

    html/user/
        prefs_edit.php

David  1 Sept 2011
    - wrapper compile fixes

    samples/wrapper/
        wrapper.cpp

Rom    1 Sept 2011
    - VboxWrapper: Add a way to extract the VM process id from the VM's
        log file.
        
    samples/vboxwrapper/
        vbox.cpp, .h

David  2 Sept 2011
    - client (and API and manager): change the data structure
        used for system process info
        Old: vector of PROCINFO.
            Descendants of a process were found by recursively
            iterating through the vector.
            Operations are O(n)
        New: map of (id, PROCINFO),
            and each PROCINFO has a vector of its children.
            Operations are O(log(n))
        Also combined Mac/Win/Linux variants of code that
        was essentially the same.

    lib/
        procinfo.cpp,h
        procinfo_win.cpp
        procinfo_unix.cpp
        procinfo_mac.cpp
    clientgui/
        BOINCClientManager.cpp
        BOINCGUIApp.cpp

David  2 Sept 2011
    - more code shuffling:
        proc_control: controlling processes
        procinfo: enumerating and querying processes
        run_app_windows: launching apps as other users on Win

    lib/
        proc_control.cpp,h
        run_app_windows.cpp
        procinfo.cpp,h
        Makefile.am
    api/
        boinc_api.cpp
    client/
        app_control.cpp

David  2 Sept 2011
    - client/API/vboxwrapper:
        add a mechanism so that apps can report sub-processes
        that are not descendants (e.g., virtual machines)
        These processes are then counted as part of the app,
        not as "non-BOINC CPU time".
        This fixes a bug where processing was incorrectly suspended
        because CPU usage by VM apps exceeded the "CPU usage limit" pref.

        Implementation:
        - the PIDs of the processes in question
            are passed from app to client via shared-memory,
            in the app_status channel.
            A new variant of boinc_report_app_status() supports this.
        - the VBox wrapper queries the PID of the VM,
            and reports it in this way.
        - procinfo_app() includes a new argument: a list of PIDs
            that are part of the app, although not ancestrally
            related to the main process.
        - in the client, ACTIVE_TASK now includes a vector "other_pids".
            If this is nonempty, it's passed to procinfo_app().

    lib/
        procinfo.cpp,h
    samples/
        vboxwrapper/
            vbox.cpp,h
            vboxwrapper.cpp
    api/
        boinc_api.cpp,h
    client/
        app.cpp,h
        app_control.cpp

David  2 Sept 2011
    - web: fix bug in add project prefs for a venue

    html/user/
        add_venue.php

Charlie 2 Sep 2011
    - lib: Fix compile errors; add app_control.cpp to XCode project.

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

David  2 Sept 2011
    - lib: minor code shuffle

    lib/
        proc_control.cpp
        procinfo_win.cpp

David  2 Sept 2011
    - web: when displaying a user's posts, limit the query to 1000
        so the page doesn't exceed CPU limit

    html/user/
        forum_user_posts.php

David  5 Sept 2011
    - web: fix warnings in forum pages
    - scheduler: when using elapsed time stats to predict runtime,
        cap the estimated FLOPS at twice the peak FLOPS;
        otherwise, if a host has received a lot of very short jobs
        recently, it will get a too-high FLOPS estimate and
        will exceed the rsc_fpops_bound limit.

    db/
        boinc_db.h
    sched/
        sched_types.cpp,h
        sched_version.cpp
    html/
        ops/
            submit_permissions.php
        inc/
            forum.inc

David  5 Sept 2011
    - scheduler RPC: add <override_file_present> element to
        the <working_global_preferences> element in
        scheduler RPC request
        (tells the server that there's an override file).
    - account manager RPC: add <working_global_preferences> element,
        including the override flag.
    - web: add "no time limit" option for forum search
    - web: increase show-user-post query limit to 10000

    lib/
        prefs.cpp,h
    client/
        cs_prefs.cpp
        acct_mgr.cpp
    html/user/
        forum_search.php
        forum_search_action.php
        forum_user_posts.php

David  6 Sept 2011
    - scheduler: add a debug message

    sched/
        sched_send.cpp

David  6 Sept 2011
    - client: fix bugs with white space around code sign keys
        and file signatures
    - client: when describing app versions in scheduler requests,
        we still must use CUDA instead of NVIDIA;
        that's what's in the server code.

    client/
        client_types.cpp

David  6 Sept 2011
    - scheduler: use new XML parser for most request elements
    - scheduler: parse NVIDIA as well as CUDA in app version descriptions
        (workaround for recent clients)

    sched/
        sched_send.cpp
        sched_types.cpp

David  6 Sept 2011
    - preliminary stuff for mechanism where privileged users
        can create apps and app versions
    - crontab commands should be preceded by cd to project root

    db/
        schema.sql
    tools/
        make_project
    html/
        ops/
            submit_permissions.php
            db_update.php
        user/
            submit_app.php

David  7 Sept 2011
    - scheduler: fix crashing bug

    sched/
        sched_version.cpp
        sched_assign.cpp

Rom    7 Sept 2011
    - Tag for 6.13.2 release, all platforms
      boinc_core_release_6_13_2

    /
        configure.ac
        version.h

David  7 Sept 2011
    - feeder: change the DB query to skip jobs for deprecated apps.
        Otherwise, if you have a deprecated app with >= 200 jobs
        (200 is the query's limit)
        it could always get jobs for that app,
        and never put anything into the cache.

    db/
        boinc_db.cpp

David  7 Sept 2011
    - client: make exit_before_start a cc_config.xml option
        (as well as a cmdline option)
    - wrapper: print error messages if stdin/out/err files don't exist

    lib/
        cc_config.cpp,h
    samples/wrapper/
        wrapper.cpp
    client/
        client_state.cpp,h
        app_start.cpp
        cs_cmdline.cpp
        app_control.cpp

David  8 Sept 2011
    - scheduler: in work_needed(), ignore requests for resource
        types for which we have no app versions
    - client: if too many <coproc> elements in cc_config.xml,
        detect it and inform user

    sched/
        sched_send.cpp
    lib/
        coproc.h
        cc_config.cpp
    samples/
        client_state_save.xml
    client/
        log_flags.cpp

David  8 Sept 2011
    - web: fix PHP warning

    html/inc/
        result.inc

David  8 Sept 2011
    - validator: old scheduler bugs may cause result.flops_estimate
        to be negative in some cases.
        Detect this, and use 1e10 instead

    sched/
        credit.cpp

David  8 Sept 2011
    - client: new XML parser had a limit of 8KB for strings.
        This broke things.  Increase it to 256KB.

    lib/
        parse.cpp

Charlie 9 Sep 2011
    - Mac: More fixes for building under XCode 4.1.

    mac_build/
        boinc.xcodeproj/
            project.pbxproj
    mac_installer/
        release_boinc.sh

Rom    9 Sept 2011
    - Tag for 6.13.3 release, all platforms
      boinc_core_release_6_13_3

    /
        configure.ac
        version.h

David  9 Sept 2011
    - web: suppress warning on cache unlink

    html/inc/
        cache.inc

David  9 Sept 2011
    - client: XML-escape the URLs in RSS feed lists
    - lib: make xml_unescape work for arbitrarily large strings

    lib/
        parse.cpp
    client/
        cs_notice.cpp

David  10 Sept 2011
    - client: don't pass --gpu_type to GPU apps;
        this breaks many existing apps.
        Instead, pass the GPU type (and the device number)
        in app_init_data.xml

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

David  10 Sept 2011
    - client: fix error in parsing of XML comments

    lib/
        parse.cpp

David  11 Sept 2011
    - client: finish next-to-last checkin

    client/
        app_control.cpp
        app_start.cpp
        app.h

David  11 Sept 2011
    - manager, simple view:
        - edit label text
        - increase opacity of main area;
            otherwise some text is hard to read
        - change borders from blue to light gray.
            In general shouldn't use primary colors
        - display credit as integer
        - reduce size of project name;
            otherwise long names don't fit (on Win)
        - don't use "(in slot x)".
            "Slot" is not part of the vocabulary here.

    clientgui/
        sg_PanelBase.cpp
        sg_ProjectPanel.cpp
        sg_TaskPanel.cpp

David  11 Sept 2011
    - API: change boinc_get_opencl_ids() to use APP_INIT_DATA
        instead of cmdline

    api/
        boinc_api.cpp,h
        boinc_opencl.cpp,h

David  11 Sept 2011
    - API; fix the above fix

    api/
        boinc_api.cpp,h
        boinc_opencl.cpp
        Makefile.am

David  12 Sept 2011
    - client: make RR simulation more accurate
        by simulating time-slicing explicitly.
        Also simulate changes in project REC
        and hence in scheduling priority.
    - client: add a log flag "rrsim_detail" that prints
        time-slice-level info.

    lib/
        cc_config.cpp,h
    client/
        work_fetch.cpp,h
        client_types.cpp,h
        rr_sim.cpp,h
        cpu_sched.cpp

David  12 Sept 2011
    - client: remove code related to debt-based scheduling

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

David  12 Sept 2011
    - client: make file upload work w/ old handlers

    client/
        file_xfer.cpp

David  12 Sept 2011
    - web: add <no_web_account_creation> config option

    html/user/
        create_account_form.php
        create_account_action.php
        sample_index.php

David  12 Sept 2011
    - validator: add --no_credit option;
        maintains stats but doesn't grant credit

    sched/
        validator.cpp

David  12 Sept 2011
    - client, GUI RPC, Manager:
        in GUI RPC, change RESULT.gpu_mem_wait to scheduler_wait.
        It means that the app did a boinc_temporary_exit(),
        and is waiting to be rescheduled.
        GPU mem wait is one source of this, not the only one

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

Rom    13 Sept 2011
    - VBOX: Add more trace messages to the wrapper to help resolve
        issues.
        
    samples/vboxwrapper/
        vbox.cpp

David  13 Sept 2011
    - validator: add a --credit_from_runtime option.
        This assigns credit proportional to runtime*p_fpops.
        To prevent cheating, p_fpops is capped at the 95th percentile value
        among active hosts,
        and runtime is capped at a specified limit.
        This option supports apps, like LHC's CERNvm app,
        that run for a certain amount of time and then exit.
        The CreditNew system doesn't work for such apps.
    - trickle_credit:
        To prevent cheating,
        cap p_fpops at the 95th percentile value among active hosts,
        and require a limit on runtime.
    - require that trickle handlers supply an initialization function

    db/
        boinc_db.cpp,h
    sched/
        trickle_handler.cpp,h
        trickle_credit.cpp
        trickle_echo.cpp
        validate_util2.cpp
        validator.cpp

David  13 Sept 2011
    - wrapper: don't delete task-level checkpoint file when starting task;
        that defeats the purpose.  From Uwe Becker.

    samples/wrapper/
        wrapper.cpp

Rom    13 Sept 2011
    - VBOX: Properly trap stderr output from vboxmanage by redirecting it to
        stdout.  Error messages should now be properly detected on Linux and
        Mac.
        
    samples/vboxwrapper/
        vbox.cpp

Rom    13 Sept 2011
    - VBOX: Don't attempt to stop a VM that is already shut down.
        
    samples/vboxwrapper/
        vbox.cpp

Rom    13 Sept 2011
    - VBOX: Make is_running() a bit smarter about detecting the running state
        of a virtual machine.
        
    samples/vboxwrapper/
        vbox.cpp

David  13 Sept 2011
    - client: get GPU available RAM at startup (only)
    - client: fix compile warning

    lib/
        coproc.cpp
    client/
        work_fetch.cpp,h
        client_state.cpp
        coproc_detect.cpp
        cpu_sched.cpp

David  13 Sept 2011
    - client: fixes to the above
    - client: prevent infinite recursion (and stack overflow)
        in procinfo.cpp:add_child_totals().
        Not sure how this could happen.

    client/
        coproc_detect.cpp
    lib/
        procinfo.cpp

Rom    13 Sept 2011
    - VBOX: Increase the pipe buffer on Windows from the default to 128k. Despite what
        the docs say, if the buffer isn't large enough VboxManage hangs attempting to
        write the VM log file to it.  Luckly the VM log file is only 64k.
    - VBOX: Fix a couple of parsing errors.
        
    samples/vboxwrapper/
        vbox.cpp

Rom    14 Sept 2011
    - VBOX: Add a register_only command line argument to help debug VM related issues.
    - VBOX: Add some suggestions to the source on how to debug VM related issues.
    - VBOX: Add a quick sanity check when the enable_shared_directory option is
        enabled.

    samples/vboxwrapper/
        vbox.cpp, .h
        vboxwrapper.cpp

David  13 Sept 2011
    - client: escape URLs for curl, otherwise filenames with spaces don't work

    lib/
        procinfo.cpp
    client/
        http_curl.cpp

David  13 Sept 2011
    - client: curl_easy_escape() escapes way too much.  Just escape spaces.

    client/
        http_curl.cpp

David  14 Sept 2011
    - XML parsing: do XML unescaping in place rather than allocating
        a buffer on the stack.
        Fixes a Manager crash on the Mac,
        where the default thread stack size seems to be 512KB.

    lib/
        parse.cpp,h
        app_ipc.cpp
    client/
        cs_notice.cpp

Rom    14 Sept 2011
    - client: Update Windows detection code to support Windows 8.
        (From: [P3D] Crashtest)
        
    client/
        hostinfo_win.cpp

David  14 Sept 2011
    - client: change in the use of GPU available RAM:
        - measure the available RAM of each GPU when BOINC starts up.
            If this fails, set available = physical.
            Show available RAM in startup messages.
        - use available RAM rather than physical RAM in selecting
            the "best" GPU instance
        - report available RAM to the scheduler
    TODO: change the scheduler to use available rather than physical
        if it's reported

    sched/
        sample_trivial_validator.cpp
    lib/
        coproc.cpp,h
    client/
        client_state.cpp
        coproc_detect.cpp
        cpu_sched.cpp

David  14 Sept 2011
    - vboxwrapper: we don't seem to be getting the VM PID.
        Add some printfs.

    samples/vboxwrapper/
        vbox.cpp

David  14 Sept 2011
    - client: report available GPU RAM to scheduler

    lib/
        coproc.cpp

David  14 Sept 2011
    - lib: parse <available_ram> in coproc XML
    - lib: do coproc XML parsing using new XML parser

    lib/
        parse.cpp,h
        coproc.cpp,h

David  14 Sept 2011
    - scheduler: in app_plan functions for GPUs,
        use available RAM if reported by client;
        otherwise use physical RAM.

    sched/
        sched_customize.cpp

David  14 Sept 2011
    - scheduler: revise [21428] to include non-anonymous-platform,
        and change the ratio limit from 2 to 10.

    sched/
        sched_send.cpp
        sched_version.cpp

Charlie 15 Sep 2011
    - lib: fix compiler warning.
    - vboxwrapper: fix compiler warning.
    - Mac: Change XCode project to build both 32-bit and 64-bit 
        BOINC libraries for debug as well as for deployment.
    - vboxwrapper: update XCode project for easier access to built
        executables and symbol tables under XCode 4.1.

    lib/
        coproc.cpp
    samples/
        vboxwrapper/
            vbox.cpp
            vboxwrapper.xcodeproj/
                project.pbxproj
     mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  15 Sept 2011
    - minor code shuffle

    client/
        rr_sim.cpp

Rom    15 Sept 2011
    - VBOX: Add a way to track overall network utilization of a VM.

    samples/vboxwrapper/
        vbox.cpp, .h

David  16 Sept 2011
    - Validator: allow project-specific code to mark a result
        is a "runtime outlier", i.e. its runtime does
        not correspond to the job's rsc_fpops_est.
        Runtime outliers are not counted in the statistics for
        elapsed time, turnaround time, and peak FLOPs count.

        The is intended for applications like SETI@home,
        some of whose jobs finish more or less instantly
        (this happens if the data contains a lot of interference).
        If a host happens to get a bunch of these short jobs,
        its statistics will get skewed: in essence, the server
        will think that the host is extremely fast,
        and will send it too many jobs.

    db/
        boinc_db.cpp,h
    sched/
        credit.cpp
        validator.cpp
    html/ops/
        db_update.php

David  16 Sept 2011
    - vboxwrapper: code cleanup
        - use double for potentially large quantities
        - factor out repetitive code, rather than copy and paste

    samples/vboxwrapper/
        vbox.cpp,h

David  16 Sept 2011
    - vboxwrapper: report network usage to the client
    - client: include the above in enforcing network quota preferences

    api/
        boinc_api.cpp,h
    samples/vboxwrapper/
        vbox.cpp,h
        vboxwrapper.cpp
    client/
        app.cpp,h
        app_control.cpp
    sched/
        trickle_handler.cpp

David  16 Sept 2011
    - transitioner: fix bug related to new runtime_outlier field

    db/
        boinc_db.cpp

David  16 Sept 2011
    - validator: add runtime_outlier message

    sched/
        credit.cpp

David  16 Sept 2011
    - client: with VBox on Win, the process graph sometimes has cycles.
        Not sure where this comes from.
        But avoid infinite recursion when traversing descendants.

    lib/
        procinfo.cpp,h

Charlie 16 Sep 2011
    - wrapper: Update Mac build script for XCode 4.1 and OS 10.7.  
        NOTE: We no longer support PowerPC Macs.

    samples/wrapper/
        wrapper.cpp

David  18 Sept 2011
    - client: make the attributes of GUI RPCs (network, authentication)
        explicit rather than determined by position in a list.
    - client: add a new "read-only" attribute for GUI RPCs.
        This is in preparation for handling GUI RPCs in separate threads.
    - client: remove code to support pre-V6 graphics.

    lib/
        parse.h
    client/
        cs_notice.cpp,h
        gui_rpc_server.cpp,h
        gui_rpc_server_ops.cpp
        app.cpp
        app_control.cpp
        Makefile.am

David  18 Sept 2011
    - Win fixes

    lib/
        mfile.cpp
        parse.cpp
    win_build/
        boinc_cli.vcproj

David  18 Sept 2011
    - lib: add generic interfaces for threads and thread synchronization

    lib/
        thread.cpp,h

David  18 Sept 2011
    - win fixes

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

Rom    19 Sept 2011
    - Tag for 6.13.4 release, all platforms
      boinc_core_release_6_13_4

    /
        configure.ac
        version.h

David  19 Sept 2011
    - client: in handling the acct_mgr GUI RPC,
        don't start the RPC directly;
        that might fail if CLIENT_STATE::gui_http is busy.
        Instead, set a timer field.
    - client: structure ACCT_MGR_OP the same as other GUI_HTTP_OP variants
    - client: clarify the comments on GUI_HTTP and GUI_HTTP_OP
    
    Note: GUI_HTTP and GUI_HTTP_OP are misnomers; they refer to
    any HTTP op other than scheduler requests and file transfers.
    Should change the name, maybe to CLIENT_HTTP*

    client/
        client_state.cpp
        gui_rpc_server.cpp
        gui_rpc_server_ops.cpp
        gui_http.cpp,h
        acct_mgr.cpp,h
        cs_trickle.h

Charlie 20 Sep 2011
    - Mac: Remove app_graphics.cpp from Client in XCode project, add new 
        files thread.cpp,.h to libboinc.a in XCode project.  
        (Checked in to 6.13.4 tag.)

     mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  20 Sept 2011
    - client: intermediate checkin for replicated trickle-ups.
        Not finished yet.
    - example app: add --trickle_up and --trickle_down options,
        for testing trickle messages

    client/
        acct_mgr.cpp
        client_types.h
        cs_notice.cpp,h
        cs_scheduler.cpp
        cs_trickle.cpp,h
        gui_http.cpp,h
        gui_rpc_server.cpp,h
        http_curl.cpp,h
        scheduler_op.cpp,h
    samples/example_app/
        uc2.php

David  21 Sept 2011
    - back end: extend the access control system for remote job submission
        and other operations.
        You can now designate a user as "manager" for a particular app.
        They can then:
        - control job-submit permissions for that app
        - deprecate/undeprecate versions of the app.
        - abort jobs for that app

        You can also designate a user as manager for the project.
        They can then edit permissions and quotas,
        as well as performing the app-specific functions for all apps.

        This is described here:
        http://boinc.berkeley.edu/trac/wiki/MultiUser#Accesscontrol

        This required some changes to the DB schema.

    db/
        schema.sql
    tools/
        manage_privileges
    html/
        inc/
            submit.inc
            submit_util.inc (new)
            result.inc
        ops/
            submit_permissions.php (removed)
            db_update.php
        user/
            manage_project.php (new)
            submit_example.php
            manage.php (new)
            manage_app.php (new)
            submit.php
    py/Boinc/
        setup_project.py

David  21 Sept 2011
    - client: fix bug in ATI GPU detection, caused zero RAM measurements

    client/
        coproc_detect.cpp

Rom    21 Sept 2011
    - client: fix ATI GPU max mem display issue.

    lib/
        coproc.cpp

David  21 Sept 2011
    - fix typo in DB schema
    - msg tweaks in make_project

    db/
        schema.sql
    py/Boinc/
        setup_project.py

David  21 Sept 2011
    - client: more stuff for replicated trickle ups

    client/
        cs_trickle.cpp
        client_types.cpp
        http_curl.cpp

David  21 Sept 2011
    - lib: don't include thread.cpp;
        not needed for server, and causes errors on some 64-bit Linux 

    lib/
        Makefile.am

Charlie 22 Sep 2011
    - vboxwrapper: fix code which sets environment variables.
        - "PATH" must be upper case.
        - putenv() does not copy its input string, so must use setenv().

    samples/
        vboxwrapper/
            vbox.cpp

Rom    22 Sept 2011
    - VBOX: More environment variable tweaks.

    samples/vboxwrapper/
        vbox.cpp, .h

David  22 Sept 2011
    - client: more work on replicated trickles.  Not working yet.

    client/
        client_state.cpp
        cs_trickle.cpp,h

David  22 Sept 2011
    - client: replicated trickles.  Seems to be working now.
    - client: added <trickle_debug> config option

    client/
        cs_trickle.cpp
        gui_http.cpp,h
        httl_curl.cpp
    lib/
        cc_config.cpp,h

Rom    22 Sept 2011
    - Tag for 6.13.5 release, all platforms
      boinc_core_release_6_13_5

    /
        configure.ac
        version.h

Rom    22 Sept 2011
    - client: Disable GPU detection of Windows when running as a
        service to avoid a deadlock condition with the latest ATI
        drivers.
        
    client/
        client_state.cpp
        coproc_detect.cpp

Charlie 23 Sep 2011
    - Mac: fixes for problems with OS 10.4 compatibility.
        (checked into 6.13.5 and 6.13.6 tags)

     mac_build/
        boinc.xcodeproj/
            project.pbxproj

Rom    22 Sept 2011
    - Tag for 6.13.6 release, all platforms
      boinc_core_release_6_13_6

    /
        configure.ac
        version.h

David  23 Sept 2011
    - fix typo in manage_privileges

    tools/
        manage_privileges

David  23 Sept 2011
    - web: don't addslashes() for button titles; this was left over
        from when buttons were implemented in Javascript

    html/inc/
        util.inc

David  23 Sept 2011
    - web: message tweak

    html/inc/
        forum.inc

David  23 Sept 2011
    - client: fix spurious error message about trickle-up URLs

    client/
        client_types.cpp

David  23 Sept 2011
    - client: don't call CLIENT_STATE::free_mem() on shutdown.
        This is for debugging only, and it can cause crashes.

    client/
        main.cpp

Charlie 24 Sep 2011
    - Mac: more fixes for problems with OS 10.4 compatibility.
        (checked into 6.13.5 and 6.13.6 tags)

     mac_build/
        boinc.xcodeproj/
            project.pbxproj
    mac_installer/
        PostInstall.cpp
        uninstall.cpp

David  26 Sept 2011
    - client simulator: add --existing_jobs_only option.
        This simulates just the jobs in the state file,
        rather than simulating an infinite stream of jobs
        modeled after the ones in the state file.

    client/
        sim.cpp,h
        cs_prefs.cpp
 
Charlie 26 Sep 2011
     - Mac: update wxMac build script for building with XCode 4.1 
        under OS 10.7 while maintaining OS 10.4 compatibility.
        (checked into 6.13.6 tag)

     mac_build/
        buildWxMac.sh

David  26 Sept 2011
    - client simulator: fixes
    - client: message tweaks

    client/
        client_state.cpp,h
        sim.cpp
        cs_prefs.cpp
        cs_apps.cpp
        log_flags.cpp
        cpu_sched.cpp
    lib/
        cc_config.h

David  26 Sept 2011
    - web: when showing a user's posts, don't show the ones
        in hidden threads
    - web: in showing the context of a post, link the thread also.

    html/
        user/
            forum_user_posts.php
        inc/
            forum.inc

Charlie 27 Sep 2011
    - client: Fix compile break on Mac.
    
    client/
        cpu_sched.cpp

Rom    27 Sept 2011
    - web: The create_account RPC supports taking an invite_code parameter
        but we currently do not expose a way in get_project_config to determine
        that a UI should prompt for one.  Add a <invite_code_required/> tag
        if the project is only accepting new accounts by invitation.
        
    html/user/
        get_project_config.php

Rom    27 Sept 2011
    lib: only build the static version of libboinc.

    lib/
        Makefile.am

David  27 Sept 2011
    - fix comment
    client/
        app_control.cpp

David  27 Sept 2011
    - Updates Linux notifications to use current libnotify.
    - Fix build problems on Mac OS X using autotools
    - Consistently use #if HAVE_X for platform checks,
        rather than #ifdef HAVE_X or #if defined(HAVE_X)
    - In Unix build, make lots of compiler checks standard
    - Fix some compile warnings

    From Matt Arsenault.

    Note: there are now lots of compile warnings in clientgui/ on Unix,
    mostly in WxWidgets code

    configure.ac
    Makefile.incl
    clientgui/gtk
        taskbarex.cpp
    db/
        boinc_db.cpp
    clientscr/
        gfxswitcher.cpp
    sched/
        file_deleter.cpp
        hr.h
    lib/
        various
    win_build/
        win-config.h
    api/
        various
    client/
        various

Charlie 27 Sep 2011
    - client: Fix compiler warnings on Mac.
    - client: Fix compile break on Mac.
    
    client/
        client_state.cpp
        cs_cmdline.cpp
        mac/
            config.h

David  28 Sept 2011
    - manager: fix build break on Linux
        Undoes part of yesterday's checkin.
    - more changes from #ifdef HAVE_X to #if HAVE_X

    clientgui/gtk/
        taskbarex.cpp
    lib/
        proc_control.cpp
        mac_address.cpp
        diagnostics.cpp
        parse.h

Rom    30 Sept 2011
    - WINSETUP: Add more logging to the create group and add user to group
        functions in an attempt to figure out what is going on with Windows 8.
        
    win_build/installerv2/redist/Windows/src/boinccas/
        CACreateBOINCGroups.cpp
    win_build/installerv2/redist/Windows/Win32/
        boinccas.dll
        boinccas95.dll
    win_build/installerv2/redist/Windows/x64/
        boinccas.dll
        boinccas95.dll

David  1 Oct 2011
    - client: fix a bug reported by Jacob Klein,
        where work fetch didn't work right in the presence of
        multiple GPUs and <exclude_gpu> config options.
        For example: suppose:
            - you have 2 GPUs and 2 projects
            - Project A is excluded from GPU 1
            - you have lots of jobs for project A
        Then the client won't try to fetch jobs from project B.

        The problem had 2 parts:
        a) round-robin simulation wasn't taking GPU exclusions into account.
            In the above example, it would think that both GPUs had jobs.
            I fixed this by computing the # of GPUs from each project
            is excluded, and using this in the RR simulation.
        b) Once this was done, I needed to make the client
            request GPU jobs from project B rather than project A.
            I did this with following policy:
            If a project has excluded GPUs of a given type,
            and has a runnable job of that type,
            don't ask it for more work of that type.

        Notes:
        - the policy in b) is crude, and it means that work-buffer
            preferences are ignored in some cases.
        - neither a) nor b) takes into account app-level exclusions.

        I could fix both of these with a lot of work,
        but I'd rather move to a model in which dissimilar GPUs
        are modeled as different resources,
        which would remove the need for the <exclude_gpu> mechanism
        in the first place.

        Other note: I figured out this problem using the client simulator,
        based on the client state file that Jacob sent me.

    - web: remove extraneous ) at end of button tooltips

    html/inc/
        util.inc
    client/
        client_types.h
        client_state.cpp
        sim.cpp
        work_fetch.cpp
        rr_sim.cpp
        gui_rpc_serever_ops.cpp
        log_flags.cpp,h

David  1 Oct 2011
    - client: specify the project in "Some tasks need more memory
        than allowed by your preferences" messages

    client
        cs_trickle.cpp
        client_state.cpp

David  1 Oct 2011
    - team import script: don't exit if fail to create user.
        The failure may be because the email is banned
        (as happened w/ SETI@home)

    html/ops/
        team_import.php
    
David  2 Oct 2011
    - client: fix bug that could cause GPU idleness
        in the presence of GPU exclusions.
        The problem was in the job-selection phase,
        which picks enough jobs to use all devices.
        It was ignoring GPU exclusions, so for example on
        a 2 GPU system it could pick 2 jobs from a project
        for which 1 GPU is excluded,
        and as a result 1 GPU would be idle.

        Solution: during job selection,
        keep track of GPU usage on a per-instance basis.
        Select a job only if it can run on a non-excluded GPU.

    - client: in computing ncprocs_excluded (which is used in
        work fetch policy) don't count exclusions of non-existent devices

    html/ops/
        team_export.php
    lib/
        coproc.h
    client/
        log_flags.cpp
        cpu_sched.cpp

David  2 Oct 2011
    - client: compute project scheduling priority more efficiently
    - client: if an app version can't be used because the GPUs it needs
        are all excluded, mark it and all its results as "coproc missing"
        so that they won't be looked at in scheduling logic.

    client/
        client_state.cpp
        client_types.cpp,h
        cpu_sched.cpp
        gui_rpc_server_ops.cpp
        log_flags.cpp,h
        rr_sim.cpp
        sim.cpp
        work_fetch.cpp

Charlie 3 Oct 2011
    - client: Fix compiler warnings.
    
    client/
        cpu_sched.cpp

David  3 Oct 2011
    - web: fix error in profile listings.
        From Uwe Becker.

    html/user/
        profile_menu.php

David  3 Oct 2011
    - lib: move XML parse test program to its own file.

    Note: XML_PARSER::parse_str() doesn't currently work right
        for something like <foo><a>xx</a></foo>.
        It should return "<a>xx</a>".
        TODO.

    lib/
        parse.cpp,h
        parse_test.cpp (new)
        Makefile.am

David  3 Oct 2011
    - scheduler: fix bugs that broke work fetch for anonymous platform;
        don't send irrelevant messages to anon platform clients

    sched/
        sched_types.h
        sched_send.cpp

David  3 Oct 2011
    - scheduler: record VirtualBox version # in the host table

    sched/
        handle_request.cpp
    lib/
        coproc.cpp,h

David  4 Oct 2011
    - client: don't generate notice if lookup of host
        in remote_hosts.cfg fails.

    client/
        gui_rpc_server.cpp

David  4 Oct 2011
    - client: don't show "(device N)" if there's only 1 device

    client/
        client_types.cpp

David  4 Oct 2011
    - client: win compile fixes

    client/
        cpu_sched.cpp

Rom    4 Oct 2011
    - WINSCR: Before shutting down the screensaver, quickly reinitialize the OpenGL device
        on the primary display.  Some of the issues being reported with the screensaver
        is a left over ghost image of the OpenGL display before the graphics application
        was terminated because keyboard/mouse activity was detected.

    clientscr/
        screensaver_win.cpp
    win_build/
        boinc_os_ss.vcproj

David  4 Oct 2011
    - client: in the function that sorts jobs by arrival time,
        don't use name as a tiebreaker.
        The will typically group jobs of the same application,
        and (it is believed that) things run faster when
        applications are mixed.
    - scheduler: bug: if a client gets host-specific prefs
        (e.g. from an account manager)
        it will send only the working prefs to the scheduler.
        The scheduler then always sends back the DB prefs,
        overwriting the host-specific prefs.
        Fix: note the mod time in the working prefs,
        and only send the DB prefs if they're more recent.

    client/
        cs_statefile.cpp
    sched/
        handle_request.cpp

David  5 Oct 2011
    - client: fix a memory leak; would lose ~120 bytes each time a job is started

    lib/
        filesys.cpp

Rom    5 Oct 2011
    - Lib: Re-enable boinc lib mem snapshots for BOINC based applications (boinc,
        boincmgr, boinc.scr) on Windows.
        
    lib/
        diagnostics.cpp

David  5 Oct
    - client: fix memory leak when reading stderr of completed job.
        This caused 128KB + size of stderr loss for each job.
    - client: print error message if reading stderr fails
        (e.g. because of malloc failure)

    client/
        app.h
        app_control.cpp

David  5 Oct
    - client: free vectors in NOTICES, RSS_FEEDS, and DAILY_XFER_HISTORY
        in free_mem() (for mem leak checking)

    client
        cs_notice.h
        check_state.cpp
        net_stats.h

David  5 Oct
    - scheduler: fix bug that caused scheduler to not send GPU jobs

    sched/
        sched_customize.cpp
    lib/
        coproc.cpp

David  5 Oct
    - client: problem: suppose a project has 2 data servers,
        and one of them is down.
        If several downloads from the broken one fail,
        we go into "project-level backoff"
        and don't start downloads from either server.
        (Same applies to uploads).

        Solution: make project-level backoff apply only to
        transfers that have already failed at least once

    client/
        pers_file_xfer.cpp

David  6 Oct
    - GUI RPC: add get_daily_xfer_history() RPC for getting
        the daily records of #bytes uploaded and downloaded

    lib/
        gui_rpc_client_print.cpp
        gui_rpc_client_ops.cpp
        gui_rpc_client.h
    client/
        boinc_cmd.cpp
        gui_rpc_server_ops.cpp
        net_stats.cpp,h
        main.cpp

David  6 Oct
    - client: fix bug in writing daily xfer history file

    client/
        main.cpp
        net_stats.cpp

Charlie 7 Oct 2011
    - client: write descriptions of OpenCL devices to stdout 
        (and display in manager's Event log).
    - client: work around a bug where OpenCL reports global RAM of ATI 
        GPUs incorrectly (1/2 of actual value.)
    
    client/
        coproc_detect.cpp
    lib/
        coproc.cpp, .h

David  7 Oct 2011
    - client/server: change field names in OPENCL_DEVICE_PROP
        to match those in the clGetDeviceInfo() calls.
        Principles:
        - if there's already a name for something, use it.
        - follow case conventions

    lib/
        coproc.cpp,h
    client/
        coproc_detect.cpp
    sched/
        sched_customize.cpp,h

David  7 Oct 2011
    - scheduler add app_plan() support for plan classes
        opencl_nvidia_101 and opencl_ati_101

    sched/
        sched_customize.cpp

David  7 Oct 2011
    - client and scheduler: estimate peak FLOPS for GPUs that
        are detected by OpenCL but not by native APIs (CUDA/CAL).
        This is limited by the fact that OpenCL doesn't give
        us the necessary hardware info
        (ATI; wavefrontSize; NVIDIA: compute capability).
        We use the minimum values for these,
        so in most cases we'll be underestimating the peak FLOPS.

    lib/
        coproc.cpp,h

David  7 Oct 2011
    - client (Mac): there was no error check of the creation
         of a memory-mapped file used for communication with an app.
         Add a check, and don't start the job if it fails.

    client/
        app_start.cpp

David  7 Oct 2011
    - client: don't do scheduler-requested RPCs if
        - project is set to No New Work, and
        - project has no jobs on the client

    client/
        client_types.h
        work_fetch.cpp
        cs_scheduler.cpp

David  7 Oct 2011
    - client/scheduler: the code for estimating peak FLOPS of ATI GPUs
        (from Crunch3r) has a multiplier of 2.5 for cores/processor.
        This is possibly because give a double-precision estimate.
        But actually we want single-precision.  Change it to 5. See
        http://golubev.com/about_cpu_and_gpu_2_en.htm

    lib/
        coproc.cpp

Charlie 7 Oct 2011
    - client: improve code which writes OpenCL descriptions. 
    
    client/
        coproc_detect.cpp

Charlie 7 Oct 2011
    - client: Compare openCL-only devices by estimated peak flops. 
    
    client/
        coproc_detect.cpp
    lib/
        coproc.cpp,h

David  7 Oct 2011
    - scheduler: problem: in the daily quota mechanism,
        the boundary between days is 00:00 in server local time.
        This creates a spike of jobs being dispatched
        (and files being downloaded) after that time.

        Solution: distribute the boundary uniformly,
        using a random number determined by the host ID.
        (Make sure to save/restore the seed around this,
        so we don't destroy the randomness of other things)

    sched/
        handle_request.cpp

David  7 Oct 2011
    - client: compare OpenCL-only devices the same as other devices
    - code cleanup

    lib/
        coproc.cpp,h
    client/
        coproc_detect.cpp
    sched/
        sched_customize.cpp

David  8 Oct 2011
    - scheduler: fix crashing bug when using HR.  From Kevin Reed.

    sched/
        sched_version.cpp

Charlie 8 Oct 2011
    - client: Fill in peak flops for each OpenCL GPU before compare; 
        else there is nothing to ompare with.

    client/
        coproc_detect.cpp

David  8 Oct 2011
    - API: don't crash if send trickle msg running standalone.
        From Christian Ries.

    api/
        boinc_api.cpp

David  8 Oct 2011
    - client: fix bugs in acct manager attach/detach

    client/
        gui_rpc_server_ops.cpp

Charlie 10 Oct 2011
    - code cleanup

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

Rom    10 Oct 2011
    - client: Fix crashing bug in OpenCL detection on Windows.
    - lib: Fix crashing bug for debug builds of the BOINC client software
    
    client/
        coproc_detect.cpp
    lib/
        diagnostics.cpp

Charlie 10 Oct 2011
    - code optimization

    client/
        coproc_detect.cpp

Charlie 11 Oct 2011
    - Mac installer: follow recommendations of Apple Developer Technical
        Support: create users and groups boinc_master and boinc_project 
        at first available UserIDs and GroupIDs starting at 501 instead 
        of 25 to avoid conflicts with UserIDs and groupIDs which may be 
        added in the future; use Directory Services to find the user 
        names of all human users instead of stepping through the entries 
        in the /Users directory.
    - Mac installer: revert to using LoginItemAPI.c under OS 10.7.1, 
        because it once again sets hidden property for login items, but 
        the AppleScript seems not to work under OS 10.7.1.
        
    clientgui/
        mac/
            SetupSecurity.cpp
    mac_installer/
        PostInstall.cpp

Rom    11 Oct 2011
    - Tag for 6.13.7 release, all platforms
      boinc_core_release_6_13_7

    /
        configure.ac
        version.h

David  11 Oct 2011
    - client/server: add a new result state RESULT_UPLOAD_FAILED
        for when the job completed successfully but
        one or more output files had permanent upload failures.
        Show this state in web interfaces.
    - sample_work_generator: check return value of count_unsent_results(),
        so that we don't generate infinite work if there's a DB problem
    - web: RSS feed shows news items from last 90 days, rather than 14

    sched/
        sample_work_generator.cpp
    html/
        inc/
            result.inc
        user/
            rss_main.php
    lib/
        coproc.cpp,h
        error_numbers.h
        common_defs.h
    client/
        client_types.cpp,h
        client_state.cpp
        coproc_detect.cpp

David  11 Oct 2011
    - client and user web: show NVIDIA driver version and CUDA version
        as, e.g., 275.33 instead of 27533

    html/inc/
        host.inc
    lib/
        coproc.cpp

Rom    11 Oct 2011
    - vbox: Move the destination of the VBOX_USER_HOME environment variable to
        <boinc_data_dir>/projects/virtualbox so that the virtualbox configuration
        can remain consistent across one or more projects.

    samples/vboxwrapper/
        vbox.cpp

Charlie 11 Oct 2011
    - client: fix NVIDIA driver version and CUDA version display for Mac.

    lib/
        coproc.cpp

Rom    11 Oct 2011
    - Tag for 6.13.8 release, all platforms
      boinc_core_release_6_13_8

    /
        configure.ac
        version.h

David  11 Oct 2011
    - scheduler: fix a bug that would choose app versions erroneously.
        The problem: the choice of app version was based on
        the "projected FLOPS" return by estimate_flops(av).
        If usage stats exist for the host / app version,
        this returns a number X such that
        WU.rsc_fpops_est/X approximates the runtime of a job
        using the given app version..
        (If WU.rsc_fpops_est is way off, this will be correspondingly way off
        from the actual FLOPS the app version will get.)
        However, if there are no usage stats,
        it return an estimate based on host hardware speed,
        which might be 100X less.
        Hence, in some cases a new app version would never get used.

        Solution: choose app versions based on the values
        returned by the app plan functions.
        Use estimate_flops() AFTER choosing the version.
    - scheduler: improve the accuracy of FLOPS estimation for GPU apps.
        The "flops_scale" argument to coproc_perf
        (which expresses the difference between peak GPU FLOPS
        and actual FLOPS) should be used to scale GPU FLOPS
        prior to calling coproc_perf(),
        rather than scaling the estimate returned by coproc_perf().
    - show_shmem: show have_X_apps flags

    sched/
        sched_customize.cpp
        sched_version.cpp
        sched_shmem.cpp

Charlie 12 Oct 2011
    - client: fix honoring of cc_config ignore GPU options.

    client/
        coproc_detect.cpp

Charlie 13 Oct 2011
    - atiopencl sample: call boinc_get_opencl_ids() if not stand-alone; 
        improve error messages.
        
    samples/
        atiopencl/
            atiopencl.cpp

Rom    13 Oct 2011
    - WINSCR: Move the reset display call to the end of the full screensaver
        section.  We do not need to perform a display reset in the various
        test modes.
        
    clientscr/
        screensaver_win.cpp

David  13 Oct 2011
    - client: fix bug where network suspend got ignored when
        OS suspends (e.g. sleep or hibernate)

    client/
        cs_prefs.cpp

David  13 Oct 2011
    - client: create and destroy PERS_FILE_XFERs even if network suspended.
        This will show pending uploads in the Transfers tab.
    - file_upload_handler: fix message to client when can't acquire lock
    - client: parse <alt_platform> in state file correctly

    client/
        client_stte.cpp
        sim.cpp
        cs_statefile.cpp
        cs_files.cpp
    sched/
        file_upload_handler.cpp

David  13 Oct 2011
    - web: fix bug in user search when enter empty name prefix

    html/user/
        user_search.php

Rom    13 Oct 2011
    - MGR: Support both the old and new libnotify at runtime on Linux
    
    clientgui/gtk/
        taskbarex.cpp

David  13 Oct 2011
    - manager: don't show slot number in simple view task list

    clientgui/
        sg_TaskPanel.cpp,h

Rom    13 Oct 2011
    - MGR: Remove code that blocks the switch to simple view when an
        accessibility aid is running.
        
    clientgui/
        BOINCGUIApp.cpp
        AdvancedFrame.cpp

Rom    14 Oct 2011
    - Remove dead code related to v5 graphics applications from the 
      client software.
    
    client/
        boinc_cmd.cpp
    clientgui/
        AsyncRPC.cpp, .h
        BOINCGUIApp.cpp, .h
        MainDocument.cpp
    clientgui/gtk/
        taskbarex.cpp
    clientscr/
        screensaver.cpp
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.cpp
    win_build/
        win-config.h

Rom    14 Oct 2011
    - MGR: Remove the triangle in the lower right-hand corner of the
        default project image for the simple GUI

    clientgui/res/skins/default/graphic/
        project_image.xpm

Rom    14 Oct 2011
    - MGR: Persist Simple GUI notification dialog size and position
        information.
    - MGR: Remove context menu help buttons from dialog.
    
    clientgui/
        sg_DlgMessages.cpp

David  14 Oct 2011
    - client: show OpenCL version correctly on Win
    lib/
        coproc.cpp

David  14 Oct 2011
    - client: improvements to job scheduling and work fetch policies.
        - Job scheduling: the baseline policy is to schedule based on "project priority",
            which is how much processing P should receive based on resource share
            minus how much it actually has received recently.
            This policy tends to run jobs from the same project together,
            so we modified it by adding a priority adjustment as jobs are scheduled.
            The idea is that if 2 projects have about the same priority
            they should split the processors.

            The problem: the adjustment was too large on hosts that are on
            only a small fraction of the time,
            thus tending to run 1 job from each project, regardless of priority.

            Solution: make an adjustment that reflects the host's actual throughput.
            See adjust_rec_sched() for details.

        - Work fetch: similar situation.
            We were making an adjustment based on how much work the project currently has queued,
            but the adjustment drowned out the project priority,
            so we'd tend to always get work from the project that has least work queued.
            Solution: make a smaller adjustment (-.3 ... .3)

    - client: in message announcing app start, show the plan class

    - client: don't show "unrecognized XML" messages for account files.
        It's typically project-specific prefs that the client doesn't know about.

    client/
        app_start.cpp
        client_state.cpp
        cpu_sched.cpp
        cs_account.cpp
        work_fetch.cpp

David  14 Oct 2011
    - client: bug fix for the above
    client/
        work_fetch.cpp

David  14 Oct 2011
    - scheduler: in cuda_check(), ati_check() and opencl_check()
        (in sched_customize.cpp)
        the flops_scale argument is intended to express the
        GPU efficiency (actual/peak).
        Pass appropriate values.

    sched/
        sched_customize.cpp
        sched_version.cpp
    html/
        ops/
            index.php
        inc/
            db_ops.inc

David  16 Oct 2011
    - client simulator: make the output more graphical

    html/
        inc/
            util.inc
    client/
        sim.cpp

David  17 Oct 2011
    - add boinc_opencl.h to set of installed headers
    - emulator tweaks
    lib/
        Makefile.am
    client/
        sim.cpp
        sim_util.cpp

David  17 Oct 2011
    - client: call xp.skip_unexpected() if get unexpected tag,
        to avoid showing multiple error messages
    - client simulator: bug fixes and tweaks

    client/
        client_types.cpp,h
        app.h
        sim.cpp,h
        work_fetch.cpp
        sim_util.cpp

David  17 Oct 2011
    - client: associate a PROJECT with HTTP_OP where applicable,
        so that if you use <http_debug> and filter by project
        you don't see other projects' HTTP stuff
    - client simulator: cc_config.xml is part of the scenario;
        log flags are part of the simulation

    client/
        http_curl.cpp,h
        sim.cpp
        work_fetch.cpp
        file_xfer.cpp
        gui_http.cpp
        scheduler_op.cpp

Rom    17 Oct 2011
    - MGR: Make the Default skin loadable from the file system.
    - MGR: Change the in-memory defaults for the skin to be a light-gray
        background.
    - MGR: Change the dots used in the simple gui.
    - MGR: Make the dots used in the simple gui skinable.
    - MGR: Change the 'Project Web Sites' button text to 'Project Web Pages'.
    - MGR: Add a basic 'Default' skin to be included by the various
        installers
    - MGR: Remove a bunch of files that are not used by the default skin
        anymore.

    clientgui/res/skins/default/graphic/
        <various files>
    clientgui/res/templates/
        dotgreen.gif
        dotred.gif
        dotyellow.gif
    clientgui/
        sg_DlgPreferences.cpp
        sg_ProjectPanel.cpp
        sg_TaskPanel.cpp, .h
        SkinManager.cpp, .h
    clientgui/skins/Default/
        background_image.png
    clientgui/skins/Default/
        skin.xml

David  18 Oct 2011
    - backend API: added function cancel_jobs(minid, maxid)
        for canceling jobs
    - added program cancel_jobs for canceling jobs
    - DB interface: it's not an error if update_fields_noid()
        affects != 1 rows

    db/
        db_base.cpp
    tools/
        backend_lib.cpp,h
        cancel_jobs.cpp (new)
        poll_wu.cpp
        Makefile.am
    lib/
        parse.cpp
    py/Boinc/
        setup_project.py

Charlie 18 Oct 2011
    - Mac: Update Mac build scripts, XCode project and source files 
        to allow automated builds under OS 10.7 Lion and XCode 4.2.
    - Mac: Build and link jpeglib from boinc/samples/jpeglib instead 
        of requiring a separate jpeglib-6b directory.
    
    api/
        gutil.cpp
        gutil_text.cpp
    lib/
        mac/
            QBackTrace.c
            QCrashReport.c
    mac_build/
        boinc.xcodeproj/
            project.pbxproj
        buildc-ares.sh
        buildcurl.sh
        BuildMacBOINC.sh
        buildWxMac.sh
        setupForBOINC.sh
    mac_installer/
        Installer.cpp
        PostInstall.cpp
    samples/
        jpeglib/
            jconfig.h

Rom    18 Oct 2011
    - MGR: More simple GUI text changes
    - MHR: Reduce clutter in log file
    
    clientgui/
        sg_BoincSimpleFrame.cpp
        sg_ProjectPanel.cpp, .h

David  18 Oct 2011
    - client: change the way project priorities are computed,
        so that they do what they're supposed to
        (i.e. enforce resource shares)
    - client: change log flag <debt_debug> to <priority_debug>
    - client simulator: update REC even with large delta-t.
    - client simulator: handle "no new work" apps correctly

    api/
        Makefile.am
    client/
        work_fetch.cpp,h
        client_types.h
        client_state.cpp
        sim.cpp
        rr_sim.cpp
        sim_util.cpp
        cpu_sched.cpp

David  18 Oct 2011
    - client: fix bug that caused extra "<" to get written at
        end of global_prefs_override.xml and cc_config.xml
        when they are modified via GUI RPCs

    client/
        gui_rpc_server_ops.cpp

David  19 Oct 2011
    - client: fix crashing bug when there's a cycle in the process graph.
        I had fixed this in one place but not another.
    - client: don't memset(0,) a PROCINFO; use clear() instead

    lib/
        proc_control.cpp
        procinfo_mac.cpp
        procinfo_unix.cpp
        procinfo_win.cpp

Charlie 19 Oct 2011
    - Mac: Update XCode project and Mac build scripts to build 
        libboinc_opencl.a library and to work both with XCode 3.2 on 
        OS 10.6.8 and with XCode 4.2 on OS 10.7.2.
        
    mac_build/
        boinc.xcodeproj/
            project.pbxproj
        BuildMacBOINC.sh

Charlie 19 Oct 2011
    - MGR: Replace backup images RedDot16.xpm, YellowDot16.xpm and 
        GreenDot16.xpm with XPM files created from Rom's new files 
        dotred.gif, dotyellow.gif and dotgreen.gif.  These need to
        be cmpiled into the source code as backups in case the GIFs 
        are missing, because these images are essential resources. 

    clientgui/
        res/
            RedDot16.xpm
            YellowDot16.xpm
            GreenDot16.xpm

Charlie 19 Oct 2011
    - MGR: Simple View bug fix.
     
    clientgui/
        sg_TaskPanel.cpp

Rom    19 Oct 2011
    - MGR: Fix dot images
    
    clientgui/res/skins/default/graphic/
        workunit_running_image.xpm
        workunit_suspended_image.xpm
        workunit_waiting_image.xpm
    clientgui/res/templates/
        dotgreen.gif
        dotred.gif
        dotyellow.gif

David  19 Oct 2011
    - client simulator: bug fix

    client/
        sim.cpp
    lib/
        parse.cpp

Charlie 20 Oct 2011
    - MGR: Replace colored dot GIF files with new PNG files which do 
        the anti-aliasing in the alpha channel, so they look correct 
        when highlighted on the Mac.  Generate new XPM files from 
        these PNG files.

    clientgui/res/skins/default/
        graphic/
            workunit_running_image.xpm
            workunit_suspended_image.xpm
            workunit_waiting_image.xpm
        skin.xml (added)
    clientgui/res/templates/
        dotgreen.gif (deleted)
        dotred.gif (deleted)
        dotyellow.gif (deleted)
        Green_dot.png (added)
        Red_dot.png (added)
        Yellow_dot.png (added)

Charlie 20 Oct 2011
    - MGR: Force update of Task Selection List on reskin interface.
    
    clientgui/
        sg_TaskPanel.cpp,h

Charlie 20 Oct 2011
    - MGR: Move skin file to correct place, set background image's 
        background color to black for this background_image.png.
        
    clientgui/
        res/skins/default/
            skin.xml (deleted)
        skins/Default/
            skin.xml

David  21 Oct 2011
    - client/API: pass bool using_sandbox in APP_INIT_DATA;
        says whether the client is using account-based sandboxing.
        Needed by vboxwrapper.
    - web: don't show authenticator in Your Account page.
        The problem with authenticators is that if a bad guys gets yours,
        they can log in to your account even if you change your password.
        Eventually we should not use them at all
        (i.e. in cookies and sent to client).
    - make_project: copy python stuff (e.g. bin/start) for web-only projects;
        generate appropriate project.readme file for web-only projects.

    html/inc/
        user.inc
    lib/
        app_ipc.cpp,h
    client/
        app_start.cpp
        cs_scheduler.cpp
    tools/
        make_project
    py/Boinc/
        setup_project.py

Charlie 21 Oct 2011
    - MGR: Adjust preference dialog titles, improve Simple View menus 
        and other text, make Simple Preferences dialog more like 
        Advanced Preferences dialog.
        
        clientgui/
            AdvancedFrame.cpp
            DlgAdvPreferencesBase.cpp
            DlgOptions.cpp
            Events.h
            sg_BoincSimpleFrame.cpp,.h
            sg_DlgMessages.cpp,.h
            sg_DlgPreferences.cpp,.h

Rom    21 Oct 2011
    - VBOX: Don't redirect VirtualBox to a different directory structure for
        the root configuration file when the client is NOT in sandbox mode.
        Doing so could cause confusion if the volunteer uses VirtualBox for
        any of their own work.  If BOINC started up first it would have appeared
        that their own VM's no longer existed.
        
    samples/vboxwrapper/
        vbox.cpp

Rom    21 Oct 2011
    - MGR: Make the simple gui rounded edges seem smoother by increasing the
        radius.
    - MGR: Fix project name font in the tasks area, normal size.  Increase
        its weight to BOLD.
    - MGR: Make sure the dot is red if the project has been suspended for
        the given task.
        
    clientgui/
        sg_PanelBase.cpp
        sg_TaskPanel.cpp

David  21 Oct 2011
    - scheduler: fix calculation of ATI peak FLOPS;
        older clients don't report have_cal.

    lib/
        coproc.cpp

Rom    21 Oct 2011
    - MGR: Scale background skin so that it now fits in the new simple gui
        NOTE: We are in the process of trying to get new artwork so that we
          can handle the localization issues better.
        
    clientgui/skins/Default/
        background_image.png

David  21 Oct 2011
    - fix NVIDIA peak FLOPS

    lib/
        coproc.cpp

David  21 Oct 2011
    - update_versions: touch trigger file so that feeder rereads DB

    tools/
        update_versions

Charlie 21 Oct 2011
    - MGR: Fix crash bug.
    
    clientgui/
        sg_BoincSimpleFrame.cpp,.h

Charlie 21 Oct 2011
    - MGR: Fix project name font on Mac, which uses Lucinda Grande font 
        not Arial.  SetFont for the parent window does not propogate to 
        the text controls because CTransparentStaticText uses OnPaint() 
        to draw. 
    
    clientgui/
        sg_TaskPanel.cpp

Charlie 22 Oct 2011
    - MGR: Bug fix: when the task currently selected in Simple View 
        is deleted, change selection to a different task.
        
    clientgui/
        sg_TaskPanel.cpp    

Charlie 23 Oct 2011
    - MGR: Sort Simple View task selection control alphabetically. 
        
    clientgui/
        mac/
            MacBitmapComboBox.cpp,.h
        sg_TaskPanel.cpp    

Charlie 23 Oct 2011
    - MGR: Reverted the above change because wxBitmapComboBox on Windows 
        loses existing items' clientData when we Insert() a new item.

    clientgui/
        sg_TaskPanel.cpp    

David  23 Oct 2011
    - web: forum RSS shouldn't filter sticky threads.
        Not sure why that was in there.
    html/inc/
        forum_rss.inc

Charlie 24 Oct 2011
    - Mac installer: Fix a very old bug.

    mac_build/
        Mac_SA_Secure.sh

David  24 Oct 2011
    - client: reimplement the round-robin simulator to
        reduce its runtime from O(N^2) to O(N),
        where N is the number of runnable jobs
        (which can be in the thousands).
        This will make the client emulator run a lot faster,
        and will reduce the client CPU overhead a bit.
    - API: change boinc_get_opencl_ids() so that it returns
        a BOINC error code (< -100) if the app_init.xml is
        missing or bad (i.e. we're running standalone),
        and an OpenCL error code (> -100) if an OpenCL call failed.

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

Rom    24 Oct 2011
    - MGR Skins: Fix numerious issues related to bad entries in the Skin XML
        file.

    clientgui/
        SkinManager.cpp
    clientgui/skins/GridRepublic/
        skin.xml
    clientgui/skins/Progress Thru Processors/
        skin.xml

David  24 Oct 2011
    - API: compile fixes for MinGW.  From Oliver Bock.

    lib/
        win_util.h
        boinc_win.h
        proc_control.h
        Makefile.mingw
        parse.h

Charlie 25 Oct 2011
    - MGR: Sort Simple View task selection control alphabetically.
        Subclassed CBOINCBitmapComboBox from wxBitmapComboBox to work 
        around clientData bug in wxBitmapComboBox::Insert().
        
    clientgui/
        BOINCBitmapComboBox.cpp,.h (added)
        mac/
            MacBitmapComboBox.cpp,.h
        sg_PanelBase.h
        sg_ProjectPanel.cpp
        sg_TaskPanel.cpp,.h
    win_build/
        boincmgr.vcproj

Charlie 25 Oct 2011
    - MGR: Allow skin to specify the (simulated) opacity of Simple View 
        task and project panels on a scale of 0 (clear) to 255 (opaque).

    clientgui/
        sg_PanelBase.cpp
        SkinManager.cpp,.h

Rom    25 Oct 2011
    - Tag for 6.13.9 release, all platforms
      boinc_core_release_6_13_9

    /
        configure.ac
        version.h

David  25 Oct 2011
    - web: typo in forum RSS from Daniel L G; fixes #1147
    - client: message tweak

    html/inc/
        forum_rss.inc
    client/
        cpu_sched.cpp

David  25 Oct 2011
    - scheduler: fix bug in the "homogeneous app version" (HAV) feature
        (reported by Kevin Reed).
        The problem: cache inconsistency.
        If there are 2 results for the same WU in shared mem,
        and 2 scheduler instances get them around the same time,
        they can send them with different app versions.
        We already fixed this problem for HR by
        1) rereading the relevant WU fields while deciding
            whether to send the result
        2) doing a "careful update" of the WU field using a where clause
            to make sure it wasn't modified in the (short) interval
            since rereading it.
        I fixed the HAV problem in the same way,
        and merged the two mechanisms to combine the DB queries.

        Also:
        - The rereads are done in slow_check() (see below).
        - The careful updates are done in update_wu_on_send(),
            and this is called *before* doing careful updates on result fields.
            That way, if the WU updates fail, we don't have orphaned results.
        - already_sent_to_different_platform_careful() (sic)
            no longer does DB stuff, so it's merged with
            already_send_to_different_hr_class() (better name)

        NOTE: slow_check() is used in array scheduling only.
            Score-based scheduling uses other code,
            in which this bug is not yet fixed.
            Locality scheduling doesn't support HR or HAV at all.
            This should be unified.

    db/
        db_base.cpp,h
    sched/
        sched_hr.cpp,h
        sched_array.cpp
        sched_send.cpp
        sched_score.cpp

Charlie 26 Oct 2011
    - Mac: Modify XCode project to link with libcrypto.0.9.7.dylib and 
        libssl.0.9.7.dylib if OS 10.5 SDK is present, to allow running 
        BOINC on OS 10.4 and later. If OS 10.5 SDK is not present then 
        it will link with libcrypto.0.9.8.dylib and libssl.0.9.87.dylib 
        and product will require OS 10.6 or later.
        (Checked into 6.13.9 tag.)
        
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Charlie 26 Oct 2011
    - Mac: Update build instructions for client and libraries.
    - Mac installer: fix bugs when installing under OS 10.5.
    - Mac installer: Update release script to include Default skin.
    (All checked into 6.13.9 tag.)
    
    mac_build/
        HowToBuildBOINC_XCode.rtf
    mac_installer/
        postInstall
        PostInstall.cpp
        release_boinc.sh

David  26 Oct 2011
    - scheduler: tweaks to last night's checkin.
        In the inner loop of scan_work_array() there are two WORKUNITs:
        - the one that's part of wu_result (in the shared-mem array)
        - a temp copy.
            quick_check() may modify this in host-specific ways
            (e.g., adjusting rsc_fpops_est or delay_bound).
            This is the one we pass to add_result_to_reply().
        When we reread hr_class and app_version_id from the DB,
        update both structs.

    sched/
        sched_array.cpp
        sched_send.cpp

David  26 Oct 2011
    - client: fix typo in project parse code

    client/
        client_types.cpp

David  26 Oct 2011
    - scheduler: typo in a SQL query

    sched/
        sched_send.cpp

David  26 Oct 2011
    - web: fix typo that failed to show ATI GPUs in top-GPU page

    html/user/
        gpu_list.php

David  26 Oct 2011
    - client: smoothed working-set size wasn't being computed correctly.
        It was always just the most recent size.

    sched/
        sched_util.cpp
        sample_work_generator.cpp
    lib/
        procinfo.h
    client/
        app.cpp

David  26 Oct 2011
    - scheduler: bug fix from Kevin

    sched/
        sched_send.cpp

Charlie 27 Oct 2011
    - Mac installer: Update release script to create projects/virtualbox/ 
        directory, to ensure it has the correct owner and permissions 
        because vboxwrapper does not have sufficient privileges to do so.
    
    mac_installer/
        release_boinc.sh

Rom    27 Oct 2011
    - Tag for 6.13.10 release, all platforms
      boinc_core_release_6_13_10

    /
        configure.ac
        version.h

Charlie 28 Oct 2011
    - Mgr: Exit manager as soon as quit rpc to client succeeds, instead 
        of waiting for client to exit.
        (Checked in to 6.13.10 for Mac build only.)
        
        The problem: if suspended tasks are kept in memory, some project 
        applications don't respond to exit request from client, but client 
        needs to allow 20 seconds before killing them in case they are 
        writing a large checkpoint file.  But if the manager waits that 
        long to exit, it seems unresponsive to users, so it was killing 
        the client after only 10 seconds. This left orphan project apps 
        in RAM.
        
        The solution: assume that if the quit rpc to the client succeeds, 
        the client will exit properly, so kill client only if RPC fails 
        or is not completed in 10 seconds.
    
    clientgui/
        BOINCClientManager.cpp
        BOINCGUIApp.cpp,.h

David  28 Oct 2011
    - GUI RPC client: parse the reply of quit(),
        so that it returns an error if no response

    lib/
        gui_rpc_client_ops.cpp

David  28 Oct 2011
    - web: Display AMD GPU info correctly.  From Teemu Mannermaa.

    html/inc/
        host.inc

Charlie 29 Oct 2011
    - Mgr: Code cleanup.
    
    clientgui/
        BOINCClientManager.cpp,.h
        BOINCGUIApp.cpp,.h
        MainDocument.cpp

David  29 Oct 2011
    - lib: fix a "strcpy(p, p+1)" instance

    lib/
        url.cpp

Charlie 31 Oct 2011
    - api: Update comments, remove unused includes for boinc_opencl.a.
    
    api/
        boinc_opencl.cpp

David  2 Nov 2011
    - API: fix bug in boinc_get_opencl_ids()
    - add simulator for distributed storage (not finished)

    api/
        boinc_opencl.cpp
    client/
        app_start.cpp
    ssim/
        des.h
        ssimp.cpp
        makefile

David  2 Nov 2011
    - server: plan class names containing 'nvidia' or 'cuda'
        are assumed to be for NVIDIA GPU apps;
        plan class names containing 'ati' are assumed to be for AMD GPU apps.
        Clauses for 'nvidia' were missing in a couple of places.

    sched/
        sched_customize.cpp
        sched_version.cpp
    html/inc/
        util.inc
    lib/
        gui_rpc_client_ops.cpp

David  2 Nov 2011
    - scheduler: in update_wu_on_send(), always try to update
        the hr_class and app_version_id fields,
        with the where clause that they be either zero or the target value.
        This handles the cases where
        1) because of the failure of a results, the transitioner set
            the field back to zero;
        2) another scheduler set the field to the target value
        (from Kevin Reed)

    sched/
        sched_send.cpp
    client/
        makefile_sim

David  2 Nov 2011
    - feeder: fix logic error in the way app_version.pfc_scale is updated
        (from Kevin Reed)

    sched/
        credit.cpp

Charlie 3 Nov 2011
    - api: Restore lost checkin of 31 October 2011.
    - Mac installer: update ReadMe files for BOINC 6.13.x.
    
    api/
        boinc_opencl.cpp
    mac_installer/
        CE-ReadMe.rtf
        GR-ReadMe.rtf
        PTP-ReadMe.rtf
        ReadMe.rtf

David  3 Nov 2011
    - client: fix bugs when writing/parsing cc_config.xml via GUI RPCs
        (e.g. when editing it via the Manager).
        Include only the GPUs that were specified in the original cc_config.xml,
        not those detected by the client.
    - client: fix bug that failed to require authorization for
        GUI RPCs that are supposed to be authorized
    - client: report parse errors in acct_mgr_url.xml and acct_mgr_login.xml
    - fix compile warnings
    - user web: in sample project_specific_prefs.inc,
        get app names from the DB instead of listing them in the PHP code.

    html/project.sample/
        project_specific_prefs.inc
    lib/
        coproc.h
        cc_config.cpp
    client/
        switcher.cpp
        coproc_detect.cpp
        gui_rpc_server_ops.cpp
        acct_mgr.cpp
        app.cpp
        cpu_sched.cpp

David  3 Nov 2011
    - wrapper: handle Windows .bat files as main programs

    samples/wrapper/
        wrapper.cpp

David  3 Nov 2011
    - client: show GPU exclusions at startup
        (need to do this after reading the state file,
        since GPU exclusions refer to projects).
    - client: fix bug that added garbage <coproc> element
        to <app_version> in state file when using GPU exclusions

    client/
        client_types.cpp
        client_state.cpp
        log_flags.cpp

David  4 Nov 2011
    - client: fix work fetch bug.
        If we're contacting a project to report results,
        only piggyback work requests for resources for which
        that project is the highest priority that may have work.
    - client: compute result.not_started more efficiently

    TODO: continue efficiency work.  There's still some quadratic stuff

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

Charlie 5 Nov 2011
    - client: Fix compile error.
    
    client/
        cs_scheduler.cpp

Charlie 5 Nov 2011
    - Mac: add -Wno-format-security compiler flag to suppress warning 
        that format string is not a string literal in code to show 
        messages from server in CLIENT_STATE::handle_scheduler_reply().
    
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Charlie 5 Nov 2011
    - client: fix errors in (currently unused) get_max_cpu_temperature() 
        code for Macintosh.

    client/
        hostinfo_unix.cpp

David  4 Nov 2011
    - client: fix compile warning
    client/
        cs_scheduler.cpp

David  4 Nov 2011
    - client: attempt to fix bug reported by John McLeod,
        where the client crashes after giving up (90 day timeout) on an upload.
        I'm guessing this was caused by [24391],
        which changed the order in the poll loop from
            garbage_collect
            file_xfers->poll
            pers_file_xfers->poll
            handle_pers_file_xfers
        to
            garbage_collect
            handle_pers_file_xfers
            file_xfers->poll
            pers_file_xfers->poll
        I don't understand why this would have caused a crash,
        but so be it.
        I restored the original order, but with handle_pers_file_xfers
        not inside the if (!network_suspended).
    - client renamed handle_pers_file_xfers() to
        create_and_delete_pers_file_xfers()
    - client simulator: show simulator CPU time

    client/
        client_state.cpp
        sim.cpp
        client_state.h
        pers_file_xfer.cpp
        cs_files.cpp

Charlie 5 Nov 2011
    - Mac: remove -Wno-format-security compiler flag (no longer needed).
    
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  5 Nov 2011
    - scheduler: fix bug in HR code (from Kevin)

    sched/
        sched_send.cpp

David  5 Nov 2011
    - client: don't crash if trickle up exceeds 64KB
        (this bug was introduced Sept 20)
    - scheduler: truncate long trickle-ups to 256KB; don't crash

    db/
        db_base.cpp,h
    client/
        cs_trickle.cpp

David  6 Nov 2011
    - client: actually do the checking described above

    client/
        cs_trickle.cpp

David  6 Nov 2011
    - client: don't crash if a project sends app_version.flops = 0.

    client/
        client_types.cpp
        rr_sim.cpp

Charlie 7 Nov 2011
    - Mgr: Bug fix.
    
    clientgui/
        BOINCGUIApp.cpp

David  7 Nov 2011
    - manager: apparently WxWidget's combo box has problems (bugs)
        if multiple items have the same string.
        So, in simple view task combo box:
        - show % done (unique in most cases)
        - remove version number
        - instead of showing plan class, show "NVIDIA GPU" or "ATI GPU"
        TODO: update the fraction done

    clientgui/
        sg_TaskPanel.cpp

David  7 Nov 2011
    - client: condition RR sim negative FLOPs message on rr_simulation.

    client/
        rr_sim.cpp

Rom    7 Nov 2011
    - client: reduce complexity, possibly get rid of a crash condition
        on 64-bit Windows.
        
    client/
        cs_prefs.cpp

Rom    7 Nov 2011
    - MGR: Change default skin to the one Jacob Klein purposed.
    
    clientgui/res/templates/
        <various files>
    clientgui/skins/Default/
        background_image.png
        skin.xml
        workunit_running_image.png
        workunit_suspended_image.png
        workunit_waiting_image.png

David  7 Nov 2011
    - client: on transient upload failure, don't do start_xfer()
        within PERS_FILE_XFER::transient_failure();
        we're about to delete and free the FILE_XFER.
        The transfer will be restarted in the next poll.

    client/
        pers_file_xfer.cpp

Charlie 8 Nov 2011
    - Mgr: Fix Simple View layout to fit 3 decimal places for % done.

    clientgui/
        sg_TaskPanel.cpp

Charlie 8 Nov 2011
    - Mac installer: fixes for OS 10.4 compatibility.

    mac_installer/
        PostInstall.cpp

Rom    8 Nov 2011
    - API: Remove exception trapping stuff from the 
        boinc_get_opencl_ids.
        
    api/
        boinc_opencl.cpp

David  8 Nov 2011
    - DB: use %u when writing result IDs in SQL queries;
        this is to support SETI@home, which ran out of result IDs
        and changed the DB field type to int unsigned.
        Note: eventually I'll make this change official
        and change the .h types as well.
    - web: put <apps_selected> tags around <app_id> elements
        in project-specific prefs.

    db/
        boinc_db.cpp
        db_base.cpp
    sched/
        sched_send.cpp
    html/project.sample/
        project_specific_prefs.inc

Charlie 9 Nov 2011
    - Mgr: to fix Windows combo box problem when multiple items have 
        the same string, add spaces to identical application names in
        Task Selection control as needed to make each entry unique.  
        Don't append % done to Task Selection control entries, as that  
        varies over time, causing significant complications.

    clientgui/
        sg_TaskPanel.cpp

Rom    9 Nov 2011
    - WINSCR: Add a reference to SCRAPPERR_BOINCNOGRAPHICSAPPSEXECUTING
       in the message lookup table.
       
    clientscr/
        screensaver_win.cpp

Rom    9 Nov 2011
    - WINSCR: In the ResetProc message pump, change the call for CloseWindow()
        to DestroyWindow().
       
    clientscr/
        screensaver_win.cpp

Rom    9 Nov 2011
    - WINSCR: Sync up the timer IDs.
       
    clientscr/
        screensaver_win.cpp

David  9 Nov 2011
    - server: more fixes to DB to handle unsigned result IDs

    db/
        boinc_db.cpp

Jeff    9 Nov 2011
    - server: more fixes to DB to handle unsigned result IDs

    sched/
        feeder.cpp
        sched_shmem.cpp
        db_purge.cpp
        sched_assign.cpp
    lib/
        parse.cpp

David  9 Nov 2011
    - OpenCL API: fix logic error

    api/
        boinc_opencl.cpp

David  9 Nov 2011
    - OpenCL API: check return value from clGetDeviceIDs()

    api/
        boinc_opencl.cpp

David  9 Nov 2011
    - scheduler: compute result.report_deadline BEFORE passing it
        as an arg to update_wu_on_send()

    sched/
        sched_send.cpp

Charlie 9 Nov 2011
    - WINSCR: Fix compile error.
       
    clientscr/
        screensaver_win.cpp

Rom    10 Nov 2011
    - WINSCR: Attempt to gracefully shutdown a graphics application first
    
    clientscr/
        screensaver.cpp

Rom    10 Nov 2011
    - client & lib: Update the OpenCL header to include calling conventions
        and weak link information for Mac machines.

    lib/
        cl_boinc.h

Rom    10 Nov 2011
    - Tag for 6.13.11 release, all platforms
      boinc_core_release_6_13_11

    /
        configure.ac
        version.h

Charlie 9 Nov 2011
    - MGR: On Mac, work around bug in XCode 4.2 by accepting and ignoring 
        command line argument "-NSDocumentRevisionsDebugMode=YES"
    - client: On Mac, work around bug in XCode 4.2 by accepting and ignoring 
        command line argument "-NSDocumentRevisionsDebugMode=YES"
    (checked into 6.13.11 tag)

    client/
        cs_cmdline.cpp
    clientgui/
        BOINCGUIApp.cpp

Charlie 11 Nov 2011
    - Mgr: fix a bug deleting entries from Task Selection control which I 
        introduced on 9 November.  Deleting an entry cvan create a gap in 
        the alphabetically sorted sequence, so we can't use my earlier 
        shortcut in checking for existing entries. 
    - Mgr: If a slide show has only one slide, load it only once.
    
    clientgui/
        sg_TaskPanel.cpp

David  11 Nov 2011
    - client: check return value of FILE_REF when parse project file.
        Fixes crashing bug.

    client/
        client_types.cpp
    ssim/
        ssim.cpp

Rom    11 Nov 2011
    - MGR: Update default skin to v4.
    
    clientgui/res/templates/
        <various files>
    clientgui/skins/Default/
        background_image.png
        skin.xml
        workunit_running_image.png
        workunit_suspended_image.png
        workunit_waiting_image.png

Rom    11 Nov 2011
    - Tag for 6.13.12 release, all platforms
      boinc_core_release_6_13_12

    /
        configure.ac
        version.h

Charlie 11 Nov 2011
    - Mac installer: There can now be multiple instances of the Manager 
        running, so shut them all down.

    mac_installer/
        PostInstall.cpp

David  13 Nov 2011
    - client/scheduler:
        If the file "client_opaque.txt" exists on the client,
        include its contents in scheduler request messages.
        On the scheduler, parse this into SCHEDULER_REQUEST::client_opaque,
        where it can be used by the customizable scheduler functions.

    sched/
        sched_types.cpp,h
    client/
        file_names.h
        cs_scheduler.cpp

Charlie 14 Nov 2011
    - Mgr: Don't call Simple View specific periodic RPCs when BOINC is 
        hidden or minimized.
        
    clientgui/
        MainDocument.cpp

David  14 Nov 2011
    - client: show error messages (as notices) when get an error
        parsing cc_config.xml
    - client: if an <exclude_cpu> element in cc_config.xml
        specifies a nonexistent app, show an error msg with
        a list of existing app names
    - web: increase the default mem limit from 64MB to 256MB
        TODO: change user_hosts.php to show N at a time

    html/inc/
        util.inc
    lib/
        cc_config.cpp,h
    client/
        log_flags.cpp

David  14 Nov 2011
    - client: improve messages for the above

    client/
        log_flags.cpp

David  14 Nov 2011
    - scheduler: increase buffer for global prefs from 8K to 64K
    - lay the groundwork for changing it to std::string

    sched/
        sched_types.cpp
    lib/
        parse.cpp,h

Charlie 14 Nov 2011
    - Mgr: In CSimpleTaskPanel, change name of Update() to UpdatePanel() 
        to fix compiler warning about overloading wxWindow::Update().
    
    clientgui/
        sg_BoincSimpleFrame.cpp
        sg_TaskPanel.cpp,.h

Charlie 14 Nov 2011
    - MGR: Limit change of 9 November to only Debug builds: accept and 
        ignore command line argument "-NSDocumentRevisionsDebugMode=YES"

    clientgui/
        BOINCGUIApp.cpp

David  14 Nov 2011
    - client: add some missing items to CONFIG::parse_options_client().

    client/
        log_flags.cpp
        pers_file_xfer.cpp

Charlie 16 Nov 2011
    - MGR: use wxBitmapComboBox insert() and append() calls without 
        client data argument instead of passing NULL.
        
    clientgui/
        BOINCBitmapComboBox.cpp

David  16 Nov 2011
    - web: in GPU model list page,
        look for plan classes containing "nvidia" as well as "cuda".

    db/
        boinc_db.h
    sched/
        transitioner.cpp
        sched_assign.cpp
    html/user/
        gpu_ratios.php (new)
        gpu_list.php
    client/
        net_stats.h

David  16 Nov 2011
    - fix gpu_ratios.php

    html/user/
        gpu_ratios.php

Charlie 17 Nov 2011
    Remove include of boinc_cl.h from parse.h; it is no longer needed.
    Remove Mac Availability Macro and weak-link support from cl_boin.ch 
        as it prevented building BOINC libraries under OS 10.5.
        
    lib/
        cl_boinc.h
        parse.h

David  18 Nov 2011
    - storage simulator work

    lib/
        unix_util.cpp
    ssim/
        des.h
        ssim.cpp

Charlie 19 Nov 2011
    - MGR: Fix button font sizes in Simple View Projects panel.
    
    clientgui/
        sg_ProjectPanel.cpp

David  20 Nov 2011
    - client: on network_available() GUI RPC,
        clear project-level upload and download backoffs,
        as well as RPC and individual xfer backoffs.
        This was an oversight.

    client/
        client_types.h
        net_stats.cpp
    ssim/
        ssim.cpp
        makefile

David  20 Nov 2011
    - web: add [sup] BBCode tag for superscripts.
    - web: show BBCode info in the same page, rather than target=new.
        On Firefox, this opens a new tab but doesn't switch to it,
        which makes it look like nothing happened.

    html/
        inc/
            text_transform.inc
            util.inc
        user/
            bbcode.php

Charlie 20 Nov 2011
    - MGR: Hide slideshow subpanel if no slides for current task.
    
    clientgui/
        sg_TaskPanel.cpp

Charlie 21 Nov 2011
    - MGR: In Simple View, draw Mac progress bar on white background for 
        better visibility; adjust red New Notices ring for new button
        shapes if on Mac OS 10.7.

    clientgui/
        sg_BoincSimpleFrame.cpp,.h
        sg_PanelBase.cpp
        sg_TaskPanel.cpp

Rom    21 Nov 2011
    - MGR: const fixes for platform bitmaps.
      (From: Steffen Möller)
    - MGR: Add trace statements to help track down RemoveAt bug
    - MGR: Remove static var guard, may not be needed with the SetDlgOpen()
        routines blocking timer based updates.  If there is a buffer overrun
        hopefully it'll manifest itself in a detectable way.

    clientgui/res/
        linuxicon.xpm
        macosicon.xpm
        windowsicon.xpm
    clientgui/
        sg_BoincSimpleFrame.cpp
        sg_TaskPanel.cpp

Rom    21 Nov 2011
    - MGR: Prevent crash, check returned pointer of menu entry.

    clientgui/
        sg_BoincSimpleFrame.cpp

Rom    21 Nov 2011
    - MGR: Fix bad asserts.
    
    clientgui/
        BOINCBitmapComboBox.cpp

Charlie 21 Nov 2011
    - MGR: Fix bad transparency in default project icon.
    
    clientgui/res/skins/default/graphic/
        project_image.xpm

Charlie 21 Nov 2011
    - MGR: The asserts were correct; fix minor errors in calling code.
    
    clientgui/
        BOINCBitmapComboBox.cpp
        sg_ProjectPanel.cpp
        sg_TaskPanel.cpp

David  21 Nov 2011
    - client emulator fixes

    client/
        work_fetch.h
        sim.cpp

Charlie 23 Nov 2011
    - MGR: In Simple View, if deleting a task above the current selection, 
        decrement the index of the current selection.
    - MGR: In Simple View, reload slide show when task selection changed.
    
    clientgui/
        sg_TaskPanel.cpp,.h

Charlie 23 Nov 2011
    - MGR: In Simple View, sort Project Selection Control; make sorting of 
        Project and Task Selection controls case-insensitive, fix bugs in 
        MacBitmapComboBox.cpp.
    
    clientgui/
        mac/
            MacBitmapComboBox.cpp
        MacBitmapComboBox.cpp
        sg_ProjectPanel.cpp
        sg_TaskPanel.cpp

David  24 Nov 2011
    - GUI RPC client lib: change setsockopt() for receive timeout
        to work on Windows.  From Fred.

    lib/
        gui_rpc_client.cpp
    ssim/
        ssim.cpp
        des.h

David  24 Nov 2011
    - default screensaver: fix divide-by-zero; code cleanup

    clientsrc/
        ss_app.cpp

David  25 Nov 2011
    - client: fix errors in transferring RAM info between CAL and OpenCL.
        (bytes vs MB units, local/global terminology issue).
        From Oliver Bock>

    client/
        coproc_detect.cpp

Charlie 26 Nov 2011
    - default screensaver: fix build breaks caused by code cleanup above.

    clientsrc/
        ss_app.cpp

David  26 Nov 2011
    - storage simulator work

    ssim/
        ssim.cpp

Charlie 28 Nov 2011
    - MGR: In Simple View, if task has no slide show, then display the 
        institution, science area and description. 
        This is in progress: not yet finished.

    clientgui/
        Events.h
        sg_PanelBase.cpp,.h
        sg_TaskPanel.cpp,.h

David  28 Nov 2011
    - scheduler: fix crashing bug (don't memset SCHED_REQUEST).

    sched/
        sched_result.cpp
        handle_request.cpp
        sched_types.cpp
    ssim/
        ssim.cpp

Charlie 29 Nov 2011
    - MGR: Continue work on Simple View to display the description if 
        task has no slide show.  
        Change all occurrences of "<sup>n</sup>" to "^n"
        
    clientgui/
        sg_TaskPanel.cpp,.h

David  29 Nov 2011
    - wrapper: measure CPU time of app's process tree,
        not just the top-level process
    - wrapper: handle fraction-done files correctly

    lib/
        procinfo.cpp,h
    samples/wrapper/
        wrapper.cpp

Charlie 30 Nov 2011
    - MGR: Complete work on Simple View to display the description if 
        task has no slide show.  
        
    clientgui/
        sg_TaskPanel.cpp,.h

Charlie 30 Nov 2011
    - MGR: Better sizing of Simple View description text box.
        
    clientgui/
        sg_TaskPanel.cpp,.h

David  1 Dec 2011
    - API and client: add "ncpus" field to APP_INIT_DATA.
        Tells multicore apps how many cores to use.
        The --nthreads command line arg to the app is now deprecated
        though we'll keep it around for the time being.

    sched/
        sched_util.cpp,h
        sched_customize.cpp,h
        credit.cpp
    html/user/
        show_user.php
    lib/
        app_ipc.cpp,h
    client/
        app_start.cpp

Charlie 2 Dec 2011
    - Mac installer: revert to using a wrapper application around installer 
        package to require a system restart if creating users and groups.
        
    mac_build/
        boinc.xcodeproj/
            project.pbxproj
    mac_installer/
        Installer.cpp
        PostInstall.cpp
        release_boinc.sh

Charlie 2 Dec 2011
    - Mac installer: for files in projects and slots directories, if the 
        executable-by-owner permission is set, ensure that the 
        executable-by-group bit is also set.
        
    clientgui/
        mac/
            SetupSecurity.cpp

David  2 Dec 2011
    - scheduler: in app_plan(), check for "opencl" before "ati".
        Otherwise "opencl_ati" won't get handled right.
        Fixes #1158

    sched/
        sched_customize.cpp

David  4 Dec 2011
    - client: isdigit() asserts if its arg is negative (which it can be).
        Call isascii() first.
    - GUI RPC lib: add some consts

    client/
        cs_notice.cpp

Rom    5 Dec 2011
    - Bump the version number to the next developmental release cycle
      7.1.x

    /
        configure.ac
        version.h

Rom    5 Dec 2011
    - MGR: Increase the opacity of the panels to make the black text more
        readable.
        
    clientgui/skins/Default/
        skin.xml

David  5 Dec 2011
    - client: when contacting a project for reasons other than
        work fetch (e.g. to report completed jobs)
        only request work if it's the project we would have chosen
        if we were fetching work.
    - client: the way in which project priorities were adjusted
        in work fetch to reflected currently queued work was wrong.
    - client: fix bug in the way project priorities are adjusted
        in RR simulator
    - client emulator: if there are results in the state file
        with states DOWNLOADING or UPLOADING,
        change them to DOWNLOADED or UPLOADED.
        Otherwise they're stuck.

    client/
        work_fetch.cpp,h
        sim.cpp
        rr_sim.cpp
        cs_scheduler.cpp
        cpu_sched.cpp
    ssim/
        des.h
        ssim.cpp

David  6 Dec 2011
    - client: compile fix; remove redundant total_peak_flops()

    client/
        work_fetch.cpp,h
        cpu_sched.cpp

Charlie 6 Dec 2011
    - MGR: eliminate "ghost" Notices window in Simple View when running 
        on Windows OS.
    - MGR: don't show "indeterminate" progress bar in Simple View.
    
    clientgui/
        sg_DlgMessages.cpp

Charlie 6 Dec 2011
    - MGR: don't show "indeterminate" progress bar in Simple View.

    clientgui/
        Events.h
        sg_PanelBase.cpp,.h
        sg_TaskPanel.cpp,.h

David  6 Dec 2011
    - client: if a file download was in progress at the time of
        an upgrade from 6.12 to 6.13+,
        it could get erroneously marked as an upload and get stuck forever.
        Problem: uninitialized member.

    client/
        pers_file_xfer.cpp

Rom    6 Dec 2011
    - MGR: Scale the task pane in the advanced view to encompass the largest button.
    
    clientgui/
        BOINCBaseView.cpp, .h
        BOINCTaskCtrl.cpp
        stdwx.h
        ViewNotices.cpp
        ViewResources.cpp
        ViewStatistics.cpp

David  6 Dec 2011
    - scheduler: encode CAL version numbers in a way that handles
        release #s > 1000

    sched/
        sched_customize.cpp
    lib/
        coproc.cpp,h

Charlie 7 Dec 2011
    - Mac installer: eliminate use of WaitPermissions.app. 
    - Mac installer: revert branded build scripts for wrapper application 
        around installer package.
        
    mac_installer/
        make_CharityEngine.sh
        make_GridRepublic.sh
        make_ProgThruProc.sh
        PostInstall.cpp
        release_boinc.sh

Rom    9 Dec 2011
    - VBOX: Remove unused function,
        I don't remember what I was going to use that hook for.
      
    samples/vboxwrapper/
        vbox.cpp, .h
        vboxwrapper.cpp

Rom    9 Dec 2011
    - VBOX: Remove the guru meditation state,
        apparently that is when the vbox host process for the vm crashes.
      
    samples/vboxwrapper/
        vbox.cpp

Rom    9 Dec 2011
    - VBOX: Add the ability for the wrapper to know if vboxmanage has hung
        or is stuck in a loop.
        If so, terminate the process and return an error.
      
    samples/vboxwrapper/
        vbox.cpp

Rom    9 Dec 2011
    - MGR: Update Progress Through Processor's skin files.
    
    clientgui/res/
        progress.ico
    clientgui/skins/Progress Thru Processors/graphic
        <Various Files>
    clientgui/skins/Progress Thru Processors/
        skin.xml
    win_build/installerv2/redist/Progress/
        ptp_IsDialogBanner.bmp
        ptp_IsDialogBitmap.bmp
        ptp_splash.bmp
        ptp_Wizard.bmp

David  10 Dec 2011
    - bug fixes in remote job submission tools
        (manage_privileges and get_output.php).
        From Nico Schlitter.
    - change things so that
        make_project --test_app
        will produce input/output templates that are compatible
        with the remote job submission tools

    tools/
        example_app_in,out (removed .xml from name)
        manage_privileges
        make_project
    html/user/
        get_output.php
    ssim/
        ssim.cpp

David  12 Dec 2011
    - client: tweak parameters of file xfer backoff to
        reduce backoff intervals somewhat
    - vboxwrapper: fix buffer size typo (from Attila)
    - scheduler: fix crash if using homogeneous app version,
        and a WU is committed to an old or deprecated app version.
        From Kevin Reed.

    sched/
        sched_version.cpp
    samples/vboxwrapper/
        vboxwrapper.cpp
    ssim/
        ssim.cpp
    client/
        pers_file_xfer.h

David  12 Dec 2011
    - scheduler: if using homogeneous app version,
        and a WU is committed to an app version that's been superceded,
        treat it as committed to the later version.

    sched/
        sched_shmem.cpp,h
        sched_version.cpp

Rom    12 Dec 2011
    - MGR: Add IE8-10 support for browser cookies when UAC is enabled.  Use the
        supported API.  It appears MS changed the cookie file format in their
        latest browsers which broke our hack.  I have to leave the hack in
        for now because IE7 on Vista didn't expose the IEGetProtectedModeCookie
        API.
    - WINSETUP: Start BOINCMgr as a restricted process on Windows Vista+.
    
    clientgui/
        browser.cpp
    win_build/installerv2/redist/Windows/src/boinccas/
        boinccas.vcproj
        CALaunchBOINCManager.cpp, .h
    win_build/installerv2/redist/Windows/Win32/
        boinccas.dll
        boinccas95.dll
    win_build/installerv2/redist/Windows/x64/
        boinccas.dll
        boinccas95.dll

Charlie 12 Dec 2011
    - MGR: If CSkinIcon PNG file has an alpha channel, use it as mask and 
        ignore any <transparency_mask> tag.
        
    clientgui/
        SkinManager.cpp

David  13 Dec 2011
    - storage simulator: use a top-down approach to recovery policy.
        As of right now, it seems to work.
        Need to add statistics for network load and fault-tolerance level.

    ssim/
        ssim.cpp

Charlie 14 Dec 2011
    - MGR: Check in remaining Progress Through Processors artwork for Macintosh. 
    - MGR: Fix Progress Through Processors skin file problems for Macintosh: 
        - If a PNG icon file has an alpha channel, the skin must not have a 
            <transparency_mask> entry for it, or the alpha channel will be 
            ignored.
        - The <application_icon> (play), <application_disconnected_icon> and 
            <application_snooze_icon> must all be the same size.

    clientgui/mac/
        ProgThruProc.tiff
    clientgui/res/
        ProgThruProc.icns
        PTP_install.icns
        PTP_uninstall.icns
    clientgui/skins/Progress Thru Processors/
        skin.xml
    clientgui/skins/Progress Thru Processors/graphic
        ptp_play.png
        ptp_icon_play.png
    clientscr/res/
        ProgThruProc_ss_logo.png

Charlie 14 Dec 2011
    - Mac installer: update build scripts for naming consistency with other platforms.

    mac_installer/
        make_CharityEngine.sh
        make_ProgThruProc.sh

Charlie 16 Dec 2011
    - MGR: in Simple View, localize institution, science area and description.
        
    clientgui/
        BOINCGUIApp.cpp
        sg_TaskPanel.cpp

David  16 Dec 2011
    - web: clean up the logic for when to allow 2 hosts to be merged

    html/inc/
        host.inc

David  16 Dec 2011
    - storage simulator: add stats for network load and fault tolerance.
    - client: msg tweak
    - client: minimum work buffer lower bound is 180 sec
    - scheduler: in computing HOST_USAGE::project_flops for a job,
        if we don't have sufficient elapsed_time statistics
        for either the (host, app_version) or the app_version,
        use a conservative estimate (p_fpops*(#cpus+#ngpus))
        rather than the number returned by app_plan().
        This avoids "time limit exceeded" errors when the latter is way off.

    ssim/
        ssim.cpp
        des.h
    client/
        scheduler_op.cpp
        client_state.h
    sched/
        sched_version.cpp
    lib/
        prefs.cpp

David  16 Dec 2011
    - client: if we're trying to upload a file and it's missing,
        that's a permanent error

    client/
        pers_file_xfer.cpp
        file_xfer.cpp

Rom    17 Dec 2011
    - VBOX: Attempt to detect the condition where a Virtual HD image has already been
        registered with VirtualBox during the RegisterVM phase.  If we detect the
        already exists error message run the unsupported internal command to reset
        the HD UUID which then allows us to attach the HD to the VM.  This should allow
        us to run multiple jobs with the same base VM HD image.

    samples/vboxwrapper/
        vbox.cpp

David  17 Dec 2011
    - scheduler: if using homogeneous app version and a WU is committed
        to a superceded or deprecated app version, use it anyway.
        The current app version may not validate against the old one.

    sched/
        sched_types.h
        sched_version.cpp

David  19 Dec 2011
    - vboxwrapper: if shared dir is specified and it doesn't exist on startup,
        that's not necessarily an error.
        Try to create it.
        If it exists and is a file, show appropriate error message.

    samples/vboxwrapper/
        vboxwrapper.cpp

Rom    19 Dec 2011
    - VBOX: Use the same mechanism as the multi-threaded apps to determine desired CPU
        count for the VM.  VM(s) can now be multi-core.

    samples/vboxwrapper/
        vboxwrapper.cpp
        vbox.cpp, .h

Rom    19 Dec 2011
    - WINSETUP: Copy the explorer primary token to get processes launched by the setup
        process to launch with reduced permissions.
        
    win_build/installerv2/redist/Windows/src/boinccas/
        boinccas.vcproj
        CALaunchBOINCManager.cpp
        launcher.cpp, .h
    win_build/installerv2/redist/Windows/Win32/
        boinccas.dll
        boinccas95.dll
    win_build/installerv2/redist/Windows/x64/
        boinccas.dll
        boinccas95.dll

Rom    19 Dec 2011
    - MGR: Partial fix for wizard problem when a client automatically attempts to attach
        to an account manager via cookies.  This fix is good enough for the 6.8 client.
        We'll need to do a little more for 7.x and beyond.
        
    clientgui/
        WizardAttach.cpp

Charlie 20 Dec 2011
    - MGR: Continue partial fix for wizard problem when a client automatically attempts 
        to attach to an account manager via cookies.  We'll still need to do a little 
        more for 7.x and beyond.
        
    clientgui/
        AccountmanagerPropertiesPage.cpp
        WizardAttachProject.cpp

Rom    20 Dec 2011
    - VBOX: Implement CERN's FloppyIO IPC technology for the VirtualBox wrapper.
    
    samples/vboxwrapper/
        floppyio.cpp, .h
        vbox.cpp, .h
        vboxwrapper.cpp
    win_build/
        vboxwrapper.vcproj

Rom    20 Dec 2011
    - VBOX: Create a configuration item that specifies the maximum amount of
        wall clock time a VM is allowed, if exceeded shutdown gracefully and tell
        BOINC that the job is finished.
        
    samples/vboxwrapper/
        vbox.cpp, .h
        vboxwrapper.cpp

David  20 Dec 2011
    - scheduler: if an app has only GPU versions,
        scale their PFC by 0.1 in credit calculations.
        This reflects the fact that GPU apps are typically less efficient
        (relative to device peak FLOPS) than are CPU apps.
        The actual values from SETI@home and Milkyway are 0.05 and 0.08.

    sched/
        credit.cpp

Rom    20 Dec 2011
    - VBOX: Implement a basic mechanism for port forwarding through to the VM.
        Some more work will be required if there is ever a need for more than
        one port.  But this should work for now.  This should successfully
        handle running multiple instances of the same job, port information is
        stored in a file called "vbox_firewall.txt" which is updated for each
        execution of the wrapper.
    
    samples/vboxwrapper/
        vbox.cpp, .h
        vboxwrapper.cpp
    win_build/
        vboxwrapper.vcproj

Charlie 21 Dec 2011
    - MGR: Display project descriptions in Attach Wizard using wxTextCtrl 
        instead of wxHtmlWindow to support screen readers for accessibility,  
        after converting all occurrences of "<sup>n</sup>" to "^n".
        Show localized project descriptions in Attach Wizard.

    clientgui/
        ProjectInfoPage.cpp,.h

Charlie 21 Dec 2011
    - MGR: Fix horizontal sizing of text in Simple View project description.
        
    clientgui/
        sg_TaskPanel.cpp,.h

Rom    21 Dec 2011
    - VBOX: Create the FloppyIO image via the FloppyIO constructor before attempting
        to link the VM to it.
        
    samples/vboxwrapper/
        floppyio.cpp
        vbox.cpp

David  21 Dec 2011
    - web: combine ops and regular functions for displaying
        various result attributes as strings

    html/
        ops/
            db_action.php
        inc/
            result.inc
            db_ops.inc

Rom    21 Dec 2011
    - VBOX: Don't log all vbm_popen errors, we expect certain commands to fail when we
        are looking at the existing state of the host.
    - VBOX: Reset the output buffer for every command execution.
    - VBOX: Remove the teleporting and snapshotting states from the list of running
        states.
    - VBOX: Remove the '--type floppy' typo when mounting the floppy disk image.
    
    samples/vboxwrapper/
        vbox.cpp, .h

Rom    21 Dec 2011
    - VBOX: If vm.run() fails, call vm.cleanup() to unregister the VM before exiting
        vboxwrapper.  Not doing so leaves the drive reference around and the VM in a
        saved state.  The next attempt to delete it from another instance of
        vboxwrapper fails with a complaint about the old unnamed vm(all files have
        been cleaned up by BOINC) being in an non-mutable state.

    samples/vboxwrapper/
        vbox.cpp
        vboxwrapper.cpp

Rom    21 Dec 2011
    - VBOX: If vm.cleanup() can be called when a VM hasn't been fully initialized,
        then all the deregister commands have to be optional. Go ahead and log errors
        to stderr but continue to run through the various commands anyway.

    samples/vboxwrapper/
        vbox.cpp

Rom    21 Dec 2011
    - VBOX: If vm.run() fails, it turns out the VM is parked in some kind of saved
        state, deregistering the VM would fail all commands because the VM was not
        mutable.  The first thing we should do when deregistering is discard
        any saved state.
        
    samples/vboxwrapper/
        vbox.cpp

Rom    21 Dec 2011
    - VBOX: It turns out that once you set the firewall rules, you cannot reset the
        rules for a VM until the VM is in a powered off state.  I guess the VM will
        just have to fail starting up if it cannot allocate the assigned port.
        
    samples/vboxwrapper/
        vbox.cpp

Charlie 21 Dec 2011
    - VBOX: Update XCode project for OS 10.7 and XCode 4.2.1.
    
    samples/vboxwrapper/
        vboxwrapper.xcodeproj
            project.pbxproj

Rom    21 Dec 2011
    - VBOX: Add missing code for progress complete and check-pointing.
    
    samples/vboxwrapper/
        vboxwrapper.cpp

Rom    22 Dec 2011
    - VBOX: Try a new approach to dealing with the Windows sandbox issue. Under Windows
        VboxSVC.exe is normally launched by svchost.exe which only contains environment
        variables defined by the system.  In the BOINC sandbox environment we want to
        add VBOX_USER_HOME to redirect reading/writing configuration files to a
        different directory.  What happens if we launch it ahead of making any calls to
        VBoxManage which would cause the OS to launch it?  If we launch it, it should
        inherit our environment block and work just like it works on Linux and the Mac.
        
        This is such a simple solution, why didn't I think of it sooner?
        
    samples/vboxwrapper/
        vbox.cpp

Rom    22 Dec 2011
    - VBOX: Remove code that was meant to force the CC to reschedule jobs.  There was
        a bug that was fixed last night which prevented the wrapper from properly
        reporting its checkpoint time to the CC.  The lack of checkpoint information
        for the job would have prevented the CC from rescheduling the job and removing
        it from memory.  Now it can so the extra shutdown each scheduling period
        should not be needed.
        
    samples/vboxwrapper/
        vboxwrapper.cpp

Rom    23 Dec 2011
    - VBOX: Write the firewall rules once, after creation.  If the job was suspended
        and restarted it would null out the host port information.
    - VBOX: Try to make the CERN compatible datatype for FloppyIO more JSON friendly
        by following the advice of issue:
          https://github.com/stig/json-framework/issues/48
    - VBOX: Support both the old style and new style of determining assigned threads
        of execution (aka core counts).  6.12 and the early versions of 7.x support
        the old style.
        
    samples/vboxwrapper/
        vbox.cpp, .h
        vboxwrapper.cpp, .h

Rom    23 Dec 2011
    - VBOX: Append the slot number to the end of the floppy disk image name like we do
        for virtual hard disks.
    - VBOX: Execute closemedium against the virtual floppy disks when the VM is being
        deleted.
        
    samples/vboxwrapper/
        vbox.cpp
        vboxwrapper.cpp

Rom    23 Dec 2011
    - VBOX: handle the case where the volunteer has not installed BOINC in the sandboxed
        environment and they suspend/resume the VM by the VirtualBox application.
        
    samples/vboxwrapper/
        vbox.cpp, .h
        vboxwrapper.cpp

Rom    23 Dec 2011
    - VBOX: Rework the unique naming scheme for floppys and disk images so that the slot
        id is appended after the name instead of after the extension. Avoid problems
        with the VirtualBox interface.
        
    samples/vboxwrapper/
        vbox.cpp, .h
        vboxwrapper.cpp, .h

Charlie 23 Dec 2011
    - VBOX: Fix "unused variable" warning.
        
    samples/vboxwrapper/
        vboxwrapper.cpp

Rom    23 Dec 2011
    - Web: Don't display VirtualBox version number information in the coproc field while
        displaying host information.
        
    html/inc/
        host.inc

David  23 Dec 2011
    - make_project: don't try to copy nonexistent file; fixes #1166
    - scheduler: change Vbox app plan function to accommodate
        single and multithreaded variants

    py/Boinc/
        setup_project.py
    sched/
        sched_customize.cpp

David  23 Dec 2011
    - web: show actual URL and weak auth on weak auth page
    - web: make merge and pending pages translatable
    From Uwe Becker

    html/user/
        weak_auth.php
        merge_by_name.php
        pending.php

David  23 Dec 2011
    - web: more translatability.  From Uwe Becker.

    html/
        inc/
            pm.inc
            forum.inc
            bbcode_html.inc
        user/
            pm.php
            moderation.php

Rom    24 Dec 2011
    - VBOX: Remove attempts to remove the floppy image from the media registry.
        Apparently when the VM is removed from the VirtualBox server process
        it automatically deletes the floppy image from the media registry.
    - VBOX: If a VM crashes for one reason or another, append the VM execution
        log file to the stderr.txt file.  I believe this is what is going on with
        Richard Mitnick's computer.  At the very least we should be able to give
        this to the VirtualBox guys.
    - VBOX: Introduce a way to re-execute commands when a session lock
        event is detected.  A session lock event happens when a volunteer is
        tweaking something about the VM while vboxwrapper is attempting to query
        state information.
        
    samples/vboxwrapper/
        vbox.cpp, .h
        vboxwrapper.cpp, .h

Rom    25 Dec 2011
    - VBOX: If an error occurs only log the error once if log_error is true.

    samples/vboxwrapper/
        vbox.cpp, .h
    
David  25 Dec 2011
    - vboxwrapper: for port-forwarding feature,
        allow specification of guest port only.
        Change tag to <pf_guest_port>.
        Separate getting port from registering firewall rule

    samples/vboxwrapper/
        vbox.cpp,h
        vboxwrapper.cpp

Rom    25 Dec 2011
    - VBOX: Extract and dump the VM log before attempting to delete the VM.
        What was I thinking last night?
        
    samples/vboxwrapper/
        vboxwrapper.cpp

Rom    25 Dec 2011
    - VBOX: Richard Mitnick's VM didn't crash according to the latest build.
        So what state did it enter?
        
    samples/vboxwrapper/
        vbox.cpp,.h

Rom    25 Dec 2011
    - VBOX: For projects that use vboxwrapper to control how long a VM should run,
        treat premature shutdown events as failures.  Avoids false positive results.
    - VBOX: Log the VM Execution log if a premature shutdown event has happened.
    - VBOX: Rename config option max_elapsed_time to job_duration.  Choosing
        max_elapsed_time turned out to be a bad choice in that its purpose
        became intermixed with the credit issue(s).

    samples/vboxwrapper/
        vbox.cpp,.h
        vboxwrapper.cpp

Rom    25 Dec 2011
    - VBOX: Disable hardware virtualization acceleration support by default.  There
        is a ceratin class of machines where the processor supports hardware
        acceleration but it is disabled in the computers BIOS.  Asking the volunteer
        to tweak settings in the computers BIOS isn't a good idea.  We might be able
        to turn it on as an advanced preference thing in the future.

    samples/vboxwrapper/
        vbox.cpp
        vboxwrapper.cpp

David  26 Dec 2011
    - API/client/manager:
        allow applications to supply a "web graphics URL",
        in which case the manager's "Show Graphics" button
        opens a browser at that URL.
        This typically would used for applications that
        implement a web server that serves pages showing
        job information in HTML.
    - vboxwrapper: if <pf_guest_port> is specified in the config file,
        set up port forwarding to that port
        and use the above API call with URL "http://localhost:port"

    samples/
        vboxwrapper/
            vbox.cpp
            vboxwrapper.cpp
    api/
        boinc_api.cpp,h

David  26 Dec 2011
	- add support for APP::needs_network flag.
		If set, don't run jobs for that app while network is suspended.
		- client: parse this flag and maintain in state file;
			do a job reschedule when network suspend state changes
		- GUI RPC: add RESULT::network_wait flag;
			if set, this job is waiting for network access to be allowed
		- Manager: display the above in task info
	- add support for "web graphics URL" (see above)
		- client: parse message containing URL on graphics_reply channel
			and store in ACTIVE_TASK::web_graphics_url
		- GUI RPC: add RESULT::web_graphics_url
		- Manager: if web graphics URL is present, Show Graphics opens a browser
	- remove some vestigial code for pre-V6 graphics

	client/
		app.cpp,h
		app_control.cpp
		client_state.cpp
		client_types.cpp,h
		work_fetch.cpp
	clientgui;
		MainDocument.cpp
		sg_TaskCommandPopup.cpp
		ViewWork.cpp
	lib/
		gui_rpc_client.h
		gui_rpc_client_ops.cpp

David  26 Dec 2011
    - make "needs network" a property of APP_VERSION rather than APP

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

David  26 Dec 2011
    - update_versions: support <needs_network> flag in version.xml

    tools/
        update_versions
    samples/vboxwrapper/
        vboxwrapper.h

David  26 Dec 2011
    - scheduler: in vbox plan class, require that host have
        VM acceleration hardware feature
    - remote job submission: typo fix

    sched/
        sched_customize.cpp
    html/user/
        submit.php

Rom    26 Dec 2011
    - scheduler: in vbox plan class, require that host have
        VM acceleration hardware feature if the job is multi-core.

    sched/
        sched_customize.cpp

Rom    26 Dec 2011
    - VBOX: If a host has been assigned a single-core job and the
        processor doesn't support hardware acceleration for VMs,
        manually turn off the hardware acceleration support in the VMs
        configuration.
        
        NOTE: The latest server scheduler should not be assigning
        multi-core jobs to hosts that do not have hardware acceleration.

    samples/vboxwrapper/
        vbox.cpp

David  26 Dec 2011
    - scheduler: we were using CPU time for elapsed time
        when the latter wasn't reported.
        Do this BEFORE sanity checks on elapsed time
        to prevent cheating.

    sched/
        sched_result.cpp

Rom    26 Dec 2011
    - VBOX: For hosts who do not have processors with VM extensions try
        and disable the use of them at VM creation time.  Certain actions
        within VirtualBox will force enabling them at runtime and cause
        an error (like SMP support) but it should reduce confusion between
        volunteers and projects when a VM configuration change now causes
        a class of machine that used to work suddenly stop working.
    - VBOX: Add some more helpful text notes for error conditions that
        the volunteer might be able to address.  For instance other
        hypervisors locking the VM CPU features for exclusive use.
    - VBOX: If we have to dump out the VM execution log on Windows, remove
        excess carriage returns from the spew.
        
    samples/vboxwrapper/
        vbox.cpp
        vboxwrapper.cpp

David  26 Dec 2011
    - scheduler, vbox plan class function:
        send only 32/64 bit version to 32/64 bit host

    sched/
        sched_customize.cpp

Rom    27 Dec 2011
    - SCR: Remove last linger pieces of v5 backward graphics compatibility
        from the screensaver.
        
    clientscr/
        screensaver.cpp
        screensaver_win.h

David  28 Dec 2011
	- client: detect Windows HyperV Server 2008 R2 (from Crashtest)

	client/
		hostinfo_win.cpp

Rom    28 Dec 2011
    - client: increase the buffer sizes for retrieving cpu features on *nix
        type systems.  the latest generation of processors blow past 256 bytes
        and vmx and svm are truncated.
        
    client/
        hostinfo_unix.cpp

David  28 Dec 2011
    - client: shuffle disk usage code in preparation for disk accounting
    - use new XML parser in some GUI RPC code

    lib/
        gui_rpc_client_ops.cpp
        gui_rpc_client.h
    client/
        client_types.h
        client_state.h
        gui_rpc_server_ops.cpp
        cs_prefs.cpp
        cs_scheduler.cpp

Rom    28 Dec 2011
    - WINSETUP: Introduce new BOINC setup packages which include VirtualBox.
    
    win_build/installerv2/
        BOINC_vbox.ism
        BOINCx64_vbox.ism

David  29 Dec 2011
    - scheduler: record Vbox version correctly in host records
    - remote job submission: partial checkin for new file sandbox stuff

    sched/
        handle_request.cpp
    html/
        inc/
            submit.inc
            submit_util.inc
        user/
            submit_example.php
            submit.php

Rom    29 Dec 2011
    - VBOX: Add ERR_CPU_VM_EXTENSIONS_DISABLED string to the error case where
        the VM extensions for the CPU have been disabled via the BIOS.  This
        allows the core-client to parse the response and disable future
        request for multi-core VM jobs.
        
    samples/vboxwrapper/
        vboxwrapper.cpp

David  30 Dec 2011
	- client: parse APP:non_cpu_intensive correctly.
		This got broken somehow.
	- client: don't crash if missing RSS feed file for some reason

	client/
		client_types.cpp
		cs_notice.cpp

David  30 Dec 2011
    - client: for VBox apps, check stderr for "ERR_CPU_VM_EXTENSIONS_DISABLED".
        If found, set HOST_INFO::p_vm_extensions_disabled,
        and pass this to the scheduler.
    - scheduler (VBox app plan function) if a host has p_vm_extensions_disabled
        set, don't sent it multicore VBox jobs.

    Note: if you have a host with VM extensions, and they're disabled
        in the BIOS, and you enable them, you can remove the
        <p_vm_extensions_disabled> line from client_state.xml
        and you'll be eligible to get multicore VM jobs again.

    client/
        app_control.cpp
    lib/
        hostinfo.cpp,h
    sched/
        sched_types.cpp
        sched_customize.cpp
    db/
        boinc_db.h

Rom    30 Dec 2011
    - client: the processor features buffer is supposed to be 1024 bytes. avoid
        truncation.
        
    lib/
        hostinfo.cpp

Rom    30 Dec 2011
    - WINSETUP: Give 'boinc_admins' and 'boinc_projects' the ability to access and
        launch the VirtualBox server-side application.  This should complete the
        needed work to run VirtualBox within the Windows sandboxed environment.
    - WINSETUP: Remove the virtualized file system tag from the Windows Explorer
        copied security token when launching BOINC Manager and BOINC Tray after
        setup has completed.  I believe this will resolve the new cookie issue
        experienced by PTP/GR/CE.

    win_build/installerv2/redist/Windows/src/boinccas/
        aclmgmt.cpp
        boinccas.def
        boinccas.vcproj
        CAGrantBOINCAdminsVirtualBoxRights.cpp, .h
        CAGrantBOINCProjectsVirtualBoxRights.cpp, .h
        CALaunchBOINCTray.cpp, .h
        dcomperm.h
        launcher.cpp
        listacl.cpp
        sdmgmt.cpp
        srvcmgmt.cpp
        utils.cpp
        wrappers.cpp
    win_build/installerv2/redist/Windows/Win32/
        boinccas.dll
        boinccas95.dll
    win_build/installerv2/redist/Windows/x64/
        boinccas.dll
        boinccas95.dll

Rom    30 Dec 2011
    - WINSETUP: Hookup new custom actions to the BOINC Installers
    
    win_build/installerv2/
        BOINC.ism
        BOINCx64.ism

David  31 Dec 2011
    - web: implement file sandbox for remote job submission

    html/
        inc/
            sandbox.inc (new)
        user/
            submit.php
            sandbox.php (new)

David  31 Dec 2011
    - web: add script for submission of batches of LAMMPS jobs

    html/user/
        lammps.php

David  31 Dec 2011
    - web: new page to manage job submission

    html/
        inc/
            submit.inc
            submit_util.inc
        user/
            submit_rpc_handler.php
            submit_example.php
