jimt[m] has quit [Ping timeout: 246 seconds]
jimt[m] has joined #forth
reepca has joined #forth
boru` has joined #forth
boru has quit [Disconnected by services]
boru` is now known as boru
_whitelogger has joined #forth
jedb has joined #forth
<tabemann_> hey guys
tabemann_ is now known as tabemann
reepca has quit [Ping timeout: 260 seconds]
jedb has quit [Ping timeout: 260 seconds]
<tp> hey tabemann
dddddd has quit [Ping timeout: 240 seconds]
WickedShell has quit [Remote host closed the connection]
jedb has joined #forth
gravicappa has joined #forth
dys has joined #forth
X-Scale` has joined #forth
X-Scale has quit [Ping timeout: 258 seconds]
X-Scale` is now known as X-Scale
mtsd has joined #forth
xek_ has joined #forth
<tp> heh, I mentioned my (forth powered) bluepill bootable diagnostics program on a forum where C is the defacto language and altho Ive had no replies to my post, there have been 40 downloads just today
rpcope has quit [Ping timeout: 256 seconds]
reepca has joined #forth
rprimus has joined #forth
C-Keen has quit [Quit: WeeChat 2.8]
rpcope has joined #forth
Vedran has quit [Ping timeout: 264 seconds]
Vedran has joined #forth
andrei-n has joined #forth
gravicappa has quit [Ping timeout: 246 seconds]
jsoft has joined #forth
gravicappa has joined #forth
dddddd has joined #forth
<neuro_sys> Is there any strongly typed variant of Forth?
<tp> is one needed ?
<tp> I'm no expert but as Forth is used to create languages, how can it be strongly typed ?
iyzsong has joined #forth
<neuro_sys> As for the need, it's an age old discussion, but I find static analysis/type checking very useful for: preventing coding mistakes, and documentation/readability.
<neuro_sys> As for how it can be done, I don't know the internals of Forth well enough, but even a separate preprocessor that can parse Forth source code, could enforce type checking via comments, even.
<tp> perhaps strongly typed variants of Forth dont exist because theyre not needed or not applicable ?
<neuro_sys> At least, there'is a significant portion of programmers who would not use a non-typed language for their projects, and that reduces the range of appeal.
<neuro_sys> tp: Ah so they don't exist?
<tp> neuro_sys, I dont know for sure, Im still a Forth beginner, but I dont believe they exist
<tp> neuro_sys, as Forth can redefine itself, how would you strongly type that ?
<tp> neuro_sys, I suspect that desiring some of the capabilities of non Forth systems may seem sensible before one knows the language ?
<neuro_sys> tp: For instance when defining words, you can specify the expected type/cell-size of elements in the stack, and by scanning the source, throw an error when the pushed elements don't match for a given word call.
<tp> neuro_sys, I'm a technician not a real programmer, so I dont want to give you the wrong impression. Im more of a Forth user
<tp> neuro_sys, I also use cortex-m mcu's which will instantly throw a exception for almost any memory issue
<neuro_sys> That's a good aspect though, I think a type system would unnecessarily complicate the language, and would be overkill for small-scale applications/solutions.
<neuro_sys> Although having type checking would appeal to a wider audience, and the language would be adopted for more user space applications.
<tp> neuro_sys, we have some expert Forth programmers here but most of them are asleep right now I thinK
<neuro_sys> Hmm, seems like Factor is one Forth dialect that has dynamic type checking.
<tp> Ive heard of factor but it's uncommon in embedded OSS forths
<tp> Im an embedded Forth user, I use Forth to make equipment
<neuro_sys> I see, it would be a high overhead to use it on restricted environments.
<tp> it would I guess and I personally wouldnt need it
jackdaniel has quit [Remote host closed the connection]
jackdaniel has joined #forth
<tp> I think those who ask here about strongly typed forths are mainly C users, but Forth is utterly different to C
<tp> Forth is pretty much different to all programming languages
<tp> it does have one similarity to LISP in that it can redefine itself
<tp> I mean I can redefine 1 to be 0 with Forth, where else can you do that ?
<tp> it's as simple as this : 1 0 ;
<tp> so 1 + 1 would = 0
<neuro_sys> Yes, it is amazing in that regard
<tp> no one wants to make 1 == 0, but the capability means that a valid Forth program may be "on fill wash spin drain off"
<neuro_sys> I like the simplicity of the language, little runtime overhead, and one-to-one correspondance with the executed code.
<neuro_sys> And the whole idea of code execution via stack is very brilliant, if not intuitive for many C-like language users.
iyzsong- has joined #forth
<tp> i have found that Forth on the target MCU is about 3x slower than compiled C, but we also have 'tethered' forths that match and exceed compiled C in some cases
<tp> neuro_sys, thats true, I spent years coming to terms with the stack
<tp> as always, it depends what youre used to, where one came from
iyzsong has quit [Ping timeout: 272 seconds]
<tp> the stack does 'keep everything in one place' I like that simplicity
<tp> no one here will claim Forth is perfect, we are just addicted to the Forth way of doing things
xek_ has quit [Read error: Connection reset by peer]
<tp> neuro_sys, thanks for the chat, if you come here around 1900 UTC you'll generally find Forth people far more informed than I
<tp> nighto
<neuro_sys> Thanks likewise
jsoft has quit [Ping timeout: 246 seconds]
xek_ has joined #forth
xek__ has joined #forth
xek_ has quit [Ping timeout: 272 seconds]
Keshl has quit [Quit: Konversation terminated!]
Keshl has joined #forth
xek_ has joined #forth
xek__ has quit [Ping timeout: 272 seconds]
<MrMobius> I would think having all stack items the same size if part of why types arent very popular
<MrMobius> whereas in C its just as easy to have all the stack items be different sizes
<MrMobius> not to mention fewer variables in Forth
<MrMobius> like if you pushed an 8 bit type and a 16 bit type on the stack and added them, youd have to keep track of what size each stack element is
<MrMobius> whereas now they are all just promoted to whatever the cell size is
MrMobius has quit [Read error: Connection reset by peer]
mtsd has quit [Quit: Leaving]
MrMobius has joined #forth
Zarutian_HTC| has joined #forth
Zarutian_HTC has quit [Read error: Connection reset by peer]
TCZ has joined #forth
dave0 has quit [Quit: dave's not here]
gravicappa has quit [Ping timeout: 260 seconds]
Zarutian_HTC| has quit [Ping timeout: 265 seconds]
Zarutian_HTC has joined #forth
Zarutian_HTC has quit [Ping timeout: 246 seconds]
iyzsong- has quit [Quit: ZNC 1.7.1 - https://znc.in]
gravicappa has joined #forth
Zarutian_HTC has joined #forth
<veltas> Don't need number interpretation
<veltas> Just have the word 1 defined
<veltas> And 0
<veltas> Actually just 1 is enough I think
<veltas> Then add 1 repeatedly to get every other numbre
<veltas> More elegant this way
<veltas> And closer to axiomatic set theory
WickedShell has joined #forth
gravicappa has quit [Ping timeout: 272 seconds]
TCZ has quit [Quit: Leaving]
dys has quit [Ping timeout: 246 seconds]
gravicappa has joined #forth
karswell_ has joined #forth
jsoft has joined #forth
karswell_ is now known as karswell
gravicappa has quit [Ping timeout: 260 seconds]
gravicappa has joined #forth
jedb has quit [Read error: Connection reset by peer]
X-Scale` has joined #forth
X-Scale has quit [Ping timeout: 272 seconds]
X-Scale` is now known as X-Scale
X-Scale has quit [Ping timeout: 246 seconds]
X-Scale` has joined #forth
X-Scale` is now known as X-Scale
dys has joined #forth
gravicappa has quit [Ping timeout: 260 seconds]
Zarutian_HTC has quit [Ping timeout: 265 seconds]
Zarutian_HTC has joined #forth
andrei-n has quit [Quit: Leaving]
jsoft has quit [Ping timeout: 260 seconds]
reepca has quit [Remote host closed the connection]
reepca has joined #forth
dys has quit [Ping timeout: 246 seconds]
jsoft has joined #forth
xek_ has quit [Ping timeout: 246 seconds]
X-Scale` has joined #forth
X-Scale has quit [Ping timeout: 240 seconds]
X-Scale` is now known as X-Scale
X-Scale` has joined #forth
X-Scale has quit [Ping timeout: 272 seconds]
X-Scale` is now known as X-Scale
iyzsong has joined #forth
reepca has quit [Remote host closed the connection]
reepca has joined #forth