2020-10-31 Jose Antonio Ortega Ruiz NEWS for 1.3.0 New gendocs.sh version 2020-10-20 Jose Antonio Ortega Ruiz Interface nits 2020-10-19 Jose Antonio Ortega Ruiz 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 2020-10-18 Jose Antonio Ortega Ruiz 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 2020-10-16 Jose Antonio Ortega Ruiz Doc versions updates 2020-10-15 Jose Antonio Ortega Ruiz Typo Support for Guile 3.x NEWS updated Documentation typo (fixes #59239) 2019-04-09 Jose Antonio Ortega Ruiz 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 2019-04-09 Jose Antonio Ortega Ruiz 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. 2019-04-09 Jose Antonio Ortega Ruiz 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. 2019-03-20 Jose Antonio Ortega Ruiz NEWS and version bump 2019-03-20 Jose Antonio Ortega Ruiz 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. 2019-03-19 Jose Antonio Ortega Ruiz NEWS updates Fix: allow access to last mem cell in devices (#9773) Author: Kevin Brunelle 2019-03-11 Jose Antonio Ortega Ruiz 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! 2019-01-08 Jose Antonio Ortega Ruiz 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) 2019-01-07 Jose Antonio Ortega Ruiz Flex by-products added to CLEANFILES Looking for guile 2.2 during configuration 2015-12-23 Jose Antonio Ortega Ruiz Version upgraded to 1.2.9 2015-11-16 Jose Antonio Ortega Ruiz NEWS update Documentation fixes by Joshua Davies 2015-03-03 litvin Modify texinfo documentation Add missed instructions: SLB,SRB,JAE,JAO,JXE,JXO (from volume 2, section 4.5.2) 2014-08-04 jao Including autogen.sh in distribution tarball THANKS updated for 1.2.8 2014-08-03 jao NEWS updated for 1.2.8 Apparently tautological comparisons fixed (bug #42871) Whitespace 2014-08-02 jao Fix for compilation in darwin (bug #42818) 2014-05-21 Jose Antonio Ortega Ruiz Avoiding format strings security warnings (cf. #8467) 2014-05-20 Jose Antonio Ortega Ruiz Fixes for readline 6.3 2014-01-06 Jose Antonio Ortega Ruiz 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) 2013-10-24 Jose Antonio Ortega Ruiz Invalid assertion in xmix_vm.c (closes #40359) 2013-02-24 Jose Antonio Ortega Ruiz Thanks where thanks are due 2013-02-23 Jose Antonio Ortega Ruiz NEWS for 1.2.7 Generating ChangeLog during make dist 2013-02-18 Jose Antonio Ortega Ruiz 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) 2010-10-10 Jose Antonio Ortega Ruiz Release and maintenance scripts ChangeLog generator updated Fix for #5652 2010-09-27 Jose Antonio Ortega Ruiz Fix for off-by-one bug in I-register modification breakpoints 2010-09-11 Jose Antonio Ortega Ruiz Allow parallel (make -jn) builds (#31018) Minimum libintl set to 0.37 Fix for the fix of #31010 2010-09-10 Jose Antonio Ortega Ruiz 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) 2010-08-11 Jose Antonio Ortega Ruiz Typo in README (hat tip Iuri T.) 2010-03-26 Jose Antonio Ortega Ruiz Fix for #28086 (compilation without Guile). Document generation scripts updated. 2009-10-13 Jose Antonio Ortega Ruiz Requiring inttool 0.40. 2009-10-11 Jose Antonio Ortega Ruiz Typos and nits in the previous patch. Proper acknowledge for Aleix's contributions. * THANKS: * doc/mdk_ack.texi: Proper acknowledgement. Fixes for signature of guile initialization functions. * mixgtk/gmixvm.c: inner_main_ signature corrected * mixutils/mixvm_loop.c: loop_ signature corrected * mixguile/mixguile.h: Cosmetics NEWS for 1.2.5. Copyright year updated. Using gnulib's gitlog-to-changelog to generate ChangeLog. Stanza for ChangeLog generation added to autogen.sh. configure.in -> configure.ac in autogen.sh. 2009-10-05 Jose Antonio Ortega Ruiz Minimum gtk+ version pumped to 2.16. GtkFileChooser compatibility (conditionally using gtk 2.18 feature). Copyright years update. gmixvm: glade file: apparently, dialogs need to be top level. gmixvm glade file: dialog properties homogenized. Gmixvm's new glade file tweaks (mostly vbox layouts). External programs directory scanning delayed (but still present). 2009-10-04 Jose Antonio Ortega Ruiz Migration of gmixvm's glade file to Glade 3. Fix for application exit (glade changes were too many) Revert "Glade file updated (editing with Glade 3), and exit callback registered." This reverts commit 7acdf4dca205d8da124cd169da9993ac3c6e1627. Glade file updated (editing with Glade 3), and exit callback registered. 2009-10-02 Jose Antonio Ortega Ruiz Cosmetics. 2009-10-01 Jose Antonio Ortega Ruiz Guile: not using the deprecated gh_* interface. Fix for #23816: missing symbol name in EQU is now just a warning. 2009-08-23 Jose Antonio Ortega Ruiz configure.in is now called configure.ac. autom4te cache dir removed 2008-08-31 jao .ignore files for the compilation products mix_eval_scanner: clean up dead code and remove warning (input() not used) 2008-03-21 Jose Antonio Ortega Ruiz Copyright year in Glade file 2008-03-20 Jose Antonio Ortega Ruiz NEWS update for 1.2.4 Minor TODO updates Manual generation scripts updated and ignoring doc/manual Set all fonts dialog fixed (using correct default font) 2008-03-17 Jose Antonio Ortega Ruiz Default mixasm specification fixed Add extra application mime type for external execs in darwin (closes #17519) GTK version check for gkt_entry_completion_set_popup_single_match() Properly set external commands, taking into account the host type More ignored files 2008-03-16 Jose Antonio Ortega Ruiz Initial toolbar style set properly Ignore Glade backup files Lower gtk requirements to 2.6 Compatibility with GTK+ 2.10 2008-03-15 Jose Antonio Ortega Ruiz arch-inventory files removed Org-mode for TODO file Copyright year update Texinfo's @include only works properly with depth 1 More ignored files GPL/FDL license files updated Small intl fixes and POTFILES.in updated. Version bump and GTK+ >= 2.12.0 required. Adapted to new GtkTooltip API. More ignored files. Ignore files generated by autogen.sh 2007-06-26 Jose A Ortega Ruiz GPL v3 notices git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-43 2006-08-15 Jose Antonio Ortega Ruiz Make -Werror a configuration option and use AM_CFLAGS everywhere git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-42 Unneeded assertion removed git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-41 2006-08-11 Jose Antonio Ortega Ruiz News for version 1.2.3 git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-40 mixvm's default prompt fixed git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-39 Version strings updated to 1.2.3 git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-38 2006-08-10 Jose Antonio Ortega Ruiz 64bit compilation fixes & About dialog embellishments git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-37 2006-08-09 Jose Antonio Ortega Ruiz Configurable toolbars (icons, text or both) git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-36 2006-08-08 Jose Antonio Ortega Ruiz Attach/detach buttons in main toolbar are only active when meaningful. E.g., if all windows are detached, no 'detach' button appears. git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-35 Missing toolbar tooltips added git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-34 About dialog cleaned up git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-33 Sloppy gpointer conversions fixed git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-32 Darwin compilation warnings fixed Thanks to Aleix Conchillo. git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-31 Only executable files can be selected in external programs dialog git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-30 Set names for MIX/MIXAL filters in file chooser dialogs git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-29 2006-08-08 Jose Antonio Ortega Ruiz External programs management improvement - External programs (editor and mixasm) execution is more robustly controlled both in mixvm and gmixvm. - In gmixvm the external programs dialog has been revamped: - Only proper paths can be introduced for the executables (via a graphical file chooser). - Flags for mixasm are no longer free text, but a check button. - Internally, the code has been refactored. git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-28 2006-08-07 Jose Antonio Ortega Ruiz Setting ALL_LINGUAS in configure.in is obsolete git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-27 Minor adjustments to manual generation template git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-26 Restore invariant sections in documentation git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-25 2006-08-06 Jose Antonio Ortega Ruiz Define missing ac variable GETTEXT_PACKAGE git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-24 Make distcheck happy git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-23 No invariant sections in manual git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-22 Leak fixed git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-21 gmixvm: history in terminal input dialog git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-20 Refactoring of the previous patch git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-19 Load file dialog remembers last directory git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-18 All tests passing again (mix parser re-entrant) git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-17 2006-08-05 Jose Antonio Ortega Ruiz Compilation tests re-enabled git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-16 Info about new Arch archive git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-15 Acknowledgements to Michael and Xiaofeng git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-14 Invalid F-spec reported as warnings, to allow hacks as CMPX xxxx(6) git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-13 Accept F-spec in NOP (with warning) git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-12 Bug fix: mixvm's smem correctly handles negative zero git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-11 Bug fix: typo in cbpo help string git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-10 Compilation warnings fixed git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-9 2006-03-24 Jose Antonio Ortega Ruiz Warnings as errors git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-8 CVS $Id$ tags removed. git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-7 ChangeLog is automatically generated. git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-6 Compilation warnings fixed. git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-5 2006-03-21 Jose Antonio Ortega Ruiz Arch inventory files added git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-4 2006-03-20 Jose Antonio Ortega Ruiz Bug fixes for 1.2.2 (latest CVS version) * mixgtk/mixgtk.glade (Module): I1 and I2 in mixvm swapped to their correct position (closes #15746). * mixgtk/mixgtk_mixvm.c (init_mem_): fixed segfault when clicking Memory title bar (closes #15910). * configure.in: obsolete C flags for Darwin deleted. * misc/mixal-mode.el (Module): sync with Emacs CVS (Pieter). * mixlib/mix.c: copyright year in console message updated. * mixgtk/mixgtk_device.c (write_char_): buffer size was insufficient. git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-3 2006-03-20 Jose Antonio Ortega Ruiz Trivial changes to tag rel--1.2--patch-1 git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-2 Version 1.2.1 imported git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--patch-1 Archive creation git-archimport-id: mdk@sv.gnu.org/mdk--devel--1--base-0