X-Scale` has joined #forth
X-Scale has quit [Ping timeout: 240 seconds]
X-Scale` is now known as X-Scale
<tabemann> back
<tabemann> I'm pretty sure they're #3 for me as well
<tabemann> most faults are that way
<tabemann> well wait in this case these might be illegal instructions
<tpbsd> it's best to know for sure, you could blink a led to tell them apart until your Forth is more complete ?
<tabemann> know what I'm gonna do
<tabemann> I'm gonna instrument each of my flash , words
<tpbsd> good idea!
<tpbsd> there should be more of it :)
<tabemann> so when compiling to flash it'll dump what it's doing
<tpbsd> out the terminal ?
<tabemann> yep
<tpbsd> perfect
<tabemann> I don't have a working disassembler, but it seems like what it's trying to do is correct, which means that my flash write layer is buggy (not the code that handles the immediate write, which seems correct, but rather the instructure that uses it)
dave0 has quit [Quit: dave's not here]
<tpbsd> layer ?
<tpbsd> you have layers in assembly ?
<tabemann> well yes
<tabemann> I have a layer which interacts with the physical hardware that does the flash writes and erases
<tabemann> then I have another layer which abstracts that away, so one can do "stores" to individual bytes, halfwords, and words in flash, and it will actually tell the other layer to do the write once a block is complete
<tpbsd> aha
<tabemann> or the user just tells it to flush all the changes that have been made
<tabemann> the second layer is where I think the problem lies
<tabemann> because when I test with the first layer, it works correctly
<tabemann> I'm gonna head off to the coffee shop, so I'll bbiab
<tpbsd> no problemo
tabemann has quit [Ping timeout: 256 seconds]
jedb_ has joined #forth
jedb has quit [Ping timeout: 258 seconds]
tabemann has joined #forth
jedb__ has joined #forth
jedb__ is now known as jedb
jedb_ has quit [Ping timeout: 265 seconds]
jedb has quit [Ping timeout: 256 seconds]
jedb has joined #forth
<tabemann> YES
<tabemann> compiling to flash now works
<tabemann> including after rebooting and running the code again
boru` has joined #forth
boru has quit [Disconnected by services]
boru` is now known as boru
<tabemann> I'm really happy about the progress I have made
tabemann has quit [Ping timeout: 265 seconds]
<tpbsd> me too
dddddd has quit [Read error: Connection reset by peer]
jsoft has joined #forth
tabemann has joined #forth
tabemann has left #forth [#forth]
tabemann has joined #forth
gravicappa has joined #forth
rdrop-exit has joined #forth
<tabemann> hey
<rdrop-exit> hi tabemann!
<tabemann> I got compiling to flash working!
<rdrop-exit> woohoo :)
<tabemann> now the big one is getting CREATE and <BUILD working
<tabemann> which'll be a terrible pain in the ass
proteus-guy has quit [Ping timeout: 260 seconds]
<tabemann> especially since with CREATE and compiling to flash
<tabemann> I'm almost considering disabling CREATE with flash compilation, and requiring the user to use <BUILD DOES> for it
<rdrop-exit> I never use DOES> or <BUILDS
<rdrop-exit> I find them unecessary and they result in bad factoring IMO
<tabemann> okay, I'm gonna hit the sack
<tabemann> g'night
<rdrop-exit> sweet dreams
<tpbsd> nighto tabemann
<tpbsd> hey rdrop-exit, the Zen Guru of Forth!
<rdrop-exit> hi Forth Master Technician (tm)! :)
<tpbsd> rdrop-exit, I thought more about your comments and made a change to my svd2forth, that while produces the same binary code, reads better i think
<rdrop-exit> cool
<tpbsd> here is a example
<tpbsd> 6 bit I2C1_CR1 \ I2C1_CR1_TCIE, Transfer Complete interrupt enable
<tpbsd> 7 bit I2C1_CR1 \ I2C1_CR1_ERRIE, Error interrupts enable
<tpbsd> : I2C1_CR1_DNF ( %XXXX -- ) 8 lshift I2C1_CR1 ; \ I2C1_CR1_DNF, Digital noise filter
<tpbsd> 13 bit I2C1_CR1 \ I2C1_CR1_SWRST, Software reset
<tpbsd> 12 bit I2C1_CR1 \ I2C1_CR1_ANFOFF, Analog noise filter OFF
<tpbsd> a autonamed Word in a field of one bit configs
<tpbsd> the autonaming is cmsis-svd
<tpbsd> and the Word "bit"
<rdrop-exit> how come I2C1_CR1_TCIE is a comment?
<tpbsd> : bit ( u -- u ) 1 swap lshift 1-foldable ;
<rdrop-exit> 6 bit I2C1_CR1 constant I2C1_CR1_TCIE
<tpbsd> the comments are all taken from the cmsis-svd 'description' field
<tpbsd> these are templates anyway, one modifies them as required in practice
<rdrop-exit> is I2C1_CR1 an address?
<tpbsd> yes, they all are
<tpbsd> one of my versions used the hex address instead of the constants above but sadly it's buggy and I havent fixed it yet
<tpbsd> but the constants have their own appeal when it comes to readability
<tpbsd> one can just search the STM technical ref on the name and find the bitfield etc
<tpbsd> but that cant be done with the hex address method
<rdrop-exit> their naming convention is ugly
<rdrop-exit> my definition is the same for bit, except the 1-foldable which I guess is specific to your forth's optimizer
<rdrop-exit> : bit ( bit# -- bit ) 2** ;inline
<rdrop-exit> : bits ( hibit# lobit# -- mask )
<rdrop-exit> tuck - bit 2* mask swap lshift ;
<tpbsd> yeah perhaps, the bit word isnt mine
<rdrop-exit> I have a few other utility words like that
<tpbsd> their naming convention is a massive task, with some M7 cpus having 17,000 bitfields plus
<rdrop-exit> But I assume you're not using all of them
<tpbsd> they also have some naming clashes in the SVD
<tpbsd> no way ;)
<tpbsd> but I stull autogenerate all the above for them
<rdrop-exit> : mask ( bit -- mask ) 1- ;inline
<rdrop-exit> : ~mask ( bit -- ~mask ) negate ;inline
<tpbsd> my svd2forth works on all the STM cortex mcus and a lot of other makes with some small changes
<tpbsd> nice!
<rdrop-exit> 3 bit mask %.
<rdrop-exit> give you "111"
<rdrop-exit> 3 bit ~mask %.
<tpbsd> it's a massive logistics job designing these complex cortex-m's and all the naming and documentation
<rdrop-exit> gives you "11..11000"
<tpbsd> I love Forth tool making also
<tpbsd> bbs, lunch is up!
<rdrop-exit> bon appetit!
<rdrop-exit> vestas, "R> DROP EXIT" aka "RDROP EXIT" aka "BAIL;" and variations thereof have quite a few uses, most of them rely on the internals of the specific Forth
<tpbsd> 2000 calories later ....
<rdrop-exit> that was fast
<tpbsd> I'm a slow eater too
<tpbsd> was just some fish and vegies
<rdrop-exit> vestas, one example is when your Forth uses the top of the return stack for backward branches
<rdrop-exit> breaking out of the loop and exiting the definition could be implemented by dropping the TOR and exiting
<rdrop-exit> vestas, most techniques having to do with the return stack are fairly subtle and specific to the implementation
<tpbsd> when buying any Chinese electronics, consider this comment by a Chinese engineer I have been debating with:
<tpbsd> Part numbers are not generally considered trademarks here. If I produce a transistor that adheres to all 2n3904 specifications, I can sell it as a 2n3904, even if some characteristics not on the datasheet are a bit different. Similarly if I make a chip that functions just like a STM32 and runs most code unmodified (except maybe for very few corner cases), it's generally considered a-ok to sell it as a STM32. The generics mindset here is strong, and it's
<tpbsd> not considered ok for one manufacturer to monopolize a part number, especially when compatible substitutes are produced. "STM32" is a generic name for a MCU with these peripherals in this layout, just like U.FL is a generic name for a connector with these dimensions. If that's a problem for you just buy from the big distributors.
<rdrop-exit> As with anything, whether from China or elsewhere, caveat emptor always applies.
<tpbsd> of course
<tpbsd> but when buying from a reputable vendor there is less risk
<tpbsd> when buying from China, the above attitude applies
<rdrop-exit> there is no free lunch, the cheapest is always the cheapest for a reason
<tpbsd> it's not counterfeit to use a brand name for a 'similar' product in China
<tpbsd> oh I agree 100%
<tpbsd> the funny thing is that China is not the cheapest in many cases when it comes to chips
<tpbsd> I can pay $3 for a clone chip from China and $0.65 for the bonafide item from Avenet in the USA
<rdrop-exit> I think it's the same in most of the world, there are fakes everywhere (not just in chips, in every type of product, fashion, pharma, auto parts, etc...)
<rdrop-exit> there are even real fakes, e.g. passports
<rdrop-exit> land titlesd
<rdrop-exit> * titles
<tpbsd> sure
<tpbsd> even money, but governments seem to get upset when someone makes money as good as theirs
<rdrop-exit> real fake land titles were a huge problem here a few years ago
<tpbsd> ill bet
<rdrop-exit> both the real and the fakes come from the same source
<tpbsd> they have been a problem in australia with people having their house sold remotely and the new owners showing up to move in
<tpbsd> that activity tho is considered to be criminal here and if our Mr Plod ever catches them, they would go to prison
<tpbsd> but being anonymous and in romania or whatever ...
<rdrop-exit> there's a sucker born everyday, WC Fields I believe
<tpbsd> yep
<rdrop-exit> never give a sucker an even break (also WC Fields IIRC)
<rdrop-exit> I'm taking a break from the bowels of RISC-V land, and experimenting with a new user interface for my desktop Forth
<tpbsd> 3d gloves ?
<rdrop-exit> :)
<rdrop-exit> No just moving from ECMA-48 based to x11
<tpbsd> working on one thing for too long can kill creativity I think
<tpbsd> luckily my extra low IQ allows me to work on the same things endlessly and not get bored
<rdrop-exit> yes, especially when a technology is more convoluted then it needs to be
<jsoft> tpbsd, lol.
<tpbsd> yeah, it's getting quite convoluted, plus throw in some graft and corruption and the potential for a real mess is there
<rdrop-exit> The cardinal sin of any new technology is making simple things complex
<tpbsd> there has been a lot of that since Forth was invented
<rdrop-exit> There so focused on making complex things simpler at the surface level that they forget to keep simple things simple
<tpbsd> I'm regularly gobsmacked by how complex C is
<tpbsd> hahahh
<tpbsd> can you please abstract that some more ?
<rdrop-exit> There's a Jef Raskin quote about it, I'll try to dig it up
<rdrop-exit> "Keep the simple things simple"
<rdrop-exit> oops, it's actually
<rdrop-exit> "keep the simple simple"
<tpbsd> thats hard
<rdrop-exit> well the bottom line is that as you add more complex capabilities and features they should never make what was originally simple more complicated
<tpbsd> thats even harder
<tpbsd> my saying is "the simple is hard, and the complex is simple"
<rdrop-exit> People tend to only care about surface simplicity, even if they made a mess of the lower levels
<tpbsd> I've noticed that
<rdrop-exit> You see that all the time with premature abstraction
<tpbsd> you NEED a Eclipse development environment with Java etc, to make your embedded coding SIMPLE !
<rdrop-exit> pay no attention to the man behind the curtain
<rdrop-exit> (or in this case the over-engineered overblown tech behind the curtain)
<tpbsd> bit it has cool pop up code as you write, in case you cant remember the syntax!
<rdrop-exit> and syntax highlighting! :-p
<tpbsd> everything you'll ever need!
<rdrop-exit> if I only had a brain
<tpbsd> and the compiler is smarter than you, just trust it!
<rdrop-exit> (another Wizard of Oz quote)
<tpbsd> the tinman ?
<rdrop-exit> scarecrow
<rdrop-exit> tinman needed a heart IIRC
<tpbsd> oh yeah!
<rdrop-exit> brb
<tpbsd> no problemo
<rdrop-exit> back
<rdrop-exit> I'm designing a hexdump font
<tpbsd> 2" high so you can see it ?
<rdrop-exit> any ASCII character that isn't graphical shows up as hex digits
<rdrop-exit> for example a nul byte $00 would display something like:
<rdrop-exit> ****
<rdrop-exit> * *
<rdrop-exit> * *
<rdrop-exit> * *
<rdrop-exit> * *
<tpbsd> and the graphics are for boxes and text gui stuff ?
<rdrop-exit> * *
<rdrop-exit> ****
<rdrop-exit> ****
<rdrop-exit> * *
<rdrop-exit> * *
<rdrop-exit> * *
<rdrop-exit> * *
<rdrop-exit> * *
<rdrop-exit> ****
<rdrop-exit> that's a 00 character
<tpbsd> so like the old line printer huge text ?
<rdrop-exit> no I'm just showing the dots to you with stars, these would be actual pixels
<tpbsd> -.-.-,~ .
<tpbsd> ) (
<tpbsd> /(_)---`\
<tpbsd> (_ -'
<tpbsd> |_ |
<tpbsd> The Forth Stack is doing ] |
<tpbsd> my head in man ... | _,')
<tpbsd> [_,-'_-'(
<tpbsd> (_).-' \
<tpbsd> / / \
<tpbsd> ah ok
<rdrop-exit> I'm thinking perhaps of doing 16x16
<rdrop-exit> ................
<rdrop-exit> ................
<rdrop-exit> ......****......
<rdrop-exit> .....******.....
<rdrop-exit> ....***..***....
<rdrop-exit> ...***....***...
<rdrop-exit> ..***......***..
<rdrop-exit> ..***......***..
<rdrop-exit> ..************..
<rdrop-exit> ..***......***..
<rdrop-exit> ..***......***..
<rdrop-exit> ..***......***..
<rdrop-exit> ..***......***..
<tpbsd> I have some 16x16 fonts I think
<rdrop-exit> the point is that characters that don't represent an ASCII character would show up as hex, as in the earlier example
<tpbsd> yes
<rdrop-exit> * I mean don't represent a normal glyph such as A a 1 etc...
<rdrop-exit> although the earlier hex 00 example is 8x16
<rdrop-exit> I prefer 16x16, I should get a higher resolution monitor
<tpbsd> what res monitor do you have ?
<rdrop-exit> crappy, my regualr monitor died, I'm using a Samsung TV in the interim until I buy a replacement
<rdrop-exit> resolution is awful
<tpbsd> eww
<tpbsd> thats just nasty
<rdrop-exit> it was a gift
<rdrop-exit> 1360x768
<rdrop-exit> I think even cheapo monitors nowadays are at least 1920x1080, or maybe 2560x1440, I don't know I'm out of touch
<rdrop-exit> 3840x2160, 5120x2880, 7680x4320
<rdrop-exit> I need to watch some youtube videos to help me understand the different options available, the last monitor I bout was like 5 years ago
<rdrop-exit> *bought
<rdrop-exit> what are you using?
<tpbsd> this is a few years old, it's a dell 27" and is currently 2560x1440
<tpbsd> dell U2713HM
<rdrop-exit> happy with it?
<tpbsd> hell yeah
<rdrop-exit> I don't even know what the resolution of the monitor that died was
<rdrop-exit> Well it didn't actually die, it had a few vertical lines of pixels that were dead, almost in the middle of the screen
<rdrop-exit> made it unusable
<tpbsd> i did a special buy with a friend, I think we each paid about $850 each
<tpbsd> thats what usually happens
<rdrop-exit> AUD?
<tpbsd> the conductive rubber connector on the glass pulls away ober time
<tpbsd> yeah
<tpbsd> AUD
<rdrop-exit> aha
<rdrop-exit> I mean, ah ha
<rdrop-exit> not haha
<rdrop-exit> :)
<tpbsd> sure
<tpbsd> my daughter replaved her monitor recently with one I suggested and shes happy
<tpbsd> this type comes in two classes
<rdrop-exit> Since I don't do video games, I don't keep up with the tech
<tpbsd> she bought the cheaper one and that was about $220 aud
<rdrop-exit> big difference
<tpbsd> it's impossible anyway
<tpbsd> yeah, has to do with the display type
<tpbsd> and the peripherals
<rdrop-exit> Ultrasharp, that rings a bell, I think I looked for one of those a few years ago but at the time it wasn't yet available in local stores
<tpbsd> it has a led backlight so runs really cool
<tpbsd> unlike CFL which get red hot
<rdrop-exit> I'd like to display 3 blocks across by 2 blocks high in 16x16
<rdrop-exit> let's see...
<rdrop-exit> thanks!
<tpbsd> no problemo
<tpbsd> remember the main difference is in the display tech and the peripherals
<tpbsd> this is "IPS" which has the widest view angles
<tpbsd> I can move my hear from one side to the other and the display looks exactly the same
<tpbsd> head
<rdrop-exit> ok, I'll try to bring myself up to speed on youtube on the different buzzwords and techs
<tpbsd> then you have the different types of inputs and outputs
<rdrop-exit> I hate shopping
<tpbsd> can the monitor handle DVI, HDMI, db-15 etc
<rdrop-exit> I usually only buy new kit when old kit dies
<tpbsd> just get the most expensive dell ultrasharp your budget allows and forget about it ...
<tpbsd> I'm the same
<rdrop-exit> sounds like a plan
<rdrop-exit> luckily my desk is pretty big
<tpbsd> dell know what you need
<tpbsd> and their engineering is supurb
<tpbsd> and dont forget your own maxim 'you only get what you pay for'
<tpbsd> cheaper means less of something
<rdrop-exit> yup
<tpbsd> and monitor sales buzzwords are highly developed
<tpbsd> the dell is reliable, easy to use, hires, bright, everything you need and a ton of stuff you dont know you need
<rdrop-exit> cool
<rdrop-exit> x11 is turning out simpler than I remembered
<rdrop-exit> 9 out of 10 protocol requests are totally ignorable
<tpbsd> it's got to be ok, people have been using X11 since 1365 at the battle of chichginkuk
<rdrop-exit> :-))
<rdrop-exit> I tried asking on #xorg for a list of the requests that are deprecated, doesn't seem to exist
proteus-guy has joined #forth
<rdrop-exit> My main motivation is to get key release events, I'm tired of terminal compatibility
<tpbsd> sadly the new ex windows kids in redhat want to do away with X11
<rdrop-exit> At least x11 has a documented wire protocol, you're not forced to deal with umpteen libraries if you don't want them
<tpbsd> this is the golden age of MCU's and the age of 'libraries'
<tpbsd> ask any arduino user
<rdrop-exit> Most newer tech seems to assume you're only low level access is via libraries, it's disheartning
<rdrop-exit> * disheartening
<tpbsd> lol, it's much mush worse than that
<tpbsd> i looked at the latest STM tutorial on using the 'touch' peripheral
<rdrop-exit> I don't want APIs I want protocols
<tpbsd> the 2011 tech doc used C and was ok
<rdrop-exit> or some sort of "real" interface spec
<tpbsd> the website used a massive package and it was ALL guis, there was no actual code
<tpbsd> the user clicks on a gui of the pins they want to use, click on the HAL button and the code is templated
<tpbsd> clicks on the programmer and the chip is set up and flashed
<tpbsd> zero code
<rdrop-exit> I tried to look at the source of wayland, so much is abstracted and generated that I couldn't just read it
<tpbsd> yeah
<tpbsd> it will probably never take off
<tpbsd> no one really wants it except the ex windows kids who have no idea what remote X is
<rdrop-exit> x11 may be a mess but at least I can read the spec and code against it
dys has quit [Ping timeout: 258 seconds]
<tpbsd> theyre all worried about the rumoured 'lack of security' of X, perhaps someone will connect and steal their PRON ?
<tpbsd> or their super secret Arduino cat feeder GIT code
<rdrop-exit> 206 pages, 80-90% of which can be totally ignored
<tpbsd> I'm unlikely to ever look at it, I'm a user not a programmer
<rdrop-exit> that's what they all say
<rdrop-exit> likely story
<tpbsd> it's enough for me to get a cortex-m into low power mode, thats my limit
<rdrop-exit> ;-)
<tpbsd> and make some devc tools now and again
<tpbsd> -c
<rdrop-exit> if you can't do your job without programming, then you are a programmer
<tpbsd> i let my subconscious do the programming, it's smarter than me
<rdrop-exit> I believe it, I write genius code in my dreams, unfortunately I can't recall the details when I wake up
<rdrop-exit> :-p
<tpbsd> hahah
<tpbsd> I've tried that also, the writing keeps changing like worms wriggling on a page
<tpbsd> you cant dream and code!
<rdrop-exit> :))
<tpbsd> I once designed a quite intricate circuit while working all night. In the morning I wasnt sure what i'd done, but I was never able to improve it
<tpbsd> if i changed one thing, it would stop working
<rdrop-exit> you were in the "zone"
<tpbsd> i was somewhere
<tpbsd> it was so finely tuned, all parts worked to achieve the end result
<tpbsd> I sold hundreds of them
<tpbsd> never had one come back
<rdrop-exit> excellent
<tpbsd> finally I made a improved version that wasnt analog, but took a 6805 mcu to do it
<tpbsd> the xtal gave it better performance due to the tighter timing
dys has joined #forth
dys has quit [Read error: Connection reset by peer]
<proteus-guy> rdrop-exit, protocols over APIs - love it!
<rdrop-exit> :)
<proteus-guy> if I want a GUI now and don't wanna have to build the client - I'm probably gonna talk CSS or something like OpenGL. X was made when bandwidth was expensive and systems were limited so a LOT of its complexity comes due to it trying to be extremely system resource light even though it is NEVER used in that manner with modern window managers. Wayland is something I can't even quite describe what the "designers" must have been thinking. Face it -
<proteus-guy> human/computer interaction is still the hardest part of system design.
<proteus-guy> ncurses is probably the ultimate in non-GUI visual expression. ;-) and it's fairly scary when you wade into it very deep.
<rdrop-exit> I consider error handling the hardest, UI second
mtsd has joined #forth
<rdrop-exit> I avoided curses, just used a subset of ECMA-48 directly
<rdrop-exit> The problem with any terminal compatible UI is the lack of key-press/key-release events
<rdrop-exit> this is why I'm planning on switching out the ECMA-48 stuff with x11, not to convert the UI to GUI, just to get the keyboard events
<rdrop-exit> curses is completely avoidable, only a handfull of terminal escape codes are actually necessary
<rdrop-exit> but the lack of key release events is really constraining
<rdrop-exit> The only terminal escape sequences I currently use are CUP, RIS, GRCM SET, SGR, DECSCUSR, DECTCEM, DECAWM
<rdrop-exit> that's really all you need for a portable TUI
<rdrop-exit> CUP puts the cursor where you want it
<rdrop-exit> RIS resets the terminal
<rdrop-exit> GRCM sets the rendition combination mode
<proteus-guy> rdrop-exit, error handling is not difficult at all - best solution is generally to fail fast and provide useful information about the failure. of course the UX aspect of error handling is the most difficult UX bit typically but, again, that's cause it's UX work.
<rdrop-exit> well you're assuming desktop software
<rdrop-exit> SGR sets the current rendition mode
<proteus-guy> I'm not familiar with ECMA-48. Is that actual a practical standard with common support?
<proteus-guy> I'm not assuming desktop software at all - quite the opposite.
<rdrop-exit> it's the latest version of ANSI codes
<proteus-guy> Ah yes - ANSI codes don't get you key presses, right? So not a fully useful terminal standard- just a display standard.
<proteus-guy> curses will give you that.
<rdrop-exit> it's a combination of most of the common features of physical terminals
<rdrop-exit> don't need curses for that
<proteus-guy> rdrop-exit, let's make sure we're talking the same goals - you want real-time keypress interactivity (ala it's a terminal) or not (ala it's just a display)?
<rdrop-exit> a terminal doesn't give you separate key press & release events
<proteus-guy> well given my above differentiation it does - that was my point of consideration anyway. Which one are you looking for?
<rdrop-exit> terminals, as normally defined, don't send separate events for key presses and key releases
<proteus-guy> to be pedantic you're correct - but it ignores the point I was trying to make clear...
* proteus-guy is away for a bit...
<rdrop-exit> I'm not being pedantic, this is the reason why something like curses doesn't provide them, because the underlying terminals (real or emulated) don't provide them
<rdrop-exit> the core of curses is sending out and receiving terminal escape codes.
dys has joined #forth
<rdrop-exit> If you want somewhat portable access to press/release events you need x11 or something similar.
<rdrop-exit> At least that's my understanding, if there's a simpler way I'd be happy to hear about it.
john_cephalopoda has joined #forth
john_cephalopoda has quit [Remote host closed the connection]
john_cephalopoda has joined #forth
iyzsong has joined #forth
mtsd has quit [Ping timeout: 256 seconds]
mtsd has joined #forth
rdrop-exit has quit [Quit: Lost terminal]
proteus-guy has quit [Ping timeout: 255 seconds]
dave0 has joined #forth
jsoft has quit [Ping timeout: 258 seconds]
iyzsong has quit [Ping timeout: 240 seconds]
mtsd has quit [Ping timeout: 255 seconds]
mtsd has joined #forth
jedb has quit [Remote host closed the connection]
jedb has joined #forth
mtsd has quit [Quit: Leaving]
jn__ has quit [Ping timeout: 248 seconds]
jn__ has joined #forth
dave0 has quit [Quit: dave's not here]
tabemann has quit [Ping timeout: 240 seconds]
proteus-guy has joined #forth
dddddd has joined #forth
dys has quit [Ping timeout: 240 seconds]
dys has joined #forth
DKordic has joined #forth
<DKordic> [Re: keyboard events] ""$ max xinput"", ""$ xinput --list --short"" (Keyboard id=11), ""$ xinput --list-props 11"" (Device Node: "/dev/input/event4"), ""$ hd -x /dev/input/event4"".
<veltas> tpbsd: I had a good read of that article at work
<veltas> And now I have decided to do Direct Threaded Code
<veltas> And put my parameter stack in SP
<veltas> It was a good read
<DKordic> veltas: Why not Subroutine Threaded Code (STC)? Would it not be straightforward?
<veltas> Not much more, and it would take up more space
<DKordic> I don't think so :3 .
<DKordic> Think again :3 .
* DKordic . o O ( Art for the sake of Art... )
<veltas> DKordic: Did you read the article?
<veltas> It says on Z80 it takes up more space
<veltas> Not that I need it to say so because I know how big a CALL is
<DKordic> Oh Z80...
<veltas> Yes well typically when one implements a forth they have a target platform :P
<DKordic> Z80 in 2020 _AD_!?
<patrickg> it's well known and battle hardened. that new 8086 family still need to prove that they're not just a fad ;-)
<veltas> Forth in 2020 AD etc
dys has quit [Ping timeout: 256 seconds]
<john_cephalopoda> Z80 is a pretty popular platform with many fans. There's the pretty recent RC2014 platform and the Z80-focused CollapseOS.
dys has joined #forth
WickedShell has joined #forth
<DKordic> Well You all deserve Windooze.
Lord_Nightmare has quit [Read error: Connection reset by peer]
gravicappa has quit [Ping timeout: 240 seconds]
john_cephalopoda has quit [Quit: Leaving]
jfe has joined #forth
<jfe> hi all
<DKordic> Greetings.
<jfe> i've been reading "thinking forth" and i'm becoming interested in the forth language. i'm wondering what you all like about it?
<jfe> second, i'm wondering why forth has never seemed to gain acceptance in academia (unless it has and i'm just mistaken)?
<DKordic> jfe: ""I am a design chauvinist. I believe that good design is magical and not to be lightly tinkered with. The difference between a great design and a lousy one is in the meshing of the thousand details that either fit or don't, and the spirit of the passionate intellect that has tied them together, or tried. That's why programming---or buying software---on the basis of "lists of features" is a doomed and misguided effort. The
<DKordic> features can be thrown together, as in a garbage can, or carefully laid together and interwoven in elegant unification, as in APL, or the Forth language, or the game of chess. "" -- Ted Nelson
<veltas> I have been learning Forth over the last few weeks and it is some of the most fun I've had with a programming language
<veltas> I still feel like I don't 'get it' but I am on the cusp of understanding it completely
<veltas> I think from a mathematical standpoint it is interesting for being so small, implementations are often a few KB and can come with an interpreter, editor, self-modifying language etc
<veltas> It means it is necessarily a highly *factored* language, and that also the language-building features themselves are also highly factored and hence available to you in a powerful fasion
<veltas> It is worth learning just by merit of how unconventional it is, if you think you know programming you should try Forth out to make sure
<jfe> i like that data is passed implicitly through the stack. i can imagine some debugging headaches but it also seems like it would save typing. in languages like C/C++, a lot of typing is spent storing the results of intermediate computations, which become arguments to functions, etc.
<veltas> I think there is something worth saying about how much detail is available in Forth that isn't made available in a language like C or C++
<veltas> Like when you use ." to output a string, when you compile that you are specifically compiling that text into your definition and you know where it is
<jfe> how many lines of code is a typical industrial-strength forth application?
<veltas> In C or C++ if you output a string literal the string goes 'somewhere', probably in your .text section, the compiler will try to fold it into another string if it can
<veltas> But in C or C++ that is a one of a kind feature
<veltas> In Forth that is syntax you can program yourself
<jfe> part of me wonders if nassim taleb's "intellectual yet idiot" argument captures the reason academia dislikes forth -- maybe it's too practical to be mathematically beautiful?
<jfe> but in industry it's practicality that matters, not mathematical beauty.
<veltas> Well look at what Forth has done maybe, I don't see much of it
<veltas> I want to try it for myself and see for myself if it has that kind of applicability
<veltas> But so far I've been learning it because it has a kind of attractiveness to me
<jfe> in a theoretical sense, forth seems like a really simple way to extend the alphabet of the underlying universal turing machine.
<remexre> jfe: wrt academia, there's been other concatenative languages (e.g. Joy) that academia likes slightly more
dave0 has joined #forth
<remexre> there's also a nice category-theoretic connection, but I think most of the programming languages <-> category theory stuff has been lambda calculi and sequent calculi
<tpbsd> veltas, congratulations on your choice, it will be awesome to have another embedded Forth underway here, and we want to hear all about your development as it happens!
<tpbsd> jfe, I think Forth is unpopular because it's impossible to understand ;-)
<tpbsd> jfe, and that makes Forth impossible to sell in pretty shrink wrapped boxes like C
<DKordic> remexre: What do You mean about Category Theory?
<remexre> DKordic: you can kinda-sorta turn your head and see words that only have stack effects as being morphisms, and concatenation of lists of words as being composition
<remexre> and I think in Joy you can treat its functions as exponentials in a cartesian closed category
<DKordic> I am not sure I am following. I honestly prefer assembly explanation to that one.
<DKordic> I meant to say, it is still not better than assembly definition.
<veltas> tpbsd: thanks
<remexre> DKordic: er yeah, this isn't a useful description of Forth for understanding it; it might be useful for formally proving properties of Joy code, though
rdrop-exit has joined #forth