[update documentation
John Meacham <john@repetae.net>**20100710060720
 Ignore-this: c8d8dfb0370e612d87e1e498056f93dc
] addfile ./docs/announce-0.7.4.txt
addfile ./docs/dependency_format.mkd
hunk ./docs/announce-0.7.4.txt 1
+Announcing jhc 0.7.4! There have been a few major changes, the main one being
+that there is now support for a garbage collector. This drastically increases
+the number of programs which are feasable to compile with jhc.
+
+  http://repetae.net/computer/jhc/
+
+Any testing people can do with -fjgc would be greatly appreciated! My gameplan
+is to fix any issues that come up with the new gc and release a 0.7.5 that
+will have the GC enabled by default. This will probably be the first version
+of jhc I can recommend to non-developers with a good concience :). Once that is
+done I can implement a good strategy for library compatibility with other
+compilers and the standards. As it is, jhc has a mix of haskell 98 and haskell
+2010 and the ghc base as its distributed libraries, basically whatever I found I
+needed in practice I added as I went along. This won't work in the long run.
+
+Major changes
+
+ * a garbage colletor which can be enabled with '-fjgc' is available.
+   after some more testing, I will make it the default in the 0.7.5 release.
+ * A new memory allocator based on Jeff Bonwick's slab memory allocator for
+   kernels. This means that in many cases, memory can be pulled off a slab
+   and immediately used with no initialization, in addition, it allowed a
+   rearrangement of the GC meta-data to optimizally use the cache.
+ * packed representation of algebraic types, 'Maybe Foo' is actually
+   represented in memory as a NULL pointer or just a 'Foo' with no tag bits.
+   Combined with the slab allocator, this can double the number of some common
+   values that can be put in a cache line.
+ * some intense profiling of generated code and modification of the rts and
+   code generator. Signifigant speed-ups in compiled programs are the result.
+
+Some other changes since 0.7.3 are
+ * documentation updates, especially when it comes to the runtime.
+ * ghc 6.12 support (it is in fact required now.)
+ * no more monolithic 'Main'. the core pass moved to E.Main and the grin pass
+   moved to Grin.Main.
+ * generated C code is more compact and easier to debug.
+ * more use of bytestring internally, improved performance
+ * JHC_RTS_INCLUDE flag allows including the rts from an
+   external file. useful for debugging/developing the RTS.
+ * explicit register support in grin, for alternate back ends such as a NCG
+ * Removed all compiler magic dealing with Eq,Bounded,Ord, and Bits. instances
+   for these are specified in haskell code even for built in types now.
+ * cleaned out some obsolete flags and options on command line.
+ * updated applicative and support for newest version of 'containers' library.
+ * bug updates
+ * various bug fixes
hunk ./docs/dependency_format.mkd 1
+{-#Using
+
+# Dependency Information
+
+Jhc can output dependency information describing how source files and libraries
+depend on each other while compiling code. The dependency information is
+generated when the --deps name.yaml option is passed to jhc. It is presented in the
+standard YAML format and its fields are as described below.
+
+  - LibraryDeps: the libraries that are dependend on. It is a hash of library ids to the specific filename of the library used.
+  - LibraryDesc: if building a library, this field contains the name of the library description file used.
+  - ModuleDeps:  a hash of module names to the list of modules that are directly dependend on by said module.
+  - ModuleSouce: a hash of module name to the haskell source file used.