Commit graph

6 commits

Author SHA1 Message Date
Jan Moringen 5cce5e1230 tests: Less IN-PACKAGE noise 2018-12-07 19:58:38 +01:00
Stas Boukarev 224dc9e9af tests: Remove redundant LOADs and USE-PACKAGEs. 2018-03-20 21:04:19 +03:00
Douglas Katzman 51c69cac8b Don't name test-generator the same as the function being exercised by it. 2017-07-17 08:32:18 -04:00
Douglas Katzman 345c47c7d5 De-weird-ify parts of the implementation of deprecated variables
Don't transform (SYMBOL-[GLOBAL-]VALUE 'S) to a plain use of S
unless exactly semantics-preserving. It had a bunch of issues:
  - it changes behavior if SYMBOL-VALUE is declared notinline
  - it interacts poorly with transforms elsewhere in the compiler
    that may wish to observe the call to symbol-value
    and do a similar thing (to optimize the call per se)
  - it's too closely tied to knowledge of how the compiler translates
    "plain" uses of defvars by safely going through #'SYMBOL-VALUE.
    i.e. the logic for early/late stage deprecation knows that
    the compiler will ultimately call symbol-value and that a separate
    warning should not be issued in ir1-convert-var

As it happens, the easiest way to avoid warning one too many times
is just use FIND-FREE-VAR to warn since it at most once (per symbol
per component) creates a hash-table entry. This also fixes the problem that
no warning was issued for SETQ and LET bindings of deprecated variables.
This approach allows a subsequent change that was hampered by deprecation
checks in the compiler macros. I also suspect that we should re-question the
decision to represent variables in final deprecation stage as symbol-macros.
2017-07-15 19:02:28 -04:00
Douglas Katzman e8fe88ef67 Use SB!XC:CONSTANTP in DEFTYPE, or "remove a FIXME, add a few more"
SB!XC:CONSTANTP works as early as we need it, but isn't super useful.
2015-11-09 22:20:31 -05:00
Jan Moringen 2466866e19 tests: Separate files for DEPRECATED declaration and internal functions
* tests/deprecation.impure.lisp: tests for DEPRECATED and general
  deprecation functionality

* tests/deprecation.internal.impure.lisp: tests for the internal
  macros DEFINE-DEPRECATED-{FUNCTION,VARIABLE}
2015-07-29 20:26:32 +02:00