Skip to content

Extension not fully rebuild when config.yml changes #3931

@Earlopain

Description

@Earlopain

Ref #3926 (comment)

I can reproduce it with the following:

$ bundle exec rake clean
$ git checkout 7c16f777bd4708a513097d9e1f6c91639f9c5a6f
bundle exec rake compile

$ git checkout 27c24fdc0d8c9d14f819f83050d573315e8474ee # changes to config.yml
$ bundle exec rake # crashes/segfaults

I don't really know much about this but noticed that some object files don't get rebuild, which they should probably.

$ find tmp -name "*.o" | xargs ls -la
10:53 tmp/x86_64-linux/prism/4.0.0/api_node.o
10:53 tmp/x86_64-linux/prism/4.0.0/diagnostic.o
10:50 tmp/x86_64-linux/prism/4.0.0/encoding.o
10:50 tmp/x86_64-linux/prism/4.0.0/extension.o
10:53 tmp/x86_64-linux/prism/4.0.0/node.o
10:50 tmp/x86_64-linux/prism/4.0.0/options.o
10:50 tmp/x86_64-linux/prism/4.0.0/pm_buffer.o
10:50 tmp/x86_64-linux/prism/4.0.0/pm_char.o
10:50 tmp/x86_64-linux/prism/4.0.0/pm_constant_pool.o
10:50 tmp/x86_64-linux/prism/4.0.0/pm_integer.o
10:50 tmp/x86_64-linux/prism/4.0.0/pm_list.o
10:50 tmp/x86_64-linux/prism/4.0.0/pm_memchr.o
10:50 tmp/x86_64-linux/prism/4.0.0/pm_newline_list.o
10:50 tmp/x86_64-linux/prism/4.0.0/pm_string.o
10:50 tmp/x86_64-linux/prism/4.0.0/pm_strncasecmp.o
10:50 tmp/x86_64-linux/prism/4.0.0/pm_strpbrk.o
10:53 tmp/x86_64-linux/prism/4.0.0/prettyprint.o
10:53 tmp/x86_64-linux/prism/4.0.0/prism.o
10:50 tmp/x86_64-linux/prism/4.0.0/regexp.o
10:53 tmp/x86_64-linux/prism/4.0.0/serialize.o
10:50 tmp/x86_64-linux/prism/4.0.0/static_literals.o
10:53 tmp/x86_64-linux/prism/4.0.0/token_type.o

extension.o for example did not get rebuild, even though prism/ast.h changed. Probably a few more should also be updated.
In the generated Makefile, I can see that extension.h is the only prism-specific header that is referenced.

But I don't know what to change in extconf.rb to make this work.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions