ruby/psych

libyaml - version, CI on system vs embedded

Closed this issue · 1 comments

Two issues:


First:

Psych currently embeds/vendors libyaml 0.2.1. Current version is 0.2.4.

In my fork, I copied the libyaml code, adjusted version info in ext/psych/yaml/config.h, and only added the code for RUBY_EXTCONF_H in ext/psych/yaml/yaml_private.h. There are more patches currently being applied, some are white space, others may affect compile warnings.

On all three platforms, the code compiled without warnings and passed tests on Ruby 2.6 thru head. All CI passed, but warnings occurred in Ruby 2.5 and earlier. Obviously, ruby/ruby testing is done on more platforms and compilers.


Second:

Current code in extconf.rb uses system libyaml if it exists, otherwise it uses the embedded code. When compiling with system libyaml, it still compiles the embedded files, which may confuse users if warnings are shown.

  1. Should changes be made to extconf.rb to remove the extra compiling and also output something as to how psych is being built?

  2. Should CI be updated to test against both system and embedded libyaml? Not suggesting a full matrix of both...

hsbt commented

We removed bundled source of libyaml from Ruby 3.2. So, We stop to care of them. I'll close this.