<mark4>
dont use pad inside worse that use pad? :)
<mark4>
pad is usually here NNN + where nnn was traditionally 80
<f-a>
well how do I know that a word uses pad
<f-a>
> inb4 recursively `see` it
<mark4>
number output routines usually do
<mark4>
in general use of pad is not safe
dave0 has joined #forth
sts-q has quit [Ping timeout: 265 seconds]
sts-q has joined #forth
<proteusguy>
nihilazo, to say that people can't make money off your work is to say you don't want people to ever use your work.
<proteus-guy>
f-a, typically pad is only used by low level words where you absolutely know you're not going to mess with things that might use it. When you see yourself looking at pad it's more likely that you need to use the dictionary for a temp space or alloc.
<f-a>
that «absolutely» scares me a bit xD
<siraben>
nihilazo: I like GPL because it ensures free software stays free
<siraben>
If that is your goal
<siraben>
Otherwise downstream has no incentive to upstream the changes
<siraben>
inode: I think the GPL violations team do a good job of winning cases, IIRC
<siraben>
Were it not for GPL, I probably would not be able to hack on my reMarkable e-ink tablet, because they use the Linux kernel, coreutils, bash etc. they are compelled to release the sources
<siraben>
I don't think GPL implies providing toolchain access, but it's nice that the same company released their toolchain
Zarutian_HTC has joined #forth
jedb__ has joined #forth
jedb_ has quit [Ping timeout: 276 seconds]
<proteus-guy>
siraben, if the Remarkable folk didn't want their system to be open source they'd go a different direction. The license did not force them to do anything. The licenses only filter options.
<siraben>
unfortunately some parts (such as the e-ink waveform) are given as proprietary blobs, probably at the behest of E-Ink corp (very nasty monopoly)
<proteus-guy>
yep - and no one's GPL license is going to change that. In fact, some interpretations of GLP3, AGLP3, etc could actually make it where you could not use those tools with such a system.
<siraben>
proteus-guy: what's GLP? is that a different license?
<f-a>
Gallant Lewd Productions
<siraben>
At least for the bootstrappable project, we definitely want code to be GPL'd so various distros can use it in their bootstrap
X-Scale` has joined #forth
X-Scale has quit [Ping timeout: 260 seconds]
X-Scale` is now known as X-Scale
andrei-n has joined #forth
MrMobius has quit [Read error: Connection reset by peer]
f-a has quit [Ping timeout: 264 seconds]
f-a has joined #forth
<inode>
f-a: http://lars.nocrew.org/forth2012/core/PAD.html <- "PAD has been available as scratch storage for strings since the earliest Forth implementations. It was brought to our attention that many programmers are reluctant to use PAD, fearing incompatibilities with system uses. PAD is specifically intended as a programmer convenience, however, which is why we documented the fact that no standard words use it."
joe9 has quit [Ping timeout: 268 seconds]
joe9 has joined #forth
f-a has quit [Ping timeout: 245 seconds]
Vedran has quit [Ping timeout: 246 seconds]
<veltas>
I avoid using PAD outside of short and sweet programs
Vedran has joined #forth
<proteus-guy>
siraben, sorry I meant GPL not GLP. :-)
<proteus-guy>
inode, yes - if I'm writing some string handling code or a small editor I'm gonna likely use pad strictly inside that code. But I'm certainly not going to use it for a random data storage area of anything significant (which is how it's most often abused).
<inode>
sure, it makes sense for temporary storage for data manipulation before copying the result somewhere less transient
<inode>
i used it recently to build up a path to pass to REQUIRED, with a filename that i received from command line arguments. i didn't see why it was necessary to use the dictionary when i could polute PAD and forget about the resultant string once REQUIRED had returned
f-a has joined #forth
<f-a>
thanks inode
<inode>
no need to thank me, it was linked on the page you linked to :)
cp- has quit [Quit: Disappeared in a puff of smoke]
cp- has joined #forth
cp- has quit [Quit: Disappeared in a puff of smoke]
cp- has joined #forth
cp- has quit [Client Quit]
cp- has joined #forth
cp- has quit [Client Quit]
cp- has joined #forth
tech_exorcist has joined #forth
tech_exorcist has quit [Max SendQ exceeded]
tech_exorcist has joined #forth
<mark4>
the number conversion routines <# # #> #s etc all use pad - when you use a . word they use pad. in general it is ok to use pad as long as the use us contained within one operation as it were
<mark4>
you dont want a word that starts doing some thing with pad, then does some number conversion and then completes the something it was doing earlier
<mark4>
pad is safe to use just not split across separate operations :)
Zarutian_HTC has quit [Remote host closed the connection]
<veltas>
In the 'standard' PAD is not the pictured numeric output string buffer
<veltas>
I don't know the full history though and what other forths do, not surprising to me if some use PAD for that
<veltas>
From ANS Forth "The contents of the region addressed by PAD are intended to be under the complete control of the user: no words defined in this Standard place anything in the region, although changing data-space allocations...may change the address returned by PAD"
<veltas>
And the reason it might return is exactly what mark4 said earlier, that it's often floating somewhere just after HERE
hosewiejacke has joined #forth
<veltas>
return... I mean the reason it might move
<mark4>
veltas the system not using pad sounds like pure sanity to me but i believe 79 standard forths and 83 standard forths used pad for number output, my forths do to lol
<mark4>
im thinking maybe even fig forth did.
<mark4>
traditionaly pad is defined as : pad here 80 + ;
<mark4>
literally thats it lol
<mark4>
i made it here 256 + or something
<veltas>
"literally thats it" applies to most of Forth's words but yes :P
<mark4>
lol
<mark4>
it SHOULD apply to most words...
<veltas>
Especially fig forth
<mark4>
ok now that im awake i guess i go make coffee brb :)
<mark4>
i never really got one with fig forth, i didnt like their "we put ALL our soures in one TLDR soruce file!"
<mark4>
lol
<veltas>
I think that's just because that works easier with the assemblers they were relying on at the time
<veltas>
This is what I did too until recently because I saw x64 and decided I prefer source being split up a bit
<veltas>
I am in process of splitting up ZEnv
<mark4>
i too wrote everything in one file in ny early days :)
<mark4>
but splitting things up across files is the same as splitting things up across words, its factorization at a higher level :)
<neuro_sys>
Do you use VOCABULARY, DEFINITIONS, ALSO words when splitting into separate files?
<mark4>
actually i do but i reinvented how they work, in most forths you can do only forth also forth also forth. i have NO also
<mark4>
if you have root compiler forth and you invoke compiler you get root forth compiler with compiler at the top of context
<mark4>
the resoning behind the original method is if you have root compiler forth assember on the stack and you load a module and it needs to have foo bar bam and assembler on the "context" stack i should haave said
<mark4>
you just put them there and then remove them all laster and you wont have removed assemblrer from context for the module that had it there originally
<mark4>
but in my forth what you can do is create your own context stack, manipulate it however you want and you will never have the same voc in cotext at the same time
<proteusguy>
inode, yes - building a string path - perfect use of pad.
<mark4>
as long as the building of and use of is not interleaved with other words that use pad :)
<mark4>
which it probably wont be
<mark4>
tho COULD be if you needed to inject numbers into that path
<proteusguy>
mark4, right - nothing else can use pad or allocate dict space while you're using pad.
<mark4>
if you had a cache directory with sub dirs 000 001 002 ... 999 for example
<mark4>
they can... they should not :)
<mark4>
foot in self shoot
<mark4>
i need to implement menu bars and menu items and sub menus now all leveragling the existing text windowing i have in place
<mark4>
ill back port all these new things im doing in C back into forth where i implemented all this originally lol
<mark4>
get the TUI fully working in X4 and X64 and T4
<mark4>
then maybe get on with developing A64
<proteusguy>
mark4, have you been updating any of your forth repos? Newest one I see is x64 which is 7 months ago. t4 & x4 are years old.
<mark4>
proteusguy: not yet, i have a bunch of changes that i need to do on them but i have been religiously NOT coding anything for about 2 years solid lol
<mark4>
i got the coding bug back again but i want to finish this TUI im doing right now in C because a lot of what im doing here will go into the forth rewrite
<mark4>
ive not abandoned any of my forths :)
<mark4>
x64 was done in a cpl of weeks of a bit here and a bit there. no real focus work there :/
<mark4>
im 100% focued back on my code now tho
<veltas>
mark4: Focused back on x64?
<mark4>
not making any changes there yet but only because i want to fininsh this before i start back on taht, this is really just SMOP and x4 and x64 need some serious attention
<proteusguy>
mark4, ok cool - look forward to seeing the results.
<veltas>
Me too
Keshl has quit [Quit: Konversation terminated!]
<mark4>
yea i got a LONG "to do" list lol
<mark4>
including some X protocol stuff if i can :)
<mark4>
not using external libs, literally just opening sockets and implementing the low level protocol in forth
bluekelp has joined #forth
<mark4>
first thing i would have to do there is go thru the x protocol docs and convert them to a BNF description of the protocol lol
gravicappa has quit [Ping timeout: 256 seconds]
bluekelp_ has quit [Ping timeout: 256 seconds]
cp- has quit [Quit: Disappeared in a puff of smoke]
cp- has joined #forth
gravicappa has joined #forth
MrMobius has joined #forth
cp- has quit [Quit: Disappeared in a puff of smoke]
cp- has joined #forth
elioat has joined #forth
hosewiejacke has quit [Ping timeout: 245 seconds]
Zarutian_HTC has joined #forth
f-a has quit [Ping timeout: 246 seconds]
f-a has joined #forth
hosewiejacke has joined #forth
dave0 has quit [Quit: dave's not here]
spoofer has joined #forth
hosewiejacke has quit [Ping timeout: 245 seconds]
hosewiejacke has joined #forth
gravicappa has quit [Ping timeout: 245 seconds]
gravicappa has joined #forth
hosewiejacke has quit [Ping timeout: 245 seconds]
Zarutian_HTC has quit [Ping timeout: 256 seconds]
kiedtl has quit [Quit: This, too, shall pass.]
f-a has quit [Read error: Connection reset by peer]
f-a has joined #forth
andrei-n has quit [Quit: Leaving]
kiedtl has joined #forth
gravicappa has quit [Ping timeout: 264 seconds]
hosewiejacke has joined #forth
mirrorbird has joined #forth
rpcope- has quit [Ping timeout: 240 seconds]
rpcope has joined #forth
kiedtl has quit [Changing host]
kiedtl has joined #forth
hosewiejacke has quit [Remote host closed the connection]
APic has quit [Ping timeout: 240 seconds]
APic has joined #forth
f-a has quit [Remote host closed the connection]
f-a has joined #forth
f-a has quit [Client Quit]
dave0 has joined #forth
elioat has quit [Quit: elioat]
Zarutian_HTC has joined #forth
<mark4>
doing the menus in forth is soooo much easier lol
mirrorbird has quit [Remote host closed the connection]
tech_exorcist has quit [Quit: tech_exorcist]
Zarutian_HTC has quit [Remote host closed the connection]