07:17:50
##forth
<user51>
Well, it was fun thinking about it, but my attempt at an interpret-only forth is probably not really worth programming, or programming in.
07:23:06
##forth
<user51>
Basically it would compile strings literally, then re-interpret them. For words like :, IF, BEGIN and so on I'd them push the current scan pointer on the rstack, then ;, THEN, AGAIN and so on would pop the rstack and check that the popped value points to the relevant 'initiating' word.
07:30:55
##forth
<user51>
I'm giving it up because someone linked to FreeForth and while reading the criticism file there was a complaint that it's doing something very nonstandard to forth programmers (not a forth standard; forth programmers) and I thought to myself, maybe I'm doing the same thing. Time to reflect.
07:38:40
##forth
<xentrac>
yeah, I was going to say, early Forth was a text interpreter
07:39:03
##forth
<xentrac>
like sh
07:40:08
##forth
<user51>
Come on, I haven't finished yet!
07:40:12
##forth
<user51>
Just kidding :D
07:41:52
##forth
<user51>
I wonder if that's the origin of factoring. Or at least a pretty practical example.
07:46:07
##forth
<xentrac>
The origin of factoring is 测圆海镜, a book written in the year 01248 by the mathematician 李治
07:46:17
##forth
<xentrac>
I think
07:47:59
##forth
<xentrac>
but it's pretty fuzzy, really
07:58:11
##forth
<xentrac>
it's more than just a metaphor
11:25:07
##forth
<veltas>
Not that impressed by C3
11:25:21
##forth
<veltas>
A lot of pointless changes e.g. "fn"
11:25:57
##forth
<veltas>
Why do a 'refined' C that looks identical to C but with more clutter
11:26:10
##forth
<DKordic>
veltas: Good point.
11:26:13
##forth
<veltas>
Some of the changes are useful, like member functions, but otherwise no
11:27:40
##forth
<DKordic>
I absolutely agree. Superficial, but it could not be ALGOL Family otherwise.
11:28:00
##forth
<veltas>
I would rather write C++ which has a lot more knowledge/support, and of which there is a relatively nice subset you can limit yourself to
11:28:09
##forth
<veltas>
And if you want something simpler than C++ then use C
11:28:42
##forth
<veltas>
And if you want something simpler than C then use Forth
11:29:15
##forth
<veltas>
Or assembly I guess
11:29:52
##forth
<veltas>
But I would prefer to use Forth like a macro assembler if I had to write a lot of assembly, but not 100% of the code needed to be low-level
11:34:51
##forth
<
DKordic>
C absolutely was assembly for PDP-11. There was also some graphics card from Bell Labs (somewhere on YouTube) for which assembly was proper subset of C. Surprise? ""C Is Not a Low Level Language: Your computer is not a fast PDP-11"" ( https://queue.acm.org/detail.cfm?id=3212479 ) ?!
11:37:14
##forth
<veltas>
Every low level language is assembly for the PDP-11, because it has a very simple and flexible architecture
11:37:44
##forth
<veltas>
Dennis Ritchie denied that the post increment and pre decrement are borrowed from PDP-11, partly because they're in B and that predates the PDP-11
11:44:44
##forth
<DKordic>
I still do not see how is PDP-11 worth a second of my attention. In fact I think the less I know about it the better. I think the same about C and UNIX.
11:46:14
##forth
<veltas>
I think Forth is an alternative to both C and UNIX
11:46:35
##forth
<veltas>
Interesting to see how deep the rabbit hole goes
11:47:18
##forth
<veltas>
I like the PDP-11, but yeah you don't need to know anything about it, not sure who said you do
11:47:51
##forth
<DKordic>
Exactly. I will apologize for Forth 94. Forth 2012 is not better.
11:48:33
##forth
<veltas>
The only things in Forth 200x I like are +FIELD and PARSE-NAME
11:48:43
##forth
<veltas>
Maybe some other things if I think hard, but it's a very short list
11:49:01
##forth
<veltas>
FIELD: and CFIELD: can come too
11:52:49
##forth
<veltas>
Forth 94 already is bad because of things like LOCALS| and ENVIRONMENT?
11:53:30
##forth
<veltas>
And making FORGET obsolescent
11:54:15
##forth
<veltas>
CATCH takes an xt
11:54:22
##forth
<veltas>
I could go on, lots of bad decisions
11:58:15
##forth
<DKordic>
Why are We ignoring De Bruijn Index. BigNums? Am I (not to say We) feeble minded? Isn't it offending to our readers?! ATM I am glad more people do not waste their effort on... Forth 2012.
11:59:58
##forth
<DKordic>
def swap(*D, **Dictionary): return OK(D[1], D[0], *D, **Dictionary)
12:00:18
##forth
<veltas>
The stack is sort of like a De Bruijn Index, given that it's not good for more than 2-3 items, unless you're 'stashing' something for long term use
12:00:52
##forth
<veltas>
Assuming you don't want more than like 2-3 parameters
12:01:22
##forth
<veltas>
Otherwise just use VARIABLE's, it was good enough in the 80's and it's good enough now
12:02:32
##forth
<DKordic>
Now I disagree.
12:09:27
##forth
<DKordic>
def example(*D, **Dictionary): OK(*D[1:], Var=D[0], **Dictionary) # to Var
12:15:20
##forth
<veltas>
Return stack useful for stashing and R@ is a bit like an extra register
12:15:37
##forth
<veltas>
To me for most things the stack feels like having 3 awkward registers
12:17:31
##forth
<DKordic>
Yes, `dup' and `swap' are also Variables.
12:22:10
##forth
<DKordic>
Why don't We have _local_ `value's?! No rain dance!!
12:22:29
##forth
<DKordic>
: swap value ToS value NoS NoS ToS ;
12:22:29
##forth
<DKordic>
: dup value ToS ToS ToS ;
12:22:30
##forth
<DKordic>
: drop value ToS ;
13:58:00
##forth
<cleobuline>
ForthBot: CAT
13:58:00
##forth
<ForthBot>
/_/
14:47:01
##forth
<cleobuline>
ForthBot: SEE CAT
14:47:01
##forth
<ForthBot>
: CAT 32 EMIT 32 EMIT 32 EMIT 47 EMIT 95 EMIT 47 EMIT 32 EMIT CR 40 EMIT 32 EMIT 111 EMIT 46 EMIT 111 EMIT 32 EMIT 41 EMIT CR 32 EMIT 32 EMIT 62 EMIT 32 EMIT 94 EMIT 32 EMIT 60 EMIT CR ;
15:54:20
##forth
<thrig>
INTERPOL (integer police) are involved in hunting down those who sell fake number lines
15:59:58
##forth
<user51>
The trick is to get into as many watchlists as possible.. good chance of a false positive. :)
16:44:52
##forth
<cleobuline>
ForthBot: 80 RECUNACCI
16:46:09
##forth
<cleobuline>
ForthBot: SEE RECUNACCI
16:46:09
##forth
<ForthBot>
: RECUNACCI 2 + 0 DO I FIBONACCI LOOP DROP ;
17:02:16
##forth
<cleobuline>
ForthBot: ~ .
17:02:16
##forth
<ForthBot>
-23416728348467686
17:03:02
##forth
<DKordic>
xentrac: I don't see how is Kleene Algebra related to Factoring. We do not grep(1) for `;' ;) .
17:09:43
##forth
<xentrac>
DKordic: no, I imagine you don't
21:52:58
##forth
<cleobuline>
join python
22:14:12
##forth
<lispmacs[work]>
cleobuline: not allowed
22:14:28
##forth
<cleobuline>
what ?
22:15:21
##forth
<lispmacs[work]>
just joking. your dropped your command "join python" into this channel as a normal message
22:15:40
##forth
<cleobuline>
ha ok :)
22:15:57
##forth
<cleobuline>
ForthBot: SOURCE @ PRINT
22:20:36
##forth
<cleobuline>
ForthBot: " Ceci est un test " TEST !
22:20:47
##forth
<cleobuline>
ForthBot: TEST @ PRINT
22:20:47
##forth
<ForthBot>
Ceci est un test
22:46:52
##forth
<cleobuline>
join C
22:53:14
##forth
<thrig>
many rivers do