helix_runtime 0.5.0.alpha.2 → 0.5.0.alpha.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ab00e046b76ca504ff8caff613845ff820e9fcbb
4
- data.tar.gz: d6356cc4e6458241ba777668f88a13c482038ff0
3
+ metadata.gz: 68ae586ba4881d2d4fb90ec601a1c78eb66f2079
4
+ data.tar.gz: c2fa2c6630908957c75a10122bf00cff93d0c590
5
5
  SHA512:
6
- metadata.gz: 8ea5cf554df32877b5bacb969b7829d54d082ae54f5bf11b6272d812eaaff83f41ba03703400fd752a92cd1dc0e2979b6b356296717913058721574b12564dd4
7
- data.tar.gz: 3bfef6858197cfc99908131fa100bba9d9fc9c6ac17bb47bf78de327a45315341f622a95d651b84b074285a6e5e48d6044cc4287f73d31d9963afe3374583a60
6
+ metadata.gz: b6a2310a4de5cd65ac1ae731b19ea21c92a69adecb0a98e1a2a6df9df711846ac39bf264d62b9e30124c705dcd0a44cc54993f74722e086603cb273561f926e6
7
+ data.tar.gz: 385a78fe6ac0c6d5f188d3986273744471ccb0e914312292b060f4c770e61faa897fbd00a1a0f855b12735dcdc087fb03f838ae252bc830dff0d16c76d2557f9
data/.rspec CHANGED
@@ -1,2 +1,2 @@
1
- --format documentation
2
- --color
1
+ --format documentation
2
+ --color
@@ -1,7 +1,7 @@
1
- require "mkmf"
2
-
3
- if RUBY_PLATFORM =~ /mingw/
4
- system "rake native_def_file"
5
- end
6
-
7
- create_makefile "helix_runtime/native"
1
+ require "mkmf"
2
+
3
+ if RUBY_PLATFORM =~ /mingw/
4
+ system "rake native_def_file"
5
+ end
6
+
7
+ create_makefile "helix_runtime/native"
@@ -1,145 +1,145 @@
1
- #define BUILDING_DLL
2
-
3
- #include <ruby.h>
4
- #include <ruby/intern.h>
5
- #include <stdbool.h>
6
- #include <helix_runtime.h>
7
-
8
- // Update with version.rb
9
- const char* HELIX_RUNTIME_VERSION = "0.5.0-alpha-2";
10
-
11
- const char* HELIX_PRIsVALUE = PRIsVALUE;
12
- const char* HELIX_SPRINTF_TO_S = "%" PRIsVALUE;
13
- const char* HELIX_SPRINTF_INSPECT = "%+" PRIsVALUE;
14
-
15
- VALUE HELIX_Qtrue = Qtrue;
16
- VALUE HELIX_Qfalse = Qfalse;
17
- VALUE HELIX_Qnil = Qnil;
18
-
19
- long HELIX_RSTRING_LEN(VALUE string) {
20
- return RSTRING_LEN(string);
21
- }
22
-
23
- const char* HELIX_RSTRING_PTR(VALUE string) {
24
- return RSTRING_PTR(string);
25
- }
26
-
27
- long HELIX_RARRAY_LEN(VALUE array) {
28
- return RARRAY_LEN(array);
29
- }
30
-
31
- void* HELIX_RARRAY_PTR(VALUE array) {
32
- return RARRAY_PTR(array);
33
- }
34
-
35
- const void* HELIX_RARRAY_CONST_PTR(VALUE array) {
36
- return RARRAY_CONST_PTR(array);
37
- }
38
-
39
- bool HELIX_RB_TYPE_P(VALUE v, int type) {
40
- return RB_TYPE_P(v, type);
41
- }
42
-
43
- VALUE HELIX_INT2FIX(int c_int) {
44
- return INT2FIX(c_int);
45
- }
46
-
47
- VALUE HELIX_FIX2INT(VALUE v) {
48
- return FIX2INT(v);
49
- }
50
-
51
- VALUE HELIX_rb_utf8_str_new(const char* str, long len) {
52
- return rb_utf8_str_new(str, len);
53
- }
54
-
55
- VALUE HELIX_Data_Wrap_Struct(VALUE klass, HELIX_RUBY_DATA_FUNC mark, HELIX_RUBY_DATA_FUNC free, void* data) {
56
- return Data_Wrap_Struct(klass, mark, free, data);
57
- }
58
-
59
- RUST_U64 HELIX_NUM2U64(VALUE obj) {
60
- return NUM2ULL(obj);
61
- }
62
-
63
- VALUE HELIX_U642NUM(RUST_U64 num) {
64
- return ULL2NUM(num);
65
- }
66
-
67
- RUST_I64 HELIX_NUM2I64(VALUE obj) {
68
- return NUM2LL(obj);
69
- }
70
-
71
- VALUE HELIX_I642NUM(RUST_I64 num) {
72
- return LL2NUM(num);
73
- }
74
-
75
- RUST_U32 HELIX_NUM2U32(VALUE obj) {
76
- return NUM2UINT(obj);
77
- }
78
-
79
- VALUE HELIX_U322NUM(RUST_U32 num) {
80
- return UINT2NUM(num);
81
- }
82
-
83
- RUST_I32 HELIX_NUM2I32(VALUE obj) {
84
- return NUM2INT(obj);
85
- }
86
-
87
- VALUE HELIX_I322NUM(RUST_I32 num) {
88
- return INT2NUM(num);
89
- }
90
-
91
- RUST_F64 HELIX_NUM2F64(VALUE obj) {
92
- return NUM2DBL(obj);
93
- }
94
-
95
- VALUE HELIX_F642NUM(RUST_F64 num) {
96
- return DBL2NUM(num);
97
- }
98
-
99
- void* HELIX_Data_Get_Struct_Value(VALUE obj) {
100
- void* data;
101
- Data_Get_Struct(obj, void*, data);
102
- return data;
103
- }
104
-
105
- void HELIX_Data_Set_Struct_Value(VALUE obj, void* data) {
106
- DATA_PTR(obj) = data;
107
- }
108
-
109
- // void HELIX_rb_define_alloc_func(VALUE klass, HELIX_rb_alloc_func_t func) {
110
- // rb_define_alloc_func(klass, func);
111
- // }
112
-
113
- int HELIX_TYPE(VALUE v) {
114
- return TYPE(v);
115
- }
116
-
117
- int HELIX_T_NONE = T_NONE;
118
- int HELIX_T_NIL = T_NIL;
119
- int HELIX_T_OBJECT = T_OBJECT;
120
- int HELIX_T_CLASS = T_CLASS;
121
- int HELIX_T_ICLASS = T_ICLASS;
122
- int HELIX_T_MODULE = T_MODULE;
123
- int HELIX_T_FLOAT = T_FLOAT;
124
- int HELIX_T_STRING = T_STRING;
125
- int HELIX_T_REGEXP = T_REGEXP;
126
- int HELIX_T_ARRAY = T_ARRAY;
127
- int HELIX_T_HASH = T_HASH;
128
- int HELIX_T_STRUCT = T_STRUCT;
129
- int HELIX_T_BIGNUM = T_BIGNUM;
130
- int HELIX_T_FILE = T_FILE;
131
- int HELIX_T_FIXNUM = T_FIXNUM;
132
- int HELIX_T_TRUE = T_TRUE;
133
- int HELIX_T_FALSE = T_FALSE;
134
- int HELIX_T_DATA = T_DATA;
135
- int HELIX_T_MATCH = T_MATCH;
136
- int HELIX_T_SYMBOL = T_SYMBOL;
137
- int HELIX_T_RATIONAL = T_RATIONAL;
138
- int HELIX_T_COMPLEX = T_COMPLEX;
139
- int HELIX_T_UNDEF = T_UNDEF;
140
- int HELIX_T_NODE = T_NODE;
141
- int HELIX_T_ZOMBIE = T_ZOMBIE;
142
- int HELIX_T_MASK = T_MASK;
143
- // int HELIX_T_IMEMO = T_IMEMO;
144
-
145
- void Init_native() {}
1
+ #define BUILDING_DLL
2
+
3
+ #include <ruby.h>
4
+ #include <ruby/intern.h>
5
+ #include <stdbool.h>
6
+ #include <helix_runtime.h>
7
+
8
+ // Update with version.rb
9
+ const char* HELIX_RUNTIME_VERSION = "0.5.0-alpha-3";
10
+
11
+ const char* HELIX_PRIsVALUE = PRIsVALUE;
12
+ const char* HELIX_SPRINTF_TO_S = "%" PRIsVALUE;
13
+ const char* HELIX_SPRINTF_INSPECT = "%+" PRIsVALUE;
14
+
15
+ VALUE HELIX_Qtrue = Qtrue;
16
+ VALUE HELIX_Qfalse = Qfalse;
17
+ VALUE HELIX_Qnil = Qnil;
18
+
19
+ long HELIX_RSTRING_LEN(VALUE string) {
20
+ return RSTRING_LEN(string);
21
+ }
22
+
23
+ const char* HELIX_RSTRING_PTR(VALUE string) {
24
+ return RSTRING_PTR(string);
25
+ }
26
+
27
+ long HELIX_RARRAY_LEN(VALUE array) {
28
+ return RARRAY_LEN(array);
29
+ }
30
+
31
+ void* HELIX_RARRAY_PTR(VALUE array) {
32
+ return RARRAY_PTR(array);
33
+ }
34
+
35
+ const void* HELIX_RARRAY_CONST_PTR(VALUE array) {
36
+ return RARRAY_CONST_PTR(array);
37
+ }
38
+
39
+ bool HELIX_RB_TYPE_P(VALUE v, int type) {
40
+ return RB_TYPE_P(v, type);
41
+ }
42
+
43
+ VALUE HELIX_INT2FIX(int c_int) {
44
+ return INT2FIX(c_int);
45
+ }
46
+
47
+ VALUE HELIX_FIX2INT(VALUE v) {
48
+ return FIX2INT(v);
49
+ }
50
+
51
+ VALUE HELIX_rb_utf8_str_new(const char* str, long len) {
52
+ return rb_utf8_str_new(str, len);
53
+ }
54
+
55
+ VALUE HELIX_Data_Wrap_Struct(VALUE klass, HELIX_RUBY_DATA_FUNC mark, HELIX_RUBY_DATA_FUNC free, void* data) {
56
+ return Data_Wrap_Struct(klass, mark, free, data);
57
+ }
58
+
59
+ RUST_U64 HELIX_NUM2U64(VALUE obj) {
60
+ return NUM2ULL(obj);
61
+ }
62
+
63
+ VALUE HELIX_U642NUM(RUST_U64 num) {
64
+ return ULL2NUM(num);
65
+ }
66
+
67
+ RUST_I64 HELIX_NUM2I64(VALUE obj) {
68
+ return NUM2LL(obj);
69
+ }
70
+
71
+ VALUE HELIX_I642NUM(RUST_I64 num) {
72
+ return LL2NUM(num);
73
+ }
74
+
75
+ RUST_U32 HELIX_NUM2U32(VALUE obj) {
76
+ return NUM2UINT(obj);
77
+ }
78
+
79
+ VALUE HELIX_U322NUM(RUST_U32 num) {
80
+ return UINT2NUM(num);
81
+ }
82
+
83
+ RUST_I32 HELIX_NUM2I32(VALUE obj) {
84
+ return NUM2INT(obj);
85
+ }
86
+
87
+ VALUE HELIX_I322NUM(RUST_I32 num) {
88
+ return INT2NUM(num);
89
+ }
90
+
91
+ RUST_F64 HELIX_NUM2F64(VALUE obj) {
92
+ return NUM2DBL(obj);
93
+ }
94
+
95
+ VALUE HELIX_F642NUM(RUST_F64 num) {
96
+ return DBL2NUM(num);
97
+ }
98
+
99
+ void* HELIX_Data_Get_Struct_Value(VALUE obj) {
100
+ void* data;
101
+ Data_Get_Struct(obj, void*, data);
102
+ return data;
103
+ }
104
+
105
+ void HELIX_Data_Set_Struct_Value(VALUE obj, void* data) {
106
+ DATA_PTR(obj) = data;
107
+ }
108
+
109
+ // void HELIX_rb_define_alloc_func(VALUE klass, HELIX_rb_alloc_func_t func) {
110
+ // rb_define_alloc_func(klass, func);
111
+ // }
112
+
113
+ int HELIX_TYPE(VALUE v) {
114
+ return TYPE(v);
115
+ }
116
+
117
+ int HELIX_T_NONE = T_NONE;
118
+ int HELIX_T_NIL = T_NIL;
119
+ int HELIX_T_OBJECT = T_OBJECT;
120
+ int HELIX_T_CLASS = T_CLASS;
121
+ int HELIX_T_ICLASS = T_ICLASS;
122
+ int HELIX_T_MODULE = T_MODULE;
123
+ int HELIX_T_FLOAT = T_FLOAT;
124
+ int HELIX_T_STRING = T_STRING;
125
+ int HELIX_T_REGEXP = T_REGEXP;
126
+ int HELIX_T_ARRAY = T_ARRAY;
127
+ int HELIX_T_HASH = T_HASH;
128
+ int HELIX_T_STRUCT = T_STRUCT;
129
+ int HELIX_T_BIGNUM = T_BIGNUM;
130
+ int HELIX_T_FILE = T_FILE;
131
+ int HELIX_T_FIXNUM = T_FIXNUM;
132
+ int HELIX_T_TRUE = T_TRUE;
133
+ int HELIX_T_FALSE = T_FALSE;
134
+ int HELIX_T_DATA = T_DATA;
135
+ int HELIX_T_MATCH = T_MATCH;
136
+ int HELIX_T_SYMBOL = T_SYMBOL;
137
+ int HELIX_T_RATIONAL = T_RATIONAL;
138
+ int HELIX_T_COMPLEX = T_COMPLEX;
139
+ int HELIX_T_UNDEF = T_UNDEF;
140
+ int HELIX_T_NODE = T_NODE;
141
+ int HELIX_T_ZOMBIE = T_ZOMBIE;
142
+ int HELIX_T_MASK = T_MASK;
143
+ // int HELIX_T_IMEMO = T_IMEMO;
144
+
145
+ void Init_native() {}
@@ -1,103 +1,103 @@
1
- #include <ruby.h>
2
- #include <ruby/intern.h>
3
- #include <stdbool.h>
4
-
5
- #if defined _WIN32 || defined __CYGWIN__
6
- #ifdef BUILDING_DLL
7
- #define HELIX_EXTERN __declspec(dllexport)
8
- #else
9
- #define HELIX_EXTERN __declspec(dllimport)
10
- #endif
11
- #else
12
- #define HELIX_EXTERN extern
13
- #endif
14
-
15
- #ifndef HELIXRUNTIME_H
16
- #define HELIXRUNTIME_H
17
-
18
- #define RUST_U64 uint64_t
19
- #define RUST_I64 int64_t
20
-
21
- #define RUST_U32 uint32_t
22
- #define RUST_I32 int32_t
23
-
24
- #define RUST_F64 double
25
-
26
- HELIX_EXTERN const char* HELIX_RUNTIME_VERSION;
27
-
28
- HELIX_EXTERN const char* HELIX_PRIsVALUE;
29
- HELIX_EXTERN const char* HELIX_SPRINTF_TO_S;
30
- HELIX_EXTERN const char* HELIX_SPRINTF_INSPECT;
31
-
32
- HELIX_EXTERN RUST_U64 HELIX_NUM2U64(VALUE);
33
- HELIX_EXTERN VALUE HELIX_U642NUM(RUST_U64);
34
-
35
- HELIX_EXTERN RUST_I64 HELIX_NUM2I64(VALUE);
36
- HELIX_EXTERN VALUE HELIX_I642NUM(RUST_I64);
37
-
38
- HELIX_EXTERN RUST_U32 HELIX_NUM2U32(VALUE);
39
- HELIX_EXTERN VALUE HELIX_U322NUM(RUST_U32);
40
-
41
- HELIX_EXTERN RUST_I32 HELIX_NUM2I32(VALUE);
42
- HELIX_EXTERN VALUE HELIX_I322NUM(RUST_I32);
43
-
44
- HELIX_EXTERN RUST_F64 HELIX_NUM2F64(VALUE);
45
- HELIX_EXTERN VALUE HELIX_F642NUM(RUST_F64);
46
-
47
- HELIX_EXTERN VALUE HELIX_Qtrue;
48
- HELIX_EXTERN VALUE HELIX_Qfalse;
49
- HELIX_EXTERN VALUE HELIX_Qnil;
50
-
51
- HELIX_EXTERN long HELIX_RSTRING_LEN(VALUE string);
52
- HELIX_EXTERN const char* HELIX_RSTRING_PTR(VALUE string);
53
-
54
- HELIX_EXTERN long HELIX_RARRAY_LEN(VALUE array);
55
- HELIX_EXTERN void* HELIX_RARRAY_PTR(VALUE array);
56
- HELIX_EXTERN const void* HELIX_RARRAY_CONST_PTR(VALUE array);
57
-
58
- HELIX_EXTERN bool HELIX_RB_TYPE_P(VALUE v, int type);
59
- HELIX_EXTERN int HELIX_TYPE(VALUE v);
60
-
61
- HELIX_EXTERN VALUE HELIX_INT2FIX(int c_int);
62
- HELIX_EXTERN VALUE HELIX_FIX2INT(VALUE fix);
63
-
64
- HELIX_EXTERN VALUE HELIX_rb_utf8_str_new(const char* str, long len);
65
-
66
- // typedef VALUE (*HELIX_rb_alloc_func_t)(VALUE);
67
- // void HELIX_rb_define_alloc_func(VALUE klass, HELIX_rb_alloc_func_t func);
68
-
69
- typedef void (*HELIX_RUBY_DATA_FUNC)(void*);
70
-
71
- HELIX_EXTERN VALUE HELIX_Data_Wrap_Struct(VALUE klass, HELIX_RUBY_DATA_FUNC mark, HELIX_RUBY_DATA_FUNC free, void* data);
72
- HELIX_EXTERN void* HELIX_Data_Get_Struct_Value(VALUE obj);
73
- HELIX_EXTERN void HELIX_Data_Set_Struct_Value(VALUE obj, void* data);
74
-
75
- HELIX_EXTERN int HELIX_T_NONE;
76
- HELIX_EXTERN int HELIX_T_NIL;
77
- HELIX_EXTERN int HELIX_T_OBJECT;
78
- HELIX_EXTERN int HELIX_T_CLASS;
79
- HELIX_EXTERN int HELIX_T_ICLASS;
80
- HELIX_EXTERN int HELIX_T_MODULE;
81
- HELIX_EXTERN int HELIX_T_FLOAT;
82
- HELIX_EXTERN int HELIX_T_STRING;
83
- HELIX_EXTERN int HELIX_T_REGEXP;
84
- HELIX_EXTERN int HELIX_T_ARRAY;
85
- HELIX_EXTERN int HELIX_T_HASH;
86
- HELIX_EXTERN int HELIX_T_STRUCT;
87
- HELIX_EXTERN int HELIX_T_BIGNUM;
88
- HELIX_EXTERN int HELIX_T_FILE;
89
- HELIX_EXTERN int HELIX_T_FIXNUM;
90
- HELIX_EXTERN int HELIX_T_TRUE;
91
- HELIX_EXTERN int HELIX_T_FALSE;
92
- HELIX_EXTERN int HELIX_T_DATA;
93
- HELIX_EXTERN int HELIX_T_MATCH;
94
- HELIX_EXTERN int HELIX_T_SYMBOL;
95
- HELIX_EXTERN int HELIX_T_RATIONAL;
96
- HELIX_EXTERN int HELIX_T_COMPLEX;
97
- HELIX_EXTERN int HELIX_T_UNDEF;
98
- HELIX_EXTERN int HELIX_T_NODE;
99
- HELIX_EXTERN int HELIX_T_ZOMBIE;
100
- HELIX_EXTERN int HELIX_T_MASK;
101
- // HELIX_EXTERN int HELIX_T_IMEMO = T_IMEMO;
102
-
103
- #endif /* HELIXRUNTIME_H */
1
+ #include <ruby.h>
2
+ #include <ruby/intern.h>
3
+ #include <stdbool.h>
4
+
5
+ #if defined _WIN32 || defined __CYGWIN__
6
+ #ifdef BUILDING_DLL
7
+ #define HELIX_EXTERN __declspec(dllexport)
8
+ #else
9
+ #define HELIX_EXTERN __declspec(dllimport)
10
+ #endif
11
+ #else
12
+ #define HELIX_EXTERN extern
13
+ #endif
14
+
15
+ #ifndef HELIXRUNTIME_H
16
+ #define HELIXRUNTIME_H
17
+
18
+ #define RUST_U64 uint64_t
19
+ #define RUST_I64 int64_t
20
+
21
+ #define RUST_U32 uint32_t
22
+ #define RUST_I32 int32_t
23
+
24
+ #define RUST_F64 double
25
+
26
+ HELIX_EXTERN const char* HELIX_RUNTIME_VERSION;
27
+
28
+ HELIX_EXTERN const char* HELIX_PRIsVALUE;
29
+ HELIX_EXTERN const char* HELIX_SPRINTF_TO_S;
30
+ HELIX_EXTERN const char* HELIX_SPRINTF_INSPECT;
31
+
32
+ HELIX_EXTERN RUST_U64 HELIX_NUM2U64(VALUE);
33
+ HELIX_EXTERN VALUE HELIX_U642NUM(RUST_U64);
34
+
35
+ HELIX_EXTERN RUST_I64 HELIX_NUM2I64(VALUE);
36
+ HELIX_EXTERN VALUE HELIX_I642NUM(RUST_I64);
37
+
38
+ HELIX_EXTERN RUST_U32 HELIX_NUM2U32(VALUE);
39
+ HELIX_EXTERN VALUE HELIX_U322NUM(RUST_U32);
40
+
41
+ HELIX_EXTERN RUST_I32 HELIX_NUM2I32(VALUE);
42
+ HELIX_EXTERN VALUE HELIX_I322NUM(RUST_I32);
43
+
44
+ HELIX_EXTERN RUST_F64 HELIX_NUM2F64(VALUE);
45
+ HELIX_EXTERN VALUE HELIX_F642NUM(RUST_F64);
46
+
47
+ HELIX_EXTERN VALUE HELIX_Qtrue;
48
+ HELIX_EXTERN VALUE HELIX_Qfalse;
49
+ HELIX_EXTERN VALUE HELIX_Qnil;
50
+
51
+ HELIX_EXTERN long HELIX_RSTRING_LEN(VALUE string);
52
+ HELIX_EXTERN const char* HELIX_RSTRING_PTR(VALUE string);
53
+
54
+ HELIX_EXTERN long HELIX_RARRAY_LEN(VALUE array);
55
+ HELIX_EXTERN void* HELIX_RARRAY_PTR(VALUE array);
56
+ HELIX_EXTERN const void* HELIX_RARRAY_CONST_PTR(VALUE array);
57
+
58
+ HELIX_EXTERN bool HELIX_RB_TYPE_P(VALUE v, int type);
59
+ HELIX_EXTERN int HELIX_TYPE(VALUE v);
60
+
61
+ HELIX_EXTERN VALUE HELIX_INT2FIX(int c_int);
62
+ HELIX_EXTERN VALUE HELIX_FIX2INT(VALUE fix);
63
+
64
+ HELIX_EXTERN VALUE HELIX_rb_utf8_str_new(const char* str, long len);
65
+
66
+ // typedef VALUE (*HELIX_rb_alloc_func_t)(VALUE);
67
+ // void HELIX_rb_define_alloc_func(VALUE klass, HELIX_rb_alloc_func_t func);
68
+
69
+ typedef void (*HELIX_RUBY_DATA_FUNC)(void*);
70
+
71
+ HELIX_EXTERN VALUE HELIX_Data_Wrap_Struct(VALUE klass, HELIX_RUBY_DATA_FUNC mark, HELIX_RUBY_DATA_FUNC free, void* data);
72
+ HELIX_EXTERN void* HELIX_Data_Get_Struct_Value(VALUE obj);
73
+ HELIX_EXTERN void HELIX_Data_Set_Struct_Value(VALUE obj, void* data);
74
+
75
+ HELIX_EXTERN int HELIX_T_NONE;
76
+ HELIX_EXTERN int HELIX_T_NIL;
77
+ HELIX_EXTERN int HELIX_T_OBJECT;
78
+ HELIX_EXTERN int HELIX_T_CLASS;
79
+ HELIX_EXTERN int HELIX_T_ICLASS;
80
+ HELIX_EXTERN int HELIX_T_MODULE;
81
+ HELIX_EXTERN int HELIX_T_FLOAT;
82
+ HELIX_EXTERN int HELIX_T_STRING;
83
+ HELIX_EXTERN int HELIX_T_REGEXP;
84
+ HELIX_EXTERN int HELIX_T_ARRAY;
85
+ HELIX_EXTERN int HELIX_T_HASH;
86
+ HELIX_EXTERN int HELIX_T_STRUCT;
87
+ HELIX_EXTERN int HELIX_T_BIGNUM;
88
+ HELIX_EXTERN int HELIX_T_FILE;
89
+ HELIX_EXTERN int HELIX_T_FIXNUM;
90
+ HELIX_EXTERN int HELIX_T_TRUE;
91
+ HELIX_EXTERN int HELIX_T_FALSE;
92
+ HELIX_EXTERN int HELIX_T_DATA;
93
+ HELIX_EXTERN int HELIX_T_MATCH;
94
+ HELIX_EXTERN int HELIX_T_SYMBOL;
95
+ HELIX_EXTERN int HELIX_T_RATIONAL;
96
+ HELIX_EXTERN int HELIX_T_COMPLEX;
97
+ HELIX_EXTERN int HELIX_T_UNDEF;
98
+ HELIX_EXTERN int HELIX_T_NODE;
99
+ HELIX_EXTERN int HELIX_T_ZOMBIE;
100
+ HELIX_EXTERN int HELIX_T_MASK;
101
+ // HELIX_EXTERN int HELIX_T_IMEMO = T_IMEMO;
102
+
103
+ #endif /* HELIXRUNTIME_H */
@@ -7,8 +7,8 @@ module HelixRuntime
7
7
 
8
8
  register CLI::Bootstrap, "bootstrap", "bootstrap PATH [NAME]", "Bootstrap Helix"
9
9
 
10
- desc "add_crate NAME", "Add child project"
11
- def add_crate(name)
10
+ desc "crate NAME", "Generate a Helix crate"
11
+ def crate(name)
12
12
  bootstrap("crates/#{name}", name)
13
13
  append_to_file "Gemfile", "gem '#{name}', path: 'crates/#{name}'\n"
14
14
  end
@@ -68,6 +68,10 @@ module HelixRuntime
68
68
  def app_name
69
69
  name || File.basename(base_path)
70
70
  end
71
+
72
+ def class_name
73
+ app_name.split("_").map(&:capitalize).join
74
+ end
71
75
  end
72
76
  end
73
77
  end
@@ -1,10 +1,10 @@
1
1
  #[macro_use]
2
2
  extern crate helix_runtime as helix;
3
3
 
4
- // declare_types! {
5
- // class MyClass {
6
- // def hello(&self) {
7
- // println!("Hello!");
8
- // }
9
- // }
10
- // }
4
+ ruby! {
5
+ class <%= class_name %> {
6
+ def hello() {
7
+ println!("Hello form <%= app_name %>!");
8
+ }
9
+ }
10
+ }
@@ -10,6 +10,7 @@ module HelixRuntime
10
10
  end
11
11
 
12
12
  def define
13
+ desc "Build Helix projects in crates"
13
14
  task :build do
14
15
  project.projects.each do |p|
15
16
  puts "Building #{p.name}"
@@ -17,6 +18,7 @@ module HelixRuntime
17
18
  end
18
19
  end
19
20
 
21
+ desc "Clobber Helix builds in crates"
20
22
  task :clobber do
21
23
  project.projects.each do |p|
22
24
  puts "Clobbering #{p.name}"
@@ -1,5 +1,5 @@
1
1
  module HelixRuntime
2
2
  # Also update helix_runtime.c
3
- VERSION = "0.5.0-alpha-2"
3
+ VERSION = "0.5.0-alpha-3"
4
4
  GEM_VERSION = VERSION.gsub("-", ".")
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: helix_runtime
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0.alpha.2
4
+ version: 0.5.0.alpha.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yehuda Katz
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-04-19 00:00:00.000000000 Z
12
+ date: 2017-04-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -137,8 +137,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
137
  version: 1.3.1
138
138
  requirements: []
139
139
  rubyforge_project:
140
- rubygems_version: 2.6.11
140
+ rubygems_version: 2.5.1
141
141
  signing_key:
142
142
  specification_version: 4
143
143
  summary: The Helix Runtime
144
144
  test_files: []
145
+ has_rdoc: