Proceedings of the 12th ACM SIGPLAN International Symposium on Scala 2021
DOI: 10.1145/3486610.3486893
|View full text |Cite
|
Sign up to set email alerts
|

Safer exceptions for Scala

Abstract: We describe a scheme for reflecting exceptions as capabilities in the Scala type system that keeps notational overhead to a minimum and avoids well-known problems with Java's checked exceptions framework. The scheme makes exceptions safer but not fully safe since the capability for throwing an exception may still yet escape its enclosing try block. To address this limitation, we also propose a type system which prevents capabilities from escaping.CCS Concepts: • Software and its engineering → Compilers; • Theo… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
5
0

Year Published

2022
2022
2024
2024

Publication Types

Select...
3
3
1

Relationship

1
6

Authors

Journals

citations
Cited by 7 publications
(5 citation statements)
references
References 27 publications
0
5
0
Order By: Relevance
“…This style becomes especially cumbersome when multiple effects are involved. Implicit arguments can help, as suggested by Zhang and Myers [41] and by Odersky et al [27]. However, elaboration of implicit arguments is usually a type-directed translation.…”
Section: A Panorama Of Semantics For Effect Handlersmentioning
confidence: 99%
See 1 more Smart Citation
“…This style becomes especially cumbersome when multiple effects are involved. Implicit arguments can help, as suggested by Zhang and Myers [41] and by Odersky et al [27]. However, elaboration of implicit arguments is usually a type-directed translation.…”
Section: A Panorama Of Semantics For Effect Handlersmentioning
confidence: 99%
“…One can then think of an effect name essentially as a variable. Tunneled exceptions [42] and lexically scoped handlers [41,6,7,27] fall in this approach. In some of these proposals, the local effect name is never exposed to the user, but a "capability" to perform the effect is made available via a local variable.…”
Section: Introductionmentioning
confidence: 99%
“…We have written a Scala compiler plugin for analyzing the call-graph of the Scala [86] compiler. The main reason for choosing the Scala compiler for our investigations is three-fold: it is written using both functional and object-oriented paradigms, it is one of the biggest freely available Scala code bases and since the authors are experts in Scala, we can consider the language use to be pragmatic.…”
Section: Practical Approachmentioning
confidence: 99%
“…• Use reference-dependent typing, where a formal function parameter stands for the potential references captured by its argument [Brachthäuser et al 2022;Odersky et al 2021]. This avoids the need to introduce separate binders for capabilities or effects.…”
Section: Introductionmentioning
confidence: 99%
“…The version of CC <: presented here is similar to a system that was originally proposed to make exception checking safe [Odersky et al 2021]. Their system conjectured progress and preservation properties, but did not have proofs.…”
Section: Introductionmentioning
confidence: 99%