Rocksolid Light

Welcome to Rocksolid Light

mail  files  register  newsreader  groups  login

Message-ID:  

It would be illogical to kill without reason. -- Spock, "Journey to Babel", stardate 3842.4


devel / comp.lang.forth / Re: Newbie: Compile Forth on Linux

SubjectAuthor
* Newbie: Compile Forth on LinuxPeter Wiehe
+* Re: Newbie: Compile Forth on LinuxAnton Ertl
|`* Re: Newbie: Compile Forth on LinuxPeter Wiehe
| +* Re: Newbie: Compile Forth on LinuxDavid Schultz
| |`* Re: Newbie: Compile Forth on Linuxminforth
| | `* Re: Newbie: Compile Forth on Linuxdxf
| |  `* Re: Newbie: Compile Forth on Linuxminforth
| |   `- Re: Newbie: Compile Forth on Linuxdxf
| +- Re: Newbie: Compile Forth on LinuxAnton Ertl
| +- Re: Newbie: Compile Forth on Linuxdxf
| +- Re: Newbie: Compile Forth on Linuxnone
| `- Re: Newbie: Compile Forth on Linuxnone
+- Re: Newbie: Compile Forth on Linuxnone
+- Re: Newbie: Compile Forth on Linuxminforth
+- Re: Newbie: Compile Forth on Linuxnone
`- Re: Newbie: Compile Forth on LinuxMarc Petremann

1
Newbie: Compile Forth on Linux

<20231120223306.51d4ba0b@peter-OptiPlex-7010>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=25383&group=comp.lang.forth#25383

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!border-2.nntp.ord.giganews.com!nntp.giganews.com!Xl.tags.giganews.com!local-1.nntp.ord.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Mon, 20 Nov 2023 21:32:41 +0000
Date: Mon, 20 Nov 2023 22:33:06 +0100
From: info@pwiehe.de (Peter Wiehe)
Newsgroups: comp.lang.forth
Subject: Newbie: Compile Forth on Linux
Message-ID: <20231120223306.51d4ba0b@peter-OptiPlex-7010>
X-Newsreader: Claws Mail 4.0.0 (GTK+ 3.24.33; x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Lines: 11
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-aES4PUzi9z1xUHyRgFGSHYv2NPCmxDY8BJQyT///j1gb70xfxdUUYzSTMfWopG0ANpYXu0/rLqX30Pc!YQ075aL7UuNdcsUtFEKLhPN6frvJJ7lXN7EmZEGqmRuJRc/LG9qS8kuT2LpxrpgQCKF+pmzt
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
 by: Peter Wiehe - Mon, 20 Nov 2023 21:33 UTC

Hello, a Forth newbie here!

I read the newsgroup's FAQ and the gforth manual, but have still some
questions.

How can I get GForth to compile? Or can it only interprete? If GForth
can't, is there a Forth compiler for Linux?

Kindregards
Peter Wiehe

Re: Newbie: Compile Forth on Linux

<2023Nov20.233517@mips.complang.tuwien.ac.at>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=25384&group=comp.lang.forth#25384

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: anton@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups: comp.lang.forth
Subject: Re: Newbie: Compile Forth on Linux
Date: Mon, 20 Nov 2023 22:35:17 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 62
Message-ID: <2023Nov20.233517@mips.complang.tuwien.ac.at>
References: <20231120223306.51d4ba0b@peter-OptiPlex-7010>
Injection-Info: dont-email.me; posting-host="675554203234385e5bf21c1ea33282ab";
logging-data="541202"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+or9lUMQHRtuF1igsL972s"
Cancel-Lock: sha1:88qEjZ+hB9yXcgcMjaLZ4K4r4Jo=
X-newsreader: xrn 10.11
 by: Anton Ertl - Mon, 20 Nov 2023 22:35 UTC

Peter Wiehe <info@pwiehe.de> writes:
>How can I get GForth to compile? Or can it only interprete? If GForth
>can't, is there a Forth compiler for Linux?

Gforth compiles to threaded code, and optionally generates native
code; e.g., a recent development version of gforth-fast compiles:

: cubed dup dup * * ;

into the following code (that you can see with see-code):

$7FEF739927A0 dup 1->2
7FEF73639BD2: mov r15,r8
$7FEF739927A8 dup 2->3
7FEF73639BD5: mov r9,r15
$7FEF739927B0 * 3->2
7FEF73639BD8: imul r15,r9
$7FEF739927B8 * 2->1
7FEF73639BDC: imul r8,r15
$7FEF739927C0 ;s 1->1
7FEF73639BE0: mov rbx,[r14]
7FEF73639BE3: add r14,$08
7FEF73639BE7: mov rax,[rbx]
7FEF73639BEA: jmp eax

The stuff add the addresses prefixed with '$' is the threaded code,
the stuff in between the native code.

See https://gforth.org/ for how to install a recent development
snapshot.

There are also native code compilers for Forth that don't have any
threaded-code mechanisms inside (like what you see in the native code
for ";s"). E.g., SwiftForth compiles CUBED to:

44CBA0 -8 [RBP] RBP LEA 488D6DF8
44CBA4 RBX 0 [RBP] MOV 48895D00
44CBA8 -8 [RBP] RBP LEA 488D6DF8
44CBAC RBX 0 [RBP] MOV 48895D00
44CBB0 0 [RBP] RAX MOV 488B4500
44CBB4 RBX MUL 48F7E3
44CBB7 RAX RBX MOV 488BD8
44CBBA 8 [RBP] RBP LEA 488D6D08
44CBBE 0 [RBP] RAX MOV 488B4500
44CBC2 RBX MUL 48F7E3
44CBC5 RAX RBX MOV 488BD8
44CBC8 8 [RBP] RBP LEA 488D6D08
44CBCC RET C3 ok

VFX compiles CUBED to

( 004E3E60 488BD3 ) MOV RDX, RBX
( 004E3E63 480FAFDA ) IMUL RBX, RDX
( 004E3E67 480FAFDA ) IMUL RBX, RDX
( 004E3E6B C3 ) RET/NEXT

- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: https://forth-standard.org/
EuroForth 2023: https://euro.theforth.net/2023

Re: Newbie: Compile Forth on Linux

<nnd$4d505482$69a7221a@3cf0139aacc27ac7>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=25388&group=comp.lang.forth#25388

  copy link   Newsgroups: comp.lang.forth
Newsgroups: comp.lang.forth
Subject: Re: Newbie: Compile Forth on Linux
References: <20231120223306.51d4ba0b@peter-OptiPlex-7010>
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
From: albert@cherry (none)
Originator: albert@cherry.(none) (albert)
Message-ID: <nnd$4d505482$69a7221a@3cf0139aacc27ac7>
Organization: KPN B.V.
Date: Tue, 21 Nov 2023 09:29:42 +0100
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!feeder1.feed.usenet.farm!feed.usenet.farm!peer01.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!feed.abavia.com!abe004.abavia.com!abp003.abavia.com!news.kpn.nl!not-for-mail
Lines: 23
Injection-Date: Tue, 21 Nov 2023 09:29:42 +0100
Injection-Info: news.kpn.nl; mail-complaints-to="abuse@kpn.com"
X-Received-Bytes: 1369
 by: none - Tue, 21 Nov 2023 08:29 UTC

In article <20231120223306.51d4ba0b@peter-OptiPlex-7010>,
Peter Wiehe <info@pwiehe.de> wrote:
>Hello, a Forth newbie here!
>
>I read the newsgroup's FAQ and the gforth manual, but have still some
>questions.
>
>How can I get GForth to compile? Or can it only interprete? If GForth
>can't, is there a Forth compiler for Linux?

Of course there is a compiler that generates elf executables: ciforth.
lina found on github i.a.

>
>Kindregards
>Peter Wiehe
>
--
Don't praise the day before the evening. One swallow doesn't make spring.
You must not say "hey" before you have crossed the bridge. Don't sell the
hide of the bear until you shot it. Better one bird in the hand than ten in
the air. First gain is a cat spinning. - the Wise from Antrim -

Re: Newbie: Compile Forth on Linux

<40b31248caa2785af50aafb985bcea26@news.novabbs.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=25389&group=comp.lang.forth#25389

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!.POSTED!not-for-mail
From: minforth@gmx.net (minforth)
Newsgroups: comp.lang.forth
Subject: Re: Newbie: Compile Forth on Linux
Date: Tue, 21 Nov 2023 08:30:31 +0000
Organization: novaBBS
Message-ID: <40b31248caa2785af50aafb985bcea26@news.novabbs.com>
References: <20231120223306.51d4ba0b@peter-OptiPlex-7010>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Info: i2pn2.org;
logging-data="1625914"; mail-complaints-to="usenet@i2pn2.org";
posting-account="t+lO0yBNO1zGxasPvGSZV1BRu71QKx+JE37DnW+83jQ";
User-Agent: Rocksolid Light
X-Rslight-Site: $2y$10$EXw7C8JNv1/Hjqo2xS0aAOHgC.tS3N.8OG9b5vIDq7qtTR8sVeygy
X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on novalink.us
X-Rslight-Posting-User: 0d6d33dbe0e2e1ff58b82acfc1a8a32ac3b1cb72
 by: minforth - Tue, 21 Nov 2023 08:30 UTC

Peter Wiehe wrote:
> How can I get GForth to compile? Or can it only interprete? If GForth
> can't, is there a Forth compiler for Linux?

Anton Ertl answered the main question.

Side notes only:

The kernel of most Forth systems is compiled of course
(assembler or C) and offers extension by user words. However high-level
words (eg between : and ;) are often translated to token/bitcode sequences
that are interpreted, but run fast.

IOW the choice of a Forth system depends more on what you want to do with it.
Programming small MCU devices? Desktop scripting? Your own experimental
toolbox for testing algorithms in assembler or C?

If you are more familiar with C you could also try MinForth from Sourceforge
(or pforth or Ficl because I am not selling anything). There is a Linux
and a Windows package. It is small but still provides all ANS/ISO Forth
word sets, and IMHO it is rather easy to understand.
Main feature: it can transpile Forth words to C.

Re: Newbie: Compile Forth on Linux

<nnd$7710c4b7$4f156620@ee941fc56ce1b6e7>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=25390&group=comp.lang.forth#25390

  copy link   Newsgroups: comp.lang.forth
Newsgroups: comp.lang.forth
Subject: Re: Newbie: Compile Forth on Linux
References: <20231120223306.51d4ba0b@peter-OptiPlex-7010> <50280d57-5bc4-461b-99ee-77f05d93a863n@googlegroups.com>
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
From: albert@cherry (none)
Originator: albert@cherry.(none) (albert)
Message-ID: <nnd$7710c4b7$4f156620@ee941fc56ce1b6e7>
Organization: KPN B.V.
Date: Tue, 21 Nov 2023 09:35:53 +0100
Path: i2pn2.org!i2pn.org!paganini.bofh.team!2.eu.feeder.erje.net!feeder.erje.net!newsreader4.netcologne.de!news.netcologne.de!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer03.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!feed.abavia.com!abe006.abavia.com!abp003.abavia.com!news.kpn.nl!not-for-mail
Lines: 58
Injection-Date: Tue, 21 Nov 2023 09:35:53 +0100
Injection-Info: news.kpn.nl; mail-complaints-to="abuse@kpn.com"
X-Received-Bytes: 3168
 by: none - Tue, 21 Nov 2023 08:35 UTC

In article <50280d57-5bc4-461b-99ee-77f05d93a863n@googlegroups.com>,
Brian Fox <brian.fox@brianfox.ca> wrote:
>On Monday, November 20, 2023 at 4:33:19 PM UTC-5, Peter Wiehe wrote:
>> Hello, a Forth newbie here!
>>
>> I read the newsgroup's FAQ and the gforth manual, but have still some
>> questions.
>>
>> How can I get GForth to compile? Or can it only interprete? If GForth
>> can't, is there a Forth compiler for Linux?
>>
>> Kindregards
>> Peter Wiehe
>
>To further expand on this question, it sounds like your are looking for a way to compile Forth to standalone executable program.
>GForth and most Forth systems are more like LISP in that they are image based. You compile your code into the image.
>The entire image can be saved and run as an application on many systems but your are bringing along lots of extra stuff.
>(although in some cases it is still less than some libraries in other languages.
>To do what I think you are looking for, you may be able to use the GForth cross-compiler but I have never used it.
>
>https://gforth.org/manual/Cross-Compiler.html

I regret that even knowledgeable persons like yourself are not aware of the
existance of lina despite my ongoing campaign since the year 2003 on this
newsgroup.

To rub it in
---------------------------------------------------------------
~/PROJECT/ciforths/ciforth: cat >hello.frt
: rome ." we gaan naar Rome" CR ;
~/PROJECT/ciforths/ciforth:
~/PROJECT/ciforths/ciforth: lina -c hello.frt
~/PROJECT/ciforths/ciforth: hello
we gaan naar Rome
~/PROJECT/ciforths/ciforth: objdump -x hello

hello: file format elf64-x86-64
hello
architecture: i386:x86-64, flags 0x00000102:
EXEC_P, D_PAGED
start address 0x0000000000400078

Program Header:
LOAD off 0x0000000000000078 vaddr 0x0000000000400078 paddr 0x0000000000400078 align 2**12
filesz 0x000000000000fd88 memsz 0x0000000004004000 flags rwx

Sections:
Idx Name Size VMA LMA File off Algn
SYMBOL TABLE:
no symbols

---------------------------------------------------------------
--
Don't praise the day before the evening. One swallow doesn't make spring.
You must not say "hey" before you have crossed the bridge. Don't sell the
hide of the bear until you shot it. Better one bird in the hand than ten in
the air. First gain is a cat spinning. - the Wise from Antrim -

Re: Newbie: Compile Forth on Linux

<20231121203956.538b2b29@peter-OptiPlex-7010>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=25393&group=comp.lang.forth#25393

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!tr1.eu1.usenetexpress.com!feeder.usenetexpress.com!tr2.iad1.usenetexpress.com!69.80.99.23.MISMATCH!Xl.tags.giganews.com!local-2.nntp.ord.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Tue, 21 Nov 2023 19:39:31 +0000
Date: Tue, 21 Nov 2023 20:39:56 +0100
From: info@pwiehe.de (Peter Wiehe)
Newsgroups: comp.lang.forth
Subject: Re: Newbie: Compile Forth on Linux
Message-ID: <20231121203956.538b2b29@peter-OptiPlex-7010>
References: <20231120223306.51d4ba0b@peter-OptiPlex-7010> <2023Nov20.233517@mips.complang.tuwien.ac.at>
X-Newsreader: Claws Mail 4.0.0 (GTK+ 3.24.33; x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Lines: 24
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-8wRC2jb4hdk7Z5LZpmVOUmMoVXvYauLY/hlV7WYwty8ga7dkLa7Kb1xJAcItni3GD3NYIeu4bBRefyQ!lWOPiDTUDzyW3GcP1E4G+gaOHSTAbVyfvFwPgc0L8dUgUDnGOKW0uJ0H0KChG7xOLmyQ0ic=
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Received-Bytes: 2051
 by: Peter Wiehe - Tue, 21 Nov 2023 19:39 UTC

Thanks for all the answers, they were really helpful.

Sorry that my question was unclear. I didn't mean compiling the Forth
interpreter to an executable, but I meant compiling my little
programwritten in Forth to a binary.

I will check ciforth, lina etc. And yes, my background so far is C.

I have another question which seems to be related because the error
message seems to imply that:

I get this error in GForth on Linux:

-----------------
Interpreting a compile-only word
>>>begin<<< game_loop game_end until
-----------------

So "begin" is not suitable for interpreting? Seems strange to me. Or
what is the reason why this code produces an error message?

Kind regards
Peter Wiehe

Re: Newbie: Compile Forth on Linux

<seGcnSjEDrYXk8D4nZ2dnZfqnPWdnZ2d@earthlink.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=25394&group=comp.lang.forth#25394

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!border-2.nntp.ord.giganews.com!nntp.giganews.com!Xl.tags.giganews.com!local-1.nntp.ord.giganews.com!nntp.earthlink.com!news.earthlink.com.POSTED!not-for-mail
NNTP-Posting-Date: Tue, 21 Nov 2023 20:09:46 +0000
Date: Tue, 21 Nov 2023 14:09:46 -0600
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
Thunderbird/102.15.1
From: david.schultz@earthlink.net (David Schultz)
Subject: Re: Newbie: Compile Forth on Linux
Newsgroups: comp.lang.forth
References: <20231120223306.51d4ba0b@peter-OptiPlex-7010>
<2023Nov20.233517@mips.complang.tuwien.ac.at>
<20231121203956.538b2b29@peter-OptiPlex-7010>
Content-Language: en-US
In-Reply-To: <20231121203956.538b2b29@peter-OptiPlex-7010>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Message-ID: <seGcnSjEDrYXk8D4nZ2dnZfqnPWdnZ2d@earthlink.com>
Lines: 36
X-Usenet-Provider: http://www.giganews.com
NNTP-Posting-Host: 108.194.108.127
X-Trace: sv3-ZPv8sZivzjeMwkJcJqoIPDZWiulFjwJTUs6UXAks1g5i/SmMId/508YVB0GqPYgXqUSy0zThsipsgpd!jDOgdkPUtq0frCdNFZFGSB0d67VvI3xPqgb0GBf58UlaTIC0Q1Ox40DFrS2VrLeMFrx38g8B+efS!uZSrGyIYaSzVa2Eg0qbvF3XN0jnedPFZaZR6kbBoYvM=
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
 by: David Schultz - Tue, 21 Nov 2023 20:09 UTC

On 11/21/23 1:39 PM, Peter Wiehe wrote:
> -----------------
> Interpreting a compile-only word
>>>> begin<<< game_loop game_end until
> -----------------
>
> So "begin" is not suitable for interpreting? Seems strange to me. Or
> what is the reason why this code produces an error message?
>
> Kind regards
> Peter Wiehe
>

This seems obvious to an old timer like me that bought a copy of R.G.
Loeliger's book when it came out:

https://www.amazon.com/Threaded-Interpretive-Languages-Design-Implementation/dp/007038360X

BEGIN marks the current position within a word that is being compiled.
It does that by pushing the value of HERE on the stack. Some systems,
like fig-FORTH, would include another tag value on the stack used for
compiler security. When a word intended to close that loop was executed,
it would check for that tag. If it matched what it wanted, it would
compile a branch back to the location left on the stack.

So obviously completely useless while interpreting.

I find Forth very fun to work with mostly because it makes you break
things into small functions. Which are easy to write and test. With
complicated functions keeping track of what is one the stack gets to be
a pain.

--
http://davesrocketworks.com
David Schultz

Re: Newbie: Compile Forth on Linux

<2023Nov21.223252@mips.complang.tuwien.ac.at>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=25395&group=comp.lang.forth#25395

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: anton@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups: comp.lang.forth
Subject: Re: Newbie: Compile Forth on Linux
Date: Tue, 21 Nov 2023 21:32:52 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 36
Message-ID: <2023Nov21.223252@mips.complang.tuwien.ac.at>
References: <20231120223306.51d4ba0b@peter-OptiPlex-7010> <2023Nov20.233517@mips.complang.tuwien.ac.at> <20231121203956.538b2b29@peter-OptiPlex-7010>
Injection-Info: dont-email.me; posting-host="0289527201a80d15db8a912d537c3928";
logging-data="1061028"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19Hzcjo1vLvkBhpj8rh/jq/"
Cancel-Lock: sha1:LFfC83ojldKKcTNw06Vq/VWJLwA=
X-newsreader: xrn 10.11
 by: Anton Ertl - Tue, 21 Nov 2023 21:32 UTC

Peter Wiehe <info@pwiehe.de> writes:
>I get this error in GForth on Linux:
>
>-----------------
>Interpreting a compile-only word
>>>>begin<<< game_loop game_end until
>-----------------
>
>So "begin" is not suitable for interpreting? Seems strange to me. Or
>what is the reason why this code produces an error message?

BEGIN is a control-flow word, and control structures are implemented
by compiling unconditional or conditional branches; that only works
while compiling code inside colon definitions. Also, this is not just
an implementation choice, BEGIN leaves something on the control-flow
stack (which is the same as the data stack on Gforth and most other
systems) during compilation which is then consumed by the UNTIL in
this example. This works because the data stack is otherwise mostly
unused when compiling words.

A number of people have found the limitation of BEGIN etc. to colon
definitions inconvenient, and have implemented various forms of
interpreted control structures (e.g., by switching to compile state
and temporarily compiling the code after the BEGIN).

However, all of the approaches I have seen have some other limitation,
so we did not implement any such approach in Gforth, except that there
is, e.g., [begin] ... [until], which uses a completely different
mechanism.

- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: https://forth-standard.org/
EuroForth 2023: https://euro.theforth.net/2023

Re: Newbie: Compile Forth on Linux

<ujjjgi$11jmp$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=25396&group=comp.lang.forth#25396

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: dxforth@gmail.com (dxf)
Newsgroups: comp.lang.forth
Subject: Re: Newbie: Compile Forth on Linux
Date: Wed, 22 Nov 2023 11:54:43 +1100
Organization: A noiseless patient Spider
Lines: 18
Message-ID: <ujjjgi$11jmp$1@dont-email.me>
References: <20231120223306.51d4ba0b@peter-OptiPlex-7010>
<2023Nov20.233517@mips.complang.tuwien.ac.at>
<20231121203956.538b2b29@peter-OptiPlex-7010>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Injection-Date: Wed, 22 Nov 2023 00:54:42 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="e14dd0b9b444f8bb8850fe4a26ab97bd";
logging-data="1101529"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19uzjd7+8JOi9zRuW/P73NP"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:ySSUTVgUxoBVkLaKuqtraKx6IiY=
In-Reply-To: <20231121203956.538b2b29@peter-OptiPlex-7010>
Content-Language: en-GB
 by: dxf - Wed, 22 Nov 2023 00:54 UTC

On 22/11/2023 6:39 am, Peter Wiehe wrote:
> Thanks for all the answers, they were really helpful.
>
> Sorry that my question was unclear. I didn't mean compiling the Forth
> interpreter to an executable, but I meant compiling my little
> programwritten in Forth to a binary.

That's still somewhat unclear - to me at least.

One may call forth an incremental compiler with the user controlling
the process. It implies two states - interpreting and compiling - and
the ability to enter/exit each. Once the application (or parts thereof)
is compiled the user can interpret (execute) it. Alternatively complete
applications may be 'turnkeyed'. The latter involves disabling 'the
forth interpreter' and saving the image as a binary executable. How
it's done varies from forth to forth and not necessarily every forth
has the option.

Re: Newbie: Compile Forth on Linux

<nnd$238eeb28$2d943999@d1d6e1ecd9eb59ba>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=25397&group=comp.lang.forth#25397

  copy link   Newsgroups: comp.lang.forth
Newsgroups: comp.lang.forth
References: <20231120223306.51d4ba0b@peter-OptiPlex-7010> <2023Nov20.233517@mips.complang.tuwien.ac.at> <20231121203956.538b2b29@peter-OptiPlex-7010>
Subject: Re: Newbie: Compile Forth on Linux
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
From: albert@cherry (none)
Originator: albert@cherry.(none) (albert)
Message-ID: <nnd$238eeb28$2d943999@d1d6e1ecd9eb59ba>
Organization: KPN B.V.
Date: Wed, 22 Nov 2023 10:50:37 +0100
Path: i2pn2.org!i2pn.org!news.chmurka.net!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!feed.abavia.com!abe006.abavia.com!abp001.abavia.com!news.kpn.nl!not-for-mail
Lines: 77
Injection-Date: Wed, 22 Nov 2023 10:50:37 +0100
Injection-Info: news.kpn.nl; mail-complaints-to="abuse@kpn.com"
 by: none - Wed, 22 Nov 2023 09:50 UTC

In article <20231121203956.538b2b29@peter-OptiPlex-7010>,
Peter Wiehe <info@pwiehe.de> wrote:
>Thanks for all the answers, they were really helpful.
>
>Sorry that my question was unclear. I didn't mean compiling the Forth
>interpreter to an executable, but I meant compiling my little
>programwritten in Forth to a binary.
>
>I will check ciforth, lina etc. And yes, my background so far is C.
>
>I have another question which seems to be related because the error
>message seems to imply that:
>
>I get this error in GForth on Linux:
>
>-----------------
>Interpreting a compile-only word
>>>>begin<<< game_loop game_end until
>-----------------
>
>So "begin" is not suitable for interpreting? Seems strange to me. Or
>what is the reason why this code produces an error message?
>
>Kind regards
>Peter Wiehe
>

It is easy to add. Available after
WANT -scripting-
in ciforth.
I have it in my electives screen, routinely loaded in
program development.

( NEW-IF -scripting- ) \ AvdH B2sep21
1 : NEW-IF ; \ Get rid!
2 "T]" WANTED ":2" WANTED
3 :2 IF T] POSTPONE IF ; IMMEDIATE
4 :2 DO T] POSTPONE DO ; IMMEDIATE
5 :2 ?DO T] POSTPONE ?DO ; IMMEDIATE
6 :2 BEGIN T] POSTPONE BEGIN ; IMMEDIATE
7 :2 THEN POSTPONE THEN POSTPONE T[ ; IMMEDIATE
8 :2 LOOP POSTPONE LOOP POSTPONE T[ ; IMMEDIATE
9 :2 +LOOP POSTPONE +LOOP POSTPONE T[ ; IMMEDIATE
10 :2 REPEAT POSTPONE REPEAT POSTPONE T[ ; IMMEDIATE
11 :2 UNTIL POSTPONE UNTIL POSTPONE T[ ; IMMEDIATE
12 :2 AGAIN POSTPONE AGAIN POSTPONE T[ ; IMMEDIATE
13
14 \ Last scripting block!
15 CREATE -scripting-

\ While compiling, T[ just throws away the state pushed by T].
\ Interpreting:
\ Start compiling at temporary place : return START and STATE.
: T] STATE @ 0= IF SWAP-DP HERE THEN STATE @ ] ;
\ Execute code at START dropping STATE, restore dictionary.
: T[ 0= IF POSTPONE (;) SWAP-DP POSTPONE [ >R THEN ; IMMEDIATE

1. You can replace the :2 by a : . It is used to repress the
redefined messages.
2. SWAP-DP swaps HERE to a a temporary buffer.
3. (;) --> EXIT
HERE .. >R --> :NONAME EXECUTE

That is system dependant, but easy enough.
If you want it, it is just an easy fix.

It highlights the usefulness of loadable libraries,
if you don't want it, you can ignore it and
it doesn't show up in WORDS.

Groetjes Albert
--
Don't praise the day before the evening. One swallow doesn't make spring.
You must not say "hey" before you have crossed the bridge. Don't sell the
hide of the bear until you shot it. Better one bird in the hand than ten in
the air. First gain is a cat spinning. - the Wise from Antrim -

Re: Newbie: Compile Forth on Linux

<08341695-20d8-4eac-8a26-43a58e573e2an@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=25398&group=comp.lang.forth#25398

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:620a:1a24:b0:77d:4a21:d7aa with SMTP id bk36-20020a05620a1a2400b0077d4a21d7aamr48794qkb.6.1700646660086;
Wed, 22 Nov 2023 01:51:00 -0800 (PST)
X-Received: by 2002:ac8:5b96:0:b0:41b:8268:d2c3 with SMTP id
a22-20020ac85b96000000b0041b8268d2c3mr51147qta.10.1700646659882; Wed, 22 Nov
2023 01:50:59 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!1.us.feeder.erje.net!feeder.erje.net!border-1.nntp.ord.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Wed, 22 Nov 2023 01:50:59 -0800 (PST)
In-Reply-To: <seGcnSjEDrYXk8D4nZ2dnZfqnPWdnZ2d@earthlink.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2003:f7:1f1e:196d:545e:9a12:96cf:2eb8;
posting-account=AqNUYgoAAADmkK2pN-RKms8sww57W0Iw
NNTP-Posting-Host: 2003:f7:1f1e:196d:545e:9a12:96cf:2eb8
References: <20231120223306.51d4ba0b@peter-OptiPlex-7010> <2023Nov20.233517@mips.complang.tuwien.ac.at>
<20231121203956.538b2b29@peter-OptiPlex-7010> <seGcnSjEDrYXk8D4nZ2dnZfqnPWdnZ2d@earthlink.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <08341695-20d8-4eac-8a26-43a58e573e2an@googlegroups.com>
Subject: Re: Newbie: Compile Forth on Linux
From: minforth@arcor.de (minforth)
Injection-Date: Wed, 22 Nov 2023 09:51:00 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 10
 by: minforth - Wed, 22 Nov 2023 09:50 UTC

David Schultz schrieb am Dienstag, 21. November 2023 um 21:10:00 UTC+1:
> I find Forth very fun to work with mostly because it makes you break
> things into small functions. Which are easy to write and test. With
> complicated functions keeping track of what is one the stack gets to be
> a pain.

If the stack depth becomes too unwieldy, I use locals. Programming and
debugging is then also faster.

But in my practical code there is actually relatively little stack movement.
It's more like a sequence of calls to individual forth or application words.

Re: Newbie: Compile Forth on Linux

<nnd$01d47163$25d45fa0@9ac54eb8316608ba>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=25399&group=comp.lang.forth#25399

  copy link   Newsgroups: comp.lang.forth
Newsgroups: comp.lang.forth
Subject: Re: Newbie: Compile Forth on Linux
References: <20231120223306.51d4ba0b@peter-OptiPlex-7010> <2023Nov20.233517@mips.complang.tuwien.ac.at> <20231121203956.538b2b29@peter-OptiPlex-7010>
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
From: albert@cherry (none)
Originator: albert@cherry.(none) (albert)
Message-ID: <nnd$01d47163$25d45fa0@9ac54eb8316608ba>
Organization: KPN B.V.
Date: Wed, 22 Nov 2023 10:56:36 +0100
Path: i2pn2.org!i2pn.org!usenet.goja.nl.eu.org!2.eu.feeder.erje.net!feeder.erje.net!feeder1.feed.usenet.farm!feed.usenet.farm!peer03.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!feed.abavia.com!abe006.abavia.com!abp002.abavia.com!news.kpn.nl!not-for-mail
Lines: 28
Injection-Date: Wed, 22 Nov 2023 10:56:36 +0100
Injection-Info: news.kpn.nl; mail-complaints-to="abuse@kpn.com"
X-Received-Bytes: 1765
 by: none - Wed, 22 Nov 2023 09:56 UTC

In article <20231121203956.538b2b29@peter-OptiPlex-7010>,
Peter Wiehe <info@pwiehe.de> wrote:
>Thanks for all the answers, they were really helpful.
>
>Sorry that my question was unclear. I didn't mean compiling the Forth
>interpreter to an executable, but I meant compiling my little
>programwritten in Forth to a binary.

Compiling Forth is so fast that it doesn't makes sense to compile
to "object files". In fact they are popular mainly for companies
to hide the source, and be able to sell a facility separate
from a utility program.

Compiling Forth to ELF executables OTOH makes sense, because the user
doesn't have to install a run time system like python, perl, lisp and,
most of the times, Forth.

>Kind regards
>Peter Wiehe
>

Groetjes Albert
--
Don't praise the day before the evening. One swallow doesn't make spring.
You must not say "hey" before you have crossed the bridge. Don't sell the
hide of the bear until you shot it. Better one bird in the hand than ten in
the air. First gain is a cat spinning. - the Wise from Antrim -

Re: Newbie: Compile Forth on Linux

<ujkloe$19ncp$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=25400&group=comp.lang.forth#25400

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: dxforth@gmail.com (dxf)
Newsgroups: comp.lang.forth
Subject: Re: Newbie: Compile Forth on Linux
Date: Wed, 22 Nov 2023 21:39:11 +1100
Organization: A noiseless patient Spider
Lines: 16
Message-ID: <ujkloe$19ncp$1@dont-email.me>
References: <20231120223306.51d4ba0b@peter-OptiPlex-7010>
<2023Nov20.233517@mips.complang.tuwien.ac.at>
<20231121203956.538b2b29@peter-OptiPlex-7010>
<seGcnSjEDrYXk8D4nZ2dnZfqnPWdnZ2d@earthlink.com>
<08341695-20d8-4eac-8a26-43a58e573e2an@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Injection-Date: Wed, 22 Nov 2023 10:39:11 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="e14dd0b9b444f8bb8850fe4a26ab97bd";
logging-data="1367449"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19B0+os6fG51+KY0lWWqAVO"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:YkNiEDswJIESK8TqZBkTboaeQAs=
Content-Language: en-GB
In-Reply-To: <08341695-20d8-4eac-8a26-43a58e573e2an@googlegroups.com>
 by: dxf - Wed, 22 Nov 2023 10:39 UTC

On 22/11/2023 8:50 pm, minforth wrote:
> David Schultz schrieb am Dienstag, 21. November 2023 um 21:10:00 UTC+1:
>> I find Forth very fun to work with mostly because it makes you break
>> things into small functions. Which are easy to write and test. With
>> complicated functions keeping track of what is one the stack gets to be
>> a pain.
>
> If the stack depth becomes too unwieldy, I use locals.

Locals don't eliminate unwieldy - they only make it manageable.

> Programming and debugging is then also faster.

For C programmers perhaps. A forth programmer would ask what's
wrong about this code that it has become unwieldy.

Re: Newbie: Compile Forth on Linux

<4fb7c991-46ce-4475-b309-d61644d57867n@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=25401&group=comp.lang.forth#25401

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:ad4:4bab:0:b0:66f:b7d6:d35d with SMTP id i11-20020ad44bab000000b0066fb7d6d35dmr148677qvw.4.1700655381035;
Wed, 22 Nov 2023 04:16:21 -0800 (PST)
X-Received: by 2002:ac8:40c4:0:b0:417:a066:8b62 with SMTP id
f4-20020ac840c4000000b00417a0668b62mr43134qtm.7.1700655380832; Wed, 22 Nov
2023 04:16:20 -0800 (PST)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Wed, 22 Nov 2023 04:16:20 -0800 (PST)
In-Reply-To: <ujkloe$19ncp$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2003:f7:1f1e:19f5:f477:ee93:a9ef:252d;
posting-account=AqNUYgoAAADmkK2pN-RKms8sww57W0Iw
NNTP-Posting-Host: 2003:f7:1f1e:19f5:f477:ee93:a9ef:252d
References: <20231120223306.51d4ba0b@peter-OptiPlex-7010> <2023Nov20.233517@mips.complang.tuwien.ac.at>
<20231121203956.538b2b29@peter-OptiPlex-7010> <seGcnSjEDrYXk8D4nZ2dnZfqnPWdnZ2d@earthlink.com>
<08341695-20d8-4eac-8a26-43a58e573e2an@googlegroups.com> <ujkloe$19ncp$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <4fb7c991-46ce-4475-b309-d61644d57867n@googlegroups.com>
Subject: Re: Newbie: Compile Forth on Linux
From: minforth@arcor.de (minforth)
Injection-Date: Wed, 22 Nov 2023 12:16:21 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 2234
 by: minforth - Wed, 22 Nov 2023 12:16 UTC

dxf schrieb am Mittwoch, 22. November 2023 um 11:39:15 UTC+1:
> On 22/11/2023 8:50 pm, minforth wrote:
> > David Schultz schrieb am Dienstag, 21. November 2023 um 21:10:00 UTC+1:
> >> I find Forth very fun to work with mostly because it makes you break
> >> things into small functions. Which are easy to write and test. With
> >> complicated functions keeping track of what is one the stack gets to be
> >> a pain.
> >
> > If the stack depth becomes too unwieldy, I use locals.
> Locals don't eliminate unwieldy - they only make it manageable.
> > Programming and debugging is then also faster.
> For C programmers perhaps. A forth programmer would ask what's
> wrong about this code that it has become unwieldy.

I know it's always the same red bandanna called locals you're barking at.
I don't want to see you stack juggling complex vectors. :o)

Re: Newbie: Compile Forth on Linux

<ujm91d$1i5k9$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=25402&group=comp.lang.forth#25402

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: dxforth@gmail.com (dxf)
Newsgroups: comp.lang.forth
Subject: Re: Newbie: Compile Forth on Linux
Date: Thu, 23 Nov 2023 12:14:22 +1100
Organization: A noiseless patient Spider
Lines: 24
Message-ID: <ujm91d$1i5k9$1@dont-email.me>
References: <20231120223306.51d4ba0b@peter-OptiPlex-7010>
<2023Nov20.233517@mips.complang.tuwien.ac.at>
<20231121203956.538b2b29@peter-OptiPlex-7010>
<seGcnSjEDrYXk8D4nZ2dnZfqnPWdnZ2d@earthlink.com>
<08341695-20d8-4eac-8a26-43a58e573e2an@googlegroups.com>
<ujkloe$19ncp$1@dont-email.me>
<4fb7c991-46ce-4475-b309-d61644d57867n@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 23 Nov 2023 01:14:21 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="280ee3177675030e958219c877cc4c5e";
logging-data="1644169"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19P2OGkVD9B0gidfBOMW7cX"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:5ufeaXhicG0ZUY/x/s4btM00PdM=
Content-Language: en-GB
In-Reply-To: <4fb7c991-46ce-4475-b309-d61644d57867n@googlegroups.com>
 by: dxf - Thu, 23 Nov 2023 01:14 UTC

On 22/11/2023 11:16 pm, minforth wrote:
> dxf schrieb am Mittwoch, 22. November 2023 um 11:39:15 UTC+1:
>> On 22/11/2023 8:50 pm, minforth wrote:
>>> David Schultz schrieb am Dienstag, 21. November 2023 um 21:10:00 UTC+1:
>>>> I find Forth very fun to work with mostly because it makes you break
>>>> things into small functions. Which are easy to write and test. With
>>>> complicated functions keeping track of what is one the stack gets to be
>>>> a pain.
>>>
>>> If the stack depth becomes too unwieldy, I use locals.
>> Locals don't eliminate unwieldy - they only make it manageable.
>>> Programming and debugging is then also faster.
>> For C programmers perhaps. A forth programmer would ask what's
>> wrong about this code that it has become unwieldy.
>
> I know it's always the same red bandanna called locals you're barking at.
> I don't want to see you stack juggling complex vectors. :o)

I'm not ready to believe that without locals forth would be a complete
failure. So yes, I will question things I've carried over from other
languages.

Re: Newbie: Compile Forth on Linux

<7fbe0064-46fa-489e-b531-f82785596801n@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=25403&group=comp.lang.forth#25403

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:ac8:5742:0:b0:41e:3eb8:d4b9 with SMTP id 2-20020ac85742000000b0041e3eb8d4b9mr164256qtx.11.1700734917725;
Thu, 23 Nov 2023 02:21:57 -0800 (PST)
X-Received: by 2002:a05:620a:6544:b0:770:7460:c3f6 with SMTP id
qc4-20020a05620a654400b007707460c3f6mr104179qkn.6.1700734917414; Thu, 23 Nov
2023 02:21:57 -0800 (PST)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Thu, 23 Nov 2023 02:21:57 -0800 (PST)
In-Reply-To: <20231120223306.51d4ba0b@peter-OptiPlex-7010>
Injection-Info: google-groups.googlegroups.com; posting-host=90.37.20.14; posting-account=xbxuywoAAAASFWsQBmiz40gnxDBWDrxx
NNTP-Posting-Host: 90.37.20.14
References: <20231120223306.51d4ba0b@peter-OptiPlex-7010>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <7fbe0064-46fa-489e-b531-f82785596801n@googlegroups.com>
Subject: Re: Newbie: Compile Forth on Linux
From: mpetremann93m@gmail.com (Marc Petremann)
Injection-Date: Thu, 23 Nov 2023 10:21:57 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 1651
 by: Marc Petremann - Thu, 23 Nov 2023 10:21 UTC

Le lundi 20 novembre 2023 à 22:33:19 UTC+1, Peter Wiehe a écrit :
> Hello, a Forth newbie here!
>
> I read the newsgroup's FAQ and the gforth manual, but have still some
> questions.
>
> How can I get GForth to compile? Or can it only interprete? If GForth
> can't, is there a Forth compiler for Linux?
>
> Kindregards
> Peter Wiehe
Hi,
You can also use eForth Linux: https://github.com/MPETREMANN11/eForth-LINUX/tree/main/__documentation/EN

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor