Skip to content
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

Closed
kmillikin opened this issue Feb 29, 2016 · 5 comments
Closed

Runtime, run-time, and run time are used inconsistently #25883

kmillikin opened this issue Feb 29, 2016 · 5 comments
Labels
area-specification (deprecated) Deprecated: use area-language and a language- label.

Comments

@kmillikin
Copy link

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.

@anders-sandholm anders-sandholm added the area-language Dart language related items (some items might be better tracked at github.com/dart-lang/language). label Feb 29, 2016
@mezoni
Copy link

mezoni commented Feb 29, 2016

My suggestion would be to use 'run-time' and 'compile-time'...

https://en.wikipedia.org/wiki/Run_time_(program_lifecycle_phase)

In computer science, run time, runtime or execution time is the time during which a program is running (executing), in contrast to other program lifecycle phases such as compile time, link time and load time.

I've never heard anything about 'run-time' and 'compile-time' (with a hyphen).

@kmillikin
Copy link
Author

@mezoni, you stopped reading that Wikipedia page just a bit too soon!

In computer science, run time, runtime or execution time is the time during which a program is running (executing), in contrast to other program lifecycle phases such as compile time, link time and load time.

A run-time error....

@mezoni
Copy link

mezoni commented Mar 1, 2016

@mezoni, you stopped reading that Wikipedia page just a bit too soon!

Really!!

@mezoni
Copy link

mezoni commented Mar 1, 2016

@kmillikin I think it can only mean one thing - it's synonymous.

Look at the same page on Wikidepia.

Application errors (exceptions)
Exception handling is one language feature designed to handle runtime errors, providing a ...

I think that there is no differences how to use them.

@kmillikin
Copy link
Author

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.

@munificent munificent added area-specification (deprecated) Deprecated: use area-language and a language- label. and removed area-language Dart language related items (some items might be better tracked at github.com/dart-lang/language). docs-language-spec labels Dec 13, 2016
@whesse whesse closed this as completed in d66ee88 Nov 16, 2017
lrhn pushed a commit to dart-lang/language that referenced this issue Aug 22, 2018
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-specification (deprecated) Deprecated: use area-language and a language- label.
Projects
None yet
Development

No branches or pull requests

5 participants