From f4a04fdeb77c99ec5e031d26966f1e3f57b9e1e0 Mon Sep 17 00:00:00 2001 From: tgiphil Date: Fri, 19 Jan 2024 02:29:00 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20docs=20from=20@=20mosa/MOSA-Pr?= =?UTF-8?q?oject@2eeffe43249819413c472f225a61963fb7c0e32e=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .doctrees/environment.pickle | Bin 787571 -> 788299 bytes .doctrees/index.doctree | Bin 23675 -> 23937 bytes .doctrees/introduction.doctree | Bin 19043 -> 19305 bytes _sources/introduction.rst.txt | 3 ++- index.html | 3 ++- introduction.html | 3 ++- searchindex.js | 2 +- 7 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index db30c99b88a714ff26432a01a1cbd11b3395f9da..4e9a3596ee50834b3ec80ffc996affeb03a4e14f 100644 GIT binary patch delta 58354 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 k-}tLI9cgkD4^-}Bf!`QvxA61A`wg3PC delta 58242 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 GLG~YwJ3e9n diff --git a/.doctrees/introduction.doctree b/.doctrees/introduction.doctree index 82f2c8bcaa62f9ce083802e49f794397227ba464..b69e2297233ba9accf12d1d5aa802c9e3174d0ce 100644 GIT binary patch delta 707 zcmZXS&1(}u7>6_4j2~HugjgG-tx2q@-A%hmcC*=hr{-cQEq)bG6{8flTa=24P*7A5 zArMshi;7C|4^SZ`B6t)jy%ZI^2v#e25KmeVlwRu0VhY;JJIwR`=3(Y#zSPOLyM$h) zcTNn?(^1*oqsIDAO_u$GM@B9hGH%ITd&RzM^~?4BCbe>H4u`pQyl!S|n{qz9m2cpY z>UQtbwSN^ID9avq&;NMOX2c~favVQ2gYGtC)=`vH30Y|;q^OQsc!`|nJ<^F(Cgmt}TIinAeEavr5tS4HmnlSL#5V4d{@y^(wMvzS5iP4J}$rc+=%CJ%*kPP8o zszr;bUUDB(sW2wfjLoJGkOqqB5YicY8^q7FpDdz16GAH6I<=6g2%qgsQ-zIV8J?uX zuFl8N!^YtQ&DF^o9^@_wTPS>aS#VMI#7>m*eXebkeT10hqz)YR1o1rY7uqS_=f}JP z??kNA0$Y^fC=0EjP#9sRn+1bJn~Mc+8?l-nim#l51(vn4ycoR1S*g^vpDUf6D9=n! dT;QM1;+d-5uU5=%PV57RnBR&wR}Nk$e*h`i>(KxJ delta 620 zcmYjPOK1~O6wOUCR1;lwArkW$1BvyB1WkeTcIi{rBsJ0sRfN7Dkv18 zP!v6*xKR{0E<~_d6hY7;g=#CV-3TFeAtF+WP&eXxW20{FKI+pKW%XuuXsBntjFIVG7fcfBda<*!N%iDD?oclEdwt zOLPpav_=8k>p4Yrto5jLmLo#YRID*jI!PufNfEQsA(}*&JV@6$kJFO0&MeCxa9lQ7 z7gTB##2ICUW*t`%LkS6UnO(kj9+%5mPsi&_6ydComYkRkR;Cs{XH_J! zCjG%4t1c@**5`D0Iw6iYXey&7zEtf3aFAjvGZkE|s?9Rk5RtmqkpJ{1_;2!~IeR{mIaM zCurrent Status
  • 32-bit x86 (stable)

  • 64-bit x86 (x64) (in development)

  • -
  • A32 ARMv8 (in early development)

  • +
  • 32-bit ARMv8+ (in early development)

  • +
  • 64-bit ARMv8+ (in early development)

  • The MOSA compiler supports most object and non-object oriented code, including:

    The MOSA compiler supports most object and non-object oriented code, including:

      diff --git a/searchindex.js b/searchindex.js index e0cfe73334..bf56aafe5e 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["authors", "build-status", "command-line-arguments", "compiler-design", "compiler-optimizations", "compiler-transformations", "create-operating-system", "demos", "faq", "get-involved", "getting-started", "index", "introduction", "license", "mosa-project-structure", "optimization-options", "runtime-tables", "settings-options", "tool-compiler", "tool-debugger", "tool-explorer", "tool-launcher", "tool-launcher-console", "unit-tests", "usb-flash-drive-installation"], "filenames": ["authors.rst", "build-status.rst", "command-line-arguments.rst", "compiler-design.rst", "compiler-optimizations.rst", "compiler-transformations.rst", "create-operating-system.rst", "demos.rst", "faq.rst", "get-involved.rst", "getting-started.rst", "index.rst", "introduction.rst", "license.rst", "mosa-project-structure.rst", "optimization-options.rst", "runtime-tables.rst", "settings-options.rst", "tool-compiler.rst", "tool-debugger.rst", "tool-explorer.rst", "tool-launcher.rst", "tool-launcher-console.rst", "unit-tests.rst", "usb-flash-drive-installation.rst"], "titles": ["Authors", "<no title>", "Command Line Arguments", "Compiler Design", "Compiler Optimizations", "Compiler Transformations", "Create your own operating system", "Demos", "Frequently Asked Questions (FAQs)", "Get Involved", "Getting Started", "Introduction", "Introduction", "License", "MOSA Project Structure", "Optimization Options", "MOSA Runtime Tables", "Settings Options", "MOSA Compiler", "MOSA Debugger", "MOSA Explorer", "MOSA Launcher", "MOSA Launcher Console", "Unit Tests", "USB Flash Drive Installation"], "terms": {"The": [0, 2, 3, 5, 6, 7, 8, 10, 11, 12, 18, 19, 20, 21, 22, 23], "mosa": [0, 2, 3, 5, 6, 7, 9, 10, 11, 12, 13, 15, 17, 23, 24], "project": [0, 6, 7, 9, 10, 11, 12, 13, 18, 22, 23], "i": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21, 22, 23, 24], "team": [0, 9, 11], "effort": [0, 8], "we": [0, 6, 8, 9, 13, 24], "want": [0, 6, 9, 10], "recogn": [0, 4], "everyon": 0, "": [0, 2, 5, 6, 8, 9, 10, 11, 14, 17, 18], "contribut": [0, 8, 13], "list": [0, 6, 11, 12, 13, 17, 18, 19, 20, 21, 22, 24], "all": [0, 2, 3, 4, 6, 8, 9, 13, 14, 17, 22, 23, 24], "contributor": [0, 13], "our": [0, 6, 8, 9], "sourc": [0, 3, 5, 9, 10, 11, 12, 13, 17, 19], "code": [0, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 17, 19, 23], "repositori": [0, 10, 14], "view": [0, 19, 20], "credit": 0, "txt": 0, "file": [0, 3, 5, 6, 14, 17, 18], "If": [0, 6, 9, 10, 14, 17], "you": [0, 6, 7, 8, 9, 10, 14, 24], "have": [0, 4, 6, 8, 9, 14], "your": [0, 8, 9, 10, 24], "name": [0, 2, 5, 7, 13, 17, 20], "pleas": [0, 9], "add": [0, 5, 6, 10], "submit": [0, 13], "pull": [0, 14], "request": [0, 14], "serv": [2, 14], "shortcut": [2, 4], "common": [2, 3, 8, 11, 12, 14, 20, 21, 22, 24], "set": [2, 6, 10, 23], "option": [2, 4, 10, 11, 12], "us": [2, 3, 6, 7, 8, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21, 22, 24], "tool": [2, 9, 10, 17, 18, 19, 20, 21, 22, 24], "specif": [2, 3, 5, 6, 8, 13, 14, 17, 20], "mai": [2, 4, 10, 13, 17, 24], "also": [2, 3, 5, 6, 8, 14, 20], "specifi": [2, 17, 20], "shorthand": 2, "version": [2, 17, 18, 21, 22, 24], "For": [2, 6, 14], "exampl": [2, 6, 11, 12, 14, 22], "compil": [2, 6, 8, 10, 11, 12, 15, 19, 20, 21, 22, 23], "outputfil": [2, 17], "baremet": [2, 6, 18, 19, 20, 21, 22], "helloworld": [2, 18, 19, 20, 21, 22], "x86": [2, 6, 10, 11, 12, 14, 18, 19, 20, 21, 22], "bin": [2, 10, 17, 18, 22, 23], "pass": [2, 4, 17, 23], "follow": [2, 5, 6, 10, 11, 12, 13, 23, 24], "two": [2, 3, 4, 5, 8], "below": [2, 6, 10, 24], "ar": [2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 17, 20, 21, 22, 24], "avail": [2, 5, 10, 15, 18, 19, 20, 21, 22], "valu": [2, 4, 11, 12, 17], "none": [2, 6, 17], "sourcefil": [2, 17], "o": [2, 6, 10, 18], "thread": [2, 11, 12, 17], "multithread": [2, 17], "true": [2, 5, 17], "off": [2, 21, 22], "fals": [2, 5], "maxthread": [2, 17], "base": [2, 4, 5, 8, 9, 10, 11, 12, 17], "baseaddress": [2, 17], "scanner": [2, 17], "methodscann": [2, 17], "binari": [2, 3, 8, 13, 14, 17, 18, 23], "path": [2, 24], "searchpath": [2, 17], "inlin": [2, 4, 11, 12, 17], "optim": [2, 3, 5, 11, 12, 14, 22], "ssa": [2, 4, 11, 12, 17], "sccp": [2, 17], "basic": [2, 4, 6, 7, 8, 14, 17], "window": [2, 8, 17, 23], "explicit": [2, 17], "long": [2, 4], "expans": [2, 4, 11, 12], "longexpans": [2, 17], "twopass": [2, 17], "number": [2, 4, 11, 12, 17, 23], "valuenumb": [2, 17], "loop": [2, 11, 12, 17], "invari": [2, 11, 12, 17], "motion": [2, 11, 12, 17], "loopinvariantcodemot": [2, 17], "platform": [2, 3, 4, 8, 11, 12, 14, 17, 18, 24], "bit": [2, 4, 6, 11, 12, 17], "tracker": [2, 4, 17], "bittrack": [2, 17], "devirtu": [2, 4, 11, 12, 17], "level": [2, 3, 17, 20], "maximum": [2, 17], "reduces": 2, "reducecodes": [2, 17], "x64": [2, 11, 12, 17], "arm32": [2, 17], "arm64": [2, 17], "debug": [2, 19], "output": [2, 6, 17, 18], "inform": [2, 6, 7, 17], "nasm": [2, 17], "compilerdebug": [2, 17], "nasmfil": [2, 17], "default": [2, 17, 20], "asm": [2, 17], "asmfil": [2, 17], "map": [2, 17], "mapfil": [2, 17], "counter": [2, 17], "countersfil": [2, 17], "time": [2, 4, 6, 10, 17, 23], "compilertimefil": 2, "debugfil": [2, 17], "inlinedfil": [2, 17], "hash": [2, 17], "prelinkhashfil": [2, 17], "postlinkhashfil": [2, 17], "filter": [2, 5, 17, 20], "countersfilt": [2, 17], "check": [2, 4, 6, 11, 12, 17, 21, 22, 23], "fullcheckmod": [2, 17], "interrupt": [2, 6, 13, 17], "method": [2, 4, 5, 6, 11, 12, 17, 18, 19, 20, 22], "interruptmethodnam": [2, 17], "linker": [2, 8], "emit": [2, 3, 17, 23], "symbol": [2, 17], "reloc": [2, 17], "staticreloc": [2, 17], "static": [2, 4, 6, 11, 12, 17], "dwarf": [2, 17], "explor": 2, "debugdiagnost": [2, 17], "autostart": [2, 21, 22], "start": [2, 6, 7, 9, 17, 18, 21, 22], "launcher": [2, 10, 24], "autoexit": 2, "exit": [2, 17], "autolaunch": 2, "launch": [2, 6, 7, 8, 10, 17, 19, 20, 21, 22], "emul": [2, 19], "qemu": [2, 10, 11, 12, 17, 19, 22], "vmware": [2, 17], "boch": [2, 17], "displai": [2, 7, 17, 23], "memori": [2, 7, 17, 19], "gdb": [2, 19], "timeout": [2, 17], "maxruntim": [2, 17], "serial": [2, 17, 22], "bootopt": [2, 17], "serialdebug": 2, "svga": [2, 17], "virtio": [2, 17], "vga": 2, "imag": [2, 22, 24], "imagefil": [2, 17], "destin": [2, 17], "folder": [2, 6, 7, 17], "dest": 2, "vhd": [2, 14, 17], "format": [2, 5, 17], "img": [2, 17, 22, 24], "vdi": [2, 14, 17], "vmdk": [2, 17], "block": [2, 4, 11, 12, 24], "diskblock": 2, "volum": 2, "label": 2, "volumelabel": 2, "mbr": [2, 14], "masterbootrecordfil": 2, "boot": [2, 7, 14, 17, 24], "bootblockfil": 2, "includ": [2, 5, 7, 11, 12, 13, 14, 17, 21, 22, 24], "filesystem": [2, 17], "rootinclud": [2, 17], "multiboot": 2, "v2": [2, 17], "connect": [2, 9, 11, 17, 24], "pipe": [2, 17], "tcpclient": [2, 17], "tcpserver": [2, 17], "port": [2, 6, 10, 17], "host": [2, 14, 17], "video": [2, 17], "bio": [2, 17], "extens": [2, 23], "vbe": [2, 17], "width": [2, 17], "height": [2, 17], "debugg": [2, 8, 11, 12], "advanc": 2, "plug": [2, 17], "korlib": 2, "plugkorlib": [2, 17], "test": [2, 14, 24], "oper": [2, 4, 5, 8, 9, 11, 12, 13, 17], "system": [2, 8, 9, 10, 11, 12, 13, 14, 17, 20, 22, 24], "osnam": 2, "breakpoint": [2, 17, 19], "breakpointfil": [2, 17], "watch": [2, 8, 17], "watchfil": [2, 17], "unit": [2, 14], "maxerror": [2, 17], "unittest": [2, 17, 23], "o0": 2, "0": [2, 10, 18, 22, 23], "1": [2, 22], "o1": 2, "o2": 2, "o3": 2, "5": 2, "o4": 2, "o5": 2, "o6": 2, "o7": 2, "10": 2, "o8": 2, "o9": 2, "15": 2, "onon": 2, "omax": [2, 22, 23], "20": 2, "osiz": 2, "3": [2, 23], "ofast": 2, "next": [2, 6], "framework": [3, 5, 6, 8, 11, 12], "around": [3, 6], "each": [3, 5, 6, 11, 12, 17, 20], "multipl": [3, 5], "stage": [3, 4, 14, 17, 20], "fundament": 3, "part": [3, 5, 6, 8], "essenti": [3, 6], "cil": [3, 8, 14], "thi": [3, 4, 5, 6, 8, 9, 10, 11, 13, 14, 16, 17, 21, 22], "allow": [3, 6], "other": [3, 4, 6, 7, 9, 10, 13, 24], "potenti": [3, 8, 9, 14], "frontend": 3, "chosen": 3, "ones": [3, 6, 24], "primari": [3, 17], "execut": [3, 4, 5, 10, 11, 12, 17, 19, 20, 21, 23, 24], "step": [3, 6, 24], "necessari": [3, 5, 10], "an": [3, 4, 5, 6, 8, 9, 11, 12, 23], "applic": [3, 7, 8, 10, 11, 12, 18, 19, 20, 21, 22], "build": [3, 6, 8, 21, 22, 24], "link": [3, 17, 18, 22, 24], "final": [3, 6, 8, 10, 11, 12, 14, 18], "object": [3, 4, 11, 12, 17, 18], "One": 3, "singl": [3, 4, 6, 11, 12, 17], "progress": [3, 24], "lower": 3, "high": [3, 11, 12], "instruct": [3, 4, 14, 17, 20], "opcod": 3, "target": [3, 10, 11, 12], "least": [3, 6], "onc": [3, 6, 8, 21], "can": [3, 4, 6, 7, 9, 10, 14, 17, 19, 20, 21], "group": 3, "one": [3, 4, 6, 9, 10, 14, 24], "more": [3, 4, 6, 8, 9, 10, 14], "categori": [3, 14], "decod": 3, "creat": [3, 8, 10, 17, 24], "stream": [3, 20], "from": [3, 9, 13, 14, 19, 20, 21], "net": [3, 10, 11, 12, 14, 18], "transform": [3, 4, 14, 17, 20], "between": 3, "variou": [3, 4, 7, 21], "usual": [3, 24], "higher": 3, "intend": 3, "faster": [3, 4], "regist": [3, 4, 6, 10, 11, 12, 19], "alloc": [3, 4, 11, 12], "virtual": [3, 4, 11, 12, 16, 17, 19, 21, 22, 24], "physic": 3, "linear": 3, "v": 3, "express": [3, 4, 5, 8, 13], "tree": [3, 5], "machin": [3, 16, 17, 19, 21, 22], "There": [3, 9, 24], "sever": [3, 24], "befor": [3, 17, 24], "gener": [3, 11, 12, 14, 17, 22], "These": [3, 5, 8], "languag": 3, "ir": [3, 5, 14], "mir": 3, "dure": [3, 8, 17], "repres": [3, 5, 16], "class": [3, 5, 6, 14], "move": [3, 5], "forward": 3, "modifi": [3, 10], "In": [3, 4, 6, 8, 10, 19, 20, 21], "some": [3, 6, 7, 9, 10, 14, 17, 20], "case": [3, 14, 20], "directli": [3, 8], "replac": [3, 4, 5, 14], "sequenc": 3, "provid": [3, 6, 8, 9, 11, 12, 13, 14, 17], "appropri": 3, "constant": [4, 5, 11, 12, 17], "fold": [4, 5, 11, 12, 17], "propag": [4, 11, 12, 17], "process": [4, 6, 8, 14, 17, 21, 22], "evalu": 4, "rather": 4, "than": [4, 6], "comput": 4, "them": [4, 5, 6, 14], "runtim": [4, 6, 9, 17], "strength": [4, 5, 11, 12, 17], "reduct": [4, 5, 11, 12, 17], "where": [4, 5, 8, 14], "expens": 4, "equival": 4, "less": 4, "dead": [4, 11, 12], "elimin": [4, 11, 12], "remov": 4, "which": [4, 5, 6, 8, 9, 14], "doe": [4, 7, 14, 21, 22, 24], "affect": 4, "result": [4, 5, 23], "program": [4, 5], "assign": [4, 11, 12, 17], "form": [4, 13, 17], "onli": [4, 6, 9, 10, 14, 24], "definit": 4, "while": [4, 6, 8, 9, 14, 24], "immedi": [4, 17, 21, 22], "itself": [4, 9], "enabl": [4, 17, 22], "opportun": 4, "simultan": 4, "simplifi": 4, "improv": 4, "spars": [4, 11, 12, 17], "condit": [4, 11, 12, 13, 17], "appli": 4, "after": [4, 6, 17], "convers": [4, 8], "It": [4, 6, 8, 14], "find": [4, 5, 6, 24], "thu": [4, 6, 8], "global": [4, 11, 12, 17], "techniqu": 4, "determin": [4, 24], "when": [4, 17, 20], "preserv": 4, "same": 4, "semant": 4, "call": [4, 5, 6, 17, 19], "site": 4, "bodi": 4, "perform": [4, 8], "becaus": [4, 6, 10, 14], "store": 4, "place": [4, 6], "argument": [4, 6, 18, 19, 20, 21, 22], "onto": [4, 24], "stack": [4, 17, 19], "jump": 4, "anoth": [4, 6, 8, 17], "locat": [4, 5], "track": 4, "known": 4, "state": 4, "rang": 4, "thru": 4, "reorder": [4, 11, 12], "organizaz": 4, "maxim": 4, "fall": 4, "through": 4, "branch": 4, "greedi": [4, 11, 12], "cpu": [4, 22], "live": 4, "spill": 4, "weight": 4, "64": [4, 11, 12, 17], "32": [4, 11, 12, 17, 22], "without": [4, 13], "nativ": [4, 11, 12, 14, 19], "further": 4, "translat": [4, 5], "happen": 4, "so": [4, 6], "produc": 4, "direct": [4, 13, 17], "instead": [4, 6, 7, 10], "even": [4, 13], "null": [4, 6, 11, 12, 22], "refer": 4, "never": 4, "caus": [4, 13, 17], "again": 4, "possibl": [4, 13], "unlock": 4, "addit": [4, 14, 19, 20, 21], "utilit": [5, 19], "datebas": 5, "type": [5, 8, 14, 17, 24], "describ": [5, 20], "json": 5, "text": 5, "make": [5, 6, 7, 9, 14], "easi": 5, "new": [5, 6, 8, 9, 10, 11, 13, 14, 18], "A": [5, 6, 13, 22, 24], "special": [5, 13], "parser": 5, "util": [5, 23, 24], "sourcecodegener": 5, "read": [5, 9], "c": [5, 13, 22], "data": [5, 13, 17, 24], "tranform": 5, "ha": [5, 8, 14, 23], "three": [5, 7], "rule": 5, "requir": [5, 6, 8, 14], "order": [5, 6, 8, 10, 14], "attribut": 5, "operand": 5, "must": [5, 13, 14], "satifi": 5, "And": [5, 6], "here": [5, 6, 10, 14, 15, 17, 20, 21, 22, 24], "simpl": [5, 14], "familynam": 5, "constantfold": 5, "add32": 5, "subnam": 5, "b": [5, 24], "isresolvedconst": 5, "move32": 5, "to32": 5, "first": [5, 6, 8, 14], "four": 5, "field": 5, "uniqu": 5, "public": 5, "seal": 5, "basetransform": 5, "irinstruct": 5, "overrid": 5, "bool": 5, "match": 5, "context": 5, "operand1": 5, "return": [5, 6], "operand2": 5, "void": [5, 6], "var": [5, 6], "t1": 5, "t2": 5, "e1": 5, "createconst": 5, "setinstruct": 5, "rewrit": 5, "reduc": 5, "and32": 5, "not32not32": 5, "not32": 5, "or32": 5, "power": 5, "cheaper": 5, "shift": 5, "strengthreduct": 5, "mulsigned32": 5, "bypoweroftwo": 5, "x": [5, 22], "ispoweroftwo32": 5, "iszero": 5, "ison": 5, "shiftleft32": 5, "getpoweroftwo": 5, "To": [5, 6], "see": [5, 6, 11, 12, 18, 19, 20, 21, 22], "region": 5, "now": [6, 10, 24], "ve": [6, 10], "learn": [6, 10, 14], "either": [6, 9, 10], "pre": 6, "exist": [6, 24], "demo": [6, 10, 14, 22], "ll": [6, 10, 24], "teach": 6, "how": 6, "interest": [6, 8, 9], "let": 6, "get": [6, 24], "don": [6, 10], "t": [6, 10, 11, 12], "need": [6, 9, 10, 14], "guid": 6, "re": [6, 8, 10, 14], "kernel": [6, 10, 11, 12], "templat": [6, 10], "those": [6, 7, 8, 14], "who": 6, "wish": [6, 24], "about": [6, 9, 10, 14], "intern": [6, 14, 16, 17], "But": [6, 14], "work": 6, "idea": 6, "modular": [6, 11, 12], "its": [6, 7, 8, 13, 14], "sort": 6, "kei": 6, "sell": 6, "point": [6, 8], "close": 6, "architectur": [6, 10], "mean": [6, 9], "quit": 6, "difficult": 6, "might": 6, "think": 6, "take": [6, 9, 23], "devic": [6, 7, 11, 12, 14, 24], "driver": [6, 11, 12, 14], "typic": 6, "talk": [6, 8], "rest": 6, "print": 6, "standard": [6, 8, 14], "consol": [6, 18, 21], "write": 6, "etc": [6, 14], "abl": [6, 8, 14], "do": [6, 14, 24], "hardwar": [6, 11, 12, 24], "abstract": 6, "layer": 6, "interfac": [6, 8, 22], "commun": [6, 9], "hal": 6, "wai": [6, 8, 9, 10, 11, 13, 24], "end": 6, "user": [6, 22], "reason": 6, "inherit": 6, "basehardwareabstract": 6, "coupl": [6, 14], "commonli": 6, "doesn": 6, "just": [6, 10, 24], "seen": 6, "look": [6, 9], "structur": 6, "initi": 6, "would": [6, 7], "setup": [6, 18], "stuff": [6, 14], "idt": 6, "setinterrupthandl": 6, "servic": [6, 13], "most": [6, 9, 11, 12, 20, 21, 22, 24], "deviceservic": 6, "via": [6, 10, 14, 18], "respect": [6, 7], "import": [6, 8], "like": [6, 7, 8, 14, 17], "pci": [6, 14], "control": [6, 8, 19], "pcservic": 6, "shut": 6, "down": 6, "reboot": 6, "amongst": 6, "certainli": 6, "haven": [6, 10], "know": 6, "made": [6, 20], "pretti": 6, "self": 6, "explanatori": 6, "howev": [6, 13, 14], "omit": 6, "certain": [6, 20], "sinc": 6, "simpli": [6, 10], "entri": 6, "could": 6, "partitionservic": 6, "yet": [6, 8, 10], "partit": [6, 17], "At": 6, "finish": 6, "everyth": [6, 10], "readi": 6, "go": 6, "seem": [6, 14], "daunt": [6, 14], "touch": 6, "anymor": 6, "With": 6, "being": [6, 8], "said": 6, "assum": [6, 10], "done": [6, 24], "well": 6, "almost": [6, 14], "what": [6, 14], "won": 6, "cover": [6, 14], "onlin": 6, "privat": 6, "processinterrupt": 6, "uint": 6, "errorcod": 6, "0x20": 6, "0x30": 6, "devicesystem": 6, "byte": 6, "ani": [6, 7, 8, 9, 10, 13, 14], "incom": 6, "right": [6, 13], "real": [6, 24], "servicemanag": 6, "manag": [6, 8, 9, 13], "care": [6, 9, 24], "u": [6, 9, 11], "pcicontrollerservic": 6, "pcideviceservic": 6, "addservic": 6, "complet": [6, 18, 22], "out": [6, 8, 13, 14, 21, 22], "under": [6, 11, 13, 18, 19, 24], "line": [6, 10, 23], "wonder": 6, "unfortun": 6, "too": [6, 24], "depth": 6, "coolworld": 6, "svgaworld": 6, "thei": [6, 14], "differ": 6, "much": [6, 14], "suffic": 6, "x86system": 6, "depend": [6, 8, 14], "devicedriv": 6, "getdevicedriverregistryentri": 6, "registerdevicedriv": 6, "detail": 6, "ask": 6, "yourself": [6, 9], "should": [6, 10], "parent": 6, "That": 6, "current": [6, 10, 14, 22, 24], "actual": [6, 7], "createpartitiondevic": 6, "ata": 6, "id": [6, 10], "ahci": 6, "sata": 6, "nvme": 6, "alwai": 6, "question": 6, "hesit": 6, "discord": [6, 8, 9, 11], "http": [6, 10], "gg": 6, "trnmn3npsv": 6, "server": [6, 8, 9], "happili": 6, "answer": [6, 8], "d": [6, 10], "demostr": 7, "capabl": 7, "script": [7, 23], "suggest": 7, "gpu": 7, "featur": [7, 8, 14], "offer": [7, 14], "nice": 7, "graphic": [7, 22], "classic": 7, "rendit": 7, "hello": 7, "world": 7, "except": [7, 9, 11, 12, 14], "word": 7, "implement": [7, 8, 9, 14], "shell": 7, "few": [7, 10, 14, 23], "command": [7, 10, 24], "usag": 7, "come": [8, 14], "up": [8, 10, 14], "allianc": [8, 13], "wa": 8, "origin": 8, "sharpo": 8, "toolset": 8, "As": [8, 10], "share": 8, "lot": [8, 14], "groundwork": 8, "aim": [8, 14], "foster": 8, "portabl": [8, 14], "both": 8, "anyon": 8, "develop": [8, 9, 11, 12, 24], "keep": 8, "mind": 8, "bsd": [8, 9, 11, 13, 18], "licens": [8, 9, 18], "though": [8, 9], "entir": [8, 21, 22, 24], "along": 8, "publish": 8, "ecma": 8, "own": 8, "pluggabl": 8, "algorithm": 8, "veri": 8, "flexibl": 8, "usabl": 8, "research": 8, "design": 8, "toolkit": 8, "plugin": 8, "visual": [8, 10, 20], "studio": [8, 10], "instal": [8, 10], "integr": [8, 14], "signific": 8, "introduc": 8, "second": [8, 17], "break": 8, "microsoft": [8, 10], "comparison": 8, "run": [8, 17, 23], "assembli": 8, "yasm": 8, "recent": 8, "been": [8, 10], "stabil": 8, "noth": 8, "opinion": 8, "crossdev": 8, "help": [9, 14, 23], "support": [9, 11, 12, 14], "join": 9, "download": [9, 24], "document": [9, 13], "interact": [9, 11], "achiev": 9, "goal": 9, "fix": 9, "bug": 9, "report": 9, "issu": 9, "open": [9, 11, 12, 24], "heard": 9, "area": 9, "accept": [9, 13], "inspect": 9, "proprietari": 9, "reflector": 9, "ildasm": 9, "similar": [9, 10, 23], "plan": 9, "access": 9, "relat": [9, 14], "environ": 9, "regard": 9, "patent": 9, "restrict": 9, "compat": [9, 13], "mit": [9, 13], "gnu": [9, 13, 17], "incompar": 9, "polici": 9, "On": [10, 23], "7": 10, "2022": 10, "17": 10, "4": [10, 18, 22, 23], "newer": 10, "git": 10, "ubuntu": 10, "22": 10, "04": 10, "quickli": 10, "packag": 10, "wget": 10, "q": 10, "com": 10, "config": 10, "prod": 10, "deb": 10, "sudo": [10, 24], "dpkg": 10, "core": [10, 14], "sdk": 10, "apt": 10, "univers": 10, "updat": 10, "y": 10, "dotnet": [10, 23], "intal": 10, "page": [10, 14], "easiest": 10, "mosakrnl": 10, "mymosakernel": 10, "cd": [10, 24], "cross": [10, 11, 12], "newli": 10, "gui": [10, 19, 20, 21], "copi": [10, 24], "directori": [10, 17, 22, 24], "dll": [10, 18, 19, 20, 21, 22, 23], "github": 10, "solut": 10, "sln": 10, "success": [10, 17], "show": [10, 17, 23], "messag": [10, 17], "warn": 10, "ignor": 10, "succeed": 10, "error": [10, 17], "elaps": [10, 23], "00": 10, "01": 10, "48": 10, "select": [10, 21, 24], "choic": 10, "perhap": 10, "softwar": [11, 12, 13, 24], "within": [11, 12, 16, 17], "hypervisor": [11, 12], "bare": [11, 12], "metal": [11, 12], "consist": [11, 12], "qualiti": [11, 12], "multi": [11, 12], "small": [11, 12, 17], "stabl": [11, 12], "a32": [11, 12], "armv8": [11, 12], "earli": [11, 12], "non": [11, 12], "orient": [11, 12], "deleg": [11, 12], "paramet": [11, 12, 19, 24], "handl": [11, 12, 17], "try": [11, 12], "catch": [11, 12], "seek": [11, 12], "subexpess": [11, 12], "descript": [11, 12, 17], "copyright": [13, 18], "2023": [13, 18], "reserv": 13, "redistribut": 13, "modif": 13, "permit": 13, "met": 13, "retain": 13, "abov": [13, 14, 24], "notic": 13, "disclaim": 13, "reproduc": 13, "materi": 13, "distribut": 13, "neither": 13, "nor": 13, "endors": 13, "promot": 13, "product": 13, "deriv": 13, "prior": [13, 17], "written": [13, 24], "permiss": 13, "BY": 13, "THE": 13, "holder": 13, "AND": 13, "AS": 13, "OR": 13, "impli": 13, "warranti": 13, "BUT": 13, "NOT": 13, "limit": 13, "TO": 13, "OF": 13, "merchant": 13, "fit": [13, 14], "FOR": 13, "particular": 13, "purpos": 13, "IN": 13, "NO": 13, "event": 13, "shall": 13, "owner": 13, "BE": 13, "liabl": 13, "indirect": 13, "incident": 13, "exemplari": 13, "consequenti": 13, "damag": 13, "procur": 13, "substitut": [13, 24], "good": 13, "loss": 13, "profit": 13, "busi": 13, "ON": 13, "theori": 13, "liabil": 13, "whether": [13, 14], "contract": 13, "strict": 13, "tort": 13, "neglig": 13, "otherwis": [13, 17], "aris": 13, "IF": 13, "advis": 13, "SUCH": 13, "x11": 13, "note": [13, 17], "exclus": 14, "explain": 14, "isa": 14, "usb": 14, "contain": 14, "kind": 14, "miscellean": 14, "fulli": 14, "outsid": 14, "constrainedpoint": 14, "great": 14, "header": 14, "footer": 14, "dependeci": 14, "fat32": [14, 17], "futur": [14, 17], "mainlin": 14, "agnost": 14, "function": 14, "librari": 14, "miss": 14, "highli": 14, "custom": [14, 17], "benefit": 14, "unimpl": 14, "built": 14, "ident": 14, "pointer": 14, "gc": 14, "section": [14, 17], "automat": [14, 17, 23], "trigger": 14, "main": 14, "commit": 14, "manual": 14, "playground": 14, "chang": [14, 24], "strip": 14, "mention": 14, "probabl": 14, "miscellan": 14, "cite": 14, "diagram": 16, "address": 17, "initialstackaddress": 17, "intial": 17, "grow": 17, "downward": 17, "tracelevel": 17, "trace": 17, "experiment": 17, "filenam": 17, "prebuilt": 17, "vn": 17, "maximun": 17, "review": 17, "aggressivemaximum": 17, "mark": 17, "explicitli": 17, "twice": 17, "aggress": 17, "exclud": 17, "favor": 17, "smaller": 17, "size": 17, "elf": 17, "elf32": 17, "elf64": 17, "shortsymbolnam": 17, "short": 17, "customsect": 17, "sectionnam": 17, "search": 17, "defaultfold": 17, "temporaryfold": 17, "temporari": 17, "statist": 17, "gather": 17, "compiletimefil": 17, "disassembli": 17, "were": [17, 20], "valid": [17, 23], "upon": 17, "diagnost": 17, "captur": 17, "corelib": 17, "vm": 17, "monitor": 17, "failur": [17, 23], "vritual": 17, "fat12": 17, "fat16": 17, "amount": 17, "mb": 17, "mode": 17, "std": 17, "cirru": 17, "ip": 17, "pipenam": 17, "framebuff": 17, "apploc": 17, "qemux86": 17, "i386": [17, 22], "qemux64": 17, "qemuarm32": 17, "qemuarm64": 17, "qemubio": 17, "qemuimg": 17, "vmwareworkst": 17, "vmworkstat": 17, "vmwareplay": 17, "vmplayer": 17, "ndisasm": 17, "mkisof": 17, "string": [17, 20], "abort": 17, "millisecond": 17, "retri": 17, "maxattempt": 17, "restart": 17, "attempt": 17, "invok": 18, "2": 18, "pars": 18, "input": 18, "38": 18, "41": 18, "42": 18, "79": 18, "88": 18, "89": [18, 22], "92": 18, "watchpoint": 19, "frame": 19, "hood": 19, "highest": 20, "respresent": 20, "lowest": 20, "log": 20, "why": 20, "get_length": 20, "autom": [21, 22], "quick": 22, "tgiphil": 22, "sec": [22, 23], "94": 22, "56": 22, "59": 22, "66": 22, "ex": [22, 24], "l": [22, 24], "qemu32": 22, "sse4": 22, "hda": 22, "phil": 22, "appdata": 22, "local": 22, "temp": [22, 24], "correct": 23, "runallunittestswithpaus": 23, "bat": 23, "linux": 23, "minut": 23, "modern": 23, "pc": [23, 24], "screen": 23, "last": 23, "total": 23, "fail": 23, "95": 23, "68164": 23, "skip": 23, "68168": 23, "successfulli": 23, "inde": 24, "put": 24, "ventoi": 24, "rufu": 24, "dd": 24, "unoffici": 24, "disk": 24, "prompt": 24, "subfold": 24, "eras": 24, "lost": 24, "Be": 24, "mistyp": 24, "wrong": 24, "corrupt": 24, "hard": 24, "storag": 24, "proce": 24, "unless": 24, "understand": 24, "found": 24, "previou": 24, "harddiskx": 24, "partitionx": 24, "bootimag": 24, "512": 24, "wait": 24, "until": 24, "disconnect": 24, "tmp": 24, "fdisk": 24, "dev": 24, "xxxx": 24, "statu": 24}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"author": 0, "command": [2, 18, 19, 20, 21, 22], "line": [2, 18, 19, 20, 21, 22], "argument": 2, "compil": [3, 4, 5, 14, 17, 18], "design": 3, "type": 3, "system": [3, 6], "pipelin": 3, "method": 3, "intermedi": 3, "represent": 3, "optim": [4, 15, 17], "transform": 5, "exampl": 5, "1": 5, "2": 5, "3": 5, "function": 5, "creat": 6, "your": 6, "own": 6, "oper": 6, "introduct": [6, 11, 12], "theori": 6, "implement": 6, "demo": 7, "graphicalworld": 7, "helloworld": 7, "frequent": 8, "ask": 8, "question": 8, "faq": 8, "what": 8, "doe": 8, "mosa": [8, 14, 16, 18, 19, 20, 21, 22], "stand": 8, "who": 8, "can": 8, "join": [8, 11], "kind": 8, "net": 8, "runtim": [8, 14, 16], "avail": 8, "how": 8, "i": 8, "cosmo": 8, "project": [8, 14], "differ": 8, "than": 8, "ar": 8, "work": 8, "togeth": 8, "get": [9, 10], "involv": 9, "contribut": 9, "process": 9, "job": 9, "rule": 9, "start": 10, "prerequisit": 10, "window": [10, 24], "linux": [10, 24], "all": 10, "platform": 10, "download": 10, "nuget": 10, "clone": 10, "build": 10, "manual": 10, "current": [11, 12], "statu": [11, 12], "discuss": 11, "licens": [11, 13], "structur": 14, "baremet": 14, "devicedriv": 14, "devicesystem": 14, "filesystem": 14, "kernel": 14, "korlib": 14, "plug": 14, "tool": 14, "util": 14, "unittest": 14, "workspac": 14, "other": 14, "option": [15, 17, 18, 19, 20, 21, 22], "tabl": 16, "set": 17, "linker": 17, "common": 17, "debug": 17, "x86": 17, "explor": [17, 20], "launcher": [17, 21, 22], "imag": 17, "emul": 17, "gdb": 17, "multiboot": 17, "debugg": [17, 19], "applic": 17, "locat": 17, "o": 17, "import": 17, "unit": [17, 23], "test": [17, 23], "usag": [18, 19, 20, 21, 22], "featur": 19, "consol": 22, "usb": 24, "flash": 24, "drive": 24, "instal": 24}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx": 60}, "alltitles": {"Authors": [[0, "authors"]], "Command Line Arguments": [[2, "command-line-arguments"]], "Compiler Design": [[3, "compiler-design"]], "Type System": [[3, "type-system"]], "Compiler Pipeline": [[3, "compiler-pipeline"]], "Method Compiler Pipeline": [[3, "method-compiler-pipeline"]], "Intermediate Representations": [[3, "intermediate-representations"]], "Compiler Optimizations": [[4, "compiler-optimizations"]], "Optimizations": [[4, "optimizations"]], "Compiler Transformations": [[5, "compiler-transformations"]], "Transformation": [[5, "transformation"]], "Example #1": [[5, "example-1"]], "Example #2": [[5, "example-2"]], "Example #3": [[5, "example-3"]], "Functions": [[5, "functions"]], "Create your own operating system": [[6, "create-your-own-operating-system"]], "Introduction": [[6, "introduction"], [11, "introduction"], [12, "introduction"]], "Theory": [[6, "theory"]], "Implementation": [[6, "implementation"]], "Demos": [[7, "demos"]], "GraphicalWorld": [[7, "graphicalworld"]], "HelloWorld": [[7, "helloworld"]], "Frequently Asked Questions (FAQs)": [[8, "frequently-asked-questions-faqs"]], "What does MOSA stand for?": [[8, "what-does-mosa-stand-for"]], "Who can join?": [[8, "who-can-join"]], "What kind of .NET runtime will be available?": [[8, "what-kind-of-net-runtime-will-be-available"]], "How is the Cosmos project different than MOSA?": [[8, "how-is-the-cosmos-project-different-than-mosa"]], "Are Cosmos and MOSA working together?": [[8, "are-cosmos-and-mosa-working-together"]], "Get Involved": [[9, "get-involved"]], "Contribution process": [[9, "contribution-process"]], "Jobs": [[9, "jobs"]], "Rules": [[9, "rules"]], "Getting Started": [[10, "getting-started"]], "Prerequisites": [[10, "prerequisites"]], "Windows": [[10, "windows"], [24, "windows"]], "Linux": [[10, "linux"], [24, "linux"]], "All Platforms": [[10, "all-platforms"]], "Download": [[10, "download"]], "NuGet": [[10, "nuget"]], "Clone and build manually": [[10, "clone-and-build-manually"]], "Current Status": [[11, "current-status"], [12, "current-status"]], "Join the Discussion": [[11, "join-the-discussion"]], "License": [[11, "license"], [13, "license"]], "MOSA Project Structure": [[14, "mosa-project-structure"]], "Mosa.BareMetal.*": [[14, "mosa-baremetal"]], "Mosa.Compiler.*": [[14, "mosa-compiler"]], "Mosa.DeviceDriver": [[14, "mosa-devicedriver"]], "Mosa.DeviceSystem": [[14, "mosa-devicesystem"]], "Mosa.FileSystem": [[14, "mosa-filesystem"]], "Mosa.Kernel.BareMetal": [[14, "mosa-kernel-baremetal"]], "Mosa.Kernel.BareMetal.*": [[14, "id1"]], "Mosa.Korlib": [[14, "mosa-korlib"]], "Mosa.Plug.Korlib": [[14, "mosa-plug-korlib"]], "Mosa.Plug.Korlib.*": [[14, "id2"]], "Mosa.Runtime": [[14, "mosa-runtime"]], "Mosa.Runtime.*": [[14, "id3"]], "Mosa.Tool.*": [[14, "mosa-tool"]], "Mosa.Utility.*": [[14, "mosa-utility"]], "Mosa.UnitTests.*": [[14, "mosa-unittests"]], "Mosa.Workspace.*": [[14, "mosa-workspace"]], "Other projects": [[14, "other-projects"]], "Optimization Options": [[15, "optimization-options"]], "MOSA Runtime Tables": [[16, "mosa-runtime-tables"]], "Settings Options": [[17, "settings-options"]], "Compiler Settings": [[17, "compiler-settings"]], "Compiler Optimizations Settings": [[17, "compiler-optimizations-settings"]], "Linker Settings": [[17, "linker-settings"]], "Common Settings": [[17, "common-settings"]], "Compiler Debug Settings": [[17, "compiler-debug-settings"]], "Compiler X86 Settings": [[17, "compiler-x86-settings"]], "Explorer Settings": [[17, "explorer-settings"]], "Launcher Settings": [[17, "launcher-settings"]], "Image Settings": [[17, "image-settings"]], "Emulator Settings": [[17, "emulator-settings"]], "GDB Settings": [[17, "gdb-settings"]], "Multiboot Settings": [[17, "multiboot-settings"]], "Debugger Settings": [[17, "debugger-settings"]], "Application Location Settings": [[17, "application-location-settings"]], "OS Settings": [[17, "os-settings"]], "Import Settings": [[17, "import-settings"]], "Unit Test Settings": [[17, "unit-test-settings"]], "MOSA Compiler": [[18, "mosa-compiler"]], "Usage": [[18, "usage"], [19, "usage"], [20, "usage"], [21, "usage"], [22, "usage"]], "Command Line Options": [[18, "command-line-options"], [19, "command-line-options"], [20, "command-line-options"], [21, "command-line-options"], [22, "command-line-options"]], "MOSA Debugger": [[19, "mosa-debugger"]], "Features": [[19, "features"]], "MOSA Explorer": [[20, "mosa-explorer"]], "MOSA Launcher": [[21, "mosa-launcher"]], "MOSA Launcher Console": [[22, "mosa-launcher-console"]], "Unit Tests": [[23, "unit-tests"]], "USB Flash Drive Installation": [[24, "usb-flash-drive-installation"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["authors", "build-status", "command-line-arguments", "compiler-design", "compiler-optimizations", "compiler-transformations", "create-operating-system", "demos", "faq", "get-involved", "getting-started", "index", "introduction", "license", "mosa-project-structure", "optimization-options", "runtime-tables", "settings-options", "tool-compiler", "tool-debugger", "tool-explorer", "tool-launcher", "tool-launcher-console", "unit-tests", "usb-flash-drive-installation"], "filenames": ["authors.rst", "build-status.rst", "command-line-arguments.rst", "compiler-design.rst", "compiler-optimizations.rst", "compiler-transformations.rst", "create-operating-system.rst", "demos.rst", "faq.rst", "get-involved.rst", "getting-started.rst", "index.rst", "introduction.rst", "license.rst", "mosa-project-structure.rst", "optimization-options.rst", "runtime-tables.rst", "settings-options.rst", "tool-compiler.rst", "tool-debugger.rst", "tool-explorer.rst", "tool-launcher.rst", "tool-launcher-console.rst", "unit-tests.rst", "usb-flash-drive-installation.rst"], "titles": ["Authors", "<no title>", "Command Line Arguments", "Compiler Design", "Compiler Optimizations", "Compiler Transformations", "Create your own operating system", "Demos", "Frequently Asked Questions (FAQs)", "Get Involved", "Getting Started", "Introduction", "Introduction", "License", "MOSA Project Structure", "Optimization Options", "MOSA Runtime Tables", "Settings Options", "MOSA Compiler", "MOSA Debugger", "MOSA Explorer", "MOSA Launcher", "MOSA Launcher Console", "Unit Tests", "USB Flash Drive Installation"], "terms": {"The": [0, 2, 3, 5, 6, 7, 8, 10, 11, 12, 18, 19, 20, 21, 22, 23], "mosa": [0, 2, 3, 5, 6, 7, 9, 10, 11, 12, 13, 15, 17, 23, 24], "project": [0, 6, 7, 9, 10, 11, 12, 13, 18, 22, 23], "i": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21, 22, 23, 24], "team": [0, 9, 11], "effort": [0, 8], "we": [0, 6, 8, 9, 13, 24], "want": [0, 6, 9, 10], "recogn": [0, 4], "everyon": 0, "": [0, 2, 5, 6, 8, 9, 10, 11, 14, 17, 18], "contribut": [0, 8, 13], "list": [0, 6, 11, 12, 13, 17, 18, 19, 20, 21, 22, 24], "all": [0, 2, 3, 4, 6, 8, 9, 13, 14, 17, 22, 23, 24], "contributor": [0, 13], "our": [0, 6, 8, 9], "sourc": [0, 3, 5, 9, 10, 11, 12, 13, 17, 19], "code": [0, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 17, 19, 23], "repositori": [0, 10, 14], "view": [0, 19, 20], "credit": 0, "txt": 0, "file": [0, 3, 5, 6, 14, 17, 18], "If": [0, 6, 9, 10, 14, 17], "you": [0, 6, 7, 8, 9, 10, 14, 24], "have": [0, 4, 6, 8, 9, 14], "your": [0, 8, 9, 10, 24], "name": [0, 2, 5, 7, 13, 17, 20], "pleas": [0, 9], "add": [0, 5, 6, 10], "submit": [0, 13], "pull": [0, 14], "request": [0, 14], "serv": [2, 14], "shortcut": [2, 4], "common": [2, 3, 8, 11, 12, 14, 20, 21, 22, 24], "set": [2, 6, 10, 23], "option": [2, 4, 10, 11, 12], "us": [2, 3, 6, 7, 8, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21, 22, 24], "tool": [2, 9, 10, 17, 18, 19, 20, 21, 22, 24], "specif": [2, 3, 5, 6, 8, 13, 14, 17, 20], "mai": [2, 4, 10, 13, 17, 24], "also": [2, 3, 5, 6, 8, 14, 20], "specifi": [2, 17, 20], "shorthand": 2, "version": [2, 17, 18, 21, 22, 24], "For": [2, 6, 14], "exampl": [2, 6, 11, 12, 14, 22], "compil": [2, 6, 8, 10, 11, 12, 15, 19, 20, 21, 22, 23], "outputfil": [2, 17], "baremet": [2, 6, 18, 19, 20, 21, 22], "helloworld": [2, 18, 19, 20, 21, 22], "x86": [2, 6, 10, 11, 12, 14, 18, 19, 20, 21, 22], "bin": [2, 10, 17, 18, 22, 23], "pass": [2, 4, 17, 23], "follow": [2, 5, 6, 10, 11, 12, 13, 23, 24], "two": [2, 3, 4, 5, 8], "below": [2, 6, 10, 24], "ar": [2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 17, 20, 21, 22, 24], "avail": [2, 5, 10, 15, 18, 19, 20, 21, 22], "valu": [2, 4, 11, 12, 17], "none": [2, 6, 17], "sourcefil": [2, 17], "o": [2, 6, 10, 18], "thread": [2, 11, 12, 17], "multithread": [2, 17], "true": [2, 5, 17], "off": [2, 21, 22], "fals": [2, 5], "maxthread": [2, 17], "base": [2, 4, 5, 8, 9, 10, 11, 12, 17], "baseaddress": [2, 17], "scanner": [2, 17], "methodscann": [2, 17], "binari": [2, 3, 8, 13, 14, 17, 18, 23], "path": [2, 24], "searchpath": [2, 17], "inlin": [2, 4, 11, 12, 17], "optim": [2, 3, 5, 11, 12, 14, 22], "ssa": [2, 4, 11, 12, 17], "sccp": [2, 17], "basic": [2, 4, 6, 7, 8, 14, 17], "window": [2, 8, 17, 23], "explicit": [2, 17], "long": [2, 4], "expans": [2, 4, 11, 12], "longexpans": [2, 17], "twopass": [2, 17], "number": [2, 4, 11, 12, 17, 23], "valuenumb": [2, 17], "loop": [2, 11, 12, 17], "invari": [2, 11, 12, 17], "motion": [2, 11, 12, 17], "loopinvariantcodemot": [2, 17], "platform": [2, 3, 4, 8, 11, 12, 14, 17, 18, 24], "bit": [2, 4, 6, 11, 12, 17], "tracker": [2, 4, 17], "bittrack": [2, 17], "devirtu": [2, 4, 11, 12, 17], "level": [2, 3, 17, 20], "maximum": [2, 17], "reduces": 2, "reducecodes": [2, 17], "x64": [2, 11, 12, 17], "arm32": [2, 17], "arm64": [2, 17], "debug": [2, 19], "output": [2, 6, 17, 18], "inform": [2, 6, 7, 17], "nasm": [2, 17], "compilerdebug": [2, 17], "nasmfil": [2, 17], "default": [2, 17, 20], "asm": [2, 17], "asmfil": [2, 17], "map": [2, 17], "mapfil": [2, 17], "counter": [2, 17], "countersfil": [2, 17], "time": [2, 4, 6, 10, 17, 23], "compilertimefil": 2, "debugfil": [2, 17], "inlinedfil": [2, 17], "hash": [2, 17], "prelinkhashfil": [2, 17], "postlinkhashfil": [2, 17], "filter": [2, 5, 17, 20], "countersfilt": [2, 17], "check": [2, 4, 6, 11, 12, 17, 21, 22, 23], "fullcheckmod": [2, 17], "interrupt": [2, 6, 13, 17], "method": [2, 4, 5, 6, 11, 12, 17, 18, 19, 20, 22], "interruptmethodnam": [2, 17], "linker": [2, 8], "emit": [2, 3, 17, 23], "symbol": [2, 17], "reloc": [2, 17], "staticreloc": [2, 17], "static": [2, 4, 6, 11, 12, 17], "dwarf": [2, 17], "explor": 2, "debugdiagnost": [2, 17], "autostart": [2, 21, 22], "start": [2, 6, 7, 9, 17, 18, 21, 22], "launcher": [2, 10, 24], "autoexit": 2, "exit": [2, 17], "autolaunch": 2, "launch": [2, 6, 7, 8, 10, 17, 19, 20, 21, 22], "emul": [2, 19], "qemu": [2, 10, 11, 12, 17, 19, 22], "vmware": [2, 17], "boch": [2, 17], "displai": [2, 7, 17, 23], "memori": [2, 7, 17, 19], "gdb": [2, 19], "timeout": [2, 17], "maxruntim": [2, 17], "serial": [2, 17, 22], "bootopt": [2, 17], "serialdebug": 2, "svga": [2, 17], "virtio": [2, 17], "vga": 2, "imag": [2, 22, 24], "imagefil": [2, 17], "destin": [2, 17], "folder": [2, 6, 7, 17], "dest": 2, "vhd": [2, 14, 17], "format": [2, 5, 17], "img": [2, 17, 22, 24], "vdi": [2, 14, 17], "vmdk": [2, 17], "block": [2, 4, 11, 12, 24], "diskblock": 2, "volum": 2, "label": 2, "volumelabel": 2, "mbr": [2, 14], "masterbootrecordfil": 2, "boot": [2, 7, 14, 17, 24], "bootblockfil": 2, "includ": [2, 5, 7, 11, 12, 13, 14, 17, 21, 22, 24], "filesystem": [2, 17], "rootinclud": [2, 17], "multiboot": 2, "v2": [2, 17], "connect": [2, 9, 11, 17, 24], "pipe": [2, 17], "tcpclient": [2, 17], "tcpserver": [2, 17], "port": [2, 6, 10, 17], "host": [2, 14, 17], "video": [2, 17], "bio": [2, 17], "extens": [2, 23], "vbe": [2, 17], "width": [2, 17], "height": [2, 17], "debugg": [2, 8, 11, 12], "advanc": 2, "plug": [2, 17], "korlib": 2, "plugkorlib": [2, 17], "test": [2, 14, 24], "oper": [2, 4, 5, 8, 9, 11, 12, 13, 17], "system": [2, 8, 9, 10, 11, 12, 13, 14, 17, 20, 22, 24], "osnam": 2, "breakpoint": [2, 17, 19], "breakpointfil": [2, 17], "watch": [2, 8, 17], "watchfil": [2, 17], "unit": [2, 14], "maxerror": [2, 17], "unittest": [2, 17, 23], "o0": 2, "0": [2, 10, 18, 22, 23], "1": [2, 22], "o1": 2, "o2": 2, "o3": 2, "5": 2, "o4": 2, "o5": 2, "o6": 2, "o7": 2, "10": 2, "o8": 2, "o9": 2, "15": 2, "onon": 2, "omax": [2, 22, 23], "20": 2, "osiz": 2, "3": [2, 23], "ofast": 2, "next": [2, 6], "framework": [3, 5, 6, 8, 11, 12], "around": [3, 6], "each": [3, 5, 6, 11, 12, 17, 20], "multipl": [3, 5], "stage": [3, 4, 14, 17, 20], "fundament": 3, "part": [3, 5, 6, 8], "essenti": [3, 6], "cil": [3, 8, 14], "thi": [3, 4, 5, 6, 8, 9, 10, 11, 13, 14, 16, 17, 21, 22], "allow": [3, 6], "other": [3, 4, 6, 7, 9, 10, 13, 24], "potenti": [3, 8, 9, 14], "frontend": 3, "chosen": 3, "ones": [3, 6, 24], "primari": [3, 17], "execut": [3, 4, 5, 10, 11, 12, 17, 19, 20, 21, 23, 24], "step": [3, 6, 24], "necessari": [3, 5, 10], "an": [3, 4, 5, 6, 8, 9, 11, 12, 23], "applic": [3, 7, 8, 10, 11, 12, 18, 19, 20, 21, 22], "build": [3, 6, 8, 21, 22, 24], "link": [3, 17, 18, 22, 24], "final": [3, 6, 8, 10, 11, 12, 14, 18], "object": [3, 4, 11, 12, 17, 18], "One": 3, "singl": [3, 4, 6, 11, 12, 17], "progress": [3, 24], "lower": 3, "high": [3, 11, 12], "instruct": [3, 4, 14, 17, 20], "opcod": 3, "target": [3, 10, 11, 12], "least": [3, 6], "onc": [3, 6, 8, 21], "can": [3, 4, 6, 7, 9, 10, 14, 17, 19, 20, 21], "group": 3, "one": [3, 4, 6, 9, 10, 14, 24], "more": [3, 4, 6, 8, 9, 10, 14], "categori": [3, 14], "decod": 3, "creat": [3, 8, 10, 17, 24], "stream": [3, 20], "from": [3, 9, 13, 14, 19, 20, 21], "net": [3, 10, 11, 12, 14, 18], "transform": [3, 4, 14, 17, 20], "between": 3, "variou": [3, 4, 7, 21], "usual": [3, 24], "higher": 3, "intend": 3, "faster": [3, 4], "regist": [3, 4, 6, 10, 11, 12, 19], "alloc": [3, 4, 11, 12], "virtual": [3, 4, 11, 12, 16, 17, 19, 21, 22, 24], "physic": 3, "linear": 3, "v": 3, "express": [3, 4, 5, 8, 13], "tree": [3, 5], "machin": [3, 16, 17, 19, 21, 22], "There": [3, 9, 24], "sever": [3, 24], "befor": [3, 17, 24], "gener": [3, 11, 12, 14, 17, 22], "These": [3, 5, 8], "languag": 3, "ir": [3, 5, 14], "mir": 3, "dure": [3, 8, 17], "repres": [3, 5, 16], "class": [3, 5, 6, 14], "move": [3, 5], "forward": 3, "modifi": [3, 10], "In": [3, 4, 6, 8, 10, 19, 20, 21], "some": [3, 6, 7, 9, 10, 14, 17, 20], "case": [3, 14, 20], "directli": [3, 8], "replac": [3, 4, 5, 14], "sequenc": 3, "provid": [3, 6, 8, 9, 11, 12, 13, 14, 17], "appropri": 3, "constant": [4, 5, 11, 12, 17], "fold": [4, 5, 11, 12, 17], "propag": [4, 11, 12, 17], "process": [4, 6, 8, 14, 17, 21, 22], "evalu": 4, "rather": 4, "than": [4, 6], "comput": 4, "them": [4, 5, 6, 14], "runtim": [4, 6, 9, 17], "strength": [4, 5, 11, 12, 17], "reduct": [4, 5, 11, 12, 17], "where": [4, 5, 8, 14], "expens": 4, "equival": 4, "less": 4, "dead": [4, 11, 12], "elimin": [4, 11, 12], "remov": 4, "which": [4, 5, 6, 8, 9, 14], "doe": [4, 7, 14, 21, 22, 24], "affect": 4, "result": [4, 5, 23], "program": [4, 5], "assign": [4, 11, 12, 17], "form": [4, 13, 17], "onli": [4, 6, 9, 10, 14, 24], "definit": 4, "while": [4, 6, 8, 9, 14, 24], "immedi": [4, 17, 21, 22], "itself": [4, 9], "enabl": [4, 17, 22], "opportun": 4, "simultan": 4, "simplifi": 4, "improv": 4, "spars": [4, 11, 12, 17], "condit": [4, 11, 12, 13, 17], "appli": 4, "after": [4, 6, 17], "convers": [4, 8], "It": [4, 6, 8, 14], "find": [4, 5, 6, 24], "thu": [4, 6, 8], "global": [4, 11, 12, 17], "techniqu": 4, "determin": [4, 24], "when": [4, 17, 20], "preserv": 4, "same": 4, "semant": 4, "call": [4, 5, 6, 17, 19], "site": 4, "bodi": 4, "perform": [4, 8], "becaus": [4, 6, 10, 14], "store": 4, "place": [4, 6], "argument": [4, 6, 18, 19, 20, 21, 22], "onto": [4, 24], "stack": [4, 17, 19], "jump": 4, "anoth": [4, 6, 8, 17], "locat": [4, 5], "track": 4, "known": 4, "state": 4, "rang": 4, "thru": 4, "reorder": [4, 11, 12], "organizaz": 4, "maxim": 4, "fall": 4, "through": 4, "branch": 4, "greedi": [4, 11, 12], "cpu": [4, 22], "live": 4, "spill": 4, "weight": 4, "64": [4, 11, 12, 17], "32": [4, 11, 12, 17, 22], "without": [4, 13], "nativ": [4, 11, 12, 14, 19], "further": 4, "translat": [4, 5], "happen": 4, "so": [4, 6], "produc": 4, "direct": [4, 13, 17], "instead": [4, 6, 7, 10], "even": [4, 13], "null": [4, 6, 11, 12, 22], "refer": 4, "never": 4, "caus": [4, 13, 17], "again": 4, "possibl": [4, 13], "unlock": 4, "addit": [4, 14, 19, 20, 21], "utilit": [5, 19], "datebas": 5, "type": [5, 8, 14, 17, 24], "describ": [5, 20], "json": 5, "text": 5, "make": [5, 6, 7, 9, 14], "easi": 5, "new": [5, 6, 8, 9, 10, 11, 13, 14, 18], "A": [5, 6, 13, 22, 24], "special": [5, 13], "parser": 5, "util": [5, 23, 24], "sourcecodegener": 5, "read": [5, 9], "c": [5, 13, 22], "data": [5, 13, 17, 24], "tranform": 5, "ha": [5, 8, 14, 23], "three": [5, 7], "rule": 5, "requir": [5, 6, 8, 14], "order": [5, 6, 8, 10, 14], "attribut": 5, "operand": 5, "must": [5, 13, 14], "satifi": 5, "And": [5, 6], "here": [5, 6, 10, 14, 15, 17, 20, 21, 22, 24], "simpl": [5, 14], "familynam": 5, "constantfold": 5, "add32": 5, "subnam": 5, "b": [5, 24], "isresolvedconst": 5, "move32": 5, "to32": 5, "first": [5, 6, 8, 14], "four": 5, "field": 5, "uniqu": 5, "public": 5, "seal": 5, "basetransform": 5, "irinstruct": 5, "overrid": 5, "bool": 5, "match": 5, "context": 5, "operand1": 5, "return": [5, 6], "operand2": 5, "void": [5, 6], "var": [5, 6], "t1": 5, "t2": 5, "e1": 5, "createconst": 5, "setinstruct": 5, "rewrit": 5, "reduc": 5, "and32": 5, "not32not32": 5, "not32": 5, "or32": 5, "power": 5, "cheaper": 5, "shift": 5, "strengthreduct": 5, "mulsigned32": 5, "bypoweroftwo": 5, "x": [5, 22], "ispoweroftwo32": 5, "iszero": 5, "ison": 5, "shiftleft32": 5, "getpoweroftwo": 5, "To": [5, 6], "see": [5, 6, 11, 12, 18, 19, 20, 21, 22], "region": 5, "now": [6, 10, 24], "ve": [6, 10], "learn": [6, 10, 14], "either": [6, 9, 10], "pre": 6, "exist": [6, 24], "demo": [6, 10, 14, 22], "ll": [6, 10, 24], "teach": 6, "how": 6, "interest": [6, 8, 9], "let": 6, "get": [6, 24], "don": [6, 10], "t": [6, 10, 11, 12], "need": [6, 9, 10, 14], "guid": 6, "re": [6, 8, 10, 14], "kernel": [6, 10, 11, 12], "templat": [6, 10], "those": [6, 7, 8, 14], "who": 6, "wish": [6, 24], "about": [6, 9, 10, 14], "intern": [6, 14, 16, 17], "But": [6, 14], "work": 6, "idea": 6, "modular": [6, 11, 12], "its": [6, 7, 8, 13, 14], "sort": 6, "kei": 6, "sell": 6, "point": [6, 8], "close": 6, "architectur": [6, 10], "mean": [6, 9], "quit": 6, "difficult": 6, "might": 6, "think": 6, "take": [6, 9, 23], "devic": [6, 7, 11, 12, 14, 24], "driver": [6, 11, 12, 14], "typic": 6, "talk": [6, 8], "rest": 6, "print": 6, "standard": [6, 8, 14], "consol": [6, 18, 21], "write": 6, "etc": [6, 14], "abl": [6, 8, 14], "do": [6, 14, 24], "hardwar": [6, 11, 12, 24], "abstract": 6, "layer": 6, "interfac": [6, 8, 22], "commun": [6, 9], "hal": 6, "wai": [6, 8, 9, 10, 11, 13, 24], "end": 6, "user": [6, 22], "reason": 6, "inherit": 6, "basehardwareabstract": 6, "coupl": [6, 14], "commonli": 6, "doesn": 6, "just": [6, 10, 24], "seen": 6, "look": [6, 9], "structur": 6, "initi": 6, "would": [6, 7], "setup": [6, 18], "stuff": [6, 14], "idt": 6, "setinterrupthandl": 6, "servic": [6, 13], "most": [6, 9, 11, 12, 20, 21, 22, 24], "deviceservic": 6, "via": [6, 10, 14, 18], "respect": [6, 7], "import": [6, 8], "like": [6, 7, 8, 14, 17], "pci": [6, 14], "control": [6, 8, 19], "pcservic": 6, "shut": 6, "down": 6, "reboot": 6, "amongst": 6, "certainli": 6, "haven": [6, 10], "know": 6, "made": [6, 20], "pretti": 6, "self": 6, "explanatori": 6, "howev": [6, 13, 14], "omit": 6, "certain": [6, 20], "sinc": 6, "simpli": [6, 10], "entri": 6, "could": 6, "partitionservic": 6, "yet": [6, 8, 10], "partit": [6, 17], "At": 6, "finish": 6, "everyth": [6, 10], "readi": 6, "go": 6, "seem": [6, 14], "daunt": [6, 14], "touch": 6, "anymor": 6, "With": 6, "being": [6, 8], "said": 6, "assum": [6, 10], "done": [6, 24], "well": 6, "almost": [6, 14], "what": [6, 14], "won": 6, "cover": [6, 14], "onlin": 6, "privat": 6, "processinterrupt": 6, "uint": 6, "errorcod": 6, "0x20": 6, "0x30": 6, "devicesystem": 6, "byte": 6, "ani": [6, 7, 8, 9, 10, 13, 14], "incom": 6, "right": [6, 13], "real": [6, 24], "servicemanag": 6, "manag": [6, 8, 9, 13], "care": [6, 9, 24], "u": [6, 9, 11], "pcicontrollerservic": 6, "pcideviceservic": 6, "addservic": 6, "complet": [6, 18, 22], "out": [6, 8, 13, 14, 21, 22], "under": [6, 11, 13, 18, 19, 24], "line": [6, 10, 23], "wonder": 6, "unfortun": 6, "too": [6, 24], "depth": 6, "coolworld": 6, "svgaworld": 6, "thei": [6, 14], "differ": 6, "much": [6, 14], "suffic": 6, "x86system": 6, "depend": [6, 8, 14], "devicedriv": 6, "getdevicedriverregistryentri": 6, "registerdevicedriv": 6, "detail": 6, "ask": 6, "yourself": [6, 9], "should": [6, 10], "parent": 6, "That": 6, "current": [6, 10, 14, 22, 24], "actual": [6, 7], "createpartitiondevic": 6, "ata": 6, "id": [6, 10], "ahci": 6, "sata": 6, "nvme": 6, "alwai": 6, "question": 6, "hesit": 6, "discord": [6, 8, 9, 11], "http": [6, 10], "gg": 6, "trnmn3npsv": 6, "server": [6, 8, 9], "happili": 6, "answer": [6, 8], "d": [6, 10], "demostr": 7, "capabl": 7, "script": [7, 23], "suggest": 7, "gpu": 7, "featur": [7, 8, 14], "offer": [7, 14], "nice": 7, "graphic": [7, 22], "classic": 7, "rendit": 7, "hello": 7, "world": 7, "except": [7, 9, 11, 12, 14], "word": 7, "implement": [7, 8, 9, 14], "shell": 7, "few": [7, 10, 14, 23], "command": [7, 10, 24], "usag": 7, "come": [8, 14], "up": [8, 10, 14], "allianc": [8, 13], "wa": 8, "origin": 8, "sharpo": 8, "toolset": 8, "As": [8, 10], "share": 8, "lot": [8, 14], "groundwork": 8, "aim": [8, 14], "foster": 8, "portabl": [8, 14], "both": 8, "anyon": 8, "develop": [8, 9, 11, 12, 24], "keep": 8, "mind": 8, "bsd": [8, 9, 11, 13, 18], "licens": [8, 9, 18], "though": [8, 9], "entir": [8, 21, 22, 24], "along": 8, "publish": 8, "ecma": 8, "own": 8, "pluggabl": 8, "algorithm": 8, "veri": 8, "flexibl": 8, "usabl": 8, "research": 8, "design": 8, "toolkit": 8, "plugin": 8, "visual": [8, 10, 20], "studio": [8, 10], "instal": [8, 10], "integr": [8, 14], "signific": 8, "introduc": 8, "second": [8, 17], "break": 8, "microsoft": [8, 10], "comparison": 8, "run": [8, 17, 23], "assembli": 8, "yasm": 8, "recent": 8, "been": [8, 10], "stabil": 8, "noth": 8, "opinion": 8, "crossdev": 8, "help": [9, 14, 23], "support": [9, 11, 12, 14], "join": 9, "download": [9, 24], "document": [9, 13], "interact": [9, 11], "achiev": 9, "goal": 9, "fix": 9, "bug": 9, "report": 9, "issu": 9, "open": [9, 11, 12, 24], "heard": 9, "area": 9, "accept": [9, 13], "inspect": 9, "proprietari": 9, "reflector": 9, "ildasm": 9, "similar": [9, 10, 23], "plan": 9, "access": 9, "relat": [9, 14], "environ": 9, "regard": 9, "patent": 9, "restrict": 9, "compat": [9, 13], "mit": [9, 13], "gnu": [9, 13, 17], "incompar": 9, "polici": 9, "On": [10, 23], "7": 10, "2022": 10, "17": 10, "4": [10, 18, 22, 23], "newer": 10, "git": 10, "ubuntu": 10, "22": 10, "04": 10, "quickli": 10, "packag": 10, "wget": 10, "q": 10, "com": 10, "config": 10, "prod": 10, "deb": 10, "sudo": [10, 24], "dpkg": 10, "core": [10, 14], "sdk": 10, "apt": 10, "univers": 10, "updat": 10, "y": 10, "dotnet": [10, 23], "intal": 10, "page": [10, 14], "easiest": 10, "mosakrnl": 10, "mymosakernel": 10, "cd": [10, 24], "cross": [10, 11, 12], "newli": 10, "gui": [10, 19, 20, 21], "copi": [10, 24], "directori": [10, 17, 22, 24], "dll": [10, 18, 19, 20, 21, 22, 23], "github": 10, "solut": 10, "sln": 10, "success": [10, 17], "show": [10, 17, 23], "messag": [10, 17], "warn": 10, "ignor": 10, "succeed": 10, "error": [10, 17], "elaps": [10, 23], "00": 10, "01": 10, "48": 10, "select": [10, 21, 24], "choic": 10, "perhap": 10, "softwar": [11, 12, 13, 24], "within": [11, 12, 16, 17], "hypervisor": [11, 12], "bare": [11, 12], "metal": [11, 12], "consist": [11, 12], "qualiti": [11, 12], "multi": [11, 12], "small": [11, 12, 17], "stabl": [11, 12], "armv8": [11, 12], "earli": [11, 12], "non": [11, 12], "orient": [11, 12], "deleg": [11, 12], "paramet": [11, 12, 19, 24], "handl": [11, 12, 17], "try": [11, 12], "catch": [11, 12], "seek": [11, 12], "subexpess": [11, 12], "descript": [11, 12, 17], "copyright": [13, 18], "2023": [13, 18], "reserv": 13, "redistribut": 13, "modif": 13, "permit": 13, "met": 13, "retain": 13, "abov": [13, 14, 24], "notic": 13, "disclaim": 13, "reproduc": 13, "materi": 13, "distribut": 13, "neither": 13, "nor": 13, "endors": 13, "promot": 13, "product": 13, "deriv": 13, "prior": [13, 17], "written": [13, 24], "permiss": 13, "BY": 13, "THE": 13, "holder": 13, "AND": 13, "AS": 13, "OR": 13, "impli": 13, "warranti": 13, "BUT": 13, "NOT": 13, "limit": 13, "TO": 13, "OF": 13, "merchant": 13, "fit": [13, 14], "FOR": 13, "particular": 13, "purpos": 13, "IN": 13, "NO": 13, "event": 13, "shall": 13, "owner": 13, "BE": 13, "liabl": 13, "indirect": 13, "incident": 13, "exemplari": 13, "consequenti": 13, "damag": 13, "procur": 13, "substitut": [13, 24], "good": 13, "loss": 13, "profit": 13, "busi": 13, "ON": 13, "theori": 13, "liabil": 13, "whether": [13, 14], "contract": 13, "strict": 13, "tort": 13, "neglig": 13, "otherwis": [13, 17], "aris": 13, "IF": 13, "advis": 13, "SUCH": 13, "x11": 13, "note": [13, 17], "exclus": 14, "explain": 14, "isa": 14, "usb": 14, "contain": 14, "kind": 14, "miscellean": 14, "fulli": 14, "outsid": 14, "constrainedpoint": 14, "great": 14, "header": 14, "footer": 14, "dependeci": 14, "fat32": [14, 17], "futur": [14, 17], "mainlin": 14, "agnost": 14, "function": 14, "librari": 14, "miss": 14, "highli": 14, "custom": [14, 17], "benefit": 14, "unimpl": 14, "built": 14, "ident": 14, "pointer": 14, "gc": 14, "section": [14, 17], "automat": [14, 17, 23], "trigger": 14, "main": 14, "commit": 14, "manual": 14, "playground": 14, "chang": [14, 24], "strip": 14, "mention": 14, "probabl": 14, "miscellan": 14, "cite": 14, "diagram": 16, "address": 17, "initialstackaddress": 17, "intial": 17, "grow": 17, "downward": 17, "tracelevel": 17, "trace": 17, "experiment": 17, "filenam": 17, "prebuilt": 17, "vn": 17, "maximun": 17, "review": 17, "aggressivemaximum": 17, "mark": 17, "explicitli": 17, "twice": 17, "aggress": 17, "exclud": 17, "favor": 17, "smaller": 17, "size": 17, "elf": 17, "elf32": 17, "elf64": 17, "shortsymbolnam": 17, "short": 17, "customsect": 17, "sectionnam": 17, "search": 17, "defaultfold": 17, "temporaryfold": 17, "temporari": 17, "statist": 17, "gather": 17, "compiletimefil": 17, "disassembli": 17, "were": [17, 20], "valid": [17, 23], "upon": 17, "diagnost": 17, "captur": 17, "corelib": 17, "vm": 17, "monitor": 17, "failur": [17, 23], "vritual": 17, "fat12": 17, "fat16": 17, "amount": 17, "mb": 17, "mode": 17, "std": 17, "cirru": 17, "ip": 17, "pipenam": 17, "framebuff": 17, "apploc": 17, "qemux86": 17, "i386": [17, 22], "qemux64": 17, "qemuarm32": 17, "qemuarm64": 17, "qemubio": 17, "qemuimg": 17, "vmwareworkst": 17, "vmworkstat": 17, "vmwareplay": 17, "vmplayer": 17, "ndisasm": 17, "mkisof": 17, "string": [17, 20], "abort": 17, "millisecond": 17, "retri": 17, "maxattempt": 17, "restart": 17, "attempt": 17, "invok": 18, "2": 18, "pars": 18, "input": 18, "38": 18, "41": 18, "42": 18, "79": 18, "88": 18, "89": [18, 22], "92": 18, "watchpoint": 19, "frame": 19, "hood": 19, "highest": 20, "respresent": 20, "lowest": 20, "log": 20, "why": 20, "get_length": 20, "autom": [21, 22], "quick": 22, "tgiphil": 22, "sec": [22, 23], "94": 22, "56": 22, "59": 22, "66": 22, "ex": [22, 24], "l": [22, 24], "qemu32": 22, "sse4": 22, "hda": 22, "phil": 22, "appdata": 22, "local": 22, "temp": [22, 24], "correct": 23, "runallunittestswithpaus": 23, "bat": 23, "linux": 23, "minut": 23, "modern": 23, "pc": [23, 24], "screen": 23, "last": 23, "total": 23, "fail": 23, "95": 23, "68164": 23, "skip": 23, "68168": 23, "successfulli": 23, "inde": 24, "put": 24, "ventoi": 24, "rufu": 24, "dd": 24, "unoffici": 24, "disk": 24, "prompt": 24, "subfold": 24, "eras": 24, "lost": 24, "Be": 24, "mistyp": 24, "wrong": 24, "corrupt": 24, "hard": 24, "storag": 24, "proce": 24, "unless": 24, "understand": 24, "found": 24, "previou": 24, "harddiskx": 24, "partitionx": 24, "bootimag": 24, "512": 24, "wait": 24, "until": 24, "disconnect": 24, "tmp": 24, "fdisk": 24, "dev": 24, "xxxx": 24, "statu": 24}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"author": 0, "command": [2, 18, 19, 20, 21, 22], "line": [2, 18, 19, 20, 21, 22], "argument": 2, "compil": [3, 4, 5, 14, 17, 18], "design": 3, "type": 3, "system": [3, 6], "pipelin": 3, "method": 3, "intermedi": 3, "represent": 3, "optim": [4, 15, 17], "transform": 5, "exampl": 5, "1": 5, "2": 5, "3": 5, "function": 5, "creat": 6, "your": 6, "own": 6, "oper": 6, "introduct": [6, 11, 12], "theori": 6, "implement": 6, "demo": 7, "graphicalworld": 7, "helloworld": 7, "frequent": 8, "ask": 8, "question": 8, "faq": 8, "what": 8, "doe": 8, "mosa": [8, 14, 16, 18, 19, 20, 21, 22], "stand": 8, "who": 8, "can": 8, "join": [8, 11], "kind": 8, "net": 8, "runtim": [8, 14, 16], "avail": 8, "how": 8, "i": 8, "cosmo": 8, "project": [8, 14], "differ": 8, "than": 8, "ar": 8, "work": 8, "togeth": 8, "get": [9, 10], "involv": 9, "contribut": 9, "process": 9, "job": 9, "rule": 9, "start": 10, "prerequisit": 10, "window": [10, 24], "linux": [10, 24], "all": 10, "platform": 10, "download": 10, "nuget": 10, "clone": 10, "build": 10, "manual": 10, "current": [11, 12], "statu": [11, 12], "discuss": 11, "licens": [11, 13], "structur": 14, "baremet": 14, "devicedriv": 14, "devicesystem": 14, "filesystem": 14, "kernel": 14, "korlib": 14, "plug": 14, "tool": 14, "util": 14, "unittest": 14, "workspac": 14, "other": 14, "option": [15, 17, 18, 19, 20, 21, 22], "tabl": 16, "set": 17, "linker": 17, "common": 17, "debug": 17, "x86": 17, "explor": [17, 20], "launcher": [17, 21, 22], "imag": 17, "emul": 17, "gdb": 17, "multiboot": 17, "debugg": [17, 19], "applic": 17, "locat": 17, "o": 17, "import": 17, "unit": [17, 23], "test": [17, 23], "usag": [18, 19, 20, 21, 22], "featur": 19, "consol": 22, "usb": 24, "flash": 24, "drive": 24, "instal": 24}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx": 60}, "alltitles": {"Authors": [[0, "authors"]], "Command Line Arguments": [[2, "command-line-arguments"]], "Compiler Design": [[3, "compiler-design"]], "Type System": [[3, "type-system"]], "Compiler Pipeline": [[3, "compiler-pipeline"]], "Method Compiler Pipeline": [[3, "method-compiler-pipeline"]], "Intermediate Representations": [[3, "intermediate-representations"]], "Compiler Optimizations": [[4, "compiler-optimizations"]], "Optimizations": [[4, "optimizations"]], "Compiler Transformations": [[5, "compiler-transformations"]], "Transformation": [[5, "transformation"]], "Example #1": [[5, "example-1"]], "Example #2": [[5, "example-2"]], "Example #3": [[5, "example-3"]], "Functions": [[5, "functions"]], "Create your own operating system": [[6, "create-your-own-operating-system"]], "Introduction": [[6, "introduction"], [11, "introduction"], [12, "introduction"]], "Theory": [[6, "theory"]], "Implementation": [[6, "implementation"]], "Demos": [[7, "demos"]], "GraphicalWorld": [[7, "graphicalworld"]], "HelloWorld": [[7, "helloworld"]], "Frequently Asked Questions (FAQs)": [[8, "frequently-asked-questions-faqs"]], "What does MOSA stand for?": [[8, "what-does-mosa-stand-for"]], "Who can join?": [[8, "who-can-join"]], "What kind of .NET runtime will be available?": [[8, "what-kind-of-net-runtime-will-be-available"]], "How is the Cosmos project different than MOSA?": [[8, "how-is-the-cosmos-project-different-than-mosa"]], "Are Cosmos and MOSA working together?": [[8, "are-cosmos-and-mosa-working-together"]], "Get Involved": [[9, "get-involved"]], "Contribution process": [[9, "contribution-process"]], "Jobs": [[9, "jobs"]], "Rules": [[9, "rules"]], "Getting Started": [[10, "getting-started"]], "Prerequisites": [[10, "prerequisites"]], "Windows": [[10, "windows"], [24, "windows"]], "Linux": [[10, "linux"], [24, "linux"]], "All Platforms": [[10, "all-platforms"]], "Download": [[10, "download"]], "NuGet": [[10, "nuget"]], "Clone and build manually": [[10, "clone-and-build-manually"]], "Current Status": [[11, "current-status"], [12, "current-status"]], "Join the Discussion": [[11, "join-the-discussion"]], "License": [[11, "license"], [13, "license"]], "MOSA Project Structure": [[14, "mosa-project-structure"]], "Mosa.BareMetal.*": [[14, "mosa-baremetal"]], "Mosa.Compiler.*": [[14, "mosa-compiler"]], "Mosa.DeviceDriver": [[14, "mosa-devicedriver"]], "Mosa.DeviceSystem": [[14, "mosa-devicesystem"]], "Mosa.FileSystem": [[14, "mosa-filesystem"]], "Mosa.Kernel.BareMetal": [[14, "mosa-kernel-baremetal"]], "Mosa.Kernel.BareMetal.*": [[14, "id1"]], "Mosa.Korlib": [[14, "mosa-korlib"]], "Mosa.Plug.Korlib": [[14, "mosa-plug-korlib"]], "Mosa.Plug.Korlib.*": [[14, "id2"]], "Mosa.Runtime": [[14, "mosa-runtime"]], "Mosa.Runtime.*": [[14, "id3"]], "Mosa.Tool.*": [[14, "mosa-tool"]], "Mosa.Utility.*": [[14, "mosa-utility"]], "Mosa.UnitTests.*": [[14, "mosa-unittests"]], "Mosa.Workspace.*": [[14, "mosa-workspace"]], "Other projects": [[14, "other-projects"]], "Optimization Options": [[15, "optimization-options"]], "MOSA Runtime Tables": [[16, "mosa-runtime-tables"]], "Settings Options": [[17, "settings-options"]], "Compiler Settings": [[17, "compiler-settings"]], "Compiler Optimizations Settings": [[17, "compiler-optimizations-settings"]], "Linker Settings": [[17, "linker-settings"]], "Common Settings": [[17, "common-settings"]], "Compiler Debug Settings": [[17, "compiler-debug-settings"]], "Compiler X86 Settings": [[17, "compiler-x86-settings"]], "Explorer Settings": [[17, "explorer-settings"]], "Launcher Settings": [[17, "launcher-settings"]], "Image Settings": [[17, "image-settings"]], "Emulator Settings": [[17, "emulator-settings"]], "GDB Settings": [[17, "gdb-settings"]], "Multiboot Settings": [[17, "multiboot-settings"]], "Debugger Settings": [[17, "debugger-settings"]], "Application Location Settings": [[17, "application-location-settings"]], "OS Settings": [[17, "os-settings"]], "Import Settings": [[17, "import-settings"]], "Unit Test Settings": [[17, "unit-test-settings"]], "MOSA Compiler": [[18, "mosa-compiler"]], "Usage": [[18, "usage"], [19, "usage"], [20, "usage"], [21, "usage"], [22, "usage"]], "Command Line Options": [[18, "command-line-options"], [19, "command-line-options"], [20, "command-line-options"], [21, "command-line-options"], [22, "command-line-options"]], "MOSA Debugger": [[19, "mosa-debugger"]], "Features": [[19, "features"]], "MOSA Explorer": [[20, "mosa-explorer"]], "MOSA Launcher": [[21, "mosa-launcher"]], "MOSA Launcher Console": [[22, "mosa-launcher-console"]], "Unit Tests": [[23, "unit-tests"]], "USB Flash Drive Installation": [[24, "usb-flash-drive-installation"]]}, "indexentries": {}}) \ No newline at end of file