Skip to content

Commit 4af2601

Browse files
committed
Prep 2.0 release
- Resurrect the poly library. - Added new item - Update version to 2.0.0
1 parent 075fd9c commit 4af2601

20 files changed

+192
-119
lines changed

.vscode/tasks.json

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{
2+
"version": "2.0.0",
3+
"tasks": [
4+
{
5+
"label": "Build Documentation",
6+
"type": "shell",
7+
"command": "cmake --build --preset docs",
8+
"group": {
9+
"kind": "build",
10+
"isDefault": false
11+
},
12+
"dependsOn": [
13+
"Configure Documentation"
14+
],
15+
"problemMatcher": [
16+
"$gcc",
17+
"$msCompile"
18+
],
19+
"presentation": {
20+
"reveal": "always",
21+
"panel": "shared"
22+
}
23+
},
24+
{
25+
"label": "Configure Documentation",
26+
"type": "shell",
27+
"command": "cmake --preset docs",
28+
"problemMatcher": [
29+
"$gcc",
30+
"$msCompile"
31+
],
32+
"presentation": {
33+
"reveal": "always",
34+
"panel": "shared"
35+
}
36+
}
37+
]
38+
}

CMakeLists.txt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,12 @@ include(${CMAKE_CURRENT_BINARY_DIR}/cmake/CPM.cmake)
2121
# Enable CPM caching to avoid re-downloading dependencies
2222
set(CPM_SOURCE_CACHE ${CMAKE_SOURCE_DIR}/.cpm-cache CACHE PATH "Directory to cache CPM packages" FORCE)
2323

24+
################################################################################
25+
# Dependencies
2426

25-
CPMAddPackage(
26-
NAME stlab-copy-on-write
27-
GITHUB_REPOSITORY stlab/copy-on-write
28-
GIT_TAG main # or specify a version tag
29-
OPTIONS "BUILD_TESTING OFF"
30-
)
27+
CPMAddPackage("gh:stlab/copy-on-write@1.0.3")
28+
29+
################################################################################
3130

3231
set(CMAKE_CXX_EXTENSIONS OFF)
3332
if(NOT DEFINED CMAKE_CXX_STANDARD)
@@ -103,7 +102,7 @@ if(BUILD_DOCS)
103102
# Set variables for Doxyfile template
104103
set(PROJECT_NAME "Adobe Source Libraries")
105104
set(PROJECT_BRIEF "A collection of C++ libraries.")
106-
set(PROJECT_VERSION "1.49.0")
105+
set(PROJECT_VERSION "2.0.0")
107106
set(INPUT_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
108107
set(OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}")
109108
set(AWESOME_CSS_PATH "${AWESOME_CSS_DIR}")

adobe/poly.hpp

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010

1111
#include <adobe/config.hpp>
1212

13+
#include <string>
14+
#include <type_traits>
15+
#include <typeinfo>
16+
#include <utility>
17+
1318
#include <boost/mpl/bool.hpp>
1419
#include <boost/mpl/if.hpp>
1520
#include <boost/mpl/or.hpp>
@@ -18,8 +23,6 @@
1823
#include <adobe/implementation/swap.hpp>
1924
#include <adobe/typeinfo.hpp>
2025

21-
#include <type_traits>
22-
2326
/**************************************************************************************************/
2427

2528
namespace adobe {
@@ -439,10 +442,10 @@ T's Concept requirement. For example,
439442
*/
440443
template <typename T, typename U>
441444
T poly_cast(poly<U>& x) {
442-
typedef typename boost::remove_reference<T>::type target_type;
445+
typedef typename std::remove_reference<T>::type target_type;
443446
typedef typename target_type::interface_type target_interface_type;
444447
if (!x.template is_dynamic_convertible_to<target_interface_type>())
445-
throw bad_cast(typeid(poly<U>), typeid(T));
448+
throw adobe::bad_cast(typeid(poly<U>), typeid(T));
446449
return reinterpret_cast<T>(x);
447450
}
448451

@@ -457,10 +460,10 @@ T poly_cast(poly<U>& x) {
457460

458461
template <typename T, typename U>
459462
T poly_cast(const poly<U>& x) {
460-
typedef typename boost::remove_reference<T>::type target_type;
463+
typedef typename std::remove_reference<T>::type target_type;
461464
typedef typename target_type::interface_type target_interface_type;
462465
if (!x.template is_dynamic_convertible_to<target_interface_type>())
463-
throw bad_cast(typeid(poly<U>), typeid(T));
466+
throw adobe::bad_cast(typeid(poly<U>), typeid(T));
464467
return reinterpret_cast<T>(x);
465468
}
466469

adobe/poly_copyable.hpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,7 @@ struct poly_copyable_instance : optimized_storage_type<T, poly_copyable_interfac
5151
/*!
5252
Move constructor
5353
*/
54-
poly_copyable_instance(move_from<poly_copyable_instance> x)
55-
: base_t(move_from<base_t>(x.source)) {}
54+
poly_copyable_instance(poly_copyable_instance&& x) noexcept : base_t(std::move(x)) {}
5655
};
5756

5857
/**************************************************************************************************/
@@ -75,7 +74,7 @@ struct copyable : poly_base<poly_copyable_interface, poly_copyable_instance> {
7574
/*!
7675
Move constructor
7776
*/
78-
copyable(move_from<copyable> x) : base_t(move_from<base_t>(x.source)) {}
77+
copyable(copyable&& x) noexcept : base_t(std::move(x)) {}
7978
};
8079

8180

adobe/poly_regular.hpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313

1414
#include <adobe/config.hpp>
1515

16+
#include <utility>
17+
1618
#include <boost/concept_check.hpp>
1719

1820
#include <adobe/empty.hpp>
@@ -63,8 +65,7 @@ struct poly_regular_instance : optimized_storage_type<T, poly_regular_interface>
6365
/*!
6466
Move constructor
6567
*/
66-
poly_regular_instance(move_from<poly_regular_instance> x)
67-
: base_t(move_from<base_t>(x.source)) {}
68+
poly_regular_instance(poly_regular_instance&& x) noexcept : base_t(std::move(x)) {}
6869

6970
bool equals(const poly_regular_interface& x) const {
7071
return this->type_info() == x.type_info() &&
@@ -94,7 +95,7 @@ struct regular : poly_base<poly_regular_interface, poly_regular_instance> {
9495
/*!
9596
Move constructor
9697
*/
97-
regular(move_from<regular> x) : base_t(move_from<base_t>(x.source)) {}
98+
regular(regular&& x) noexcept : base_t(std::move(x)) {}
9899
};
99100

100101

adobe_source_libraries.code-workspace

Lines changed: 0 additions & 19 deletions
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
<HTML>
22

3+
<!-- Open or preview this file in VSCode to quickly get to the built documentation -->
4+
35
<HEAD>
46
<META HTTP-EQUIV=REFRESH CONTENT="0; URL=../build/docs/html/index.html">
57
</HEAD>
68

79
<BODY>
8-
<!---CENTER><BR><BR><b><i><span style='font-family:Arial'>redirecting to documentation...</span></i></b></center--->
910
</BODY>
1011

1112
</HTML>

documentation/structure/mainpage.dox

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,4 @@ This is the documentation site for the Adobe Source Libraries (ASL).
55

66
ASL provides peer-reviewed and portable C++ source libraries. The libraries are intended to be widely useful, leveraging and extending both the C++ Standard Library and the Boost Libraries.
77

8-
The Adobe Source Libraries are maintained by Sean Parent, Mat Marcus, and Foster Brereton.
9-
10-
Both site and sources have migrated to GitHub, and in so doing we are trying to clean things up. Please pardon our dust.
118
*/

documentation/structure/news.dox

Lines changed: 53 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,43 @@
66

77
\page top_news Top News
88

9+
\par June 26, 2025 ASL - 2.0.0 Release
10+
11+
This release is labeled 2.0.0, because going forward I'm going to be trying to adhere to semantic
12+
versioning and this release (like most others) contains some breaking changes.
13+
14+
ASL and the STLab libraries are no longer research projects or experiments. Going forward my goals
15+
are:
16+
17+
- Address bugs.
18+
- Maintain ABI stability to the extent possible.
19+
- Support the releases of the C++ standard (currently C++17 to 23, but as Adobe moves to C++20 and
20+
C++26 is standardized that range will move forward).
21+
- Support the latest major compiler releases (gcc, clang, and MSVC++).
22+
- Improve the documentation (see below).
23+
- Continue to simplify the libraries, removing uses of boost that could the standard library, and
24+
possibly adding new dependencies where a better supported library overlaps these libraries.
25+
- Refactor the existing libraries into smaller components [see the new
26+
copy-on-write](https://stlab.github.io/copy-on-write).
27+
- Simplify the documentation systems (moving to doxygen for STLab libraries).
28+
- Simplify the unit test system (moving to doctest).
29+
30+
Despite being minimally maintained, these libraries still see significant use. My goal is to find
31+
new maintainers. My ongoing research has moved on from C++ and maintaining these libraries is now an
32+
evening project.
33+
34+
After over 15 years of [stale documentation](https://stlab.adobe.com/), with the help of Cursor and
35+
Claude I was able to get the docs building again and cleaned so they are in a usable form and can
36+
now be found at [stlab/github.com/adobe_source_libraries]. There is still a lot of work to clean out
37+
old cruft, document some undocumented items, and improve the structure, but now that work can happen
38+
incrementally. A couple of the libraries where migrated to the [stlab
39+
libraries](https://github.com/stlab/libraries) but not removed from ASL. I started the work to
40+
consolidate these and move the copy-on-write library into a [standalone
41+
library](https://stlab.github.io/copy-on-write). Check the [release
42+
notes](https://github.com/stlab/adobe_source_libraries/releases) for more details.
43+
44+
Sean
45+
946
\par November 4, 2010 ASL - 1.0.43 Release
1047

1148
This release is source only, no binary packages and no net setup scripts.
@@ -14,7 +51,7 @@ I've recently returned to Adobe as architect for mobile imaging applications.
1451
The Software Technology Lab remains a "virtual group." We have a collection
1552
of improvements, fixes, updates, and additions that we've gathered over the last
1653
year and a half since the last release. We are working to simplify the release
17-
process to something more managable and to get back to more frequent releases.
54+
process to something more manageable and to get back to more frequent releases.
1855
That is why we've dropped the binary distribution and net setup scripts.
1956
Suggestions for further simplification welcome.
2057

@@ -72,7 +109,7 @@ Highlights of this release include:
72109
- Fixed issue introduced in 1.0.41 with incorrect poison set being
73110
calculated for invariants.
74111
- Reworked invariant cells they now behave more like output cells
75-
and can be refered to in expressions.
112+
and can be referred to in expressions.
76113
- Updated the image_size example to demonstrate an ignored/disabled
77114
control (resample method when not resampling).
78115
- Some 64 bit fixes and cleanup.
@@ -116,7 +153,7 @@ Highlights of this release include:
116153
\par December 23, 2008 ASL - 1.0.40 Release
117154

118155
I have left Adobe and will be pursuing other opportunities. This
119-
release is my first as an "external" opensource contributor. Please
156+
release is my first as an "external" open source contributor. Please
120157
use my mmarcus \<at\> emarcus \<dot\> org address instead of my former
121158
adobe.com address.
122159

@@ -153,7 +190,7 @@ Highlights of this release include:
153190
sheets.)
154191
- Fixed bug where interface cells appearing in a when clause
155192
condition were not contributing.
156-
- New papers and presnetations at
193+
- New papers and presentations at
157194
http://stlab.adobe.com/wiki/index.php/Papers_and_Presentations
158195
- Patched boost to allow preservation of test targets (now the
159196
default).
@@ -188,7 +225,7 @@ Highlights of this release include:
188225
no callbacks are triggered. Calls to reinitialize should be
189226
followed by calls to update must be called, just as if the
190227
cells were updated by set operations on sorted ranges."
191-
- Adam documentaion improvements
228+
- Adam documentation improvements
192229
- Updated to (patched) boost 1.37.0
193230
- Added a command line property model evaluator tool, and
194231
programmer-oriented tutorial at:
@@ -207,7 +244,7 @@ Highlights of this release include:
207244
Highlights of this release include:
208245

209246
ASL:
210-
- New papers and presnetations at
247+
- New papers and presentations at
211248
http://stlab.adobe.com/wiki/index.php/Papers_and_Presentations
212249
- Major improvements to documentation structure
213250
- Updated to boost 1.36.0, with patches to fix some boost bugs
@@ -232,7 +269,7 @@ Highlights of this release include:
232269
- removed outdated expression_filter routines; updated
233270
adam_tutorial output format; deleting some unnecessary
234271
sources
235-
- Cleaned out static intializers
272+
- Cleaned out static initializers
236273
- Collapsed entity lookup to a single place -- removed the
237274
once stuff from xml_parser
238275
- Fixed issue with implicit casts of enum node state in
@@ -378,7 +415,7 @@ Highlights of this release include:
378415
- Misc bug fixes.
379416
- Fixes to build and distribution tools.
380417
- Fixed search on documentation site to point to stlab and not
381-
opensource domain.
418+
open source domain.
382419

383420
\par January 28, 2008 - ASL 1.0.35 Release
384421

@@ -396,9 +433,9 @@ Highlights of this release include:
396433
- renamed copy_bound to copy_bounded
397434
- minor improvements to operator+() for strings
398435
- updated doxyfile for latest doxygen
399-
- More algorithm documentation clean-up. Greately improved erase/erase_if
436+
- More algorithm documentation clean-up. Greatly improved erase/erase_if
400437
container algorithms and container storage type function.
401-
- Templatize erase_if test cases
438+
- Template erase_if test cases
402439
- Initial work on forest unit_test
403440

404441

@@ -407,12 +444,12 @@ Highlights of this release include:
407444
Highlights of this release include:
408445

409446
ASL:
410-
- Lots of clean up and removed defered initialization of
447+
- Lots of clean up and removed deferred initialization of
411448
property model cells.
412449
- changes to the initializers for the property model library
413-
you must now call upate() prior to monitoring or attaching a
450+
you must now call update() prior to monitoring or attaching a
414451
view (you'll get an assert if you don't) and the monitor
415-
function (or view) is called immeditely when attached with the
452+
function (or view) is called immediately when attached with the
416453
current state.
417454
- support for stateful function object (hash, key function,
418455
and compare) to closed_hash_set
@@ -490,7 +527,7 @@ Highlights of this release include:
490527
Highlights of this release include:
491528
- GIL 2.0 release! (GIL was recently accepted as a Boost library; congratulations to the GIL team!)
492529
- Addition of the poly<> class, allowing for a generic means of specifying runtime-polymorphic objects based on a provided concept specification.
493-
- algorithm.hpp was completely refactored into smaller, more digestable algorithm subfamily headers
530+
- algorithm.hpp was completely refactored into smaller, more digestible algorithm subfamily headers
494531
- Widget implementation improvement (primarily for the list widget) including supporting code in selection_t and sequence_model_t.
495532
- For more information and more changes see the \ref asl_release_notes
496533
\par
@@ -531,7 +568,7 @@ Highlights of this release include:
531568
- adobe::selection_t was added, along with a set of selection-based algorithms
532569
- Added changes to support gcc-4.1.1 and conceptgcc a5
533570
- Simplify assemblage to be a collection of nullary function objects invoked in LIFO order upon destruction
534-
- Boost patchfile updated; please repatch your boost distribution
571+
- Boost patch file updated; please repatch your boost distribution
535572
- For more information and more changes see the \ref asl_release_notes
536573
\par
537574
Head over to the <a href="http://sourceforge.net/project/showfiles.php?group_id=132417">download</a> section to grab it.
@@ -824,7 +861,7 @@ Head over to the <a href="http://sourceforge.net/project/showfiles.php?group_id=
824861
We would like to build a case for Adobe to do more in the open source arena, and so would like to know more about who you are and what your plans are for using the Adobe Source Libraries in your software development. Please contact <a href="http://sourceforge.net/users/sean_parent/">Sean Parent</a> with any and all comments (including those on how to improve the Adobe Source Libraries as they stand -- we need feedback, too!)
825862

826863
\par May 03, 2005 - ASL 1.0.3 Released
827-
I'm pleased to announce the arrival of Adobe Source Libraries 1.0.3. This is mostly a maintenance release but it also boasts a small set of new features, including a threadsafe, context-sensitive string lookup system for internationalization/localization. There are also a slew of bug fixes that make this release well worth the download. Head over to the <a href="http://sourceforge.net/project/showfiles.php?group_id=132417&package_id=145420">download</a> section and check it out.
864+
I'm pleased to announce the arrival of Adobe Source Libraries 1.0.3. This is mostly a maintenance release but it also boasts a small set of new features, including a thread-safe, context-sensitive string lookup system for internationalization/localization. There are also a slew of bug fixes that make this release well worth the download. Head over to the <a href="http://sourceforge.net/project/showfiles.php?group_id=132417&package_id=145420">download</a> section and check it out.
828865

829866
\par April 01, 2005 - ASL 1.0.2 Released
830867
The Adobe Source Libraries 1.0.2 is now available for <a href="http://sourceforge.net/project/showfiles.php?group_id=132417">download</a>. Changes include a budding Win32 implementation of Adobe Begin, increased compiler compatibility, and extensive bug fixes and additions. The Win32 implementation of Adobe Begin does not have the same functionality as the Mac version, however it is in a place where it demonstrates the functionality of Adam and Eve well enough to warrant release.

0 commit comments

Comments
 (0)