You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: ReadMe.org
+13-9
Original file line number
Diff line number
Diff line change
@@ -10,15 +10,6 @@ It is a transpiler which generates C/C++ from a Lisp dialect.
10
10
11
11
You can see the [[https://macoy.me/blog/programming/CakelispIntro][introduction to Cakelisp]] and check out the [[https://news.ycombinator.com/item?id=25491568][Hacker News announcement thread]].
Licensed under ~GPL-3.0-or-later~, with added [[https://www.gnu.org/licenses/gpl-faq.en.html#LinkingOverControlledInterface][Linking Over Controlled Interface]] exception.
17
-
~runtime/~ is licensed under MIT License.
18
-
19
-
Please see [[file:doc/Legal.org][doc/Legal.org]] for a detailed explanation.
20
-
21
-
Contact [email protected]~ if you would like to negotiate an exception for your use-case.
22
13
* Features
23
14
- *The metaprogramming capabilities of Lisp:* True full-power macro support. Macros can use compile-time code execution to conditionally change what is output based on the context of the invocation
24
15
- *The performance of C:* No heavyweight runtime, boxing/unboxing overhead, etc.
@@ -33,6 +24,15 @@ Contact [email protected]~ if you would like to negotiate an exception for your us
33
24
For more advantages, see [[file:doc/NeatUses.org][doc/NeatUses.org]].
34
25
35
26
Some of these features come naturally from using C as the backend. Eventually it would be cool to not have to generate C (e.g. generate LLVM bytecode instead), but that can a project for another time.
Licensed under ~GPL-3.0-or-later~, with added [[https://www.gnu.org/licenses/gpl-faq.en.html#LinkingOverControlledInterface][Linking Over Controlled Interface]] exception.
31
+
~runtime/~ is licensed under MIT License.
32
+
33
+
Please see [[file:doc/Legal.org][doc/Legal.org]] for a detailed explanation.
34
+
35
+
Contact [email protected]~ if you would like to negotiate an exception for your use-case.
36
36
* Building Cakelisp itself
37
37
/Note:/ Windows support is a work-in-progress.
38
38
@@ -88,6 +88,10 @@ Generators keep track of when they require C++ support and will add that require
88
88
Hot-reloading won't work with features like templates or class member functions. This is partially a constraint imposed by dynamic loading, which has to be able to find the symbol. C++ name mangling makes that much more complicated, and compiler-dependent.
89
89
90
90
I'm personally fine with this limitation because I would like to move more towards an Only C environment anyway. This might be evident when reading Cakelisp's source code: I don't use ~class~, define new templates, or define struct/class member functions, but I do rely on some C++ standard library containers and ~&~ references.
91
+
* Learning Cakelisp
92
+
Check out [[file:doc/Cakelisp.org][doc/Cakelisp.org]] for a detailed explanation of the Cakelisp language and build system.
93
+
94
+
Explore ~test/~ and ~runtime/~ for examples of Cakelisp code. [[https://macoy.me/code/macoy/gamelib][GameLib]] is a collection of modules built for making games in Cakelisp. Check both ~src/~ and ~test/~ in GameLib for more extensive code examples.
Copy file name to clipboardexpand all lines: doc/Legal.org
+1-1
Original file line number
Diff line number
Diff line change
@@ -41,4 +41,4 @@ From a high level:
41
41
** Things which are *not* permitted
42
42
- Releasing a proprietary game/software project which ships any of Cakelisp, *excluding* ~runtime/~, without also releasing the source code of that project
43
43
- Distributing modified versions of Cakelisp without also releasing the full modified source code
44
-
- i.e., you must follow ~GPL-3.0-or-later~ if you actually "ship" any Cakelisp code
44
+
- i.e., you must follow ~GPL-3.0-or-later~ if you actually "ship" any of Cakelisp's code, especially the files in ~src/~
0 commit comments