home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / comp / sys / atari / st / tech / 4216 < prev    next >
Encoding:
Text File  |  1992-07-31  |  4.2 KB  |  77 lines

  1. Newsgroups: comp.sys.atari.st.tech
  2. Path: sparky!uunet!mnemosyne.cs.du.edu!nyx!ilepore
  3. From: ilepore@nyx.cs.du.edu (Ian Lepore)
  4. Subject: Sozobon 1.2, 1.33i, 2.0, Heat-and-Serve
  5. Message-ID: <1992Jul31.190446.5353@mnemosyne.cs.du.edu>
  6. X-Disclaimer: Nyx is a public access Unix system run by the University
  7.     of Denver for the Denver community.  The University has neither
  8.     control over nor responsibility for the opinions of users.
  9. Sender: usenet@mnemosyne.cs.du.edu (netnews admin account)
  10. Organization: Nyx, Public Access Unix at U. of Denver Math/CS dept.
  11. Date: Fri, 31 Jul 92 19:04:46 GMT
  12. Lines: 63
  13.  
  14.  Sozobon v1.2 is the first release that can rightly be said to have really
  15. worked at all.  Not that it worked well, mind, there's a large variety of
  16. codegen bugs and sequences in source that can gracelessly crash the compiler.
  17. You have to be well on your way to being an ST (and to some degree unix) guru
  18. just to install the compiler and do a Hello World program.  A beginner has
  19. little chance of getting this beast installed and configured without help.
  20.  
  21.  Sozobon v2.0 is v1.2 warmed over.  It adds long external identifiers as a
  22. new feature, but little else.  All the codegen bugs from v1.2 are still 
  23. there.  It also includes a debugger, which will work with all other versions
  24. of Sozobon or HSC as well.
  25.  
  26.  Sozobon v1.33i is my modified version of Sozobon v1.2.  I dubbed it the
  27. "Heat-and-Serve" release, because it comes with an INSTALL.PRG that installs
  28. and configures the compiler for you.  At the end of the install, you can 
  29. just double-click on EXAMPLES.MAK (or, for CLI users, cd examples;make) and
  30. it's up and running, compiling a test suite for you to ensure the installation
  31. was clean.  v1.33i is basically v1.2 with lots of bugfixes and a fair number
  32. of new features.  The new features include desktop-friendliness, for those
  33. (like me) who hate using a CLI, and a variety of extensions that move toward
  34. ANSI compatibility.  (EG, #else, #error, #line, #pragma handling; adjacent
  35. string literals are concatenated into a single string; things like that.)
  36. The optimizer in 1.33i is improved with lots of new peephole sequences.
  37. All the compiler pieces are faster, generally at least 50% faster, than 1.2.
  38. Source code that would crash 1.2 is accepted by 1.33 in most cases.  (And,
  39. when a bad code sequence is encountered that confuses it, it gets reported
  40. like any other error, instead of just putting bombs on the screen.)
  41.  
  42.  To avoid confusion with ongoing releases of Sozobon (v2.0 was released by
  43. the sozo crew just after I had released 1.33i; I thought they had gone out
  44. of the ST business), I've changed the name of my versions to Heat-and-Serve C
  45. (HSC) from now on.  Version 1.40 is in testing now, and should be ready for
  46. release in a couple weeks.  New things in 1.40 include:
  47.  
  48.  - More improvements towards ANSI compatibility (still not prototypes yet)
  49.    including #elif handling, proper handling of function-like macros.
  50.  - Codegen bugfixes; library routine bugfixes.
  51.  - Full ARGV support on all tools, compiler pieces, and programs created
  52.    with the new compiler/library.
  53.  - The compiler runs properly as a MiNT background task now.
  54.  - The optimizer is WAY faster (eg: one module that used to take 7 minutes
  55.    to optimize now takes 90 seconds); this affects mainly the worstcase
  56.    situations like huge functions to be optimized.
  57.  - You can now access arrays of any size.  In general, pointer math is 
  58.    much more compliant than it used to be.  size_t is still unsigned short,
  59.    and sizeof(int) is still hardwired as 2 bytes.  Despite this, you can
  60.    use a size_t type to index into an array bigger than 32 or 64k.  (But,
  61.    if you ask for sizeof(hugearray) it'll give you a loss-of-significance
  62.    error).      
  63.  - You are still limited to 32k on the size of any single structure, but 
  64.    you can have arrays of structures that exceed 32 or 64k total.  (I humbly
  65.    suggest that if you have a structure bigger then 32k, it might be wise
  66.    to reconsider your design; there are certainly other ways to skin that cat).
  67.  
  68.  Well, that about covers it.  There's a zillion other little things that have
  69. been enhanced in 1.33i and 1.40 that I haven't mentioned.  (Oh -- full 
  70. support for void* types was added to 1.33i, forgot to mention that.)
  71.  
  72.  
  73. --
  74. - Ian
  75. (void *) where prohibited by law
  76.  
  77.