TryAPL is implemented using MiServer, a web server written in Dyalog, and is running on Dyalog Version 14.0 (Unicode, 64-bit) for Linux, using jQuery UI and CSS for some of the cool bits.
APL expressions entered by users are executed in a sandbox which prohibits the use of files and other features which might compromise the server.
Please help us improve TryAPL by reporting anomalies, suggestions, criticisms, and comments to email@example.com.
Function and Operator definitions are limited to single-line "dfns".
Only a limited number of system names may be used:
⎕CT ⎕IO ⎕RL ⎕PP ⎕TS ⎕NC ⎕NL
⎕R ⎕S ⎕FMT ⎕UCS ⎕VFI ⎕XML ⎕SIZE
Migration Level is fixed at 1.
The only system or user commands supported are:
)CLEAR Resets the session
]DISPLAY Displays structure
]BOXING ON or OFF Controls "boxed" display of nested output
)ERASE Erases names from the session
]STATE Session state and limits (see below)
]DEFS Display function definitions
)FNS )VARS )OPS List functions, variables, and operators
A size limit is imposed on the size of each user's state (variables, functions, etc). If cookies are enabled, definitions will persist for "a few days". An elapsed time limit is also imposed on any expression entered. Exceeding limits causes execution of the most recent expression to be abandoned and session state to be rolled back.
Inspiration: Joel Hough
Perspiration: Brian Becker
Style sheets and design: Brian McCormick
Sandbox framework: Morten Kromberg
"Safe" expression parser: Dan Baronet
System Admin and Linux Guru: Jason Rivers
Good ideas: John Scholes, Andy Shiers, Roger Hui, John Daintree.
Special thanks to Shaun Gilchrist for donating the domain name tryapl.org for use in this project.