dave0 has joined #forth
17SAAXDNP has quit [Ping timeout: 240 seconds]
07IAAFG66 has quit [Ping timeout: 260 seconds]
cp- has quit [Quit: Disappeared in a puff of smoke]
cp- has joined #forth
Zarutian_HTC has quit [Ping timeout: 240 seconds]
jsoft has joined #forth
a3f has quit [Ping timeout: 272 seconds]
proteus-guy has joined #forth
proteus-person has joined #forth
a3f has joined #forth
boru` has joined #forth
boru has quit [Disconnected by services]
boru` is now known as boru
dave0 has quit [Quit: dave's not here]
proteus-guy has quit [Ping timeout: 260 seconds]
proteus-person has quit [Ping timeout: 256 seconds]
kori has quit [Quit: WeeChat 2.8]
kori has joined #forth
kori has joined #forth
Zarutian_HTC has joined #forth
Zarutian_HTC has quit [Remote host closed the connection]
Zarutian_HTC has joined #forth
gravicappa has joined #forth
Zarutian_HTC has quit [Remote host closed the connection]
sts-q has joined #forth
proteus-person has joined #forth
proteus-guy has joined #forth
sts-q has quit [Quit: -- PANIC -- Insufficient space for garbage collection.]
sts-q has joined #forth
sts-q has quit [Quit: ]
sts-q has joined #forth
<jsoft> Hey is there any kind of gui shenanigans for forth?
<jsoft> Like semi cross platform stuff?
<siraben> mark4: what do you mean by "where forth would not have done the job better"
<siraben> you could replace that line with "where C++ would not have done the job better"
<siraben> MrMobius: Yeah every language has their own strong and weak points. Python is slow relative to C but that doesn't mean it's worthless as you said, different goals.
<siraben> I like to think of Forth as getting most of the metaprogramming capabilities of Lisp and most of the performance of C in 20% of the code
proteus-guy has quit [Ping timeout: 256 seconds]
proteus-person has quit [Ping timeout: 256 seconds]
gravicappa has quit [Ping timeout: 272 seconds]
<zolk3ri> I love Factor.
proteus-guy has joined #forth
proteus-person has joined #forth
zolk3ri has quit [Remote host closed the connection]
zolk3ri has joined #forth
proteus-guy has quit [Remote host closed the connection]
proteus-person has quit [Remote host closed the connection]
zolk3ri has quit [Remote host closed the connection]
proteus-guy has joined #forth
proteus-person has joined #forth
gravicappa has joined #forth
WickedShell has quit [Remote host closed the connection]
reepca has quit [Read error: Connection reset by peer]
reepca has joined #forth
_whitelogger has joined #forth
f-a has joined #forth
proteus-person has quit [Remote host closed the connection]
proteus-guy has quit [Remote host closed the connection]
dave0 has joined #forth
Blue_flame has quit [Quit: killed]
jimt[m] has quit [Quit: killed]
siraben has quit [Quit: killed]
siraben has joined #forth
jimt[m] has joined #forth
Blue_flame has joined #forth
f-a has quit [*.net *.split]
reepca has quit [*.net *.split]
tolja has quit [*.net *.split]
reepca has joined #forth
f-a has joined #forth
f-a has quit [Client Quit]
tolja has joined #forth
dave0 has quit [Quit: dave's not here]
jsoft has quit [Ping timeout: 260 seconds]
f-a has joined #forth
<mark4> siraben chuck moore says that forth is "the" software engineeering solution. I have been doing realtime embedded control development professionally for 30 years. I have never seen any product that would not have been better had it been coded in forth
<mark4> literally 100% of the non forth products I have worked on would have been better done in forth
<siraben> mark4: That's an interesting perspective. It makes sense for embedded control more I suppose, I would certainly not use Forth for many projects I do.
<mark4> such as?
<siraben> mark4: compilers for functional languages, projects that have to interact with GraphQL, React, type checking algorithms, etc.
<mark4> i think forth COULD be used for all of the above, forth is not just a programming language its a programming language designed to create domain specific programming languages
<mark4> so creating a functional language in forth would be included in that :(
<siraben> Yes, but you should give it a try. It's extraordinarily difficult to do so without a type system.
<f-a> siraben: I wonder how difficult it is to implement a type system
<f-a> I know the barebones of haskell implementation
<mark4> who says you cant build a type system into forth in fact one of the things i want to do with my forth COULD (i wont) be used to make a data types system :)
<siraben> f-a: Not at all, start with simply-typed lambda calculus. Then adding polymorphism isn't hard (HM works well), and you're already at the level of ML-style languages.
<mark4> data types are compile time things. specifying a TYPE could simply be a matter of knowing your creating word
<siraben> You could go forward with subtyping, records, recursive types, etc.
<siraben> mark4: Sure, hehe.
<mark4> for exampe : integer create , ;uses do-integer ;
<f-a> ok
<mark4> no need to parse strings to determin type
<mark4> the CFA of the word itself could be the type ID
<mark4> its the processig of data types at compile time that would need to be implemented
<mark4> data type checking has no purpose other than at compile time. run time does not need it
<siraben> f-a: The easiest way is probably to learn how to read typing rules expressed in a bidirectional style then encode it as a program
<f-a> thanks
<siraben> Netsplitting?
<f-a> is it happening?
<f-a> can’t see from here (which might means I am on the wrong side of the netsplit)
<siraben> From the matrix bridge it's happening, heh
<siraben> mark4: yeah you could do in theory GraphQL + Forth, but in terms of development time not the best use when there are TS or JS bindings
<siraben> The same problems plague Lisps IMO
<f-a> interesting article
<f-a> I have never heard of bidirectional rules
<mark4> siraben, my current project at work would be awesome in forht but it would either need an FFI to interface with a CANBUS library or that library would need to be reimplemented in forth
<mark4> both doable
<mark4> one "slightly" more trivial a solution than the other :)
<siraben> f-a: have you used a functional language before?
<f-a> siraben: my language of choice (and the only one I know good enough) is Haskell
<siraben> f-a: oh great, I use Haskell as well
<f-a> I even wrote a small game with it
<siraben> well from the same series, it's a great series
<siraben> mark4: I see
<f-a> thanks
<f-a> now I am looking for a project I can do in Forth
<mark4> i think doing a complete can bus in forth would be VERY doabl. I just need a complete description of the protocol, preferably in BNF :)
<siraben> f-a: definitely doing something on an embedded system would be fun
<siraben> for me it was implementing Forth on the TI-84+ calculators
<f-a> didn’t TI calc come with forth?
<f-a> or was it rev. polish notation?
<f-a> -rev.
<f-a> (never owned one)
<siraben> f-a: nope and nope
<siraben> algebraic input
<f-a> excellent
<siraben> f-a: you can try it in an emulator online https://www.cemetech.net/projects/jstified/
<siraben> i can't link the ROM here but a quick web search for TI-84+ ROM reveals it
<siraben> the README shows the GIF of the menu screen, written in Forth
<f-a> I have no idee where you started from
<siraben> what do you mean?
<f-a> the calculator itself is not programmable, right?
<siraben> It is.
<f-a> oh
<siraben> Either with TI-BASIC or Z80 assembly
<f-a> ohhhh
<siraben> there's a huge community that peaked around the early 2000s
<f-a> interesting choice
<siraben> yeah, it's still used a lot in high schools and universities at least in the US education system (where TI has a big monopoly)
<siraben> I think Europe has a greater share of Casio
<f-a> yeah I am Italian
<f-a> and yes much more casio here
<siraben> Right.
<f-a> TI was seen as specialised tool
<f-a> I do not think Casio allowed it (programming)
<siraben> TI is insanely overpriced for 80s-era hardware, such is what happens when you let monopolies take over, sigh.
<siraben> Maybe there's a programmable Casio calculator.
<mark4> TI documentation is also scatterbrained for their peripherals
<mark4> you need to RTFM the ENTIRE peripheral pdf then the ENTIRE pdf for the specific peripheral
<mark4> and for the uarts there is one UTTERLY UNRELATED pdf that tells you that if you dont set bit X in SFR Y your uart wont work
<siraben> The only documentation I read wrt. TI hardware is the ones written by the reverse engineering community, pretty much.
<mark4> NO linkage between any of the documents referencing what you need to read to get ANYTHING to work
<mark4> i lost a job because after a month of fighting with the uarts i could not get them to tx or rx reliably
<siraben> Hah
<mark4> then the day my boss fired me he came in and said "I found it!!!! you have to set the FOO bit in the FUDGE register!!!"
<mark4> "btw your fired"
<mark4> lol
<mark4> not exactly that but close
<siraben> mark4: example docs; https://wikiti.brandonw.net/index.php?title=Category:83Plus:BCALLs:By_Address
f-a has quit [Read error: Connection reset by peer]
f-a_ has joined #forth
<mark4> reverse engineering TI calculators? :)
<siraben> yeah, for the BCALLs they had an application that would check which ports changed values after the BCALL was called, good times
<siraben> i considered reverse engineering the entire ROM at some point, but it looked like a lot of work lol
f-a_ has quit [Client Quit]
<siraben> (also illegal, 😠)
f-a has joined #forth
<mark4> how is it illegal
<mark4> what country are you in?
<siraben> it's illegal no matter where you are, TI has copyright over the ROM
<siraben> I could modify but not share my modified versions with others.
<cmtptr> you can share the patch
<siraben> cmtptr: how do I share the patch without giving away the ROM?
<siraben> some sort of bindiff?
f-a has quit [Quit: leaving]
f-a has joined #forth
<cmtptr> yeah
<cmtptr> this is how people distribute snes rom hacks
<cmtptr> and other stuff
<cmtptr> i mean if you were ever going to edit the rom, presumably you'd have some way of modifying it
<cmtptr> you just distribute the recipe for modifying it
WickedShell has joined #forth
<mark4> there is NO valid law against reverse engineering
<mark4> no enforcable
<mark4> you copyright your encryption key i can still make a t-shirt with that encryption key on it
<mark4> oh they did that with the DVD encryption key already!
<mark4> yay
<mark4> I can write a program that takes YOUR ROM as data and pukes out a complete, commented, synbolic disassembly of the entire thing
<mark4> and im protected by the 1st amendment
<mark4> im not distriuting the rom itself
<mark4> if the law could protect me from you reverse engineering my code i could write a virus and sue the anti virus companies for reverse engineering it :PO
<mark4> lol
<mark4> if only I knew how to write one :/
<cmtptr> it's crossed my mind tbh just for the entertainment and enlightening experience i'd get out of it
<cmtptr> but i wouldn't know where to start without showing up on a list somewhere
<siraben> first admendment is not a defense for copyright infringment
<cmtptr> and never to distribute, of course
<siraben> amendment*
<cmtptr> reverse engineering is not copyright infringement
<siraben> I am not a lawyer, so refer to internet
<cmtptr> i am the internet!
f-a has quit [Quit: leaving]
f-a has joined #forth
f-a has quit [Quit: leaving]
gravicappa has quit [Ping timeout: 240 seconds]
gravicappa has joined #forth
bluekelp has quit [Quit: leaving]
bluekelp has joined #forth
f-a has joined #forth
cheers- has quit [Quit: cheers-]
cheers has joined #forth
gravicappa has quit [Ping timeout: 246 seconds]
dave0 has joined #forth
sts-q has quit [Quit: ]
X-Scale` has joined #forth
X-Scale has quit [Ping timeout: 260 seconds]
X-Scale` is now known as X-Scale
Zarutian_HTC has joined #forth
f-a has quit [Quit: leaving]
phadthai has quit [Ping timeout: 240 seconds]
WilhelmVonWeiner has quit [Ping timeout: 240 seconds]
phadthai has joined #forth
WilhelmVonWeiner has joined #forth
WilhelmVonWeiner is now known as Guest19493
X-Scale has quit [Ping timeout: 240 seconds]
X-Scale` has joined #forth
X-Scale` is now known as X-Scale
tolja has quit [Ping timeout: 240 seconds]
tolja has joined #forth
jedb_ is now known as jedb