on master help sign in
Added rts/arudino/idris_main.c. It is similar to the standard idris_main.c except it does not attempt to handle argv/argc and it also calls the Arduino init() function.
58eed03stepcut
idris.cabal+18−1
@@ -52,12 +52,28 @@ Data-files: idrisdoc/styles.css
52 jsrts/Runtime-node.js
52 jsrts/Runtime-node.js
53 jsrts/jsbn/jsbn.js
53 jsrts/jsbn/jsbn.js
54 jsrts/jsbn/LICENSE
54 jsrts/jsbn/LICENSE
55+ rts/arduino/idris_main.c
56+ rts/idris_bitstring.c
57+ rts/idris_bitstring.h
58+ rts/idris_gc.c
55 rts/idris_gc.h
59 rts/idris_gc.h
60+ rts/idris_gmp.c
56 rts/idris_gmp.h
61 rts/idris_gmp.h
62+ rts/idris_heap.c
63+ rts/idris_heap.h
57 rts/idris_main.c
64 rts/idris_main.c
58− rts/idris_rts.h
65+ rts/idris_net.c
59 rts/idris_net.h
66 rts/idris_net.h
67+ rts/idris_opts.c
68+ rts/idris_opts.h
69+ rts/idris_rts.c
70+ rts/idris_rts.h
71+ rts/idris_stats.c
72+ rts/idris_stats.h
73+ rts/idris_stdfgn.c
60 rts/idris_stdfgn.h
74 rts/idris_stdfgn.h
75+ rts/mini-gmp.c
76+ rts/mini-gmp.h
61 rts/libtest.c
77 rts/libtest.c
62
78
63Extra-source-files:
79Extra-source-files:
@@ -66,6 +82,7 @@ Extra-source-files:
66
82
67 rts/*.c
83 rts/*.c
68 rts/*.h
84 rts/*.h
85+ rts/arduino/*.c
69 rts/windows/*.c
86 rts/windows/*.c
70 rts/Makefile
87 rts/Makefile
71
88
rts/arduino/idris_main.cnew file+29
@@ -0,0 +1,29 @@
1+#include "idris_opts.h"
2+#include "idris_stats.h"
3+#include "idris_rts.h"
4+#include "Arduino.h"
5+
6+// The default options should give satisfactory results under many circumstances.
7+RTSOpts opts = {
8+ .init_heap_size = 128,
9+ .max_stack_size = 128,
10+ .show_summary = 0
11+};
12+
13+// no argv or argc
14+int main() {
15+ init(); // arduino init function
16+
17+ VM* vm = init_vm(opts.max_stack_size, opts.init_heap_size, 1);
18+ _idris__123_runMain0_125_(vm, NULL);
19+
20+#ifdef IDRIS_DEBUG
21+ if (opts.show_summary) {
22+ idris_gcInfo(vm, 1);
23+ }
24+#endif
25+
26+ Stats stats = terminate(vm);
27+
28+ return 0;
29+}