mark4 changed the topic of #forth to: Forth Programming | do drop >in | logged by clog at http://bit.ly/91toWN backup at http://forthworks.com/forth/irc-logs/ | If you have two (or more) stacks and speak RPN then you're welcome here! | https://github.com/mark4th
<neto> and I run it again and get 3 1 1
<mark4> the next time you ran it you got a new file handle of 4
<neto> yes
tech_exorcist has quit [Quit: tech_exorcist]
<neto> I believe so
<mark4> so you are having the same stak issues im having
<mark4> it was a change i probably did wrong as a result of a discussion with veltas
<neto> I thought <open> was just a light wrapper around the open syscall
<mark4> when i define a system call word i do
<neto> i'm surprised it wasn't found earlier with how often essential file io must be
<mark4> X Y syscall <foo> for the foo system call
<mark4> x and y are the syscall number and the number of parameters the syscall expects
<mark4> the word created is <foo> and its basically a two item constant
<neto> neat where is that file for <open>?
<mark4> syscalls.s
<mark4> in src/kernel
<mark4> syscall is sort of : syscall create ;uses dosyscall c, c, ;
<mark4> if you can read that :)
<neto> wait we aren't passing the permissions are we
<mark4> erm i should look up my existing uses cases on <open> lol
<mark4> good point
<neto> so it is working right
<neto> maybe?
<mark4> maybe
<mark4> comment on fopen is ( n1 a1 --- fd )
<mark4> n1 might be the permissions
<neto> mhm it is according to the comments just above that line
<mark4> and a1 is of course the asciiz file name
<mark4> src/ext/resolver.f: 0 literal fopen \ open file for read
<mark4> that resolver is old never finished code
<mark4> look in fsave.f at the file-open definition
<mark4> : file-open ( --- fd | -1 )
<mark4> \1101 \ O_TRUNC O_CREAT O_WRONLY
<mark4> bl word \ parse filename from input
<mark4> \777 \ rwxrwxrwx
<mark4> hhere count s>z \ convert name to ascii z
<mark4> <open3> ;
<mark4> it may be i have a bug in <open> but i think i always used the 3 parameter version of open
<mark4> s>z converts a counted string to asciiz
<neto> yes that would explain a yet undiscovered ug
<mark4> ya
<mark4> unexercised code is always bug free :)
<neto> you implemented a similar function for fopen yeah
<neto> hmm is \777 a word or a comment?
<mark4> no the \ is prefix for octal
<mark4> $ is for hex and % is for binary
<neto> 0_0
<neto> o-okay, interesting choice
<mark4> \xxx is an octal number
<mark4> how does C inject octal numbers into stribngs?
<mark4> "foo\xxxbar
<mark4> "
<neto> idk, i don't do octals
<neto> hex and decimal is all I need
<mark4> octal is useful :)
<mark4> but rarely these days
<mark4> file permissions are octal though
<neto> you don't need those 3 parameter file permissions to open files tho do you?
<neto> usually r/o, w/o and r/w is all you need when opening files
<mark4> theres also flags
<mark4> like o-truncate, o-creat etc etc
<mark4> if it does not exist, create it
<mark4> if it exists, truncate it
<neto> yeah ig i'm used to have those hidden away in wrapers but that's true
<neto> why do you have file-open and fopen?
<neto> I realise one is parsing and the other is not
<mark4> thats why :)
<mark4> but they could have shared code
<neto> hmmm, really makes one think
<mark4> also one seems to be using <open> and the other <open3>
<neto> indeed
<mark4> also, one is b0rked :P
<mark4> it seems
<mark4> but might not be
<mark4> try \777 filename <open>
<neto> always good to have another one has a backup ;)
<neto> oh boi okay
<neto> got -1
<mark4> thats failed
<mark4> whats errno
<mark4> errno .
<mark4> make sure you are opening a file thats there lol
<neto> 17
<neto> yeah I am
<mark4> anwhats errno 17 in the linux headers?
<mark4> i shud implement .errno :)
<neto> file exists
<neto> that'ts the error
<neto> really makes you think
<neto> #define EEXIST 17 /* File exists */
<mark4> yoy were trying to create without trunc
<mark4> you
<neto> yeah lemme try a non existant file
f-a has quit [Quit: leaving]
<mark4> ya
<neto> now I got 3
<mark4> int open(const char *pathname, int flags);
<mark4> you need to pass correct flags for the 2 parameter verson of open
<mark4> thats our bug
<neto> indeed
<mark4> man 2 open helps
<mark4> same with all syscalls
f-a has joined #forth
<mark4> till the man page says only "you do not need to know this"
<mark4> which it occasionally does
<neto> yeah the man pages don't specify the flag values do they
<mark4> no just their names
<mark4> lol
<neto> gotta love it
<mark4> eventually they will be defined in x4
<neto> The argument flags must include one of the following access
<neto> modes: O_RDONLY, O_WRONLY, or O_RDWR.
<mark4> when i can do it sanely
<neto> so yeah without those flags it will fail
<mark4> yup
<neto> i'll just steal them from gforth wait
<mark4> lol
<neto> r/w is 2, r/o is 0 (??), w/o is 4
<neto> there you go
<mark4> bit positons or values?
<neto> values
<neto> that's for x86 linux, prob diff for others idk
<mark4> asm-generic/fcntl.h:#define O_RDONLY 00000000
<mark4> looks right to me
<mark4> seems to be the same for x64
<neto> good stuff
<mark4> the scary part will bewhen i try to create all those constants used in <ioct> calls lol
<mark4> pad $5413 0 <ioctl> drop i know that one is a tc-gets
<mark4> tioc gets ? i ferget what they are called
<mark4> byt thats what it is
<mark4> those macros to define those values are not obfuscared, not even a little... honest!!
<neto> yeah lmao now you see why gforth compiled to C
<neto> but I mean why do you NEED ioctl?
<mark4> theres logic behind how those are defined
<mark4> to set terminal properties for example?
<neto> "theres logic behind how those are defined
<neto> "
<neto> DOUBT that
<neto> hmm what terminal properties do you wanna set
<mark4> actualy its very sound logic and not difficult to understnd but the macros that implement that logic are complificated
<mark4> maybe baud rate?
<mark4> maybe canonical or non canonical?
<neto> yeah I hate the C preprocessor
<neto> can't escape codes do some of that?
<mark4> ?
<neto> this is what I mean
<neto> ig there's a lot those can't do
<mark4> those are how you do terminal cursor control and terminal attribute setting not how you set baud rates on consoles
<mark4> a console can be a terminal or it can be a serial port etc
<neto> also, does x4 clear the stack by calling quit or something after running a file?
<mark4> one of the known bugs is how im clearing stacks in quit and abort
<mark4> quit is not clearing stacks at all
<mark4> abort clears both right now
<mark4> thats wrong kind of
<neto> hmm so I run a file with -f
<neto> but then when I get control of the stack it's empty
<neto> even tho it wasn't at the end of the file
<mark4> did you abort?
<neto> no I called the test word inside of the file
<neto> and then the file ends
<neto> so x4 gives me a prompt
<neto> but the stack is empty
<neto> even tho it wasn't empty when it finished reading the file
<neto> you see what I mean?
<sts-q> question: in gforth, how can i run a shell command like "tput lines" or "tput cols" and read it's output ?
<neto> use the system word
<neto> example: s" ls" system
<neto> and it will print it out
<neto> but u wanna save that output right?
mirrorbird has quit [Quit: Leaving]
<sts-q> super, thank you!! i have to look there. yes, i need the output
<neto> yeah use see to read its source code
<neto> read that, the gforth docs are actually really good
<mark4> i dont like the ANS way of doing stack commenting
<mark4> too verbose
<neto> wdym mark4
<neto> c-addr?
<mark4> yup
<mark4> i just use ( a1 n1 --- )
<neto> better to say too much than too little, especially since you'll usually specifiy it in a written comment otherwise
<mark4> and i find the written comments to be more meaningufl
<mark4> or i can do ( flags fudge-factor address --- result )
<neto> idk I like it, a1 is very generic
<neto> we all need some more fudge-factor in our lives
<mark4> or just fudge :)
<neto> so <open> is working? is that the takeway today?
<mark4> maybe :)(
<neto> also not sure if you answered or not, is the stack supposed to clear when going from a file to the terminal prompt?
really2 has joined #forth
<mark4> not unless theres an abort
<neto> hmm that's not what i'm seeing
<mark4> when you do a ./extend if one of the extensions leaves something on the stack it stays there
<mark4> unless therse some other extension eating it lol
<mark4> depth = 0
<mark4> thats why ./extend displays that when it finishes
<mark4> anything other than 0 is an error
<neto> what I mean is I run "./x4 -f test.fs" and the last thing in the file is a .s
<neto> it shows there are 4 things on the stack but when I get a prompt and do .s there are now 0 things on the stack
<mark4> oh. now you got me
<neto> so between the file being interpreted and me getting a prompt the stack got cleared
<mark4> ive no idea if thats correct or not lol
<neto> : )
<neto> gforth doesn't clear it
<mark4> im not even sure i intend a shebang script to end up in the forth prompt lol
<mark4> i think im expecting a bye as the last thing i the script
<neto> if you wanna clear it you just call quit at the end of the file like I do for my text editor
<mark4> not sure
<neto> ahah well that's how my editor works!
<neto> I am calling this with -f in the terminal, not exactly a shebang but yes
<mark4> oh right
<mark4> yea thats should give you the prompt
<neto> it does give me the prompt, but with a cleared stack : (
<mark4> that might be a bug? :)
<neto> a bug, in x4?! nooooo :0
<neto> how can it be
<mark4> i said MIGHT be!
<mark4> duh
<neto> that's better, was getting worried there!
really2 has quit [Remote host closed the connection]
<neto> also, my x4 starts with 4 items on the stack when running a file
<neto> if I run a file with -f and that file calls .s I see 4 extra items on the stack
<neto> those are gone when I reach the prompt, but so are all the stack items I wanted : (
<neto> [top->] -1081215674 -1 -1217126356 1 [<-bottom]
<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
elioat has quit [Quit: elioat]
<tabemann> you do it like this:
<tabemann> forth-wordlist 1 set-order
<tabemann> forth-wordlist set-current
<tabemann> wordlist constant my-internal-wordlist
<tabemann> wordlist constant my-public-wordlist
<tabemann> forth-wordlist my-internal-wordlist my-public-wordlist 3 set-order
<tabemann> my-internal-wordlist set-current
<tabemann> [ define internal stuff here ]
<tabemann> my-public-wordlist set-current
<tabemann> [ define public stuff here ]
<tabemann> forth-wordlist 1 set-order
<tabemann> forth-wordlist set-current
<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
<mark4> x4 was coded using that editor
<neto> shame shame, vi is really worth learning
<neto> idk what "joe's own editor" means lmao
<mark4> its an editor alled joe
<mark4> emerge joe
<mark4> or apt install joe
<neto> I am on slackware : )
<mark4> why? gentoo's dependency tracking actually exists unlike slackware lol
<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.
<joe9> but, it seems easier to use the plan9 way.