Matt Birkholz [Wed, 28 May 2014 23:34:04 +0000 (16:34 -0700)]
Update copyright years.
Remove test-copy-1.txt (an accident).
Matt Birkholz [Wed, 28 May 2014 23:18:01 +0000 (16:18 -0700)]
Merge branch 'master' into Gtk.
Matt Birkholz [Wed, 28 May 2014 23:04:27 +0000 (16:04 -0700)]
cairo: Add a cairo graphics device type. And many fixes...
Use the cairo graphics device in the planetarium's mit-snapshot.scm
script to draw the tellurion to a PNG image file without loading Gtk.
Fix the linker commandline(!) and cairo-line-to(!!). Add cairo-save/
restore around polygon fill options, just because all the rest do.
Punt gtk-graphics/make since a window-less gtk output device is no
longer necessary for planetarium/mit-snapshot.scm. Clean up some free
variables, other CREF complains, unknown texinfo references, etc.
Rename add-gc-cleanups add-GLIB-cleanups because they are run by the
glib-thread. Replaced punt-gc-cleanup with execute-glib-cleanup
because you probably should not use the former, rather the latter.
Matt Birkholz [Tue, 27 May 2014 17:48:00 +0000 (10:48 -0700)]
Add new tests/runtime/test-url.scm and move test-merge-uris there.
Matt Birkholz [Tue, 27 May 2014 16:41:16 +0000 (09:41 -0700)]
Fix uri->pathname too, just for completeness.
(uri->pathname (pathname->uri "./file")) does not signal an error, but
it does not produce the same directory component as (->pathname
"./file"). Now (pathname=? (->pathname "./file") (uri->pathname...))
is #t, at least on Unix(?).
Matt Birkholz [Tue, 27 May 2014 15:55:37 +0000 (08:55 -0700)]
Fix for bug #42412: "scheme --load ./file" fails.
Fix pathname->uri to handle the new directory name 'HERE, introduced
in commit
00aab1c. Thanks to David Kinzer <dtkinzer>.
Matt Birkholz [Sun, 25 May 2014 16:47:18 +0000 (09:47 -0700)]
gtk: Move GLib, Pango and Cairo code to separate systems.
This separation allows the GIO interface (and Pango and Cairo) to work
without a DISPLAY. The new (glib) package calls g_main_loop_run with
Scheme attached as a GSource. Thus gtk-thread is now glib-thread, and
stop-gtk-thread is now stop-glib-thread.
The Cairo system depends on Pango and thus GLib only because Cairo
seems useless without Pango. Thus there is no need for a Pango-Cairo
system.
The Gtk system just calls gtk_init_check, not gtk_main. This appears
sufficient to get DISPLAY attached to the already running GMainLoop.
Gtk-thread-running? is now gtk-initialized?.
Taylor R Campbell [Sat, 24 May 2014 15:22:27 +0000 (15:22 +0000)]
Add usual-integrations and note some ignored variables in ieee754.scm.
Chris Hanson [Sat, 17 May 2014 09:11:50 +0000 (02:11 -0700)]
Update copyright years.
Chris Hanson [Sat, 17 May 2014 05:43:56 +0000 (22:43 -0700)]
Update version strings to 9.2.
Chris Hanson [Sat, 17 May 2014 05:10:17 +0000 (22:10 -0700)]
Fix trailing whitespace.
Chris Hanson [Sat, 17 May 2014 05:09:54 +0000 (22:09 -0700)]
Fix over-long line.
Chris Hanson [Sat, 17 May 2014 05:09:26 +0000 (22:09 -0700)]
Fix fencepost error thinko.
Matt Birkholz [Wed, 14 May 2014 18:03:45 +0000 (11:03 -0700)]
planetarium: Fix request-elevations in google-earth.scm.
Remove buggy assert; `locations' is a list, not a number.
Matt Birkholz [Thu, 8 May 2014 17:17:35 +0000 (10:17 -0700)]
gtk: Use new install-html. Implement install-{info,html} targets.
Punt targets for nonexistent documentation in src/gl/Makefile.in.
Matt Birkholz [Thu, 8 May 2014 17:16:34 +0000 (10:16 -0700)]
gtk: Update @direntry.
Matt Birkholz [Thu, 8 May 2014 15:41:07 +0000 (08:41 -0700)]
gtk: Fix gtk-widget-create-pango-layout's failure test.
Matt Birkholz [Thu, 8 May 2014 04:38:45 +0000 (21:38 -0700)]
Merge branch 'master' into Gtk.
Matt Birkholz [Thu, 8 May 2014 04:22:58 +0000 (21:22 -0700)]
ffi: Punt AUXDIR from shim-config.scm.
Procedures like compile-shim need to use the first directory in
MITSCHEME_LIBRARY_PATH (not the installation directory) so that the
FFI test can override it, getting the not-yet-installed configuration
from the build directory.
Symlink shim-config.scm to src/lib/ and generate it during `make all',
not `make install', so that it is available to the test FFI (during
`make check').
Fix FFI test NOT to use with-notification around `make', which cannot
use fresh-line. Just write whole lines to notification-output-port.
Matt Birkholz [Wed, 7 May 2014 16:22:17 +0000 (09:22 -0700)]
Merge branch 'master' into Gtk.
Matt Birkholz [Wed, 7 May 2014 06:19:42 +0000 (23:19 -0700)]
configure: Move check for __x86_64__.
Move AC_CHECK_DECL(__x86_64__) before AC_MSG_CHECKING([for native-code
support]) so that the former's progress note does not arrive in the
middle of the latter's, like this:
checking for native-code support... checking whether __x86_64__ is declared... no
yes, for i386
Matt Birkholz [Wed, 7 May 2014 04:11:25 +0000 (21:11 -0700)]
ffi: Add install-html using documentation build parameters.
Install parameters in infodir/mit-scheme-doc-config.scm.
Matt Birkholz [Wed, 7 May 2014 03:36:12 +0000 (20:36 -0700)]
ffi: Use Makefile to save shim build parameters.
Install them in AUXDIR/shim-config.scm and use them in the
compile-shim, link-shim, install-shim and install-load-option
procedures.
Matt Birkholz [Tue, 6 May 2014 02:26:44 +0000 (19:26 -0700)]
Fix continue_from_trap to NOT open a FREE_PARANOIA_MARGIN hole.
Just reset Free to heap_alloc_limit if its sanity check fails.
Matt Birkholz [Tue, 6 May 2014 02:23:06 +0000 (19:23 -0700)]
ffi: Update Makefile for prhello example.
Use the generate-shim, compile-shim, link-shim and install-shim
procedures. Move to a separate file included via @verbatiminclude,
for more convenient testing.
Matt Birkholz [Tue, 6 May 2014 01:51:40 +0000 (18:51 -0700)]
Add FFI to doc/info-dir and reformat.
Renamed the dir entries for consistency, and so that they sort
together in a large category like "Programming Languages". Updated
the @direntry in each toplevel .texinfo to match.
Taylor R Campbell [Sun, 27 Apr 2014 03:17:43 +0000 (03:17 +0000)]
Add portable IEEE 754 format utilities.
Not hooked up to anything, but these have been floating around my
disk for months and were likely to get lost. Feel free to hook these
up and start using them. If you do, you should start by writing some
automatic tests.
Taylor R Campbell [Sat, 26 Apr 2014 21:00:01 +0000 (21:00 +0000)]
Correct types in BIGNUM_REDUCE_LENGTH and use output parameter as such.
Taylor R Campbell [Sat, 26 Apr 2014 20:58:24 +0000 (20:58 +0000)]
Make definition of VERIFY-HEAP primitive unconditional.
Define a verify_heap stub that always returns true if
!ENABLE_DEBUGGING_TOOLS.
Matt Birkholz [Sat, 26 Apr 2014 15:00:13 +0000 (08:00 -0700)]
Fix string-head! to hide the unused (non-marked) words.
This quiets 3 of the 17 complaints from verify_heap during `make
check'. The remaining 14 appear to be caused by SIGFPE recovery.
Matt Birkholz [Sat, 26 Apr 2014 04:10:43 +0000 (21:10 -0700)]
Fix BIGNUM_REDUCE_LENGTH to hide the unused (non-marked) words.
This quiets 7093 of the 7110 complaints from verify_heap during the
tests.
Matt Birkholz [Fri, 25 Apr 2014 23:47:06 +0000 (16:47 -0700)]
Call verify_heap before GC to scan for bogosities.
Trap recovery (on Unix) occasionally fails the assert in
linkage_section_type when its scan of the heap encounters non-marked
words that are not "hidden" by a non-marked vector header.
The new verify_heap function scans the heap in the same way, and
complains on stderr about any invalid linkage section types, object
types, etc. If the GC_Debug flag is set, verify_heap is called by the
garbage-collect primitive to scan maximal heap.
The new dump_heap_at function can be used to inspect the heap around a
reported bogosity.
Taylor R Campbell [Sun, 6 Apr 2014 22:10:20 +0000 (22:10 +0000)]
Fix technically incorrect malloc size in re_match. Omit needless cast.
Taylor R Campbell [Sun, 6 Apr 2014 22:09:47 +0000 (22:09 +0000)]
Nix dead initialization in scan_ephemerons.
Taylor R Campbell [Sun, 6 Apr 2014 22:09:32 +0000 (22:09 +0000)]
Mark scan unused in non-debug builds.
Taylor R Campbell [Sun, 6 Apr 2014 22:08:53 +0000 (22:08 +0000)]
Make (cd "/nonexistent") fail.
Kinda kludgey, but it'll do for interactive use.
See XXX comment for what a proper solution should look like.
Taylor R Campbell [Sun, 16 Mar 2014 17:30:55 +0000 (17:30 +0000)]
Remove vestigial unused variable in FAST-DIVISION.
Taylor R Campbell [Sun, 16 Mar 2014 15:21:38 +0000 (15:21 +0000)]
Revert "Assemble (JMP (@PCR FOO)) (LABEL FOO) to zero bits on amd64."
This reverts commit
f4dda7bf4a6f9f529fd2b295a0f51ee9ed6dc22b.
Apparently this doesn't work.
Taylor R Campbell [Sun, 16 Mar 2014 14:56:10 +0000 (14:56 +0000)]
Clarify comment over amd64 fixnum_shift hook.
Taylor R Campbell [Sun, 16 Mar 2014 14:50:30 +0000 (14:50 +0000)]
Open-code non-2^n quotients and remainders by multiplication on amd64.
Taylor R Campbell [Sun, 16 Mar 2014 14:49:26 +0000 (14:49 +0000)]
Assemble (JMP (@PCR FOO)) (LABEL FOO) to zero bits on amd64.
Taylor R Campbell [Sun, 16 Mar 2014 14:48:35 +0000 (14:48 +0000)]
Reorder branches in FIX:QUOTIENT/FIX:REMAINDER code on amd64.
Make the negative numerator case a forward branch so it will be
statically predicted not-taken.
Taylor R Campbell [Sat, 15 Mar 2014 20:32:07 +0000 (20:32 +0000)]
Avoid modifying rcx in amd64 fixnum_shift assembly hook.
Taylor R Campbell [Sat, 15 Mar 2014 20:30:09 +0000 (20:30 +0000)]
Fix sf/cgen so it doesn't just drop declarations for the compiler.
Taylor R Campbell [Sun, 23 Feb 2014 21:19:03 +0000 (21:19 +0000)]
Attempt to fix an undefined variable reference in svm disassembler.
Guessing here what the right way is; I don't know this code well
enough to say for sure.
Taylor R Campbell [Sun, 23 Feb 2014 17:57:35 +0000 (17:57 +0000)]
Generate all OS constructors for compiler.
Taylor R Campbell [Sun, 23 Feb 2014 17:30:43 +0000 (17:30 +0000)]
Remove obsolete AC_SYS_RESTARTABLE_SYSCALLS.
We don't use the result anyway, and it always causes an annoying
delay in configure.
Taylor R Campbell [Sun, 23 Feb 2014 17:10:24 +0000 (17:10 +0000)]
Use FLO:NEGATE, not (FLO:- 0. ...), to apply sign in NUMBER->STRING.
Taylor R Campbell [Sun, 23 Feb 2014 17:08:55 +0000 (17:08 +0000)]
Don't rewrite (flo:- 0. x) as (flo:negate x) on amd64.
This is wrong because (flo:- 0. 0.) is 0. but (flo:negate 0.) is -0.
This caused some broken code to be miscompiled and yield the correct
result accidentally!
Taylor R Campbell [Sun, 23 Feb 2014 16:42:02 +0000 (16:42 +0000)]
More hacks to get liarc to build.
Taylor R Campbell [Sun, 23 Feb 2014 16:40:46 +0000 (16:40 +0000)]
Try builtin objects before fasl files in liarc FASLOAD.
Taylor R Campbell [Sun, 23 Feb 2014 16:39:24 +0000 (16:39 +0000)]
Generate code for -0. constants correctly in liarc.
Taylor R Campbell [Sun, 23 Feb 2014 03:43:01 +0000 (03:43 +0000)]
compile-liarc-bundle rules depend on some tools in microcode/.
Taylor R Campbell [Sun, 23 Feb 2014 01:17:57 +0000 (01:17 +0000)]
Fix up fni->bci files in crsend.scm.
Taylor R Campbell [Sat, 22 Feb 2014 22:31:17 +0000 (22:31 +0000)]
Temporary kludge: bake a fresh runtime into the toolchain.
This is practically necessary for now because of the SEQUENCE-2 mess.
It may continue to be necessary in the future until we have proper
cross-compilation tools that can handle macros and fasdump format
changes sanely.
Taylor R Campbell [Sat, 22 Feb 2014 22:30:09 +0000 (22:30 +0000)]
Put back some temporary SEQUENCE-2 scaffolding.
Taylor R Campbell [Sat, 22 Feb 2014 22:29:31 +0000 (22:29 +0000)]
Simplify x86 fenv structures.
Avoid needless typedefs and unions.
Taylor R Campbell [Sat, 22 Feb 2014 22:28:39 +0000 (22:28 +0000)]
On i386, avoid FCOM[P] and FTST in favour of FUCOM[P].
The FCOM[P] and FTST instructions trap even on quiet NaN; the
FUCOM[P] instructions don't.
Taylor R Campbell [Sat, 22 Feb 2014 20:59:52 +0000 (20:59 +0000)]
Avoid using new-style SEQUENCE stuff in LIAR.
Taylor R Campbell [Sat, 22 Feb 2014 19:20:29 +0000 (19:20 +0000)]
Fix default (ISO-8859-1) char image strings.
We previously used `ANSI' char image strings, which really meant
Windows-1252 for some reason. Now we use ISO-8859-1 so things get
displayed correctly in X at least. Some characters may not display
*nicely* on Windows, but they will display *correctly* (with an octal
escape).
Matt Birkholz [Fri, 29 Nov 2013 18:26:29 +0000 (11:26 -0700)]
svm: Fix the disassembler.
Re-wrote it with a "cursor" that wraps up the block and offset and
symbol-table previously passed around and/or fluid-bound to *block,
*current-offset, *symbol-table, etc.
Matt Birkholz [Tue, 26 Nov 2013 17:08:59 +0000 (10:08 -0700)]
svm: Convert program_counter from a static variable to an argument.
This seems to speed the machine up 20%. Before this patch, the
compile-everything phase ("Use the new machine and compiler to
re-compile everything.") took ~67 minutes on a 3.2GHz Core i3-550.
After applying this patch, that phase took ~53 minutes (21% less).
This conversion was incomplete in the original implementation (in
6ae556b). I backed it out in order to get a simpler machine working.
Matt Birkholz [Tue, 26 Nov 2013 17:07:29 +0000 (10:07 -0700)]
ffi: Avoid longjmps in C-CALL primitive (callout_continue).
Rather than abort after every callout (in callout_continue), call the
second trampoline directly, after unsealing the Scheme stack.
Matt Birkholz [Fri, 22 Nov 2013 20:54:41 +0000 (13:54 -0700)]
Add load-option/suppress-loading-message? for load-ffi-quietly.
Matt Birkholz [Fri, 22 Nov 2013 20:51:12 +0000 (13:51 -0700)]
tests/ffi: load-option is quieter now by default.
Matt Birkholz [Fri, 22 Nov 2013 20:45:07 +0000 (13:45 -0700)]
gtk: Added <polygon-ink>. Used it to make arrow heads for SWAT.
Added a gold star to the demo. Used new cairo-matrix and -point
procedures to scale and translate a unit star with N points.
Matt Birkholz [Mon, 18 Nov 2013 20:21:41 +0000 (13:21 -0700)]
Merge branch 'master' into Gtk.
Matt Birkholz [Mon, 18 Nov 2013 18:43:29 +0000 (11:43 -0700)]
make.so is supposed to be found in the compiler bundle.
It must have been Chaos that slipped in this bogus fix.
Matt Birkholz [Mon, 18 Nov 2013 18:41:26 +0000 (11:41 -0700)]
src/Makefile.tools.in: Missing dependency made cross-compiler crawl.
Matt Birkholz [Sun, 17 Nov 2013 19:56:26 +0000 (12:56 -0700)]
ffi: test-ffi.scm: Need a newline before running make.
Matt Birkholz [Sun, 17 Nov 2013 19:51:50 +0000 (12:51 -0700)]
gio: g_try_malloc0 does not abort.
Matt Birkholz [Sun, 17 Nov 2013 19:50:51 +0000 (12:50 -0700)]
gtk: Issue warning if `make check' cannot open DISPLAY.
Matt Birkholz [Sun, 17 Nov 2013 19:47:41 +0000 (12:47 -0700)]
gtk: Make test-gport-performance.scm a standalone script.
Matt Birkholz [Sun, 17 Nov 2013 19:46:40 +0000 (12:46 -0700)]
planetarium: Call test procedures in mit-make.scm.
Matt Birkholz [Tue, 12 Nov 2013 23:27:50 +0000 (16:27 -0700)]
planetarium: Combine mit-compile.scm and mit-compile-3d.scm.
Avoided the bug that required the fluid-let in mit-compile-3d.scm (by
relying on load-package-set?). Separate compilation is back again.
Matt Birkholz [Mon, 11 Nov 2013 22:31:15 +0000 (15:31 -0700)]
Use the new, flying <glx-viewport> and draw a shaded terrainmap.
Add a label to the terrain window showing position, altitude and
heading. Also convert request-google-elevation to
request-google-elevationS, which loops making a request every 60
seconds, and add a jasper-seamount procedure.
Matt Birkholz [Mon, 11 Nov 2013 22:13:03 +0000 (15:13 -0700)]
Use glu:perspective and glu:look-at to "fly" a <glx-viewport>.
Also added gl:light-model, gl:blend-func all of the primitive, lights,
material params...
Matt Birkholz [Tue, 5 Nov 2013 16:17:28 +0000 (09:17 -0700)]
gtk: Warn, do not die, if start_gtk returns 0 (failure).
(load-option 'gtk) should work when DISPLAY is not set.
Matt Birkholz [Tue, 5 Nov 2013 16:07:49 +0000 (09:07 -0700)]
planetarium/google-earth-requests: Do not truncate logged data.
Matt Birkholz [Mon, 4 Nov 2013 23:19:05 +0000 (16:19 -0700)]
planetarium: google-earth-requests: Replace open-input-gfile.
Open-input-gfile hangs when DISPLAY is not set -- when a cron job.
Replace it with (open-input-string (http-response-body (http-get...
Matt Birkholz [Mon, 4 Nov 2013 21:05:56 +0000 (14:05 -0700)]
planetarium: Request 8 Google elevations at once.
Matt Birkholz [Mon, 4 Nov 2013 00:50:38 +0000 (17:50 -0700)]
dist/shared.sh: Add gtk and gl to the list of PLUGINS.
Matt Birkholz [Mon, 4 Nov 2013 00:46:02 +0000 (17:46 -0700)]
planetarium: Add request-google-elevation, make-google-elevations.
Make-google-elevations creates a <glx-viewport> viewing a height map
created from the data collected by request-google-elevation.
Matt Birkholz [Mon, 4 Nov 2013 00:21:28 +0000 (17:21 -0700)]
planetarium/mit-snapshot: Remove redundant draw-tellurion call(!).
Matt Birkholz [Mon, 4 Nov 2013 00:20:47 +0000 (17:20 -0700)]
planetarium: Add geodesic-distance, angular-separation,...
...and an angular-separation test procedure.
Matt Birkholz [Mon, 4 Nov 2013 00:08:31 +0000 (17:08 -0700)]
gl: Enhance glxgears demo.
Allow FPS rate reporting to be toggled off. Try to use visibility
notify events to avoid spinning when the display is blanked. Remove
stereo support. (Move it to the new <glx-viewport> widget.)
Matt Birkholz [Mon, 4 Nov 2013 00:05:45 +0000 (17:05 -0700)]
gl: Move original glxgears translation to package (gl glxgears~).
Add a %trace? variable.
Matt Birkholz [Mon, 4 Nov 2013 00:04:36 +0000 (17:04 -0700)]
gl: Simplify make.scm
Suppression of option loading messages is now the default.
Matt Birkholz [Mon, 4 Nov 2013 00:02:11 +0000 (17:02 -0700)]
gl: Add gl:display, gl:cull-face, gl:color-material, gl:scale...
gl:scaled should have been gl:scale.
Matt Birkholz [Sun, 3 Nov 2013 23:51:41 +0000 (16:51 -0700)]
gl: with-glx-viewport, with-glx-widget
with-glx-device is now with-glx-widget. The new <glx-viewport> takes
a draw procedure and provides key-press handling that allows the arrow
keys to orbit the view around the origin.
Matt Birkholz [Sun, 3 Nov 2013 23:44:59 +0000 (16:44 -0700)]
gl: make check
Set library-directory-path; fluid-binding does not work so well when
glx-widget key-press handlers and destroy callbacks run in gtk-thread.
Join with animation thread to ensure gc-flip will clean up everything.
Check that everything is cleaned up.
Matt Birkholz [Thu, 31 Oct 2013 20:02:24 +0000 (13:02 -0700)]
gl: New wrapper for libGL, libGLU.
Matt Birkholz [Thu, 31 Oct 2013 19:46:15 +0000 (12:46 -0700)]
gtk: Simplify make.scm.
Suppression of option loading messages is now the default.
Matt Birkholz [Thu, 31 Oct 2013 19:45:10 +0000 (12:45 -0700)]
gtk: Simplify configure.ac and fix its copyright notices.
Matt Birkholz [Thu, 31 Oct 2013 19:44:25 +0000 (12:44 -0700)]
gtk: re-generate gtk-*.pkd when gtk.pkg changes.
Matt Birkholz [Thu, 31 Oct 2013 19:39:05 +0000 (12:39 -0700)]
Quiet load-option; suppress loading messages.
Matt Birkholz [Thu, 31 Oct 2013 19:37:41 +0000 (12:37 -0700)]
Merge branch 'master' into Gtk.
Matt Birkholz [Thu, 31 Oct 2013 19:23:20 +0000 (12:23 -0700)]
ffi: Add flovec_* functions and abort_to_c for shims.
Add flovec_length, flovec_loc and flovec_ref. The abort_to_c function
allows the Gtk shim's run_gtk() to stop Scheme and return to the
toolkit.
Matt Birkholz [Thu, 31 Oct 2013 19:05:52 +0000 (12:05 -0700)]
ffi/build.scm.in: Install compile-file:sf-only?ed options.
Copy the .bin if there is no .com. Copy .ext too.
Matt Birkholz [Thu, 31 Oct 2013 19:03:12 +0000 (12:03 -0700)]
doc/ffi: typo