Incorrect long quot result involving Long/MIN_VALUE

Description

Similar issue to and CLJ-1253, with the same root cause as described for CLJ-1225. Ticket filed separately from for long division / because the desired fix may be quite different in this case.

Rich Hickey stated in a comment on that this case should throw an exception.

Question: For inc (which throws when given input Long/MAX_VALUE) there is an auto-promoting inc' and an unchecked-inc. quot now throws an exception in this case. Should there be an auto-promoting quot' and an unchecked-quot?

Environment

None

Activity

Show:
Andy Fingerhut
September 6, 2013, 4:55 PM

Patch clj-1254-v1.txt causes (quot Long/MIN_VALUE -1) to throw an exception due to overflow of the result, if the arguments are both long.

Unlike inc, which has auto-promoting version inc' and unchecked version unchecked-inc, there is no auto-promoting quot' and unchecked unchecked-quot. This patch does not add one.

Should quot' and unchecked-quot be added? If so, this ticket or a separate one?

Andy Fingerhut
November 23, 2013, 6:59 AM

Patch clj-1254-2.diff is identical to clj-1254-v1.txt except it applies cleanly to latest master. The only changes were in the context of the lines that were changed, due to a recent commit made.

Alex Miller
October 5, 2014, 4:23 AM

quot should throw an an exception on overflow
quot' (I assume not divide' ?) should be added to autopromote on overflow
unchecked-divide should be added to do what quot does now - see

Assignee

Unassigned

Reporter

Andy Fingerhut

Labels

Approval

Triaged

Patch

Code and Test

Affects versions

Priority

Minor