12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- %
- % fastgets.lsp Copyright (C) 1995-9 Codemist Ltd
- %
- (prog (how!-many w n)
- (setq how!-many 32)
- (symbol!-make!-fastget how!-many)
- % It is important that NONCOM is given the fastget tag zero, since that
- % number is hard coded into the Lisp kernel in "read.c"
- (symbol!-make!-fastget 'noncom 0)
- (symbol!-make!-fastget 'lose 1)
- % The following list gives property-list indicators in roughly the
- % order of priority across the whole range of REDUCE test files provided
- % with REDUCE 3.6. For each test the number of successful and unsuccessful
- % property-list accesses was counted. (S and F). The score S+2*F was used
- % to allow for failing accesses needing to scan all the list, while
- % successful ones only go on average half way. For each test scores for each
- % particular indicator were expressed as percentages. Tables of all these
- % percentages were put together and sorted - the list that follows is what
- % emerged when only the highest-placed mention of a tag was kept. The effect
- % should be that the most heavily used tags in each test come in this list.
- % This list can be longer than the number of fast-get tags I support and only
- % the relevant number of items on it will be used.
- %
- % At present I am assuming that the priority order will be roughly the
- % same for REDUCE 3.7
- %
- (setq w '(
- convert rules field opmtch
- optional noncom rtype dname
- indexvar phystype oldnam opfn
- psopfn avalue share zerop
- prepfn2 newnam onep intequivfn
- trace polyfn symmetric binding
- nary ifdegree alt switch!*
- remember minusp modefn rtypefn
- infix tokprop full delchar
- class delim times pprifn
- spaced simpfn number!-of!-args stat
- plus i2d prifn idvalfn
- tag package!-name fkernfn !*decs!*
- difference rvalue tracing struct
- prtch kvalue mksqsubfn dfform
- noform subscripted switch mgen
- ))
- (setq n 2)
- top (cons ((equal n how!-many) (return nil)))
- (symbol!-make!-fastget (car w) n)
- (setq w (cdr w))
- (setq n (add1 n))
- (go top))
- % end of fastgets.lsp
|