Skip to content

Commit

Permalink
[Feature #19719] Universal Parser
Browse files Browse the repository at this point in the history
Introduce Universal Parser mode for the parser.
This commit includes these changes:

* Introduce `UNIVERSAL_PARSER` macro. All of CRuby related functions
  are passed via `struct rb_parser_config_struct` when this macro is enabled.
* Add CI task with 'cppflags=-DUNIVERSAL_PARSER' for ubuntu.
  • Loading branch information
yui-knk committed Jun 12, 2023
1 parent b308f7c commit b481b67
Show file tree
Hide file tree
Showing 36 changed files with 9,042 additions and 2,435 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/ubuntu.yml
Expand Up @@ -43,6 +43,8 @@ jobs:
- test_task: check
configure: '--enable-shared --enable-load-relative'
- test_task: test-all TESTS=--repeat-count=2
- test_task: test-all TESTS=--repeat-count=2
configure: 'cppflags=-DUNIVERSAL_PARSER'
- test_task: test-bundler-parallel
- test_task: test-bundled-gems
fail-fast: false
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Expand Up @@ -205,8 +205,10 @@ lcov*.info

# /ext/ripper/
/ext/ripper/eventids1.c
/ext/ripper/eventids1.h
/ext/ripper/.eventids2-check
/ext/ripper/eventids2table.c
/ext/ripper/ripper_init.c
/ext/ripper/ripper.*
/ext/ripper/ids1
/ext/ripper/ids2
Expand Down
2 changes: 1 addition & 1 deletion ast.c
@@ -1,6 +1,6 @@
/* indent-tabs-mode: nil */
#include "internal.h"
#include "internal/parse.h"
#include "internal/ruby_parser.h"
#include "internal/symbol.h"
#include "internal/warnings.h"
#include "iseq.h"
Expand Down
488 changes: 486 additions & 2 deletions common.mk

Large diffs are not rendered by default.

13 changes: 13 additions & 0 deletions ext/coverage/depend
Expand Up @@ -15,6 +15,7 @@ coverage.o: $(hdrdir)/ruby/backward/2/long_long.h
coverage.o: $(hdrdir)/ruby/backward/2/stdalign.h
coverage.o: $(hdrdir)/ruby/backward/2/stdarg.h
coverage.o: $(hdrdir)/ruby/defines.h
coverage.o: $(hdrdir)/ruby/encoding.h
coverage.o: $(hdrdir)/ruby/intern.h
coverage.o: $(hdrdir)/ruby/internal/abi.h
coverage.o: $(hdrdir)/ruby/internal/anyargs.h
Expand Down Expand Up @@ -87,6 +88,15 @@ coverage.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
coverage.o: $(hdrdir)/ruby/internal/ctype.h
coverage.o: $(hdrdir)/ruby/internal/dllexport.h
coverage.o: $(hdrdir)/ruby/internal/dosish.h
coverage.o: $(hdrdir)/ruby/internal/encoding/coderange.h
coverage.o: $(hdrdir)/ruby/internal/encoding/ctype.h
coverage.o: $(hdrdir)/ruby/internal/encoding/encoding.h
coverage.o: $(hdrdir)/ruby/internal/encoding/pathname.h
coverage.o: $(hdrdir)/ruby/internal/encoding/re.h
coverage.o: $(hdrdir)/ruby/internal/encoding/sprintf.h
coverage.o: $(hdrdir)/ruby/internal/encoding/string.h
coverage.o: $(hdrdir)/ruby/internal/encoding/symbol.h
coverage.o: $(hdrdir)/ruby/internal/encoding/transcode.h
coverage.o: $(hdrdir)/ruby/internal/error.h
coverage.o: $(hdrdir)/ruby/internal/eval.h
coverage.o: $(hdrdir)/ruby/internal/event.h
Expand Down Expand Up @@ -156,6 +166,8 @@ coverage.o: $(hdrdir)/ruby/internal/variable.h
coverage.o: $(hdrdir)/ruby/internal/warning_push.h
coverage.o: $(hdrdir)/ruby/internal/xmalloc.h
coverage.o: $(hdrdir)/ruby/missing.h
coverage.o: $(hdrdir)/ruby/onigmo.h
coverage.o: $(hdrdir)/ruby/oniguruma.h
coverage.o: $(hdrdir)/ruby/ruby.h
coverage.o: $(hdrdir)/ruby/st.h
coverage.o: $(hdrdir)/ruby/subst.h
Expand Down Expand Up @@ -184,6 +196,7 @@ coverage.o: $(top_srcdir)/method.h
coverage.o: $(top_srcdir)/node.h
coverage.o: $(top_srcdir)/ruby_assert.h
coverage.o: $(top_srcdir)/ruby_atomic.h
coverage.o: $(top_srcdir)/rubyparser.h
coverage.o: $(top_srcdir)/shape.h
coverage.o: $(top_srcdir)/thread_pthread.h
coverage.o: $(top_srcdir)/vm_core.h
Expand Down
20 changes: 15 additions & 5 deletions ext/objspace/depend
Expand Up @@ -15,6 +15,7 @@ object_tracing.o: $(hdrdir)/ruby/backward/2/stdalign.h
object_tracing.o: $(hdrdir)/ruby/backward/2/stdarg.h
object_tracing.o: $(hdrdir)/ruby/debug.h
object_tracing.o: $(hdrdir)/ruby/defines.h
object_tracing.o: $(hdrdir)/ruby/encoding.h
object_tracing.o: $(hdrdir)/ruby/intern.h
object_tracing.o: $(hdrdir)/ruby/internal/abi.h
object_tracing.o: $(hdrdir)/ruby/internal/anyargs.h
Expand Down Expand Up @@ -87,6 +88,15 @@ object_tracing.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
object_tracing.o: $(hdrdir)/ruby/internal/ctype.h
object_tracing.o: $(hdrdir)/ruby/internal/dllexport.h
object_tracing.o: $(hdrdir)/ruby/internal/dosish.h
object_tracing.o: $(hdrdir)/ruby/internal/encoding/coderange.h
object_tracing.o: $(hdrdir)/ruby/internal/encoding/ctype.h
object_tracing.o: $(hdrdir)/ruby/internal/encoding/encoding.h
object_tracing.o: $(hdrdir)/ruby/internal/encoding/pathname.h
object_tracing.o: $(hdrdir)/ruby/internal/encoding/re.h
object_tracing.o: $(hdrdir)/ruby/internal/encoding/sprintf.h
object_tracing.o: $(hdrdir)/ruby/internal/encoding/string.h
object_tracing.o: $(hdrdir)/ruby/internal/encoding/symbol.h
object_tracing.o: $(hdrdir)/ruby/internal/encoding/transcode.h
object_tracing.o: $(hdrdir)/ruby/internal/error.h
object_tracing.o: $(hdrdir)/ruby/internal/eval.h
object_tracing.o: $(hdrdir)/ruby/internal/event.h
Expand Down Expand Up @@ -156,6 +166,8 @@ object_tracing.o: $(hdrdir)/ruby/internal/variable.h
object_tracing.o: $(hdrdir)/ruby/internal/warning_push.h
object_tracing.o: $(hdrdir)/ruby/internal/xmalloc.h
object_tracing.o: $(hdrdir)/ruby/missing.h
object_tracing.o: $(hdrdir)/ruby/onigmo.h
object_tracing.o: $(hdrdir)/ruby/oniguruma.h
object_tracing.o: $(hdrdir)/ruby/ruby.h
object_tracing.o: $(hdrdir)/ruby/st.h
object_tracing.o: $(hdrdir)/ruby/subst.h
Expand All @@ -178,6 +190,7 @@ object_tracing.o: $(top_srcdir)/method.h
object_tracing.o: $(top_srcdir)/node.h
object_tracing.o: $(top_srcdir)/ruby_assert.h
object_tracing.o: $(top_srcdir)/ruby_atomic.h
object_tracing.o: $(top_srcdir)/rubyparser.h
object_tracing.o: $(top_srcdir)/thread_pthread.h
object_tracing.o: $(top_srcdir)/vm_core.h
object_tracing.o: $(top_srcdir)/vm_opts.h
Expand Down Expand Up @@ -365,11 +378,6 @@ objspace.o: $(top_srcdir)/ccan/container_of/container_of.h
objspace.o: $(top_srcdir)/ccan/list/list.h
objspace.o: $(top_srcdir)/ccan/str/str.h
objspace.o: $(top_srcdir)/constant.h
objspace.o: $(hdrdir)/ruby/thread_native.h
objspace.o: $(top_srcdir)/ccan/check_type/check_type.h
objspace.o: $(top_srcdir)/ccan/container_of/container_of.h
objspace.o: $(top_srcdir)/ccan/list/list.h
objspace.o: $(top_srcdir)/ccan/str/str.h
objspace.o: $(top_srcdir)/id_table.h
objspace.o: $(top_srcdir)/internal.h
objspace.o: $(top_srcdir)/internal/array.h
Expand All @@ -389,6 +397,7 @@ objspace.o: $(top_srcdir)/method.h
objspace.o: $(top_srcdir)/node.h
objspace.o: $(top_srcdir)/ruby_assert.h
objspace.o: $(top_srcdir)/ruby_atomic.h
objspace.o: $(top_srcdir)/rubyparser.h
objspace.o: $(top_srcdir)/shape.h
objspace.o: $(top_srcdir)/symbol.h
objspace.o: $(top_srcdir)/thread_pthread.h
Expand Down Expand Up @@ -597,6 +606,7 @@ objspace_dump.o: $(top_srcdir)/method.h
objspace_dump.o: $(top_srcdir)/node.h
objspace_dump.o: $(top_srcdir)/ruby_assert.h
objspace_dump.o: $(top_srcdir)/ruby_atomic.h
objspace_dump.o: $(top_srcdir)/rubyparser.h
objspace_dump.o: $(top_srcdir)/shape.h
objspace_dump.o: $(top_srcdir)/symbol.h
objspace_dump.o: $(top_srcdir)/thread_pthread.h
Expand Down

0 comments on commit b481b67

Please sign in to comment.