Ticket #145 (closed defect: fixed)

Opened 1 year ago

Last modified 1 month ago

Get rid of "joined" function objects

Reported by: lth Assigned to: lth
Type: defect Priority: minor
Milestone: Component: Spec
Version: 3.1 Keywords:
Cc: brendan,jeffdyer

Description

E262-3 uses a notion of "joined" function objects to give implementations the leeway to optimize closures, effectively stating that function objects that do not depend on their environments can be created once and reused.

Since function objects are mutable it is not possible to write portable code that mutates function objects without taking care: functions that naturally would not depend on their environment must be changed so they do, in a manner not detectable by an optimizing compiler.

The reasons for this "optimization" should be examined, and we should discuss whether we want to carry this language forward.

Attachments

Change History

Changed 1 year ago by lth

Changed 1 year ago by lth

Brendan on es4-discuss:

"No, none of that (breaking backward compatibility, requiring closures for mutability) was desired.

I wasn't around for Edition 3 except for one or two meetings (pitched sharp variables and uneval/toSource), but I talked to Waldemar about this at some point. The goal was to allow an optimization that would be implementation dependent. I believe mutability was forgotten. So we should just remove all this joined function language."

Changed 1 year ago by lth

  • summary changed from Get rid of "joined" function objects? to Get rid of "joined" function objects

Changed 1 year ago by lth

  • summary changed from Get rid of "joined" function objects to (Resolved) Get rid of "joined" function objects

Changed 1 year ago by lth

  • priority changed from major to trivial

Changed 1 month ago by David-Sarah Hopwood

  • priority changed from trivial to minor
  • status changed from new to closed
  • version changed from 4 to 3.1
  • resolution set to fixed
  • summary changed from (Resolved) Get rid of "joined" function objects to Get rid of "joined" function objects

Joined function objects are gone in the Kona draft.

Note: See TracTickets for help on using tickets.