Upgrading gargoyle to use recent TADS sources.

I need to license my own frobtads sources differently at some point. But for now, you can just pretty much take and modify anything you want from sources that are either written by me, or have been contributed to me. That is everything inside the “src” directory. Whatever you take, you can relicense it under the GPL (that is Gargoyle’s main license.)

The sources inside the “tads2” and “tads3” directories are Mike Roberts’ code. You would need permission if you want to take something from there. He gave me permission to distribute them under the GPL for qtads, so you can take pretty much anything you want from the “tads2” and “tads3” directories of qtads.

This was an issue because new versions of Tads 3 moved a lot of the compiler into the interpreter, so that games can compile and run code at runtime (very nifty feature, btw). The runtime sources have been GPLed in the past through gargoyle and qtads. The compiler sources have not. Mike gave permission to GPL the part of the compiler that is now used at runtime, which is why it’s safe to take anything you need from qtads, as the whole of it is GPL.

But if there’s any confusion about anything and you’re not sure what you can take or not, either from frobtads or the official source packages, just send an email to Mike.

Great, thank you very much! This is exactly what I need. Most of the code I’m using is adapted from src/osportable.cc of FrobTADS.

Oh, that’s enlightening and makes sense in the broad context. These days I was looking at FrobTADS just as frob-the-terp and forgot about the compilers. A bit embarrasing given its t3make is the compiler I use (thanks!) for my TADS projects.

I’ll prepare the first patchset/branch for public review (not ready for merge and I guess broken for some platforms). I’m thinking going up just to 3.1.1 for now, because I think it’s the more problematic upgrade.

Then 2.5.16/3.1.2. Finally, let’s hope (I didn’t try yet) we can reach 2.5.17/3.1.3.

This is an awesome endeavour. I’m just bumping to show interest. :slight_smile:

I work on it a bit on weekends, so not fast paced until first alpha release. Then, feedback/code from interested developers may help to complete the task in shorter time.

Stay tuned.

You bet I’m staying tuned!

As you might have guessed, I lost momentum about this. Sorry.

Good news is that someone (Chris Spiegel) that I think knows a lot more than me did something (see around https://intfiction.org/t/multiple-options-for-advanced-ui-features/9844/9)

github.com/garglk/garglk/issues/203

I’ve got a more up-to-date branch here: github.com/cspiegel/garglk/tree … ds-upgrade

I consider this to be a private branch insofar as I may do some history rewriting, but anyone is of course free to look at it with that caveat in mind.

I’ve been held back a bit by the fact that I’m not really familiar with Windows or Mac builds; but working in parallel on a cmake branch has gotten me some experience with MinGW cross-builds. At the same time, I’ve got a volunteer to help with Mac testing, and a coworker has lent me his Macbook, so when I learn how to use that, I can start doing some testing myself.

I’ll try to get the branch whipped into shape soon, but in any case, I can state with almost complete certainty that it will be available in the next Gargoyle release, whenever that happens, because I consider an updated TADS interpreter to be essential to such a release.

Great, thank you so much for working on this! Will be great to be able to take the “use QTADS” warning off my games’ IFDB pages at last.

cas,
Your latest branch still doesn’t compile on Windows. I’m using the GCC v5.1.0 (from TDM32 MinGW Bundle) Here’s the full build log:

[spoiler]Microsoft Windows [Version 6.1.7601]
Copyright © 2009 Microsoft Corporation. All rights reserved.

C:>cd tdm-gcc-32

C:\TDM-GCC-32>mingwvars.bat

Setting up environment for using MinGW with GCC from C:\TDM-GCC-32.

C:\TDM-GCC-32>set JAM_TOOLSET=MINGW

C:\TDM-GCC-32>cd\

C:>cd garglk-203-tads-upgrade

C:\garglk-203-tads-upgrade>gargoyle_build.cmd
Building Gargoyle for Windows …
Compiler is GCC with Mingw

BUILD is RELEASE
…patience…
…found 1657 target(s)…
…updating 512 target(s)…
MkDir1 build
MkDir1 build\mingw.release
MkDir1 build\mingw.release\garglk
MkDir1 build\mingw.release\tads
MkDir1 build\mingw.release\babel
MkDir1 build\mingw.release\SDL_sound
MkDir1 build\mingw.release\advsys
MkDir1 build\mingw.release\agility
MkDir1 build\mingw.release\alan2
MkDir1 build\mingw.release\alan3
Cc build\mingw.release\garglk\main.o
Cc build\mingw.release\tads\argize.o
Cc build\mingw.release\babel\babel_handler.o
Cc build\mingw.release\SDL_sound\ogg.o
Cc build\mingw.release\advsys\advmsg.o
Cc build\mingw.release\agility\agtread.o
Cc build\mingw.release\alan2\arun.o
Cc build\mingw.release\alan3\alan.version.o
Archive build\mingw.release\garglk\libgarglkmain.a
Cc build\mingw.release\alan3\act.o
ar: creating build\mingw.release\garglk\libgarglkmain.a
Cc build\mingw.release\alan3\actor.o
Cc build\mingw.release\alan3\args.o
Cc build\mingw.release\alan3\arun.o
Cc build\mingw.release\alan3\attribute.o
Cc build\mingw.release\alan3\checkentry.o
Cc build\mingw.release\alan3\class.o
Cc build\mingw.release\alan3\current.o
Cc build\mingw.release\alan3\debug.o
Cc build\mingw.release\alan3\decode.o
Cc build\mingw.release\alan3\dictionary.o
Cc build\mingw.release\alan3\event.o
Cc build\mingw.release\alan3\exe.o
Cc build\mingw.release\alan3\glkio.o
Cc build\mingw.release\alan3\glkstart.o
Cc build\mingw.release\alan3\instance.o
Cc build\mingw.release\alan3\inter.o
Cc build\mingw.release\alan3\lists.o
Cc build\mingw.release\alan3\literal.o
Cc build\mingw.release\alan3\main.o
Cc build\mingw.release\alan3\memory.o
Cc build\mingw.release\alan3\msg.o
Cc build\mingw.release\alan3\options.o
Cc build\mingw.release\alan3\output.o
Cc build\mingw.release\alan3\params.o
Cc build\mingw.release\alan3\parse.o
Cc build\mingw.release\alan3\readline.o
Cc build\mingw.release\alan3\reverse.o
Cc build\mingw.release\alan3\rules.o
Cc build\mingw.release\alan3\save.o
Cc build\mingw.release\alan3\scan.o
Cc build\mingw.release\alan3\score.o
Cc build\mingw.release\alan3\set.o
Cc build\mingw.release\alan3\stack.o
Cc build\mingw.release\alan3\state.o
Cc build\mingw.release\alan3\syntax.o
Cc build\mingw.release\alan3\sysdep.o
Cc build\mingw.release\alan3\syserr.o
Cc build\mingw.release\alan3\term.o
Cc build\mingw.release\alan3\utils.o
Cc build\mingw.release\alan3\word.o
Cc build\mingw.release\alan3\compatibility.o
Cc build\mingw.release\alan3\AltInfo.o
Cc build\mingw.release\alan3\Container.o
Cc build\mingw.release\alan3\Location.o
Cc build\mingw.release\alan3\ParameterPosition.o
Cc build\mingw.release\alan3\StateStack.o
Cc build\mingw.release\alan2\main.o
Cc build\mingw.release\alan2\debug.o
Cc build\mingw.release\alan2\args.o
Cc build\mingw.release\alan2\exe.o
Cc build\mingw.release\alan2\inter.o
Cc build\mingw.release\alan2\parse.o
Cc build\mingw.release\alan2\rules.o
Cc build\mingw.release\alan2\stack.o
Cc build\mingw.release\alan2\decode.o
Cc build\mingw.release\alan2\term.o
Cc build\mingw.release\alan2\reverse.o
Cc build\mingw.release\alan2\readline.o
Cc build\mingw.release\alan2\params.o
Cc build\mingw.release\alan2\sysdep.o
Cc build\mingw.release\alan2\glkstart.o
Cc build\mingw.release\alan2\glkio.o
Cc build\mingw.release\alan2\alan.version.o
Cc build\mingw.release\agility\gamedata.o
Cc build\mingw.release\agility\util.o
Cc build\mingw.release\agility\agxfile.o
Cc build\mingw.release\agility\auxfile.o
Cc build\mingw.release\agility\filename.o
Cc build\mingw.release\agility\parser.o
Cc build\mingw.release\agility\exec.o
Cc build\mingw.release\agility\runverb.o
Cc build\mingw.release\agility\metacommand.o
Cc build\mingw.release\agility\savegame.o
Cc build\mingw.release\agility\debugcmd.o
Cc build\mingw.release\agility\agil.o
Cc build\mingw.release\agility\token.o
Cc build\mingw.release\agility\disassemble.o
Cc build\mingw.release\agility\object.o
Cc build\mingw.release\agility\interface.o
…on 100th target…
Cc build\mingw.release\agility\os_glk.o
Cc build\mingw.release\advsys\advtrm.o
Cc build\mingw.release\advsys\advprs.o
Cc build\mingw.release\advsys\advdbs.o
Cc build\mingw.release\advsys\advint.o
Cc build\mingw.release\advsys\advjunk.o
Cc build\mingw.release\advsys\advexe.o
Cc build\mingw.release\advsys\glkstart.o
Cc build\mingw.release\SDL_sound\smpeg.o
Cc build\mingw.release\SDL_sound\audio_convert.o
Cc build\mingw.release\SDL_sound\alt_audio_convert.o
Cc build\mingw.release\SDL_sound\extra_rwops.o
Cc build\mingw.release\SDL_sound\SDL_sound.o
Cc build\mingw.release\babel\ifiction.o
Cc build\mingw.release\babel\md5.o
Cc build\mingw.release\babel\misc.o
Cc build\mingw.release\babel\register.o
Cc build\mingw.release\babel\register_ifiction.o
Cc build\mingw.release\babel\adrift.o
Cc build\mingw.release\babel\advsys.o
Cc build\mingw.release\babel\agt.o
Cc build\mingw.release\babel\alan.o
SharedLink build\mingw.release\SDL_sound\SDL_sound.dll
Cc build\mingw.release\babel\blorb.o
Cc build\mingw.release\babel\executable.o
Cc build\mingw.release\babel\glulx.o
Cc build\mingw.release\babel\hugo.o
Cc build\mingw.release\babel\level9.o
Cc build\mingw.release\babel\magscrolls.o
Cc build\mingw.release\babel\tads.o
Cc build\mingw.release\babel\tads2.o
Cc build\mingw.release\babel\tads3.o
Cc build\mingw.release\babel\zcode.o
Cc build\mingw.release\tads\bif.o
Cc build\mingw.release\tads\bifgdum.o
Cc build\mingw.release\tads\cmap.o
Cc build\mingw.release\tads\cmd.o
Cc build\mingw.release\tads\dat.o
Cc build\mingw.release\tads\dbgtr.o
Cc build\mingw.release\tads\errmsg.o
Cc build\mingw.release\tads\execmd.o
Cc build\mingw.release\tads\fio.o
Cc build\mingw.release\tads\fioxor.o
Cc build\mingw.release\tads\getstr.o
Cc build\mingw.release\tads\ler.o
Cc build\mingw.release\tads\linfdum.o
Cc build\mingw.release\tads\lst.o
Cc build\mingw.release\tads\mch.o
Cc build\mingw.release\tads\mcm.o
Cc build\mingw.release\tads\mcs.o
Cc build\mingw.release\tads\obj.o
Cc build\mingw.release\tads\oem.o
Archive build\mingw.release\babel\babel_static.a
Cc build\mingw.release\tads\os0.o
Cc build\mingw.release\tads\oserr.o
ar: creating build\mingw.release\babel\babel_static.a
Cc build\mingw.release\tads\osifc.o
Cc build\mingw.release\tads\osnoui.o
Cc build\mingw.release\tads\osrestad.o
Cc build\mingw.release\tads\osstzprs.o
Cc build\mingw.release\tads\ostzposix.o
Cc build\mingw.release\tads\out.o
Cc build\mingw.release\tads\output.o
Cc build\mingw.release\tads\ply.o
tads\tads2\ostzposix.c: In function ‘os_get_timezone_info’:
tads\tads2\ostzposix.c:298:31: error: ‘const struct tm’ has no member named ‘tm_gmtoff’
info->dst_ofs = tm->tm_gmtoff;
^
tads\tads2\ostzposix.c:299:67: error: ‘const struct tm’ has no member named ‘tm_zone’
safe_strcpy(info->dst_abbr, sizeof(info->dst_abbr), tm->tm_zone);
^
tads\tads2\ostzposix.c:303:31: error: ‘const struct tm’ has no member named ‘tm_gmtoff’
info->std_ofs = tm->tm_gmtoff;
^
tads\tads2\ostzposix.c:304:67: error: ‘const struct tm’ has no member named ‘tm_zone’
safe_strcpy(info->std_abbr, sizeof(info->std_abbr), tm->tm_zone);
^

gcc -c -o build\mingw.release\tads\ostzposix.o -DGARGOYLE -DVMGLOB_STRUCT -DGLK_UNICODE -DGLK_TIMERS -DTC_TARGET_T3 -DRUNTIME -O2 -Itads\tads2 -Itads\tads3 -Itads -Itads -Itads\tads2 -Itad
arglk tads\tads2\ostzposix.c

…failed Cc build\mingw.release\tads\ostzposix.o …
Cc build\mingw.release\tads\qas.o
Cc build\mingw.release\tads\regex.o
Cc build\mingw.release\tads\run.o
Cc build\mingw.release\tads\runstat.o
Cc build\mingw.release\tads\suprun.o
Cc build\mingw.release\tads\trd.o
Cc build\mingw.release\tads\voc.o
Cc build\mingw.release\tads\vocab.o
C++ build\mingw.release\tads\charmap.o
C++ build\mingw.release\tads\md5.o
C++ build\mingw.release\tads\resldexe.o
C++ build\mingw.release\tads\resload.o
C++ build\mingw.release\tads\sha2.o
C++ build\mingw.release\tads\std.o
C++ build\mingw.release\tads\tcerr.o
C++ build\mingw.release\tads\tcerrmsg.o
C++ build\mingw.release\tads\tcgen.o
C++ build\mingw.release\tads\tcglob.o
C++ build\mingw.release\tads\tcmain.o
C++ build\mingw.release\tads\tcprs.o
C++ build\mingw.release\tads\tcprs_rt.o
C++ build\mingw.release\tads\tcprsnf.o
C++ build\mingw.release\tads\tcprsnl.o
C++ build\mingw.release\tads\tcprsstm.o
C++ build\mingw.release\tads\tcsrc.o
C++ build\mingw.release\tads\tct3.o
C++ build\mingw.release\tads\tct3_d.o
C++ build\mingw.release\tads\tct3nl.o
C++ build\mingw.release\tads\tct3stm.o
C++ build\mingw.release\tads\tct3unas.o
C++ build\mingw.release\tads\tctok.o
C++ build\mingw.release\tads\utf8.o
C++ build\mingw.release\tads\vmanonfn.o
C++ build\mingw.release\tads\vmbif.o
C++ build\mingw.release\tads\vmbifl.o
C++ build\mingw.release\tads\vmbifreg.o
C++ build\mingw.release\tads\vmbift3.o
…skipped libtads2.a for lack of libtads2.a(ostzposix.o)…
…on 200th target…
C++ build\mingw.release\tads\vmbiftad.o
C++ build\mingw.release\tads\vmbiftio.o
C++ build\mingw.release\tads\vmbignum.o
tads\tads3\vmbiftad.cpp: In static member function ‘static vm_obj_id_t CVmBifTADS::format_datetime_list(time_t)’:
tads\tads3\vmbiftad.cpp:2291:49: warning: right shift count >= width of type [-Wshift-count-overflow]
vmg_ FALSE, (uint32_t)(timer >> 32),
^
C++ build\mingw.release\tads\vmbignumlib.o
C++ build\mingw.release\tads\vmbt3_nd.o
C++ build\mingw.release\tads\vmbytarr.o
C++ build\mingw.release\tads\vmcfgmem.o
C++ build\mingw.release\tads\vmcoll.o
C++ build\mingw.release\tads\vmconhmp.o
C++ build\mingw.release\tads\vmconsol.o
C++ build\mingw.release\tads\vmcrc.o
C++ build\mingw.release\tads\vmcset.o
C++ build\mingw.release\tads\vmdate.o
C++ build\mingw.release\tads\vmdict.o
C++ build\mingw.release\tads\vmdynfunc.o
C++ build\mingw.release\tads\vmerr.o
C++ build\mingw.release\tads\vmerrmsg.o
C++ build\mingw.release\tads\vmfile.o
C++ build\mingw.release\tads\vmfilnam.o
C++ build\mingw.release\tads\vmfilobj.o
C++ build\mingw.release\tads\vmfref.o
C++ build\mingw.release\tads\vmfunc.o
C++ build\mingw.release\tads\vmglob.o
C++ build\mingw.release\tads\vmgram.o
C++ build\mingw.release\tads\vmhash.o
C++ build\mingw.release\tads\vmhostsi.o
C++ build\mingw.release\tads\vmhosttx.o
C++ build\mingw.release\tads\vmimage.o
C++ build\mingw.release\tads\vmimg_nd.o
C++ build\mingw.release\tads\vmini_nd.o
C++ build\mingw.release\tads\vminit.o
C++ build\mingw.release\tads\vminitim.o
C++ build\mingw.release\tads\vmintcls.o
C++ build\mingw.release\tads\vmisaac.o
C++ build\mingw.release\tads\vmiter.o
C++ build\mingw.release\tads\vmlog.o
C++ build\mingw.release\tads\vmlookup.o
C++ build\mingw.release\tads\vmlst.o
C++ build\mingw.release\tads\vmmain.o
C++ build\mingw.release\tads\vmmcreg.o
C++ build\mingw.release\tads\vmmeta.o
C++ build\mingw.release\tads\vmnetfillcl.o
C++ build\mingw.release\tads\vmobj.o
C++ build\mingw.release\tads\vmop.o
C++ build\mingw.release\tads\vmpack.o
C++ build\mingw.release\tads\vmpat.o
C++ build\mingw.release\tads\vmpool.o
C++ build\mingw.release\tads\vmpoolim.o
C++ build\mingw.release\tads\vmregex.o
C++ build\mingw.release\tads\vmrun.o
C++ build\mingw.release\tads\vmrunsym.o
C++ build\mingw.release\tads\vmsa.o
C++ build\mingw.release\tads\vmsave.o
C++ build\mingw.release\tads\vmsort.o
C++ build\mingw.release\tads\vmsortv.o
C++ build\mingw.release\tads\vmsrcf.o
C++ build\mingw.release\tads\vmstack.o
C++ build\mingw.release\tads\vmstr.o
C++ build\mingw.release\tads\vmstrbuf.o
C++ build\mingw.release\tads\vmstrcmp.o
C++ build\mingw.release\tads\vmtmpfil.o
C++ build\mingw.release\tads\vmtobj.o
C++ build\mingw.release\tads\vmtype.o
C++ build\mingw.release\tads\vmtypedh.o
C++ build\mingw.release\tads\vmtz.o
C++ build\mingw.release\tads\vmtzobj.o
C++ build\mingw.release\tads\vmundo.o
C++ build\mingw.release\tads\vmvec.o
C++ build\mingw.release\tads\vmconnom.o
Cc build\mingw.release\tads\memicmp.o
Cc build\mingw.release\tads\osbuffer.o
Cc build\mingw.release\tads\osglk.o
Cc build\mingw.release\tads\osglkban.o
Cc build\mingw.release\tads\osmisc.o
Cc build\mingw.release\tads\osparse.o
C++ build\mingw.release\tads\osportable.o
C++ build\mingw.release\tads\t23run.o
tads\osportable.cc: In function ‘void os_get_tmp_path(char*)’:
tads\osportable.cc:459:29: error: ‘GetTempPath’ was not declared in this scope
GetTempPath(OSFNMAX, buf);
^
tads\osportable.cc: In function ‘int os_mkdir(const char*, int)’:
tads\osportable.cc:540:35: error: ‘S_IRWXG’ was not declared in this scope
mkdir(tmp, S_IRWXU | S_IRWXG | S_IRWXO);
^
tads\osportable.cc:540:45: error: ‘S_IRWXO’ was not declared in this scope
mkdir(tmp, S_IRWXU | S_IRWXG | S_IRWXO);
^
tads\osportable.cc: In function ‘int os_file_stat(const char*, int, os_file_stat_t*)’:
tads\osportable.cc:586:62: error: ‘lstat’ was not declared in this scope
if ((follow_links ? stat(fname, &buf) : lstat(fname, &buf)) != 0)
^
tads\osportable.cc:591:46: warning: right shift count >= width of type [-Wshift-count-overflow]
? (uint32_t)((buf.st_size >> 32) & 0xFFFFFFFF)
^
tads\osportable.cc:604:17: error: ‘geteuid’ was not declared in this scope
if (geteuid() == buf.st_uid) {
^
tads\osportable.cc:617:36: error: ‘getgroups’ was not declared in this scope
int grpSize = getgroups(0, NULL) + 1;
^
tads\osportable.cc:619:19: error: ‘NGROUPS_MAX’ was not declared in this scope
if (grpSize > NGROUPS_MAX or grpSize < 0)
^
tads\osportable.cc:621:5: error: ‘gid_t’ was not declared in this scope
gid_t* groups = new gid_t[grpSize];
^
tads\osportable.cc:621:12: error: ‘groups’ was not declared in this scope
gid_t* groups = new gid_t[grpSize];
^
tads\osportable.cc:621:25: error: ‘gid_t’ does not name a type
gid_t* groups = new gid_t[grpSize];
^
tads\osportable.cc:623:18: error: type ‘’ argument given to ‘delete’, expected pointer
delete[] groups;
^
Cc tads\osportable.cc:626:25: error: ‘getegid’ was not declared in this scope
groups[0] = getegid();
^
build\mingw.release\tads\t2askf.o tads\osportable.cc:630:14: error: type ‘’ argument given to ‘delete’, expected pointer
delete[] groups;
^

tads\osportable.cc:632:27: error: ‘S_IRGRP’ was not declared in this scope
if (buf.st_mode & S_IRGRP)
^
tads\osportable.cc:634:27: error: ‘S_IWGRP’ was not declared in this scope
if (buf.st_mode & S_IWGRP)
^
tads\osportable.cc:641:23: error: ‘S_IROTH’ was not declared in this scope
if (buf.st_mode & S_IROTH)
^
tads\osportable.cc:643:23: error: ‘S_IWOTH’ was not declared in this scope
if (buf.st_mode & S_IWOTH)
^
tads\osportable.cc: In function ‘int os_resolve_symlink(const char*, char*, size_t)’:
tads\osportable.cc:656:26: error: ‘lstat’ was not declared in this scope
if (lstat(fname, &buf) != 0 or (buf.st_mode & S_IFLNK) == 0)
^
tads\osportable.cc:656:51: error: ‘S_IFLNK’ was not declared in this scope
if (lstat(fname, &buf) != 0 or (buf.st_mode & S_IFLNK) == 0)
^
tads\osportable.cc:663:40: error: ‘readlink’ was not declared in this scope
if (readlink(fname, target, copylen) < 0)
^
tads\osportable.cc: In function ‘void resolve_path(char*, size_t, const char*)’:
tads\osportable.cc:1055:41: error: ‘realpath’ was not declared in this scope
char rpath = realpath(mypath, 0);
^
tads\osportable.cc: In function 'int os_get_abs_filename(char
, size_t, const char*)’:
tads\osportable.cc:1230:41: error: ‘realpath’ was not declared in this scope
char* newpath = realpath(filename, 0);
^
Cc build\mingw.release\tads\t2indlg.o

gcc -c -o build\mingw.release\tads\osportable.o -DGARGOYLE -DVMGLOB_STRUCT -DGLK_UNICODE -DGLK_TIMERS -DTC_TARGET_T3 -DRUNTIME -O2 -Itads\tads2 -Itads\tads3 -Itads -Itads -Itads\tads2 -Ita
garglk tads\osportable.cc

…failed C++ build\mingw.release\tads\osportable.o …
C++ build\mingw.release\tads\t3askf.o
C++ build\mingw.release\tads\t3indlg.o
C++ build\mingw.release\tads\vmuni_cs.o
Cc build\mingw.release\garglk\launchwin.o
Cc build\mingw.release\garglk\launcher.o
Cc build\mingw.release\garglk\gi_blorb.o
Cc build\mingw.release\garglk\gi_dispa.o
Cc build\mingw.release\garglk\cggestal.o
Cc build\mingw.release\garglk\cgblorb.o
Cc build\mingw.release\garglk\cgfref.o
Cc build\mingw.release\garglk\cgmisc.o
Cc build\mingw.release\garglk\cgstyle.o
garglk\cgfref.c: In function ‘glkunix_set_base_file’:
garglk\cgfref.c:358:5: warning: implicit declaration of function ‘chdir’ [-Wimplicit-function-declaration]
chdir(gli_workdir);
^
Cc build\mingw.release\garglk\cgstream.o
Cc build\mingw.release\garglk\cgunicod.o
Cc build\mingw.release\garglk\cgdate.o
Cc build\mingw.release\garglk\window.o
Cc build\mingw.release\garglk\winblank.o
Cc build\mingw.release\garglk\winpair.o
Cc build\mingw.release\garglk\wingrid.o
Cc build\mingw.release\garglk\wintext.o
Cc build\mingw.release\garglk\wingfx.o
…on 300th target…
Cc build\mingw.release\garglk\winmask.o
Cc build\mingw.release\garglk\event.o
Cc build\mingw.release\garglk\draw.o
Cc build\mingw.release\garglk\config.o
Cc build\mingw.release\garglk\imgload.o
Archive build\mingw.release\tads\libtads3.a
ar: creating build\mingw.release\tads\libtads3.a
Cc build\mingw.release\garglk\imgscale.o
Cc build\mingw.release\garglk\fontdata.o
Archive build\mingw.release\tads\libtads3.a
Cc build\mingw.release\garglk\babeldata.o
Cc build\mingw.release\garglk\sndsdl.o
Cc build\mingw.release\garglk\syswin.o
Cc build\mingw.release\garglk\fontwin.o
WindRes build\mingw.release\garglk\icons.o
garglk\syswin.c: In function ‘onconfig’:
garglk\syswin.c:125:9: warning: implicit declaration of function ‘access’ [-Wimplicit-function-declaration]
if (access(buf, R_OK))
^
MkDir1 build\mingw.release\bocfel
Cc build\mingw.release\bocfel\blorb.o
Cc build\mingw.release\bocfel\branch.o
Cc build\mingw.release\bocfel\dict.o
Cc build\mingw.release\bocfel\glkstart.o
Cc build\mingw.release\bocfel\iff.o
Cc build\mingw.release\bocfel\io.o
Cc build\mingw.release\bocfel\math.o
Cc build\mingw.release\bocfel\memory.o
Cc build\mingw.release\bocfel\meta.o
Cc build\mingw.release\bocfel\objects.o
Cc build\mingw.release\bocfel\osdep.o
Cc build\mingw.release\bocfel\process.o
Cc build\mingw.release\bocfel\random.o
Cc build\mingw.release\bocfel\screen.o
Cc build\mingw.release\bocfel\sound.o
Cc build\mingw.release\bocfel\stack.o
Cc build\mingw.release\bocfel\unicode.o
Cc build\mingw.release\bocfel\util.o
Cc build\mingw.release\bocfel\zoom.o
Cc build\mingw.release\bocfel\zterp.o
MkDir1 build\mingw.release\frotz
Cc build\mingw.release\frotz\buffer.o
Cc build\mingw.release\frotz\err.o
Cc build\mingw.release\frotz\fastmem.o
Cc build\mingw.release\frotz\files.o
Cc build\mingw.release\frotz\input.o
Cc build\mingw.release\frotz\main.o
Cc build\mingw.release\frotz\math.o
Cc build\mingw.release\frotz\object.o
Cc build\mingw.release\frotz\process.o
Cc build\mingw.release\frotz\quetzal.o
Cc build\mingw.release\frotz\random.o
Cc build\mingw.release\frotz\redirect.o
Cc build\mingw.release\frotz\sound.o
Cc build\mingw.release\frotz\stream.o
Cc build\mingw.release\frotz\table.o
Cc build\mingw.release\frotz\text.o
Cc build\mingw.release\frotz\variable.o
Cc build\mingw.release\frotz\glkscreen.o
Cc build\mingw.release\frotz\glkmisc.o
MkDir1 build\mingw.release\geas
C++ build\mingw.release\geas\geasfile.o
C++ build\mingw.release\geas\geas-runner.o
C++ build\mingw.release\geas\geas-state.o
C++ build\mingw.release\geas\geas-util.o
SharedLink build\mingw.release\garglk\libgarglk.dll
C++ build\mingw.release\geas\geasglk.o
Cc build\mingw.release\geas\geasglkterm.o
C++ build\mingw.release\geas\istring.o
C++ build\mingw.release\geas\readfile.o
Link build\mingw.release\garglk\gargoyle.exe
Link build\mingw.release\advsys\advsys.exe
Link build\mingw.release\agility\agility.exe
Link build\mingw.release\alan2\alan2.exe
Link build\mingw.release\alan3\alan3.exe
Link build\mingw.release\bocfel\bocfel.exe
Link build\mingw.release\frotz\frotz.exe
…skipped tadsr.exe for lack of osportable.o…
MkDir1 build\mingw.release\git
Cc build\mingw.release\git\git.o
Cc build\mingw.release\git\memory.o
Cc build\mingw.release\git\compiler.o
Cc build\mingw.release\git\opcodes.o
Cc build\mingw.release\git\operands.o
Cc build\mingw.release\git\peephole.o
Cc build\mingw.release\git\terp.o
Cc build\mingw.release\git\glkop.o
Cc build\mingw.release\git\search.o
Cc build\mingw.release\git\git_unix.o
terps\git\git_unix.c: In function ‘fatalError’:
terps\git\git_unix.c:48:1: warning: ‘noreturn’ function does return
}
^
Cc build\mingw.release\git\savefile.o
Cc build\mingw.release\git\saveundo.o
Cc build\mingw.release\git\gestalt.o
Cc build\mingw.release\git\heap.o
Cc build\mingw.release\git\accel.o
MkDir1 build\mingw.release\glulxe
Cc build\mingw.release\glulxe\main.o
Cc build\mingw.release\glulxe\files.o
Cc build\mingw.release\glulxe\vm.o
Cc build\mingw.release\glulxe\exec.o
Cc build\mingw.release\glulxe\funcs.o
Cc build\mingw.release\glulxe\operand.o
Cc build\mingw.release\glulxe\string.o
Cc build\mingw.release\glulxe\glkop.o
Cc build\mingw.release\glulxe\heap.o
Cc build\mingw.release\glulxe\serial.o
Cc build\mingw.release\glulxe\search.o
Cc build\mingw.release\glulxe\gestalt.o
…on 400th target…
Cc build\mingw.release\glulxe\osdepend.o
Link build\mingw.release\git\git.exe
Cc build\mingw.release\glulxe\unixstrt.o
Cc build\mingw.release\glulxe\accel.o
Cc build\mingw.release\glulxe\profile.o
Cc build\mingw.release\glulxe\float.o
MkDir1 build\mingw.release\hugo
Cc build\mingw.release\hugo\he.o
Cc build\mingw.release\hugo\heexpr.o
Cc build\mingw.release\hugo\hemisc.o
Cc build\mingw.release\hugo\heobject.o
Cc build\mingw.release\hugo\heparse.o
Cc build\mingw.release\hugo\heres.o
Link build\mingw.release\glulxe\glulxe.exe
Cc build\mingw.release\hugo\herun.o
Cc build\mingw.release\hugo\heset.o
Cc build\mingw.release\hugo\stringfn.o
Cc build\mingw.release\hugo\heglk.o
Cc build\mingw.release\hugo\heglkunix.o
MkDir1 build\mingw.release\jacl
MkDir1 build\mingw.release\level9
Cc build\mingw.release\jacl\jacl.o
Cc build\mingw.release\jacl\glk_startup.o
Cc build\mingw.release\level9\bitmap.o
Cc build\mingw.release\level9\level9.o
Cc build\mingw.release\level9\glk.o
terps\level9\level9.c: In function ‘intinitialise’:
terps\level9\level9.c:1509:8: warning: iteration 5u invokes undefined behavior [-Waggressive-loop-optimizations]
int off=L9V1Games[L9V1Game].L9Ptrs[i];
^
terps\level9\level9.c:1507:3: note: containing loop
for (i=0;i<6;i++)
^
Cc build\mingw.release\jacl\findroute.o
Link build\mingw.release\hugo\hugo.exe
Cc build\mingw.release\jacl\interpreter.o
Cc build\mingw.release\jacl\loader.o
Cc build\mingw.release\jacl\glk_saver.o
Cc build\mingw.release\jacl\logging.o
Cc build\mingw.release\jacl\parser.o
Cc build\mingw.release\jacl\display.o
Cc build\mingw.release\jacl\utils.o
Cc build\mingw.release\jacl\jpp.o
Cc build\mingw.release\jacl\resolvers.o
Cc build\mingw.release\jacl\errors.o
Cc build\mingw.release\jacl\encapsulate.o
Cc build\mingw.release\jacl\libcsv.o
MkDir1 build\mingw.release\magnetic
MkDir1 build\mingw.release\nitfol
Cc build\mingw.release\magnetic\emu.o
Cc build\mingw.release\nitfol\automap.o
Cc build\mingw.release\nitfol\solve.o
Link build\mingw.release\level9\level9.exe
Cc build\mingw.release\nitfol\infix.o
Cc build\mingw.release\nitfol\copying.o
Cc build\mingw.release\nitfol\debug.o
Link build\mingw.release\jacl\jacl.exe
Cc build\mingw.release\nitfol\inform.o
Cc build\mingw.release\nitfol\quetzal.o
Cc build\mingw.release\nitfol\undo.o
Cc build\mingw.release\nitfol\op_call.o
Cc build\mingw.release\nitfol\decode.o
Cc build\mingw.release\nitfol\errmesg.o
Cc build\mingw.release\nitfol\globals.o
Cc build\mingw.release\nitfol\iff.o
Cc build\mingw.release\nitfol\init.o
Cc build\mingw.release\nitfol\io.o
Cc build\mingw.release\nitfol\z_io.o
Cc build\mingw.release\nitfol\op_jmp.o
Cc build\mingw.release\nitfol\op_math.o
Cc build\mingw.release\nitfol\op_save.o
Cc build\mingw.release\nitfol\op_table.o
Cc build\mingw.release\nitfol\op_v6.o
Cc build\mingw.release\nitfol\oplist.o
Cc build\mingw.release\nitfol\stack.o
Cc build\mingw.release\nitfol\zscii.o
Cc build\mingw.release\nitfol\tokenise.o
Cc build\mingw.release\nitfol\struct.o
Cc build\mingw.release\nitfol\objects.o
Cc build\mingw.release\nitfol\portfunc.o
Cc build\mingw.release\nitfol\hash.o
Cc build\mingw.release\nitfol\sound.o
Cc build\mingw.release\nitfol\graphics.o
Cc build\mingw.release\nitfol\blorb.o
Cc build\mingw.release\nitfol\main.o
Cc build\mingw.release\nitfol\startunix.o
Cc build\mingw.release\magnetic\glk.o
MkDir1 build\mingw.release\scare
MkDir1 build\mingw.release\scott
Cc build\mingw.release\scare\sctafpar.o
Cc build\mingw.release\scare\sctaffil.o
Cc build\mingw.release\scott\scott.o
Cc build\mingw.release\scare\scprops.o
Cc build\mingw.release\scare\scvars.o
Link build\mingw.release\nitfol\nitfol.exe
Cc build\mingw.release\scare\scexpr.o
Cc build\mingw.release\scare\scprintf.o
Cc build\mingw.release\scare\scinterf.o
Link build\mingw.release\scott\scott.exe
Cc build\mingw.release\scare\scparser.o
Cc build\mingw.release\scare\sclibrar.o
Cc build\mingw.release\scare\scrunner.o
Cc build\mingw.release\scare\scevents.o
Cc build\mingw.release\scare\scnpcs.o
Cc build\mingw.release\scare\scobjcts.o
Link build\mingw.release\magnetic\magnetic.exe
Cc build\mingw.release\scare\sctasks.o
…on 500th target…
Cc build\mingw.release\scare\screstrs.o
Cc build\mingw.release\scare\scgamest.o
Cc build\mingw.release\scare\scserial.o
Cc build\mingw.release\scare\scresour.o
Cc build\mingw.release\scare\scutils.o
Cc build\mingw.release\scare\scdebug.o
Cc build\mingw.release\scare\sclocale.o
Cc build\mingw.release\scare\scmemos.o
Cc build\mingw.release\scare\os_glk.o
Link build\mingw.release\scare\scare.exe
Link build\mingw.release\geas\geas.exe
…failed updating 2 target(s)…
…skipped 2 target(s)…
…updated 508 target(s)…
… finished building!
Press any key to continue . . .

C:\garglk-203-tads-upgrade>[/spoiler]

The branch is/was in a sort of transition: I’ve pulled in support code from FrobTADS which should make future updates easier. However, FrobTADS targets POSIX, and MinGW is missing some POSIX functionality, meaning the support code wasn’t fully supported in MinGW.

But since I’ve made the existence of this branch known, it’s probably best to at least get it compiling with MinGW. I’ve pushed a couple of changes which allow it to fully build. The TADS fixes are hacky for the time being, but should allow for testing with MinGW at least.

Chris, I still getting a couple of errors when trying to build on Windows.

MinGW complains about the following constants are not defined (osportable.cc, line 645):

However, I managed to compile a test build for Windows.

gargoyle_28-may-2016_test_build.zip

P.S.

I’m playing with the idea of using Boost to cover both Unix and Windows filesystem routines. Would it be OK if Boost was a dependency for Gargoyle?

Also, some of the other code in osportable.cc was changed to be portable to Windows too (random numbers and timers) by requiring a C++14 compiler. If you want to use that instead, it’s in the frobtads “next” branch.

Looks like those macros were added to MinGW fairly recently (they’re in version 4.0.6). I pushed a change to the branch which just removes the checks on MinGW, since most of that particular function is not implemented for MinGW anyway. This isn’t a long-term solution, just a way to support early testing.

Thanks for looking at this! I’m doing what I can for Windows support but it’s not exactly my strength.

I have no problem making Boost a dependency.

That’s something I’ve been meaning to look at for a while now, but haven’t been able to find the time. I’ll see if I can find a bit of spare time this week to test it out.

cas

Now it builds ok. A few warnings, but nothing serious.

Here’s the current build for Windows. I also included a few custom color/font schemes (i.e. bright text on dark background).

gargoyle_01-jun-2016_win32.zip

[spoiler]Microsoft Windows [Version 6.1.7601]
Copyright © 2009 Microsoft Corporation. All rights reserved.

C:\Users\SE>cd\

C:>cd tdm-gcc-32

C:\TDM-GCC-32>mingwvars

Setting up environment for using MinGW with GCC from C:\TDM-GCC-32.

C:\TDM-GCC-32>set JAM_TOOLSET=MINGW

C:\TDM-GCC-32>cd\

C:>cd garglk-203-tads-upgrade

C:\garglk-203-tads-upgrade>gargoyle_win32
Packaging Gargoyle binaries …
Compiler is GCC with Mingw

BUILD is RELEASE
…patience…
…found 1691 target(s)…
…updating 544 target(s)…
MkDir1 build
MkDir1 build\dist
MkDir1 build\mingw.release
Install build\dist\freetype6.dll
Install build\dist\libjpeg-8.dll
Install build\dist\libpng14-14.dll
1 file(s) copied.
Install build\dist\zlib1.dll
1 file(s) copied.
Install build\dist\SDL_mixer.dll
1 file(s) copied.
Install build\dist\SDL.dll
1 file(s) copied.
Install build\dist\smpeg.dll
1 file(s) copied.
Install build\dist\libogg-0.dll
1 file(s) copied.
MkDir1 build\mingw.release\advsys
1 file(s) copied.
MkDir1 build\mingw.release\garglk
1 file(s) copied.
MkDir1 build\mingw.release\babel
Cc build\mingw.release\advsys\advmsg.o
Cc build\mingw.release\babel\babel_handler.o
Cc build\mingw.release\garglk\main.o
Cc build\mingw.release\garglk\gi_blorb.o
Cc build\mingw.release\garglk\gi_dispa.o
Cc build\mingw.release\garglk\cggestal.o
Cc build\mingw.release\garglk\cgblorb.o
Cc build\mingw.release\garglk\cgfref.o
garglk\cgfref.c: In function ‘glkunix_set_base_file’:
garglk\cgfref.c:358:5: warning: implicit declaration of function ‘chdir’ [-Wimplicit-function-declaration]
chdir(gli_workdir);
^
Cc build\mingw.release\garglk\cgmisc.o
Cc build\mingw.release\garglk\cgstyle.o
Archive build\mingw.release\garglk\libgarglkmain.a
Cc build\mingw.release\garglk\cgstream.o
Cc build\mingw.release\garglk\cgunicod.o
Cc build\mingw.release\garglk\cgdate.o
Cc build\mingw.release\garglk\window.o
Cc build\mingw.release\garglk\winblank.o
Cc build\mingw.release\garglk\winpair.o
Cc build\mingw.release\garglk\wingrid.o
Cc build\mingw.release\garglk\wintext.o
Cc build\mingw.release\garglk\wingfx.o
Cc build\mingw.release\garglk\winmask.o
ar: creating build\mingw.release\garglk\libgarglkmain.a
Cc build\mingw.release\garglk\event.o
Cc build\mingw.release\garglk\draw.o
Cc build\mingw.release\garglk\config.o
Cc build\mingw.release\garglk\imgload.o
Cc build\mingw.release\garglk\imgscale.o
Cc build\mingw.release\garglk\fontdata.o
Cc build\mingw.release\garglk\babeldata.o
Cc build\mingw.release\garglk\sndsdl.o
Cc build\mingw.release\garglk\syswin.o
Cc build\mingw.release\garglk\fontwin.o
WindRes build\mingw.release\garglk\icons.o
Cc build\mingw.release\garglk\launchwin.o
Cc build\mingw.release\garglk\launcher.o
Cc build\mingw.release\babel\ifiction.o
Cc build\mingw.release\babel\md5.o
Cc build\mingw.release\babel\misc.o
Cc build\mingw.release\babel\register.o
Cc build\mingw.release\babel\register_ifiction.o
Cc build\mingw.release\babel\adrift.o
Cc build\mingw.release\babel\advsys.o
Cc build\mingw.release\babel\agt.o
Cc build\mingw.release\babel\alan.o
Cc build\mingw.release\babel\blorb.o
Cc build\mingw.release\babel\executable.o
Cc build\mingw.release\babel\glulx.o
Cc build\mingw.release\babel\hugo.o
Cc build\mingw.release\babel\level9.o
Cc build\mingw.release\babel\magscrolls.o
Cc build\mingw.release\babel\tads.o
Cc build\mingw.release\babel\tads2.o
Cc build\mingw.release\babel\tads3.o
Cc build\mingw.release\babel\zcode.o
Cc build\mingw.release\advsys\advtrm.o
Cc build\mingw.release\advsys\advprs.o
Cc build\mingw.release\advsys\advdbs.o
Cc build\mingw.release\advsys\advint.o
Cc build\mingw.release\advsys\advjunk.o
Cc build\mingw.release\advsys\advexe.o
Cc build\mingw.release\advsys\glkstart.o
MkDir1 build\mingw.release\SDL_sound
Cc build\mingw.release\SDL_sound\ogg.o
Cc build\mingw.release\SDL_sound\smpeg.o
Archive build\mingw.release\babel\babel_static.a
garglk\syswin.c: In function ‘onconfig’:
garglk\syswin.c:125:9: warning: implicit declaration of function ‘access’ [-Wimplicit-function-declaration]
if (access(buf, R_OK))
^
ar: creating build\mingw.release\babel\babel_static.a
Cc build\mingw.release\SDL_sound\audio_convert.o
Cc build\mingw.release\SDL_sound\alt_audio_convert.o
Cc build\mingw.release\SDL_sound\extra_rwops.o
Cc build\mingw.release\SDL_sound\SDL_sound.o
MkDir1 build\mingw.release\agility
Cc build\mingw.release\agility\agtread.o
Cc build\mingw.release\agility\gamedata.o
Cc build\mingw.release\agility\util.o
Cc build\mingw.release\agility\agxfile.o
Cc build\mingw.release\agility\auxfile.o
SharedLink build\mingw.release\SDL_sound\SDL_sound.dll
Cc build\mingw.release\agility\filename.o
Cc build\mingw.release\agility\parser.o
Cc build\mingw.release\agility\exec.o
Cc build\mingw.release\agility\runverb.o
Cc build\mingw.release\agility\metacommand.o
Cc build\mingw.release\agility\savegame.o
Cc build\mingw.release\agility\debugcmd.o
Cc build\mingw.release\agility\agil.o
Cc build\mingw.release\agility\token.o
Cc build\mingw.release\agility\disassemble.o
…on 100th target…
Cc build\mingw.release\agility\object.o
Cc build\mingw.release\agility\interface.o
Cc build\mingw.release\agility\os_glk.o
MkDir1 build\mingw.release\alan2
Cc build\mingw.release\alan2\arun.o
Cc build\mingw.release\alan2\main.o
Cc build\mingw.release\alan2\debug.o
Cc build\mingw.release\alan2\args.o
Cc build\mingw.release\alan2\exe.o
Cc build\mingw.release\alan2\inter.o
Cc build\mingw.release\alan2\parse.o
Cc build\mingw.release\alan2\rules.o
Cc build\mingw.release\alan2\stack.o
Cc build\mingw.release\alan2\decode.o
Cc build\mingw.release\alan2\term.o
Cc build\mingw.release\alan2\reverse.o
Cc build\mingw.release\alan2\readline.o
Cc build\mingw.release\alan2\params.o
Cc build\mingw.release\alan2\sysdep.o
Cc build\mingw.release\alan2\glkstart.o
Cc build\mingw.release\alan2\glkio.o
Cc build\mingw.release\alan2\alan.version.o
MkDir1 build\mingw.release\alan3
Cc build\mingw.release\alan3\alan.version.o
Cc build\mingw.release\alan3\act.o
Cc build\mingw.release\alan3\actor.o
Cc build\mingw.release\alan3\args.o
Cc build\mingw.release\alan3\arun.o
Cc build\mingw.release\alan3\attribute.o
Cc build\mingw.release\alan3\checkentry.o
Cc build\mingw.release\alan3\class.o
Cc build\mingw.release\alan3\current.o
Cc build\mingw.release\alan3\debug.o
Cc build\mingw.release\alan3\decode.o
Cc build\mingw.release\alan3\dictionary.o
Cc build\mingw.release\alan3\event.o
Cc build\mingw.release\alan3\exe.o
Cc build\mingw.release\alan3\glkio.o
Cc build\mingw.release\alan3\glkstart.o
Cc build\mingw.release\alan3\instance.o
Cc build\mingw.release\alan3\inter.o
Cc build\mingw.release\alan3\lists.o
Cc build\mingw.release\alan3\literal.o
Cc build\mingw.release\alan3\main.o
Cc build\mingw.release\alan3\memory.o
Cc build\mingw.release\alan3\msg.o
Cc build\mingw.release\alan3\options.o
Cc build\mingw.release\alan3\output.o
Cc build\mingw.release\alan3\params.o
Cc build\mingw.release\alan3\parse.o
Cc build\mingw.release\alan3\readline.o
Cc build\mingw.release\alan3\reverse.o
Cc build\mingw.release\alan3\rules.o
Cc build\mingw.release\alan3\save.o
Cc build\mingw.release\alan3\scan.o
Cc build\mingw.release\alan3\score.o
Cc build\mingw.release\alan3\set.o
Cc build\mingw.release\alan3\stack.o
Cc build\mingw.release\alan3\state.o
Cc build\mingw.release\alan3\syntax.o
Cc build\mingw.release\alan3\sysdep.o
Cc build\mingw.release\alan3\syserr.o
Cc build\mingw.release\alan3\term.o
Cc build\mingw.release\alan3\utils.o
Cc build\mingw.release\alan3\word.o
Cc build\mingw.release\alan3\compatibility.o
Cc build\mingw.release\alan3\AltInfo.o
Cc build\mingw.release\alan3\Container.o
Cc build\mingw.release\alan3\Location.o
Cc build\mingw.release\alan3\ParameterPosition.o
Cc build\mingw.release\alan3\StateStack.o
MkDir1 build\mingw.release\bocfel
Cc build\mingw.release\bocfel\blorb.o
Cc build\mingw.release\bocfel\branch.o
Cc build\mingw.release\bocfel\dict.o
SharedLink build\mingw.release\garglk\libgarglk.dll
Install build\dist\SDL_sound.dll
Cc build\mingw.release\bocfel\glkstart.o
Cc build\mingw.release\bocfel\iff.o
1 file(s) copied.
Cc build\mingw.release\bocfel\io.o
Cc build\mingw.release\bocfel\math.o
Cc build\mingw.release\bocfel\memory.o
Cc build\mingw.release\bocfel\meta.o
Cc build\mingw.release\bocfel\objects.o
Cc build\mingw.release\bocfel\osdep.o
Cc build\mingw.release\bocfel\process.o
Cc build\mingw.release\bocfel\random.o
Cc build\mingw.release\bocfel\screen.o
Cc build\mingw.release\bocfel\sound.o
Cc build\mingw.release\bocfel\stack.o
Cc build\mingw.release\bocfel\unicode.o
Cc build\mingw.release\bocfel\util.o
Cc build\mingw.release\bocfel\zoom.o
Cc build\mingw.release\bocfel\zterp.o
MkDir1 build\mingw.release\frotz
Cc build\mingw.release\frotz\buffer.o
Cc build\mingw.release\frotz\err.o
Cc build\mingw.release\frotz\fastmem.o
Cc build\mingw.release\frotz\files.o
Cc build\mingw.release\frotz\input.o
…on 200th target…
Cc build\mingw.release\frotz\main.o
Link build\mingw.release\advsys\advsys.exe
Link build\mingw.release\agility\agility.exe
Link build\mingw.release\alan2\alan2.exe
Link build\mingw.release\alan3\alan3.exe
Link build\mingw.release\garglk\gargoyle.exe
Cc build\mingw.release\frotz\math.o
Cc build\mingw.release\frotz\object.o
Install build\dist\advsys.exe
Install build\dist\alan2.exe
Link build\mingw.release\bocfel\bocfel.exe
1 file(s) copied.
1 file(s) copied.
Cc build\mingw.release\frotz\process.o
Cc build\mingw.release\frotz\quetzal.o
Cc build\mingw.release\frotz\random.o
Cc build\mingw.release\frotz\redirect.o
Install build\dist\agility.exe
Install build\dist\alan3.exe
1 file(s) copied.
Cc build\mingw.release\frotz\sound.o
Cc build\mingw.release\frotz\stream.o
1 file(s) copied.
Cc build\mingw.release\frotz\table.o
Cc build\mingw.release\frotz\text.o
Install build\dist\bocfel.exe
Cc build\mingw.release\frotz\variable.o
Cc build\mingw.release\frotz\glkscreen.o
1 file(s) copied.
Cc build\mingw.release\frotz\glkmisc.o
MkDir1 build\mingw.release\geas
MkDir1 build\mingw.release\git
C++ build\mingw.release\geas\geasfile.o
Cc build\mingw.release\git\git.o
Cc build\mingw.release\git\memory.o
Cc build\mingw.release\git\compiler.o
Cc build\mingw.release\git\opcodes.o
Cc build\mingw.release\git\operands.o
Cc build\mingw.release\git\peephole.o
Cc build\mingw.release\git\terp.o
Cc build\mingw.release\git\glkop.o
Cc build\mingw.release\git\search.o
Link build\mingw.release\frotz\frotz.exe
Cc build\mingw.release\git\git_unix.o
Cc build\mingw.release\git\savefile.o
Cc build\mingw.release\git\saveundo.o
Cc build\mingw.release\git\gestalt.o
Cc build\mingw.release\git\heap.o
Install build\dist\frotz.exe
Cc build\mingw.release\git\accel.o
1 file(s) copied.
C++ build\mingw.release\geas\geas-runner.o
C++ build\mingw.release\geas\geas-state.o
C++ build\mingw.release\geas\geas-util.o
C++ build\mingw.release\geas\geasglk.o
Cc build\mingw.release\geas\geasglkterm.o
C++ build\mingw.release\geas\istring.o
C++ build\mingw.release\geas\readfile.o
Link build\mingw.release\git\git.exe
Install build\dist\git.exe
1 file(s) copied.
MkDir1 build\mingw.release\glulxe
Cc build\mingw.release\glulxe\main.o
Cc build\mingw.release\glulxe\files.o
Cc build\mingw.release\glulxe\vm.o
Cc build\mingw.release\glulxe\exec.o
Cc build\mingw.release\glulxe\funcs.o
Cc build\mingw.release\glulxe\operand.o
Cc build\mingw.release\glulxe\string.o
Cc build\mingw.release\glulxe\glkop.o
Cc build\mingw.release\glulxe\heap.o
Cc build\mingw.release\glulxe\serial.o
Cc build\mingw.release\glulxe\search.o
Cc build\mingw.release\glulxe\gestalt.o
Cc build\mingw.release\glulxe\osdepend.o
Cc build\mingw.release\glulxe\unixstrt.o
Cc build\mingw.release\glulxe\accel.o
Cc build\mingw.release\glulxe\profile.o
Cc build\mingw.release\glulxe\float.o
Link build\mingw.release\glulxe\glulxe.exe
Install build\dist\glulxe.exe
1 file(s) copied.
MkDir1 build\mingw.release\hugo
Cc build\mingw.release\hugo\he.o
Cc build\mingw.release\hugo\heexpr.o
Cc build\mingw.release\hugo\hemisc.o
Cc build\mingw.release\hugo\heobject.o
Cc build\mingw.release\hugo\heparse.o
Cc build\mingw.release\hugo\heres.o
Cc build\mingw.release\hugo\herun.o
Cc build\mingw.release\hugo\heset.o
Cc build\mingw.release\hugo\stringfn.o
Cc build\mingw.release\hugo\heglk.o
Cc build\mingw.release\hugo\heglkunix.o
Link build\mingw.release\hugo\hugo.exe
Install build\dist\hugo.exe
1 file(s) copied.
MkDir1 build\mingw.release\jacl
Cc build\mingw.release\jacl\jacl.o
Cc build\mingw.release\jacl\glk_startup.o
Cc build\mingw.release\jacl\findroute.o
Cc build\mingw.release\jacl\interpreter.o
Cc build\mingw.release\jacl\loader.o
Cc build\mingw.release\jacl\glk_saver.o
Cc build\mingw.release\jacl\logging.o
Cc build\mingw.release\jacl\parser.o
Cc build\mingw.release\jacl\display.o
Cc build\mingw.release\jacl\utils.o
Cc build\mingw.release\jacl\jpp.o
…on 300th target…
Cc build\mingw.release\jacl\resolvers.o
Cc build\mingw.release\jacl\errors.o
Cc build\mingw.release\jacl\encapsulate.o
Cc build\mingw.release\jacl\libcsv.o
Link build\mingw.release\jacl\jacl.exe
Install build\dist\jacl.exe
1 file(s) copied.
MkDir1 build\mingw.release\level9
Cc build\mingw.release\level9\bitmap.o
Cc build\mingw.release\level9\level9.o
terps\level9\level9.c: In function ‘intinitialise’:
terps\level9\level9.c:1509:8: warning: iteration 5u invokes undefined behavior [-Waggressive-loop-optimizations]
int off=L9V1Games[L9V1Game].L9Ptrs[i];
^
terps\level9\level9.c:1507:3: note: containing loop
for (i=0;i<6;i++)
^
Cc build\mingw.release\level9\glk.o
MkDir1 build\mingw.release\magnetic
Cc build\mingw.release\magnetic\emu.o
Link build\mingw.release\level9\level9.exe
Cc build\mingw.release\magnetic\glk.o
MkDir1 build\mingw.release\nitfol
Cc build\mingw.release\nitfol\automap.o
Install build\dist\level9.exe
1 file(s) copied.
Cc build\mingw.release\nitfol\solve.o
Cc build\mingw.release\nitfol\infix.o
Cc build\mingw.release\nitfol\copying.o
Cc build\mingw.release\nitfol\debug.o
Cc build\mingw.release\nitfol\inform.o
Cc build\mingw.release\nitfol\quetzal.o
Cc build\mingw.release\nitfol\undo.o
Cc build\mingw.release\nitfol\op_call.o
Cc build\mingw.release\nitfol\decode.o
Link build\mingw.release\magnetic\magnetic.exe
Cc build\mingw.release\nitfol\errmesg.o
Cc build\mingw.release\nitfol\globals.o
Cc build\mingw.release\nitfol\iff.o
Cc build\mingw.release\nitfol\init.o
Cc build\mingw.release\nitfol\io.o
Install build\dist\magnetic.exe
Cc build\mingw.release\nitfol\z_io.o
Cc build\mingw.release\nitfol\op_jmp.o
1 file(s) copied.
Cc build\mingw.release\nitfol\op_math.o
Cc build\mingw.release\nitfol\op_save.o
Cc build\mingw.release\nitfol\op_table.o
Cc build\mingw.release\nitfol\op_v6.o
Cc build\mingw.release\nitfol\oplist.o
Cc build\mingw.release\nitfol\stack.o
Cc build\mingw.release\nitfol\zscii.o
Cc build\mingw.release\nitfol\tokenise.o
Cc build\mingw.release\nitfol\struct.o
Cc build\mingw.release\nitfol\objects.o
Cc build\mingw.release\nitfol\portfunc.o
Cc build\mingw.release\nitfol\hash.o
Cc build\mingw.release\nitfol\sound.o
Cc build\mingw.release\nitfol\graphics.o
Cc build\mingw.release\nitfol\blorb.o
Cc build\mingw.release\nitfol\main.o
Cc build\mingw.release\nitfol\startunix.o
MkDir1 build\mingw.release\scare
MkDir1 build\mingw.release\scott
Cc build\mingw.release\scare\sctafpar.o
Cc build\mingw.release\scott\scott.o
Cc build\mingw.release\scare\sctaffil.o
Cc build\mingw.release\scare\scprops.o
Cc build\mingw.release\scare\scvars.o
Link build\mingw.release\nitfol\nitfol.exe
Cc build\mingw.release\scare\scexpr.o
Cc build\mingw.release\scare\scprintf.o
Cc build\mingw.release\scare\scinterf.o
Install build\dist\nitfol.exe
1 file(s) copied.
Cc build\mingw.release\scare\scparser.o
Link build\mingw.release\scott\scott.exe
Cc build\mingw.release\scare\sclibrar.o
Cc build\mingw.release\scare\scrunner.o
Install build\dist\scott.exe
Cc build\mingw.release\scare\scevents.o
1 file(s) copied.
Cc build\mingw.release\scare\scnpcs.o
Cc build\mingw.release\scare\scobjcts.o
Cc build\mingw.release\scare\sctasks.o
Cc build\mingw.release\scare\screstrs.o
Cc build\mingw.release\scare\scgamest.o
Cc build\mingw.release\scare\scserial.o
Cc build\mingw.release\scare\scresour.o
Cc build\mingw.release\scare\scutils.o
Cc build\mingw.release\scare\scdebug.o
Cc build\mingw.release\scare\sclocale.o
Cc build\mingw.release\scare\scmemos.o
Cc build\mingw.release\scare\os_glk.o
MkDir1 build\mingw.release\tads
Cc build\mingw.release\tads\memicmp.o
Cc build\mingw.release\tads\osbuffer.o
Cc build\mingw.release\tads\osglk.o
Cc build\mingw.release\tads\osglkban.o
Cc build\mingw.release\tads\osmisc.o
Cc build\mingw.release\tads\osparse.o
C++ build\mingw.release\tads\osportable.o
C++ build\mingw.release\tads\t23run.o
Cc build\mingw.release\tads\t2askf.o
Cc build\mingw.release\tads\t2indlg.o
C++ build\mingw.release\tads\t3askf.o
C++ build\mingw.release\tads\t3indlg.o
C++ build\mingw.release\tads\vmuni_cs.o
C++ build\mingw.release\tads\charmap.o
tads\osportable.cc: In function ‘int os_file_stat(const char*, int, os_file_stat_t*)’:
tads\osportable.cc:593:46: warning: right shift count >= width of type [-Wshift-count-overflow]
? (uint32_t)((buf.st_size >> 32) & 0xFFFFFFFF)
^
C++ build\mingw.release\tads\md5.o
C++ build\mingw.release\tads\resldexe.o
C++ build\mingw.release\tads\resload.o
…on 400th target…
C++ build\mingw.release\tads\sha2.o
C++ build\mingw.release\tads\std.o
C++ build\mingw.release\tads\tcerr.o
C++ build\mingw.release\tads\tcerrmsg.o
C++ build\mingw.release\tads\tcgen.o
C++ build\mingw.release\tads\tcglob.o
C++ build\mingw.release\tads\tcmain.o
C++ build\mingw.release\tads\tcprs.o
C++ build\mingw.release\tads\tcprs_rt.o
Link build\mingw.release\scare\scare.exe
C++ build\mingw.release\tads\tcprsnf.o
C++ build\mingw.release\tads\tcprsnl.o
C++ build\mingw.release\tads\tcprsstm.o
C++ build\mingw.release\tads\tcsrc.o
Install build\dist\scare.exe
C++ build\mingw.release\tads\tct3.o
1 file(s) copied.
C++ build\mingw.release\tads\tct3_d.o
C++ build\mingw.release\tads\tct3nl.o
C++ build\mingw.release\tads\tct3stm.o
C++ build\mingw.release\tads\tct3unas.o
C++ build\mingw.release\tads\tctok.o
C++ build\mingw.release\tads\utf8.o
C++ build\mingw.release\tads\vmanonfn.o
C++ build\mingw.release\tads\vmbif.o
C++ build\mingw.release\tads\vmbifl.o
C++ build\mingw.release\tads\vmbifreg.o
C++ build\mingw.release\tads\vmbift3.o
C++ build\mingw.release\tads\vmbiftad.o
C++ build\mingw.release\tads\vmbiftio.o
tads\tads3\vmbiftad.cpp: In static member function ‘static vm_obj_id_t CVmBifTADS::format_datetime_list(time_t)’:
tads\tads3\vmbiftad.cpp:2291:49: warning: right shift count >= width of type [-Wshift-count-overflow]
vmg_ FALSE, (uint32_t)(timer >> 32),
^
C++ build\mingw.release\tads\vmbignum.o
C++ build\mingw.release\tads\vmbignumlib.o
C++ build\mingw.release\tads\vmbt3_nd.o
C++ build\mingw.release\tads\vmbytarr.o
C++ build\mingw.release\tads\vmcfgmem.o
C++ build\mingw.release\tads\vmcoll.o
C++ build\mingw.release\tads\vmconhmp.o
C++ build\mingw.release\tads\vmconsol.o
C++ build\mingw.release\tads\vmcrc.o
C++ build\mingw.release\tads\vmcset.o
C++ build\mingw.release\tads\vmdate.o
C++ build\mingw.release\tads\vmdict.o
C++ build\mingw.release\tads\vmdynfunc.o
C++ build\mingw.release\tads\vmerr.o
C++ build\mingw.release\tads\vmerrmsg.o
C++ build\mingw.release\tads\vmfile.o
C++ build\mingw.release\tads\vmfilnam.o
C++ build\mingw.release\tads\vmfilobj.o
C++ build\mingw.release\tads\vmfref.o
C++ build\mingw.release\tads\vmfunc.o
C++ build\mingw.release\tads\vmglob.o
C++ build\mingw.release\tads\vmgram.o
C++ build\mingw.release\tads\vmhash.o
C++ build\mingw.release\tads\vmhostsi.o
C++ build\mingw.release\tads\vmhosttx.o
C++ build\mingw.release\tads\vmimage.o
C++ build\mingw.release\tads\vmimg_nd.o
C++ build\mingw.release\tads\vmini_nd.o
C++ build\mingw.release\tads\vminit.o
C++ build\mingw.release\tads\vminitim.o
C++ build\mingw.release\tads\vmintcls.o
C++ build\mingw.release\tads\vmisaac.o
C++ build\mingw.release\tads\vmiter.o
C++ build\mingw.release\tads\vmlog.o
C++ build\mingw.release\tads\vmlookup.o
C++ build\mingw.release\tads\vmlst.o
C++ build\mingw.release\tads\vmmain.o
C++ build\mingw.release\tads\vmmcreg.o
C++ build\mingw.release\tads\vmmeta.o
C++ build\mingw.release\tads\vmnetfillcl.o
C++ build\mingw.release\tads\vmobj.o
C++ build\mingw.release\tads\vmop.o
C++ build\mingw.release\tads\vmpack.o
C++ build\mingw.release\tads\vmpat.o
C++ build\mingw.release\tads\vmpool.o
C++ build\mingw.release\tads\vmpoolim.o
C++ build\mingw.release\tads\vmregex.o
C++ build\mingw.release\tads\vmrun.o
C++ build\mingw.release\tads\vmrunsym.o
C++ build\mingw.release\tads\vmsa.o
C++ build\mingw.release\tads\vmsave.o
C++ build\mingw.release\tads\vmsort.o
C++ build\mingw.release\tads\vmsortv.o
C++ build\mingw.release\tads\vmsrcf.o
C++ build\mingw.release\tads\vmstack.o
C++ build\mingw.release\tads\vmstr.o
C++ build\mingw.release\tads\vmstrbuf.o
C++ build\mingw.release\tads\vmstrcmp.o
C++ build\mingw.release\tads\vmtmpfil.o
Link build\mingw.release\geas\geas.exe
C++ build\mingw.release\tads\vmtobj.o
C++ build\mingw.release\tads\vmtype.o
C++ build\mingw.release\tads\vmtypedh.o
C++ build\mingw.release\tads\vmtz.o
C++ build\mingw.release\tads\vmtzobj.o
C++ build\mingw.release\tads\vmundo.o
C++ build\mingw.release\tads\vmvec.o
C++ build\mingw.release\tads\vmconnom.o
Cc build\mingw.release\tads\argize.o
Cc build\mingw.release\tads\bif.o
Cc build\mingw.release\tads\bifgdum.o
…on 500th target…
Cc build\mingw.release\tads\cmap.o
Cc build\mingw.release\tads\cmd.o
Cc build\mingw.release\tads\dat.o
Cc build\mingw.release\tads\dbgtr.o
Cc build\mingw.release\tads\errmsg.o
Cc build\mingw.release\tads\execmd.o
Cc build\mingw.release\tads\fio.o
Cc build\mingw.release\tads\fioxor.o
Cc build\mingw.release\tads\getstr.o
Cc build\mingw.release\tads\ler.o
Cc build\mingw.release\tads\linfdum.o
Cc build\mingw.release\tads\lst.o
Cc build\mingw.release\tads\mch.o
Cc build\mingw.release\tads\mcm.o
Cc build\mingw.release\tads\mcs.o
Install build\dist\geas.exe
1 file(s) copied.
Cc build\mingw.release\tads\obj.o
Cc build\mingw.release\tads\oem.o
Cc build\mingw.release\tads\os0.o
Cc build\mingw.release\tads\oserr.o
Cc build\mingw.release\tads\osifc.o
Cc build\mingw.release\tads\osnoui.o
Archive build\mingw.release\tads\libtads3.a
Cc build\mingw.release\tads\osrestad.o
Cc build\mingw.release\tads\osstzprs.o
ar: creating build\mingw.release\tads\libtads3.a
Cc build\mingw.release\tads\ostzposix.o
Cc build\mingw.release\tads\out.o
Cc build\mingw.release\tads\output.o
Cc build\mingw.release\tads\ply.o
Archive build\mingw.release\tads\libtads3.a
Cc build\mingw.release\tads\qas.o
Cc build\mingw.release\tads\regex.o
Cc build\mingw.release\tads\run.o
Cc build\mingw.release\tads\runstat.o
Cc build\mingw.release\tads\suprun.o
Cc build\mingw.release\tads\trd.o
Cc build\mingw.release\tads\voc.o
Cc build\mingw.release\tads\vocab.o
Install build\dist\libvorbis-0.dll
1 file(s) copied.
Install build\dist\libvorbisfile-3.dll
1 file(s) copied.
Install build\dist\mikmod.dll
Install build\dist\gargoyle.exe
1 file(s) copied.
Install build\dist\libgarglk.dll
1 file(s) copied.
1 file(s) copied.
Archive build\mingw.release\tads\libtads2.a
ar: creating build\mingw.release\tads\libtads2.a
Link build\mingw.release\tads\tadsr.exe
Install build\dist\tadsr.exe
1 file(s) copied.
…updated 544 target(s)…
‘makensis.exe’ is not recognized as an internal or external command,
operable program or batch file.
… finished packaging!
Press any key to continue . . .

C:\garglk-203-tads-upgrade>gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=C:/TDM-GCC-32/bin/…/libexec/gcc/mingw32/5.1.0/lto-wrapper.exe
Target: mingw32
Configured with: …/…/…/src/gcc-5.1.0/configure --build=mingw32 --enable-languages=ada,c,c++,fortran,lto,objc,obj-c++ --enable-libgomp --enable-lto --enable-graphite --enable-libstdcxx-debug --enable
-threads=posix --enable-version-specific-runtime-libs --enable-fully-dynamic-string --enable-libstdcxx-threads --enable-libstdcxx-time --with-gnu-ld --disable-werror --disable-nls --disable-win32-regis
try --disable-symvers --enable-cxx-flags=’-fno-function-sections -fno-data-sections -DWINPTHREAD_STATIC’ --prefix=/mingw32tdm --with-local-prefix=/mingw32tdm --with-pkgversion=tdm-1 --enable-sjlj-excep
tions --with-bugurl=http://tdm-gcc.tdragon.net/bugs
Thread model: posix
gcc version 5.1.0 (tdm-1)

C:\garglk-203-tads-upgrade>[/spoiler]

Just a heads up: When compiling with gcc/g++ optimization option -O3 for the armv7-a platform (in my case for use with a jailbroken Kindle PW 3), loading a Tads 3 file (it.t3) led to a crash: “Bus Error”. Compiling with -O2 solved the problem.

The Kindle Paperwhite 3 binaries can be found here: mobileread.com/forums/showpo … stcount=77

Many thanks for all your work! I was using the code that was already mentioned by Chris Spiegel from this branch: fabiszewski.net/kindle-gargoyle/).

I’ve decided to make a new build of Gargoyle for Windows to fix this bug.

Here it is. Now City of Secrets works fine.

gargoyle_23-oct-2016_win32.zip

P.S. As usual, I also included several custom colour schemes (i.e. bright text on dark background). Enjoy.

P.S. Edit: fixed the download link.

On the license issues, is Son of HunkyPunk listed as one of the TADS ports (Android mobile/tablets)? I know a lot of the Amazon Kindles use Android variations. The Author of TADS asked that port authors contact to be listed. I just dropped them an email.

This source code is distributed for the specific purpose of porting
TADS, so that you can run the software on any system of your choosing.
All other derivative works are prohibited without the written
permission of the author.  I want to avoid the creation of variations
on the system, because it leads to confusion on the part of users if
there are multiple incompatible flavors floating around.  However, if
you have a specific idea in mind, I'd be happy to at least consider
it.  Please contact the author if you have any questions about this or
if you would like permission to create a derived work.  

If you port TADS to a new platform, the author does grant permission
for you to distribute your ported version - I encourage it, in fact.
I ask that you include your contact information in any distribution
package you create, so that users of your version will know how to
contact you if they have any questions relating specifically to your
version.

Got TADS upgraded to 3.1.3 in Thunderword on Android. Here is a screen show showing the version via data sharing with second app, “Text Fiction for Thunderword”

Here’s the latest Windows release of Gargoyle, built from source with MinGW 5.1.0. Tested on Windows 7 x64 and Windows XP.

Enjoy.

gargoyle_27-Feb-2018.zip