update README

This commit is contained in:
Andrew Kelley 2016-01-25 15:22:52 -07:00
parent e85e7ebcf0
commit c0dc0ca6c9

View File

@ -22,35 +22,32 @@ compromises backward compatibility.
always compiled against statically in source form. always compiled against statically in source form.
* Generics so that one can write efficient data structures that work for any * Generics so that one can write efficient data structures that work for any
data type. data type.
* Ability to run arbitrary code at compile time and generate code.
* No null pointer. Convenient syntax for dealing with a maybe type so that * No null pointer. Convenient syntax for dealing with a maybe type so that
null pointer is not missed. null pointer is not missed.
* A type which represents an error and has some convenience syntax with * An error type, combined with some syntatical constructs which makes writing
regards to resources. robust code convenient and straightforward.
* Defer statement.
* Eliminate the need for configure, make, cmake, etc. * Eliminate the need for configure, make, cmake, etc.
* Eliminate the need for header files (when using zig internally). * Eliminate the need for header files (when using zig internally).
* Tagged union enum type. * Tagged union enum type. No more accidentally reading the wrong union field.
* Resilient to parsing errors to make IDE integration work well. * Easy to parse language so that humans and machines have no trouble with the
* Eliminate the preprocessor, but have a plan for how to do things you would syntax.
want to use the preprocessor for such as conditional compilation. * Eliminate the preprocessor, but (most) everything you can accomplish with
the preprocessor, you can accomplish directly in the language.
* Ability to mark functions as test and automatically run them in test mode. * Ability to mark functions as test and automatically run them in test mode.
This mode should automatically provide test coverage. Automatically provide test coverage.
* Friendly toward package maintainers. * Friendly toward package maintainers.
* Ability to declare dependencies as Git URLS with commit locking (can * Ability to declare dependencies as Git URLS with commit locking (can
provide a tag or sha1). provide a tag or sha1).
* Include documentation generator. * Include documentation generator.
* Shebang line OK so language can be used for "scripting" as well. * Shebang line OK so language can be used for "scripting" as well.
* Have the compiler run continuously, watching the file system for source * Debug mode optimizes for fast compilation time and crashing when undefined
changes and automatically perform multithreaded compilation to build projects behavior *would* happen.
quickly. * Release mode produces heavily optimized code. What other projects call
* Hot code swapping. When integrated with the previous feature, you could "Link Time Optimization" Zig does automatically.
press "save" in your editor and see the change immediately in your running
software.
### Current Status ### Current Status
* Have a look in the examples/ folder to see some code examples. * Have a look in the example/ folder to see some code examples.
* Basic language features available such as loops, inline assembly, * Basic language features available such as loops, inline assembly,
expressions, literals, functions, importing, structs, tagged unions. expressions, literals, functions, importing, structs, tagged unions.
* Linux x86_64 is supported. * Linux x86_64 is supported.