<neto>
that's what I see when I call .s from inside a file on what SHOULD be an empty stack
<neto>
the same does not happen if I launch x4 and then fload the same file
<neto>
in that case the stack is empty, as it should be
<neto>
and when it reaches the end of the file the stack is not cleared, it carries over
<neto>
I think mark4 is tired of my shit
<mark4>
no lol im multi tasking
<mark4>
im getting autotools working on my uCurses thing
<mark4>
i been working on it all day and its been giving me the run around but i got it working now with help
<mark4>
and am checking it in
<mark4>
i never used to have these stack issues till i tried to implement a fix from veltas lol
<neto>
I just write Makefiles by hand, miss me with that bloated autotools shit
<neto>
what was the "fix" lmao? mark4
<mark4>
well my biggest problem was that when i ran make it built all the c files into .o files inside the src dir and then proceeded to attempt to compile all the .o files with the c compiler
<mark4>
removing of -xc from the CFLAGS fixed that
<neto>
hmm, yep, what you get for not writing your Makefile by hand ;)
<neto>
hope I didn't startle you too much by wrecking x4 in a few ways, cya mark4
<mark4>
lol
<mark4>
no its good. it needs some exercise lol
<neto>
I'll be back to probably break it again
<mark4>
:)
<neto>
ever heard of technical debt? Yeah, i'm a technical debt collector
<mark4>
lol
<neto>
;)
neto has quit [Quit: leaving]
* Zarutian_HTC
reads back a bit of the log
dave0 has quit [Quit: dave's not here]
<Zarutian_HTC>
I do not even use make for that fcpu sim of mine, just one .c file
<Zarutian_HTC>
and the build instruction is in a comment in it
<Zarutian_HTC>
but then again I use an image file with the eForth variant I have adapted
<siraben>
mark4: do you have a link to x4?
boru` has joined #forth
boru has quit [Disconnected by services]
boru` is now known as boru
<mark4>
github.com/mark4th
<mark4>
thers t4 in there, x4, x64 and uCurses :0
<mark4>
that last is the only non forth one lol
<mark4>
x64 might have some bugs in some of its primitives or extensions
Zarutian_HTC has quit [Quit: Bye]
Zarutian_HTC has joined #forth
sts-q has quit [Ping timeout: 256 seconds]
f-a has quit [Ping timeout: 260 seconds]
f-a has joined #forth
sts-q has joined #forth
mipri has joined #forth
<mipri>
is there a forth that can produce shared objects (.so, .dll) that other languages can load with a C FFI?
mirrorbird has joined #forth
<mark4>
that is a very non trivial thing to do :)
<mark4>
but not impossible
<mark4>
not sure of any that do it tho
m2rrorbird has joined #forth
mirrorbird has quit [Ping timeout: 246 seconds]
gravicappa has joined #forth
<mipri>
aye, ty
m2rrorbird has quit [Quit: Leaving]
f-a has quit [Remote host closed the connection]
<tabemann>
mipri: a forth shared object would have to include the entire forth runtime
<tabemann>
and what do you do if you have two forth shared objects in the same system? have two forth runtimes side by side?
<tabemann>
or do you need two shared objects to begin with, one containing the code one compiled, and one containing the runtime?
dave0 has joined #forth
mirrorbird has joined #forth
andrei-n has joined #forth
dave0 has quit [Read error: Connection reset by peer]
mirrorbird has quit [Remote host closed the connection]
dave0 has joined #forth
mirrorbird has joined #forth
<proteusguy>
mark4, nice to see those repos getting updates! Will check out the latest x4 soon.
f-a has joined #forth
Zarutian_HTC has quit [Ping timeout: 246 seconds]
f-a_ has joined #forth
f-a has quit [Read error: Connection reset by peer]
mirrorbird has quit [Remote host closed the connection]
mirrorbird has joined #forth
jedb_ has quit [Remote host closed the connection]
jedb has joined #forth
f-a_ has quit [Quit: leaving]
f-a has joined #forth
mirrorbird has quit [Ping timeout: 256 seconds]
<siraben>
mipri: nice!
<siraben>
does `-m elf_i386` still work on 64 bit devices?
mipri has left #forth [#forth]
tech_exorcist has joined #forth
tech_exorcist has quit [Remote host closed the connection]
tech_exorcist has joined #forth
tech_exorcist has quit [Remote host closed the connection]
tech_exorcist has joined #forth
tech_exorcist has quit [Remote host closed the connection]
tech_exorcist has joined #forth
tech_exorcist has quit [Remote host closed the connection]
tech_exorcist has joined #forth
tech_exorcist has quit [Remote host closed the connection]
tech_exorcist has joined #forth
tech_exorcist has quit [Remote host closed the connection]
f-a has quit [Ping timeout: 264 seconds]
tech_exorcist has joined #forth
tech_exorcist has quit [Remote host closed the connection]
<mark4>
proteusguy: still need to put a converted effort into some stuff :)
jedb_ has joined #forth
jedb has quit [Ping timeout: 260 seconds]
jedb__ has joined #forth
jedb_ has quit [Ping timeout: 260 seconds]
Zarutian_HTC has joined #forth
_whitelogger has joined #forth
Zarutian_HTC has quit [Remote host closed the connection]
elioat has joined #forth
dave0 has quit [Quit: dave's not here]
elioat has quit [Quit: elioat]
f-a has joined #forth
<mark4>
concerted i mean. i just tant type is all :)
tech_exorcist has joined #forth
really2 has joined #forth
elioat has joined #forth
really2 has quit [Ping timeout: 256 seconds]
elioat has quit [Quit: elioat]
neto_ has joined #forth
neto_ is now known as neto
<tabemann>
back
rixard has quit [Read error: Connection reset by peer]
rixard has joined #forth
gravicappa has quit [Ping timeout: 260 seconds]
gravicappa has joined #forth
mirrorbird has joined #forth
Zarutian_HTC has joined #forth
tech_exorcist has quit [Quit: tech_exorcist]
tech_exorcist has joined #forth
<tabemann>
what I hate about making releases is then I wonder about wtf I should do next
<f-a>
relax for a second
<tabemann>
I just like to keep busy; in my case ATM what I can do next is implement a driver for the flexible memory controller for the STM32F746
<tabemann>
so I can use it for a framebuffer for the STM32F746 DISCO board's touchscreen
<f-a>
open a wiki article at random
elioat has joined #forth
<tabemann>
actually, I think I'll write a block editor
<neto>
tabemann: for the STM32? does it have disc based memory?
<tabemann>
neto: I wrote a block interface for the STM32F746 DISCO that uses Quad SPI-based external flash memory
<neto>
does the STM32 have any internal flash?
<neto>
I know messing with the internal flash of the Arduino's is a bit of a pain because they try to block it off to some extent
<tabemann>
the STM32 chips have internal flash
<tabemann>
personally, I wouldn't touch the Atmega328p
<neto>
but u're not touching it?
<neto>
yeah the atmega328 is quite an old chip, not a lot of RAM, which sucks cuz it's not easy to get your words onto flash
rixard has quit [Read error: Connection reset by peer]
<tabemann>
that chip is like 20 years obsolete, and it neither is keeping with the times (if you want a small chip go with the STM32F0, STM32L0, or STM32G0), nor there for nostalgia value (the 6502 or Z80)
<neto>
it's just what I have right now
<neto>
ik some people do have forth's that write to flash
rixard has joined #forth
<tabemann>
neto: I use the STM32 chips' internal flash for my primary code storage, even though my form, zeptoforth, can also compile to RAM as well
<neto>
but I believe only one doesnt require a programmer
<tabemann>
*my forth
<neto>
yeah that makes sense if you have a programmer and aren't relying on the flash memory bootloader to load your code
<tabemann>
the boards I'm using are DISCO boards, so they have a built-in SWD programmer that can be controlled via USB
<neto>
mhm fortunately built in programmers are becoming the norm now a days
<tabemann>
as for Arduino, well, I'm not a fan
spoofer has quit [Quit: Lost terminal]
<neto>
wdym by "lambda expressions"?
<neto>
you mean headerless words?
<tabemann>
oh you're reading the zeptoforth docs?
<neto>
oh yeah : )
<tabemann>
zeptoforth has the capability to define anonymous words within other words
<tabemann>
with [: ;]
<tabemann>
like you can write : my-word ." foo" [: ." bar" ;] execute ." baz" ; and then executing my-word will output foobarbaz
<tabemann>
they're not closures, though
<neto>
I was discussing headerless words with mark4 yesterday
<neto>
seems like you have yet another take on it
<neto>
cool stuff
<tabemann>
zeptoforth also supports standard :noname
<tabemann>
but unlike :noname ; [: ;] is used inside other words
<tabemann>
you can even return then
<neto>
mark4 basically created private functions like you'd see in OOP
<tabemann>
like : another-word [: ." foo" ;]
<neto>
yeah that's quite the interesting extension
<tabemann>
like : another-word [: ." foo" ;] ." bar" ; so executing another-word execute will output barfoo
<neto>
does [: use :noname in its definition?
<tabemann>
no
<neto>
or is it a whole different way to do it
spoofer has joined #forth
<neto>
hmmm, how I thought you did it was basically:
<neto>
[ :noname
<neto>
and then ;] takes that xt and passes it to literal
<neto>
does that not work?
<tabemann>
here's now it's defined:
<tabemann>
\ Begin lambda
<tabemann>
[immediate]
<tabemann>
[compile-only]
<tabemann>
reserve-branch
<tabemann>
: [: ( -- )
<tabemann>
$B500 h,
<tabemann>
;
<tabemann>
\ End lambda
<tabemann>
: ;] ( -- )
<tabemann>
[immediate]
<tabemann>
[compile-only]
<tabemann>
$BD00 h,
<tabemann>
here over branch-back!
<tabemann>
4+ lit,
<tabemann>
;
<neto>
oh boi okay, that's interesting
<neto>
so you the square brackets lie
<neto>
you never actually step into interpret mode
<neto>
which makes sense ig cuz u'd just step right back
<tabemann>
the brackets mean they're used in compile mode
<tabemann>
well, that they're immediate
<neto>
ik, but it hints that you're doing something immediatly, aka that they're immediate
<neto>
yeah that's very neat
<neto>
it's not exactly private words as mark4 implemented, but it's something else
<tabemann>
I had to use [immediate] and [compile-only] rather than immediate and compile-only because ; in zeptoforth completes a definition, and if it is writing to flash, that means that the definition can't be altered afterwards
<tabemann>
"private words" in zeptoforth are defined with wordlists, which I use liberally
<neto>
show me the syntax u use for private words?
<neto>
mark4: has a <header word and a behead word to remove the private words from the dictionary
<mark4>
think of <headers and headers> as always pointing towards the words that have headers :)
<tabemann>
they're usually not truly private, because I want to expose them at a level if the user wants to access them later
<neto>
so he can pick and choose which words are visible at the end of a file
<neto>
okay I see, I think that's a p standard way of doing it, yeah
f-a has quit [Ping timeout: 246 seconds]
<neto>
juggling around dictionaries
<neto>
well I gtg, thanks the for explanations tabemann
<tabemann>
oh no problem
<tabemann>
laters
neto has quit [Quit: Lost terminal]
f-a has joined #forth
elioat has joined #forth
elioat has quit [Client Quit]
gravicappa has quit [Ping timeout: 245 seconds]
andrei-n has quit [Quit: Leaving]
X-Scale` has joined #forth
X-Scale has quit [Ping timeout: 264 seconds]
X-Scale` is now known as X-Scale
f-a has quit [Quit: leaving]
wineroots has quit [Remote host closed the connection]
neto has joined #forth
dave0 has joined #forth
<neto>
mark4: are you using termcap for uCurses?
mirrorbird has quit [Quit: Leaving]
<mark4>
terminfo
<neto>
hmm, what's the difference?
<mark4>
termcap predates terminfo, was invented by the guy that wrote the VI editor so he could do input reliably across all terminals
<mark4>
that was updated to terminfo some time later
<mark4>
terminfo gives more info than termcap did
tech_exorcist has quit [Quit: tech_exorcist]
<neto>
I see, how are you looking to improve over nCurses?
<mark4>
im adding the pulldown menus to it right now, eventaully i want to have something like JSON descriptions for the U.I. so you dont have to call create this, create that for every scree, window, menu thingie...
<neto>
JSON UI...
<mark4>
no i wont be using anyone elses code for any part of this lol
<mark4>
i wont use a json library to parse json, ill implement it myself
<mark4>
if i go that route
<neto>
here's my prediction: sooner or later you'll have implemented a terminal based web browser
<mark4>
no
<mark4>
cannot abide those and have no interest in anything of that nature
<mark4>
i dont even think ill write a text editor or anything like that
<mark4>
why would i when i have sublime text lol
<neto>
YIKES okay that's another blow to my respect for you
<mark4>
lol
<neto>
out of curiosity, did you learn assembly first an then forth or other way around?
<mark4>
asm first
<neto>
I ask simply because your comments are very assembly like
<neto>
yes I see, that's what I thought
<mark4>
6502. learned it in 2 weeks and then bought my first computer
<neto>
how you went from that to using sublime is beyond me
<mark4>
in 2 weeks i knew every single 6502 opcode, its encoding and every single addressing mode and had a basic understanding of how a computer program was constructed
<mark4>
have you used sublime?
<mark4>
i paied for it even tho i traditionally will not pay for nag-ware which is what it is
<mark4>
i dont buy nag-ware OR crippleware
<neto>
no thanks, my 150 line forth based text editor is all I need
<neto>
yet here you are
<mark4>
ya lol
<mark4>
i also bought eric isaacsons A386/D386 assembler/debugger
<neto>
SAD!
<mark4>
shareware dos programs
<mark4>
and IDA Pro... TWICE!
<neto>
was radare2 not a thing yet?
<mark4>
radare2 is impossible to use. utterly impossible to use
<mark4>
and no where near as good as IDA Pro
<neto>
i'll give you it to you it's a bit of a mouse trap to use
<neto>
have you tried Ghidra?
<mark4>
was not a fan of that either
<mark4>
not intuitive the way IDA is
<mark4>
but better than radare2
<neto>
why was that
<neto>
I haven't used it myself btw
<neto>
haven't had a need yet
<neto>
radare2 is all I know
<neto>
I do approve of your use of intel syntax over at&t btw
<mark4>
i tried it, emerged it one time, spent 10 minutes trying to figure out how to JUST START and then said fuck this shit
<neto>
at&t syntax makes me wanna kms
<mark4>
and emerge -c radar2 && emerge --depclean
<mark4>
i wont go near at&t
<neto>
oh you a gentoo user?
<neto>
yeah radare2 has a high barrier to entry, takes a few days to learn
<neto>
it's kinda like vim in that sense ;)
<mark4>
that days to learn thing drives me away. if i cannot pick it up and run with it the instant i neeed to use it i drop it and move on
<mark4>
same with editors, tahts why i dont ever use vi
<mark4>
before ST2/3 i used joe's own editor at the console
<neto>
because real men handle their own dependencies
<mark4>
if you are going to use a source based distro (high 5!) i dont understand why it would be anything but gentoo
<neto>
: )
<mark4>
have you used gentoo?
<neto>
i'm planning on switching to arch, artix or gentoo
<neto>
can't be bothered to rn tho
<neto>
jk, I use xubuntu on my main machine, but slackware on this lil netbook I use to focus on projects
<neto>
no but ik what it's about
<neto>
gentoo users like their long compilation times
<neto>
they're the turtles of the linux world
<neto>
slow and steady compiles the bloated firefox web browser
<mark4>
arch is good but i do not trust aur and most of anything you might want is not in their main repo but is in aur
<neto>
doesn't emerge use third party repos too?
<mark4>
it can, in overlays
<neto>
do you have a specific reason not to trust aur?
<mark4>
yes. anyone can put anything it it. its not moderated at all
<mark4>
ever
<neto>
cuz honestly I don't think it's worth the time to compile every package you use
<neto>
and gentoo's repos are?
<mark4>
neto its not really that much of a problem, you compile in your down time or as you work on other things
<mark4>
portage is
<mark4>
overlays are for the most part too, most overlays are actually things being maintained by official gentoo devs of things that are not in portage proper
<neto>
hmm I kinda doubt the security is much better than aur tbh but okay
<neto>
it is a good point towards gentoo if true
<mark4>
and with use flags you can control what gets built against what
<neto>
I like suckless' philosophy of only distributing source code
<neto>
but that is not gentoos philosophy
<neto>
as gentoo autoconfigures the compilation for you
<mark4>
gentoo portage has nothing in there that has not been fully inspected by a gentoo dev becuase everything has to have an ebuild for it that says how to build, what to build against, where to install... . .
<neto>
while suckless' software requires you to manually edit source files to change configuration options
<mark4>
it does but in accordance with the use flags you have set
<neto>
which I don't believe portage was made to handle
<neto>
correct me if i'm wrong
<mark4>
and you can set global use flags -gnome -kde3 etc... or you can set use flags on individual packages
<mark4>
no. you use USE flags
<neto>
yeah that's kind of against suckless' philosophy
<mark4>
the ./configure operation is modified by the ebuild to that purpose
<neto>
honestly i'm really happy wih their software
<neto>
my whole graphical enviroment is running suckless code
<neto>
i'm not a big fan of ./configure scripts
<mark4>
you dont touch them
<neto>
and suckless doesn't use them
<mark4>
you just set your use flags and emerge magic-application
<neto>
ik, but I see them as unnecessary
<neto>
just put it in the make file
<neto>
installing suckless software is very simple
<neto>
1. git clone it
<neto>
2. edit config.h as you wish
<neto>
3. make install
<neto>
and you're done
<neto>
no bs
<mark4>
emerge yzzy
<mark4>
done
<neto>
and they specifically DON'T catter to novice users
<mark4>
or emerge xyzzy -pv (pretend verbose)
<neto>
okay now go into the source code and change it
<neto>
then reinstall it
<neto>
can you do that with portage?
<mark4>
see what use flags it uses, edit /etc/portage/package.use/package.use, add an entry for that ebuild with custom use flags and
<mark4>
then emerge it
<mark4>
same amout of time
<mark4>
i dont change other peoples code
<mark4>
but you can yes
<neto>
what's the use of compiling it on ur machine if you can't even edit the source code when you want
<mark4>
you can
<mark4>
i just dont
<neto>
but that just adds unnecessary steps
<mark4>
the reason i use gentoo is because their docs at the time i started usig it were the best of any distro
<mark4>
and the use flags give me absolute control over how my entire system is built
<neto>
with suckless software you just edit the file and make install
<neto>
no flag bullshit
<mark4>
arch docs are damned good too
<neto>
I only need to learn the code
<mark4>
nd suckless ans like 8 apps they make
<neto>
no need to learn some secret magic on how to compile it
<mark4>
ir is it 9 now
<mark4>
do a gentoo install in a VM, following the gentoo handbook and then tell me you are not sold on it
<neto>
suckless has a lot more projects now mark4
<neto>
yeah arch docs are top tier now a days
<mark4>
most of them were suffering from extreme bit-rot last time i checked
<mark4>
like x4 is starting to lol
<neto>
hmm idk
<mark4>
mental note to self: apply bit rot balm to x4 :)
<neto>
the reason I'm using suckless software in the first hand is cuz it just worked
<neto>
slackware's last release was 5 years ago
<neto>
so suckless software was the only that would run and compile without too much work
<mark4>
ya i used to use windowmaker as my ONLY gui
<neto>
and i'm very happy with it
<mark4>
but they are not useable any more
<neto>
you should try dwm ;)
<neto>
I think you'll enjoy the simplicity
<neto>
if you want to configure it you just change the config.h file and compile it
<mark4>
is dwm tiling?
<neto>
no need to learn some config/scripting language
<neto>
mhm it is
<mark4>
ick lol
<neto>
ick?
<mark4>
that would annoy the fsck out of me. i cant even stand it when windows tile to the top or left of the display because i moved them too close to it
<mark4>
i turn that shit off lol
<mark4>
i like overlapping windows
<neto>
lmao dwm has three modes, only one of them is tiling
<neto>
check out the first screenshot for an example
<neto>
"its source code is intended to never exceed 2000 SLOC."
<mark4>
mostly i use cinnamon desktop now
<neto>
I don't think you can say this about YOUR window manader
<mark4>
but i needed to use a debugger that did not drive me batshit crazy and kdbg looked like it fit the bill
<neto>
"Because dwm is customized through editing its source code, it's pointless to make binary packages of it. This keeps its userbase small and elitist. No novices asking stupid questions. There are some distributions that provide binary packages though."
<mark4>
so i literally installed kde plasma just so i could run kdbg which was not really usable outside kde
<mark4>
took me 10 minutes to fix the bug
<neto>
kde is too bloated for this lil netbook
<neto>
gets stuck loading
<neto>
and that's a 5 year old version of kde
<mark4>
ya cinnamon would work its very light
<neto>
current kde is prob even worse
<mark4>
plasma is bloatware for sure
<mark4>
its also very heavy on resources
<neto>
lmao no you don't get it mark4
<mark4>
and im still seeing bugs in it that i saw over 10 years ago
<neto>
the cpu throttles to 100% when I scroll a text editor
<mark4>
maybe time for a new machine? lol
<neto>
gnome software from the last 20 years will not run on this baby
<neto>
no FUCK that, this machine is MORE than enough, let me tell you
<neto>
i will NOT conced to bloated software
<neto>
concede*
<mark4>
try blackbox or fluxbox
<mark4>
i would have said try windowmaker but thats abandoneware
<mark4>
with devs working on BS that nobody needs and refusing to fix bugs
<mark4>
things like the ooooh so important bouncy bouncy icons
<neto>
mark4 I guarantee you they will not be less bloated than dwm
<neto>
it's literally less than 2000 lines of C codde
<mark4>
and menus that are postage stamp sized with text thats ... . . that big on modern monitors and NO effort to scale them to fit
<neto>
dwm takes up like 40MB of ram and it has more features than I could use
<mark4>
i liked widnowmaker back in the day because it had NO taskbar or tray
<mark4>
and the menus pinned
<neto>
you're a curious case, mark4
<mark4>
app-icons were cool too
<mark4>
i was rebelling against the microsoft U.I. model
<mark4>
taskbar? too much like windows
<neto>
window menu? sounds like windows to me
<mark4>
i liked windowmaker so much i even wrote a useless dockapp for it :)
<mark4>
wmdots
<neto>
come over to the tiling side, it's the side of the gods, mark4
<mark4>
no
<mark4>
fuck that
<neto>
mouses and trackpads are for idiots, come over to the tiling side, mark4
<neto>
what if I told you dwm tiling windows operate on a stack
<neto>
may the Unix gods have pity on your soul
<mark4>
not interested in a ui that would drive me batshit crasy :)
<neto>
tiling window managers are the definition of simple UI ;)
<neto>
there isn't much space for bugs in 2000 lines of code
<neto>
especially when it has been maintained for over 10 years with no major changes
<joe9>
neto, i switched away from tiling managers. I was big into xmonad.
<neto>
joe9: why did you switch away
<neto>
is xmonad that one implemented in haskell?
<joe9>
When I was doing repititive tasks, I knew the exact workspace I wanted. It was easier to just script the window locations and forget about all the window'ing shortcuts.
<joe9>
When it is a new task, it is easier to just draw the window I need .
<joe9>
check out rio of plan9.
<joe9>
It was a hard sell as I felt I was more efficient using a tiling wm.