Before we implement SDL package format for DUB
Jonathan Marler via Digitalmars-d
digitalmars-d at puremagic.com
Mon Aug 25 17:34:27 PDT 2014
On Tuesday, 26 August 2014 at 00:12:37 UTC, Idan Arye wrote:
> On Monday, 25 August 2014 at 23:00:59 UTC, Jonathan Marler
> wrote:
>>> About the language - if you are making a new data
>>> serialization language(NOT markup language. These languages
>>> don't actually mark anything up) for DUB, could you please
>>> make it support heredocs? This will allow, in the future, to
>>> easily add pre-build and post-build scripts directly in the
>>> build-file.
>>>
>>
>> I am not familiar with the term "herdoc". After a quick
>> google, it looks like it refers to a way of escaping the
>> language. Is this not something that a single-quoted string
>> couldn't handle? You would still need to escape single-quotes
>> and back-slashes, but it comes close. However, I wouldn't be
>> against adding a special character sequence to support this
>> (Maybe '<<' or something).
>
> Heredoc, after parsed, is no different from a regular string.
> But isn't ASON as well, after parsed(with schema), is no
> different from regular JSON?
>
> As far as I understand, the point of ASON is to make the build
> files more human readable and writeable. Heredoc do the same
> thing - if you have a long script(a shell script, or one in a
> hosted scripting language, or even D code that'll be ran with
> rdmd) it's hard to write it in a regular quoted string, because
> they don't support newlines(you have to use '\n') and you need
> to be careful not to use the quote in the script itself(unless
> you escape them). Heredoc makes writing these scripts more
> straightforward.
>
>
>>> Alos - nameless fields scare me. They mean that ASON is not a
>>> schema-less format - and schema-less-ness is one of the most
>>> important features of languages like JSON, XML and YAML. I
>>> accept it if consumers break when suppliers remove fields -
>>> but nameless fields mean that consumers might break when the
>>> supplier added fields in the middle or reordered fields. This
>>> makes ASON a schema-bound format - and developers that choose
>>> schema-bound formats, usually care about compactness that
>>> ASON does not supply(since most the syntax is one of
>>> schema-less formats, it's very verbose compared to
>>> schema-bound formats).
>>>
>>
>> Yes when you start using nameless fields your data now needs a
>> schema. And I had the same concerns you mentioned when
>> adding/removing fields. That's why I recommended the only
>> fields that DUB should make nameless are the "name" fields on
>> some objects. However, this is not important, completely
>> dismissing the nameless fields feature for DUB would be
>> completely reasonable as well.
>
> Using the nameless fields in DUB is not the problem - DUB has a
> well defined schema with a well defined single source of
> authority. If you want to see ASON used as a data transfer
> format(like JSON) then these nameless fields will be
> problematic.
ASON single-quoted strings support any character inside them
except unescaped single-quotes and unescaped backslashes. You
can put raw newlines in a single-quoted string.
More information about the Digitalmars-d
mailing list