Skip to content

Use Case 6: discussion #7

@msdemlei

Description

@msdemlei

Unless I misunderstand this use case, it proposes to allow embedding some sort
of executable code into the data format.

If that is true, I believe it the use case should be dropped, for at least the
following reasons:

(1) Security concerns: Even if you "sandbox" whatever code is executing
(which, of course, makes it more likely that the format's execution
facilities in the end will be too slow or restricted to be generally
useful), it's still going to be hard to control what apparently
innocuous files actually do (see Adobe's pain with Javascript in PDF).

(2) Ease of implementation: If we allow something like this, all
conforming implementations will have to include an interpreter for
whatever code this turns out to be. This will typically be a major
effort (or at least dependency) that's going to hurt adoption (not to
mention security concerns again). On the other hand, I've always wanted
to write a FORTH machine...

(3) Complexity considerations: As file formats are always at the "edges"
of computer systems, it's great if they are "verifiable" in some
sense (e.g., checking validity with a context free grammar). This
feature is deep, deep within the land of Turing complete languages with
all the related problems ("will this image halt?"). That's a fairly
fundamental flaw for something that sounds like a fairly exotic
application that would probably better be solved by local convention (a
pipeline manual might state: "look for the chunk labeled
'foo-execute', check for foo's signature via the foo-signature chunk,
and then just do it").

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions