Skip to content
Snippets Groups Projects
Commit 2a6b55bb authored by Raymond Toy's avatar Raymond Toy
Browse files

Merge branch 'master' into rtoy-unix-core

parents 822beed8 419cdec6
No related branches found
No related tags found
No related merge requests found
Showing
with 2445 additions and 41 deletions
;; Enable executable feature on ppc.
#+ppc
(pushnew :executable *features*)
;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
(in-package :asdf)
(require :clx)
(defsystem :clx-inspector
:name "INSPECT"
:author "Skef Wholey et. al."
:maintainer "Fred Gilham"
:license "Public Domain"
:description "Graphical Inspector"
:long-description "Inspector that uses pop-up windows to display the
objects. Updates the values of the objects in the background."
:components
((:file "clx-inspector")))
Name:
CLX Inspector.
Package Name:
INSPECT
Description:
Adds another inspector style as an alternative to the console
inspector. Inspecting objects pops up windows with the
contents of the object. The values of the object are updated
in the background. Multiple windows can be displayed at the
same time.
Author:
Original by Skef Wholey. Ported to CLX by Christopher Hoover
with "minor tweaks" by Bill Chiles. Updated and enhanced by
Fred Gilham.
Net Address:
fred@sunbot.homedns.org
Copyright Status:
CMUCL public domain code. No Warranty.
Files:
clx-inspector.lisp
How to Get:
Comes with CMUCL contrib library.
Portability:
Depends on CMUCL-specific features.
Instructions:
(require :clx-inspector)
(inspect <object>) Once the window pops up, you can type "h"
to pop up a window of instructions.
This diff is collapsed.
(compile-file "modules:clx-inspector/clx-inspector"
:load t)
#define inspect-d_width 16
#define inspect-d_height 16
#define inspect-d_x_hot 1
#define inspect-d_y_hot 1
static char inspect-d_bits[] = {
0x00,0x00,0x02,0x00,0x06,0x00,0x0e,0x00,0x1e,0x00,0x3e,0x00,0x7e,0x00,0xfe,
0x00,0xfe,0x45,0x3e,0x6c,0x36,0x54,0x62,0x54,0x60,0x44,0xc0,0x44,0xc0,0x44,
0x00,0x00};
#define inspect-d_width 16
#define inspect-d_height 16
static char inspect-d_bits[] = {
0x07,0x00,0x0f,0x00,0x1f,0x00,0x3f,0x00,0x7f,0x00,0xff,0x00,0xff,0x01,0xff,
0xef,0xff,0xff,0x7f,0xfe,0xff,0xfe,0xff,0xfe,0xf7,0xef,0xe0,0xef,0xe0,0xef,
0xe0,0xef};
#define inspect-s_width 16
#define inspect-s_height 16
#define inspect-s_x_hot 1
#define inspect-s_y_hot 1
static char inspect-s_bits[] = {
0x00,0x00,0x02,0x00,0x06,0x00,0x0e,0x00,0x1e,0x00,0x3e,0x00,0x7e,0x00,0xfe,
0x00,0xfe,0x79,0x3e,0x44,0x36,0x04,0x62,0x38,0x60,0x40,0xc0,0x44,0xc0,0x3c,
0x00,0x00};
#define inspect-s_width 16
#define inspect-s_height 16
static char inspect-s_bits[] = {
0x07,0x00,0x0f,0x00,0x1f,0x00,0x3f,0x00,0x7f,0x00,0xff,0x00,0xff,0x01,0xff,
0xfd,0xff,0xff,0x7f,0xfe,0xff,0x7e,0xff,0xfc,0xf7,0xff,0xe0,0xff,0xe0,0x7f,
0xe0,0x7f};
#define inspect_width 16
#define inspect_height 16
#define inspect_x_hot 3
#define inspect_y_hot 1
static char inspect_bits[] = {
0x00,0x00,0x08,0x00,0x18,0x00,0x38,0x00,0x78,0x00,0xf8,0x00,0xf8,0x01,0xf8,
0x03,0xf8,0x07,0xf8,0x00,0xd8,0x00,0x88,0x01,0x80,0x01,0x00,0x03,0x00,0x03,
0x00,0x00};
#define inspect_width 16
#define inspect_height 16
static char inspect_bits[] = {
0x0c,0x00,0x1c,0x00,0x3c,0x00,0x7c,0x00,0xfc,0x00,0xfc,0x01,0xfc,0x03,0xfc,
0x07,0xfc,0x0f,0xfc,0x0f,0xfc,0x01,0xdc,0x03,0xcc,0x03,0x80,0x07,0x80,0x07,
0x00,0x03};
The component objects of the window's object will become highlighted
(surrounded by a box) as the mouse passes over them. In an inspector
window, keystrokes and mouse clicks are interpreted as follows:
Left When the mouse is over a component object,
clicking Left will inspect that object in
the current inspector window. The "up" command
(below) can be used to return to the current
object.
Middle When the mouse is over a component object,
clicking Middle will exit the inspector, deleting
all new windows, and returning the component
as the result of the call to Inspect.
Right When the mouse is over a component object,
clicking Right will inspect that object in
a new inspector window.
Shift-Middle When the mouse is over a component object,
clicking Shift-Middle will exit the inspector,
leaving all windows displayed, and returning the
component as the result of the call to Inspect.
d, D Typing "d" or "D" inside an inspector window
will delete that window, and exit the inspector
if there are no more inspector windows.
h, H, ? Typing "h", "H", or "?" inside an inspector
window will create a window with helpful
instructions.
m, M Typing "m" or "M" inside an inspector window
will allow one to modify a component of an
object. The mouse cursor will change from an
arrow to an arrow with an "M" beside it,
indicating that one should select the component
to be modified. Clicking any mouse button while
the mouse is over a component will select that
component as a destination for modification.
If one has typed "m", the source object will
also be selected by the mouse, with the mouse
cursor changed to an arrow with an "S" beside
it. The object will replace the destination
component.
If one has typed "M", the source object will be
prompted for on the *Query-IO* stream.
When choosing the destination or source with the
mouse, one may type "q" or "Q" to abort the
modify operation.
q, Q Typing "q" or "Q" will quit the inspector,
deleting all new inspector windows.
p, P Typing "p" or "P" will proceed from the
inspector, leaving all inspector windows intact.
r, R Typing "r" or "R" will recompute the display for
the object in the window. This is used to
maintain a consistent display for an object that
may have changed since the display was computed.
u, U Typing "u" or "U" takes one back up the chain of
investigation, to the object for which this
object was displayed as a component. This only
works for displays generated by modifying a
previously current display; this does not work
for a display generated as a new inspector
window.
DONE
......@@ -20,12 +20,25 @@ New in this release:
* Known issues:
* Feature enhancements
* The darwin/ppc port can create executables now. Current
implementation is rather buggy, though.
* Changes
* Micro-optimize SCALE-FLOAT to do multiplication when possible.
* Update to ASDF 3.1.4.
* The external-format :UTF is no longer an alias for :UTF-8.
* :ELF feature added for solaris.
* LISP:WITH-STRING-CODEPOINT-ITERATOR added to iterate over the
codepoints in a string. This works the same as
WITH-HASH-TABLE-ITERATOR.
* LISP:WITH-STRING-GLYPH-ITERATOR added to iterate over the glyphs
in a string. Works like WITH-HASH-TABLE-ITERATOR.
* LOOP supports new extended keywords
* (loop for cp being the codepoint of string ...)
* codepoints, code-point, and code-points are aliases for
codepoint.
* (loop for g-string being the glpyh of string ...)
* glyphs is an alias for glpyh.
* ANSI compliance fixes:
......@@ -42,17 +55,40 @@ New in this release:
* Support for 64-bit time_t on NetBSD added. This allows cmucl to
run on more recent versions of NetBSD.
* The empty package LOOP has been removed.
* Executables on x86 can be created once again. This ability was
inadvertently broken when x86 support was removed.
* (log number base) no longer generates an error when one of the
args is a double-double.
* Fix bug in kernel::dd-%log2 which returned the wrong value.
* More accurate values for (log x 2) and (log x 10):
* Add log10 implementation for double-doubles so that log10(10^n)
= n for integer n.
* An accurate log2 function added so that log2(2^n) = n.
* All unit tests pass successfully on darwin/x86, linux/x86, and
solaris/sparc. Darwin/ppc fails most of the tests dealing with
exceptions for the special functions.
* Trac Tickets:
* Ticket #54 fixed.
* Ticket #95 fixed.
* Ticket #110 fixed.
* Ticket #112 fixed.
* Other changes:
* Cross compile scripts from x86 to sparc and ppc updated to work
again to cross-compile from the current snapshot.
* motifd is a 64-bit binary on linux again, instead of 32-bit.
* Improvements to the PCL implementation of CLOS:
* Changes to building procedure:
* Dependencies for motifd are autogenerated.
* Cross compile frox darwin/x86 to solaris/x86 fixed to work
correctly.
This release is not binary compatible with code compiled using CMUCL
......
# -*- Mode: makefile -*-
PATH1 = ../../src/lisp
vpath %.h $(PATH1)
vpath %.c $(PATH1)
vpath %.S $(PATH1)
CPPFLAGS = -I. -I$(PATH1)
# For Mac OS X 10.2, gcc3 is appropriate. For 10.4, gcc (gcc 4.0) is ok. But
......
......@@ -2,19 +2,6 @@
# Common configuration for sparc/solaris builds.
# These tell gmake where to look for .h, .c and .S files. Mostly for
# building the binary outside of the src tree.
PATH1 = ../../src/lisp
vpath %.h .:$(PATH1)
vpath %.c .:$(PATH1)
vpath %.S .:$(PATH1)
CMULOCALE = ../../src/i18n/locale
vpath %.pot $(CMULOCALE)
vpath %.po $(CMULOCALE)
vpath %.mo $(CMULOCALE)
CPP_DEFINE_OPTIONS := -DSOLARIS -DSVR4
# Enable support for :linkage-table feature.
......
# -*- Mode: makefile -*-
# These tell gmake where to look for .h, .c and .S files. Mostly for
# building the binary outside of the src tree.
PATH1 = ../../src/lisp
vpath %.h $(PATH1)
vpath %.c $(PATH1)
vpath %.S $(PATH1)
CMULOCALE = ../../src/i18n/locale
vpath %.pot $(CMULOCALE)
vpath %.po $(CMULOCALE)
vpath %.mo $(CMULOCALE)
CPP_DEFINE_OPTIONS := -Di386
# Enable support for :linkage-table feature.
......
# $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/GNUmakefile,v 1.39 2010/10/14 17:47:12 rtoy Exp $
# These tell gmake where to look for .h, .c and .S files. Mostly for
# building the binary outside of the src tree.
PATH1 = ../../src/lisp
vpath %.h $(PATH1)
vpath %.c $(PATH1)
vpath %.S $(PATH1)
CMULOCALE = ../../src/i18n/locale
vpath %.pot $(CMULOCALE)
vpath %.po $(CMULOCALE)
vpath %.mo $(CMULOCALE)
all: lisp.nm
-include internals.inc
include Config
......@@ -130,3 +144,4 @@ translations-update:
msgfmt -v ../../src/$$po/$$f.po -o ../$$po/$$f.mo; \
done; done
......@@ -64,7 +64,7 @@ extern void globals_init(void);
#define EXTERN(name,bytes) .extern name bytes
#endif
#ifdef sparc
#ifdef SVR4
#if defined(SVR4) || defined(FEATURE_ELF)
#define EXTERN(name,bytes) .global name
#else
#define EXTERN(name,bytes) .global _ ## name
......
......@@ -470,7 +470,7 @@ main(int argc, const char *argv[], const char *envp[])
lispobj initial_function = 0;
if (builtin_image_flag != 0) {
#if defined(SOLARIS) || (defined(i386) && (defined(__linux__) || defined(DARWIN) || defined(__FreeBSD__) || defined(__NetBSD__)))
#if defined(SOLARIS) || defined(DARWIN) || (defined(i386) && (defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__)))
initial_function = (lispobj) initial_function_addr;
#else
initial_function = (lispobj) & initial_function_addr;
......
......@@ -221,7 +221,7 @@ os_foreign_linkage_init(void)
}
#endif
if (i == 0) {
#if defined(sparc)
#if defined(sparc) || (defined(DARWIN) && defined(__ppc__))
if (type != LINKAGE_CODE_TYPE || strcmp(c_symbol_name, EXTERN_ALIEN_NAME("call_into_c"))) {
fprintf(stderr, "linkage_data is %s but expected %s\n",
c_symbol_name,
......@@ -229,14 +229,6 @@ os_foreign_linkage_init(void)
lose("First element of linkage_data is bogus.\n");
}
arch_make_linkage_entry(i, (void*) call_into_c, 1);
#elif (defined(DARWIN) && defined(__ppc__))
if (type != 1 || strcmp(c_symbol_name, EXTERN_ALIEN_NAME("call_into_c"))) {
fprintf(stderr, "linkage_data is %s but expected %s\n",
c_symbol_name,
EXTERN_ALIEN_NAME("call_into_c"));
lose("First element of linkage_data is bogus.\n");
}
arch_make_linkage_entry(i, &call_into_c, 1);
#else
if (type != LINKAGE_CODE_TYPE || strcmp(c_symbol_name,
EXTERN_ALIEN_NAME("resolve_linkage_tramp"))) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment