|Ravenbrook is a software engineering consultancy. Our goal is to increase the value of the software industry to society.|
Ravenbrook provides information resources as part of its effort to improve the state of software engineering and so increase the value of the software industry to society.
Where possible, we publish complete open projects, so that others can see examples of good software engineering practice at work, and learn from our experience. These are real projects for real clients with real commercial applications. We don't dress them up for publication: this is what we really do.
The Memory Pool System is a very general, adaptable, flexible, reliable, and efficient memory management system. It permits the flexible combination of memory management techniques, supporting manual and automatic memory management, in-line allocation, finalization, weakness, and multiple concurrent co-operating incremental generational garbage collections. It also includes a library of memory pool classes implementing specialized memory management policies.
This project is a result of over 30 person-years of effort at Harlequin Limited by a team including the directors of Ravenbrook Limited. Our goal in making it an open source project is to make our hard work useful to the world, and to encourage consultancy and commercial licensing of the system.
MLWorks is an "industrial strength" Standard ML compiler and integrated development environment, developed by Harlequin in the 1990s. MLWorks is now an open source project, curated by Ravenbrook.
This is a project to improve Perforce Software's fast Software Configuration Management system by integrating it with third party defect tracking systems.
This project is an example of our emphasis on defining project goals, researching requirements, and analysing designs, before plunging into coding and getting committed to the wrong product. There's a balance between too little and too much of this, but we believe that most small organizations do too little. Mistakes in goals and requirements are much more costly than mistakes in code, so it's worth putting in the effort to define them and get them right.
$Id: //info.ravenbrook.com/project/www.ravenbrook.com/version/4.0/page/project/index.shtml#3 $