Closed GoogleCodeExporter closed 9 years ago
Original comment by jbe...@gmail.com
on 30 Jan 2013 at 5:34
Original comment by jbe...@gmail.com
on 30 Jan 2013 at 5:34
Windows 7x64, Visual Studio 2010 SP1-latest
Run CMAKE to generate solution for Visual Studio 2010 amd64. Tell it where to
define boost by adding BOOST_ROOT. CMAKE is happy to configure and generate.
Open solution, set to DEBUG mode and x64 architecture. Right-click ALL_BUILD
and select "Build". Lots of pieces do build successfully but these are the
errors (attached and slightly anonymized).
Original comment by JohnMich...@gmail.com
on 30 Jan 2013 at 5:47
Attachments:
OK I have an idea, the compiler complains that
include\yaml-cpp/node/detail/impl.h(146): error C2734: 'lhs' : const object
must be initialized if not extern
because it doesn't want you to do things like
const MyType awesomeVar;
Because then it's not defined and const!
When we do
YAML::Node node = blahblah;
node["key"]
type("key") == const char*
on line 146 of impl.h
T lhs == const char* lhs
and the compiler complains.
Original comment by JohnMich...@gmail.com
on 30 Jan 2013 at 5:52
I checked it out today, and it appears there was no specialized handler for
const char[N], only for char[N]. I've inserted the specialized handler code
and it now compiles and passes most of the tests except a few edge specs.
In line impl.h at line 312, insert
template<std::size_t N>
struct to_value_t<const char [N]> {
explicit to_value_t(const char *t_): t(t_) {}
const char *t;
typedef std::string return_type;
const std::string operator()() const { return t; }
};
Original comment by JohnMich...@gmail.com
on 1 Feb 2013 at 1:25
Specs which fail
Emitter tests: 84/84 passed
Spec test 6.25 failed: Invalid Verbatim Tags
not implemented yet
Spec test 6.27 failed: Invalid Tag Shorthands
not implemented yet
Spec test 8.5 failed: Chomping Trailing Lines
Assert failed: doc["keep"].as<std::string>() == "# text\n"
Spec test 8.21 failed: Block Scalar Nodes
Assert failed: doc["literal"].as<std::string>() == "value"
Spec tests: 104/108 passed
Node tests: 35/35 passed
Press any key to continue . . .
Original comment by JohnMich...@gmail.com
on 1 Feb 2013 at 1:26
Issue 193 has been merged into this issue.
Original comment by jbe...@gmail.com
on 12 Feb 2013 at 2:10
well I'll use 0.3 for now.
does it still compile on g++or clang++ ?
is the fix that much non trivial ?
Original comment by ezjonas
on 12 Feb 2013 at 6:57
It does compile on both gcc and clang. I believe the fix is trivial-ish (there
are a few patches in this thread), but my Windows machine isn't set up, and
I've been busy lately - sorry, everyone who's waiting for this :(
Original comment by jbe...@gmail.com
on 12 Feb 2013 at 10:51
I encountered the same problem Visual Studio 2010 RTM. While the first patch
(overloads.diff) seems a little messy to me, it does work.
Original comment by joshthep...@gmail.com
on 27 Mar 2013 at 3:49
Fixed (finally!), rf303ab9e8f7c in the default repo.
Please confirm if this compiles for you. Thanks, and sorry for the delay!
Original comment by jbe...@gmail.com
on 2 Apr 2013 at 3:36
Builds and runs without issue. Thanks for the fix. When I run_test's though
only one test runs (and passes) -- did I cmake wrong to miss all the original
tests?
Original comment by JohnMich...@gmail.com
on 2 Apr 2013 at 9:05
Thanks for confirming!
The tests are a little non-standard - it's just a single executable, with
standard output. What's the output that you see?
Original comment by jbe...@gmail.com
on 2 Apr 2013 at 1:41
[deleted comment]
Debug x64, VS2010 SP1
Right click RUN_TESTS, select build.
1>------ Build started: Project: RUN_TESTS, Configuration: Debug x64 ------
1>Build started 4/2/2013 3:57:18 PM.
1>InitializeBuildStatus:
1> Creating "x64\Debug\RUN_TESTS\RUN_TESTS.unsuccessfulbuild" because
"AlwaysCreate" was specified.
1>PostBuildEvent:
1> Test project C:/Users/USER/Desktop/local_work/yamlCpp-bin
1> Start 1: yaml-reader-test
1> 1/1 Test #1: yaml-reader-test ................. Passed 0.87 sec
1>
1> 100% tests passed, 0 tests failed out of 1
1>
1> Total Test time (real) = 0.88 sec
1>FinalizeBuildStatus:
1> Deleting file "x64\Debug\RUN_TESTS\RUN_TESTS.unsuccessfulbuild".
1> Touching "x64\Debug\RUN_TESTS\RUN_TESTS.lastbuildstate".
1>
1>Build succeeded.
1>
1>Time Elapsed 00:00:01.07
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
Original comment by JohnMich...@gmail.com
on 2 Apr 2013 at 2:04
Ah, I see. Yeah, that's my bad for making it so confusing. CMake makes a target
called RUN_TESTS, but that actually doesn't do the right thing. What you should
run is the test/run_tests target (lowercase!).
Original comment by jbe...@gmail.com
on 2 Apr 2013 at 2:15
Doing that I get
Emitter tests: 84/84 passed
Spec test 6.25 failed: Invalid Verbatim Tags
not implemented yet
Spec test 6.27 failed: Invalid Tag Shorthands
not implemented yet
Spec test 8.5 failed: Chomping Trailing Lines
Assert failed: doc["keep"].as<std::string>() == "# text\n"
Spec test 8.21 failed: Block Scalar Nodes
Assert failed: doc["literal"].as<std::string>() == "value"
Spec tests: 104/108 passed
Node tests: 35/35 passed
Press any key to continue . . .
Original comment by JohnMich...@gmail.com
on 2 Apr 2013 at 2:17
Looks great - thanks so much!
Original comment by jbe...@gmail.com
on 2 Apr 2013 at 2:19
Original issue reported on code.google.com by
joh.stal...@gmail.com
on 10 Jan 2013 at 1:53Attachments: