Comments (4)
It was necessary in the past due to parallel development happening and taocpp/json driving some enhancements in taocpp/PEGTL before the latter was released as 2.0.0. Also, we are new to CMake so we first tried to keep things simple.
For the future, I agree that we should change taocpp/json to use either a version of the PEGTL installed in the system (via a package manager) or by pointing taocpp/json to a different directory with the version of the PEGTL to use. I'll try to figure out how to do that properly, if you have any information/experience, please let me know :)
from json.
I don't know what's the most proper way to do it.
For my use case it'd be enough if json/include/tao/json/external/pegtl*
was moved two levels up.
And then included not as, for example,
#include "../external/pegtl.hpp"
but as
#include "../../pegtl.hpp"
from json.
That would actually simplify a few things and now that the PEGTL is part of taocpp it fits nicely. I'll look into this idea (probably using git submodule/subtree?), thanks!
from json.
We understand the issue, but aren't quite convinced that it's worth changing. The duplicated code isn't a lot. And with all the templates, we don't expect de-duplication to make much difference in the object files. Also, the PEGTL should be seen as an implementation detail of the JSON library that could in theory change at any time. Having separate copies also allows for independent version updates. Our suggestion is to just go ahead and install both libraries. We have also made sure that the PEGTL embedded in the JSON library does not interfere with an additional, separate version used in the same project, see Embedding the PEGTL. If this doesn't work for you, or you have additional questions please feel free to ask here and/or re-open this issue.
from json.
Related Issues (20)
- How to write cbor/jaxn/msgpack and other file ? HOT 1
- demangle.hpp build failure for MSVC HOT 1
- How can we improve tao-json performance ? HOT 2
- transforming unsigned to chrono::duration HOT 2
- the conan package at https://conan.io/center/taocpp-json missing to/from_nolhmann.hpp files HOT 2
- Stack-overflow occured when parsing a bad json file HOT 2
- why isn't to/from_nolhmann.hpp files are excluded from contrib folder on release HOT 1
- Binding questions HOT 14
- Issues using 1.0.0-beta.13 with C++20 HOT 5
- About the first stable version of Taojson HOT 1
- looks like `tao::json::value::operator[]` doesn't accept string as a key HOT 3
- simple json program won't compile on raspberry pi bullseye HOT 6
- feature request: std::string_view as first argument to TAO_JSON_BIND_REQUIRED HOT 3
- `rewind_mode::dontcare` not implemented in PEGTL? HOT 1
- Reset Event consumer? HOT 2
- Question: conditionally group bindings in a trait?
- json main cannot be compiled with PEGTL main
- Question: nesting binding::object in one binding trait definition possible/supported? HOT 3
- traits: ability to define what optional means HOT 7
- Benchmarks? HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from json.