Initial commit.
This commit is contained in:
commit
283c42bf8f
592 changed files with 26392 additions and 0 deletions
150
doc/html/articles/spec_differences.html
Normal file
150
doc/html/articles/spec_differences.html
Normal file
|
@ -0,0 +1,150 @@
|
|||
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Differences between D:YAML and the YAML specification — D:YAML v0.1 documentation</title>
|
||||
<link rel="stylesheet" href="../_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../',
|
||||
VERSION: '0.1',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="../_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="../_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="../_static/doctools.js"></script>
|
||||
<link rel="top" title="D:YAML v0.1 documentation" href="../index.html" />
|
||||
<link rel="prev" title="YAML syntax" href="../tutorials/yaml_syntax.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../tutorials/yaml_syntax.html" title="YAML syntax"
|
||||
accesskey="P">previous</a></li>
|
||||
<li><a href="../index.html">D:YAML v0.1 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
<div class="section" id="differences-between-d-yaml-and-the-yaml-specification">
|
||||
<h1>Differences between D:YAML and the YAML specification<a class="headerlink" href="#differences-between-d-yaml-and-the-yaml-specification" title="Permalink to this headline">¶</a></h1>
|
||||
<p>There are some differences between D:YAML and the YAML 1.1 specification. Some
|
||||
are caused by difficulty of implementation of some features, such as multiple
|
||||
Unicode encodings within single stream, and some by unnecessary restrictions or
|
||||
ambiguities in the specification.</p>
|
||||
<p>Still, D:YAML tries to be as close to the specification as possible. D:YAML should
|
||||
never load documents with different meaning than according to the specification,
|
||||
and documents that fail to load should be very rare (for instance, very few
|
||||
files use multiple Unicode encodings).</p>
|
||||
<div class="section" id="list-of-known-differences">
|
||||
<h2>List of known differences:<a class="headerlink" href="#list-of-known-differences" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Differences that can cause valid YAML documents not to load:</p>
|
||||
<ul>
|
||||
<li><p class="first">At the moment, all mappings in the internal representation are ordered,
|
||||
and a comparison for equality between equal mappings with differing order
|
||||
will return false. This will be fixed once Phobos has a usable map type or
|
||||
D associative arrays work with variants.</p>
|
||||
</li>
|
||||
<li><p class="first">No support for byte order marks and multiple Unicode encodings in a stream.</p>
|
||||
</li>
|
||||
<li><p class="first">Plain scalars in flow context cannot contain <tt class="docutils literal"><span class="pre">,</span></tt>, <tt class="docutils literal"><span class="pre">:</span></tt> and <tt class="docutils literal"><span class="pre">?</span></tt>.
|
||||
This might change with <tt class="docutils literal"><span class="pre">:</span></tt> in the future.
|
||||
See <a class="reference external" href="http://pyyaml.org/wiki/YAMLColonInFlowContext">http://pyyaml.org/wiki/YAMLColonInFlowContext</a> for details.</p>
|
||||
</li>
|
||||
<li><p class="first">The specification does not restrict characters for anchors and
|
||||
aliases. This may lead to problems, for instance, the document:</p>
|
||||
<div class="highlight-yaml"><div class="highlight"><pre><span class="p-Indicator">[</span> <span class="nv">*alias</span><span class="p-Indicator">,</span> <span class="nv">value</span> <span class="p-Indicator">]</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>can be interpteted in two ways, as:</p>
|
||||
<div class="highlight-yaml"><div class="highlight"><pre><span class="p-Indicator">[</span> <span class="s">"value"</span> <span class="p-Indicator">]</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>and:</p>
|
||||
<div class="highlight-yaml"><div class="highlight"><pre><span class="p-Indicator">[</span> <span class="nv">*alias</span> <span class="p-Indicator">,</span> <span class="s">"value"</span> <span class="p-Indicator">]</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Therefore we restrict aliases and anchors to ASCII alphanumeric characters.</p>
|
||||
</li>
|
||||
<li><p class="first">The specification is confusing about tabs in plain scalars. We don’t use tabs
|
||||
in plain scalars at all.</p>
|
||||
</li>
|
||||
<li><p class="first">There is no support for recursive data structures in DYAML.</p>
|
||||
</li>
|
||||
</ul>
|
||||
<p>Other differences:</p>
|
||||
<ul>
|
||||
<li><p class="first">Indentation is ignored in the flow context, which is less restrictive than the
|
||||
specification. This allows code such as:</p>
|
||||
<div class="highlight-yaml"><div class="highlight"><pre><span class="l-Scalar-Plain">key</span><span class="p-Indicator">:</span> <span class="p-Indicator">{</span>
|
||||
<span class="p-Indicator">}</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</li>
|
||||
<li><p class="first">Indentation rules for quoted scalars are loosed: They don’t need to adhere
|
||||
indentation as <tt class="docutils literal"><span class="pre">"</span></tt> and <tt class="docutils literal"><span class="pre">'</span></tt> clearly mark the beginning and the end of them.</p>
|
||||
</li>
|
||||
<li><p class="first">We allow <tt class="docutils literal"><span class="pre">_</span></tt> in tag handles.</p>
|
||||
</li>
|
||||
<li><p class="first">Right now, two mappings with the same contents but different orderings are
|
||||
considered unequal, even if they are unordered mappings. This is because all
|
||||
mappings are ordered in the D:YAML implementation. This should change in
|
||||
future, once D associative arrays work with variant types or a map class or
|
||||
struct appears in Phobos.</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<p class="logo"><a href="../index.html">
|
||||
<img class="logo" src="../_static/logo210.png" alt="Logo"/>
|
||||
</a></p>
|
||||
<h3><a href="../index.html">Table Of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">Differences between D:YAML and the YAML specification</a><ul>
|
||||
<li><a class="reference internal" href="#list-of-known-differences">List of known differences:</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../tutorials/yaml_syntax.html" title="YAML syntax"
|
||||
>previous</a></li>
|
||||
<li><a href="../index.html">D:YAML v0.1 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer">
|
||||
© Copyright 2011, Ferdinand Majerech. Based on PyYAML http://www.pyyaml.org by Kirill Simonov.
|
||||
Last updated on Aug 16, 2011.
|
||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.1.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
Loading…
Add table
Add a link
Reference in a new issue