<rdrop-exit> with all the caveats that come with that
<veltas> Hmmm, that's a new answer for sure
<veltas> Anyway as rdrop-exit arises I sleep, nn
<rdrop-exit> if you need true stack like allocation, you can have use the far end of memory
<rdrop-exit> chunks of 256 bytes or so
<rdrop-exit> instead of a regular pad, you have +pad -pad
<rdrop-exit> each pad is 250 bytes for example
<rdrop-exit> 256 bytes for example
<rdrop-exit> +pad ... do stuff ... -pad
<rdrop-exit> if you need nesting, growing something from the other end of the dictionary is the simplest
<rdrop-exit> using a stack discipline
<rdrop-exit> +pad ... +pad .... -pad ... -pad
<rdrop-exit> have pad return the address of the top chunk
reepca` has quit [Read error: Connection reset by peer]
<rdrop-exit> (top in the stacking sense)
reepca` has joined #forth
<rdrop-exit> "The catch is that if storage is used as if it were boundless,
<rdrop-exit> the time taken to run programs will equally be boundless"
<rdrop-exit> -- Peter John Brown
<rdrop-exit> x+pad Scratchpad Overflow fallback exception handler.
<rdrop-exit> scratchpad would start less than |CUSHION| bytes above
<rdrop-exit> +pad Allocate a scratchpad buffer. Raises |x+pad| if the
<rdrop-exit> x-pad Scratchpad Underflow fallback exception handler.
<rdrop-exit> |here|.
<rdrop-exit> -pad Deallocate the most recently allocated scratchpad. Raises
<rdrop-exit> |x-pad| if deallocating the last scratchpad.
<rdrop-exit> cushion Safety margin between |here| and the scratchpads.
<rdrop-exit> #pad Number of bytes per scratchpad.
<rdrop-exit> sap Scratchpad allocation pointer.
<rdrop-exit> pad Address of the most recently allocated scratchpad.
<rdrop-exit> sap0 Reset the scratchpad allocation pointer, deallocating
<rdrop-exit> all scratchpads but one.
<rdrop-exit> (the above is from the docs of one of my old Forths)
<rdrop-exit> (note that in the above I'm not using the term "allocate" in the ANS-Forth sense of course)
<rdrop-exit> (note also that there's always one pad available, that never gets dealllocated)
<rdrop-exit> (that one is used a true volatile scratchpad, just like the traditional PAD)
<rdrop-exit> * used as a...
<rdrop-exit> Anyway, hope that helps with your brainstorming of options
<tabemann> hey guys
<rdrop-exit> hi tabemann :)
<tabemann> note that in zeptoforth using the stack for scratch space is a bad idea, since once you have two tasks, the main tasks stack space is limited
<tabemann> and anyways, I put a check where it raise an exception if a stack overflows its allocated space
<tabemann> (task space grows from the top of RAM)
<rdrop-exit> On my PC Forth I use circular stacks
<rdrop-exit> you can't accidently spill over into RAM
<rdrop-exit> or to put it another way, the stack is always full
<rdrop-exit> off to breakfast, catch you all later
rdrop-exit has quit [Quit: Lost terminal]
jsoft has joined #forth
boru` has joined #forth
boru has quit [Disconnected by services]
boru` is now known as boru
Guest22296 has joined #forth
dddddd has quit [Remote host closed the connection]
<Guest22296> What's up forth fiends
Guest22296 has quit [Quit: Lost terminal]
crab1 has joined #forth
<crab1> what's up forth fiends
<tabemann> back
<crab1> how are ya
<tabemann> working on my disassembler, slowly
<crab1> oh fun
<crab1> I've been given 14 days off work because I used the same equipment as someone who's tested positive for covid, so that's interesting
<MrMobius> hope youre getting paid
<tabemann> someone should make a song based off my sharona titled my corona
<tp> my stackona ...
<tp> hey tabemann
<tp> MrMobius, tabemann is getting paid ... just not for zeptoforth
<tabemann> unfortunately my job seems to expect me to work on every weekend
<tp> hmm
<tp> life of a serf ?
<tabemann> unlike a serf I am paid quite well...
<tabemann> my work though seems to have no concept of scheduling things realistically
<tabemann> they always say "well, we put off N tickets until the next release"... when the number of tickets they didn't put off in itself is unrealistic
<tabemann> and then there's the testers
<tabemann> they always produce tickets faster than we developers can fix them
<tabemann> and sometimes they seem to act as if they were designers rather than just testers
<tp> serfs spent the daylight hours working the land, but it sounds like you're spending your daylight hours coding ?
<tp> tabemann, it's great to be well paid especially in these Coronavirus times :_
<tp> :)
<tp> especially when millions are out of work
<tabemann> exactly
<tp> so work hard and keep that job, wait to be headhunted for more money and better conditions by a boss who is a pleasure to work for ?
<tabemann> the other problem is that, for me, this job is really convenient location-wise
<tp> yes, I recall that
<tabemann> it's almost certain that any other job would be further from where I like, further from where my daughter lives, and further from where my daughter goes to school
<tp> but 7 days a week working has to interfere with your Forth writing time ?
<tabemann> that is true
<tp> yes, and travel is time consuming, expensive and risky
<tp> I once travelled 8 hrs a day for a specific job, was crazy
<tabemann> part of me hopes I can work from home indefinitely, because it's really convenient for me to not have to leave the house to work
<tabemann> but I know that when they lift the "safer at home" order they'll make us come into work
<tp> so I started staying overnight in a 'overnight' travellers hotel but that was no good because crazy women would wake me up at all hours inviting me to 'party'
<tp> but all I wanted to do was sleep
<tabemann> oh kaay...
<tp> ah well, at least when that happens you wont have to work weekends ?
<tp> I was working on submarines back then
<tabemann> nah, whether I have to work weekends or not depends on whether the testers let off with constantly spewing out more and more tickets
<tp> oh oh
<crab1> I am getting paid, yes
<tabemann> that's good to hear
<tp> that was 25 years ago about
<tp> i was quite fit back then and able to fit into the tiny spaces on subs to fix things
<crab1> yeah if I wasn't getting paid I would have to take a significant dent out of my savings
<tp> at times they would have to lower me by by feet into tiny spaces just to get at sensors etc
<crab1> it seems like @tp has had a large variety of different jobs
<tp> not a lot of spare space on a sub, theyre a mass of pipework and electrics everywhere
* tabemann wouldn't want to be a submariner
<tp> my masks finally arrived, I bought a box of 50 of the lighter flat wrap around face masks ... from china naturally
<tp> took 2 weeks, I bought then to go shopping with
<tp> I had to start a 'to do list' for my Forth dev system as so many ideas were popping up
<crab1> I just have about 5 masks that are simple cloth cutouts, two sets of ear holes and such
<tp> #forth is a great source of ideas
<crab1> what's your forth dev system comprised of?
[1]MrMobius has joined #forth
MrMobius has quit [Ping timeout: 256 seconds]
[1]MrMobius is now known as MrMobius
dave0 has quit [Quit: dave's not here]
reepca` has quit [Ping timeout: 260 seconds]
merkc0 has joined #forth
reepca has joined #forth
merkc1 has joined #forth
merkc0 has quit [Read error: Connection reset by peer]
<tp> ping crest
gravicappa has joined #forth
jedb has quit [Read error: Connection reset by peer]
merkc1 has quit [Ping timeout: 260 seconds]
mtsd has joined #forth
jedb has joined #forth
jsoft has quit [Ping timeout: 272 seconds]
merkc1 has joined #forth
WickedShell has quit [Remote host closed the connection]
mtsd has quit [Ping timeout: 272 seconds]
merkc1 has quit [Quit: Leaving]
jimt[m] has quit [*.net *.split]
guan has quit [*.net *.split]
jimt[m] has joined #forth
guan has joined #forth
xek has joined #forth
reepca has quit [Remote host closed the connection]
reepca has joined #forth
mtsd has joined #forth
siraben has quit [Quit: killed]
jimt[m] has quit [Quit: killed]
<tp> whoo hoo XSLT is awesome!
<crab1> XSLT?
siraben has joined #forth
cheater has quit [Ping timeout: 272 seconds]
jimt[m] has joined #forth
TCZ has joined #forth
iyzsong has joined #forth
mtsd has quit [Quit: Leaving]
mtsd has joined #forth
boru has quit [Read error: Connection reset by peer]
boru has joined #forth
jsoft has joined #forth
crab1 has quit [Remote host closed the connection]
iyzsong has quit [Ping timeout: 260 seconds]
mtsd has quit [Remote host closed the connection]
dddddd has joined #forth
Zarutian_HTC has quit [Ping timeout: 260 seconds]
TCZ has quit [Quit: Leaving]
Zarutian_HTC has joined #forth
antaoiseach has joined #forth
<antaoiseach> hi all
antaoiseach has left #forth [#forth]
reepca has quit [Read error: Connection reset by peer]
reepca has joined #forth
TCZ has joined #forth
reepca has quit [Ping timeout: 258 seconds]
cheater has joined #forth
reepca has joined #forth
TCZ has quit [Quit: Leaving]
WickedShell has joined #forth
<veltas> When you find yourself needing more than 3 or so things on stack do you tend to start using return stack first, variables, or something more creative?
<crc> I don't directly use the return stack much
<crc> It would depend on the problem at hand
<crc> I *prefer* to not use variables as they are slow, but will if they make the code cleaner, or if for a one off thing I'm not keeping around
<veltas> crc: Do you avoid ROLL and PICK (or equiv)?
<crc> I don't use PICK or ROLL at all. I have a `reorder` word that can do complex restructuring that's used very sparingly.
dave0 has joined #forth
<crc> http://forth.works/examples/ANS-PICK-ROLL.retro.html would be an implementation of pick and roll for my system
<crc> http://forth.works/examples/retro-extend.retro.html has an example using reorder (see the `unpack` word)
<veltas> Nice
<veltas> Hmmm I think if I did that I would encode the reordering in the current BASE, e.g. 1234 4321 reorder
<veltas> Or just require decimal that might work better
<crc> reorder isn't fast, but makes some things a lot cleaner :)
<veltas> Yes, PICK and ROLL aren't lightspeed either, even when you have an easily addressible stack
<veltas> I guess I need to PICK the right tool for the job, right? ;)
<veltas> I'll let myself out
<veltas> crc: Certainly my number version wasn't an attempt to speed anything up, it was me thinking about how to do it on a forth with less succinct strings than retro
TCZ has joined #forth
<MrMobius> you can also just use global variables. I think its worth it if theres just no other way
<MrMobius> ahem, "local variables" in forth terminology which are variables visible at all times by all words that exist for the life of the program
<Zarutian_HTC> MrMobius: hmm.. some forths do have local words and variables in a sense (the sub word stuff iirc)
gravicappa has quit [Ping timeout: 260 seconds]
TCZ has quit [Quit: Leaving]
TCZ has joined #forth
xek has quit [Ping timeout: 260 seconds]
jsoft has quit [Ping timeout: 264 seconds]
jsoft has joined #forth
TCZ has quit [Quit: Leaving]