Change how pathname namestrings are memoized.
commit58602640ed7040d9f75c7fe28f058a0b2755c6c0
authorDouglas Katzman <dougk@google.com>
Wed, 17 May 2017 18:36:18 +0000 (17 14:36 -0400)
committerDouglas Katzman <dougk@google.com>
Wed, 17 May 2017 18:41:15 +0000 (17 14:41 -0400)
treef6c40c78e58bea88f89c087198f2a60878361d87
parent11506f64ab464c73b9233a9c9ead7f0c3f738e3d
Change how pathname namestrings are memoized.

Instead of memoizing #'NAMESTRING, build up a table of interned pathnames,
and memoize the namestring in a slot of the pathname object.
The pathname cache is cleared out in SAVE-LISP-AND-DIE,
or at other times as decided by the memoization algorithm.

And improve pathname hashing so that it's actually useful for
directory names having more than three or four subparts to them.
NEWS
src/code/pathname.lisp
src/code/save.lisp
src/code/target-pathname.lisp
src/code/target-sxhash.lisp