A bootstrap compiler is written in the language that it intends to compile. Using a compiler to compile itself is known as bootstrapping. Many also compile Scheme programs to executable binary. It can optionally compile to a single executable which does not require DLLs. Some instructions compile and execute more efficiently when using these registers for their designed purpose. Numba can compile Python functions to GPU code. As of version 8 a standalone Clang can compile C and C++ to Wasm. A program will not compile until all syntax errors are corrected. Most current D implementations compile directly into machine code for efficient execution. Dart can compile to either native code or JavaScript. Liberty BASIC does not compile to native code. Haxe can also directly compile SWF, HashLink and Neko bytecode. Most often, the "makefile" directs "Make" on how to compile and link a program. When a developer makes a change, they only must compile the plugin. TypeScript provides static typing through type annotations to enable type checking at compile time.