Version 1.8 (2016-12-18) A spurious warning in the generated code has been fixed. Version 1.7 (2016-05-18) MIG now has a test suite. It includes a set of valid and invalid definition files that MIG will try to process. For valid definitions, GCC will compile the stubs to check if valid C code was generated. The generated code uses integer types from now instead of the old Mach types. Code that was hard-coding the word size has been identified and fixed. Support for the obsolete kinds of RPC routines 'functions', 'procedures', and 'simple procedures' has been removed. MIG now emits code that casts objects translated from capabilities to the correct C type. Version 1.6 (2015-10-31) MIG now emits RPC lookup functions that are declared `static inline' improving compatibility with newer dialects of C. Version 1.5 (2015-04-10) Add support for protected payloads. The new `intranpayload' option can be used to specify a translation function translating payloads to values of the translated type. This function will be used instead of the `intran' function to to look up the receiving object of a message in a server. This makes it easy to use the protected payloads introduced in GNU Mach 1.5. Emit `X_server_routine' functions that can be inlined reducing the message dispatch overhead. Improve support for variable-sized C strings. Fix a warning when compiling generated files. Version 1.4 (2013-09-27) Don't accept the `-R' (msg_send) command line option anymore and make the `-r' one (msg_rpc) a no-op. Fix warnings when compiling generated files with recent versions of GCC. Handle the preprocessor option `-isystem' correctly. Cope with command line arguments that contain whitespace. Make the installation tree relocatable. Be more careful to catch write errors when closing files. Spurious deallocation of out-of-line memory has been fixed in case of an error while processing the RPC. Version 1.3.1 (2002-08-29) Fix warnings when compiling generated files with GCC 3.x. Fix alignment issues for greater than 32 bit types on 32 bit machines. Alpha fixes. Version 1.3 (2002-03-08) Minor bug fixes. The new keyword `retcode' is accepted as a parameter modifier. This does not do anything, but is accepted for compatibility with the MIG input syntax used with OSF Mach. The debian/ subdirectory of packaging files is now included in the MIG source distribution. Version 1.2 (2001-07-07) New option -n to suppress default output file creation. With -n, no output files are created except those named by other command-line options. New option -list to generate a file listing RPC names and message ID numbers. The output is in six columns: subsystem-name subsystem-base rpc-name rpc-num msg-id reply-id For example this output line: io 21000 io_read 1 21001 21101 says that the file used `subsystem io 21000' and defined an RPC called `io_read' with message ID 21000+1 = 21001; the reply message ID is computed 21001+100 = 21101. In this example: io 21000 io_reauthenticate 14 21014 0 the declaration is a `simpleroutine' that expects no reply, so 0 is printed in place of the computed reply message ID. The output list these examples is generated on a GNU/Hurd system with this command: $ mig -n -list /dev/stdout /include/hurd/io.defs Output files of C source now start by defining _GNU_SOURCE, for compatibility with the GNU C library on GNU/Hurd. Version 1.1 (1999-06-22) First official net release. Version 1.0.2 (1999-05-23) Understand normal GNU --version and --help args. Find CPP in a more flexible fashion. Version 1.0.1 (1998-12-04) This release fixes a bug in the `mig' driver script that made it fail to invoke the C preprocessor properly. Version 1.0 (1998-08-19) MIG has been split into a separate distribution to make it easier to set up a compilation environment for GNU Mach and Hurd systems. The mig program itself in this distribution has not been substantively changed from the version in the GNU Mach 1.1.3 distribution.