You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Oct 14, 2022. It is now read-only.
./witnesslinter.py --ignoreSelfLoops --witness ../crux-llvm-svcomp-2021-09-15-Linux-x86_64/results/crux.2021-09-16_02-25-33.files/SV-COMP21_no-overflow/AdditionIntMax.yml/witness.graphml ../sv-benchmarks/c/signedintegeroverflow-regression/AdditionIntMax.i
--------------------------------------------------------------------------------
WARNING : line 46: Invalid format for creationtime
WARNING : Creationtime has not been specified
witnesslint finished with exit code 1
As far as I can tell, 2021-09-16T02:25:47.80950425+02:00 is a valid ISO 8601 time. I think the witness linter is getting confued by the decimal part of the seconds, judging from how it is implemented:
This assumes that the seconds will never be followed by a decimal component. I believe this does not conform to Section 4.2.2.4 of ISO 8601, which says:
If necessary for a particular application a decimal fraction of hour, minute or second may be included. If a decimal fraction is included, lower order time elements (if any) shall be omitted and the decimal fraction shall be divided from the integer part by the decimal sign specified in ISO 31-0, i.e. the comma [,] or full stop [.]. Of these, the comma is the preferred sign. If the magnitude of the number is less than unity, the decimal sign shall be preceded by two zeros in accordance with 3.6.
The text was updated successfully, but these errors were encountered:
I don't know what the argument for requiring integer seconds was, as this was already the case before I joined.
In practice I could imagine the decimal fractions of a second are not that important (nobody will manually re-execute a tool within a second, but someone might within a minute. In those cases the timestamp would potentially be needed to differentiate between the witnesses if they got mixed up).
A case could be made that it is easier to read in if the format is fixed, i.e., either always include the decimals or not. I am not sentimental about the current definition of the allowed time stamp values. But tools might break/refuse a witness if the time format is not to the (old) spec. One would need to test this with the current validators and tools that read in witnesses that are know to us(but that should be quick). In case nothing breaks it is more or less already safe to make a format extension that optionally allows the decimals. We could also just make the change now and discover what is broken for free during the competition 😉
Either way increasing the format version (to 1.1 or so) is probably a good idea then. A tool that can read version 1.0 is not designed to understand a witness generated with format version 1.0 is not guaranteed to understand a tool with format version 1.1, though it is always possible to write a witness in version 1.1 that is also compliant with version 1.0.
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Given the following witness file:
The witness linter will reject its
creationtime
:As far as I can tell,
2021-09-16T02:25:47.80950425+02:00
is a valid ISO 8601 time. I think the witness linter is getting confued by the decimal part of the seconds, judging from how it is implemented:sv-witnesses/lint/witnesslint/linter.py
Line 27 in 20414d9
This assumes that the seconds will never be followed by a decimal component. I believe this does not conform to Section 4.2.2.4 of ISO 8601, which says:
The text was updated successfully, but these errors were encountered: