lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Write error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
jedb_ has joined #forth
jedb has quit [Ping timeout: 246 seconds]
jedb__ has joined #forth
jedb_ has quit [Ping timeout: 256 seconds]
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Remote host closed the connection]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Remote host closed the connection]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
NorthStar has joined #forth
NorthStar has left #forth [#forth]
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
jsoft has joined #forth
boru` has joined #forth
boru has quit [Disconnected by services]
boru` is now known as boru
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
sts-q has quit [Ping timeout: 240 seconds]
dave0 has joined #forth
sts-q has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
jsoft has quit [Ping timeout: 256 seconds]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
gravicappa has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
dave0 has quit [Quit: dave's not here]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
jedb__ is now known as jedb
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
<proteusguy> lispmacs, re: short term anonymous lambdas. You could construct a special vocabulary of predictable sized words that are referenced counted to store your lambdas in.
jsoft has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
<siraben> I'd love to see combinators used more, à la SKI/combinatory logic. Words like compose, app, curry, uncurry
lisbeths has joined #forth
lisbeths has quit [Remote host closed the connection]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Remote host closed the connection]
lisbeths has joined #forth
lisbeths has quit [Remote host closed the connection]
lisbeths has joined #forth
lisbeths has quit [Remote host closed the connection]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Write error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
birdwing has joined #forth
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
jsoft has quit [Quit: Leaving]
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Write error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Remote host closed the connection]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Write error: Connection reset by peer]
kori has quit [Quit: WeeChat 2.8]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lispmacs has quit [Read error: Connection reset by peer]
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
lisbeths has quit [Read error: Connection reset by peer]
lisbeths has joined #forth
dave0 has joined #forth
lispmacs has joined #forth
lisbeths has quit [Ping timeout: 260 seconds]
dave0 has quit [Quit: dave's not here]
<veltas> "That's a point in Forth's favor because, in embedded-systems development, an engineer who understands the hardware is often a more effective programmer than a computer-science graduate who would rather be writing compilers."
<veltas> Do people actually think this? That CS grads who pursue embedded software just want to write compilers instead of the thing they pursued?
<veltas> Also part of Forth is writing your own compiler so it's contradictory as well
<siraben> veltas: why not understand the hardware and understand how to write compilers? heh
<veltas> Oh I do want to write compilers, I just wouldn't 'rather' be writing compilers
<veltas> This was written in 1999 and I suspect I know a few hardware engineers who still feel this way...
<siraben> I just noticed the date, ah
<siraben> Feel what way? That you only need to know the hardware to be an effective programmer?
<veltas> No that software background people care more about abstract problems than writing good embedded software
<veltas> I am certainly not like that, and I come from a pure software background
<veltas> But it also seems weirdly contradictory because Forth *is* an interesting tool for creating languages, as well as a good embedded programming environment
<veltas> I actually bothered to get the latest snapshot of gforth and it's really nice
<veltas> I like the status bar even if it's probably not very forthy
cantstanya has quit [Remote host closed the connection]
cantstanya has joined #forth
<proteusguy> siraben, I think combinators are interesting tools upon which you might realize some design but they are rarely an efficient way to implement a final solution. Forth tends to go for the throat in attacking a problem.
<veltas> If combinators let you write code easier in forth, without a massive overhead and without horrific syntax, then it's an appropriate addition
<veltas> It's my opinion but often I find myself writing code I know is less efficient but gets me to a result faster or in less forth
<proteusguy> veltas, completely agree. it's just rarely the case. guess it depends on the problem set.
<siraben> in fact forth wouldn't need certain combinators like compose that's just implied by the concatenation
<veltas> I haven't tried writing more functional style forth, have you siraben ?
<veltas> I know crc has
<siraben> many combinators like repeatN would be compile-time and based on the last word compiled etc
<siraben> veltas: not really, but I implemented a stack-based language with type inference in Haskell
<veltas> I think this kind of stuff would probably be *more* appropriate than e.g. locals syntax, which I think is quite unforthy usually
<siraben> When I ported meta-yacc I used locals initially because it was easier, then went back and removed some
<siraben> but some still remain
<siraben> this is the generated forth code by running the parser generator on itself
<siraben> My conjecture is local probably wouldn't have much overheard if one compiles to code that uses a stack offset (see debruijn indices) to fetch the locals
<siraben> no overhead, even
<siraben> the problem is now you must fix the arity of your words and have them be known to properly compile the stack offset
<proteusguy> siraben, hmm... if only you had a type-safe forth that enforced stack pictures... ;-)
<siraben> proteusguy: yeah my haskell interpreter of a stack based language did that
<proteusguy> siraben, so nothing stopping you from implementing it, right?
<siraben> nope
<siraben> i would probably do it in assembly again
<proteusguy> haha.
<siraben> easiest to control in/out arity by putting a little header
<siraben> two extra bytes
<proteusguy> well I'm with you - about to embark on rewriting ActorForth in C++.
<siraben> best of luck, would be interesting
<proteusguy> perhaps some combinators will be first order operands. ;-)
<siraben> hm i just thought, knowing the arities would be of great use, no type checking needed and compound words could have their arities automatically calculated
<siraben> and you can do locals without fear
<proteusguy> yep could
<veltas> I think better than using locals is the notation where if you don't want to clutter with stack ops you just do like "reorder abcd", I think retro has something like that
<veltas> i.e. reorder abaa
<veltas> I will sit down and try writing something like that but with digits, like 1234 reorder
<crc> forth.works:9999/377
<siraben> yeah like specify in permutation form
<crc> 'ab 'abaa reorder
<siraben> I found out that you can do this with only R> >R and swap
<veltas> Locals definitely make certain things neater, the biggest danger is overusing them and making code longer, if you're not doing that it's not really a heresy
<siraben> i wrote a program to generate the permuters up to depth 4 then proved it up to N with induction
<veltas> crc: That's the one
<siraben> veltas: exactly
<siraben> crc: oh cool
<veltas> And I think that's a lot nicer than locals where locals might 'simplify' sometimes
<crc> it's useful occasionally to avoid a bunch of messy stack shuffling
cmtptr has quit [Quit: leaving]
<veltas> It avoids the need to put anything in return stack or a locals area, for one thing, except perhaps for the duration of the word
<veltas> The semantics of EXIT etc don't have to change as well
cmtptr has joined #forth
gravicappa has quit [Ping timeout: 260 seconds]
gravicappa has joined #forth
<proteusguy> completely generic locals isn't necessary. having a single "temp register" to interact efficiently with the stack will generally give you what you want in a highly efficient manner.
<siraben> but if you have a function that uses the temp register and it calls another function that uses temp registers, then you'll have to have register saving conventions again
<siraben> OTOH locals compose without interference
<proteusguy> if you consider combinators as atomic operations - how many "scratch registers" are needed if you consider them clear after each operation?
<siraben> I'm not sure I understand what you mean
<siraben> if f uses temp reg A, and calls g which uses temp reg A, f has to save and restore A before and after calling g right?
gravicappa has quit [Ping timeout: 240 seconds]
gravicappa has joined #forth
birdwing has quit [Ping timeout: 260 seconds]
mark4 has joined #forth
gravicappa has quit [Ping timeout: 264 seconds]
<veltas> Would be interested if you could elaborate proteusguy
mark4_ has joined #forth
mark4 has quit [Ping timeout: 260 seconds]
mark4_ has quit [Read error: Connection reset by peer]
mark4_ has joined #forth
proteus-guy has quit [Ping timeout: 260 seconds]
mark4_ has quit [Read error: Connection reset by peer]
mark4_ has joined #forth
proteus-guy has joined #forth