<siraben>
tabemann: Why would you want to rewrite the code, just be able to relicense?
<siraben>
While I see GPL3 having some problematic aspects, if I'm just hacking on something on my own I don't mind building off GPL3-licensed code.
<proteusguy>
siraben, GPL-3 is the most vile and invasive license yet written. Anything it touches MUST be published in a GPL-3 license. Even Linus had pointed out how completely inappropriate it is for even the Linux kernel which is GPL-2. Ultimately, the license gives rights to CODE and not users or developers. It's insane.
<proteusguy>
You can't even run stuff on servers as SaaS with a single piece of it being GPL-3 without publishing the source code for everything on that server. Absurd and delusional license. We don't allow it in our environment under any circumstances.
<siraben>
It depends on your use case. I have no qualms about rewriting the software after trying it out for personal use.
<proteusguy>
That's your choice. But then by making it GPL-3, you've also eliminated everyone else's choice who may want to run your software. It's the elimination of other's choices that's the problem.
<proteusguy>
So it doesn't depend on the use case. GPL-3 is a one size invades everyone use case. It eliminates all other use cases. That's why it's evil.
<siraben>
Agreed. I would not license new software I write under GPL-3.
<siraben>
Agree to eliminating others choice*
<siraben>
remexre: Closest example I could find was https://madiot.fr/files/reportru.pdf , has an operational semantics for a WHILE-like language with procedures, the semantics uses a call stack.
<siraben>
(page 9)
<siraben>
Looks like the way the semantics is presented allows to account for stack size as well, so presumably in a language one could enforce statically that the stack ever exceeds a certain size.
<siraben>
"Thus to consider stack overflow – although this notion is arbitrary in such a toy language – one just need to add a predicate to consider the maximum length of the state used in a sequence of reduction"
<proteusguy>
siraben, fixing the max size of the stack is the only way I ever thought possible. I even considered elimination of the option of tail calls and requiring all loops to be recursive as a means of limiting how long a function could run without having to have a "gas" mechanism like ETH. It solves a lot of the situations but I haven't confirmed it catches them all.
<siraben>
proteusguy: elimination of the option of tail calls? isn't having tail-call elimination exactly what you want?
<siraben>
I think you mean non-tail calls should be removed
<proteusguy>
siraben, it is for performance absolutely. It's not if we want to make the maximum resources a cryptoledger contract can utilize so that we can guarantee termination or roll back at some bounded cost.
<proteusguy>
siraben, the goal here is to guarantee an ended of a function within an acceptable limit as an alternative to gas.
<proteusguy>
to offset potential performance costs I considered offering "memoization" of recursive calls so prior values could be looked up rather than recomputed.
<siraben>
Well, guaranteed termination is a pretty solved problem, strictly recursing on smaller terms does it.
<proteusguy>
Right.
crab1 has joined #forth
<crab1>
what's happening in #forth land lately?
<proteusguy>
types! types are happening in #forth land ! ;-)
<crab1>
types and forth! you fithy blasphemes!
<siraben>
I'm curious about people who write in dynamically typed languages, in what instance what you need to write a program that isn't well-typed?
<siraben>
s/what/do
<crab1>
well-typed = type-safe?
<siraben>
A well-typed program is one that can be assigned a type and whose type remains so under evaluation.
<crab1>
I don't see why all programs in a dynamically typed language shouldn't be well typed
<crab1>
I can't think of an instance where it would be necessary at least
<proteusguy>
crab1, haha I know but we're not talking about targeting tiny embedded systems.
<siraben>
right, so my thinking is that if you're going to not write ill-typed programs in the first place, might as well have the compiler tell you at compile time than throwing an exception at runtime
<siraben>
rather than(
<proteusguy>
Actually FORTH is a strongly typed language. You get a cell type and do whatever you can with it. ;-)
<crab1>
do you often get type errors at runtime with dynamically typed languages?
<proteusguy>
crab1, we don't because we have quite strong unit test coverage. But most people do with a project of any complexity. Javascript apps are an extremely common example.
<siraben>
I feel like a lot of unit tests I write in say Python merely exist to serve as a typecheck of sorts.
<crab1>
javascript is bunk
<proteusguy>
siraben, I'd say at least half of our unit tests would be covered by a strong type system, yes.
<siraben>
Right.
Zarutian_HTC1 has quit [Ping timeout: 272 seconds]
<proteusguy>
Given how so many forth'ers write the stack impact for every word - they're kinda already paying the coding cost for strong type declarations anyway but not getting the benefit. I've always thought this way even before I knew how type systems worked. I just remember wondering in 1986, "wouldn't it be nice if these stack effects were enforced?" :-) So here it comes.
<crab1>
1986
<proteusguy>
In fact I stopped using them because they weren't enforced and just refactored the hell out of my words.
<crab1>
that's a while ago
xek has joined #forth
<siraben>
proteusguy: hah, I felt the same way, it forces you to refactor
<proteusguy>
crab1, indeed it was an elegant language for a more civilized age. ;-) haha
proteus-guy has quit [Ping timeout: 265 seconds]
<crab1>
I was almost 16 years pre-birth in 1986
<siraben>
I guess that makes you the youngest in #forth then, heh.
proteus-guy has joined #forth
<proteusguy>
siraben, when's your birthday? :-)
* proteusguy
suspects it's a close call.
<siraben>
heh, that would be doxxing myself, it doesn't seem that close
<proteusguy>
crab1, you're born in 2001 I take it?
<proteusguy>
siraben, this Thursday is the meetup where we demo the working local node stack and also ActorForth parsing BCH transactions. Sign up and join!
<siraben>
proteusguy: I'll be in Phuket during that time, unfortunately!
<proteusguy>
oh dude - you're gonna miss it.
<siraben>
proteusguy: will it be recorded?
<proteusguy>
Not sure. We'll try. We got moved upstairs cause of construction on 2nd floor so not sure it's good for recording.
<crab1>
born in october of 2000
* proteusguy
was born in Feb 1968. But I suspect most of the #forth'ers are even older than I.
<siraben>
crab1 is older than me then, heh
<proteusguy>
siraben, hahaha I guessed as much!
<crab1>
is siraben school age or working age
<crab1>
the world needs more young forth programmers
<crab1>
teach forth in elementary
<siraben>
crab1: given the ubiquity of graphing calculators in western education, that seems to bring young people in to embedded programming
<siraben>
unfortunately TI has been clamping down on the ability to run ASM programs as of late, so the newer OS updates prevent that
<crab1>
TI is bad
<crab1>
I mean specifically in regards to calculators