aboutsummaryrefslogtreecommitdiffstats
path: root/template
diff options
context:
space:
mode:
Diffstat (limited to 'template')
-rw-r--r--template/builtin_binary.inc.tmpl30
1 files changed, 30 insertions, 0 deletions
diff --git a/template/builtin_binary.inc.tmpl b/template/builtin_binary.inc.tmpl
new file mode 100644
index 0000000000..eb0bded3d9
--- /dev/null
+++ b/template/builtin_binary.inc.tmpl
@@ -0,0 +1,30 @@
+// -*- c -*-
+% ary = RubyVM.enum_for(:each_builtin).to_a
+// DO NOT MODIFY THIS FILE DIRECTLY.
+// auto-generated file by tool/generic_erb.rb
+// with template/builtin_binary.inc.tmpl
+% unless ARGV.include?('--corss=yes')
+% ary.each{|feature, iseq|
+
+static const unsigned char <%= feature %>_bin[] = {
+% iseq \
+% . to_binary \
+% . each_byte \
+% . map(&:ord) \
+% . map{ '0x%02x' % _1 } \
+% . each_slice(12) {|a|
+ <%= a.join(', ') %>,
+% }
+};
+% }
+
+static const struct builtin_binary builtin_binary[] = {
+% ary.each{|feature, |
+ { <%= feature.dump %>, <%= feature %>_bin, sizeof(<%= feature %>_bin), },
+% }
+ { NULL, },<%# dummy entry %>
+};
+
+#define BUILTIN_BINARY_SIZE <%= ary.size %>
+STATIC_ASSERT(n_builtin, numberof(builtin_binary) == BUILTIN_BINARY_SIZE + 1);
+% end