summaryrefslogtreecommitdiff
path: root/template
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2024-01-11 22:46:49 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2024-01-13 11:08:00 +0900
commit3edb7f1a0747b92ccc22f881e0a74530c0a7036e (patch)
tree4d890c1d1863fe739b6521e14de1153426c5c20c /template
parentf7178045bb11fc3722a98082ed81e1ec39c4940f (diff)
[DOC] Documentize known_errors
Diffstat (limited to 'template')
-rw-r--r--template/Makefile.in11
-rw-r--r--template/known_errors.inc.tmpl8
2 files changed, 16 insertions, 3 deletions
diff --git a/template/Makefile.in b/template/Makefile.in
index 8c462f20fb..5b6cd87b06 100644
--- a/template/Makefile.in
+++ b/template/Makefile.in
@@ -575,7 +575,16 @@ update-benchmark-driver:
$(BENCHMARK_DRIVER_GIT_URL) benchmark-driver $(GIT_OPTS)
update-known-errors:
- errno --list | cut -d' ' -f1 | sort -u - $(srcdir)/defs/known_errors.def | \
+ errno --list | \
+ $(BASERUBY) -nl -e 'BEGIN {errs = {}}' \
+ -e '/^(E[A-Z_0-9]+)(?: +(?:\d+ +)?(.+))?/ =~ $$_ && errs[$$1] ||= $$2' \
+ -e 'END {' \
+ -e 'errs.delete("ELAST")' \
+ -e 'errs = errs.sort' \
+ -e 'errs << ["ELAST", "Largest errno"]' \
+ -e 'errs.each {|e,d| puts sprintf("%-15s %s", e, d).strip}' \
+ -e '}' \
+ $(srcdir)/defs/known_errors.def - | \
$(IFCHANGE) $(srcdir)/defs/known_errors.def -
INSNS = optinsn.inc optunifs.inc insns.inc insns_info.inc \
diff --git a/template/known_errors.inc.tmpl b/template/known_errors.inc.tmpl
index c3aee77477..4d453395ca 100644
--- a/template/known_errors.inc.tmpl
+++ b/template/known_errors.inc.tmpl
@@ -4,8 +4,12 @@
* template/known_errors.inc.tmpl and defs/known_errors.def.
*/
-% error_names = ARGF.read.split(/\s+/)
-% error_names.each do |name|
+% error_names = ARGF.readlines.map {|line| [$1, $2] if /\A([A-Z]\S+)(?:\s+(\S.*))?/ =~ line}.compact
+% error_names.each do |name, doc|
+#if 0
+ /* <% if doc %>"<%= doc %>"<% else %>\<%= name %><% end %> error */
+ rb_define_const(rb_mErrno, "<%=name%>", e<%=name%>);
+#endif
#ifdef <%=name%>
defined_error("<%=name%>", <%=name%>)
#else