<ELLIOTTCABLE>
what do you mean with “semantics more aligned with JS”
<ELLIOTTCABLE>
is it still a lisp, broadly speaking?
<ELLIOTTCABLE>
(Sorry, my experience with racket, beyond as an engine for r6rs, is limited)
<ELLIOTTCABLE>
(I know it has some language-transformation shit though)
<ELLIOTTCABLE>
“a programming language framework” ahhah
<ELLIOTTCABLE>
Sorella: do you know of my work? :P
<ELLIOTTCABLE>
jesus christ some of this reads like Paws circa 2012
<Sorella>
The semantics are similar to a small subset of ES2015. It doesn't have any syntax by default, you have compiler modules, and they convert whatever syntax to Core's AST, and that gets transformed to something that can run in the browser.
<Sorella>
I might've read about Paws in the past, but I don't remember much about it.
<ELLIOTTCABLE>
semantics are *wildly* different, so it's not at all, like, related to your Actual Goals (in terms of distribution benefits of being JSlike and whatnot)
<ELLIOTTCABLE>
but in terms of everything you describe with ‘layers’, and what I'd probably call ‘abstraction-additve’ programming-language design? yeah.
<ELLIOTTCABLE>
Paws is literally designed with a “Paws' Core”, and then “Paws' Fullness” (a ‘layer’ containing some of my more esoteric / fun PLT theories and ideas)
<ELLIOTTCABLE>
just thought the parallels were cute :P
<ELLIOTTCABLE>
“But I think Racket not having a web-based implementation of something like DrRacket, and having most languages using uncommon syntax like S-expressions increases the barrier-to-entry significantly.”
<ELLIOTTCABLE>
no fucking kidding, yeezus
<ELLIOTTCABLE>
Sorella: Did you go for a true-subset of ES6? Or, like, a pseudo-subset? The former sounds … Hard™ to do, without copying a lot of the same errors
<ELLIOTTCABLE>
(oh hey, Sorella, pronouns? I just realized I don't know)
<Sorella>
It contains a very small subset (values, scoping semantics, closures), and then adds records, variants, and protocols with multi-dispatch.
<Sorella>
I go by either they or she.
<ELLIOTTCABLE>
k!
<Sorella>
At first I wanted to make it a "real subset". But then it's too easy to break the language guarantees, and adding a FFI isn't *that* expensive, so I limited the JS parts a bit more and added some other useful stuff.
<ELLIOTTCABLE>
I know nothing about implementing an FFI, tell me more?
<ELLIOTTCABLE>
ack but I'm afk
<ELLIOTTCABLE>
Sorella: thanks for the quick interlocution :3
<embri0n>
time for zzzzs
<ELLIOTTCABLE>
Sorella: allow me to Paws at you, sometime. I think you'd like some of my ideas. (Minus the type-safety)
<ELLIOTTCABLE>
-embri0n
<purr>
ELLIOTTCABLE: who?
<embri0n>
cheers
embri0n has quit [Quit: Leaving...]
<Sorella>
I just have a few nodes in the AST that interact with JS objects (and do some checks so they don't break the Core semantics). So you have `HostCall(fn, args)`, `HostMethodCall(obj, key, args)`, `HostGet(obj, key)` and `HostSet(obj, key, value)`. Languages can decide how to expose that, but the plan is to have a language where you declare an interface like:
<Sorella>
`interface SomeModule for 'some-module' where procedure someOp(String, String) -> String`, then it generates a module that converts from Core strings to JS strings, and vice-versa.
alexgordon has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
alexgordon has joined #elliottcable
Pyrrh_ has quit [Read error: Connection reset by peer]
Pyrrh_ has joined #elliottcable
alexgordon has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
alexgordon has joined #elliottcable
alexgordon has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
alexgordon has joined #elliottcable
alexgordon has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
Pyrrh_ has quit [Read error: Connection reset by peer]
Pyrrh_ has joined #elliottcable
Sorella has quit [Quit: Connection closed for inactivity]
embri0n has joined #elliottcable
embri0n has quit [Quit: Leaving...]
embri0n has joined #elliottcable
embri0n has quit [Remote host closed the connection]
cloudhead has joined #elliottcable
embri0n has joined #elliottcable
embri0n has quit [Client Quit]
thealphanerd has quit [Quit: farewell for now]
thealphanerd has joined #elliottcable
Sorella has joined #elliottcable
Pyrrh_ has quit [Read error: Connection reset by peer]
Pyrrh_ has joined #elliottcable
alexgordon has joined #elliottcable
Sgeo has quit [Read error: Connection reset by peer]
alexgordon has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
alexgordon has joined #elliottcable
whitequark has left #elliottcable [#elliottcable]
alexgordon has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
alexgordon has joined #elliottcable
cloudhead has quit [Ping timeout: 265 seconds]
alexgordon has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
cloudhead has joined #elliottcable
embri0n has joined #elliottcable
alexgordon has joined #elliottcable
embri0n has quit [Quit: Leaving...]
Pyrrh_ has quit [Read error: Connection reset by peer]
Pyrrh_ has joined #elliottcable
wraithgar has joined #elliottcable
Sgeo has joined #elliottcable
cloudhead has quit [Quit: leaving]
cloudhead has joined #elliottcable
embri0n has joined #elliottcable
<cloudhead>
what's up
<Pyrrh_>
debating with myself about the merits of taking a nap vs actually doing something useful with my evening
<Pyrrh_>
sup with you?
<Pyrrh_>
also hi
<Pyrrh_>
I'm Pyrrh
<cloudhead>
can't you take like, a super short nap?
<cloudhead>
hello
<cloudhead>
, I'm cloudhead
<pikajude>
i got my 1976 keys guys
<Pyrrh_>
I probably could but then I will be grumpy and therefore unproductive. Might as well make it count