16:17:33
##forth
<X-Scale>
is Charles H. Moore still around doing something related to Forth?
16:21:31
##forth
<X-Scale>
"Our company is small, lean, aggressive and multidisciplinary. It is typical, for example, that our silicon designers are also circuit designers and/or programmers. In addition to their corporate duties, Chuck Moore and each of our four Officers roll up their sleeves and work in the trenches, "leading from the front" alongside the other 13 core team members and several dedicated consultants to bring
16:21:31
##forth
<X-Scale>
our plans to successful conclusion.
16:21:32
##forth
<X-Scale>
"
16:21:37
##forth
<X-Scale>
nice
16:26:33
##forth
<X-Scale>
it looks like Unabomber's cabin
17:03:42
##forth
<anthk_>
hello
17:03:58
##forth
<anthk_>
ah, Ted hated computers
17:04:41
##forth
<anthk_>
and it's ironic, because he was a Mathematician, and, you know, writting down stuff with a pencil (tool) it's still technology with applied Science
17:04:56
##forth
<cleobuline>
Charles H. Moore, the creator of Forth, is indeed still around. Although he has long stepped away from the spotlight of the mainstream tech world, he remains connected to the Forth community—even if his current projects or public engagements related to Forth aren’t as prominent as they once were.
17:07:51
##forth
<X-Scale>
That is great news, cleobuline, considering he's already 86 years old.
17:09:45
##forth
<veltas>
X-Scale: Wow no kidding re Unabomber
17:13:24
##forth
<X-Scale>
:)
17:15:54
##forth
<veltas>
"The Forth programming language and its consequences have been a disaster for the human race"
17:17:20
##forth
<vms14>
:0
17:17:49
##forth
<vms14>
maybe because if forth never existed I wouldn't have made my own abomination
17:18:01
##forth
<vms14>
now in js :D
17:18:43
##forth
<vms14>
I've half documented part of it
17:18:47
##forth
<X-Scale>
haha veltas
17:19:15
##forth
<vms14>
and that's the whole thing, which would run a repl in node
17:19:26
##forth
<vms14>
but it's missing a lot of stuff
17:20:50
##forth
<vms14>
I stole the concept of temporary words from KipIngram
17:21:33
##forth
<xentrac>
I didn't know GreenArrays was in Missouri. I thought it was like Nevada or california or something
18:04:01
##forth
<veltas>
Probably run out of someone's barn or something, cheaper than renting office space
18:04:47
##forth
<veltas>
Although it is a good movie, and stars Jennifer Aniston
18:07:30
##forth
<xentrac>
a funny thing happened with Jennifer
18:07:46
##forth
<xentrac>
it's an old person name now
18:11:11
##forth
<veltas>
Better than half the names my generation come up with ...
18:11:35
##forth
<xentrac>
what do you mean?
18:12:25
##forth
<veltas>
A lot of people my age name their kids strange things because they're trying to be clever or individual or something
18:12:33
##forth
<veltas>
And their kids will probably regret this eventually
18:12:57
##forth
<xentrac>
oh, I got named "Kragen" and don't regret it at all
18:12:59
##forth
<veltas>
Of course I am the true victim in all this
18:13:15
##forth
<xentrac>
are you?
18:15:00
##forth
<veltas>
Kragen is a rare name but without knowing more I don't even really have an opinion about that choice
18:15:13
##forth
<veltas>
Do you know why they chose that?
18:15:58
##forth
<veltas>
Honestly it sounds like a name I could believe was German ethnic or something, even though googling revealed little useful info, it sounds like a 'name'
18:16:12
##forth
<veltas>
Matters more for girls too honestly
18:16:43
##forth
<xentrac>
well, my father's name was "Greg", and my mother's was "Carolyn"
18:17:24
##forth
<xentrac>
in the US you can change your name if you don't like it, though not quite as easily as in the UK
18:18:00
##forth
<veltas>
I've heard it's quite hard to change name in UK, so must be quite hard
18:18:28
##forth
<veltas>
My wife certainly complained a lot about changing her last name when she married me, and that's actually one of the easier moments to change it
18:20:09
##forth
<veltas>
I suppose the hard bit is getting people and authorities to actually use that name, even if it's 'legal'
18:20:31
##forth
<xentrac>
the concept in English common law is that the deed poll is just a means for you to officially notify the state of your new name
18:21:13
##forth
<xentrac>
whereas in many other countries, including to some extent the US, you are petitioning the state
18:22:03
##forth
<xentrac>
when I got married and changed my last name I had to publish the new name in a newspaper ad for a period of time and submit some forms and pay some processing costs
18:22:20
##forth
<veltas>
I read an article about someone who changed their name by deed poll to get some free thing that was only for people with a certain name
18:24:06
##forth
<veltas>
xentrac that's actually the same process as deed poll
18:24:34
##forth
<veltas>
But in the UK when you get married you can just use the marriage certificate to change your name
18:24:39
##forth
<veltas>
You don't need a deed poll
18:25:02
##forth
<veltas>
Getting married isn't free either though, right lads?
18:25:10
##forth
<xentrac>
yeah, but in the US the court can deny the name change if they don't think your reason is good enough
18:25:30
##forth
<Guest69105>
Hello! This feels like a rather easy question, but how do I create a constant (counted?) string?
18:26:00
##forth
<Guest69105>
Preferably in Standard Forth, but I'm using GForth at the moment.
18:26:08
##forth
<xentrac>
with s"
18:26:31
##forth
<xentrac>
: hello s" goodbye" ; ok
18:26:31
##forth
<xentrac>
hello type goodbye ok
18:26:33
##forth
<veltas>
S" isn't counted
18:26:50
##forth
<xentrac>
it isn't, but counted strings are bad; don't use them
18:27:02
##forth
<veltas>
That's very Stack Overflow of you
18:27:12
##forth
<xentrac>
hey, they had a question mark
18:27:28
##forth
<xentrac>
presumably that meant they were looking for input on whether they should be counted strings or not
18:27:28
##forth
<Guest69105>
Well, if it isn't counted, how would I easily get the length of the string?
18:27:34
##forth
<veltas>
"How do I do X?" "Don't do X (Most Upvoted Answer)"
18:27:53
##forth
<xentrac>
when s" runs, it pushes both the address of the beginning of the string and its length
18:28:03
##forth
<xentrac>
hello . . 7 140638534935752 ok
18:28:27
##forth
<xentrac>
so if you want just the length you can nip
18:28:31
##forth
<xentrac>
hello nip . 7 ok
18:28:33
##forth
<veltas>
If you want a counted string you can use C"
18:28:59
##forth
<olle>
Why couldn't a word be able to act on both the stack, and arguments after (when stack is empty)?
18:29:21
##forth
<xentrac>
I should say, when the runtime semantics of s" run. which in GForth are called SLiteral
18:29:35
##forth
<veltas>
But counted strings are limited to 255 max length, bear in mind
18:29:47
##forth
<veltas>
So not 'bad' per se, but limited
18:29:51
##forth
<xentrac>
counted strings have a lot of disadvantages
18:30:55
##forth
<Guest69105>
OK, but it is a constant, and it's definitely going to be within 255 cells (?).
18:30:55
##forth
<xentrac>
not 255 cells, characters
18:31:10
##forth
<veltas>
In FORTH-79 terminal input ends with a null character
18:31:45
##forth
<xentrac>
so for example if you want to take a substring of a normal string you can do something like 1- or drop 4
18:32:01
##forth
<xentrac>
if you want to do that with a counted string you either have to mutate it or copy it somewhere else or both
18:32:41
##forth
<xentrac>
a standard Forth word that uses this ability is -trailing, which removes the spaces at the end of a string
18:33:05
##forth
<Guest69105>
What are "normal strings" called in the 2012 standard and the GForth manual?
18:34:12
##forth
<Guest69105>
Just.. strings?
18:34:15
##forth
<veltas>
Yes
18:35:05
##forth
<xentrac>
consider these lines of interaction with Gforth using the hello definition above:
18:35:23
##forth
<xentrac>
hello drop 4 type good ok
18:35:32
##forth
<xentrac>
hello 1- type goodby ok
18:35:42
##forth
<veltas>
The advantage of a counted string is it's easier to handle on the stack
18:35:48
##forth
<xentrac>
hello 4 - swap 4 + swap type bye ok
18:36:11
##forth
<xentrac>
I would say the contrary: the disadvantage of a counted string is that it's impossible to handle on the stack
18:36:46
##forth
<xentrac>
you have to write to memory to do any of those three operations
18:37:25
##forth
<veltas>
Yes e.g. WORD which writes a counted string with a given delimiter, e.g. with BL will remove trailing spaces
18:39:07
##forth
<
xentrac>
https://forth-standard.org/standard/core/PARSE says, "The need for WORD has largely been eliminated by PARSE and PARSE-NAME. WORD is retained for backward compatibility." This is specifically because word uses counted strings.
18:39:45
##forth
<veltas>
You can also easily check equality of two strings if they're counted, given the length of either string, because the byte containing length immediately ends the comparison if they're not the same length
18:40:00
##forth
<veltas>
But with the new words you need to pass two lengths i.e. COMPARE
18:40:31
##forth
<xentrac>
you do, it's true
18:40:47
##forth
<veltas>
Which is slower actually, because of how it's defined as returning result based on order of last differing bytes
18:41:47
##forth
<olle>
Is there a bash alternative that works more like forth? Stacks instead of pipes and such.
18:42:41
##forth
<olle>
Because I think I'm developing my own such system, almost.
18:43:29
##forth
<xentrac>
olle: I think it's reasonable to think of Forth as being a Bash alternative
18:43:44
##forth
<xentrac>
but designed for smaller systems
18:44:18
##forth
<xentrac>
veltas: that's true
18:45:37
##forth
<
xentrac>
everything in https://forth-standard.org/standard/string operates on normal strings rather than counted strings, which is not a big problem if your strings happen to be stored as counted strings; you can always count them
18:46:04
##forth
<xentrac>
the problem arises when you have words that want counted strings as parameters, like find unfortunately does
18:47:40
##forth
<xentrac>
because then they can't operate on normal strings; you have to allocate a buffer somewhere, copy the string into it, add a count byte, and think about its lifetime. admittedly that's also what you have to whenever you start concatenating strings
18:50:53
##forth
<xentrac>
I'm probably hammering too hard on this, but the existence of counted strings was one of the big problems I had getting into Forth, because they look like something you might want to use, and then when you do you are always sad
18:51:33
##forth
<xentrac>
sometimes not until you have a lot of code you have to rewrite if you are going to stop using them
18:51:52
##forth
<Guest69105>
I'll try and keep that in mind.
18:58:14
##forth
<Guest69105>
A $ is typically used in stack diagrams to represent a "addr u" string, right?
19:06:19
##forth
<veltas>
That's fair xentrac, I agree, but it's interesting they obviously didn't care that much because they never provided an alternative to FIND
19:06:36
##forth
<veltas>
Also FORTH-79 FIND is a lot better, because it returns the dictionary entry, not the execution token
19:06:54
##forth
<veltas>
So you can check whether it's immediate with that, get its name, get the next entry etc. It's a swiss army knife
19:07:36
##forth
<veltas>
That's my issue with the standard really is it feels like they wanted to 'deprecate' a lot of things, but never really provided proper fleshed out alternatives
19:07:43
##forth
<veltas>
It's not unique to Forth, C++ is like this too
19:10:52
##forth
<veltas>
And there's just plain bad ideas like ENVIRONMENT? and the finer details of how THROW/CATCH work
19:10:52
##forth
<vms14>
veltas in forth79 you can mess with the parameter field of a word and add stuff?
19:11:02
##forth
<veltas>
Not in a 'standard' program, but the standard makes it easier to do this provided your implementation works in a normal way
19:11:09
##forth
<vms14>
I saw in a book some explaination about being able to mess with it, but I guess it was 83
19:11:16
##forth
<vms14>
explanation*
19:11:50
##forth
<vms14>
like you could get the value of a variable by accessing the pfa directly
19:12:21
##forth
<vms14>
that is kind of cool, I like reflection and metaprogramming