These pages have been migrated from for preservation. They may eventually be revised and moved into a more appropriate location on the site.

Adobe’s Software Technology Lab web site is the home for the Adobe Source Libraries (ASL).

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. is maintained by Sean Parent, Mat Marcus and Foster Brereton.

This portion of the web site is place where users of the Adobe Source Libraries can collaborate on everything that pertains both to their development and to the development of technologies that leverage it.


  1. Documentation, Design and Development
  2. Internals
  3. Other
  4. Relate Your Success
  5. Complete list of pages

Documentation, Design and Development



Relate Your Success

The Adobe Source Libraries have been used with success within Adobe applications to increase robustness and correctness of code. As developers of an open source project, we are confident that there are other success stories outside of Adobe as well. We encourage you to contribute a success story of your own:

  • What is the name of your project?
  • What is the purpose of the project?
  • What led you to choose ASL?
  • Was ASL used from the start of the project? If not, how did its inclusion impact your project? How does using ASL affect your project development as a whole?
  • How large is your project?
  • How would you rate the success of your project?
  • Is there any other interesting information worth sharing?

Submissions will be included in a success stories web page on the site. You can submit a success story by emailing Foster Brereton at his email address (fbrereto).

Complete list of pages

ABI safe library theory of operation

About Boost Patches

Accessing Internal Logs

Adam Evolution

Adam Grammar Changes

Adam Tutorial

Adding a user to the ASL Wiki

Alert Dialog API

All About Binding

Annotated List of Boost Patches

Argument Against GC

Better Edit Number Widget

Build and Debug Tips

Build Matrix

Coding Guidelines

Compositing Models

Conceptual C

Configure Perforce client for two servers

Copy On Write

Current Design Rationale

Derive Quadratic Equation


Debugging any_regular_t and short names

Deferred Procedure Call System

Derive quadratic equation solution

Dynamic Libraries

Edge Interface For Forward Iterators

EMacs Questions

Eve definitions in Lua

Future Ideas and Designs

GIL File Format Import/Export Factory

GitHub Migration and Status

Guide Consumer

Handling of Limits in Property Model Library

How To Write A Simple Lexical Analyzer or Parser

Layout Library Theory and Implementation

Layout Terminology

List/Tree Widget

Locale-savvy isspace

Math Test

Message Box Widget

Modal Dialog Integration Kit

New Build Documentation

No virtual method “any” example

On-Disk File Monitor

Papers and Presentations

Perforce Open Source License








Picture View

Preset Widget

Prof. Lumsdaine Collaboration


Release Process

Representational Equality

Reveal Widget

Runtime Concepts

Segmented Iterators

Supplementary ASL Documentation

Tagged Overloading

To Do List



Uniform Parameters

Updating the public website

Using Perforce with the Adobe Source Libraries

Visual Editor (Expresso2)

Welcome to Wikirithms

Widget Style