Samuel Tardieu [Wed, 14 Dec 2011 22:18:26 +0000 (23:18 +0100)]
fix link when extracting the feed address
If the <link rel="alternate" href="..."/> was not the first
<link/> attribute under the <feed/> tag, the bad one was extracted
as the corresponding site URL.
Joe Groff [Fri, 16 Dec 2011 23:56:59 +0000 (15:56 -0800)]
tools.deploy.shaker: strip globals harder
Separate the list of strippable globals in "stripped" and "cleared". Completely remove the former set, but only reset to 'f' the latter. Fixes #447.
Joe Groff [Tue, 6 Dec 2011 17:14:56 +0000 (09:14 -0800)]
vm: stage code block map fixup properly for GC
Don't update the map until the very last thing, and pass untranslated addresses to the iterator functors. Somewhat complicated by the fact that, for startup_fixup, the map is initialized with fixed-up values, so the fixup functor needs a flag indicating whether it operates with a fixed or unfixed code heap map.
Joe Groff [Wed, 30 Nov 2011 20:57:35 +0000 (12:57 -0800)]
vm: method to calculate frame size for address
If we're before the prolog or or in a leaf procedure, the stack frame is really a leaf frame created by the signal handler, with a known fixed size, instead of the real stack frame (if any) with a different size.
Joe Groff [Wed, 30 Nov 2011 20:52:06 +0000 (12:52 -0800)]
cpu.*.bootstrap: return address for (set-context)
Instead of pushing zero as the fake return address for a set-context call, push an address that points back into the primitive so that callstack walking can match the frame back to the subprimitive.
Joe Groff [Tue, 13 Dec 2011 00:43:49 +0000 (16:43 -0800)]
cpu.x86: enable POPCNT with a flag
If bootstrapped with '-enable-popcnt' and the host CPU supports it, enable the POPCNT-based fixnum-bit-count intrinsic. Fixes #436.
Joe Groff [Tue, 13 Dec 2011 00:08:25 +0000 (16:08 -0800)]
tools.deploy.shaker: more timid global stripping
Strip globals by replacing their value with "f". The list of globals to strip was written with the assumption that the stripped globals would get restored like normal hashtable keys when accessed. This isn't valid anymore with the globals optimization, since creating a new box breaks the foldable invariant between a global name and its associated box. Need to go through the list of globals to strip and find the ones that actually can be entirely removed as opposed to just reset to f. Fixes #445. Fixes #446.
Joe Groff [Wed, 7 Dec 2011 20:46:52 +0000 (12:46 -0800)]
math.vectors.simd.intrinsics: fix deploy bug
If not called with a known-at-compile-time SIMD type, the intrinsic definitions were leaving behind runtime quotations that referenced the c-array words after c-type information had been stripped, causing deployed applications that used SIMD to fail.
Joe Groff [Tue, 29 Nov 2011 03:37:01 +0000 (19:37 -0800)]
io.files.info: fix circularity
Remove the undocumented and redundant "copy-file-and-info" word, since "copy-file" does the same thing, and the circular dependency on "io.directories" was causing some deploys to fail
Joe Groff [Sun, 27 Nov 2011 18:43:23 +0000 (10:43 -0800)]
namespaces: rework so a singleton isn't necessary
Make global foldable, and make the underlying global object a hashtable wrapper. Also, use a tuple instead of a generic array for the global box type.
Joe Groff [Sun, 27 Nov 2011 04:20:55 +0000 (20:20 -0800)]
namespaces: make set-global/get-global foldable
Store the globals hashtable as an array of boxes so that the key-to-reference mapping is constant. Use a singleton and an unfoldable "box-at" word so that get-global and set-global optimize to direct operations on the associated box when the variable name is a compile-time constant. Fixes #200.
Doug Coleman [Mon, 28 Nov 2011 22:36:57 +0000 (14:36 -0800)]
combinators.smart: Enable a unit test, handle M: object infer-known*, make sum-outputs a macro.
Fixes inverse but still needs work, once I figure out how.
Joe Groff [Sun, 27 Nov 2011 20:37:38 +0000 (12:37 -0800)]
tools.deploy.config: more stern warnings in docs
Warn that deploy-io=3, deploy-math, and deploy-threads are effectively required. Also note that deploy-ui? requires an app bundle deployment on Mac OS X.