08:56:22
##forth
<veltas>
It used to be that I was the way to get the top of return stack
08:56:32
##forth
<veltas>
Before R@
08:56:58
##forth
<veltas>
And I don't see a lot of compelling reasons to change this, unless you're going to put indices in registers
08:57:18
##forth
<veltas>
And then J could be R@
08:57:57
##forth
<veltas>
The optimisation F83 makes is probably not worth it, but I understand people don't like to trade performance for anything
09:27:24
##forth
<veltas>
May or may not be a basic embedded Software Engineer job using C opening, UK midlands, PM me if you're interested for more details
12:01:25
##forth
<user51>
i'm focused only on determining if all the characters are the same, not interested in any fancy output
12:03:44
##forth
<GeDaMo>
If the first two characters are the same then you're looking for a character which is different from them
12:03:58
##forth
<GeDaMo>
If the first two are different then you need to look at the third to determine which is the different character
12:07:00
##forth
<GeDaMo>
If the length is less than three then you can't determine a different character
12:07:17
##forth
<user51>
i've got a few ideas like a recursive version, a hacky comparison one where one of the strings isn't being incremented, and another one which focuses on comparing two characters, specifically s1==s2 && s2 == s3 ... which takes advanage of the fact == commutes and && short circuits. but i haven't started writing any for now, no time.
12:07:50
##forth
<user51>
they all feel fun but fancy.. new word: funcy
12:08:18
##forth
<GeDaMo>
That's what it sounds like when I say 'fancy' :P
18:46:01
##forth
<cleobuline>
hello
18:47:14
##forth
<xentrac>
yay arbitrary precision
18:47:22
##forth
<cleobuline>
i'm working on it it's not finished but it works fine
18:48:17
##forth
<xentrac>
do you know about Minsky's two-counter machine?
18:48:44
##forth
<xentrac>
it turns out that with arbitrary precision your machine only needs two registers to be Turing-complete
18:48:48
##forth
<cleobuline>
nope
18:49:03
##forth
<xentrac>
because you can store an unbounded amount of data in an arbitrary-precision counter
18:50:51
##forth
<cleobuline>
> 200 FACT
18:50:52
##forth
<cleobuline>
Stack: 788657867364790503552363213932185062295135977687173263294742533244359449963403342920304284011984623904177212138919638830257642790242637105061926624952829931113462857270763317237396988943922445621451664240254033291864131227428294853277524242407573903240321257405579568660226031904170324062351700858796178922222789623703897374720000000000000000000000000000000000000000000000000
18:53:49
##forth
<veltas>
Very nice cleobuline
18:54:04
##forth
<xentrac>
congratulations!
18:54:39
##forth
<veltas>
That's a nice repo generally
18:54:41
##forth
<cleobuline>
thank you i'm planning to do a forth irc bot next
18:55:01
##forth
<veltas>
What are you planning for that?
18:55:31
##forth
<cleobuline>
a forth irc bot to play wth created words
18:56:05
##forth
<cleobuline>
on irc channel
18:56:44
##forth
<cleobuline>
first i have to finish this one , it may be somme memory leagages
18:56:52
##forth
<cleobuline>
leakages
18:58:02
##forth
<cleobuline>
i began with forth cartrige on commodore 64
19:00:34
##forth
<veltas>
I suppose my questions are: will it retain state between prompts, or per-user, or have storage? How will you sandbox it?
19:00:40
##forth
<nmz->
I'd rather just set up ii in a jail pipe the log to awk, shell ulimits everything so it wont go crazy on mem size or cpu.
19:01:21
##forth
<cleobuline>
veltas: yes each users will have his own context of course
19:01:43
##forth
<nmz->
how?
19:02:24
##forth
<veltas>
Yeah, per nick, or nick+host, or nick+host sessions with login?
19:03:04
##forth
<veltas>
See this is something I've thought about already, I have done some design for a Forth IRC bot
19:03:14
##forth
<cleobuline>
yes each ick will have its own memory space on my bot
19:03:24
##forth
<veltas>
ghodawalaaman has made a basic locked-down gforth bot without state
19:03:28
##forth
<cleobuline>
or not :)
19:03:47
##forth
<veltas>
So if I take someone's nick then I can play with their data?
19:04:16
##forth
<veltas>
It's quite easy to check if someone's authenticated, might be worth doing that
19:04:23
##forth
<cleobuline>
yes
19:04:37
##forth
<veltas>
There's an IRC2 feature on libera.chat to show authentication status on every PRIVMSG
19:04:50
##forth
<xentrac>
nice
19:04:57
##forth
<veltas>
Some optional thing you can request, forget the name
19:05:25
##forth
<veltas>
How much space will you allocate per-user?
19:05:45
##forth
<cleobuline>
i will try to do a basic tiny-forth on irc i will see ...
19:06:55
##forth
<cleobuline>
may be every one will share the same dictionnary
19:07:22
##forth
<cleobuline>
so every one may append his own creations to the bot :)
19:07:29
##forth
<xentrac>
you could probably allocate 10 megabytes per user
19:07:35
##forth
<cleobuline>
a collaborative forth ...
19:08:29
##forth
<cleobuline>
forth words do not use a big space
19:08:38
##forth
<xentrac>
usually not
19:09:58
##forth
<cleobuline>
it may be funny :)
19:11:35
##forth
<thrig>
just as funny as using the big space in Makefile
19:13:14
##forth
<cleobuline>
i will implement the word forget
19:17:15
##forth
* crc should finish his konilo irc interface sometime
19:17:45
##forth
<veltas>
A sandboxed ilo would be realistic to write
19:17:52
##forth
<veltas>
Without a whole container/jail
19:18:03
##forth
<veltas>
But could put in jail anyway just to be sure
19:24:07
##forth
<crc>
I have it about half done; still working on some things w/the block storage for separate users
19:25:26
##forth
<crc>
locking down isn't a problem. I have it pledged so only the core few system calls it needs can be used, and unveil only the block store so no outside file system access is allowed, even if someone was to find an exploit :)
19:26:21
##forth
<crc>
cleobuline: I'm looking forward to seeing your bot when it's ready
19:26:49
##forth
<cleobuline>
:)
19:29:04
##forth
<veltas>
Yeah sounds pretty locked down
19:29:09
##forth
<veltas>
OpenBSD for the win
19:38:26
##forth
<crc>
my plan is to have the vm allow read-only access to the basic blocks for the standard library of extensions & documentation, and then 64 semi-private read/write blocks for each user. Each user gets a separate instance in ram. (separation done by irc nick)
19:39:55
##forth
<veltas>
Nice
19:40:19
##forth
<veltas>
I recommend doing it so that the 64 constant can be tweaked, so you're not locked into that size
19:40:27
##forth
<veltas>
Because depending on usage that could be too little
19:41:46
##forth
<crc>
it'll be flexible. I'm not sure how much use mine will get, given that it's pretty different from typical systems
19:41:47
##forth
<veltas>
How much will the Elite support package be?
19:42:57
##forth
<veltas>
Honestly while the novelty hasn't worn off it will probably get a lot of usage, especially if there's long term state
19:43:17
##forth
<veltas>
I'll set up my own little corner of konirc
19:44:00
##forth
<xentrac>
I wonder if a shared interpreter with per-user namespaces could itself be an adequate chat server. I mean, that's sort of what a MUD is, isn't it?
19:45:26
##forth
<crc>
The space isn't a big issue. I have capacity to provide up to 2048 blocks per user if everyone here was to use it & needed the space
20:01:10
##forth
<veltas>
A shared space for everyone would be good too
20:01:27
##forth
<veltas>
And/or a space for users that's read-only for other users
20:01:41
##forth
<veltas>
Because then we can communicate, klog, etc
20:01:55
##forth
<veltas>
konilo social media
20:02:45
##forth
<user51>
konilocities
20:07:38
##forth
<veltas>
This all just sounds so much better than the web
20:08:17
##forth
<veltas>
Can someone pen a BLOCK+UDP/IP RFC?
20:12:01
##forth
<crc>
I used to run a public access block-over-gopher server, but it never got any use other than by me
20:12:20
##forth
<veltas>
It will be good at first and then we'll devolve into BLOCK 2.0 and MyKonilo / faceblock
20:12:46
##forth
<veltas>
I promise I will actually learn konilo and use it to host something if you do it
20:13:08
##forth
<veltas>
Also for this one I would recommend having it join a separate bot channel as well for less noise
20:13:33
##forth
<veltas>
as well as ##forth and #retro or whatever the channel is
20:36:46
##forth
<crc>
I'll provide updates here once I have time to get back to working on it :)
20:54:37
##forth
<xentrac>
;)