Incompatible with rapidyaml 0.11.0+

Open Beginner friendly
#1,312 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
62/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
cmake, cpp
Domain
build-system

Research direction

Start in core/vm.cpp at Interpreter::builtinParseYaml and the handleRapidYamlError callback registration around the reported compiler error. Compare the callback signature expected by rapidyaml 0.11.0+ with the current code, then reproduce the Fedora rawhide build using USE_SYSTEM_RAPIDYAML; done means the project compiles successfully with that version.

Written by the indexing model from the issue text.

Description

When built on Fedora rawhide:

FAILED: [code=1] CMakeFiles/jsonnet_obj_shared.dir/core/vm.cpp.o 
/usr/bin/g++ -DUSE_SYSTEM_RAPIDYAML -I/root/rpmbuild/BUILD/jsonnet-0.22.0-build/jsonnet-0.22.0/include -I/root/rpmbuild/BUILD/jsonnet-0.22.0-build/jsonnet-0.22.0/third_party/md5 -I/root/rpmbuild/BUILD/jsonnet-0.22.0-build/jsonnet-0.22.0/redhat-linux-build/stdlib -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wno-complain-wrong-lang -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fPIC -I/usr/include/nlohmann -std=c++17 -fPIC -Wall -Wextra -Wimplicit-fallthrough -pedantic -Woverloaded-virtual -MD -MT CMakeFiles/jsonnet_obj_shared.dir/core/vm.cpp.o -MF CMakeFiles/jsonnet_obj_shared.dir/core/vm.cpp.o.d -o CMakeFiles/jsonnet_obj_shared.dir/core/vm.cpp.o -c /root/rpmbuild/BUILD/jsonnet-0.22.0-build/jsonnet-0.22.0/core/vm.cpp
/root/rpmbuild/BUILD/jsonnet-0.22.0-build/jsonnet-0.22.0/core/vm.cpp: In member function ‘const jsonnet::internal::AST* jsonnet::internal::{anonymous}::Interpreter::builtinParseYaml(const jsonnet::internal::LocationRange&, const std::vector<jsonnet::internal::{anonymous}::Value>&)’:
/root/rpmbuild/BUILD/jsonnet-0.22.0-build/jsonnet-0.22.0/core/vm.cpp:1720:44: error: invalid conversion from ‘void (*)(const char*, size_t, c4::yml::Location, void*)’ {aka ‘void (*)(const char*, long unsigned int, c4::yml::Location, void*)’} to ‘c4::yml::pfn_error_basic’ {aka ‘void (*)(c4::basic_substring<const char>, const c4::yml::ErrorDataBasic&, void*)’} [-fpermissive]
 1720 |                 nullptr, nullptr, nullptr, &Interpreter::handleRapidYamlError
      |                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                            |
      |                                            void (*)(const char*, size_t, c4::yml::Location, void*) {aka void (*)(const char*, long unsigned int, c4::yml::Location, void*)}
In file included from /usr/include/c4/yml/tree.hpp:16,
                 from /usr/include/c4/yml/yml.hpp:5,
                 from /usr/include/ryml.hpp:4,
                 from /root/rpmbuild/BUILD/jsonnet-0.22.0-build/jsonnet-0.22.0/core/vm.cpp:33:
/usr/include/c4/yml/common.hpp:527:83: note: initializing argument 4 of ‘c4::yml::Callbacks::Callbacks(void*, c4::yml::pfn_allocate, c4::yml::pfn_free, c4::yml::pfn_error_basic)’
  527 |     Callbacks(void *user_data, pfn_allocate alloc, pfn_free free, pfn_error_basic error_basic);
      |                                                                   ~~~~~~~~~~~~~~~~^~~~~~~~~~~
/root/rpmbuild/BUILD/jsonnet-0.22.0-build/jsonnet-0.22.0/core/vm.cpp:1721:13: warning: ‘c4::yml::Callbacks::Callbacks(void*, c4::yml::pfn_allocate, c4::yml::pfn_free, c4::yml::pfn_error_basic)’ is deprecated: use the default constructor, followed by the appropriate setters [-Wdeprecated-declarations]
 1721 |             }};
      |             ^
/usr/include/c4/yml/common.hpp:527:5: note: declared here
  527 |     Callbacks(void *user_data, pfn_allocate alloc, pfn_free free, pfn_error_basic error_basic);
      |     ^~~~~~~~~
Dominant language
Jsonnet
Stars
7.6k
Forks
475
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from google/jsonnet

All issues in google/jsonnet

Similar issues

More Build System issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.