-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Runtime, run-time, and run time are used inconsistently #25883
Comments
https://en.wikipedia.org/wiki/Run_time_(program_lifecycle_phase) In computer science, I've never heard anything about 'run-time' and 'compile-time' (with a hyphen). |
@mezoni, you stopped reading that Wikipedia page just a bit too soon!
|
Really!! |
@kmillikin I think it can only mean one thing - it's synonymous. Look at the same page on Wikidepia. Application errors (exceptions) I think that there is no differences how to use them. |
The noun 'runtime' is jargon which comes from taking the adjective in the phrase 'run-time system' and turning it into a noun. It's ugly to read in my opinion and easily avoided anyway. Still, using it as a noun for the run-time system isn't really incorrect. The adjective form of 'run time' (the program lifecycle phase in your linked Wikipedia page) is 'run-time'. This parallels 'compile-time' which is the adjective form of 'compile time'. The spec absolutely should not use the adjective 'runtime' to describe this lifecycle phase for the same reason it should not use 'compiletime'. It's nonsense. The adjective 'run-time' describes things that pertain to run time. The adjective 'runtime' describes things that pertain to the runtime (in other words, the run-time system). There is a difference between them. For example, a run-time error is one that happens at run time. A runtime error is an error in the run-time system. A run-time error mandated by the spec represents the proper functioning of the runtime and is therefore not a runtime error. Likewise, a run-time type described by the spec is the type of a Dart object at run time. A runtime type is a type that is used in the implementation of the run-time system and it might not even be a Dart type at all. The spec has no reason to mention the runtime. I don't think it even has to mandate that there be a run-time system. Anyway: the issue here is that the spec should at least be self-consistent with respect to the use of run time, run-time, and runtime. Hopefully that use is parallel to the use of compile time, compile-time, and compiletime. |
The spec was not self-consistent with respect to the usage of various forms of 'run time' and 'compile time', even when using them as formally defined terms (e.g., compile-time error). Consistently follow the conventions: that 'run-time' and 'compile-time' are adjectives and not nouns; that 'run time' and 'compile time' are noun phrases containing an adjective and not adjectives themselves; and that 'runtime' and 'compiletime' are nonsense or at least jargon and are avoided. Fixes dart-lang/sdk#25883 Bug: Change-Id: I0a9eb524bb43ed6c3a74e6ef038184bcbe979966 Reviewed-on: https://dart-review.googlesource.com/21345 Reviewed-by: Lasse R.H. Nielsen <lrn@google.com> Commit-Queue: Kevin Millikin <kmillikin@google.com>
In the spec these terms are used very inconsistently, even when used formally as defined in the spec (e.g., run-time error vs. run time error vs. runtime error). Similarly for compile-time and compile time.
My suggestion would be to use 'run-time' and 'compile-time' consistently as an adjective (e.g., run-time type, run-time value, run-time error, compile-time constant, compile-time error). Use 'run time' and 'compile time' consistently for describing different times (e.g., at run time, at compile time).
There are then a few occurrences of 'runtime' as a noun that describes the Dart run-time system. (Thankfully, there are no occurrences of 'compiletime'.) Avoid this because it's jargon and not really a noun anyway and use 'run-time system' instead.
The text was updated successfully, but these errors were encountered: