/[cmucl]/src/lisp/purify.c
ViewVC logotype

Log of /src/lisp/purify.c

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (annotate)
Sticky Tag:

Revision 1.43 - (view) (annotate) - [select for diffs]
Thu Jun 11 16:04:01 2009 UTC (4 years, 10 months ago) by rtoy
Branch: MAIN
CVS Tags: GIT-CONVERSION, HEAD, RELEASE_20a, RELEASE_20b, amd64-dd-start, cross-sol-x86-2010-12-20, cross-sol-x86-base, cross-sol-x86-merged, cross-sparc-branch-base, intl-2-branch-base, intl-branch-2010-03-18-1300, intl-branch-base, intl-branch-working-2010-02-11-1000, intl-branch-working-2010-02-19-1000, merged-unicode-utf16-extfmt-2009-06-11, portable-clx-base, portable-clx-import-2009-06-16, post-merge-intl-branch, pre-merge-intl-branch, release-20a-base, release-20a-pre1, release-20b-pre1, release-20b-pre2, snapshot-2009-07, snapshot-2009-08, snapshot-2009-11, snapshot-2009-12, snapshot-2010-01, snapshot-2010-02, snapshot-2010-03, snapshot-2010-04, snapshot-2010-05, snapshot-2010-06, snapshot-2010-07, snapshot-2010-08, snapshot-2010-11, snapshot-2010-12, snapshot-2011-01, snapshot-2011-02, snapshot-2011-03, snapshot-2011-04, snapshot-2011-06, snapshot-2011-07, snapshot-2011-09, sparc-tramp-assem-2010-07-19, sparc-tramp-assem-base, unicode-string-buffer-base, unicode-string-buffer-impl-base
Branch point for: RELEASE-20A-BRANCH, RELEASE-20B-BRANCH, amd64-dd-branch, cross-sol-x86-branch, cross-sparc-branch, intl-2-branch, intl-branch, portable-clx-branch, sparc-tramp-assem-branch, unicode-string-buffer-branch, unicode-string-buffer-impl-branch
Changes since 1.42: +10 -2 lines
Diff to previous 1.42
Merge Unicode work to trunk.  From label
unicode-utf16-extfmt-2009-06-11.

Revision 1.42.2.1 - (view) (annotate) - [select for diffs]
Wed May 14 16:12:06 2008 UTC (5 years, 11 months ago) by rtoy
Branch: unicode-utf16-branch
CVS Tags: unicode-snapshot-2009-05, unicode-snapshot-2009-06, unicode-utf16-char-support-2009-03-25, unicode-utf16-char-support-2009-03-26, unicode-utf16-extfmt-2009-03-27, unicode-utf16-extfmt-2009-06-11, unicode-utf16-extfmts-pre-sync-2008-11, unicode-utf16-extfmts-sync-2008-12, unicode-utf16-string-support, unicode-utf16-sync-2008-07, unicode-utf16-sync-2008-09, unicode-utf16-sync-2008-11, unicode-utf16-sync-2008-12, unicode-utf16-sync-label-2009-03-16
Branch point for: unicode-utf16-extfmt-branch
Changes since 1.42: +10 -2 lines
Diff to previous 1.42 , to next main 1.43
Initial checkin of unicode branch.  This is incomplete.

What works:
o Cross-compile works on sparc and a lisp.core is created.  This core
  is able to build code and appears to use 16-bit strings.

What doesn't:
o The sparc version is not able to rebuild itself.  It hangs when
  trying to create a new lisp.core.
o The x86 version will cross-compile, but worldload fails.  The files
  being loaded have bizarre names.  Probably some deftransform not
  working correctly.

Issues:
o Characters are still essentially 8 bits.  This needs to be fixed.
o All input/output is basically still 8 bits.  Only the low 8 bits of
  a character are output.  For input, characters are assumed to be
  8-bit.
o No external formats or anything is supported.
o Readtable support not done.


Use boot-2008-05-cross-unicode-{sparc,x86}.lisp to cross-compile the
unicode changes.

Untested whether this code can still be compiled without :unicode.

Changes:

code/array.lisp:
o Base-char strings are 16 bits wide, not 8.

code/c-call.lisp:
o Define versions of DEPORT-GEN, %NATURALIZE-C-STRING to "handle"
  unicode strings.

code/debug-info.lisp:
o Adjust READ-VAR-STRING to use 16-bit strings.  (Needed to at least
  to make the disassembler work.)

code/debug.lisp:
o Add address when printing out objects that can't be printed.
  (Generally useful and not just for unicode.)

code/fd-stream.lisp:
o Hack output routines to only use the low 8-bits of the character.
  (This needs significant work!)

code/filesys.lisp:
o Some debugging %primitive prints left in, but commented out, in
  PARSE-UNIX-NAMESTRING.

code/lispinit.lisp:
o Debugging %primitive print's for top-level forms.

code/load.lisp:
o Update FOP-SHORT-CHARACTER for unicode.  But still only output the
  low 8 bits of a character to a fasl/core.  This needs updating.
o Hack routines for symbols to explicitly read in the individual bytes
  of the symbol/package name because READ-N-BYTES isn't working for us
  right now.
o Update FOP-STRING/FOP-SMALL-STRING to read in 16-bit elements for
  strings.  Full 16-bit strings supported.
o Currently only write 8-bit chars for foreign names.  This needs
  fixing.

code/misc.lisp:
o Register :unicode runtime feature.

code/pathname.lisp:
o Debugging %primitive prints left in, but commented out.

code/stream.lisp:
o Replace %primitive byte-blt with REPLACE for now to get the desired
  characters.

code/unix-glibc2.lisp:
o Workaround for unix-current-directory to return 16-bit strings.
  (Not necessary anymore?)
o UNIX-RESOLVE-LINKS doesn't seem to like MAKE-STRING with an
  INITIAL-ELEMENT specified.  Remove initial-element.  (Needs fixing.)

code/unix.lisp:
o Same as for unix-glibc2.lisp

compiler/array-tran.lisp:
o Turn off the MAKE-STRING deftransform.
o Update ARRAY-INFO to create 16-bit arrays for an element-type of
  base-char.

compiler/dump.lisp:
o Only dump 8-bit chars to a fasl for foreign fixups.
o Explicitly dump the characters of symbol name.  DUMP-BYTES not quite
  working for us now?
o Make DUMP-SIMPLE-STRING dump all 16 bits of each character.
o Characters are dumped as the low 8 bits.  Needs fixing.

compiler/generic/new-genesis.lisp:
o STRING-TO-CORE writes 16-bit strings to the core file.
o FOP-SHORT-CHARACTER for unicode added, but we still only write 8
  bits to the core.  (Needs fixing.)
o COLD-LOAD-SYMBOL modified to read 16-bit characters from the fasl
  file to create a symbol.
o FOP-UNINTERNED-SYMBOL-SAVE and FOP-UNINTERNED-SMALL-SYMBOL-SAVE
  reads 16-bit characters for symbol names.
o FOP-STRING/FOP-SMALL-STRING reads 16-bit characters for strings.
o FOP-FOREIGN-FIXUP and FOP-FOREIGN-DATA-FIXUP still only read 8-bit
  characters for foreign names.  (Needs fixing.)

compiler/generic/vm-tran.lisp:
o New deftransforms to support unicode.  Not the most efficient but
  should be workable for now.  Old deftransforms didn't copy enough
  bits.
o Deftransform for concatenate completely disabled.  This needs
  fixing.

compiler/sparc/array.lisp:
o Change simple-string accessor to use halfword accessors instead of
  byte accessors.

compiler/x86/array.lisp:
o Change simple-string accessor to use halfword accessors instead of
  byte accessors.

lisp/Config.linux_gencgc:
o Define -DUNICODE as needed

lisp/Config.sun4_solaris_sunc
o Define -DUNICODE as needed.

lisp/alloc.c:
o alloc_string needs to allocate 16-bit strings

lisp/backtrace.c:
o Tell ldb backtrace how to print out 16-bit strings.  This is a hack!

lisp/gencgc.c:
o Tell GC how long the 16-bit strings are now.

lisp/interr.c:
o Not really needed but make debug_print (aka %primitive print)
  support all objects by calling ldb's print function to print the
  object.

lisp/os-common.c:
o Add hack convert_lisp_string to take a 16-bit Lisp string and create
  a new string containing just the low 8 bits of each Lisp character.
o OS foreign linkage stuff needs 8-bit strings, so we need to convert
  Lisp strings to the desired size.  Very hackish!

lisp/print.c:
o Teach ldb how to print Lisp 16-bit strings.  Currently, just dump
  out each byte of the 16-bit string.  This needs major work!

lisp/purify.c:
o Teach purify about the 16-bit strings.

Revision 1.42 - (view) (annotate) - [select for diffs]
Fri Mar 21 09:36:42 2008 UTC (6 years, 1 month ago) by cshapiro
Branch: MAIN
CVS Tags: RELEASE_19f, label-2009-03-16, label-2009-03-25, merge-sse2-packed, merge-with-19f, release-19f-base, release-19f-pre1, snapshot-2008-04, snapshot-2008-05, snapshot-2008-06, snapshot-2008-07, snapshot-2008-08, snapshot-2008-09, snapshot-2008-10, snapshot-2008-11, snapshot-2008-12, snapshot-2009-01, snapshot-2009-02, snapshot-2009-04, snapshot-2009-05, sse2-base, sse2-checkpoint-2008-10-01, sse2-merge-with-2008-10, sse2-merge-with-2008-11, sse2-packed-2008-11-12, sse2-packed-base, unicode-utf16-base
Branch point for: RELEASE-19F-BRANCH, sse2-branch, sse2-packed-branch, unicode-utf16-branch
Changes since 1.41: +2 -2 lines
Diff to previous 1.41
Add a cast to muffle a compiler warning.

Revision 1.41 - (view) (annotate) - [select for diffs]
Sat Mar 15 15:00:13 2008 UTC (6 years, 1 month ago) by agoncharov
Branch: MAIN
Changes since 1.40: +3 -3 lines
Diff to previous 1.40
Getting rid of some compiler warnings:

  * Eliminate `printf' format string and the following arguments
    conflicts.

  * A variable may be used uninitialized.

  * A variable may be defined but not used.

Revision 1.40 - (view) (annotate) - [select for diffs]
Fri Jul 6 08:04:39 2007 UTC (6 years, 9 months ago) by cshapiro
Branch: MAIN
CVS Tags: pre-telent-clx, release-19e, release-19e-base, release-19e-pre1, release-19e-pre2, snapshot-2007-08, snapshot-2007-09, snapshot-2007-10, snapshot-2007-11, snapshot-2007-12, snapshot-2008-01, snapshot-2008-02, snapshot-2008-03
Branch point for: release-19e-branch
Changes since 1.39: +4 -4 lines
Diff to previous 1.39
Import x86 Darwin port.

Revision 1.39 - (view) (annotate) - [select for diffs]
Sun Jun 10 05:03:09 2007 UTC (6 years, 10 months ago) by cshapiro
Branch: MAIN
CVS Tags: snapshot-2007-07
Changes since 1.38: +3 -3 lines
Diff to previous 1.38
Use the p conversion specifier for pointer arguments to printf.

Revision 1.38 - (view) (annotate) - [select for diffs]
Wed May 2 16:50:12 2007 UTC (6 years, 11 months ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2007-06
Changes since 1.37: +25 -4 lines
Diff to previous 1.37
When purifying the static space, change the loop condition from != to
<.  Print out an error message if the loop is exited with clean !=
static_free.

This prevents infinite loops that were sometimes seen on x86.
However, the infinite loops appear to be caused by some kind of
heap corruption.  This change just makes the corruption more
apparent.

Revision 1.37 - (view) (annotate) - [select for diffs]
Fri Jun 30 18:41:32 2006 UTC (7 years, 9 months ago) by rtoy
Branch: MAIN
CVS Tags: release-19d, release-19d-base, release-19d-pre1, release-19d-pre2, snapshot-2006-07, snapshot-2006-08, snapshot-2006-09, snapshot-2006-10, snapshot-2006-11, snapshot-2006-12, snapshot-2007-01, snapshot-2007-02, snapshot-2007-03, snapshot-2007-04, snapshot-2007-05
Branch point for: release-19d-branch
Changes since 1.36: +57 -1 lines
Diff to previous 1.36
This large checkin merges the double-double float support to HEAD.
The merge is from the tag "double-double-irrat-end".  The
double-double branch is now obsolete.

The code should build without double-double support (tested on sparc)
as well as build with double-double support (tested also on sparc).

Revision 1.36.2.1.4.4 - (view) (annotate) - [select for diffs]
Wed Jun 21 20:16:02 2006 UTC (7 years, 10 months ago) by rtoy
Branch: double-double-array-branch
CVS Tags: double-double-array-checkpoint, double-double-irrat-end, double-double-irrat-start, double-double-sparc-checkpoint-1
Changes since 1.36.2.1.4.3: +9 -1 lines
Diff to previous 1.36.2.1.4.3 , to branch point 1.36.2.1
Remove the dylan-function-header type.

compiler/generic/objdef.lisp:
compiler/sparc/macros.lisp:
lisp/gencgc.c:
lisp/purify.c:
o Remove the dylan-function-header type

compiler/sparc/insts.lisp
o Remove the dylan-function-header type
o Update header-word-type-alist to match the list of header word types
  in objdefs.

Revision 1.36.2.1.4.3 - (view) (annotate) - [select for diffs]
Wed Jun 21 18:38:45 2006 UTC (7 years, 10 months ago) by rtoy
Branch: double-double-array-branch
Changes since 1.36.2.1.4.2: +20 -1 lines
Diff to previous 1.36.2.1.4.2 , to branch point 1.36.2.1
Add support for (simple-array (complex double-double-float) (*)).

bootfiles/19c/boot-2006-06-2-cross-dd-sparc.lisp:
o Update for new array type.
o Fix a problem with ash-left-mod32 and lognot-mod32 not being
  defined.

code/array.lisp:
o Add new array type for %vector-type-code.
o Tell data-vector-ref, data-vector-set, and array-element-type about
  the new array.

code/class.lisp:
o Add new array type to the set of built-in classes.

code/exports.lisp:
o Export necessary symbols for the new array type.

code/pred.lisp:
o Generate type predicate for new array type.

compiler/array-tran.lisp:
o Add new array type to array-info.

compiler/generic/objdef.lisp:
o Add new array type code.

compiler/generic/primtype.lisp:
o Add new primitive type for this new array type.
o Update *simple-array-primitive-types* with new array type.

compiler/generic/vm-fndb.lisp:
o Defknown for new array type.

compiler/generic/vm-type.lisp:
o Update specialized-array-element-types with new type so we can
  create specialized arrays.

compiler/generic/vm-typetran.lisp:
o Tell compiler about predicate for the new array type.

compiler/sparc/array.lisp:
o Add new vops to read and write elements to our new array type.

compiler/sparc/type-vops.lisp:
o Add type vop for new array type.
o Adjust type hierarchy with new array type.

lisp/gencgc.c:
o Tell GC about the new array type.

lisp/purify.c
o Tell purify about the new array type.

Revision 1.36.2.1.4.2 - (view) (annotate) - [select for diffs]
Mon Jun 19 02:15:00 2006 UTC (7 years, 10 months ago) by rtoy
Branch: double-double-array-branch
Changes since 1.36.2.1.4.1: +7 -1 lines
Diff to previous 1.36.2.1.4.1 , to branch point 1.36.2.1
lisp/gencgc.c:
o Tell GC what to do with complex double-double floats.

lisp/purify.c:
o Tell purify what to do with complex double-double floats.

Revision 1.36.2.1.4.1 - (view) (annotate) - [select for diffs]
Fri Jun 16 03:46:59 2006 UTC (7 years, 10 months ago) by rtoy
Branch: double-double-array-branch
Changes since 1.36.2.1: +12 -1 lines
Diff to previous 1.36.2.1
Add support for new unboxed primitive type (simple-array
double-double-float (*)).

bootfiles/19c/boot-2006-06-2-cross-dd-ppc.lisp:
o Cross-compile script for PPC for new array type.

code/array.lisp:
o Add simple-array double-double-float to the vector types.
o Add support for double-double-float arrays to data-vector-ref and
  data-vector-set.

code/class.lisp:
o Tell compiler about the new array type.

code/exports.lisp:
o Export necessary symbols for the new array.

code/kernel.lisp:
o The args to MAKE-DOUBLE-DOUBLE-FLOAT are double-floats.

code/pred.lisp:
o Tell type system about new primitive type.

compiler/array-tran.lisp:
o Tell compiler about the new array type.

compiler/generic/objedef.lisp:
o Add new type code

compiler/generic/primtype.lisp:
o Tell compiler about new primitive array type.

compiler/generic/vm-fndb.lisp:
o Tell compiler about known function for type test function.

compiler/generic/vm-type.lisp:
o Tell compiler about new specialized array type.

compiler/generic/vm-typetran.lisp:
o Define type predicate.

compiler/ppc/array.lisp:
o Add vops to read and write an element of a double-double-float
  simple array.

compiler/ppc/type-vops.lisp:
compiler/sparc/type-vops.lisp:
o Add type vop for new array type.
o Tell compiler about the where the new array type fits in the type
  hierarchy.

lisp/gencgc.c:
o Add GC support for new array type.

lisp/purify.c:
o Add purify support for new array type.

Revision 1.36.2.1 - (view) (annotate) - [select for diffs]
Fri Jun 9 16:05:19 2006 UTC (7 years, 10 months ago) by rtoy
Branch: double-double-branch
CVS Tags: double-double-array-base, double-double-init-%make-sparc, double-double-init-checkpoint-1, double-double-init-ppc, double-double-init-sparc, double-double-init-sparc-2, double-double-init-x86, double-double-reader-base, double-double-reader-checkpoint-1
Branch point for: double-double-array-branch, double-double-reader-branch
Changes since 1.36: +13 -1 lines
Diff to previous 1.36 , to next main 1.43
Add basic support for kernel:double-double-float type.  The primitive
type is there, and basic arithmetic operations work as well as PRINT.
But many things do not work: No reader, formatted output, many mixed
type arithmetic operations, special functions are just double-float
values, coerced to double-double-float.

compiler/generic/interr.lisp:
o Add new error

compiler/generic/new-genesis.lisp:
o Dump double-double-float objects (barely tested)

compiler/generic/primtype.lisp:
o Tell compiler about the new primitive type double-double-float.

compiler/generic/vm-fndb.lisp:
o Make double-double-float-p a known function.

compiler/generic/vm-type.lisp:
o Update FLOAT-FORMAT-NAME to include double-double-float

compiler/generic/vm-typetran.lisp:
o Tell compiler about double-double-float type predicate.

compiler/sparc/float.lisp:
o Add necessary vops to move double-double-float args, store and load
  double-double-floats to/from the double-double-stack,
  double-double-reg moves, box and unbox double-double-floats, move
  double-double-floats to and from args
o Add necessary vops to create a double-double-float and to extract
  the high and low parts out of a double-double-float.

compiler/sparc/parms.lisp:
o Define double-double-float-digits

compiler/sparc/type-vops.lisp:
o Define double-double-float type vop
o Adjust number hierarchy to include double-double-float

compiler/sparc/vm.lisp:
o Define the necessary storage class and storage base for the
  double-double-reg and double-double-stack.

lisp/gencgc.c:
o Tell GC about double-double-float objects.

lisp/purify.c:
o Tell purify about double-double-float objects.

code/class.lisp:
o Add the new double-double-float class.

code/exports.lisp:
o Add the necessary symbols to the various packages.  (This is
  important to get right otherwise there's confusion on what symbol
  really represents double-double-float stuff.)

code/float.lisp:
o Implement some of the necessary functions to support
  double-double-float.

code/hash-new.lisp:
o Hash double-double-floats by xor'ing the hashes of each double-float
  part.  (Is that good enough?)

code/irrat.lisp:
o Implement the special functions by calling the double-float versions
  and coercing the result to a double-double-float.  This is needed to
  get type-derivation working, but the precise value isn't that
  important right now.  We'll have to implement them later.

code/kernel.lisp:
o Make make-double-double-float, double-double-hi, and
  double-double-lo known functions.

code/lispinit.lisp:
o Register the :double-double float feature.

code/load.lisp:
o Add FOP for reading double-double-float values from fasls.  (Barely
  tested, if at all.)

code/numbers.lisp:
o Implement basic arithmetic operations for double-double-floats.
  This needs quite a bit of work to clean up, but most things work.

code/pred.lisp:
o Tell the type system about double-double-float type.

code/print.lisp:
o Add very rudimentary printing for double-double-float.  Basically
  copied from code written by Richard Fateman, with permission.

code/seq.lisp:
o Tell coerce how to coerce things to a double-double-float.

code/type.lisp:
o Tell type system about the new float format double-double-float and
  how numeric contagion works with double-double-float.

code/dump.lisp:
o Tell dumper how to dump double-double-float values to a fasl.

compiler/float-tran.lisp:
o Add appropriate deftransforms to handle conversion of things to
  double-double-float and from from double-double-float to other float
  types.
o The basic implmentation of double-double-float arithmetic is also
  here.
o Add deftransforms to tell the compiler how to do basic arithmetic
  and comparisions on double-double-float numbers.

compiler/srctran.lisp:
o Fix a bug in interval-range-info when :low is 0dd0 and :high is 0.
  We weren't returning the right value, which confuses interval-div,
  which caused an infinite loop because we couldn't split the
  numerator into positive and negative parts.
o Tell other parts about double-double-float.

Revision 1.36 - (view) (annotate) - [select for diffs]
Wed Jan 18 15:21:26 2006 UTC (8 years, 3 months ago) by rtoy
Branch: MAIN
CVS Tags: double-double-base, snapshot-2006-02, snapshot-2006-03, snapshot-2006-04, snapshot-2006-05, snapshot-2006-06
Branch point for: double-double-branch
Changes since 1.35: +2 -2 lines
Diff to previous 1.35
Merge ppc_gencgc_branch to HEAD.

Revision 1.29.2.4 - (view) (annotate) - [select for diffs]
Mon Jan 2 16:33:58 2006 UTC (8 years, 3 months ago) by rtoy
Branch: ppc_gencgc_branch
CVS Tags: ppc_gencgc_snap_2006-01-06
Changes since 1.29.2.3: +2 -2 lines
Diff to previous 1.29.2.3 , to branch point 1.29 , to next main 1.43
Turn off PRINTNOISE; we shouldn't need it anymore.

Revision 1.29.2.3 - (view) (annotate) - [select for diffs]
Mon Dec 19 01:10:15 2005 UTC (8 years, 4 months ago) by rtoy
Branch: ppc_gencgc_branch
CVS Tags: ppc_gencgc_snap_2005-12-17
Changes since 1.29.2.2: +942 -896 lines
Diff to previous 1.29.2.2 , to branch point 1.29
Merge code from main branch of 2005-12-17 to ppc gencgc branch.  Still
doesn't work of course.

Revision 1.35 - (view) (annotate) - [select for diffs]
Sun Dec 11 18:30:51 2005 UTC (8 years, 4 months ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2006-01
Changes since 1.34: +2 -2 lines
Diff to previous 1.34
Make ppc port look a little more like sparc by making
fdefn-raw-addr-slot actually hold a tagged pointer instead of the raw
address.  Not sure if this is good or not, but making it like sparc
makes ppc a little easier.

Might need a cross-compile; the 2005-12-1-ppc cross-compile script
works fine.

assembly/ppc/arith.lisp:
o Static functions are now tagged, so need to adjust address before
  branching to them.

compiler/generic/new-genesis.lisp:
o Fill fdefn-raw-addr-slot with the tagged address instead of
  converting to untagged.

compiler/ppc/call.lisp:
o fdefn-raw-addr-slot is tagged, so need to adjust it before branching
  to function.

compiler/ppc/cell.lisp:
o No need to adjust function address before storing it in the
  fdefn-raw-addr-slot.

compiler/ppc/static-fn.lisp:
o Static functions are tagged, so need to adjust address before
  branching to them.

lisp/gc.c:
o Don't need scav_fdefn, because the fdefn is a tagged object now.

lisp/ppc-assem.S:
o Make undefined_tramp and closure_tramp be tagged instead of
  untagged.

lisp/purify.c
o RAW_ADDR_OFFSET is 0 now, like sparc.

Revision 1.34 - (view) (annotate) - [select for diffs]
Thu Sep 15 18:26:52 2005 UTC (8 years, 7 months ago) by rtoy
Branch: MAIN
CVS Tags: release-19c, release-19c-base, release-19c-pre1, snapshot-2005-10, snapshot-2005-11, snapshot-2005-12
Branch point for: release-19c-branch
Changes since 1.33: +934 -868 lines
Diff to previous 1.33
Indent all source files using GNU indent using the config in
.indent.pro.

Revision 1.33 - (view) (annotate) - [select for diffs]
Mon Sep 5 06:09:13 2005 UTC (8 years, 7 months ago) by cshapiro
Branch: MAIN
Changes since 1.32: +9 -9 lines
Diff to previous 1.32
Replace all uses of the old b{copy,zero} byte string functions with
the equivalent standard C mem{cpy,move,set} functions.

Revision 1.29.2.2 - (view) (annotate) - [select for diffs]
Sun May 15 20:01:31 2005 UTC (8 years, 11 months ago) by rtoy
Branch: ppc_gencgc_branch
Changes since 1.29.2.1: +1 -1 lines
Diff to previous 1.29.2.1 , to branch point 1.29
Merge snapshot-2005-05 to this branch.

Revision 1.32 - (view) (annotate) - [select for diffs]
Tue May 3 14:57:24 2005 UTC (8 years, 11 months ago) by rtoy
Branch: MAIN
CVS Tags: release-19b-base, release-19b-pre1, release-19b-pre2, snapshot-2005-05, snapshot-2005-06, snapshot-2005-07, snapshot-2005-08, snapshot-2005-09
Branch point for: release-19b-branch
Changes since 1.31: +1 -7 lines
Diff to previous 1.31
Undo rev 1.30 that close regions before purification.  This was
causing problems on x86/linux for some reason.  We should investigate
this later.

Revision 1.31 - (view) (annotate) - [select for diffs]
Fri Apr 29 14:51:39 2005 UTC (8 years, 11 months ago) by rtoy
Branch: MAIN
Changes since 1.30: +1 -2 lines
Diff to previous 1.30
Oops.  Fix typo and remove bare #if.

Revision 1.30 - (view) (annotate) - [select for diffs]
Thu Apr 28 20:25:48 2005 UTC (8 years, 11 months ago) by rtoy
Branch: MAIN
Changes since 1.29: +8 -1 lines
Diff to previous 1.29
Should close up any open alloc regions before purification.  This bug
was mentioned by Dan Barlow on #lisp.

Revision 1.29.2.1 - (view) (annotate) - [select for diffs]
Tue Apr 5 03:41:10 2005 UTC (9 years ago) by rtoy
Branch: ppc_gencgc_branch
CVS Tags: ppc_gencgc_snap_2005-05-14
Changes since 1.29: +24 -4 lines
Diff to previous 1.29
Checkin the current code for gencgc.  This is a basic port of sparc
gencgc for ppc.  This is not yet functional.  Allocation seems to
work, but GC does not.  We're just making a checkpoint now.

compiler/ppc/macros.lisp:
o Update allocation macro to support gencgc.  Need a temp-tn as a
  scratch register for inline allocation.
o Update with-fixed-allocation to use allocation macro correctly for
  gencgc.

assembly/ppc/array.lisp:
o Update for new allocation macro for gencgc.

code/ppc-vm.lisp:
o Define *scavenge-read-only-space*

compiler/ppc/alloc.lisp:
compiler/ppc/array.lisp:
compiler/ppc/call.lisp:
o Update to use new allocation macro for gencgc.

compiler/ppc/parms.lisp:
o Add necessary static symbols to support gencgc.

lisp/Config.ppc_darwin:
o Update to build with gencgc as needed.

lisp/Darwin-os.c:
o Update C code for gencgc.  Mostly for checking if pointer is in the
  dynamic space.
o Many debugging printf's enabled.

lisp/gencgc.c:
o Adjust sparc version appropriately for ppc.
o Enable many gencgc self-checks.

lisp/gencgc.h:
o Update PAGE_SIZE for ppc, which is 4K.

lisp/ppc-arch.c:
o Add necessary code to handle the allocation traps for gencgc.
  Basically ported sparc version for ppc.

lisp/ppc-assem.S:
o The way pseudo-atomic is done has been changed, so make the assembly
  code match.  PA is now more like sparc where the LSB is the
  PA-interrupted bit.
o do_pending_interrupt may need work.

lisp/ppc-validate.h:
o Make the READ_ONLY_SPACE_SIZE right.
o Define CONTROL_STACK_END.

lisp/purify.c:
o Enable debugging printfs
o Adjust purify for gencgc, basically copying sparc version.

Revision 1.29 - (view) (annotate) - [select for diffs]
Wed Aug 4 18:37:25 2004 UTC (9 years, 8 months ago) by cwang
Branch: MAIN
CVS Tags: snapshot-2004-09, snapshot-2004-10, snapshot-2004-11, snapshot-2004-12, snapshot-2005-01, snapshot-2005-02, snapshot-2005-03, snapshot-2005-04
Branch point for: ppc_gencgc_branch
Changes since 1.28: +13 -3 lines
Diff to previous 1.28
Fix purify for strings and vectors.

Change offset_vector back to an unsigned int* because it still has
32-bit elements on amd64. Eventually we will make this consistent with
internals.h. This creates a compiler warning, sigh.

Revision 1.28 - (view) (annotate) - [select for diffs]
Thu Jul 8 03:18:15 2004 UTC (9 years, 9 months ago) by rtoy
Branch: MAIN
CVS Tags: prm-before-macosx-merge-tag, snapshot-2004-08
Changes since 1.27: +16 -16 lines
Diff to previous 1.27
More compiler warning fixes:

* purify.c: fixup up fprintf warnings
* x86-validate.h:  LinkageSpaceStart is an unsigned, so cast it.

Revision 1.27 - (view) (annotate) - [select for diffs]
Mon Jun 28 23:04:40 2004 UTC (9 years, 9 months ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2004-07
Changes since 1.26: +5 -5 lines
Diff to previous 1.26
Get rid of a few more warnings about making pointers from integers and
assigning pointers from integers.  From the scavenger_hook stuff.

Revision 1.26 - (view) (annotate) - [select for diffs]
Mon Jun 28 22:48:32 2004 UTC (9 years, 9 months ago) by rtoy
Branch: MAIN
Changes since 1.25: +3 -3 lines
Diff to previous 1.25
Get rid of some compiler warnings about comparing a pointer and an
integer.

Revision 1.25 - (view) (annotate) - [select for diffs]
Wed May 19 23:52:56 2004 UTC (9 years, 11 months ago) by cwang
Branch: MAIN
CVS Tags: snapshot-2004-06
Changes since 1.24: +80 -40 lines
Diff to previous 1.24
amd64 changes

Revision 1.24 - (view) (annotate) - [select for diffs]
Wed Apr 28 13:05:56 2004 UTC (9 years, 11 months ago) by emarsden
Branch: MAIN
CVS Tags: amd64-merge-start, release-19a, release-19a-base, release-19a-pre1, release-19a-pre2, release-19a-pre3, snapshot-2004-05
Branch point for: release-19a-branch
Changes since 1.23: +32 -5 lines
Diff to previous 1.23
  - detect overflow of static and read-only spaces during PURIFY. You get
    dumped into LDB.

  - fix a few signed/unsigned confusions in casts

Revision 1.23.2.1 - (view) (annotate) - [select for diffs]
Wed Sep 3 11:32:05 2003 UTC (10 years, 7 months ago) by gerd
Branch: lisp-executable
Changes since 1.23: +39 -39 lines
Diff to previous 1.23 , to next main 1.43
Fred Gilham's Lisp executable support for CMUCL.

Revision 1.22.6.1 - (view) (annotate) - [select for diffs]
Mon Aug 25 17:06:43 2003 UTC (10 years, 8 months ago) by gerd
Branch: dynamic-extent
Changes since 1.22: +8 -5 lines
Diff to previous 1.22 , to next main 1.43
Merge with HEAD.

Revision 1.23 - (view) (annotate) - [select for diffs]
Fri Aug 22 13:20:03 2003 UTC (10 years, 8 months ago) by toy
Branch: MAIN
CVS Tags: lisp-executable-base, mod-arith-base, snapshot-2003-10, snapshot-2003-11, snapshot-2003-12, snapshot-2004-04, sparc_gencgc_merge
Branch point for: lisp-executable, mod-arith-branch
Changes since 1.22: +8 -5 lines
Diff to previous 1.22
Merge sparc_gencgc_branch that adds support for gencgc for Solaris.

Revision 1.22.8.2 - (view) (annotate) - [select for diffs]
Mon Aug 18 02:23:58 2003 UTC (10 years, 8 months ago) by toy
Branch: sparc_gencgc_branch
Changes since 1.22.8.1: +3 -3 lines
Diff to previous 1.22.8.1 , to branch point 1.22 , to next main 1.43
Make these look more like the CVS HEAD versions for x86:

o Make enable_pointer_filter TRUE, just like CVS HEAD.
o Don't sniff_code_object just before apply_code_fixups.
o Turn off the check if a pointer is pointing to an invalid object
o Fix up a few more places where we should have written i386, not x86.

Revision 1.22.8.1 - (view) (annotate) - [select for diffs]
Fri Aug 15 20:43:10 2003 UTC (10 years, 8 months ago) by toy
Branch: sparc_gencgc_branch
Changes since 1.22: +8 -5 lines
Diff to previous 1.22
Initial port of gencgc to Solaris.

Revision 1.22 - (view) (annotate) - [select for diffs]
Thu Jan 23 21:05:39 2003 UTC (11 years, 3 months ago) by toy
Branch: MAIN
CVS Tags: cold-pcl-base, dynamic-extent-base, release-18e, release-18e-base, release-18e-pre1, release-18e-pre2, remove_negative_zero_not_zero, sparc_gencgc
Branch point for: cold-pcl, dynamic-extent, release-18e-branch, sparc_gencgc_branch
Changes since 1.21: +4 -4 lines
Diff to previous 1.21
From Eric Marsden:

    fix typos in comments, signal more specific error types, remove
    some stale code, fix a few compiler warnings in the runtime.

Revision 1.21 - (view) (annotate) - [select for diffs]
Fri Nov 8 20:01:41 2002 UTC (11 years, 5 months ago) by toy
Branch: MAIN
Changes since 1.20: +2 -2 lines
Diff to previous 1.20
Make MAX_STACK_POINTERS bigger.  Eric Marsden reports that in some
cases it's too small.  (Should we dynamically allocate this?)

Revision 1.20.2.1 - (view) (annotate) - [select for diffs]
Fri Oct 4 23:14:06 2002 UTC (11 years, 6 months ago) by pmai
Branch: UNICODE-BRANCH
Changes since 1.20: +38 -1 lines
Diff to previous 1.20 , to next main 1.43
Checked in Brian Spilsbury's experimental Unicode, locales, and dialect
support patchset.  This lives on its own branch, so that people can
play with it and tweak it, without disturbing 18e release engineering
on the main branch.  Bootstrapping has only been tried on LINKAGE_TABLE
x86/Linux builds.  A working cross-compile script is checked in under
bootfiles/19a/boot1-cross-unicode.lisp.  The script still leaves you
with some interactive errors, on the cross compile, which you should
answer with 2.  See the mailing list for more information.

Revision 1.10.2.4 - (view) (annotate) - [select for diffs]
Sat Mar 23 18:51:06 2002 UTC (12 years, 1 month ago) by pw
Branch: RELENG_18
CVS Tags: RELEASE_18d
Changes since 1.10.2.3: +24 -19 lines
Diff to previous 1.10.2.3 , to branch point 1.10 , to next main 1.43
Mega commit to bring RELENG_18 branch in sync with HEAD in preparation
for release tagging 18d.

Revision 1.20 - (view) (annotate) - [select for diffs]
Fri Oct 27 19:25:55 2000 UTC (13 years, 5 months ago) by dtc
Branch: MAIN
CVS Tags: LINKAGE_TABLE, PRE_LINKAGE_TABLE, UNICODE-BASE
Branch point for: UNICODE-BRANCH
Changes since 1.19: +24 -18 lines
Diff to previous 1.19
Cleanup compiler warnings.

Revision 1.10.2.3 - (view) (annotate) - [select for diffs]
Tue Oct 24 13:34:06 2000 UTC (13 years, 6 months ago) by dtc
Branch: RELENG_18
CVS Tags: RELEASE_18c
Changes since 1.10.2.2: +3 -3 lines
Diff to previous 1.10.2.2 , to branch point 1.10
o Add the command line switch -dynamic-space-size for setting the size
  of the dynamic space. DYNAMIC_SPACE_SIZE now defines the maximum
  size, and when defined DEFAULT_DYNAMIC_SPACE_SIZE gives the default.

o Increase the maximum dynamic space size for Linux x86 to 1.625GB,
  with the default remaining at 512MB.

o Define the default dynamic space size for FreeBSD x86 to also be 512MB,
  with a maximum of 2GB.

Revision 1.19 - (view) (annotate) - [select for diffs]
Tue Oct 24 13:32:32 2000 UTC (13 years, 6 months ago) by dtc
Branch: MAIN
Changes since 1.18: +3 -3 lines
Diff to previous 1.18
o Add the command line switch -dynamic-space-size for setting the size
  of the dynamic space. DYNAMIC_SPACE_SIZE now defines the maximum
  size, and when defined DEFAULT_DYNAMIC_SPACE_SIZE gives the default.

o Increase the maximum dynamic space size for Linux x86 to 1.625GB,
  with the default remaining at 512MB.

o Define the default dynamic space size for FreeBSD x86 to also be 512MB,
  with a maximum of 2GB.

Revision 1.18 - (view) (annotate) - [select for diffs]
Sun Aug 27 14:45:42 2000 UTC (13 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.17: +1 -2 lines
Diff to previous 1.17
Misc source cleanup.

Revision 1.10.2.2 - (view) (annotate) - [select for diffs]
Tue May 23 16:38:30 2000 UTC (13 years, 11 months ago) by pw
Branch: RELENG_18
Changes since 1.10.2.1: +24 -18 lines
Diff to previous 1.10.2.1 , to branch point 1.10
This set of revisions brings the RELENG_18 branch up to HEAD in preparation
for an 18c release.

Revision 1.17 - (view) (annotate) - [select for diffs]
Wed Jan 19 18:11:13 2000 UTC (14 years, 3 months ago) by dtc
Branch: MAIN
Changes since 1.16: +24 -18 lines
Diff to previous 1.16
On the x86 port do not zero the dynamic space here after purify
because the necessary pages are zeroed by gc_free_heap.

Revision 1.10.2.1 - (view) (annotate) - [select for diffs]
Tue Jun 23 11:25:05 1998 UTC (15 years, 10 months ago) by pw
Branch: RELENG_18
CVS Tags: RELEASE_18b
Changes since 1.10: +590 -45 lines
Diff to previous 1.10
This (huge) revision brings the RELENG_18 branch up to the current HEAD.
Note code/unix-glib2.lisp not yet included -- not sure it is ready to go.

Revision 1.16 - (view) (annotate) - [select for diffs]
Sat Mar 21 08:15:01 1998 UTC (16 years, 1 month ago) by dtc
Branch: MAIN
Changes since 1.15: +76 -1 lines
Diff to previous 1.15
Long-float support.

Revision 1.15 - (view) (annotate) - [select for diffs]
Sun Jan 18 15:45:35 1998 UTC (16 years, 3 months ago) by dtc
Branch: MAIN
Changes since 1.14: +7 -6 lines
Diff to previous 1.14
Quieten down pscav_i386_stack, verbose output should have been
dependent on pointer_filter_verbose.

Revision 1.14 - (view) (annotate) - [select for diffs]
Fri Jan 16 07:22:10 1998 UTC (16 years, 3 months ago) by dtc
Branch: MAIN
Changes since 1.13: +280 -7 lines
Diff to previous 1.13
Rewrite of the x86/GENCGC purify stack scavenging to reduce the chance
of heap corruption and to try and handle return address on the stack.

Enhance new-genesis to save the code fixups for x86 code objects
allowing the code to be placed in the dynamic heap and thus garbage
collected by purify.

Revision 1.13 - (view) (annotate) - [select for diffs]
Mon Nov 17 23:39:04 1997 UTC (16 years, 5 months ago) by dtc
Branch: MAIN
Changes since 1.12: +3 -3 lines
Diff to previous 1.12
Fix a mistake from the previous commit which broke maybe_can_move_p
when there is no scavenger hook support (for CGC).

Revision 1.12 - (view) (annotate) - [select for diffs]
Sat Nov 8 15:44:38 1997 UTC (16 years, 5 months ago) by dtc
Branch: MAIN
Changes since 1.11: +225 -44 lines
Diff to previous 1.11
* Support for the complex-float array types.

* Support for moving code objects on the x86 port. Needed by the GENCGC
version which places code objects in the dynamic space which are moved
to the read-only space by purify.

* Scavenger hook support; available with GENCGC.

* Conditional support for scavenging the read-only space when the
*scavenge-read-only-space* static symbol is defined. This is currently
used with the x86 GENCGC version so that new-genesis can place code
objects in the read-only space.

* Hooks to GENCGC.

Revision 1.11 - (view) (annotate) - [select for diffs]
Sat Nov 1 22:58:04 1997 UTC (16 years, 5 months ago) by dtc
Branch: MAIN
Changes since 1.10: +16 -1 lines
Diff to previous 1.10
Improved support for (complex single-float) and (complex double-float)
types. Adds storage classes to the backend for these so they can be
stored in registers or on the stack without consing; new primitive
types etc. Also adds (simple-array (complex {single,double}-float))
array types to avoid consing and speed vectors operations.  All
these changes are conditional on the :complex-float feature. More work
is needed to exploit these changes: improving the type dispatch in the
various function; maybe compiler transforms or more VOPs to handle
common functions inline.

Revision 1.10 - (view) (annotate) - [select for diffs]
Wed Apr 9 17:49:36 1997 UTC (17 years ago) by dtc
Branch: MAIN
CVS Tags: RELEASE_18a
Branch point for: RELENG_18
Changes since 1.9: +39 -5 lines
Diff to previous 1.9
New value for the :pure option of defstruct, :substructure. Purify
will place the instance in the static space but still move the
substructure lists and arrays to the RO space. This is needed for
compact-info environments which cache the last name in the instance
which needs to be scavenged, but the hash arrays can still be placed
in the RO space (the cache name was not being scavenge which could
cause a false hit if very unlucky). Shall uses this new option in
compiler/globaldb.lisp after people have had a chance to bootstrap in
this new support.

Revision 1.9 - (view) (annotate) - [select for diffs]
Tue Apr 1 19:24:20 1997 UTC (17 years ago) by dtc
Branch: MAIN
Changes since 1.8: +37 -1 lines
Diff to previous 1.8
Support for some specialised signed array types: (signed-byte 8),
(signed-byte 16), (signed-byte 30), (signed-byte 32).  These patches
include the general support and the x86 backend support; more to
follow. The important changes are conditional on the :signed-array
feature so shouldn't affect the source without this feature. This work
has been driven by Raymond Toy.

Revision 1.8 - (view) (annotate) - [select for diffs]
Wed Feb 5 18:01:18 1997 UTC (17 years, 2 months ago) by pw
Branch: MAIN
Changes since 1.7: +11 -7 lines
Diff to previous 1.7
initial post 1.3.7 merge

Revision 1.7 - (view) (annotate) - [select for diffs]
Tue Jan 21 00:28:13 1997 UTC (17 years, 3 months ago) by ram
Branch: MAIN
Changes since 1.6: +234 -24 lines
Diff to previous 1.6
source kit 1.03.7

Revision 1.6 - (view) (annotate) - [select for diffs]
Mon Mar 29 03:39:58 1993 UTC (21 years, 1 month ago) by wlott
Branch: MAIN
Changes since 1.5: +4 -4 lines
Diff to previous 1.5
Fixed ptrans_instance to actually return the result of calling ptrans_boxed
instead of relying on the result still being in the correct register.

Revision 1.5 - (view) (annotate) - [select for diffs]
Fri Feb 26 09:02:06 1993 UTC (21 years, 2 months ago) by ram
Branch: MAIN
Changes since 1.4: +15 -3 lines
Diff to previous 1.4
new structure branch & tuning, see new_struct

Revision 1.4.1.2 - (view) (annotate) - [select for diffs] (vendor branch)
Fri Feb 26 09:00:57 1993 UTC (21 years, 2 months ago) by ram
Branch: new_struct
Changes since 1.4.1.1: +6 -6 lines
Diff to previous 1.4.1.1 , to next main 1.43
If pure, always put in r/o space.

Revision 1.4.1.1 - (view) (annotate) - [select for diffs] (vendor branch)
Tue Feb 23 12:02:15 1993 UTC (21 years, 2 months ago) by ram
Branch: new_struct
Changes since 1.4: +15 -3 lines
Diff to previous 1.4
structure -> instance
Added support for pure structures.

Revision 1.4 - (view) (annotate) - [select for diffs]
Sun Jan 10 17:22:37 1993 UTC (21 years, 3 months ago) by wlott
Branch: MAIN
Branch point for: new_struct
Changes since 1.3: +7 -7 lines
Diff to previous 1.3
Changed struct function_header to struct function.

Revision 1.3 - (view) (annotate) - [select for diffs]
Sat Dec 5 22:36:32 1992 UTC (21 years, 4 months ago) by wlott
Branch: MAIN
Changes since 1.2: +2 -1 lines
Diff to previous 1.2
Added support for dylan function subtypes.

Revision 1.2 - (view) (annotate) - [select for diffs]
Thu Aug 20 02:43:37 1992 UTC (21 years, 8 months ago) by wlott
Branch: MAIN
Changes since 1.1: +2 -2 lines
Diff to previous 1.1
Just because we close over something doesn't mean that it's constant.  Our
pointer to it will never change, but the closure function can do anything
it wants to it.

Revision 1.1 - (view) (annotate) - [select for diffs]
Tue Jul 28 20:15:23 1992 UTC (21 years, 9 months ago) by wlott
Branch: MAIN
Initial revision

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Sort log by:

  ViewVC Help
Powered by ViewVC 1.1.5