Skip to content

Commit

Permalink
Restructuring What's New sections in the docs (just moving things aro…
Browse files Browse the repository at this point in the history
…und)

- this reduces the potential for merge conflicts during releases
  • Loading branch information
hkaiser committed Jan 31, 2018
1 parent 1366604 commit e61bef7
Show file tree
Hide file tree
Showing 18 changed files with 4,407 additions and 4,314 deletions.
4 changes: 3 additions & 1 deletion docs/CMakeLists.txt
Expand Up @@ -8,11 +8,12 @@ hpx_write_boostbook_catalog("${CMAKE_CURRENT_BINARY_DIR}/boostbook_catalog.xml")
file(GLOB base_files "${PROJECT_SOURCE_DIR}/docs/*.qbk")
file(GLOB manual_files "${PROJECT_SOURCE_DIR}/docs/manual/*.qbk")
file(GLOB build_system_files "${PROJECT_SOURCE_DIR}/docs/manual/build_system/*.qbk")
file(GLOB_RECURSE releases_files "${PROJECT_SOURCE_DIR}/docs/releases/*.qbk")
file(GLOB_RECURSE tutorial_files "${PROJECT_SOURCE_DIR}/docs/tutorial/*.qbk")
file(GLOB_RECURSE index_files "${PROJECT_SOURCE_DIR}/docs/*.idx")

set(documentation_files
${manual_files} ${build_system_files} ${tutorial_files}
${manual_files} ${build_system_files} ${releases_files} ${tutorial_files}
${base_files} ${index_files})

set(documentation_dependencies
Expand Down Expand Up @@ -424,6 +425,7 @@ create_symbolic_link("${PROJECT_SOURCE_DIR}/tests"
source_group(Documentation FILES ${base_files})
source_group("Documentation\\Manual" FILES ${manual_files})
source_group("Documentation\\Manual\\BuildSystem" FILES ${build_system_files})
source_group("Documentation\\Releases" FILES ${releases_files})
source_group("Documentation\\Tutorial" FILES ${tutorial_files})
if(BOOSTAUTOINDEX_FOUND)
source_group("Documentation\\Index" FILES ${index_files})
Expand Down
8 changes: 7 additions & 1 deletion docs/release_procedure.rst
Expand Up @@ -65,7 +65,7 @@ the lines as they are completed to avoid confusion.
* ``git branch --set-upstream-to=origin/release release``

#. Protect the release branch again to disable deleting and force pushes.

#. Checkout the release branch, and remove the ``-trunk`` tag from
``hpx/config/version.hpp`` (replace it with ``-rc1`` for the release
and later with an empty string for the actual release).
Expand Down Expand Up @@ -121,6 +121,10 @@ the lines as they are completed to avoid confusion.
* ``CMakeLists.txt``
* Grep for old version number

#. Create a new 'What's New' section for the docs of the next anticipated release.
Move the old (now current) 'What's New' section to the section for the previous
releases.

#. Create new logos for documentation. Update the logo used on line 234
(add '_draft') and change the size accordingly in ``docs/cmakelist.txt``
lines 330/331.
Expand All @@ -133,6 +137,8 @@ the lines as they are completed to avoid confusion.
#. Push changes to new branch numbered after the next release (not the current
one).

#. Add the release date to the caption of the current 'What's New' section in the docs

#. Tag the release.

#. Roll a release candidate using ``tools/roll_release.sh`` (from root directory), and add the
Expand Down
147 changes: 147 additions & 0 deletions docs/releases/whats_new_0_7_0.qbk
@@ -0,0 +1,147 @@
[/==============================================================================
Copyright (C) 2007-2018 Hartmut Kaiser

Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
===============================================================================/]

[/////////////////////////////////////////////////////////////////////////////]
[section:hpx_0_7_0 __hpx__ V0.7.0 (Dec 12, 2011)]

We have had roughly 1000 commits since the last release and we have closed
approximately 120 tickets (bugs, feature requests, etc.).

[heading General Changes]

* Completely removed code related to deprecated AGAS V1, started to work on
AGAS V2.1.
* Started to clean up and streamline the exposed APIs (see 'API changes' below
for more details).
* Revamped and unified performance counter framework, added a lot of new
performance counter instances for monitoring of a diverse set of internal
__hpx__ parameters (queue lengths, access statistics, etc.).
* Improved general error handling and logging support.
* Fixed several race conditions, improved overall stability, decreased memory
footprint, improved overall performance (major optimizations include native
TLS support and ranged-based AGAS caching).
* Added support for running __hpx__ applications with PBS.
* Many updates to the build system, added support for gcc 4.5.x and 4.6.x,
added C++11 support.
* Many updates to default command line options.
* Added many tests, set up buildbot for continuous integration testing.
* Better shutdown handling of distributed applications.

[heading Example Applications]

* quickstart/factorial and quickstart/fibonacci, future-recursive parallel
algorithms.
* quickstart/hello_world, distributed hello world example.
* quickstart/rma, simple remote memory access example
* quickstart/quicksort, parallel quicksort implementation.
* gtc, gyrokinetic torodial code.
* bfs, breadth-first-search, example code for a graph application.
* sheneos, partitioning of large data sets.
* accumulator, simple component example.
* balancing/os_thread_num, balancing/px_thread_phase, examples demonstrating
load balancing and work stealing.

[heading API Changes]

* Added `hpx::find_all_localities`.
* Added `hpx::terminate` for non-graceful termination of applications.
* Added `hpx::lcos::async` functions for simpler asynchronous programming.
* Added new AGAS interface for handling of symbolic namespace (`hpx::agas::*`).
* Renamed `hpx::components::wait` to `hpx::lcos::wait`.
* Renamed `hpx::lcos::future_value` to `hpx::lcos::promise`.
* Renamed `hpx::lcos::recursive_mutex` to `hpx::lcos::local_recursive_mutex`,
`hpx::lcos::mutex` to `hpx::lcos::local_mutex`
* Removed support for Boost versions older than V1.38, recommended Boost version
is now V1.47 and newer.
* Removed `hpx::process` (this will be replaced by a real process implementation
in the future).
* Removed non-functional LCO code (`hpx::lcos::dataflow`, `hpx::lcos::thunk`,
`hpx::lcos::dataflow_variable`).
* Removed deprecated `hpx::naming::full_address`.

[heading Bug Fixes (Closed Tickets)]

Here is a list of the important tickets we closed for this release:

* [issue 28] - Integrate Windows/Linux CMake code for __hpx__ core
* [issue 32] - hpx::cout() should be hpx::cout
* [issue 33] - AGAS V2 legacy client does not properly handle error_code
* [issue 60] - AGAS: allow for registerid to optionally take ownership of the gid
* [issue 62] - adaptive1d compilation failure in Fusion
* [issue 64] - Parcel subsystem doesn't resolve domain names
* [issue 83] - No error handling if no console is available
* [issue 84] - No error handling if a hosted locality is treated as the bootstrap server
* [issue 90] - Add general commandline option -N
* [issue 91] - Add possibility to read command line arguments from file
* [issue 92] - Always log exceptions/errors to the log file
* [issue 93] - Log the command line/program name
* [issue 95] - Support for distributed launches
* [issue 97] - Attempt to create a bad component type in AMR examples
* [issue 100] - factorial and factorial_get examples trigger AGAS component type assertions
* [issue 101] - Segfault when hpx::process::here() is called in fibonacci2
* [issue 102] - unknown_component_address in int_object_semaphore_client
* [issue 114] - marduk raises assertion with default parameters
* [issue 115] - Logging messages for SMP runs (on the console) shouldn't be buffered
* [issue 119] - marduk linking strategy breaks other applications
* [issue 121] - pbsdsh problem
* [issue 123] - marduk, dataflow and adaptive1d fail to build
* [issue 124] - Lower default preprocessing arity
* [issue 125] - Move hpx::detail::diagnostic_information out of the detail namespace
* [issue 126] - Test definitions for AGAS reference counting
* [issue 128] - Add averaging performance counter
* [issue 129] - Error with endian.hpp while building adaptive1d
* [issue 130] - Bad initialization of performance counters
* [issue 131] - Add global startup/shutdown functions to component modules
* [issue 132] - Avoid using auto_ptr
* [issue 133] - On Windows hpx.dll doesn't get installed
* [issue 134] - HPX_LIBRARY does not reflect real library name (on Windows)
* [issue 135] - Add detection of unique_ptr to build system
* [issue 137] - Add command line option allowing to repeatedly evaluate performance counters
* [issue 139] - Logging is broken
* [issue 140] - CMake problem on windows
* [issue 141] - Move all non-component libraries into $PREFIX/lib/hpx
* [issue 143] - adaptive1d throws an exception with the default command line options
* [issue 146] - Early exception handling is broken
* [issue 147] - Sheneos doesn't link on Linux
* [issue 149] - sheneos_test hangs
* [issue 154] - Compilation fails for r5661
* [issue 155] - Sine performance counters example chokes on chrono headers
* [issue 156] - Add build type to --version
* [issue 157] - Extend AGAS caching to store gid ranges
* [issue 158] - r5691 doesn't compile
* [issue 160] - Re-add AGAS function for resolving a locality to its prefix
* [issue 168] - Managed components should be able to access their own GID
* [issue 169] - Rewrite AGAS future pool
* [issue 179] - Complete switch to request class for AGAS server interface
* [issue 182] - Sine performance counter is loaded by other examples
* [issue 185] - Write tests for symbol namespace reference counting
* [issue 191] - Assignment of read-only variable in point_geometry
* [issue 200] - Seg faults when querying performance counters
* [issue 204] - --ifnames and suffix stripping needs to be more generic
* [issue 205] - --list-* and --print-counter-* options do not work together and produce no warning
* [issue 207] - Implement decrement entry merging
* [issue 208] - Replace the spinlocks in AGAS with hpx::lcos::local_mutexes
* [issue 210] - Add an --ifprefix option
* [issue 214] - Performance test for PX-thread creation
* [issue 216] - VS2010 compilation
* [issue 222] - r6045 context_linux_x86.hpp
* [issue 223] - fibonacci hangs when changing the state of an active thread
* [issue 225] - Active threads end up in the FEB wait queue
* [issue 226] - VS Build Error for Accumulator Client
* [issue 228] - Move all traits into namespace hpx::traits
* [issue 229] - Invalid initialization of reference in thread_init_data
* [issue 235] - Invalid GID in iostreams
* [issue 238] - Demangle type names for the default implementation of get_action_name
* [issue 241] - C++11 support breaks GCC 4.5
* [issue 247] - Reference to temporary with GCC 4.4
* [issue 248] - Seg fault at shutdown with GCC 4.4
* [issue 253] - Default component action registration kills compiler
* [issue 272] - G++ unrecognized command line option
* [issue 273] - quicksort example doesn't compile
* [issue 277] - Invalid CMake logic for Windows

[endsect]
167 changes: 167 additions & 0 deletions docs/releases/whats_new_0_8_0.qbk
@@ -0,0 +1,167 @@
[/==============================================================================
Copyright (C) 2007-2018 Hartmut Kaiser

Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
===============================================================================/]

[/////////////////////////////////////////////////////////////////////////////]
[section:hpx_0_8_0 __hpx__ V0.8.0 (Mar 23, 2012)]

We have had roughly 1000 commits since the last release and we have closed
approximately 70 tickets (bugs, feature requests, etc.).

[heading General Changes]

* Improved PBS support, allowing for arbitrary naming schemes of node-hostnames.
* Finished verification of the reference counting framework.
* Implemented decrement merging logic to optimize the distributed reference
counting system.
* Restructured the LCO framework. Renamed [^hpx::lcos::eager_future<>] and
[^hpx::lcos::lazy_future<>] into [classref hpx::lcos::packaged_task]`<>` and
[classref hpx::lcos::deferred_packaged_task]`<>`. Split
[classref hpx::lcos::promise]`<>` into [classref hpx::lcos::packaged_task]`<>`
and [classref hpx::lcos::future]`<>`. Added 'local' futures
(in namespace [^hpx::lcos::local]).
* Improved the general performance of local and remote action invocations.
This (under certain circumstances) drastically reduces the number of copies
created for each of the parameters and return values.
* Reworked the performance counter framework. Performance counters are now
created only when needed, which reduces the overall resource requirements.
The new framework allows for much more flexible creation and management
of performance counters. The new sine example application demonstrates some
of the capabilities of the new infrastructure.
* Added a buildbot-based continuous build system which gives instant, automated
feedback on each commit to SVN.
* Added more automated tests to verify proper functioning of __hpx__.
* Started to create documentation for __hpx__ and its API.
* Added documentation toolchain to the build system.
* Added dataflow LCO.
* Changed default __hpx__ command line options to have [^hpx:] prefix. For
instance, the former option [^--threads] is now [hpx_cmdline [^--hpx:threads]].
This has been done to make ambiguities with possible application specific
command line options as unlikely as possible. See the section __commandline__
for a full list of available options.
* Added the possibility to define command line aliases. The former short
(one-letter) command line options have been predefined as aliases for
backwards compatibility. See the section __commandline__ for a detailed
description of command line option aliasing.
* Network connections are now cached based on the connected host. The number of
simultaneous connections to a particular host is now limited. Parcels are
buffered and bundled if all connections are in use.
* Added more refined thread affinity control. This is based on the external
library __hwloc__.
* Improved support for Windows builds with CMake.
* Added support for components to register their own command line options.
* Added the possibility to register custom startup/shutdown functions for
any component. These functions are guaranteed to be executed by an __hpx__
thread.
* Added two new experimental thread schedulers: hierarchy_scheduler and
periodic_priority_scheduler. These can be activated by using the command line
options [hpx_cmdline [^--hpx:queueing=hierarchy]] or
[hpx_cmdline [^--hpx:queueing=periodic]].

[heading Example Applications]

* [@http://www.graph500.org/ Graph500 performance benchmark] (thanks to Matthew
Anderson for contributing this application).
* [@http://www.nersc.gov/research-and-development/benchmarking-and-workload-characterization/nersc-6-benchmarks/gtc/ GTC (Gyrokinetic Toroidal Code)]:
a skeleton for particle in cell type codes.
* Random Memory Access: an example demonstrating random memory accesses in a
large array
* [@http://stellarcollapse.org/equationofstate ShenEOS example], demonstrating
partitioning of large read-only data structures and exposing an interpolation
API.
* Sine performance counter demo.
* Accumulator examples demonstrating how to write and use __hpx__ components.
* Quickstart examples (like hello_world, fibonacci, quicksort, factorial, etc.)
demonstrating simple __hpx__ concepts which introduce some of the concepts in
__hpx__.
* Load balancing and work stealing demos.

[heading API Changes]

* Moved all local LCOs into a separate namespace `hpx::lcos::local` (for
instance, `hpx::lcos::local_mutex` is now [classref hpx::lcos::local::mutex]).
* Replaced `hpx::actions::function` with [classref hpx::util::function]. Cleaned
up related code.
* Removed `hpx::traits::handle_gid` and moved handling of global reference
counts into the corresponding serialization code.
* Changed terminology: `prefix` is now called `locality_id`, renamed the
corresponding API functions (such as `hpx::get_prefix`, which is now called
`hpx::get_locality_id`).
* Adding [funcref hpx::find_remote_localities]`()`,
and [funcref hpx::get_num_localities]`()`.
* Changed performance counter naming scheme to make it more bash friendly.
The new performance counter naming scheme is now

[teletype]
``
/object{parentname#parentindex/instance#index}/counter#parameters
``
[c++]

* Added `hpx::get_worker_thread_num` replacing `hpx::threadmanager_base::get_thread_num`.
* Renamed `hpx::get_num_os_threads` to `hpx::get_os_threads_count`.
* Added `hpx::threads::get_thread_count`.
* Restructured the Futures sub-system, renaming types in accordance with the
terminology used by the C++11 ISO standard.

[heading Bug Fixes (Closed Tickets)]

Here is a list of the important tickets we closed for this release:

* [issue 31] - Specialize handle_gid<> for examples and tests
* [issue 72] - Fix AGAS reference counting
* [issue 104] - heartbeat throws an exception when decrefing the performance counter it's watching
* [issue 111] - throttle causes an exception on the target application
* [issue 142] - One failed component loading causes an unrelated component to fail
* [issue 165] - Remote exception propagation bug in AGAS reference counting test
* [issue 186] - Test credit exhaustion/splitting (e.g. prepare_gid and symbol NS)
* [issue 188] - Implement remaining AGAS reference counting test cases
* [issue 258] - No type checking of GIDs in stubs classes
* [issue 271] - Seg fault/shared pointer assertion in distributed code
* [issue 281] - CMake options need descriptive text
* [issue 283] - AGAS caching broken (gva_cache needs to be rewritten with ICL)
* [issue 285] - HPX_INSTALL root directory not the same as CMAKE_INSTALL_PREFIX
* [issue 286] - New segfault in dataflow applications
* [issue 289] - Exceptions should only be logged if not handled
* [issue 290] - c++11 tests failure
* [issue 293] - Build target for component libraries
* [issue 296] - Compilation error with Boost V1.49rc1
* [issue 298] - Illegal instructions on termination
* [issue 299] - gravity aborts with multiple threads
* [issue 301] - Build error with Boost trunk
* [issue 303] - Logging assertion failure in distributed runs
* [issue 304] - Exception 'what' strings are lost when exceptions from decode_parcel are reported
* [issue 306] - Performance counter user interface issues
* [issue 307] - Logging exception in distributed runs
* [issue 308] - Logging deadlocks in distributed
* [issue 309] - Reference counting test failures and exceptions
* [issue 311] - Merge AGAS remote_interface with the runtime_support object
* [issue 314] - Object tracking for id_types
* [issue 315] - Remove handle_gid and handle credit splitting in id_type serialization
* [issue 320] - applier::get_locality_id() should return an error value (or throw an exception)
* [issue 321] - Optimization for id_types which are never split should be restored
* [issue 322] - Command line processing ignored with Boost 1.47.0
* [issue 323] - Credit exhaustion causes object to stay alive
* [issue 324] - Duplicate exception messages
* [issue 326] - Integrate Quickbook with CMake
* [issue 329] - --help and --version should still work
* [issue 330] - Create pkg-config files
* [issue 337] - Improve usability of performance counter timestamps
* [issue 338] - Non-std exceptions deriving from std::exceptions in tfunc may be sliced
* [issue 339] - Decrease the number of send_pending_parcels threads
* [issue 343] - Dynamically setting the stack size doesn't work
* [issue 351] - 'make install' does not update documents
* [issue 353] - Disable FIXMEs in the docs by default; add a doc developer CMake option to enable FIXMEs
* [issue 355] - 'make' doesn't do anything after correct configuration
* [issue 356] - Don't use hpx::util::static_ in topology code
* [issue 359] - Infinite recursion in hpx::tuple serialization
* [issue 361] - Add compile time option to disable logging completely
* [issue 364] - Installation seriously broken in r7443

[endsect]

[/Proofread by:]
[/Adrian Serio 3-13-12]

0 comments on commit e61bef7

Please sign in to comment.