X-Scale` has joined #forth
proteusguy has quit [Ping timeout: 256 seconds]
proteusguy has joined #forth
boru` has joined #forth
boru has quit [Disconnected by services]
boru` is now known as boru
Zarutian_HTC has quit [Quit: Bye]
WickedShell has quit [Remote host closed the connection]
tabemann has joined #forth
mark4 has quit [Remote host closed the connection]
gravicappa has joined #forth
jsoft has joined #forth
dddddd has quit [Ping timeout: 240 seconds]
deesix has quit [Ping timeout: 256 seconds]
kori has quit [Read error: Connection reset by peer]
kori has joined #forth
kori has quit [Changing host]
kori has joined #forth
deesix has joined #forth
dddddd has joined #forth
_whitelogger has joined #forth
tabemann has quit [Ping timeout: 244 seconds]
xek has joined #forth
jsoft has quit [Ping timeout: 240 seconds]
xek has quit [Ping timeout: 240 seconds]
deesix has quit [Ping timeout: 264 seconds]
deesix has joined #forth
dddddd_ has joined #forth
dddddd has quit [Ping timeout: 264 seconds]
dddddd_ is now known as dddddd
proteus-guy has joined #forth
xek has joined #forth
_whitelogger has joined #forth
deesix has quit [Ping timeout: 256 seconds]
dddddd has quit [Ping timeout: 240 seconds]
dddddd has joined #forth
deesix has joined #forth
Zarutian_HTC has joined #forth
dave0 has quit [Quit: dave's not here]
xek has quit [Ping timeout: 246 seconds]
proteus-guy has quit [Ping timeout: 260 seconds]
proteus-guy has joined #forth
Zarutian_HTC has quit [Ping timeout: 264 seconds]
proteus-guy has quit [Ping timeout: 260 seconds]
X-Scale` has quit [Ping timeout: 240 seconds]
X-Scale has joined #forth
proteus-guy has joined #forth
<alexshpilkin> proteusguy (or proteus-guy... are you the same person?): not necessarily. I am pessimistic towards language designs that try to combine heavy abstractions with low-level access to the machine, because you usually get all the predictability (and therefore optimizability) of the latter coupled with all the performance of the former
<alexshpilkin> from a cursory reading of the doc pages it doesn't seem that ActorForth strives for the low-level access characteristic of classic Forth, so, well... the actor model is cool, stack-based (concatenative, however you want to call them) languages are cool, so merging them may well get you something useful
<alexshpilkin> though from the same very cursory reading it doesn't appear that the type system is particularly good... swap : Any Any -> Any Any is a rather weak typing (I'd hope for swap : forall a b. a b -> b a or something like that)
<proteus-guy> alexshpilkin, yeah our target domain is different than what is classically forth - but the architectural drivers are the same - relentlessly eliminate all unnecessary complexity. Our intention is to have a system where a single developer can understand the full tech stack from the top all the way to the gate level. Not possible on "modern" tech stacks.
<proteus-guy> Ultimately it'll be Any1 Any2 -> Any2 Any1. Just hasn't come up given where we are in the initial implementation.
<proteus-guy> Actually it'll look more like swap : _1 _2 -> _2 _1
<alexshpilkin> well, parametric polymorphism by any other name ...
<alexshpilkin> but good to know you are planning it
<proteus-guy> alexshpilkin, part of what we're doing is trying to see how powerful a type system can be implemented in a point-free stack based language.
<alexshpilkin> oh, really? I'll be watching that place then :)
<proteus-guy> yeah this is more of a "discover based" rather than a planned based system and we expect that it'll take a few implementations before we get the right balance.
<alexshpilkin> have you seen Kleffner's talk about typing stack-based languages (http://prl.ccs.neu.edu/blog/2017/03/10/type-inference-in-stack-based-programming-languages/)? I've linked to it before on ForthHub, but it... well, wasn't met with enthusiasm
<proteus-guy> yes I have that paper and have read it a few times.
<alexshpilkin> wohoo
Zarutian_HTC has joined #forth
<siraben> alexshpilkin: you might be interested in my implementation of Algorithm J (of the HM type system) for a concatenative language: https://github.com/ActorForth/ActorForth/blob/haskell/forth.hs
proteus-guy has quit [Ping timeout: 260 seconds]
<siraben> It uses a representation of the stack isomorphic to nested tuples, so barely ant difference from Algorithm J.
<siraben> It properly deals with polymorphic functions like swap : a:b:s → b:a:s
<siraben> where a b s are type variables
<siraben> alexshpilkin: why wasn't it met with enthusiasm from ForthHub?
<siraben> I should note that there isn't anything particularly hard about type inference in stack-based languages. With a proper AST representation it's no different than writing a typechecker for a functional language.
<alexshpilkin> <siraben "alexshpilkin: why wasn't it met "> *shrug* it was mostly met with silence, so no idea. maybe everybody already knows that, maybe nobody is interested, maybe I'm just unpleasant to talk with
<siraben> Skimming through that conversation, heh that's interesting. Dynamic words like EXECUTE are problematic from a static analysis perspective. This sort of thing is similar to the situation in Lisp.
<alexshpilkin> <siraben "alexshpilkin: you might be inter"> (I have to admit I've never actually implemented inference, even though I think I kinda understand how it works. No excuse really)
<siraben> Forth in its current form is no better than assembly, so naturally adding a type system severely restricts the language.
<siraben> alexshpilkin: I believe using Matrix replies duplicates the content for IRC users, please use mentions instead.
<siraben> (I'm also on a Matrix bridge)
<siraben> I'll have to sign off for tonight, will check the messages tomorrow.
<siraben> alexshpilkin: Do you come from an FP background as well?
<alexshpilkin> siraben : well, my point was there that first-order languages are just easier to type. EXECUTE by itself appears to be just an application operator like Haskell's ($), so not particularly evil, no? though the fact that everything happens on a single stack stack and has variable arity does complicate things
<alexshpilkin> siraben : well to some extent yes. more like I owe my interest in types to FP (Haskell in particular; proof-assistant-y things tend to go over my head, sadly)
crc_ has joined #forth
crc has quit [Quit: ZNC 1.7.4 - https://znc.in]
crc_ is now known as crc
jsoft has quit [Ping timeout: 240 seconds]
xek has joined #forth
WickedShell has joined #forth
`presiden has quit [Read error: Connection reset by peer]
`presiden has joined #forth
Zarutian_HTC has quit [Read error: No route to host]
Zarutian_HTC has joined #forth
xek has quit [Ping timeout: 256 seconds]
gravicappa has quit [Ping timeout: 260 seconds]