home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 5 Edit
/
05-Edit.zip
/
me34src.zip
/
me3
/
doc
/
mc.bug
< prev
next >
Wrap
Lisp/Scheme
|
1995-01-14
|
6KB
|
157 lines
-*-text-*-
The Mutt Compiler Bug List
--- ---- -------- --- ----
====================================================================
==== MC2 Needed Features ====
====================================================================
====================================================================
==== The MC2 Low End of the Want List ====
====================================================================
====================================================================
==== MC2 Bug and Change list ====
====================================================================
- means bug in this (and subsequent) releases
* means bug fixed in next release
+ means new feature in next release
v2.6 2/13/94 [Released May, 1994]
---- -------
v2.5 3/20/93 [Released June, 1993]
---- -------
* (insert-object list (push-args n)) pushed the last arg twice. Fixed
2/94
v2.4 1/30/92 [Released January 30, 1993]
---- -------
+ Changed mco_to_c.c to use the new MMset_block() routine (created as a
result of the intra-block call bug - see mm.bug). 2/93.
+ Added {{ code }} to defun anon functions. Did this (mainly) so I
could write a save-excursion routine. For example:
(defun save-excursion (pointer defun code) { ... (code) ... })
(save-excursion {{ (goto-line 0) }})
This has the drawback that you can't access local variables not in
the {{'s (since it is a seprate function). For example:
{ (int x) {{ (msg x) }} }
doesn't work.
Another drawback is no named args (must use (arg n)). Fixable with a
ANON modifier if this is much of a problem.
3/93
+ Rewrote a BUNCH of the compiler as a result of adding {{ }}. It was a
mess, this cleaned it up quite a bit. It could use a lot more
cleaning though. 3/93
+ Rewrote a bunch of the compiler to use hash tables in a effort to
speed things up. Didn't work very well but the code is quite a bit
cleaner. 3/93.
* mco_to_c.c did some pointer math for printf("%d") and didn't cast the
result. On machines with different size pointers and ints, this can
cause problems. 4/93 Steve James <ste@sees.bangor.ac.uk>. Also did a
bit of clean up while I was there.
* mco_to_c.c created an initialized char array that Sun complained about
because some of the initalizers where >127.
Fix: Change the array to unsigned char. 5/29/93
v2.3 1/30/92 [Released January 30, 1993]
---- -------
v2.2 [Not released]
----
* The following program can core dump mm() (gives wrong result in any
case:
(defun
push-arg-bug { (push-arg-bug1 (push-arg (concat "one" "two"))) }
push-arg-bug1 (string s) { (msg ">" s "<") }
)
Why:
concat puts "onetwo" into result and push-arg does a shove-RV which
doesn't push result on to the stack. When msg does the concat,
there is a strcat(result, result) which can loop forever and write
over lots of memory (HP-UX does, TurboC apparenly does a strlen
first and is OK - but still has the wrong result).
This will be a problem for any push-arg where RV is a string in result.
1/93
Notes: push-RV fixes it for strings but breaks some cases of function
address (floc).
Fix: Use push-RV. I'll fix the floc case when I need it.
* code.c didn't have wide enough printf fields when listing large files.
Cosmetic. 10/92
v2.1 2/2/92 [Re-released August 30, 1992]
---- ------
* mco_to_c.c generated code that wouldn't compile if the number of
programs was zero. Sleeze-ball fix: use #if NUM_PGMS. 10/92.
- MMload_code() (mm.c) should also print the file name when complaining.
5/92
v2.1 2/2/92 [Released April 12, 1992]
---- ------
+ Wrote mco_to_c.c - a program that converts a .mco file into C.
Basically, it preloads the .mco file so you can link it into an
application. Thanks to Todd Moody (sjuphil!tmoody@uu.psi.com) for the
initial idea. Only change to existing code was to unstatic a routine
in mm.c. 8/92
- MMload_code() (mm.c) should also print the file name when complaining.
5/92
v2.0 2/2/92 [MC2 beta, released February 28, 1992]
---- ------
* Various lint cleanups. 3/92
* Added support for stdargs. I still don't like being forced to have an
arg before the var args start. 3/92
============== MC below, MC2 above ===========
Convert to MC2 and MM2:
------- -- --- --- ---
+ Changed strings to dynamic strings, no length (prototyped 3/91).
+ Added MMgc_external_objects() call to mm.c
+ Changed to strings-as-objects with garbage collection, did the object
manager stuff (5/91).
+ Added list, extract-element, extract-elements, insert-object
length-of, remove-elements keywords 6/91.
+ Moved functionality of strlen into length-of, removed strlen.
+ Added convert-to. With this, (asc) is just (convert-to NUMBER
(extract-element text n)). In CLisp, this is (coerce object
result-type).
+ Moved functionality of substr into extract-elements and
extract-element, removed substr (12/91).
+ Renamed int to small-int and INT to int. Forgetting that int was only
16 bits burned me once and thats enough. I should probably get rid of
small-int and rename int to number but thats just a bit too drastic
for this old C hack. (12/91).
+ Changed the format of the errors, warnings line MC2 spits out so it
doesn't confuse automatic error parsing. 1/92.
7/23/89 (PL1) [Released ?]
-------------
7/23/89 [Released August 6, 1989]
-------
+ Major functionality changes to create MC2.
+ Need a way to push an expression onto the call stack: (push-arg exp).
9/5/88 (PL2)
-----------
* Fixed how (ask) works. See notes in ME 9/5/88 (PL4).
* Renamed case to cond. The functionality is the same as LISPs cond so
I used that name for consistency. Removed case from documentation.
9/5/88
------
* (const 'foobar'
)
causes an error.
* (floc foobar) will error if foobar not defined yet.
Fix: Now errors if foobar not defined in the file.