home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / me34src.zip / me3 / doc / mc.bug < prev    next >
Lisp/Scheme  |  1995-01-14  |  6KB  |  157 lines

  1.                                 -*-text-*-
  2.               The Mutt Compiler Bug List
  3.               --- ---- --------    --- ----
  4.  
  5. ====================================================================
  6. ====            MC2 Needed Features            ====
  7. ====================================================================
  8.  
  9.  
  10. ====================================================================
  11. ====            The MC2 Low End of the Want List            ====
  12. ====================================================================
  13.  
  14. ====================================================================
  15. ====            MC2 Bug and Change list            ====
  16. ====================================================================
  17. - means bug in this (and subsequent) releases
  18. * means bug fixed in next release
  19. + means new feature in next release
  20.  
  21.  
  22. v2.6 2/13/94    [Released May, 1994]
  23. ---- -------
  24.  
  25. v2.5 3/20/93    [Released June, 1993]
  26. ---- -------
  27. * (insert-object list (push-args n)) pushed the last arg twice.  Fixed
  28.   2/94
  29.  
  30. v2.4 1/30/92    [Released January 30, 1993]
  31. ---- -------
  32. + Changed mco_to_c.c to use the new MMset_block() routine (created as a
  33.   result of the intra-block call bug - see mm.bug).  2/93.
  34. + Added {{ code }} to defun anon functions.  Did this (mainly) so I
  35.   could write a save-excursion routine.  For example:
  36.     (defun save-excursion (pointer defun code) { ... (code) ... })
  37.     (save-excursion {{ (goto-line 0) }})
  38.   This has the drawback that you can't access local variables not in
  39.   the {{'s (since it is a seprate function).  For example:
  40.     { (int x) {{ (msg x) }} }
  41.   doesn't work.
  42.   Another drawback is no named args (must use (arg n)).  Fixable with a
  43.   ANON modifier if this is much of a problem.
  44.   3/93
  45. + Rewrote a BUNCH of the compiler as a result of adding {{ }}.  It was a
  46.   mess, this cleaned it up quite a bit.  It could use a lot more
  47.   cleaning though.  3/93
  48. + Rewrote a bunch of the compiler to use hash tables in a effort to
  49.   speed things up.  Didn't work very well but the code is quite a bit
  50.   cleaner.  3/93.
  51.  
  52. * mco_to_c.c did some pointer math for printf("%d") and didn't cast the
  53.   result.  On machines with different size pointers and ints, this can
  54.   cause problems.  4/93 Steve James <ste@sees.bangor.ac.uk>.  Also did a
  55.   bit of clean up while I was there.
  56. * mco_to_c.c created an initialized char array that Sun complained about
  57.   because some of the initalizers where >127.
  58.   Fix: Change the array to unsigned char.  5/29/93
  59.  
  60. v2.3 1/30/92    [Released January 30, 1993]
  61. ---- -------
  62.  
  63. v2.2         [Not released]
  64. ---- 
  65. * The following program can core dump mm() (gives wrong result in any
  66.     case:
  67.       (defun
  68.     push-arg-bug { (push-arg-bug1 (push-arg (concat "one" "two"))) }
  69.     push-arg-bug1 (string s) { (msg ">" s "<") }
  70.       )
  71.   Why:
  72.     concat puts "onetwo" into result and push-arg does a shove-RV which
  73.       doesn't push result on to the stack.  When msg does the concat,
  74.       there is a strcat(result, result) which can loop forever and write
  75.       over lots of memory (HP-UX does, TurboC apparenly does a strlen
  76.       first and is OK - but still has the wrong result).
  77.     This will be a problem for any push-arg where RV is a string in result.   
  78.     1/93
  79.   Notes:  push-RV fixes it for strings but breaks some cases of function
  80.     address (floc).
  81.   Fix: Use push-RV.  I'll fix the floc case when I need it.
  82.  
  83. * code.c didn't have wide enough printf fields when listing large files.
  84.   Cosmetic.  10/92
  85.  
  86. v2.1 2/2/92    [Re-released August 30, 1992]
  87. ---- ------
  88. * mco_to_c.c generated code that wouldn't compile if the number of
  89.   programs was zero.  Sleeze-ball fix:  use #if NUM_PGMS.  10/92.
  90.  
  91. - MMload_code() (mm.c) should also print the file name when complaining.
  92.   5/92
  93.  
  94. v2.1 2/2/92    [Released April 12, 1992]
  95. ---- ------
  96. + Wrote mco_to_c.c - a program that converts a .mco file into C.
  97.   Basically, it preloads the .mco file so you can link it into an
  98.   application.  Thanks to Todd Moody (sjuphil!tmoody@uu.psi.com) for the
  99.   initial idea.  Only change to existing code was to unstatic a routine
  100.   in mm.c.  8/92
  101.  
  102. - MMload_code() (mm.c) should also print the file name when complaining.
  103.   5/92
  104.  
  105. v2.0 2/2/92    [MC2 beta, released February 28, 1992]
  106. ---- ------
  107. * Various lint cleanups.  3/92
  108. * Added support for stdargs.  I still don't like being forced to have an
  109.   arg before the var args start.  3/92
  110.  
  111.  
  112. ============== MC below, MC2 above ===========
  113.  
  114. Convert to MC2 and MM2:
  115. -------    -- --- --- ---
  116. + Changed strings to dynamic strings, no length (prototyped 3/91).
  117. + Added MMgc_external_objects() call to mm.c
  118. + Changed to strings-as-objects with garbage collection, did the object
  119.   manager stuff (5/91).
  120. + Added list, extract-element, extract-elements, insert-object
  121.   length-of, remove-elements keywords 6/91.
  122. + Moved functionality of strlen into length-of, removed strlen.
  123. + Added convert-to.  With this, (asc) is just (convert-to NUMBER
  124.   (extract-element text n)).  In CLisp, this is (coerce object
  125.   result-type).
  126. + Moved functionality of substr into extract-elements and
  127.   extract-element, removed substr (12/91).
  128. + Renamed int to small-int and INT to int.  Forgetting that int was only
  129.   16 bits burned me once and thats enough.  I should probably get rid of
  130.   small-int and rename int to number but thats just a bit too drastic
  131.   for this old C hack.  (12/91).
  132. + Changed the format of the errors, warnings line MC2 spits out so it
  133.   doesn't confuse automatic error parsing.  1/92.
  134.  
  135.  
  136. 7/23/89 (PL1)     [Released ?]
  137. -------------
  138.  
  139. 7/23/89     [Released August 6, 1989]
  140. -------
  141. + Major functionality changes to create MC2.
  142. + Need a way to push an expression onto the call stack:  (push-arg exp).
  143.  
  144. 9/5/88 (PL2)
  145. -----------
  146. * Fixed how (ask) works.  See notes in ME 9/5/88 (PL4).
  147. * Renamed case to cond.  The functionality is the same as LISPs cond so
  148.     I used that name for consistency.  Removed case from documentation.
  149.  
  150. 9/5/88
  151. ------
  152. * (const 'foobar'
  153.     )
  154.     causes an error.
  155. * (floc foobar) will error if foobar not defined yet.
  156.   Fix:  Now errors if foobar not defined in the file.
  157.