stlab.adobe.com Adobe Systems Incorporated

Welcome to stlab.adobe.com

"Correctness is clearly the prime quality. If a system does not do what it is supposed to do, then everything else about it matters little."
    - Bertrand Meyer

stlab.adobe.com is the home of the Adobe Source Libraries (ASL) and information about other Adobe open source projects.

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.

stlab.adobe.com is maintained by Sean Parent and Mat Marcus.

Search

Latest News

May 13, 2009 ASL - 1.0.42 Release
Highlights of this release include:
  • Property model library (Adam)
    • Changed filters (self referential expression on an interface cell) so they aren't ignored when the cell is derived from a relate clause (see Release Notes for details).
    • Fixed issue introduced in 1.0.41 with incorrect poison set being calculated for invariants.
    • Reworked invariant cells they now behave more like output cells and can be refered to in expressions.
    • Updated the image_size example to demonstrate an ignored/disabled control (resample method when not resampling).
  • Some 64 bit fixes and cleanup.
  • Minor cleanup, performance improvements and bug fixes.

February 13, 2009 ASL - 1.0.41 Release
Highlights of this release include:

ASL:

  • Property model library (Adam) - rewrote main solver
    • no longer uses exceptions as flow control.
    • fixed bug with initializers that refer to cells with define_expressions has causing the define_expressions to evaluate which could refer to cells which had not been declared.
    • exported get() member, it is now the client responsibility to wire sheet_t::get() to the variable lookup in the VM (this also allows the clients to hook the variable lookup for supporting custom variables). In the future the VM will be separated entirely from the property model library.
    • added some more error reporting including reporting duplicate cell names.
  • virtual machine library
    • removed the contributing buts which were tracked through calculations. The VM stack is now just a stack of any_regular_t.
    • removed the use of storing size_t in an any_regular_t in the VM (was breaking serialization among other things because size_t is not a C++ basic type on Win64).
  • any_regular_t
    • improved serialization by removing one heap alloc/dealloc per item serialized, also uses logN search for type instead of linear search.
      • removed the hack to handle size_t serialization on Win64.
    • serialization will now throw an exception when it encounters a type other than one of the 7 CEL types (it used to assert).
    • in debug builds, the version field of the any_regular_t vtable contains a short type name for debugging purposes only. See the wiki documentation.

December 23, 2008 ASL - 1.0.40 Release
I have left Adobe and will be pursuing other opportunities. This release is my first as an "external" opensource contributor. Please use my mmarcus <at> emarcus <dot> org address instead of my former adobe.com address.

Mat

Highlights of this release include:

ASL:

  • The pmeval (property model evaluator) interpreter is ready for general purpose use. It has been enhanced to allow flexible exploration and testing of property models. Commands include check assertions, print statements, update, reinitialize, and property model dumps (showing enablement, contributing/intent). pmeval can be built from source (all platforms, including cygwinand *N*X) or downloaded from sourceforge for Mac or Windows.
  • Property models can also be evaluated via an experimental web form-based interface to pmeval. The service, along with an intermediate property modeling tutorial is available through http://emarcus.org/#pmeval .
  • Rewrote enablement for the property model engine. Enabled status is set to a conservative approximation of enablement detection (erring towards enablement): it is set to false if a change to the cell cannot affect the output of a correct sheet, and true if it *may* effect the output.
  • Replaced monitor_active with monitor_enabled (conservative enablement, touch_set support). See the documentation for monitor_enabled in adam.hpp, and the calls to monitor_enabled in (APL's) widget_factory.hpp for details. (Note that it is incorrect to unconditionally pass NULLs to monitor_enabled. The bug will manifest as incorrect enablement behavior in the presence of touch sets in eve sheets.)
  • Fixed bug where interface cells appearing in a when clause condition were not contributing.
  • New papers and presnetations at http://stlab.adobe.com/wiki/index.php/Papers_and_Presentations
  • Patched boost to allow preservation of test targets (now the default).
  • Patched to serializes std::size_t on MSVC when compiling for 64 bit architecture.
  • Added qualification to binary_search algorithm to remove ambiguity.
  • Refactored pmeval, introduced (test-only) queryable_sheet_t. pmeval now supports multiple input files, sheet separate from commands, multiple simultaneous sheets.
  • Allow monitoring of invariants under monitor_value.
  • Improved release notes and build scripts for *N*X/cygwin

User supported libs (APL):

  • Updated widget factory so that widgets monitor_considered instead of monitor_active, to properly enable in presence of touch sets.
  • Fixed reveal widget bug
  • Update so that both stlab and internal adobe frameworks can leverage widget_factory.hpp; also rolled in updates from other teams within adobe
    November 6, 2008 ASL - 1.0.39 Release
    ASL:
  • Added sheet_t::reinitialize(). "Input cells are re-initialized, in sheet order, and interface cell initializers are re-evaluated. Priorities are updated, but no callbacks are triggered. Calls to reinitialize should be followed by calls to update must be called, just as if the cells were updated by set operations on sorted ranges."
  • Adam documentaion improvements
  • Updated to (patched) boost 1.37.0
  • Added a command line property model evaluator tool, and programmer-oriented tutorial at: http://easyurl.net/pm_tutorial
  • New (theoretical) paper on Property Models from ACM GPCE 2008 added to: http://easyurl.net/stlab_publications
  • Regressions now also run under Vista 64-bit
  • Regressions now also run under Mac OS X 64-bit
  • Deprecated pin library. Replaced with clamp library. Also added median(of 3) and some select algorithms.

User supported libs (APL):

  • Formatter improvements.

September 10, 2008 ASL - 1.0.38 Release
Highlights of this release include:
ASL:
  • New papers and presnetations at http://stlab.adobe.com/wiki/index.php/Papers_and_Presentations
  • Major improvements to documentation structure
  • Updated to boost 1.36.0, with patches to fix some boost bugs
  • Updated to intel tbb 2.1 (tbb21_009oss)
  • Fix 64-bit poly_test issue
  • Fixes for identity<> and pointer_to<> and their use.
  • Eliminated concept macros
  • Minor fix for static_table.hpp to include stdexcept
  • Fix for lexer to allow keywords as names, i.e. .
  • Fix for MSVC compiler warning in memory.hpp (from Jon Clauson)
  • Predicates for conditional relate declarations are now calculated up-front and cannot be dependent themselves on a relate declaration.
  • Raising limit on number of interface cells to 256.
  • Added parameter to final to avoid misuse.
  • Added -L to curl commands in net setup scripts to protect against redirects
  • Made selection_t equality_comparable
  • Added bool has_input(name) and bool has_output(name) to the property model library.
  • removed outdated expression_filter routines; updated adam_tutorial output format; deleting some unnecessary sources
  • Cleaned out static intializers
  • Collapsed entity lookup to a single place -- removed the once stuff from xml_parser
  • Fixed issue with implicit casts of enum node state in closed_hash.hpp
  • Fixed bug in property model library where an active monitor wasn't called on connect.
  • Added code to layout library to reset metrics prior to calling client measure function to avoid errors where client code assumes defaulted value.
  • Fixed bug with active monitor not being called on connection in Adam.

User supported libs (APL):

  • Improvements to the expression, property model, and layout formatters. they print are much more readably now, especially with arrays and dictionaries with many items.
  • Added shift as a modifier key to the new modifier key functionality
  • Move controller and view concepts (compile and runtime) to APL
  • BBedit language modules
  • xml_to_forest test app
  • Added xml_element_forest, a utility header that round-trips an XML file to a forest of dictionaries; also gives the user the ability to hand-generate a forest of dictionaries with a specific format and stream out a resulting XML file.
  • Moved functions_as_controller to widget_proxies.hpp in APL
  • Renamed to_utf* to value_to_utf* in the singleton code point
  • Removed subview factory
  • Gave behaviors the ability to have their verbs pointed to another callback once they've been established. This gives clients the ability to do more than just resize the eve layout at the appropriate time (e.g., to resize a parent container not managed by eve.)
  • sequence_model and associated view and controller concepts and implementations. Multiple changes and to improve the overall mvc architecture of the system. Also added a multiplexer/demultiplexer system to allow for the routing of commands between the sequence_model and any attached sequence views and controllers.
  • dictionary_set migration from obscure widgets lib location to APL
  • Added breakpoint-compatible formatting to some of the casting type checks
  • Logic fix for one of the selection algorithms
  • Fixed error reporting code in Begin.
  • Added formatter_tokens to eliminate duplicate symbols when both formatters are included in a single project
  • Cleaned up a lot of the serialization code, pulled out dynamic memory allocations, etc
  • Added expression_filter, for the escaping and unescaping of xml entities in a string; useful for serialization work
  • Fixed some of the image_t leaks under win32. Problems run deeper though, since the architecture fails to store platform resources for cleanup when bitmaps updated or when window closes. Deeper fixes will be required to plug the rest of the leaks
  • Added the ability to add 'raw' functions to the function pack, bypassing all the function pack magic in case you'd like to do the work yourself.
  • Update example code. inlined some function_pack routines, and added an nbitpath helper routine to the bitpath structure

May 5, 2008 - ASL 1.0.37 Release
Highlights of this release include:

ASL:

  • Update ASL to depend on boost 1.35.0
  • Patch boost 1.35.0 to fix bugs in boost threads and boost filesystem
  • Patch boost build to add a link-incompatible feature allowing _SECURE_SCL to be disabled, thus avoiding unjustifiable performance penalty on release builds.
  • Multiple net setup and build improvements.
  • Workaround the bjam MkDir bug that was causing build errors and the need for multiple invocations of bjam.
  • Tested against gcc 4.3.0.
  • Update ASL to depend on Intel Thread Building Blocks 2008.04.08 stable release, now supporting atomics under ppc 32bit.
  • Patch TBB to support windows/cygwin-based gcc 4.1.1 and later.
  • Fix bug on 64 bit little-endian machines in closed_hash
  • Documentation improvements and corrections for any_regular_t and some algorithms
  • Fixed a potential memory leak in any_regular_t
  • Fixed thread safety issue with forest<>::size()
  • New binary_search (unlike std::binary_search, this is useful)
  • Added gather algorithm (thanks to Marshall Clow)
  • Started to break-up functional - functional/operator.hpp functional/is_member.hpp
  • Deleted find_first_of_set.hpp - use find_if with is_member instead
  • Change sheet and basic sheet API to remove attach_view/detach_view in favor of signals mechanism. Remove function_as_view since function/bind results can once again be used directly. poly_view is now optional for clients who find it more convenient.
  • Change adam API to remove attach_controller/detach_controller in favor of signals mechanism. poly_controller is now optional for clients who find it convenient.
  • Remove dependence of adam_tutorial on APL and move to ASL. Add visual project for adam_tutorial.
  • Rewrite copy_on_write to use a well-defined binary representation, add custom allocator support, move to version1 namespace.
  • Added script to update a directory in p4 based on "offline" changes, and other scripts to automate documentation update process.
  • Fixes to vector and string for windows min/max problems, thanks to Jesper.
  • Add check ensuring operator== interoperability of forest iters and const iters.

APL:

  • Add property_model_formatter.hpp and layout_formatter.hpp for parsing layout and property model descriptions into a data structure instead of to the widget factory.
  • Add layout_tidy and property_model_tidy which check layout and property model definitions validity.

March 21, 2008 - ASL 1.0.36 Release
Highlights of this release include:

ASL:

  • version_1 types (replace version_0 types) - better, defined binary layout and carry allocator for applications with replaced new/delete.
  • capture_allocator, an std::allocator compatible allocator which carries a paired new/delete.
  • Allocator support in closed_hash_set<>, closed_hash_map<>, and vector<>.
  • Vastly improved move library (Thanks to Dave Abrahams!).
  • Vastly improved copy-on-write library (now uses move library to reduce number of increment/decrements).
  • Bug fix in layout library that caused containers with the width driven by the frame width to layout children incorrectly.
  • Bug fix in forest::erase where the beginning of the erased range has a lower depth then the end of the range.
  • Forest test cases and minor fixes to forest types.
  • Misc bug fixes.
  • Fixes to build and distribution tools.
  • Fixed search on documentation site to point to stlab and not opensource domain.

More News...

Copyright © 2006-2007 Adobe Systems Incorporated.

Use of this website signifies your agreement to the Terms of Use and Online Privacy Policy.

Search powered by Google