1
- ╭────────────────╮
2
- │ │
3
- │ │
4
- │ ╲ │
5
- │ ╲ (λ) │
6
- │ │╲~~│ │
7
- │ │ ╲ │ │
8
- │ ╰───╯ │
9
- │ │
10
- │ │
11
- ╰────────────────╯
12
-
1
+ _ _ \
2
+ | (_)_ __ ___ ___ \ (λ)
3
+ | | | '_ ` _ \ / _ \ |\~~|
4
+ | | | | | | | | (_) || \ |
5
+ |_|_|_| |_| |_|\___/ |___|
6
+
13
7
14
- written by M. "mokrates" Molle
8
+ written by Moritz Molle
15
9
16
10
Licensed under GPL (v3) (applies to all files in this tarball)
17
11
http://www.gnu.org/licenses/gpl.html
18
12
19
- **************************************
13
+ ____
20
14
21
15
for the impatient:
22
- $ bash build.sh
16
+ $ bash build.sh bin
23
17
builds and installs limo into ~/.local/bin and ~/.local/lib
24
18
25
- $ make limo-almost-static
19
+ Installing systemwide:
20
+ $ make
26
21
$ make install
27
22
builds and installs into /usr/local/
28
23
24
+ ## Custom prefix
29
25
You can define a prefix where limo should be installed by giving make
30
26
a INSTALL_PREFIX:
31
27
$ make clean
@@ -34,9 +30,12 @@ $ make INSTALL_PREFIX=/usr/local/ install
34
30
please be aware that the INSTALL_PREFIX should be given to all the
35
31
make targets.
36
32
37
- It it advisable to always make clean before every build.
33
+ It it advisable to always make clean before every build. build.sh does this.
38
34
39
- **************************************
35
+ build.sh:
36
+ build.sh is _really_ simple, I recommend to modify it to your needs and use that.
37
+
38
+ ***************************************
40
39
41
40
dependencies:
42
41
@@ -57,13 +56,25 @@ library, add it to inlined.mods
57
56
58
57
Library dependencies:
59
58
ncurses: ncurses
60
- ncmenu: ncurses ncmenu
59
+ ncmenu: ncurses ncmenu (if you inline ncmenu, you have also have to inline ncurses)
61
60
sdl: sdl
62
61
simplesdl: sdl
62
+ limogtk: gtk3
63
+
64
+ limogtk
65
+ =======
66
+ Not built by default. This is very dirty stuff.
67
+ 1. You need a working limo installed to build limogtk
68
+ 2. this takes a while. The scripts generate C code from the gtk header files.
69
+
70
+ ~/limo$ cd libs/limogtk
71
+ ~/limo/libs/limogtk$ make clean
72
+ ~/limo/libs/limogtk$ make
73
+ ~/limo/libs/limogtk$ cd ../..
74
+
75
+ ~/limo$ make install
76
+ or ~/limo$ bash build.sh
63
77
64
- NCMENU
65
- If you build ncmenu, you have to inline or not inline it just like
66
- ncurses. If you don't limo segfaults.
67
78
68
79
Building on MAC OS X
69
80
====================
@@ -74,6 +85,10 @@ Building on Windows Subsystem for Linux (WSL)
74
85
=============================================
75
86
You have to use the limo-wsl or limo-almost-static target.
76
87
88
+ Attributions and Licenses
89
+ =========================
90
+ As not 100% of the code is mine, please have a look at attributions.txt
91
+
77
92
**************************************
78
93
79
94
specials:
@@ -98,3 +113,36 @@ dcons/#<thunk> : #<thunk> are instances of a type which cannot be instatiated by
98
113
argument, packs the second into an #<thunk> and cons'es those two.
99
114
this way the cdr of the cons only gets evaluated, when cdr() is called on the
100
115
cons. this is limo's way of implementing iterators.
116
+
117
+ There's tons of other stuff:
118
+ language:
119
+ - tailcall optimization
120
+ - multithreading
121
+ - objects/classes
122
+ - bignums/quotients
123
+ - macros
124
+
125
+ simple libraries:
126
+ - simplest networking (sockets)
127
+ - simple graphics (sdl/gtk/ncurses)
128
+
129
+ EXAMPLES
130
+ ========
131
+
132
+ Tetris
133
+ ------
134
+ You can play tetris
135
+ limo examples/tetris.limo
136
+
137
+ Snake
138
+ -----
139
+ You can see snake beat itself:
140
+ limo examples/autosnake2.limo 10 10
141
+
142
+ mandelbrot
143
+ ----------
144
+ The usual mandelbrot fractal rendered with sdl
145
+
146
+ more
147
+ ----
148
+ just see the examples/-directory.
0 commit comments