/[cmucl]/src/compiler/array-tran.lisp
ViewVC logotype

Log of /src/compiler/array-tran.lisp

Parent Directory Parent Directory | Revision Log Revision Log


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

Revision 1.45 - (view) (annotate) - [select for diffs]
Tue Apr 20 17:57:46 2010 UTC (3 years, 11 months ago) by rtoy
Branch: MAIN
CVS Tags: GIT-CONVERSION, HEAD, RELEASE_20b, cross-sol-x86-2010-12-20, cross-sol-x86-base, cross-sol-x86-merged, cross-sparc-branch-base, release-20b-pre1, release-20b-pre2, 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
Branch point for: RELEASE-20B-BRANCH, cross-sol-x86-branch, cross-sparc-branch, sparc-tramp-assem-branch
Changes since 1.44: +15 -15 lines
Diff to previous 1.44 , to selected 1.20
Change uses of _"foo" to (intl:gettext "foo").  This is because slime
may get confused with source locations if the reader macros are
installed.

Revision 1.44 - (view) (annotate) - [select for diffs]
Fri Mar 19 15:19:00 2010 UTC (4 years, 1 month ago) by rtoy
Branch: MAIN
CVS Tags: post-merge-intl-branch, snapshot-2010-04
Changes since 1.43: +16 -15 lines
Diff to previous 1.43 , to selected 1.20
Merge intl-branch 2010-03-18 to HEAD.  To build, you need to use
boot-2010-02-1 as the bootstrap file.  You should probably also use
the new -P option for build.sh to generate and update the po files
while building.

Revision 1.43.14.1 - (view) (annotate) - [select for diffs]
Thu Feb 25 20:34:52 2010 UTC (4 years, 1 month ago) by rtoy
Branch: intl-2-branch
Changes since 1.43: +16 -15 lines
Diff to previous 1.43 , to next main 1.45 , to selected 1.20
Restart internalization work.  This new branch starts with code from
the intl-branch on date 2010-02-12 18:00:00+0500.  This version works
and

LANG=en@piglatin bin/lisp

works (once the piglatin translation is added).

Revision 1.43.12.3 - (view) (annotate) - [select for diffs]
Thu Feb 25 03:59:43 2010 UTC (4 years, 1 month ago) by rtoy
Branch: intl-branch
CVS Tags: intl-branch-2010-03-18-1300
Changes since 1.43.12.2: +2 -2 lines
Diff to previous 1.43.12.2 , to branch point 1.43 , to next main 1.45 , to selected 1.20
o Make COMPILER-NOTE do the string lookup instead of at each call
  site.
o Change all calls to COMPILER-NOTE to use _N" instead of _".

Revision 1.43.12.2 - (view) (annotate) - [select for diffs]
Wed Feb 10 17:38:34 2010 UTC (4 years, 2 months ago) by rtoy
Branch: intl-branch
CVS Tags: intl-branch-working-2010-02-11-1000, intl-branch-working-2010-02-19-1000
Changes since 1.43.12.1: +15 -15 lines
Diff to previous 1.43.12.1 , to branch point 1.43 , to selected 1.20
Mark translatable strings; regenerated cmucl.pot and ko/cmucl.po
accordingly.

Revision 1.43.12.1 - (view) (annotate) - [select for diffs]
Mon Feb 8 17:15:50 2010 UTC (4 years, 2 months ago) by rtoy
Branch: intl-branch
Changes since 1.43: +2 -1 lines
Diff to previous 1.43 , to selected 1.20
Add (intl:textdomain "cmucl") to the files to set the textdomain.

Revision 1.43 - (view) (annotate) - [select for diffs]
Thu Jun 11 16:03:59 2009 UTC (4 years, 10 months ago) by rtoy
Branch: MAIN
CVS Tags: RELEASE_20a, amd64-dd-start, intl-2-branch-base, intl-branch-base, merged-unicode-utf16-extfmt-2009-06-11, portable-clx-base, portable-clx-import-2009-06-16, pre-merge-intl-branch, release-20a-base, release-20a-pre1, snapshot-2009-07, snapshot-2009-08, snapshot-2009-11, snapshot-2009-12, snapshot-2010-01, snapshot-2010-02, snapshot-2010-03, unicode-string-buffer-base, unicode-string-buffer-impl-base
Branch point for: RELEASE-20A-BRANCH, amd64-dd-branch, intl-2-branch, intl-branch, portable-clx-branch, unicode-string-buffer-branch, unicode-string-buffer-impl-branch
Changes since 1.42: +2 -2 lines
Diff to previous 1.42 , to selected 1.20
Merge Unicode work to trunk.  From label
unicode-utf16-extfmt-2009-06-11.

Revision 1.42.2.3 - (view) (annotate) - [select for diffs]
Fri May 30 19:01:43 2008 UTC (5 years, 10 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-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.2.2: +2 -2 lines
Diff to previous 1.42.2.2 , to branch point 1.42 , to next main 1.45 , to selected 1.20
Use char-bits to specify the array element size.  This allows us to
remove the unicode conditionals.

Revision 1.42.2.2 - (view) (annotate) - [select for diffs]
Sun May 18 22:55:24 2008 UTC (5 years, 11 months ago) by rtoy
Branch: unicode-utf16-branch
CVS Tags: unicode-utf16-string-support
Changes since 1.42.2.1: +1 -2 lines
Diff to previous 1.42.2.1 , to branch point 1.42 , to selected 1.20
MAKE-STRING deftransform is ok.

Revision 1.42.2.1 - (view) (annotate) - [select for diffs]
Wed May 14 16:12:04 2008 UTC (5 years, 11 months ago) by rtoy
Branch: unicode-utf16-branch
Changes since 1.42: +3 -2 lines
Diff to previous 1.42 , to selected 1.20
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]
Wed Mar 5 14:31:30 2008 UTC (6 years, 1 month ago) by rtoy
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: +14 -2 lines
Diff to previous 1.41 , to selected 1.20
Try to derive the rank of the array even if the resulting array is not
simple.  Can't derive the actual dimensions because a subsequent
adjust-array could change the dimensions.

Revision 1.41 - (view) (annotate) - [select for diffs]
Fri Jun 30 18:41:23 2006 UTC (7 years, 9 months ago) by rtoy
Branch: MAIN
CVS Tags: pre-telent-clx, release-19d, release-19d-base, release-19d-pre1, release-19d-pre2, release-19e, release-19e-base, release-19e-pre1, release-19e-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, snapshot-2007-06, snapshot-2007-07, 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-19d-branch, release-19e-branch
Changes since 1.40: +7 -1 lines
Diff to previous 1.40 , to selected 1.20
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.40.10.3 - (view) (annotate) - [select for diffs]
Wed Jun 21 18:38:44 2006 UTC (7 years, 9 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.40.10.2: +4 -1 lines
Diff to previous 1.40.10.2 , to branch point 1.40 , to next main 1.45 , to selected 1.20
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.40.10.2 - (view) (annotate) - [select for diffs]
Sat Jun 17 02:59:42 2006 UTC (7 years, 10 months ago) by rtoy
Branch: double-double-array-branch
Changes since 1.40.10.1: +2 -2 lines
Diff to previous 1.40.10.1 , to branch point 1.40 , to selected 1.20
Initial support for (complex double-double-float).

Use boot-2006-06-2-cross-dd* to cross compile this change (along with
the simple-array double-double-float change).

Revision 1.40.10.1 - (view) (annotate) - [select for diffs]
Fri Jun 16 03:46:58 2006 UTC (7 years, 10 months ago) by rtoy
Branch: double-double-array-branch
Changes since 1.40: +4 -1 lines
Diff to previous 1.40 , to selected 1.20
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.37.2.2 - (view) (annotate) - [select for diffs]
Mon Dec 19 01:09:58 2005 UTC (8 years, 4 months ago) by rtoy
Branch: ppc_gencgc_branch
CVS Tags: ppc_gencgc_snap_2005-12-17, ppc_gencgc_snap_2006-01-06
Changes since 1.37.2.1: +2 -2 lines
Diff to previous 1.37.2.1 , to branch point 1.37 , to next main 1.45 , to selected 1.20
Merge code from main branch of 2005-12-17 to ppc gencgc branch.  Still
doesn't work of course.

Revision 1.37.2.1 - (view) (annotate) - [select for diffs]
Sun May 15 20:01:22 2005 UTC (8 years, 11 months ago) by rtoy
Branch: ppc_gencgc_branch
Changes since 1.37: +16 -4 lines
Diff to previous 1.37 , to selected 1.20
Merge snapshot-2005-05 to this branch.

Revision 1.40 - (view) (annotate) - [select for diffs]
Mon May 9 13:06:59 2005 UTC (8 years, 11 months ago) by rtoy
Branch: MAIN
CVS Tags: double-double-array-base, double-double-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, release-19b-base, release-19b-pre1, release-19b-pre2, release-19c, release-19c-base, release-19c-pre1, snapshot-2005-06, snapshot-2005-07, snapshot-2005-08, snapshot-2005-09, snapshot-2005-10, snapshot-2005-11, snapshot-2005-12, snapshot-2006-01, snapshot-2006-02, snapshot-2006-03, snapshot-2006-04, snapshot-2006-05, snapshot-2006-06
Branch point for: double-double-array-branch, double-double-branch, double-double-reader-branch, release-19b-branch, release-19c-branch
Changes since 1.39: +2 -2 lines
Diff to previous 1.39 , to selected 1.20
Use array-dimension instead of length when creating the result array,
in case the source array has a fill pointer.

Revision 1.39 - (view) (annotate) - [select for diffs]
Mon May 2 13:55:50 2005 UTC (8 years, 11 months ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2005-05
Changes since 1.38: +2 -2 lines
Diff to previous 1.38 , to selected 1.20
Fix typo. * should be :maybe since array-type-complexp slot can only
be T, NIL, or :MAYBE.

Revision 1.38 - (view) (annotate) - [select for diffs]
Fri Feb 25 17:14:38 2005 UTC (9 years, 1 month ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2005-03, snapshot-2005-04
Changes since 1.37: +15 -3 lines
Diff to previous 1.37 , to selected 1.20
Workaround for bug reported by Lynn Quam, cmucl-imp, 2005-02-25.  The
derived type of %aset is the array element type if it's an array.
Otherwise, we return the type of the new value.

This is a hack and should be fixed in some other way.

Revision 1.37 - (view) (annotate) - [select for diffs]
Fri Jan 7 21:47:18 2005 UTC (9 years, 3 months ago) by rtoy
Branch: MAIN
CVS Tags: ppc_gencgc_snap_2005-05-14, snapshot-2005-02
Branch point for: ppc_gencgc_branch
Changes since 1.36: +19 -2 lines
Diff to previous 1.36 , to selected 1.20
This function from the misc.492 test from ansi-tests:

(defun fn-492 (r p1)
  (declare (optimize speed (safety 1))
	   (type (simple-array (signed-byte 8) nil) r) (type (integer * 22050378) p1))
  (setf (aref r) (lognand (the (integer 19464371) p1) 2257))
  (values))

confuses the compiler and causes (values) to be deleted, and also
deletes the return from the function so we just run past the end into
junk.

I think it's caused by confusion in type derivation.  I changed the
defoptimizer for %aset so it returns the specialized element-type of
the array instead of the new-value.

This is a workaround, not a solution.

Revision 1.36 - (view) (annotate) - [select for diffs]
Wed May 5 16:37:22 2004 UTC (9 years, 11 months ago) by rtoy
Branch: MAIN
CVS Tags: amd64-merge-start, prm-before-macosx-merge-tag, snapshot-2004-06, snapshot-2004-07, snapshot-2004-08, snapshot-2004-09, snapshot-2004-10, snapshot-2004-11, snapshot-2004-12, snapshot-2005-01
Changes since 1.35: +3 -3 lines
Diff to previous 1.35 , to selected 1.20
Fix typo.  0s0 is not a single-float. (Well, it is in CMUCL, but not
in general.)

Revision 1.35 - (view) (annotate) - [select for diffs]
Thu Apr 1 17:52:30 2004 UTC (10 years ago) by rtoy
Branch: MAIN
CVS Tags: mod-arith-base, release-19a, release-19a-base, release-19a-pre1, release-19a-pre2, release-19a-pre3, snapshot-2004-04, snapshot-2004-05
Branch point for: mod-arith-branch, release-19a-branch
Changes since 1.34: +15 -1 lines
Diff to previous 1.34 , to selected 1.20
Lynn Quam on cmucl-imp on 2004-03-30 says

(defun foo (f d)
  (declare (type (simple-array single-float (*)) f)
           (type (simple-array double-float (*)) d))
  (setf (aref f 0) (aref d 0)))

doesn't produce any warnings and generates completely bogus code.

Don't know what the real answer solution is, but turning off the
assert-continuation-type for a single-use continuation fixes this,
which is what 18a used to do.  There are probably other bugs that this
hides.

Revision 1.34 - (view) (annotate) - [select for diffs]
Tue Jul 1 09:38:07 2003 UTC (10 years, 9 months ago) by gerd
Branch: MAIN
CVS Tags: dynamic-extent-base, lisp-executable-base, snapshot-2003-10, snapshot-2003-11, snapshot-2003-12, sparc_gencgc, sparc_gencgc_merge
Branch point for: dynamic-extent, lisp-executable, sparc_gencgc_branch
Changes since 1.33: +2 -2 lines
Diff to previous 1.33 , to selected 1.20
	* src/compiler/array-tran.lisp (%check-bound): Fix an off-by-1
	error in bounds checking.  Observed by Christophe Rhodes on
	cmucl-imp.

Revision 1.33 - (view) (annotate) - [select for diffs]
Sun Apr 27 11:43:43 2003 UTC (10 years, 11 months ago) by gerd
Branch: MAIN
CVS Tags: remove_negative_zero_not_zero
Changes since 1.32: +15 -4 lines
Diff to previous 1.32 , to selected 1.20
	* src/compiler/array-tran.lisp (svref, schar, char): Define
	source transforms so that they don't accept more than one
	index, for better error messages.

Revision 1.32 - (view) (annotate) - [select for diffs]
Sun Apr 13 11:57:17 2003 UTC (11 years ago) by gerd
Branch: MAIN
Changes since 1.31: +2 -2 lines
Diff to previous 1.31 , to selected 1.20
  	The SEQUENCE-COUNT type was previously used in c:fndb, but since
	C::SEQUENCE-COUNT /= KERNEL::SEQUENCE-COUNT, it was an unknown
	type.  Please read boot4.lisp.

	* src/code/exports.lisp ("KERNEL"): Export sequence-count.

	* src-types/bootfiles/18e/boot4.lisp: New file.


	Make compute-effective-slot-definition AMOP compliant.
	Patch from Kevin Rosenberg.

	* src/pcl/std-class.lisp (compute-slots): Pass slot name
	to compute-effective-slot-definition.
	(compute-slots): Likewise.
	(compute-effective-slot-definition): Add parameter slot-name.

	* src/pcl/generic-functions.lisp (compute-effective-slot-definition):
	Add second parameter slot-name.


	Allow non-keyword keyword names in lambda lists.  This fixes test
	cases STRUCTURE-BOA-TEST-15/[1-8], and FLET.30.

	* src/compiler/node.lisp (arg-info): Accept non-keyword
	keyword names.

	* src/code/type.lisp (key-info): Likewise.


	Fix type system bugs detected by Paul Dietz' test suite
	This is to a large extent a port from SBCL.

	* src/code/type.lisp: Mostly rewritten with code ported from
	SBCL.

	* src/compiler/typetran.lisp (ir1-transform-type-predicate):
	Return nil if type is *empty-type*.
	(source-transform-negation-typep)
	(source-transform-intersection-typep): New functions.
	(source-transform-array-typep): Handle unknown array element types.
	(typep): Add handling of negation and intersection types.

	* src/compiler/srctran.lisp (make-canonical-union-type):
	Simplify, now that #'type-union is smarter.
	(ir1-transform-<-helper): Give up on non-numeric, non-member
	types.

	* src/compiler/checkgen.lisp (type-test-cost): Add a case
	for intersection-type.
	(values-types-asserted): Don't use coerce-to-values, see
	the comment there.

	* src/compiler/array-tran.lisp (array-dimension): Accept
	:maybe as array-type-complexp.

	* src/code/pred.lisp (%%typep): Add handling of
	negation-types and intersection-types.  Change cases of
	hairy-types, union-types, and arrays with unknown element type.

	* src/code/exports.lisp ("KERNEL"): Export negation-type,
	negation-type-type, intersection-type, intersection-type-types.

	* src/code/class.lisp (sealed-class-intersection):
	Return one value.
	(class :simple-intersection): Return one value, return nil in
	the default case.
	(class :complex-subtypep-arg2): New type method.

Revision 1.31 - (view) (annotate) - [select for diffs]
Sat Feb 22 16:11:12 2003 UTC (11 years, 1 month ago) by gerd
Branch: MAIN
CVS Tags: cold-pcl-base, release-18e, release-18e-base, release-18e-pre1, release-18e-pre2
Branch point for: cold-pcl, release-18e-branch
Changes since 1.30: +2 -2 lines
Diff to previous 1.30 , to selected 1.20
	* src/compiler/array-tran.lisp (make-string): Remove a
	spurious quote.

Revision 1.30 - (view) (annotate) - [select for diffs]
Sat Feb 22 13:34:02 2003 UTC (11 years, 1 month ago) by gerd
Branch: MAIN
Changes since 1.29: +6 -8 lines
Diff to previous 1.29 , to selected 1.20
	* src/compiler/array-tran.lisp (make-string): Change the
	def-source-transform to a deftransform to ensure
	argument evaluation order.

Revision 1.29 - (view) (annotate) - [select for diffs]
Tue Oct 15 21:23:13 2002 UTC (11 years, 6 months ago) by toy
Branch: MAIN
Changes since 1.28: +3 -3 lines
Diff to previous 1.28 , to selected 1.20
Port over SBCL's fix for the Entomotomy bug

array-element-type-treated-as-declaration

wherein the compiler believes type declarations on array elements
without checking them, e.g.

	(DECLAIM (OPTIMIZE (SAFETY 3) (SPEED 1) (SPACE 1)))
	(DEFSTRUCT FOO A B)
	(DEFUN BAR (X)
	  (DECLARE (TYPE (SIMPLE-ARRAY CONS 1) X))
	  (WHEN (CONSP (AREF X 0))
	    (PRINT (AREF X 0))))
	(BAR (VECTOR (MAKE-FOO :A 11 :B 12)))

prints a structure out.

This patch makes the compiler use the specialized (upgraded) element
type instead of the declared element type for aref.

Revision 1.28.2.1 - (view) (annotate) - [select for diffs]
Fri Oct 4 23:13:39 2002 UTC (11 years, 6 months ago) by pmai
Branch: UNICODE-BRANCH
Changes since 1.28: +12 -4 lines
Diff to previous 1.28 , to next main 1.45 , to selected 1.20
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.19.2.4 - (view) (annotate) - [select for diffs]
Sun Jul 9 14:03:12 2000 UTC (13 years, 9 months ago) by dtc
Branch: RELENG_18
CVS Tags: RELEASE_18c, RELEASE_18d
Changes since 1.19.2.3: +4 -3 lines
Diff to previous 1.19.2.3 , to branch point 1.19 , to next main 1.45 , to selected 1.20
Reworking of the values-type system to overcome a number of inconsistencies
causing problems:

o Redefine coerce-to-values to convert a single value type into (values type),
  rather than the former definition (values type &rest t). A single value
  type such as fixnum is now equivalent to (values fixnum).

o Now when the compiler makes assertions for the first value of
  continuations that may be generating multiple values it asserts the
  type as (values type &rest t), or as (value &optional type &rest t) if
  it is not sure that the continuation does generate a value.

o Enhance the type check generation to better handle the now common
  values types with optional and rest arguments. Add the new function
  Values-types-asserted which converts asserted optional and rest
  arguments to required arguments that have been proven to be delivered,
  Thus an assertion such as (values &optional fixnum &rest t) will
  generate a fixnum type check if the proven type if (values t).

o The compiler is now far more likely to pickup attempts to use an
  assertion to select a subset of values. For example
  (the (values fixnum) (values x y)) will generated a compiler warning.

o Update single values type assertions where appropriate to clarify that
  the received values may be optional or that multiple values may be
  received. For example, a macro argument which had been asserted to be
  a list via (the list ,...) would now be asserted to be
  (the (values &optional list &rest t)) etc.

o Have the IR1 translator for THE convert single value types into
  (values &optional type &rest t) so that code such as
  (the fixnum (values x y)) will still work acceptably. This does not
  restrict the possible type assertions as the values types may be used
  and are not modified.

Revision 1.28 - (view) (annotate) - [select for diffs]
Thu Jul 6 18:37:00 2000 UTC (13 years, 9 months ago) by dtc
Branch: MAIN
CVS Tags: LINKAGE_TABLE, PRE_LINKAGE_TABLE, UNICODE-BASE
Branch point for: UNICODE-BRANCH
Changes since 1.27: +4 -3 lines
Diff to previous 1.27 , to selected 1.20
Reworking of the values-type system to overcome a number of inconsistencies
causing problems:

o Redefine coerce-to-values to convert a single value type into (values type),
  rather than the former definition (values type &rest t). A single value
  type such as fixnum is now equivalent to (values fixnum). Values-type-union
  and values-type-intersection will canonicalise values types with a
  single value such as (values fixnum) back to a single value type
  such as fixnum.

o Now when the compiler makes assertions for the first value of
  continuations that may be generating multiple values it asserts the
  type as (values type &rest t), or as (value &optional type &rest t) if
  it is not sure that the continuation does generate a value.

o Enhance the type check generation to better handle the now common
  values types with optional and rest arguments. Add the new function
  Values-types-asserted which converts asserted optional and rest
  arguments to required arguments that have been proven to be delivered,
  Thus an assertion such as (values &optional fixnum &rest t) will
  generate a fixnum type check if the proven type if (values t).

o The compiler is now far more likely to pickup attempts to use an
  assertion to select a subset of values. For example
  (the (values fixnum) (values x y)) will generated a compiler warning.

o Update single values type assertions where appropriate to clarify that
  the received values may be optional or that multiple values may be
  received. For example, a macro argument which had been asserted to be
  a list via (the list ,...) would now be asserted to be
  (the (values &optional list &rest t)) etc.

o Have the IR1 translator for THE convert single value types into
  (values &optional type &rest t) so that code such as
  (the fixnum (values x y)) will still work acceptably. This does not
  restrict the possible type assertions as the values types may be used
  and are not modified.

Revision 1.19.2.3 - (view) (annotate) - [select for diffs]
Tue May 23 16:36:59 2000 UTC (13 years, 10 months ago) by pw
Branch: RELENG_18
Changes since 1.19.2.2: +10 -10 lines
Diff to previous 1.19.2.2 , to branch point 1.19 , to selected 1.20
This set of revisions brings the RELENG_18 branch up to HEAD in preparation
for an 18c release.

Revision 1.27 - (view) (annotate) - [select for diffs]
Fri Jul 24 17:22:26 1998 UTC (15 years, 8 months ago) by dtc
Branch: MAIN
Changes since 1.26: +10 -10 lines
Diff to previous 1.26 , to selected 1.20
The complex-float and signed-array features are  now standard, so
remove unnecessary conditionals.

Revision 1.19.2.2 - (view) (annotate) - [select for diffs]
Tue Jun 23 11:22:41 1998 UTC (15 years, 9 months ago) by pw
Branch: RELENG_18
CVS Tags: RELEASE_18b
Changes since 1.19.2.1: +46 -16 lines
Diff to previous 1.19.2.1 , to branch point 1.19 , to selected 1.20
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.26 - (view) (annotate) - [select for diffs]
Sat Mar 21 08:08:31 1998 UTC (16 years, 1 month ago) by dtc
Branch: MAIN
Changes since 1.25: +6 -1 lines
Diff to previous 1.25 , to selected 1.20
Long-float support.

Revision 1.25 - (view) (annotate) - [select for diffs]
Tue Feb 24 19:14:04 1998 UTC (16 years, 1 month ago) by dtc
Branch: MAIN
Changes since 1.24: +2 -2 lines
Diff to previous 1.24 , to selected 1.20
Have the aref derive-type optimizer check for exactly one node
continuation use before asserting the type.

Revision 1.24 - (view) (annotate) - [select for diffs]
Fri Feb 13 16:09:48 1998 UTC (16 years, 2 months ago) by dtc
Branch: MAIN
Changes since 1.23: +4 -3 lines
Diff to previous 1.23 , to selected 1.20
ANSI CL compat. changes:
o Add an optional environment argument to constantp; ignored by CMUCL.
o Add the :element-type keyword to make-string.

Revision 1.23 - (view) (annotate) - [select for diffs]
Sat Jan 10 05:02:26 1998 UTC (16 years, 3 months ago) by dtc
Branch: MAIN
Changes since 1.22: +22 -7 lines
Diff to previous 1.22 , to selected 1.20
The aref derive type optimiser should have been returning the upgraded
element type rather than a possibly more specific declared element
type. When there is only a single use of the continuation the type is
also asserted to be the declared element type. This can pickup errors
such as reading an uninitialised element type is not of the declared
type.

Revision 1.22 - (view) (annotate) - [select for diffs]
Fri Jan 9 10:07:48 1998 UTC (16 years, 3 months ago) by dtc
Branch: MAIN
Changes since 1.21: +13 -8 lines
Diff to previous 1.21 , to selected 1.20
Generate a compiler note if the default initial element for make-array
is not a subtype of the element-type. According to ANSI CL the result
of accessing uninitialised elements is undefined, and currently in
CMUCL it can cause problems not detect in safe code when the default
element not a subtype of the element-type - at least a compiler note
is generated now.

Revision 1.21 - (view) (annotate) - [select for diffs]
Sat Nov 1 22:58:26 1997 UTC (16 years, 5 months ago) by dtc
Branch: MAIN
Changes since 1.20: +5 -1 lines
Diff to previous 1.20
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.19.2.1 - (view) (annotate) - [select for diffs]
Tue Sep 9 01:45:35 1997 UTC (16 years, 7 months ago) by dtc
Branch: RELENG_18
CVS Tags: RELEASE_18a
Changes since 1.19: +21 -1 lines
Diff to previous 1.19 , to selected 1.20
Merge from 1.20: array-header-p transform.

Revision 1.20 - (view) (annotate) - [selected]
Sun Aug 24 03:46:45 1997 UTC (16 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.19: +21 -1 lines
Diff to previous 1.19
Add a source transform for array-header-p to handle some cases in
which the result can be determined from the argument type. This stops
compiler warning messages produced by the with-array-data macro when
the array is known not to be a subtype of (simple-array * (*)).

Revision 1.19 - (view) (annotate) - [select for diffs]
Tue Apr 1 19:23:56 1997 UTC (17 years ago) by dtc
Branch: MAIN
Branch point for: RELENG_18
Changes since 1.18: +5 -1 lines
Diff to previous 1.18 , to selected 1.20
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.18 - (view) (annotate) - [select for diffs]
Mon Oct 31 04:27:28 1994 UTC (19 years, 5 months ago) by ram
Branch: MAIN
Changes since 1.17: +1 -3 lines
Diff to previous 1.17 , to selected 1.20
Fix headed boilerplate.

Revision 1.17 - (view) (annotate) - [select for diffs]
Wed Aug 25 00:14:32 1993 UTC (20 years, 7 months ago) by ram
Branch: MAIN
Changes since 1.16: +2 -2 lines
Diff to previous 1.16 , to selected 1.20
Fix compiler warnings.

Revision 1.16 - (view) (annotate) - [select for diffs]
Wed May 12 11:10:18 1993 UTC (20 years, 11 months ago) by ram
Branch: MAIN
Changes since 1.15: +5 -5 lines
Diff to previous 1.15 , to selected 1.20
Changed *byte-compiling* to (byte-compiling), since during IR1 conversion we're
not sure yet.

Revision 1.15 - (view) (annotate) - [select for diffs]
Tue May 11 13:49:57 1993 UTC (20 years, 11 months ago) by ram
Branch: MAIN
Changes since 1.14: +25 -16 lines
Diff to previous 1.14 , to selected 1.20
Update transforms to inhibit ones which pessimize byte code.

Revision 1.11.1.1 - (view) (annotate) - [select for diffs] (vendor branch)
Wed Jan 15 16:09:30 1992 UTC (22 years, 3 months ago) by ram
Branch: patch_15
Changes since 1.11: +4 -6 lines
Diff to previous 1.11 , to next main 1.45 , to selected 1.20
Drop out base-char changes, but take the rest.

Revision 1.14 - (view) (annotate) - [select for diffs]
Tue Nov 12 14:14:14 1991 UTC (22 years, 5 months ago) by ram
Branch: MAIN
Changes since 1.13: +3 -5 lines
Diff to previous 1.13 , to selected 1.20
Quoted arg/result types in :EVAL-NAME DEFTRANSFORMs.

Revision 1.13 - (view) (annotate) - [select for diffs]
Sat Nov 9 18:57:19 1991 UTC (22 years, 5 months ago) by wlott
Branch: MAIN
Changes since 1.12: +3 -3 lines
Diff to previous 1.12 , to selected 1.20
When converting MAKE-STRING into a MAKE-ARRAY, wrap the length with (the
index ...) so that MAKE-ARRAY can tell that it's a vector.

Revision 1.12 - (view) (annotate) - [select for diffs]
Sat Nov 9 02:42:34 1991 UTC (22 years, 5 months ago) by wlott
Branch: MAIN
Changes since 1.11: +4 -4 lines
Diff to previous 1.11 , to selected 1.20
Changed BASE-CHARACTER to BASE-CHAR

Revision 1.11 - (view) (annotate) - [select for diffs]
Wed Jun 5 10:58:50 1991 UTC (22 years, 10 months ago) by wlott
Branch: MAIN
Branch point for: patch_15
Changes since 1.10: +22 -21 lines
Diff to previous 1.10 , to selected 1.20
Fixed the make-array derive type optimizer to only spec the dimensions
if the created array is known to be simple.  Otherwise, someone might
adjust it, which would cause the type to be wrong.

Revision 1.10 - (view) (annotate) - [select for diffs]
Wed Apr 24 23:51:00 1991 UTC (23 years ago) by ram
Branch: MAIN
Changes since 1.9: +17 -2 lines
Diff to previous 1.9 , to selected 1.20
Added derive-type method for %WITH-ARRAY-DATA

Revision 1.9 - (view) (annotate) - [select for diffs]
Wed Feb 20 14:56:29 1991 UTC (23 years, 2 months ago) by ram
Branch: MAIN
Changes since 1.8: +9 -5 lines
Diff to previous 1.8 , to selected 1.20
New file header with RCS stuff.

Revision 1.8 - (view) (annotate) - [select for diffs]
Mon Jan 14 10:52:45 1991 UTC (23 years, 3 months ago) by ram
Branch: MAIN
Changes since 1.7: +2 -2 lines
Diff to previous 1.7 , to selected 1.20
Fixed bit-array canonicalizing for the T case to have the right type.

Revision 1.7 - (view) (annotate) - [select for diffs]
Sun Jan 13 23:08:25 1991 UTC (23 years, 3 months ago) by ram
Branch: MAIN
Changes since 1.6: +49 -1 lines
Diff to previous 1.6 , to selected 1.20
Added transforms to canonicalize the result arg to bit-vector ops.
Added transform for VECTOR-LENGTH that returns the constant result
when the type has specified dimensions.

Revision 1.6 - (view) (annotate) - [select for diffs]
Fri Nov 23 16:21:05 1990 UTC (23 years, 5 months ago) by wlott
Branch: MAIN
Changes since 1.5: +14 -14 lines
Diff to previous 1.5 , to selected 1.20
Changed the make-array transform to simplify the nwords computation as
much as possible instead of relying on (nonexistent) optimizers to simpilfy
it later down the line.  Also fixed a spelling error.

Revision 1.5 - (view) (annotate) - [select for diffs]
Fri Nov 16 06:01:07 1990 UTC (23 years, 5 months ago) by wlott
Branch: MAIN
Changes since 1.4: +2 -2 lines
Diff to previous 1.4 , to selected 1.20
The make-string source transform was quoting the initial element, even if
it wasn't a constant.  Ooops.

Revision 1.4 - (view) (annotate) - [select for diffs]
Tue Nov 13 06:16:57 1990 UTC (23 years, 5 months ago) by wlott
Branch: MAIN
Changes since 1.3: +2 -2 lines
Diff to previous 1.3 , to selected 1.20
Forgot to call length on the indices &rest arg in the aref derive-type
optimizer.

Revision 1.3 - (view) (annotate) - [select for diffs]
Sat Nov 10 19:39:06 1990 UTC (23 years, 5 months ago) by wlott
Branch: MAIN
Changes since 1.2: +4 -4 lines
Diff to previous 1.2 , to selected 1.20
Ack, more typos.

Revision 1.2 - (view) (annotate) - [select for diffs]
Sat Nov 10 19:20:54 1990 UTC (23 years, 5 months ago) by wlott
Branch: MAIN
Changes since 1.1: +8 -8 lines
Diff to previous 1.1 , to selected 1.20
typo.

Revision 1.1 - (view) (annotate) - [select for diffs]
Sat Nov 10 18:39:33 1990 UTC (23 years, 5 months ago) by wlott
Branch: MAIN
Diff to selected 1.20
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