Transcript Slide 1

”Open Source Code Management”
Morten Kromberg
Dyalog User Conference 2006
Version 1 October 2006
A Few Words about V11.0 Presentations Today
• As you may have noticed, Version 11.0 was a
little late... the BIG news about it is that it is now
”out” (for 32-bit Windows)
• 64-bit Windows, Windows Mobile 5, AIX, Linux
and Solaris all to follow
• 11.0 still has a few bugs but Dan, Nicolas and
Beta Testers have done a good job
• We are still ramping up our QA, and the next
release will be even better
• Due to the delay, there are few NEW ”technical
news sessions” this year
Web Applications at Dyalog ’06
A Few (more) Words about V11.0 Presentations Today
• At 13:45 today, Geoff Streeter is doing an
updated presentation on 64-bit Dyalog
• At 14:30, John Scholes is more or less
repeating last years presentation on nonOO language enhancements in v11
• The OO tutorial is being run as two full-day
workshops by Dan Baronet (Mon+Fri)
Web Applications at Dyalog ’06
A Few (more) Words about V11.0 Presentations Today
• I suspect John Daintree is going to show
some new uses of v11.0 to us tonight
• Nicolas Delcros is talking about his first
project at Dyalog at 14:30 today: An
experimental port of the Linux product to
• I will now try to present some ideas on
source code management which have
resulted from working with version 11.0
Web Applications at Dyalog ’06
• In version 11.0, Classes and Namespaces
have a ”script” form (returned by ⎕SRC)
• This means that a group of related code
(and constants) can easily be treated as a
• In particular, the script can be written to a
Unicode File
• This allows a number of new ways of
Web Applications at Dyalog ’06
Let’s take a look at a classical APL Application:
Web Applications at Dyalog ’06
Developing ”Components”
• LinReg is a nice application, but if I want to use it
as a component in my system(s), I have to copy
it around the place
• Maintaining the source in a single, easilyeditable location is tricky
• Source code management systems exist, but
are proprietary, closed ”black boxes”
• We propose a new beginning based on Unicode
text files
• Let’s examine how this might work...
Web Applications at Dyalog ’06
S A L T = Simple APL Library Toolkit
• SALT is an experimental tool, intended to
provide ”bare bones” support for source in
text files
• SALT uses an undocumented callback on
the Editor object to save changes
• As we have seen, SALT provides
rudimentary version control
• Now, imagine that we want to build a
stand-alone application...
Web Applications at Dyalog ’06
S A L T = Simple APL Library Toolkit
• We have seen that ”SALTED” files allow
us ”zero footprint” use of components
• We can embed our components in simple
stand-alone applications
• We can do simple versioning
• We can use non-APL development tools
like ”CompareIt!” if they support Unicode
• How else can we use our component?
Web Applications at Dyalog ’06
How Else Can we Use it?
• An Excel Graph?
Web Applications at Dyalog ’06
Other uses for Script Files...
• A Web Page?
• The ”Wild Web Server” is an HTTP Server
written entirely in Dyalog v11 by Stefano
• Support for ”APLS” files was added by
myself and Nicolas Delcros since
• It is perhaps the strongest testament to the
value of OO and APL code in scripts to
Web Applications at Dyalog ’06
Other uses for Script Files...
• How about a C# GUI application?
Web Applications at Dyalog ’06
More about SPICE
• A few more words about SPICE
• SPICE is an experimental command line
extension to the Dyalog Session
• It looks in ”classes\spice” and tries to load
all the ”.dyalog” files in this folder
• Let’s examine a sample SPICE command
• The intention is to make it really easy to
share development tools
Web Applications at Dyalog ’06
• Storing Dyalog source code in text
files has many benefits, in particular
• Easy integration with many popular
development tools
• We can e-mail code to each other
• We can easily share development
Web Applications at Dyalog ’06
• Scripts are especially practical when
combining APL with other tools, like
• ... Building web pages
• ... Embedding Dyalog within Visual
• ... A tool like SALT ensures that
changes get written back to the
source right away
Web Applications at Dyalog ’06
• As with the Object Oriented features
themselves, I would not recommend that
you immediately rewrite your system
• Please Experiment with it, at least look at
the samples we distribute
• In your own apps, it is most useful for
(new) components used in many places
• ... Or if a large team need to put
something together from small pieces
Web Applications at Dyalog ’06
• Source Code Management is an
important topic which we will continue
to focus on
• We aim to complete SALT & SPICE
by Christmas
• Even smoother integration with Visual
Studio will probably be a goal for 11.1
Web Applications at Dyalog ’06
Problems Left to Solve include...
• Dependencies between SALTed modules
(”using” statement”)
• Classes spread across more than one file?
• Making SALT extensible so people can
easily add commands or manage special
meta-data inline in scripts
• Should SALT versioning be withdrawn
(people can use other Version Control
Web Applications at Dyalog ’06
Call to Arms!
• Dyalog will invest in developing new
libraries of modular components
using an ”Open Source” model
• SALT, SPICE and the ”Wild Web
Server” are our pilot projects
• We invite you all to help provide a
new generation of tools for us, and for
future generations of APL users
Web Applications at Dyalog ’06
Our Commitment
• Dyalog aims to provide a web-based
repository for open-source projects
(probably using SubVersion)
• We will clean up, document and
publish ”recommended” solutions
• There will also be a ”less managed”
• Prepare to contribute!
Web Applications at Dyalog ’06
Thank You!
Thank You
(in advance )
Web Applications at Dyalog ’06