libera/#commonlisp - IRC Chatlog
Search
21:29:16
hayley
stylewarning: Dumb question, are you aware of the work on the Strongtalk type system?
21:29:58
hayley
I see Coalton went down an ML-esque route, but they could type Smalltalk while preserving the dynamicism of it.
21:30:40
stylewarning
I wonder what it’s type language looks like and what invariants it can express
21:32:57
hayley
https://upload.wikimedia.org/wikipedia/commons/thumb/3/3c/Strongtalk-system.png/781px-Strongtalk-system.png Looks to have parametric polymorphism at least.
21:33:00
jcowan
I worked on a project called Steme which was like Coalton but for Scheme. Unfortunately it broke down on irreconcilable design differences. (We didn't learn about Coalton until near the end.) I think my insistence that Steme should be pure was probably a mistake, but the idea of interoperating co-languages was there.
21:34:15
moon-child
raku's runtime is intended to permit interoperation of disparate languages. Currently it only hosts raku and its bootstrapping subset, but there's no reason others couldn't be added
21:34:57
fitzsim
"See the eval example above.": the list-length example of match shows the use of the wildcard, where the eval example doesn't
21:35:32
stylewarning
I think I just meant as an example of MATCH but maybe the language could be clearer
21:37:02
jcowan
no need for explicit bridges, though; you could write the type of a Scheme function in a Steme declaration, provided you certified its purity, and Scheme could call Steme directly.
21:40:59
stylewarning
(At no cost but a few extra characters typed and microseconds spent compiling)
21:42:25
jcowan
If your Coalton function calls a lot of Lisp code or vice versa, it's harder to read with explicit bridging. The Steme idea was to define a bridge just once, not every time it is used.
0:19:10
aeth
stylewarning: oh, you did that? Shouldn't you be typeerror instead of stylewarning, then?
4:00:44
Devon
https://directory.FSF.org lists Emacs CL, Gnu CL and SBCL listed but not ABCL, CCL, Clasp, CLISP nor ECL. Perhaps these unlisted maintainers would like to provide a blurb for the directory.
8:45:51
stylewarning
fiddlerwoaroof: thanks! Maybe when communication needs hit a threshold a channel can be made.
8:46:23
fiddlerwoaroof
stylewarning: have you thought at all about the representation of phantom type variables?
8:51:19
fiddlerwoaroof
It's one of my favorite tricks available with a nominal type system to help propagate information with no runtime cost
8:52:58
fiddlerwoaroof
But, it's a bit weird that there's no way to introspect the missing variable (afaict)
9:00:10
fiddlerwoaroof
Reifying them somehow would also let the constraints pass through untyped code