Edge Script Edge Shell esh David Simmons Smallscript
- Slides: 10
Edge. Script & Edge. Shell “esh” David Simmons Smallscript LLC, © 2019
Who am I? David Simmons – a “few years” developing languages What Where • Basic and 6812 assembler • NBS – NIST 1976 -1980 s • Object-C • • • NBS Net Switches • (Lisp, Forth, Snobol, APL, Unix systems, etc) • Agile Object System Family of V 8 like VMs • • Smalltalk since 1991 Apple. Script, and various other Apple/IBM Tech Object Databases S# since 1998 • . NET CLR, Mobile, and Other Runtimes • VB, Java. Script, C#, Power. Shell • Af. Box – Edge. S • Edge. Script, Edge. Shell • NBS Net U of MD NSF SRC QKS – 1990 s AOS, Apple -> Smallscript (various Linux) Microsoft Architect 2005 -2014 Smallscript 2015 -present
This talk is about something called Edge. S Built with Aos® Family Execution Engine Coff Box Technology, first released in 1992. Short form “Af. Box Technology”
How is it deployed and structured? • no install to run • no force linked so/dlls • single coff binary • default-name “afm. exe” • 12 MB working set • 8 MB shared • 30 ms start-to-exit • 6 ms+ url page serving Similar to Busy. Box for embedded Af. Box enables Edge. S to be delivered as a single multi-functional binary purpose built for developing and delivering software using IIo. T and Edge standards It is an alternative to using full-stack systems and their overhead
When run, what is the execution architecture? An activity could be concurrent things like a cmd or a web-page-request … … Activity (iocp) Task (fiber) In each Run. Space there always 2+ tasks • runspace dispatcher • iocp kernel scheduler … task-pools (language instance) Run. Space (Thread) … Af. Box EE (Process) engine Telemetry & sqlite stddbg Diagnostics stderr iocp workers os-host log io streams
Great. So what’s inside that makes it useful? ess E d g e S c r i p t TCL lex based extensible language cmd suite; scm-package based module file-system repo file system TCL Lex Core fossil-scm regex markdown sqlite xml http + sockets zip telemetry diagnostics NTFS … xjson console-shell api pthread api openssl PAL iocp rfs builtin filesystem Core System APIs OS Services Af. Box Execution Engine (EE) Edge. Script language, formerly TSL, is a TCL lex transpiler on Af. Box multi-language object architecture
Hmm, so how are programs organized? The hard stuff: package-module management is scm-based using sqlite workspace g i t s c m f o s s i l repo. afr sqlite • . afws (workspace db) • . af/ • repo. afr (symlink) bin/ • essc/cmds • etc/ • auth/ • certs/ • var/ • lib/ • opt/pkg • sites/default/ directory patterns adopt familiar names Web Server Site this-site, this-site. db, this. http, this. url, this. acl, this. session t h i s p l i s t this-activity versions, packages, updates, deployment, configuration, … this-io this-task cmd module opt/ modules … user-home. afconf. /bin/essc/cmds shell app ~/. af/ pkgs → repo branch : : global –> module [mixins ]
Enough talk, let’s experience code
Can I get a copy to try? • Within the next week or so • https: //edges. sm. st • alt: • https: //edgescript. io • https: //edgescript. dev
Closing Q&A