dlang-community / d-yaml Goto Github PK
View Code? Open in Web Editor NEWYAML parser and emitter for the D programming language
Home Page: https://dlang-community.github.io/D-YAML/
License: Boost Software License 1.0
YAML parser and emitter for the D programming language
Home Page: https://dlang-community.github.io/D-YAML/
License: Boost Software License 1.0
https://travis-ci.org/dlang-tour/core/jobs/242126360
../../../.dub/packages/dyaml-0.6.2/dyaml/source/dyaml/constructor.d(547,51): Deprecation: function std.string.removechars!string.removechars is deprecated - This function is obsolete and will be removed May 2018. See the docs for more details
../../../.dub/packages/dyaml-0.6.2/dyaml/source/dyaml/scanner.d(166,9): Error: @safe constructor 'dyaml.scanner.Scanner.this' cannot call @system destructor 'dyaml.scanner.Scanner.~this'
dmd failed with exit code 1.
Isn't this fun?
The following snippet doesn't compile:
void main()
{
import dyaml;
string[string] mapping;
auto node = Node(mapping);
const bool f = true;
node["foo"] = f;
}
Compilation fails with following output:
<irrelevant>/dyaml-0.6.3/source/dyaml/node.d(112,25): Error: no property 'opCmp' for type 'const(bool)'
<irrelevant>/dyaml-0.6.3/dyaml/source/dyaml/node.d(1423,46): Error: template instance dyaml.node.YAMLContainer!(const(bool)) error instantiating
<irrelevant>/dyaml-0.6.3/dyaml/source/dyaml/node.d(265,71): instantiated from here: userValue!(const(bool))
<irrelevant>/dyaml-0.6.3/dyaml/source/dyaml/node.d(137,62): instantiated from here: __ctor!(const(bool))
<irrelevant>/dyaml-0.6.3/dyaml/source/dyaml/node.d(1234,26): instantiated from here: __ctor!(string, const(bool))
<irrelevant>/dyaml-0.6.3/dyaml/source/dyaml/node.d(982,32): instantiated from here: add!(string, const(bool))
source/app.d(8,14): instantiated from here: opIndexAssign!(string, const(bool))
If const
is removed, the above snippet compiles. If const
is replaced with immutable
it fails as well. Other types I've tried don't seem to have this behaviour, just bools. D-YAML v0.6.3. It is weird that plain bool
works.
dlang/dmd#6839 fixed some holes in the safety system. Unfortunately D-YAML is affected:
source/dyaml/emitter.d(614,20): Error: address of variable this assigned to this with longer lifetime
source/dyaml/emitter.d(639,20): Error: address of variable this assigned to this with longer lifetime
For the next days I am a bit low on time, so if anyone has time to prepare fix, please go for it ;-)
I'd like to dump some document to YAML file in UTF-8 without BOM, but emitter.d always writes BOM. Is there any plan or obstacle to support, or workaround for this?
Similarly to parsing, emitting should write to memory instead of std.stream. Once done, deprecate the std.stream dependent APIs.
When I compile tests:
dub test big-d:test -v --coverage --combined --build-mode=singleFile
Build is OK!
But after run:
../../.dub/packages/dyaml-0.6.3/dyaml/source/../../.dub/packages/dyaml-0.6.3/dyaml/source/dyaml/../../test/data
std.file.FileException@std/file.d(3676): ../../.dub/packages/dyaml-0.6.3/dyaml/source/../../.dub/packages/dyaml-0.6.3/dyaml/source/dyaml/../../test/data: No such file or directory
Why this line generate duplicate __FILE_FULL_PATH__
???
immutable string dataDir = __FILE_FULL_PATH__.dirName ~ "/../../test/data"
We have a D-YAML fork at Sociomantic with a few extra fixes that we should submit.
I sent you an invitation, @mihails-strasuns-sociomantic
Reader/Scanner should have a compile-time flag parameter specifying whether they only work with ASCII to remove code handling Unicode newlines, decoding, etc. If an ASCII-only file is being loaded, it should use ASCII versions of Reader/Scanner.
cc @ximion.
compiling C:\...\projects\D-YAML.coedit
C:\Dev\metad\repos\D-YAML\source\dyaml\node.d(277): Error: safe function 'dyaml.node.Node.__ctor!string.this' cannot call system function 'std.variant.VariantN!(16u, YAMLNull, YAMLMerge, bool, long, real, ubyte[], SysTime, string, Pair[], Node[], YAMLObject).VariantN.__ctor!string.this'
C:\Dev\metad\repos\D-YAML\source\dyaml\constructor.d(320): Error: template instance dyaml.node.Node.__ctor!string error instantiating
C:\Dev\metad\repos\D-YAML\source\dyaml\composer.d(242): instantiated from here: node!(string, immutable(ScalarStyle))
C:\Dev\metad\repos\D-YAML\source\dyaml\node.d(332): Error: safe function 'dyaml.node.Node.__ctor!(Node).this' cannot call system function 'std.variant.VariantN!(16u, YAMLNull, YAMLMerge, bool, long, real, ubyte[], SysTime, string, Pair[], Node[], YAMLObject).VariantN.__ctor!(Node[]).this'
C:\Dev\metad\repos\D-YAML\source\dyaml\constructor.d(320): Error: template instance dyaml.node.Node.__ctor!(Node) error instantiating
C:\Dev\metad\repos\D-YAML\source\dyaml\composer.d(269): instantiated from here: node!(Node[], immutable(CollectionStyle))
C:\Dev\metad\repos\D-YAML\source\dyaml\node.d(1756): Error: safe function 'dyaml.node.Node.findPair!(string, cast(Flag)true).findPair' cannot call system function 'std.variant.VariantN!(16u, YAMLNull, YAMLMerge, bool, long, real, ubyte[], SysTime, string, Pair[], Node[], YAMLObject).VariantN.get!(const(Pair[])).get'
C:\Dev\metad\repos\D-YAML\source\dyaml\node.d(783): Error: template instance dyaml.node.Node.findPair!(string, cast(Flag)true) error instantiating
C:\Dev\metad\repos\D-YAML\source\dyaml\node.d(620): instantiated from here: opIndex!string
C:\Dev\metad\repos\D-YAML\source\dyaml\node.d(1098): instantiated from here: get!(Pair[], cast(Flag)true)
C:\Dev\metad\repos\D-YAML\source\dyaml\composer.d(310): instantiated from here: opApply!(Node, Node)
C:\Dev\metad\repos\D-YAML\source\dyaml\node.d(1042): Error: template instance dyaml.node.Node.get!(Node[], cast(Flag)true) error instantiating
C:\Dev\metad\repos\D-YAML\source\dyaml\composer.d(330): instantiated from here: opApply!(Node)
C:\Dev\metad\repos\D-YAML\source\dyaml\node.d(332): Error: safe function 'dyaml.node.Node.__ctor!(Pair).this' cannot call system function 'std.variant.VariantN!(16u, YAMLNull, YAMLMerge, bool, long, real, ubyte[], SysTime, string, Pair[], Node[], YAMLObject).VariantN.__ctor!(Pair[]).this'
C:\Dev\metad\repos\D-YAML\source\dyaml\constructor.d(320): Error: template instance dyaml.node.Node.__ctor!(Pair) error instantiating
C:\Dev\metad\repos\D-YAML\source\dyaml\composer.d(387): instantiated from here: node!(Pair[], immutable(CollectionStyle))
C:\Dev\metad\repos\D-YAML\source\dyaml\node.d(1431): Error: safe function 'dyaml.node.Node.value!(YAMLNull).value' cannot call system function 'std.variant.VariantN!(16u, YAMLNull, YAMLMerge, bool, long, real, ubyte[], SysTime, string, Pair[], Node[], YAMLObject).VariantN.__ctor!(YAMLNull).this'
C:\Dev\metad\repos\D-YAML\source\dyaml\constructor.d(361): Error: template instance dyaml.node.Node.value!(YAMLNull) error instantiating
C:\Dev\metad\repos\D-YAML\source\dyaml\constructor.d(189): instantiated from here: addConstructor!(YAMLNull)
C:\Dev\metad\repos\D-YAML\source\dyaml\constructor.d(88): instantiated from here: addConstructorScalar!(YAMLNull)
C:\Dev\metad\repos\D-YAML\source\dyaml\node.d(1431): Error: safe function 'dyaml.node.Node.value!bool.value' cannot call system function 'std.variant.VariantN!(16u, YAMLNull, YAMLMerge, bool, long, real, ubyte[], SysTime, string, Pair[], Node[], YAMLObject).VariantN.__ctor!bool.this'
C:\Dev\metad\repos\D-YAML\source\dyaml\constructor.d(361): Error: template instance dyaml.node.Node.value!bool error instantiating
C:\Dev\metad\repos\D-YAML\source\dyaml\constructor.d(189): instantiated from here: addConstructor!bool
C:\Dev\metad\repos\D-YAML\source\dyaml\constructor.d(89): instantiated from here: addConstructorScalar!bool
C:\Dev\metad\repos\D-YAML\source\dyaml\node.d(1431): Error: safe function 'dyaml.node.Node.value!long.value' cannot call system function 'std.variant.VariantN!(16u, YAMLNull, YAMLMerge, bool, long, real, ubyte[], SysTime, string, Pair[], Node[], YAMLObject).VariantN.__ctor!long.this'
C:\Dev\metad\repos\D-YAML\source\dyaml\constructor.d(361): Error: template instance dyaml.node.Node.value!long error instantiating
C:\Dev\metad\repos\D-YAML\source\dyaml\constructor.d(189): instantiated from here: addConstructor!long
C:\Dev\metad\repos\D-YAML\source\dyaml\constructor.d(90): instantiated from here: addConstructorScalar!long
C:\Dev\metad\repos\D-YAML\source\dyaml\node.d(1431): Error: safe function 'dyaml.node.Node.value!real.value' cannot call system function 'std.variant.VariantN!(16u, YAMLNull, YAMLMerge, bool, long, real, ubyte[], SysTime, string, Pair[], Node[], YAMLObject).VariantN.__ctor!real.this'
C:\Dev\metad\repos\D-YAML\source\dyaml\constructor.d(361): Error: template instance dyaml.node.Node.value!real error instantiating
C:\Dev\metad\repos\D-YAML\source\dyaml\constructor.d(189): instantiated from here: addConstructor!real
C:\Dev\metad\repos\D-YAML\source\dyaml\constructor.d(91): instantiated from here: addConstructorScalar!real
C:\Dev\metad\repos\D-YAML\source\dyaml\node.d(1431): Error: safe function 'dyaml.node.Node.value!(ubyte[]).value' cannot call system function 'std.variant.VariantN!(16u, YAMLNull, YAMLMerge, bool, long, real, ubyte[], SysTime, string, Pair[], Node[], YAMLObject).VariantN.__ctor!(ubyte[]).this'
C:\...\projects\D-YAML.coedit has not been compiled
Upcoming release of 2.067 is breaking compilation:
Building dyaml 0.5.0 configuration "library", build type debug.
Running dmd...
../../../.dub/packages/dyaml-0.5.0/source/dyaml/constructor.d(862): Error: redundant attribute 'const'
../../../.dub/packages/dyaml-0.5.0/source/dyaml/representer.d(605): Error: redundant attribute 'const'
Currently these functions are only accessibly because of a bug in dmd: https://github.com/kiith-sa/D-YAML/blob/master/source/dyaml/node.d#L1643-L1659
I need them for identifying mixed nodes like these:
a:
- 5
- test
- b: 4
c: 3
Would be nice to actually have them public
Posted in wrong repository
Using Ubuntu 16.04 with GDC 5.4.0 and DUB 0.9.24-2.
Trying to install and test package d-yaml using commands:
> cd ~ > dub fetch dyaml > dub test dyaml
Expected: all tests finished successful.
Result: many errors like:
std.file.FileException@../../../../src/libphobos/src/std/file.d(2795): test/data: No such file or directory
Reason: path to test data in file source/dyaml/testtokens.d
is relative.
Proposal: use absolute path.
Add a way to get a default value if the node does not exist.
Current:
name = node.containsKey("Name") ? node["Name"].as!string : "Default Value";
New
name = node["Name", "Default Value"].as!string;
This should work and produce a mapping from a
to π
(U+12157, Cuneiform Ka):
Loader.fromString("a: π
".dup).load();
Even when supplying a byte order mark, it's forbidden: Special unicode characters are not allowed
Switching it to U+0587, an Armenian ligature for ech yiwn, works:
Loader.fromString("a: Φ".dup).load();
Something about the basic multilingual plane, I'm guessing?
I tried this code in DMD 2.071.0,:
import std.stdio;
import yaml;
void main() {
char[] test = "Hello World : [Hello, World]\n"
"Answer: 42".dup;
//Read the input.
Node root = Loader.fromString(test).load();
//Display the data read.
foreach(string word; root["Hello World"])
{
writeln(word);
}
writeln("The answer is ", root["Answer"].as!int);
//Dump the loaded document to output.yaml.
Dumper("output.yaml").dump(root);
}
then this code dumped this.:
[239, 187, 191][37, 89, 65, 77, 76, 32][49, 46, 49][10][45, 45, 45][10][72, 101, 108, 108, 111][32][87, 111, 114, 108, 100][58][32][91][72, 101, 108, 108, 111][44][32][87, 111, 114, 108, 100][93][10][65, 110, 115, 119, 101, 114][58][32][52, 50][10]
I think this is caused by dyaml.stream's writing buffer as ubyte[], not char[].
https://github.com/kiith-sa/D-YAML/blob/master/source/dyaml/stream.d#L64
As it turns out, the yaml spec writers also have a rather thorough test suite. We should try and take advantage of this.
I'd like to read a timestamp that looks like HH:MM:SS
into a TimeOfDay
, but the type seems to be parsed inconsistently:
writeln(Loader.fromString("0:20:15".dup).load().as!string);
writeln(Loader.fromString("20:20:15".dup).load().as!string);
prints:
0:20:15
73215
The former seems to be a string
, the latter a long
. .as!SysTime
doesn't work on either.
at the moment i get always something like test: [1, 2] but i would like to get
test:
- 1
- 2
Can't compile current version (c1caf47) of 64-bit Linux:
$ ./cdc
building release target
CDC: dmd -O -inline -release -noboundscheck -oflibdyaml -lib -w -wi -op source/yaml.d source/dyaml/zerostring.d source/dyaml/representer.d source/dyaml/emitter.d source/dyaml/reader.d source/dyaml/resolver.d source/dyaml/loader.d source/dyaml/fastcharsearch.d source/dyaml/token.d source/dyaml/anchor.d source/dyaml/linebreak.d source/dyaml/style.d source/dyaml/constructor.d source/dyaml/exception.d source/dyaml/node.d source/dyaml/scanner.d source/dyaml/escapes.d source/dyaml/queue.d source/dyaml/composer.d source/dyaml/tagdirective.d source/dyaml/event.d source/dyaml/flags.d source/dyaml/serializer.d source/dyaml/all.d source/dyaml/parser.d source/dyaml/tag.d source/dyaml/dumper.d source/dyaml/encoding.d -L-ldl
source/dyaml/emitter.d(73): Error: undefined identifier 'tagdirective'
source/dyaml/emitter.d(73): Error: undefined identifier 'tagdirective'
source/dyaml/emitter.d(76): Error: undefined identifier 'tagdirective'
source/dyaml/emitter.d(76): Error: dyaml.tagdirective.TagDirective is used as a type
source/dyaml/emitter.d(73): Error: undefined identifier 'tagdirective'
source/dyaml/emitter.d(143): Error: undefined identifier 'tagdirective'
source/dyaml/emitter.d(143): Error: dyaml.tagdirective.TagDirective is used as a type
Compiler failed: Process dmd exited with status 1
DONE
Do you plan to add a schema validator? Something like http://www.kuwata-lab.com/kwalify/?
With dub deprecating the ~master
style branch identifiers, version tags will need adding.
Source: http://forum.rejectedsoftware.com/groups/rejectedsoftware.dub/thread/1020/
Where can I send you an email?
Question:
Does D-YAML support writing just a single piece of data to the file instead of writing the whole file each time you want to save something. For instance, this would be great if you wanted to continually save an applications project file in the background. If the file's huge it would be to much overhead to write the whole thing each time and that limits you to having the user choose when to save their project.
SDLang-D doesn't support this afaik.
Thank you!
Package modules are the 'official' way to do this and are cleaner. Deprecate dyaml.all (and maybe yaml.d) after this change.
Hi
I am using D-yaml in some of my projects, and would like to be able to use it in a compile time executed function. I was wondering if you would be willing to consider making D-Yaml CTFE friendly.
Thanks for your time.
Can't compile D:YAML using dub + dmd v2.062 on Windows 7
Building configuration "application", build type release
Copying files...
Running dmd (compile)...
.dub\packages\dyaml\source\dyaml\node.d(1539): Error: not a property this.type().toString
.dub\packages\dyaml\source\dyaml\node.d(1408): Error: template instance dyaml.node.Node.cmp!(cast(Flag)true) error instantiating
.dub\packages\dyaml\source\dyaml\node.d(510): instantiated from here: equals!(cast(Flag)true, const(Node))
.dub\packages\dyaml\source\dyaml\node.d(133): instantiated from here: opEquals!(Node)
.dub\packages\dyaml\source\dyaml\node.d(510): Error: template instance dyaml.node.Node.equals!(cast(Flag)true, const(Node)) error instantiating
.dub\packages\dyaml\source\dyaml\node.d(133): instantiated from here: opEquals!(Node)
Imho instead of committing the docs in the source code, we could run ddox on Travis/Circle Ci
For CircleCi it can be reduced down to something like:
test:
override:
- make -f doc/Makefile html # or any other command to create the docs
deployment:
aws:
branch: master
commands:
- AWS_DEFAULT_REGION=eu-west-1 aws s3 sync --acl public-read --delete web s3://docs.mir.dlang.io/latest
The AWS S3 key can be conveniently added to CircleCi via their web interface.
I get this error when I run tests for my d program that uses dyaml as one of its dependecies.
dub test --compiler=ldc2
results in:
D:YAML Resolver unittest
D:YAML Constructor unittest
std.file.FileException@/build/ldc-I3nwWj/ldc-0.17.1/runtime/phobos/std/file.d(2796): test/data: No such file or directory
----------------
Flags unittest
Program exited with code 1
this line:
auto yamlRoot = Loader("typeIDs.yaml").load();
Is taking multiple minutes.
Parsing the file using YamlDotNet is a matter of seconds:
var yaml = new YamlStream();
yaml.Load(new StreamReader("typeIDs.yaml"));
(For both libraries then iterating over the data is about equally fast)
Check the Eve Online Static Data Export for some large files to test
e.g. travis ghpages deploy likes:
on:
branch: master
if i write this with dyaml i get 'on' ...
i think its not necessary to escape on, On, Off, .. on the left side of a colon.
I suggest you either to put tinyendian as a sub repository (so that when cloning a sub folder is automatically created) or to include it totally in the lib (as it's only 160 LOC).
As far as I can tell, there is currently no way to dump "pretty" YAML.
This would be very nice to have, since you sometimes need to be able to generate YAML that needs to be human-readable, such as configuration files.
When building a project which relies on D-YAML in unittest-cov
build mode, linking fails citing multiple undefined references to a symbol __coverage
.
Hello,
I might be missing something, but this code:
import std.stdio;
import dyaml.all;
void main()
{
//Read the input.
Node root = Loader("test.yaml").load();
//Display the data read.
foreach(string word; root["Hello World"])
{
writeln(word);
}
writeln("The answer is ", root["Answer"].as!int);
//Dump the loaded document to output.yaml.
Dumper("test.yaml").dump(root);
//Read it again
Node root2 = Loader("test.yaml").load();
}
Causes an exception on Windows because Dumper does not close the file when it finished dumping.
My temporary workaround is a close method in Dumper.
Thanks
Should be the first step to making D:YAML Nodes range based. Also, when this is added, the current opApply() should be deprecated (but kept for one/more releases).
E.g. sequence
, mapping
, mappingKeys
, mappingValues
. These will assert that the key is a sequence/mapping.
Example: string[] strings = node.mappingKeys.map!(n => n.as!string).array;
Range primitives of these ranges could be more @safe
/pure
/nothrow
/@nogc
than current monolithic opApply()
.
Future ranges could also include depth/breadth first range over all Nodes and their subnodes. The element of such ranges should include Node packed with current depth and maybe some more info.
AutoDDoc doesn't really work with external dub dependencies and ddox generates better docs.
Would like to get some thoughts on this before I put much work into it.
Many parts of this library are marked @nogc
. However, despite that, this library cannot be used in @nogc
code. Some (limited) testing also shows that any performance gains from this are minimal.
These parts of D-YAML depend on modified copies of phobos functions, making this library quite a bit larger than it needs to be.
My proposal is to completely remove the redundant functions and remove any @nogc
annotations that are no longer valid, making this library noticeably slimmer.
When compiling as a dependency, I get the following error:
../../../../.dub/packages/dyaml-master/dyaml/source/dyaml/node.d(726,36): Error: @βsafe function dyaml.node.Node.opIndex!string.opIndex cannot call @βsystem function dyaml.node.Node.findPair!(string, cast(Flag)true).findPair
../../../../.dub/packages/dyaml-master/dyaml/source/dyaml/node.d(590,38): Error: template instancedyaml.node.Node.opIndex!string
error instantiating
../../../../.dub/packages/dyaml-master/dyaml/source/dyaml/node.d(1837,35): instantiated from here: get!(const(string), cast(Flag)false)
../../../../.dub/packages/dyaml-master/dyaml/source/dyaml/node.d(521,39): instantiated from here: equals!(cast(Flag)true, const(string))
../../../../.dub/packages/dyaml-master/dyaml/source/dyaml/node.d(2147,33): instantiated from here: opEquals!string
../../../../.dub/packages/dyaml-master/dyaml/source/dyaml/node.d(2080,24): ... (4 instantiations, -v to show) ...
The problem is that apparently findPair is not being inferred as safe. If I just add the @safe
attribute manually here, it works as expected.
There are many deprecation, but these are errors:
source/dyaml/emitter.d(1011,13): Error: field ScalarAnalysis.scalar cannot modify misaligned pointers in @safe code
source/dyaml/event.d(230,5): Error: field Event.anchor cannot access pointers in @safe code that overlap other fields
source/dyaml/event.d(231,5): Error: field Event.tag cannot access pointers in @safe code that overlap other fields
source/dyaml/loader.d(186,43): Error: cast from void[] to ubyte[] not allowed in safe code
Would it be okay if an @Property was created so that we could get at the Scalar/Collection style of a node, to verify that a user has used double quotes, single quotes etc. I would gladly make a pull request if you'd merge it.
This is something I'd really like to support some day.
sorry if this is already solved, but cannot find any clue in the documentation, neither in the examples, neither in the source, that yaml-comments are supported.
Would love to use D-Yaml if comments could be supported. Want to format a yaml document and for that comments are essential.
Thanks!
Would it be possible to enable iterating over const
(and immutable
) nodes? At the moment the following doesn't compile (assuming the node in question is a sequence):
void
foo(const Node n)
{
import std.stdio;
foreach (string elem; n)
writeln(elem);
}
Simple means (sticking inout
, const
, etc. at some methods) didn't help, and I'm, unfortunately, not familiar enough with the source to find out what needs changing to support such iteration.
with the latest dmd from github:
$ rdmd cdc.d
building release target
CDC: dmd -O -inline -release -noboundscheck -oflibdyaml -lib -w -wi -op dyaml/resolver.d dyaml/representer.d dyaml/parser.d dyaml/encoding.d dyaml/exception.d dyaml/reader.d dyaml/node.d dyaml/style.d dyaml/zerostring.d dyaml/constructor.d dyaml/loader.d dyaml/dumper.d dyaml/queue.d dyaml/tag.d dyaml/flags.d dyaml/escapes.d dyaml/scanner.d dyaml/tagdirective.d dyaml/event.d dyaml/token.d dyaml/linebreak.d dyaml/anchor.d dyaml/fastcharsearch.d dyaml/serializer.d dyaml/emitter.d dyaml/composer.d yaml.d -L-ldl
dyaml/node.d(149): Error: safe function 'this' cannot call system function 'opAssign'
dyaml/node.d(151): Error: safe function 'this' cannot call system function 'opAssign'
dyaml/representer.d(402): Error: template instance dyaml.node.Node.Pair.__ctor!(Node,Node) error instantiating
dyaml/representer.d(537): Error: safe function 'representNodes' cannot call system function 'opAssign'
dyaml/node.d(150): Error: safe function 'this' cannot call system function 'opAssign'
dyaml/node.d(152): Error: safe function 'this' cannot call system function 'opAssign'
dyaml/representer.d(636): Error: template instance dyaml.node.Node.Pair.ctor!(string,int) error instantiating
dyaml/parser.d(142): Error: this.states.reserve is not nothrow
dyaml/parser.d(143): Error: this.marks.reserve is not nothrow
dyaml/parser.d(138): Error: constructor dyaml.parser.Parser.this 'this' is nothrow yet may throw
dyaml/exception.d(64): Error: contextMark.toString is not nothrow
dyaml/exception.d(60): Error: constructor dyaml.exception.MarkedYAMLException.this 'this' is nothrow yet may throw
dyaml/exception.d(73): Error: problemMark.toString is not nothrow
dyaml/exception.d(70): Error: constructor dyaml.exception.MarkedYAMLException.this 'this' is nothrow yet may throw
dyaml/node.d(45): Error: start.toString is not nothrow
dyaml/node.d(42): Error: constructor dyaml.node.NodeException.this 'this' is nothrow yet may throw
dyaml/node.d(1772): Error: safe function 'merge' cannot call system function 'opAssign'
dyaml/constructor.d(51): Error: start.toString is not nothrow
dyaml/constructor.d(48): Error: constructor dyaml.constructor.ConstructorException.this 'this' is nothrow yet may throw
dyaml/dumper.d(172): Error: constructor this is not nothrow
dyaml/dumper.d(173): Error: constructor this is not nothrow
Compiler failed: Process dmd exited with status 1
DONE
Of course this could be a dmd bug, but I personally don't know enough to tell the difference in this case.
P.S. just wanted to say that this is an awesome project, I recently moved to it from trying to hack my way through std.xml for config files for a recent project. Now my read_cfg function is now only a third of the lines it was and has gone from nearly illegible to simple and concise.
using DMD64 D Compiler v2.071.0
this library does not compile... there is anyone that maintain this project?
../../.dub/packages/dyaml-0.5.2/source/dyaml/dumper.d(15,8): Deprecation: module std.stream is deprecated - It will be removed from Phobos in October 2016. If you still need it, go to https://github.com/DigitalMars/undeaD
../../.dub/packages/dyaml-0.5.2/source/dyaml/emitter.d(21,8): Deprecation: module std.stream is deprecated - It will be removed from Phobos in October 2016. If you still need it, go to https://github.com/DigitalMars/undeaD
../../.dub/packages/dyaml-0.5.2/source/dyaml/representer.d(679,8): Deprecation: module std.stream is deprecated - It will be removed from Phobos in October 2016. If you still need it, go to https://github.com/DigitalMars/undeaD
../../.dub/packages/dyaml-0.5.2/source/dyaml/streamcompat.d(10,8): Deprecation: module std.stream is deprecated - It will be removed from Phobos in October 2016. If you still need it, go to https://github.com/DigitalMars/undeaD
../../.dub/packages/dyaml-0.5.2/source/dyaml/testcommon.d(14,15): Deprecation: module std.stream is deprecated - It will be removed from Phobos in October 2016. If you still need it, go to https://github.com/DigitalMars/undeaD
../../.dub/packages/dyaml-0.5.2/source/dyaml/loader.d(171,16): Deprecation: module std.stream is deprecated - It will be removed from Phobos in October 2016. If you still need it, go to https://github.com/DigitalMars/undeaD
../../.dub/packages/dyaml-0.5.2/source/dyaml/constructor.d(611,27): Deprecation: constructor std.datetime.SysTime.this is deprecated - Please use the overload which takes a Duration instead of a FracSec.
../../.dub/packages/dyaml-0.5.2/source/dyaml/constructor.d(627,23): Deprecation: constructor std.datetime.SysTime.this is deprecated - Please use the overload which takes a Duration instead of a FracSec.
../../.dub/packages/dyaml-0.5.2/source/dyaml/emitter.d(286,34): Error: function dyaml.emitter.FastCharSearch!("\x0a\x85\x28\x20\x29\x20"d, 256u).canFind (const(dchar) c) is not callable using argument types (EventID[], const(EventID))
../../.dub/packages/dyaml-0.5.2/source/dyaml/emitter.d(287,37): Error: function dyaml.emitter.FastCharSearch!("\x0a\x85\x28\x20\x29\x20"d, 256u).canFind (const(dchar) c) is not callable using argument types (EventID[], const(EventID))
../../.dub/packages/dyaml-0.5.2/source/dyaml/emitter.d(904,55): Error: function dyaml.emitter.FastCharSearch!("\x0a\x85\x28\x20\x29\x20"d, 256u).canFind (const(dchar) c) is not callable using argument types (dstring, const(dchar))
../../.dub/packages/dyaml-0.5.2/source/dyaml/emitter.d(925,71): Error: function dyaml.emitter.FastCharSearch!("\x0a\x85\x28\x20\x29\x20"d, 256u).canFind (const(dchar) c) is not callable using argument types (dstring, const(dchar))
../../.dub/packages/dyaml-0.5.2/source/dyaml/emitter.d(971,69): Error: function dyaml.emitter.FastCharSearch!("\x0a\x85\x28\x20\x29\x20"d, 256u).canFind (const(dchar) c) is not callable using argument types (dstring, const(dchar))
../../.dub/packages/dyaml-0.5.2/source/dyaml/emitter.d(997,55): Error: function dyaml.emitter.FastCharSearch!("\x0a\x85\x28\x20\x29\x20"d, 256u).canFind (const(dchar) c) is not callable using argument types (dstring, const(dchar))
../../.dub/packages/dyaml-0.5.2/source/dyaml/emitter.d(1041,79): Error: function dyaml.emitter.FastCharSearch!("\x0a\x85\x28\x20\x29\x20"d, 256u).canFind (const(dchar) c) is not callable using argument types (dstring, immutable(char))
../../.dub/packages/dyaml-0.5.2/source/dyaml/emitter.d(1384,77): Error: function dyaml.emitter.FastCharSearch!("\x0a\x85\x28\x20\x29\x20"d, 256u).canFind (const(dchar) c) is not callable using argument types (dstring, const(dchar))
../../.dub/packages/dyaml-0.5.2/source/dyaml/testconstructor.d(221,46): Deprecation: constructor std.datetime.SysTime.this is deprecated - Please use the overload which takes a Duration instead of a FracSec.
../../.dub/packages/dyaml-0.5.2/source/dyaml/testconstructor.d(222,46): Deprecation: constructor std.datetime.SysTime.this is deprecated - Please use the overload which takes a Duration instead of a FracSec.
../../.dub/packages/dyaml-0.5.2/source/dyaml/testconstructor.d(223,46): Deprecation: constructor std.datetime.SysTime.this is deprecated - Please use the overload which takes a Duration instead of a FracSec.
../../.dub/packages/dyaml-0.5.2/source/dyaml/testconstructor.d(224,46): Deprecation: constructor std.datetime.SysTime.this is deprecated - Please use the overload which takes a Duration instead of a FracSec.
../../.dub/packages/dyaml-0.5.2/source/dyaml/testconstructor.d(286,26): Deprecation: constructor std.datetime.SysTime.this is deprecated - Please use the overload which takes a Duration instead of a FracSec.
../../.dub/packages/dyaml-0.5.2/source/dyaml/testconstructor.d(287,26): Deprecation: constructor std.datetime.SysTime.this is deprecated - Please use the overload which takes a Duration instead of a FracSec.
../../.dub/packages/dyaml-0.5.2/source/dyaml/testconstructor.d(288,26): Deprecation: constructor std.datetime.SysTime.this is deprecated - Please use the overload which takes a Duration instead of a FracSec.
../../.dub/packages/dyaml-0.5.2/source/dyaml/testconstructor.d(291,26): Deprecation: constructor std.datetime.SysTime.this is deprecated - Please use the overload which takes a Duration instead of a FracSec.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.