# Buildsheet autogenerated by ravenadm tool -- Do not edit. NAMEBASE= AdaYaml VERSION= 0.3.0 KEYWORDS= textproc ada VARIANTS= standard SDESC[standard]= Experimental YAML 1.3 implementation library HOMEPAGE= https://ada.yaml.io/ CONTACT= nobody DOWNLOAD_GROUPS= main SITES[main]= GITHUB/yaml:AdaYaml:v0.3.0 DISTFILE[1]= generated:main DF_INDEX= 1 SPKGS[standard]= single OPTIONS_AVAILABLE= none OPTIONS_STANDARD= none USES= gprbuild LICENSE= MIT:single LICENSE_FILE= MIT:{{WRKSRC}}/copying.txt LICENSE_SCHEME= solo INSTALL_REQ_TOOLCHAIN= yes do-build: (cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} gprbuild -p -P yaml) do-install: (cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} gprinstall -p \ --prefix=${STAGEDIR}${PREFIX} \ --project-subdir=${STAGEDIR}${PREFIX}/lib/gnat \ --sources-subdir=${STAGEDIR}${PREFIX}/include/AdaYaml/yaml \ --lib-subdir=${STAGEDIR}${PREFIX}/lib/AdaYaml/yaml \ yaml.gpr) ${RM} -r ${STAGEDIR}${PREFIX}/lib/gnat/manifests [FILE:1535:descriptions/desc.single] AdaYaml is an experimental YAML implementation in Ada 2012. Experimental means that it does not conform to any released YAML specification. Instead, it is a testbed for the proposed YAML 1.3 standard. This list of RFCs gives an overview of the differences between YAML 1.2 and upcoming YAML 1.3. Since YAML 1.3 is not finished, everything is due to change. However, most of the changes for YAML 1.3 are cosmetic and have been carefully edited to not break common YAML 1.2 documents. So if you are searching for a YAML 1.2 implementation, AdaYaml may still be a viable option for you which only breaks in rather obscure edge cases. Currently, AdaYaml implements parsing and presenting YAML data, i.e. you can use it to transform a character stream (a file, a string, ...) into a sequence of YAML events and vice versa. There also is currently a DOM API which allows you to transform a YAML input to a DOM structure and vice versa. AdaYaml currently does not support serialising arbitrary Ada data structures. Status: The parser is pretty well-tested with the external yaml-test-suite which strives to be part of the upcoming YAML 1.3 standard. Other parts of the API have been tested less extensively. Project Goals: The goals of this project are: * To evaluate YAML 1.3 RFCs by implementing them. * To evolve into the YAML 1.3 reference implementation. * To offer a drop-in alternative to libyaml by providing the C-level interface of yaml.h. AdaYaml is not designed to be used under hard memory constraints. [FILE:104:distinfo] b434fc4c5404810a042fc1cee4feabd39eea3591066cd7b78d6b34364c45a523 199039 yaml-AdaYaml-0.3.0.tar.gz [FILE:1939:manifests/plist.single] include/AdaYaml/yaml/ yaml-destination-text_io.adb yaml-destination-text_io.ads yaml-destination.ads yaml-dom-dumping.adb yaml-dom-dumping.ads yaml-dom-loading.adb yaml-dom-loading.ads yaml-dom-mapping_data.adb yaml-dom-mapping_data.ads yaml-dom-node.adb yaml-dom-node.ads yaml-dom-node_memory.adb yaml-dom-node_memory.ads yaml-dom-sequence_data.adb yaml-dom-sequence_data.ads yaml-dom-vectors.ads yaml-dom.adb yaml-dom.ads yaml-events-queue-stream.ads yaml-events-queue.adb yaml-events-queue.ads yaml-events-store-stream.ads yaml-events-store.adb yaml-events-store.ads yaml-events.adb yaml-events.ads yaml-inspect.adb yaml-inspect.ads yaml-lexer-evaluation.adb yaml-lexer-evaluation.ads yaml-lexer.adb yaml-lexer.ads yaml-parser-stream.ads yaml-parser.adb yaml-parser.ads yaml-presenter-analysis.adb yaml-presenter-analysis.ads yaml-presenter.adb yaml-presenter.ads yaml-source.ads yaml-stacks.adb yaml-stacks.ads yaml-stream_concept.ads yaml-tags.ads yaml-text_set.adb yaml-text_set.ads yaml-transformation.adb yaml-transformation.ads yaml-transformator-canonical.adb yaml-transformator-canonical.ads yaml-transformator.ads yaml.adb yaml.ads lib/AdaYaml/yaml/ libAdaYaml.a yaml-destination-text_io.ali yaml-destination.ali yaml-dom-dumping.ali yaml-dom-loading.ali yaml-dom-mapping_data.ali yaml-dom-node.ali yaml-dom-node_memory.ali yaml-dom-sequence_data.ali yaml-dom-vectors.ali yaml-dom.ali yaml-events-queue-stream.ali yaml-events-queue.ali yaml-events-store-stream.ali yaml-events-store.ali yaml-events.ali yaml-inspect.ali yaml-lexer-evaluation.ali yaml-lexer.ali yaml-parser-stream.ali yaml-parser.ali yaml-presenter-analysis.ali yaml-presenter.ali yaml-source.ali yaml-stacks.ali yaml-stream_concept.ali yaml-tags.ali yaml-text_set.ali yaml-transformation.ali yaml-transformator-canonical.ali yaml-transformator.ali yaml.ali lib/gnat/yaml.gpr [FILE:3933:patches/patch-fix-build-on-gcc11] From dd18ce4b06ed19bd0998f747a319cae09f41dd7a Mon Sep 17 00:00:00 2001 From: Per Sandberg Date: Thu, 9 Apr 2020 09:28:39 +0200 Subject: [PATCH] Make the code compile with GNAT 21.x --- src/implementation/yaml-dom-mapping_data.adb | 2 +- src/implementation/yaml-dom-node_memory.adb | 10 +++++----- src/implementation/yaml-dom-node_memory.ads | 4 ++-- src/implementation/yaml-dom-sequence_data.adb | 3 +-- src/interface/yaml-dom.ads | 1 + 5 files changed, 10 insertions(+), 10 deletions(-) --- src/implementation/yaml-dom-mapping_data.adb +++ src/implementation/yaml-dom-mapping_data.adb @@ -144,7 +144,7 @@ package body Yaml.Dom.Mapping_Data is procedure Raw_Insert (Container : in out Instance; Key, Value : not null access Node.Instance) is begin - Container.Data.Insert (Key, Value); + Container.Data.Insert (Node_Pointer (Key), Node_Pointer (Value)); end Raw_Insert; end Friend_Interface; end Yaml.Dom.Mapping_Data; --- src/implementation/yaml-dom-node_memory.adb +++ src/implementation/yaml-dom-node_memory.adb @@ -3,21 +3,21 @@ package body Yaml.Dom.Node_Memory is procedure Visit (Object : in out Instance; - Value : not null access constant Node.Instance; + Value : not null access Node.Instance; Previously_Visited : out Boolean) is begin - if Object.Data.Contains (Value) then + if Object.Data.Contains (Node_Pointer (Value)) then Previously_Visited := True; else - Object.Data.Include (Value); + Object.Data.Include (Node_Pointer (Value)); Previously_Visited := False; end if; end Visit; procedure Forget (Object : in out Instance; - Value : not null access constant Node.Instance) is + Value : not null access Node.Instance) is begin - Object.Data.Exclude (Value); + Object.Data.Exclude (Node_Pointer (Value)); end Forget; function Pop_First (Object : in out Instance) --- src/implementation/yaml-dom-node_memory.ads +++ src/implementation/yaml-dom-node_memory.ads @@ -9,11 +9,11 @@ private package Yaml.Dom.Node_Memory is type Instance is tagged limited private; procedure Visit (Object : in out Instance; - Value : not null access constant Node.Instance; + Value : not null access Node.Instance; Previously_Visited : out Boolean); procedure Forget (Object : in out Instance; - Value : not null access constant Node.Instance); + Value : not null access Node.Instance); function Pop_First (Object : in out Instance) return not null access Node.Instance; --- src/implementation/yaml-dom-sequence_data.adb +++ src/implementation/yaml-dom-sequence_data.adb @@ -5,7 +5,6 @@ with Yaml.Dom.Node; package body Yaml.Dom.Sequence_Data is use type Count_Type; - use type Ada.Containers.Hash_Type; type Iterator is new Iterators.Forward_Iterator with record Container : not null access constant Instance; @@ -234,7 +233,7 @@ package body Yaml.Dom.Sequence_Data is procedure Raw_Append (Container : in out Instance; New_Item : not null access Node.Instance) is begin - Container.Data.Append (New_Item); + Container.Data.Append (Node_Pointer (New_Item)); end Raw_Append; end Friend_Interface; end Yaml.Dom.Sequence_Data; --- src/interface/yaml-dom.ads +++ src/interface/yaml-dom.ads @@ -85,6 +85,7 @@ package Yaml.Dom is private type Node_Pointer is not null access all Node.Instance; + type Constant_Node_Pointer is not null access constant Node.Instance; function Nodes_Equal (Left, Right : access Node.Instance) return Boolean;