Blue_flame has quit [Write error: Connection reset by peer]
Guest20698 has quit [Write error: Connection reset by peer]
jimt[m] has quit [Write error: Connection reset by peer]
siraben has quit [Write error: Connection reset by peer]
boru` has joined #forth
boru has quit [Disconnected by services]
boru` is now known as boru
jimt[m] has joined #forth
WickedShell has quit [Remote host closed the connection]
kori has quit [Quit: WeeChat 2.8]
Blue_flame has joined #forth
siraben has joined #forth
alexshpilkin has joined #forth
proteus-guy has quit [Ping timeout: 256 seconds]
tabemann has joined #forth
X-Scale has quit [Ping timeout: 256 seconds]
X-Scale` has joined #forth
X-Scale` is now known as X-Scale
dave0 has quit [Quit: dave's not here]
kori has joined #forth
kori has quit [Quit: WeeChat 2.8]
kori has joined #forth
kori has quit [Changing host]
kori has joined #forth
<proteusguy>
boru, fixed point +10!
gravicappa has joined #forth
jsoft has joined #forth
xek_ has joined #forth
proteus-guy has joined #forth
shynoob has joined #forth
<shynoob>
is anyone here on discord?
proteus-guy has quit [Ping timeout: 256 seconds]
boru has quit [Quit: Patches.]
boru has joined #forth
<proteusguy>
shynoob, nope but I'm on gitter.
<shynoob>
wew.. is it like matrix stuff?? or riot stuff
<proteusguy>
???
shynoob has quit [Ping timeout: 245 seconds]
jsoft has quit [Ping timeout: 256 seconds]
xek_ has quit [Ping timeout: 246 seconds]
<cmtptr>
i'm on discord and it sucks
<cmtptr>
i wish the people and communities i interact with there would come back to irc
xek has joined #forth
<elioat>
for gitter stuff, gitter maintains a very solid IRC <-> Gitter bridge! https://irc.gitter.im/ it works like a charm
<cmtptr>
bridges are annoying, though
<elioat>
whilst this is true, they're easier than getting entire communities of folks to shift platforms, in my limited experience ¯\_(ツ)_/¯
xek has quit [Ping timeout: 256 seconds]
<cmtptr>
seems like the guy is trying to shift irc users to discord. giving them a bridge only concedes ground
<elioat>
legit, legit
boru has quit []
boru has joined #forth
<proteusguy>
cmtptr, agree i like irc but it suffers from having no history when you're offline.
<proteusguy>
we use gitter for our projects hosted on github because it has a nice integration. So the ActorForth project is over there.
xek has joined #forth
<proteusguy>
Anyone have a forth they would like promoted for people to try? Sadly mark4th hasn't been updated in ages and hasn't had any responses to issues so I think it's time we replaced it in the banner and gave some active projects some advertising.
<boru>
ISTR seeing the maintainer in ##asm recently asking questions.
<boru>
I may have one Soon™ for a new stack machine I am currently designing.
<boru>
Bar of entry might be too high in terms of investment, however.
<cmtptr>
i see not having server-side history (that's published, anyway) specifically has a benefit to irc
<alexshpilkin>
cmtptr : well in the sense that running an IRC server for a given number of users is easier on the resources than a Matrix homeserver, probably
<proteusguy>
boru, when you have something then feel free to point us to it.
<boru>
It could be a while, but sure.
<proteusguy>
cmtptr, how does not having server side history provide a benefit? meanwhile we're tracked and logged by at least two active bots.
<alexshpilkin>
cmtptr : but there may be a situation similar to Git developing there—sure storing only delta-compressed source code history and only on the server was a great optimization back in the day, but are we sure that the convenience tradeoff makes as much sense now as it did then?
<cmtptr>
proteusguy, because those platforms that provide the history also provide a mechanism to manipulate it
<cmtptr>
i'd rather see logging outsourced
<proteusguy>
cmtptr, so you want a decentralized irc. :-) interesting idea.
<cmtptr>
it's already decentralized
<proteusguy>
er... it's distrubuted but not really decentralized.
<cmtptr>
you just acknowledged that two separate bots are logging this channel! i'm assuming they're owned and maintained in complete independence
<cmtptr>
and then there are the lurkers who each might have their own clients configured to log
<boru>
It still doesn't solve the trust problem. The network should be the authorative log e.g. DHT a la bittorrent, or blockchains.
<cmtptr>
i don't care about that, i just don't want power-happy moderators editing and deleting my messages from other users' clients
jackdaniel has quit [Ping timeout: 240 seconds]
<alexshpilkin>
well, as long as you’re happy to give up any hope of a shared history and let each client maintain their own private log for only when they’re online, sure, IRC (or anything else without history storage in the protocol) works
jackdaniel has joined #forth
<cmtptr>
yes, i am happy to give up shared history. i prefer it that way
* proteusguy
has a policy where he doesn't say anything online that he's not willing for everyone to see. :-)
<alexshpilkin>
... if you want there to exist some objective truth as to what the history is, however, you need either a server (with all the attendant moderation problems) or distributed consensus (which is a minefield the size of the Korean DMZ)
<cmtptr>
i think you're taking my comments to an extreme that's not what i'm trying to say
<cmtptr>
i don't like that on platforms like discord, i might say something while you're away from your keyboard, and then proteusguy deletes it before you return to your keyboard
<cmtptr>
i don't like sitting down and finding users have been banned or kicked, and i don't get to see what transpired to lead up to it
<cmtptr>
i prefer my history to not be shared
<proteusguy>
cmtptr, (I understand what you're saying) but if you're offline when someone is banned/kicked and return then don't you suffer the same effect?
<alexshpilkin>
cmtptr: er, no, I’m trying to say that there really are two extremes — either the history is completely subjective (and if you want that, IRC and XMPP are happy to accommodate you) or it tries to be objective
<cmtptr>
sure, but i'm never offline, and as you pointed out earlier, we have independent bots logging this channel
<proteusguy>
cmtptr, gotcha
<cmtptr>
you guys can argue theory all you want. in practice, this doesn't happen to me in irc. it does happen to me on discord
* proteusguy
doesn't use discord
<cmtptr>
don't, it sucks
* alexshpilkin
neither
<cmtptr>
anyways. forth!
<proteusguy>
forth is swell!
Zarutian_HTC has quit [Ping timeout: 240 seconds]
Zarutian_HTC has joined #forth
xek has quit [Ping timeout: 264 seconds]
mark4 has joined #forth
remexre has joined #forth
Croran has quit [Ping timeout: 240 seconds]
Zarutian_HTC1 has joined #forth
Zarutian_HTC has quit [Read error: Connection reset by peer]
Croran has joined #forth
mtsd has joined #forth
mtsd has quit [Quit: leaving]
cp- has quit [Read error: Connection reset by peer]
xek has joined #forth
Zarutian_HTC1 is now known as Zarutian_HTC
<mark4>
may have just discovered a bug in x4 that has probably been there from day 1
<mark4>
: foo 1 2 2>r r> . r> . ; <-- what should this display ?
<mark4>
ooh maybe not!
<mark4>
yea my code is right lol but had to think about it
xek has quit [Ping timeout: 240 seconds]
WickedShell has joined #forth
<cmtptr>
is the correct answer 2 1?
<cmtptr>
i want to say i remember feeling like 2>r should have the same effect as >r >r, but the conventional effect is more like a swap >r >r. but maybe i'm remembering wrong
spoofer has quit [Ping timeout: 240 seconds]
<alexshpilkin>
yes, ANS says 2>R is equivalent to SWAP >R >R
<cmtptr>
oh, ok! then all is right in the world, after all
<cmtptr>
and the answer should be 1 2
<cmtptr>
wait no
<cmtptr>
i confused myself. if only irc had a way to delete messages
<alexshpilkin>
:)
<alexshpilkin>
stack comments are wonderful when you have only one stack, but sometimes it’s easier to just run the damn thing
gravicappa has quit [Ping timeout: 256 seconds]
spoofer has joined #forth
<alexshpilkin>
(does nobody in #forth run a bot for computing stack effects?)
<remexre>
I've considered making one, I probably will have one whenever I get around to writing an editor
<cmtptr>
said like a real forther
dave0 has joined #forth
_whitelogger has joined #forth
<mark4>
2>r should be like >r >r
<mark4>
and ans is wrong again
<mark4>
the original definition for it is : 2>r >r >r ;
<dave0>
i think there's a swap
<mark4>
it was my intent to write a bot in x4 and allow certain things to be done
<alexshpilkin>
mark4: well it depends on how you interpret the 2, doesn't it?
<mark4>
if it was d>r i would say the swap might be right
<mark4>
2 swap is just treated ad dswap
<mark4>
i dont think that translates with 2>r
<dave0>
oh that's an interesting name
<alexshpilkin>
if it simply means "twice", then sure
<mark4>
with a double number what ever is on top of P stack has to be on top of R stack
<mark4>
the swap just does not make sense to me because taht requires annother swap on 2r>
<mark4>
just dont do the seap
Zarutian_HTC has quit [Read error: Connection reset by peer]
Zarutian_HTC has joined #forth
<alexshpilkin>
if it means "the two-cell piece", then ANS is probably right, you want the same thing to be on top of the return stack that used to be on top of the data stack
<alexshpilkin>
yes, it might be more appropriate to call it D>R
<mark4>
ans is never right :P
<mark4>
what the swap guarantees is that top of P stack before the op is top of R stack after the op
<alexshpilkin>
mark4: I don't think we actually disagree on anything except maybe naming :)
<mark4>
heh
<mark4>
i HATE postpone and invert
<mark4>
i will never add either of those abominations to my forths :P
<mark4>
alexshpilkin, what forth do you usually use?
<alexshpilkin>
well, I'd say there's a certain point to POSTPONE, though I'm not sure that it's actually the best way to implement this point
<mark4>
compile and [compile] did not need fixing
<mark4>
and NOT was already fixed by the 83 standard
* alexshpilkin
has spent two years on and off thinking about the connection between POSTPONE and metacompilation but still can't get it to work properly
<mark4>
the purpose of postpone is to do the job of both compile and [compile]
<mark4>
the preceived NON issue is that you need to know which words are immediate
<mark4>
and an immediate word in my forth might not be immediate in yours
<mark4>
so to facilitate the falacy of portability they invented a new word to do the jobs of both
<mark4>
if ans forth was so damned portable why does every ans forth source file need duct tape definitions to account for the varios incantations of ans'ness
<alexshpilkin>
I'd call it "the Scheme problem": the standard is so minimal it's difficult to actually do anything with it
<alexshpilkin>
(in the Scheme case, it's the whole standard; in the Forth case, it's CORE)
<alexshpilkin>
I don't think anybody ever succeeded in solving this. not many language standards strive for minimality in the first place
<mark4>
actually java is damned good at acting identially on every system it runs on
<mark4>
crappy but identically crappy :)
<alexshpilkin>
yeah, but I don't think anybody could call it lightweight with a straight face
<mark4>
actually that depends, you can embed java in very iminmal systems
<mark4>
you just dont get 2756279298746592659243982346592435 terabytes of .jar files
<mark4>
or maybe thats just whats inside every jar file :P
<alexshpilkin>
literally the only thing I know about this is from watching a talk from 36C3 that said that the Java on Java Cards is at best a pretty esoteric form of Java and at worst not Java at all
<alexshpilkin>
no idea how representative that is
<alexshpilkin>
of Java on small systems
<mark4>
dalvik was put on some really tiny phone systems origainally
<mark4>
and dalvik is java-ish
<alexshpilkin>
huh. ok
<mark4>
dalvik being the original android vm
<mark4>
the vm itself can be really tiny but the jar files tahat get loaded up at run time can have megabytes of byte code inside them
<mark4>
and you cant really unzip them lol
<mark4>
but im not saying java is good btw, it just does a good job of being portable
<mark4>
and CAN be quite small
<mark4>
hell they even embed LUA
<mark4>
you never said what forths you use?
<alexshpilkin>
...
<alexshpilkin>
I'm afraid I can't honestly say I "use" any Forth; that is Forth is not what I turn to for day-to-day tasks
<alexshpilkin>
Forth is what I use to try insane ideas :)
<mark4>
same same but i have had professional jobs coding forth :)
<alexshpilkin>
on PC, I've mostly used Gforth. I tried pForth and... SwiftForth, I think, when I wanted to check compatibility across ANS systems, and was not impressed with the ergonomics
<mark4>
exactly :
<mark4>
:P
<mark4>
what OS do you use?
<alexshpilkin>
... I don't much like Gforth's implementation ideology, but it's surprisingly convenient as an environment
<mark4>
any forth that is written in C is not a forth
<mark4>
another failed attempt to make forth portable
<alexshpilkin>
well no, I'd say there's a valid use case in bootstrapping
<alexshpilkin>
especially if the thing you want to bootstrap is nonstandard enough that you can't or don't want to use an existing Forth
<mark4>
i was developing an android ndk forth and temporilly used some C glue code but was working on replacing all of that when google ripped the rug right out from under me and invalidated all my work lol
<alexshpilkin>
... and I can empathize with not wanting to implement an x86 assembler *shudder*
<mark4>
actually the ONLY reason x86 assemblers are clusterfuck is because morons keep doing the opcode encodings in hex instead of octal
<alexshpilkin>
8086, yes
<alexshpilkin>
x86-64, no
<mark4>
yes even 64 bit encoding is expressed way better in octal
<alexshpilkin>
I've done a 8086 assembler and yeah, it's mostly ok
<mark4>
i wrote an 8051 assembler and an avr assembler
<mark4>
was working on organizing tables for aarch64 and x86_64 but never completed that stage on either
<mark4>
aarch64 assembler IS cluster fuck encoded lol
<alexshpilkin>
but for x86-64 I've gotten one to the stage when encode every possibility of MOV for general-purpose registers and just gave up
<alexshpilkin>
*when it could encode
<mark4>
x86 encoding is pretty much uniform across their entire history
<alexshpilkin>
as long as you limit yourself to scalar instructions, maaaybe
<alexshpilkin>
though the 32/64-bit encoding of indirect addressing and its interactions with REX prefixes hurts my brain
<mark4>
heh
<mark4>
it hurts everyones brain
<alexshpilkin>
anyhow, I'll probably try my hand at x86 sometime in the future, but at the moment being able to prototype what I want with VM in a couple hundred lines of C is damned convenient
<mark4>
what OS do yo use?
<mark4>
all my fun is in linux
<alexshpilkin>
I've been on Arch Linux for the last several years
<mark4>
my x4 should run there no problem
<mark4>
depending on where it puts the terminfo stuff
<alexshpilkin>
...
<alexshpilkin>
still have things to say in the queue
<mark4>
if it does the debian idiocy of putting it all under /lib you have to either copy it to its correct location in /usr/share OR you have to modify my sources
<alexshpilkin>
(yes, it does)
<mark4>
ugh lol
<mark4>
FHS says /usr/share/terminfo not /lib/terminfo
<mark4>
but i guess putting things in /usr is problematical when /usr is on a separate drive
<alexshpilkin>
ah that. no, I've no idea
<mark4>
but that is not even supporeted in linux now without an initramfs
<alexshpilkin>
(it's also a bit difficult to say where the screwup began, given that originally /usr was for _user home directories_, and I have an old UNIX book to prove it)
<mark4>
the screw up happened when 256398456842 people all disagreed where things should go
<mark4>
and they still have not sorted it out
<mark4>
but /lib for terminfo is just straight up WRONG lol
<alexshpilkin>
ok, where was I
<alexshpilkin>
right, Forths
<mark4>
and i have been too pig headed to modify my terminfo parsing code to search in /etc/terminfo and /lib/terminfo and in ~/terminfo
spoofer has quit [Quit: leaving]
<alexshpilkin>
another legit usecase for a Forth in C would be for a memory-checking Forth, i.e. one where a user program cannot actually corrupt the VM. writing this kind of thing in bare assembly is legitimately painful, and though it's probably not impossible to do with a good Forth DSL, I've never seen it done
<alexshpilkin>
*not impossible to do well
<mark4>
well its the sort of thing i would write in forth :)
<mark4>
like my terminfo parser and text user interface and my memory manager
<mark4>
i have just not been activly developing any of my projects for a long time
<alexshpilkin>
well yeah, it sounds like it should be possible, doesn't it?
<mark4>
if it can be done in C it can be done in visual basic :P
<mark4>
or java
<alexshpilkin>
but I wouldn't know where to start, honestly
<mark4>
or BF :)
<mark4>
no - thats the initial problem with problem solving
<alexshpilkin>
*Turing tarpit alert*
<mark4>
define the problem entirely so you can define the solution
<mark4>
turing complete is more math bs anyway :P
<alexshpilkin>
(you're laughing now, but the first thing I've done any programming worth mentioning in was VB for DOS)
<mark4>
nah i dont hate on anything and everyone gets to make mistakes anyway :)
<alexshpilkin>
* the "Turing tarpit" is exactly the opposite of what you appear to be thinking about. it's the observation that although most PLs are equally strong theoretically speaking, in practice, ergonomics matter
<mark4>
i have never seen any language that is as mentally erganomic as a well defined forth
<mark4>
i.e. not ans forth
<alexshpilkin>
depends on what you use it for probably
<mark4>
actually i have "used" forth for very little
<mark4>
my development is not using it but developing it lol
<alexshpilkin>
I've found it very, very difficult to do any actual data structures in Forth, for example
<mark4>
data structures are not that difficult in forth
<alexshpilkin>
in some kind of reasonably CS-theory-heavy task
<mark4>
x4 and t4 both implement them
<mark4>
like say a memory manager?
<alexshpilkin>
(I don't mean C "struct"s, I mean working with data structures, conceptually)