X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f From: Rugxulo Newsgroups: comp.lang.misc,comp.os.msdos.djgpp Subject: Re: ANN: Seed7 Release 2011-11-11 Date: Fri, 11 Nov 2011 21:08:31 -0800 (PST) Organization: http://groups.google.com Lines: 321 Message-ID: References: <7037d719-14a3-4e62-8ebc-0fdbdbdf1db1 AT r9g2000vbw DOT googlegroups DOT com> NNTP-Posting-Host: 65.13.115.246 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 X-Trace: posting.google.com 1321074604 21434 127.0.0.1 (12 Nov 2011 05:10:04 GMT) X-Complaints-To: groups-abuse AT google DOT com NNTP-Posting-Date: Sat, 12 Nov 2011 05:10:04 +0000 (UTC) Complaints-To: groups-abuse AT google DOT com Injection-Info: k10g2000yqn.googlegroups.com; posting-host=65.13.115.246; posting-account=p5rsXQoAAAB8KPnVlgg9E_vlm2dvVhfO User-Agent: G2/1.0 X-Google-Web-Client: true X-Google-Header-Order: HNKRAUELSC X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.630.0 Safari/534.16,gzip(gfe) Bytes: 14892 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id pAC5U2N3012308 Reply-To: djgpp AT delorie DOT com Hi, On Nov 11, 4:20 pm, tm wrote: > > I have released a new version of Seed7: seed7_05_20111111.tgz Remember me? :-) Yeah, about a year ago I hacked Seed7 to (barely) work with DJGPP, at least the interpreter. Long story short: I'm no comp. sci. major, I don't really know what I'm doing, just too bored and curious for my own good ... too busy with other crud, procrastinate too much, did spent a bit of time learning bits of other languages (but, for no apparent reason, not Seed7 ... yet, sorry!!), had some computer woes, some personal crud, etc. I still browsed here (comp.lang.misc) occasionally and usually downloaded the latest Seed7 sources but never did anything (though I did notice you added a DJGPP makefile a few months back). The Salmon guy was bragging about how portable his language was. Well, long story short, it didn't work for me. I honestly didn't even want to bother him with my opinions as I didn't think he cared. (Silly me for including DOS under the portable spectrum, heheh.) And then I figured I might as well give yours a go again (even if I failed), esp. since I'd had partial success before. The big problem with ANSI C (from my very weak perspective) is that, while clearly being a huge success and accomplishing a lot, people just "think" everything is portable when it's not. Basically you can't assume anything. And the big problems in my book are always build- related moreso than anything else. I hate complicated *nix makefiles (usually relying on dozens of POSIX tools) or anything that relies on a specific file system. That was also an issue here. I don't honestly expect anyone to cater to "obsolete" file systems or OSes (like DOS), but ... it would still be nice to not so heavily rely on Super_long_filenames_that_conflict_in_first_eight_chars.TXT. More importantly is weird things like makefiles, e.g. ones that have lines greater than 1024 chars (eek). That is *very* rare in my experience, though I've noticed GNU Emacs, Salmon, and now Seed7 doing it. Believe it or not, my favorite text editor (TDE) seems to munge lines longer than that, which is a curious error when you don't know what or how or why. Ugh. (So I temporarily used VILE, works great!) Basically my XP machine is half-dead, so I can't use that (though I could use aunts' one night if really needed). I ended up running under native FreeDOS w/ DOSLFN loaded. Not ideal as some things don't work as well, if at all, but here it basically worked (surprisingly) ... after a few minor tweaks. Yeah, I really should've tried this earlier, but you never asked / nagged / emailed, so I didn't. It mostly (but not fully) seems to work. I can't remember why DJGPP will sometimes say "No swap space!" That's kinda weird, normally it's obvious, but here it wasn't. (Yeah, I know, strerror() is the likely culprit, but I didn't look any closer than that.) Anyways, I hope this isn't too too long a reply, but here's the diff for the Makefile (mandatory!) and (partially successful) output of "/ prg/hi chk_all": --- mk_djgpp.mak 2011-10-11 01:38:30.000000000 -0500 +++ mk_djgpp.new 2011-11-11 22:38:28.000000000 -0600 @@ -6,7 +6,7 @@ # CFLAGS = -O2 -fomit-frame-pointer -funroll-loops -Wall # CFLAGS = -O2 -fomit-frame-pointer -Wall -Wstrict-prototypes - Winline -Wconversion -Wshadow -Wpointer-arith -CFLAGS = -O2 -g -Wall -Wstrict-prototypes -Winline -Wconversion - Wshadow -Wpointer-arith +CFLAGS = -O2 -s -Wall -Wstrict-prototypes -Winline -Wconversion - Wshadow -Wpointer-arith # CFLAGS = -O2 -g -pg -Wall -Wstrict-prototypes -Winline -Wconversion -Wshadow -Wpointer-arith # CFLAGS = -O2 -Wall -Wstrict-prototypes -Winline -Wconversion - Wshadow -Wpointer-arith # CFLAGS = -O2 -pg -Wall -Wstrict-prototypes -Winline -Wconversion - Wshadow -Wpointer-arith @@ -28,7 +28,7 @@ ALL_S7_LIBS = ..\bin\$(COMPILER_LIB) ..\bin\$(COMP_DATA_LIB) ..\bin\$ (DRAW_LIB) ..\bin\$(CONSOLE_LIB) ..\bin\$(SEED7_LIB) # CC = g++ CC = gcc -GET_CC_VERSION_INFO = $(CC) --version > +GET_CC_VERSION_INFO = $(CC) --version BIGINT_LIB_DEFINE = USE_BIG_RTL_LIBRARY BIGINT_LIB = big_rtl @@ -104,8 +104,8 @@ version.h: echo #define ANSI_C > version.h echo #define USE_DIRENT >> version.h - echo #define PATH_DELIMITER 92 /* backslash (ASCII) */ >> version.h - echo #define SEARCH_PATH_DELIMITER ';' >> version.h + echo #define PATH_DELIMITER 92 >> version.h + echo #define SEARCH_PATH_DELIMITER \';\' >> version.h echo #define MAP_ABSOLUTE_PATH_TO_DRIVE_LETTERS >> version.h echo #define CATCH_SIGNALS >> version.h echo #define AWAIT_WITH_SELECT >> version.h @@ -119,10 +119,11 @@ echo #define $(BIGINT_LIB_DEFINE) >> version.h echo #define likely(x) __builtin_expect((x),1) >> version.h echo #define unlikely(x) __builtin_expect((x),0) >> version.h - $(GET_CC_VERSION_INFO) cc_vers.txt - echo #include "direct.h" > chkccomp.h +# $(GET_CC_VERSION_INFO) >cc_vers.txt + echo gcc.exe (GCC) 4.6.2 > cc_vers.txt + echo #include \"direct.h\" > chkccomp.h echo #define mkdir(path,mode) mkdir(path) >> chkccomp.h - echo #define LIST_DIRECTORY_CONTENTS "dir" >> chkccomp.h + echo #define LIST_DIRECTORY_CONTENTS \"dir\" >> chkccomp.h echo #define long_long_EXISTS >> chkccomp.h echo #define long_long_SUFFIX_LL >> chkccomp.h $(CC) chkccomp.c -lm -o chkccomp @@ -130,23 +131,23 @@ del chkccomp.h del chkccomp.exe del cc_vers.txt - echo #define OBJECT_FILE_EXTENSION ".o" >> version.h - echo #define LIBRARY_FILE_EXTENSION ".a" >> version.h - echo #define EXECUTABLE_FILE_EXTENSION ".exe" >> version.h - echo #define C_COMPILER "$(CC)" >> version.h - echo #define GET_CC_VERSION_INFO "$(GET_CC_VERSION_INFO)" >> version.h - echo #define CC_OPT_DEBUG_INFO "-g" >> version.h - echo #define CC_OPT_NO_WARNINGS "-w" >> version.h - echo #define LINKER_OPT_OUTPUT_FILE "-o " >> version.h - echo #define LINKER_FLAGS "$(LDFLAGS)" >> version.h - echo #define SYSTEM_LIBS "$(SYSTEM_LIBS)" >> version.h - echo #define SYSTEM_CONSOLE_LIBS "$(SYSTEM_CONSOLE_LIBS)" >> version.h - echo #define SYSTEM_DRAW_LIBS "$(SYSTEM_DRAW_LIBS)" >> version.h - echo #define SEED7_LIB "$(SEED7_LIB)" >> version.h - echo #define CONSOLE_LIB "$(CONSOLE_LIB)" >> version.h - echo #define DRAW_LIB "$(DRAW_LIB)" >> version.h - echo #define COMP_DATA_LIB "$(COMP_DATA_LIB)" >> version.h - echo #define COMPILER_LIB "$(COMPILER_LIB)" >> version.h + echo #define OBJECT_FILE_EXTENSION \".o\" >> version.h + echo #define LIBRARY_FILE_EXTENSION \".a\" >> version.h + echo #define EXECUTABLE_FILE_EXTENSION \".exe\" >> version.h + echo #define C_COMPILER \"$(CC)\" >> version.h + echo #define GET_CC_VERSION_INFO \"echo gcc.exe (GCC) 4.6.2 \" >> version.h + echo #define CC_OPT_DEBUG_INFO \"-g\" >> version.h + echo #define CC_OPT_NO_WARNINGS \"-w\" >> version.h + echo #define LINKER_OPT_OUTPUT_FILE \"-o \" >> version.h + echo #define LINKER_FLAGS \"$(LDFLAGS)\" >> version.h + echo #define SYSTEM_LIBS \"$(SYSTEM_LIBS)\" >> version.h + echo #define SYSTEM_CONSOLE_LIBS \"$(SYSTEM_CONSOLE_LIBS)\" >> version.h + echo #define SYSTEM_DRAW_LIBS \"$(SYSTEM_DRAW_LIBS)\" >> version.h + echo #define SEED7_LIB \"$(SEED7_LIB)\" >> version.h + echo #define CONSOLE_LIB \"$(CONSOLE_LIB)\" >> version.h + echo #define DRAW_LIB \"$(DRAW_LIB)\" >> version.h + echo #define COMP_DATA_LIB \"$(COMP_DATA_LIB)\" >> version.h + echo #define COMPILER_LIB \"$(COMPILER_LIB)\" >> version.h echo #define STACK_SIZE_DEFINITION unsigned _stklen = 4194304 >> version.h $(CC) -o setpaths setpaths.c .\setpaths.exe >> version.h HI INTERPRETER Version 4.5.8856 Copyright (c) 1990-2011 Thomas Mertes compiling the compiler - okay chkint - okay chkflt *** The interpreted chkflt does not work okay: Comparison of float values works correct. Compare of float values works correct. Decimal conversion of float works correct. Conversion from integer to float works correct. Truncation of float works correct. Addition works correct for selected values. A ** B works correct for selected values. A ** B with integer B works correct for selected values. Infinity works correct for selected values. ***** NaN is not returned as error value for math functions ***** NaN does not work correct Negative zero does work correct. *** The compiled chkflt does not work okay: Comparison of float values works correct. Compare of float values works correct. Decimal conversion of float works correct. Conversion from integer to float works correct. Truncation of float works correct. Addition works correct for selected values. A ** B works correct for selected values. A ** B with integer B works correct for selected values. Infinity works correct for selected values. ***** NaN is not returned as error value for math functions ***** NaN does not work correct Negative zero does work correct. chkstr - okay chkprc - okay chkbig *** The interpreted compiler was not able to compile chkbig *** The compiled compiler was not able to compile chkbig chkbool - okay chkset *** The interpreted compiler was not able to compile chkset *** The compiled compiler was not able to compile chkset chkexc *** The interpreted chkexc does not work okay: Integer exceptions work correct. BigInteger exceptions work correct. Floating point exceptions work correct. String exceptions work correct. Array exceptions work correct. ***** gets from write only file succeeded ***** gets from write only file succeeded ***** getln from write only file succeeded ***** getwd from write only file succeeded ***** gets from UTF-8 write only file succeeded ***** gets from UTF-8 write only file succeeded ***** getln from UTF-8 write only file succeeded ***** getwd from UTF-8 write only file succeeded ***** length for pipe succeeded ***** bigLength for pipe succeeded ***** seek for pipe succeeded ***** seek for pipe succeeded ***** tell for pipe succeeded ***** bigTell for pipe succeeded ***** length for pipe succeeded ***** bigLength for pipe succeeded ***** seek for pipe succeeded ***** seek for pipe succeeded ***** tell for pipe succeeded ***** bigTell for pipe succeeded ***** File exceptions do not work correct seek(STD_IN, 0) raises RANGE_ERROR gets(STD_IN, -1) raises RANGE_ERROR test_func(1 div 0) raises NUMERIC_ERROR 1 div 0 = 0 and TRUE raises NUMERIC_ERROR 1 div 0 = 0 and FALSE raises NUMERIC_ERROR TRUE and 1 div 0 = 0 raises NUMERIC_ERROR 1 div 0 = 0 or TRUE raises NUMERIC_ERROR 1 div 0 = 0 or FALSE raises NUMERIC_ERROR FALSE or 1 div 0 = 0 raises NUMERIC_ERROR if 1 div 0 raises NUMERIC_ERROR 1 div 0 in if then raises NUMERIC_ERROR 1 div 0 in if else raises NUMERIC_ERROR while 1 div 0 raises NUMERIC_ERROR 1 div 0 in while raises NUMERIC_ERROR repeat until 1 div 0 raises NUMERIC_ERROR 1 div 0 in repeat raises NUMERIC_ERROR *** The compiled chkexc does not work okay: Integer exceptions work correct. BigInteger exceptions work correct. Floating point exceptions work correct. String exceptions work correct. Array exceptions work correct. ***** gets from write only file succeeded ***** gets from write only file succeeded ***** getln from write only file succeeded ***** getwd from write only file succeeded ***** gets from UTF-8 write only file succeeded ***** gets from UTF-8 write only file succeeded ***** getln from UTF-8 write only file succeeded ***** getwd from UTF-8 write only file succeeded ***** length for pipe succeeded ***** bigLength for pipe succeeded ***** seek for pipe succeeded ***** seek for pipe succeeded ***** tell for pipe succeeded ***** bigTell for pipe succeeded ***** length for pipe succeeded ***** bigLength for pipe succeeded ***** seek for pipe succeeded ***** seek for pipe succeeded ***** tell for pipe succeeded ***** bigTell for pipe succeeded ***** File exceptions do not work correct seek(STD_IN, 0) raises RANGE_ERROR gets(STD_IN, -1) raises RANGE_ERROR test_func(1 div 0) raises NUMERIC_ERROR 1 div 0 = 0 and TRUE raises NUMERIC_ERROR 1 div 0 = 0 and FALSE raises NUMERIC_ERROR TRUE and 1 div 0 = 0 raises NUMERIC_ERROR 1 div 0 = 0 or TRUE raises NUMERIC_ERROR 1 div 0 = 0 or FALSE raises NUMERIC_ERROR FALSE or 1 div 0 = 0 raises NUMERIC_ERROR if 1 div 0 raises NUMERIC_ERROR 1 div 0 in if then raises NUMERIC_ERROR 1 div 0 in if else raises NUMERIC_ERROR while 1 div 0 raises NUMERIC_ERROR 1 div 0 in while raises NUMERIC_ERROR repeat until 1 div 0 raises NUMERIC_ERROR 1 div 0 in repeat raises NUMERIC_ERROR EDIT: I think?? "hi.exe" (interpreter) was successful with running chkbig, chkset (but fails for the compiler??). Directory of G:\DJGPP\MANIFEST GCC462B MFT 3,265 10-29-11 10:34a gcc462b.mft BNU2211B MFT 1,830 08-05-11 10:37p bnu2211b.mft DJDEV204 MFT 3,484 11-30-03 7:41p djdev204.mft BSH205~1 MFT 449 09-22-09 10:48p bsh205bbr3.mft MAK381B MFT 196 11-24-07 7:43a mak381b.mft SED421B MFT 175 11-22-09 7:20a sed421b.mft FIL41B MFT 1,367 12-15-03 10:03p fil41b.mft TXT20B MFT 932 12-15-03 10:05p txt20b.mft SHL2011B MFT 1,405 12-15-03 10:05p shl2011b.mft FND423~1 MFT 560 06-27-08 4:33p fnd4233br4.mft PDCUR34A MFT 352 10-08-08 10:19p pdcur34a.mft (Hope this helps, sorry if not or too long!)