@@ -16,6 +16,7 @@ _C is everywhere. From operating systems to embedded devices, from high-performa
1616to essential technology, C powers the technology we rely on every day. Timeless,
1717efficient, and universal._
1818
19+
1920# 🍰 Cake
2021
2122
@@ -35,7 +36,7 @@ or old compilers to produce executables.
3536 └─► [cake preprocessor] ──►[cake compiler] ─┘ c89
3637```
3738
38- Cake aims to enhance C's safety by providing high-quality warning messages and advanced
39+ Cake aims to enhance C's safety by providing high-quality [ warning messages] ( warnings.md ) and advanced
3940flow analysis, including [ object lifetime] ( ownership.md ) checks.
4041
4142# Web Playground
@@ -58,14 +59,9 @@ It can also function as a preprocessor, converting C23 code to C89.
5859This allows developers to use modern or experimental features while targeting
5960compilers that do not yet support the latest language standards.
6061
61-
62- Previous versions of Cake included a conversion mode to
63- translate code while preserving the preprocessor parts.
64-
65- Although useful, this process could not guarantee 100% conversion,
66- functioning more as a tool than a compiler. With the new versions
67- of Cake moving toward becoming a more traditional compiler,
68- the previous mode has been discontinued at version 0.9.36.
62+ Cake is also a cross-compiler. For example, on Windows it can use Linux
63+ headers and generate GCC-compatible code for Linux, and vice versa.
64+ This makes it very useful when developing multiplatform code.
6965
7066
7167# Features
@@ -75,9 +71,11 @@ the previous mode has been discontinued at version 0.9.36.
7571* C23 semantic analysis
7672* Static [ object lifetime] ( ownership.md ) checks (Extension)
7773* Sarif output
78- * Backend generating C89 compatible code
74+ * Cross compiling
75+ * C89 backend
76+ * Style checker
7977* AST
80- * More than 260 diagnostics
78+ * Lots of [ diagnostics] ( warnings.md )
8179
8280
8381# Build
@@ -109,8 +107,9 @@ Got to the *src* directory and type:
109107clang build.c -o build && ./build
110108```
111109
110+ ## Running tests
112111
113- To run unit tests windows/linux add * -DTEST * for instance:
112+ Adding * -DTEST * on any platform will run a large set of tests.
114113
115114```
116115gcc -DTEST build.c -o build && ./build
@@ -143,7 +142,7 @@ Samples
143142cake source.c
144143```
145144
146- this will output * ./out /source.c*
145+ this will output * ./platform short name /source.c*
147146
148147See [ Manual] ( manual.md )
149148
0 commit comments