[define_text_style header color $tbright $tbright $tbright font_attr bold font_size 72 font_name "Arial" left padding 10]
[define_text_style hyperlink color 100 100 255 font_attr italic font_size 40 font_name "Arial" left padding 10]
+[define_text_style code color $tbright $tbright $tbright font_size 40 font_name "monospace" left padding 20]
[load_image wasm_logo "https://webassembly.org/css/webassembly.svg"]
# ---------------------------------------------
[slide] [background $bbright $bbright $bbright]
-[rect color 0 0 0 x 0 w 100 y 40 h 20]
+[rect color 40 40 40 x 0 w 100 y 35 h 30]
+[rect color 0 0 0 x 0 w 100 y 40 h 20]
[text_style title font_size 96]
[y 50] Onyx
# Introduce what Onyx is, the design goals, the improvements over C, etc.
[slide]
-[rect color 40 40 40 x 8 w 84 y 0 h 100]
+[rect color 40 40 40 x 8 w 84 y 5 h 95]
[rect color 0 0 0 x 0 w 100 y 5 h 10]
[text_style header]
[y 12] What is Onyx?
[y 34] Some important design features:
[text_style inherit padding 15]
-▪ No dependence on other langauges
+▪ No dependence on other languages
▪ Fast compilation
▪ Easy to write
▪ Easy to read
# BRIEFLY introduce WASM and its capabilities
[slide]
-[rect color 40 40 40 x 8 w 84 y 0 h 100]
+[rect color 40 40 40 x 8 w 84 y 5 h 95]
[rect color 0 0 0 x 0 w 100 y 5 h 10]
[text_style header]
-[y 12] Brief aside: WebAssembly
+[y 12] Brief aside of WebAssembly
[text_style normal]
-[y 20] WebAssembly (WASM for short) is a new execution platform for the web.
+[y 20] WebAssembly (WASM) is a new execution platform for the web.
[y 30] It defines:
[text_style inherit padding 15]
▪ Arbitrary imports
▪ Safe indirect function calls
+[text_style normal]
+[y 60] Multiple environments:
+[text_style inherit padding 15]
+▪ Web browsers
+▪ WebAssembly Systems Interface (WASI)
+
[text_style normal centered]
-[y 75] For more information, you can check out,
+[y 80] For more information, you can check out,
[text_style hyperlink centered]
https://webassembly.org/
# High-level language features and design that make it super cozy to program in.
[slide]
-[rect color 40 40 40 x 8 w 84 y 0 h 100]
+[rect color 40 40 40 x 8 w 84 y 5 h 95]
[rect color 0 0 0 x 0 w 100 y 5 h 10]
[text_style header]
-[y 12] Design of Onyx
+[y 12] High-Level Design of Onyx
+
+[text_style normal font_attr italic font_size 44]
+[y 30] Declare anywhere
+[text_style normal padding 15]
+▪ Declaration order of global symbols does not affect compilation.
+▪ Removes clunky function prototypes in C.
+
+[text_style normal font_attr italic font_size 44]
+[y 50] Polymorphic procedures and structures
+[text_style normal padding 15]
+▪ Making procedures polymorphic is as easy as possible.
+▪ Polymorphic procedures are not 'special'.
[text_style normal font_attr italic font_size 44]
-[y 20] Declare anywhere.
-Polymorphic procedures and structures.
-Package system.
+[y 70] Package system
+[text_style normal padding 15]
+▪ Prevent cluttering of global scope.
+▪ Easily access symbols in a package.
+
+# ---------------------------------------------
+# Hello, World!
+
+[slide]
+[rect color 40 40 40 x 8 w 84 y 5 h 95]
+[rect color 0 0 0 x 0 w 100 y 5 h 10]
+[text_style header]
+[y 12] Obligatory 'Hello, World!' in Onyx
+
+[rect color 10 10 10 x 15 y 34 w 70 h 40]
+
+[text_style code]
+[y 40]
+ 1 #load "core/std"
+ 2
+ 3 use package core
+ 4
+ 5 main :: (args: [] cstr) {
+ 6 println("Hello, World!");
+ 7 }