From 3933a8c4283ae00b572b95839d39df0fa8fd5fc2 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Thu, 18 Feb 2021 21:32:39 -0600 Subject: [PATCH] updated onyx presentation --- onyx.prez | 66 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 54 insertions(+), 12 deletions(-) diff --git a/onyx.prez b/onyx.prez index 5b38c68..8af1ebf 100644 --- a/onyx.prez +++ b/onyx.prez @@ -8,13 +8,15 @@ [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 @@ -28,7 +30,7 @@ # 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? @@ -38,7 +40,7 @@ [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 @@ -48,13 +50,13 @@ # 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] @@ -63,8 +65,14 @@ ▪ 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/ @@ -75,12 +83,46 @@ 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 } -- 2.25.1