Problem while compiling with a german language extension

Hi folks,

I’m trying to compile a very basic example file with TADS 3.1.3 on my iMac. What is special, is that I’m using a language extension for German (G-TADS). Therefore I downloaded the extension from Github and put the necessary file in the folder usr/local/share/frobtads/tads3/lib/adv3/de_de.

When I try to compile my story I get this:

TADS Compiler 3.1.3  Copyright 1999, 2012 Michael J. Roberts
error: module "=.t" the has same name as an existing module
error: module "=.t" the has same name as an existing module
error: module "=.t" the has same name as an existing module
error: module "=.t" the has same name as an existing module
error: module "=.t" the has same name as an existing module
error: module "=.t" the has same name as an existing module
error: module ";.t" the has same name as an existing module
error: module ";.t" the has same name as an existing module
error: module ";.t" the has same name as an existing module
Errors:   9
Warnings: 0

t-file

#charset "iso-8859-1"
#include <adv3.h>
#include <de_de.h>

gameMain: GameMainDef
initialPlayerChar = me
;

versionInfo: GameID
name = 'Mein erstes Spiel'
byline = 'by Jens'
authorEmail = 'test <test@mtest.de>'
desc = 'G-Tads Beispiel. '
version = '1'
IFID = 'b8563851-6257-77c3-04ee-278ceaeb48ac'
;

firstRoom: Room 'Startraum'
"Der Startraum. Äußerlich sehr schön. Nichts in grün, aber keine Soße."
;
+me: Actor
;

t3m-file

-D LANGUAGE=de_de
-D MESSAGESTYLE=neu
-Fy obj -Fo obj
-o MyGame.t3
-lib system
-lib adv3/adv3
-source G-MyGame

I tried the same files on my Windows Bootcamp partition with the TADS Workbench and I can compile it without any problems.

Any ideas?

Jens

I cant reproduce your problem, everything works fine for me on Linux, but it should be similar. I have downloaded github.com/mikawa/G-TADS/archive/master.zip and unpacked it (only those files needed) to the frobtads path (I have frobs in /usr and not in /usr/local prefix), therefore:

root@localhost de_de # pwd /usr/share/games/frobtads/tads3/lib/adv3/de_de root@localhost de_de # ls -la celkem 950 drwxr-xr-x 2 root root 184 30. kvě 07.35 . drwxr-x--- 4 root games 1208 30. kvě 07.35 .. -rw-r--r-- 1 root root 10598 24. úno 2017 de_de.h -rw-r--r-- 1 root root 676377 24. úno 2017 de_de.t -rw-r--r-- 1 root root 235 24. úno 2017 de_de.tl -rw-r--r-- 1 root root 50038 24. úno 2017 instruct.t -rw-r--r-- 1 root root 218309 24. úno 2017 msg_neu.t
Please check, that your de_de directory is beside en_us directory of actual frob tads location, it can be in /usr/local/…, just check, that English definitions sits right next to Deutsch.

Then I’ve made a testing game, I’ve used your supplied makefile and saved it to Makefile.t3m (please note extension and first letter capitalization) and according to makefile I’ve put your definition of game into G-MyGame.t file (again, please note the exact filename). Then I’ve created obj subdirectory, so the layout looks like this:

tomasb@localhost ~/tads/test $ ls -la
celkem 8
drwxr-xr-x 3 tomasb users  136 30. kvě 07.45 .
drwxr-xr-x 6 tomasb users  408 13. lis  2015 ..
-rw-r--r-- 1 tomasb tomasb 421 30. kvě 07.37 G-MyGame.t
-rw-r--r-- 1 tomasb tomasb 111 30. kvě 07.36 Makefile.t3m
drwxr-xr-x 2 tomasb tomasb  48 30. kvě 07.45 obj

And everything works fine:

[code]tomasb@localhost ~/tads/test $ t3make
TADS Compiler 3.1.3 Copyright 1999, 2012 Michael J. Roberts
Files to build: 88
symbol_export /usr/share/games/frobtads/tads3/lib/_main.t -> obj/_main.t3s
symbol_export /usr/share/games/frobtads/tads3/lib/file.t -> obj/file.t3s
…shortened…
symbol_export /usr/share/games/frobtads/tads3/lib/adv3/de_de/de_de.t -> obj/de_de.t3s
symbol_export /usr/share/games/frobtads/tads3/lib/adv3/de_de/instruct.t -> obj/instruct.t3s
symbol_export /usr/share/games/frobtads/tads3/lib/adv3/de_de/msg_neu.t -> obj/msg_neu.t3s
symbol_export G-MyGame.t -> obj/G-MyGame.t3s
compile /usr/share/games/frobtads/tads3/lib/_main.t -> obj/_main.t3o
…shortened…
compile /usr/share/games/frobtads/tads3/lib/adv3/de_de/de_de.t -> obj/de_de.t3o
compile /usr/share/games/frobtads/tads3/lib/adv3/de_de/instruct.t -> obj/instruct.t3o
compile /usr/share/games/frobtads/tads3/lib/adv3/de_de/msg_neu.t -> obj/msg_neu.t3o
compile G-MyGame.t -> obj/G-MyGame.t3o
link -> MyGame.t3p
preinit -> MyGame.t3

(T3VM) Memory blocks still in use:

Total blocks in use: 0
[/code]

For your specific error message, i seems somehow tads thinks it should compile a file whose name is =.t, which is nonsense, but I can’t figure out the cause of this problem. In case you can’t make it work, please post more details about filenames and locations.

Oh boy, the solution was quite simple (but you showed me the right way). When I used t3make I used the *.t file and not the t3m file to compile.
Shame on me, thanks to you.

Jens

BTW: Another problem I ran into, is that all the German umlaut and sharp S are not displayed correctly when I run the story. You don’t have a solution for that at hand as well?

You have decared iso-8859-1 charset at the top of the source file. Are you sure you actually write sharp S in latin 1? Isn’t you editor switched to utf-8 for example? Make sure your editor settings and charset declaration at the top match.

And what interpreter you are testing games in? QTads has full unicode support, but frobtads can’t display unicode chars properly on interactive terminal.

You can name your makefile “Makefile.t3m” (the uppercase “M” is important.) That way, you don’t even have to specify a file anymore. You can just run “t3make” and it will automatically use “Makefile.t3m” if it exists.

I recommend QTads for playing games. Frob uses the console text-mode version of TADS, which doesn’t support Unicode.

Also, macOS uses UTF-8 Unicode. So as tomasb mentioned, unless you have configured your text editor to save files in ISO encoding, you should be using #charset “utf-8” in your source files.

Just a quick note on this: I use “makefile.t3m” (lowercase “m”) all the time and it works just fine.

Thanks for all you’re help. I’m off for a good start.

Jens