Skip Menu |

Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

This queue is for tickets about the YAML CPAN distribution.

Report information
The Basics
Id: 72571
Status: open
Priority: 0/
Queue: YAML

People
Owner: Nobody in particular
Requestors: tom [...] oxix.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Specification for LoadFile (and others) does not state what occurs on error
The spec for LoadFile doesn't say what happens if there is an error loading the file. Both YAML and YAML::Syck currently raise an exception with a value which is a string, though the format is quite different in each case. For reference, an example from my YAML is: YAML Error: Couldn't open /noexist for input:\nBad file descriptor Code: YAML_LOAD_ERR_FILE_INPUT at /home/tom/jiffies/perl/yaml_load_file_errors line 11 and an example from my YAML::Syck is: '/noexist' is empty or non-existant at /usr/lib/perl5/YAML/Syck.pm line 129. I understand that YAML is an interface that has multiple implementations, and so the interface documentation serves as a spec for implementors as well as a guide for consumers of the interface. I'm not quite sure what the process is for revising the interface spec, which is why I'm not proposing a patch at this stage. For example, if there is a YAML implementation which currently handles LoadFile errors differently, it could currently still be a correct implementation, since the behaviour of LoadFile on error is currently undefined. So some kind of negotiation / warning period / etc for implementers may be required before altering the interface spec. So if anyone is able to describe or point me to a description of the process for revising the Perl YAML interface spec, that would be a good next step. I see that error behaviour for other functions in the YAML interface is also undefined, so perhaps a more general effort is required to define these.
This issue has been copied to: https://github.com/ingydotnet/yaml-pm/issues/118 please take all future correspondence there. This ticket will remain open but please do not reply here. This ticket will be closed when the github issue is dealt with.