aramh Profile Banner
Aram Hăvărneanu Profile
Aram Hăvărneanu

@aramh

Followers
3K
Following
11K
Media
91
Statuses
6K

Mathematical engineer bringing type safety to the cloud. Previously worked on CUE @cue_lang. JSR PC, @(R6)+; I wrote the arm64, sparc64, and Solaris Go ports.

Joined May 2009
Don't wanna be here? Send us removal request.
@aramh
Aram Hăvărneanu
4 years
Understanding means understanding the duality between the concrete and the abstract.
3
5
59
@aramh
Aram Hăvărneanu
13 seconds
To a physicist, anything is a function.
@miniapeur
Mathieu
21 hours
Thank you for your attention to this matter.
Tweet media one
0
0
0
@grok
Grok
4 days
Join millions who have switched to Grok.
198
397
3K
@aramh
Aram Hăvărneanu
51 minutes
In some sense a variable and the space its value resides in form something akin to an entangled pair. But they also from something like a traversable wormhole. Hmm.
@aramh
Aram Hăvărneanu
1 hour
There is an uncanny correspondence between computation and physics:. linearity ≅ unitarity.confluence ≅ causality.parallelism ≅ relativity.nondeterminism ≅ Cauchy surface.divergence ≅ naked singularity.
1
0
4
@aramh
Aram Hăvărneanu
1 hour
There is an uncanny correspondence between computation and physics:. linearity ≅ unitarity.confluence ≅ causality.parallelism ≅ relativity.nondeterminism ≅ Cauchy surface.divergence ≅ naked singularity.
3
1
13
@aramh
Aram Hăvărneanu
7 hours
A data structure is laid out in space (i.e. memory). The most general data structure is a graph. Nodes point to other nodes (i.e. to their address—their spatial coordinate). There can be cycles. A data structure can evolve over time (i.e. computation mutates it). New nodes can.
4
4
41
@aramh
Aram Hăvărneanu
7 hours
More on the advantages of separating capabilities from pointers, using linear logic.
@aramh
Aram Hăvărneanu
7 hours
@jameskjx Yes, they can all point into the same graph. To use a (Ptr l) as a (mutable!) value of t you need a (Cap l t). But t can be any type, including a type that contains other capabilities. So the traversal function, when it finds the "next" (Ptr l1), it must already have the (Cap l1.
0
0
6
@aramh
Aram Hăvărneanu
12 hours
RT @aramh: @jameskjx You can update shared structure in place! In fact that is the reason why the described system is better than other sys….
0
2
0
@aramh
Aram Hăvărneanu
1 day
How references should work in a linear language. A reference is an existential package comprising of a linear access capability (a typed token) paired with an exponential location (an untyped pointer). Ref t = ∃l. (Cap l t) ⊗ !(Ptr l) . The location is a freely-copyable.
9
2
64
@aramh
Aram Hăvărneanu
2 days
I already have several counter-arguments to my own idea. One of them would be that it doesn't behave very well with weakening, requiring syntactic transpositions.
@aramh
Aram Hăvărneanu
2 days
A function is codata defined by application. To reduce a function one interacts it with an argument. One can view this as "the argument is being passed into the function, where it interacts with the body". A mutable value is codata defined by map. To mutate a value one interacts.
1
1
14
@aramh
Aram Hăvărneanu
2 days
@zetalyrae what do you think of this?.
0
0
5
@aramh
Aram Hăvărneanu
2 days
A function is codata defined by application. To reduce a function one interacts it with an argument. One can view this as "the argument is being passed into the function, where it interacts with the body". A mutable value is codata defined by map. To mutate a value one interacts.
2
3
30
@aramh
Aram Hăvărneanu
3 days
Languages within languages within languages.
5
2
35
@aramh
Aram Hăvărneanu
3 days
0
0
7
@aramh
Aram Hăvărneanu
3 days
0
0
13
@aramh
Aram Hăvărneanu
3 days
Will Crichton, Gavin Gray, and Shriram Krishnamurthi. 2023. A Grounded Conceptual Model for Ownership Types in Rust. Proc. ACM Program. Lang. 7, OOPSLA2, Article 265 (October 2023), 29 pages.
Tweet card summary image
dl.acm.org
Programmers learning Rust struggle to understand ownership types, Rust’s core mechanism for ensuring memory safety without garbage collection. This paper describes our attempt to systematically...
1
1
17
@aramh
Aram Hăvărneanu
3 days
One reason why people find Rust difficult and have problems with the borrow checker is that bindings (not values) are mutable and implicitly mutated. Many Rust expressions are actually statements in the "binding language". To use Rust effectively one has to mentally compute the.
3
12
121
@aramh
Aram Hăvărneanu
6 days
Futamura projections, but applied to service deployment.
3
2
16
@aramh
Aram Hăvărneanu
6 days
Tweet media one
0
0
3
@aramh
Aram Hăvărneanu
6 days
Tweet media one
@LukasHozda
Lukáš Hozda
7 days
I am a simple man
Tweet media one
2
0
8
@aramh
Aram Hăvărneanu
9 days
Also the translation quality is way behind state of the art LLM level.
0
0
8
@aramh
Aram Hăvărneanu
9 days
I tried DeepL and it while it preserves diagrams, it makes everything italic, wtf.
Tweet media one
1
0
7