Skip to content
This repository has been archived by the owner on Nov 16, 2023. It is now read-only.

Affine/Unique/Owner type annotations #28

Closed
mrkmarron opened this issue Apr 18, 2019 · 1 comment
Closed

Affine/Unique/Owner type annotations #28

mrkmarron opened this issue Apr 18, 2019 · 1 comment
Labels
design discussion Language design discussion issue research item

Comments

@mrkmarron
Copy link
Contributor

Values are immutable in the Bosque language but this can lead to heavy copy and data movement. A interesting research question is the design of an affine/unique type language that allows us to perform mutable operations on values -- particularly with bulk operations.

At the same time having some unique/borrowed/scoped typing support would also be useful for performing stack or pool allocation.

@mrkmarron mrkmarron added design discussion Language design discussion issue research item labels Apr 18, 2019
@mrkmarron mrkmarron mentioned this issue Apr 18, 2019
@orcmid
Copy link

orcmid commented Apr 29, 2019

I am wary of anything that makes mutability visible in a functional/applicative system. Part of my curiosity about your work is around how mutation/assignment is proposed to be seen in Bosque Language and reasoned about. (Ditto things like input-output, random sources, etc.)

At the same time, the power of mutability under the covers, where copying/alteration is not observable is really attractive, especially for bulk operations and also small changes to large entities.

I am conflicted yet want to stick to essential immutability and finding a way to confine mutability in interior functioning that preserves semantic immutability above the surface. I will not go of that quietly in my own work. I will be intrigued to see how Bosque deals with this concern, which may be mine alone.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
design discussion Language design discussion issue research item
Projects
None yet
Development

No branches or pull requests

2 participants