Savannah Git Hosting - mdk.git/log
NEWS for 1.3.1
Compilation fixes for gcc 15 (Peter Pentchev)
version bump
autoupdate updates
Fix: missing MIX_CMD_SBT
Thanks to Kevin Sun.
Images for the PDF and DVI manuals
NEWS for 1.3.0
New gendocs.sh version
Interface nits
goto address dialog
Year range in --version messages
Nit: Ctrl+q to quit
Version bump
First fully functional GTK3
Current line and breakpoint icons
Gimme back my fonts (deprecated)
Stock icon for quit app
attach/detach buttons
mixgtk_widget_factory_get_by_name
Show/hide toolbars
Toolbars visible again
gtk-builder-tool simplify
Use g_error_free
gtk_widget_reparent deprecation
G_INLINE_FUNC deprecated
Work in progress
Mirgration to GTK+3: widget lookup fixes
Mirgration to GTK+3: seemingly safe changes
mixal-mode.el synchronised with emacs's
Doc versions updates
Typo
Support for Guile 3.x
NEWS updated
Documentation typo (fixes #59239)
Change vm->address_list from GSList to GQueue
The current emulator uses an unbounded linked list for tracking the
memory locations our program has traveled through. On a 64 bit system,
this requires 16 bytes of data for every instruction a MIX program
performs. For small programs that are light on computation cycles,
this does not cause a noticeable issue.
For programs that execute hundreds of millions of instructions, this
causes the memory footprint of the virtual machine to explode. I have
attached an example MIXAL program that will cause the VM to grow to
over 3 GB of memory usage when run.
To run the sample, compile coin-opt.mixal (attached), run it in mixvm,
and enter 499 at the prompt. Or use the following steps.
This patch changes all the appropriate references to GQueue references
and also caps the backtrace at 1000, which can be changed in the
mixlib/mix_vm.h header. I feel like 1000 is a reasonable limit for the
vast majority of debugging needs. Most people are looking back at the
most recent 100 instructions or so.
You can get the original behavior (unlimited tracing) back by setting
the MIX_MAXTRACE to -1, albeit with a slightly higher memory cost (24
bytes per instruction). Or you can turn it off entirely by setting it
to 0.
Using a queue doesn't change the logic of the program in any
significant way, and it allows programs to run for an extended period
of time without consuming all the memory on the machine and slowing
down to a crawl.
-Kevin Brunelle
GTK Console input no longer overruns buffer
Patch by Kevin Brunelle
The console input in gmixvm will only read 70 characters, but the
outer loop used 70 (the characters) instead of 14 (the number of
words). This caused the VM to read past the end of the buffer and
write 56 words of junk into the emulator.
Support IOC commands for disk/drum devices
Thanks to Kevin Brunelle
There is a minor fix included with regards to tape devices. The test
was failing if M == 0, when it should fail when M != 0.
NOTICE: This patch changes the behavior of the VM and changes the
function parameters for the ioc_ function. Documentation changes are
included.
Permits the following:
LDX BLKNUM
IOC 0(8)
OUT ADDR(8) Write block from ADDR into disk[BLKNUM]
IOC 0(8)
IN ADDR(8) Read block from disk[BLKNUM] into ADDR
...
BLKNUM CON 45000 Example possible block on disk
I was having an issue writing a block to a drive and then reading back
the same block. Because it is impossible to move the SEEK_CUR pointer
backwards on a disk device, there was no way for a program to read
back a block that it wrote to a disk without restarting or fiddling
with ~/.mdk/disk?.dev files and symbolic links.
I have added a function parameter to the ioc_ function and used it to
pass the value of rX to ioc_. This permits us to use IOC commands to
move the read/write head on a disk/drum device. I believe that this
conforms to the potential meaning of Knuth's description of IOC for
disk/drum devices.
I have put in tests to verify that rX is positive and M = 0.
I have updated the documentation to reflect this new behavior.
This makes disks much more usable.
Note: I won't be offended if this patch is rejected because it changed
the behavior of the VM. I think it fits the spirit and enhances the
functionality in a way that some might find useful. I wanted it for
something I was working on, and I felt others might want the same. The
thing with the paper-tape should be fixed, though.
NEWS and version bump
Fix: correctly rewind tape
According to the specification, if M < 0, the tape is skipped backwards M
blocks, or to the beginning of the tape, whichever comes first. In the
implementation, we don't check to verify that we aren't seeking past the
beginning of the file. This causes fseek(3) to fail, and it leaves us at the
position we were at.
Diagnosis and fix by Kevin Brunelle.
NEWS updates
Fix: allow access to last mem cell in devices (#9773)
Author: Kevin Brunelle
Obsolete string-to-int removed in favour of string-to-number
Thanks to Thomas Matecki. Fixes #bug 55877 and makes mixvm, Philip
King's child, work again!
Version 1.2.10
NEWS for 1.2.10
Fix for mixasm infinite loop on invalid F-specs (bug #32452)
Thanks to Sascha Wilde.
Fix for bug #43634: keep sign of rA for ADD/SUB yielding 0
Fix for bug #47208: correctly store immediate constants
We were taking only the first 3 bits of the index byte in a the word
representing immediate constants, so that, for instance, =262143=,
representing 00 00 63 63 63, was stored as 00 00 07 63 63.
Flex generation fix (invalid noreject removed)
Flex by-products added to CLEANFILES
Looking for guile 2.2 during configuration
Version upgraded to 1.2.9
NEWS update
Documentation fixes by Joshua Davies
litvin [2015年1月14日 04:10:12 +0000 (07:10 +0300)]
Modify texinfo documentation
litvin [2015年1月12日 07:18:17 +0000 (10:18 +0300)]
Add missed instructions: SLB,SRB,JAE,JAO,JXE,JXO (from volume 2, section 4.5.2)
jao [Mon, 4 Aug 2014 15:54:23 +0000 (17:54 +0200)]
Including autogen.sh in distribution tarball
jao [Mon, 4 Aug 2014 15:48:35 +0000 (17:48 +0200)]
THANKS updated for 1.2.8
jao [Sun, 3 Aug 2014 02:06:31 +0000 (04:06 +0200)]
NEWS updated for 1.2.8
jao [Sun, 3 Aug 2014 01:11:52 +0000 (03:11 +0200)]
Apparently tautological comparisons fixed (bug #42871)
jao [Sun, 3 Aug 2014 01:11:25 +0000 (03:11 +0200)]
Whitespace
jao [Sat, 2 Aug 2014 17:25:08 +0000 (19:25 +0200)]
Fix for compilation in darwin (bug #42818)
Avoiding format strings security warnings (cf. #8467)
Fixes for readline 6.3
Help message for werrors configuration option fixed
Fixes for building with --without-guile
dummy.c -> darwin.c
Compilation fixes
Deprecated INCLUDES in Makefile.am removed
Incorporating gcompletion (fixes #39817)
New .gitignore entries
Fix for #41098 (compilation in darwing sans libguile)
Fix for #41097 (compilation in darwin)
Invalid assertion in xmix_vm.c (closes #40359)
Thanks where thanks are due
NEWS for 1.2.7
Generating ChangeLog during make dist
Convenience target to generate manual
Guile versions updated in doc
gendocs scripts updated
Version updated to 1.2.7
Additional samples and doc from TAOCP, via ESR's MIXAL
News bit
gitlog-to-changelog updated
Upgrade to guile 2.0 (Aleix Conchillo)
Release and maintenance scripts
ChangeLog generator updated
Fix for #5652
Fix for off-by-one bug in I-register modification breakpoints
Allow parallel (make -jn) builds (#31018)
Minimum libintl set to 0.37
Fix for the fix of #31010
Versions mentioned in documentation and configure.ac updated
Fix for #29524 (links to source repo updated in manual)
Fix for #31010 (no error on MOVE 0)
Typo in README (hat tip Iuri T.)
Fix for #28086 (compilation without Guile).
Document generation scripts updated.
Requiring inttool 0.40.
Typos and nits in the previous patch.
Proper acknowledge for Aleix's contributions.
* THANKS:
* doc/mdk_ack.texi: Proper acknowledgement.
GNU MIX Development Kit (MDK)
RSS
Atom