Commit graph

4121 commits

Author SHA1 Message Date
Juan Jose Garcia Ripoll
b5d5cacbde Use a hash to seek the compilation strategies in the interpreter 2010-05-25 19:42:44 +02:00
Juan Jose Garcia Ripoll
6b83ade38d Removed the C2LET forms, replacing them with C2LET* and temporary variables. 2010-05-25 15:56:41 +02:00
Juan Jose Garcia Ripoll
e37daf195a Safer declarations for all functions in PPRINT that are exported 2010-05-25 15:56:17 +02:00
Juan Jose Garcia Ripoll
40d5fede52 New macro C-DECLAIM for file-local declamations that do not propagate outside the file, not even when loaded. 2010-05-25 15:55:53 +02:00
Juan Jose Garcia Ripoll
cfde0986fd DECLAIM did not work because the routine ADD-DEFAULT-OPTIMIZATIONS did not inspect the root environment 2010-05-25 11:31:14 +02:00
Juan Jose Garcia Ripoll
4a20d0d23c Simplify the inline expansion of AREF/ASET using temporary variables for the array dimensions 2010-05-25 11:30:48 +02:00
Juan Jose Garcia Ripoll
40c85314d1 The type declaration for iteration variables in LOOP was too tight, causing some tests to be always true. 2010-05-24 00:31:52 +02:00
Juan Jose Garcia Ripoll
d4f96996e3 The CONS-CDR/CAR optimization was not working fully because the interpreter did not support it and because there were macros shadowing the actual functions. 2010-05-23 22:47:36 +02:00
Juan Jose Garcia Ripoll
bb283c298c LOOP can now detect the type of iteration variables 2010-05-23 21:03:53 +02:00
Juan Jose Garcia Ripoll
803371fbcd Fixed typo in seq.lsp 2010-05-23 21:03:34 +02:00
Juan Jose Garcia Ripoll
63988c79de LOOP FOR ON now uses CONS-CAR/CDR too 2010-05-23 19:45:46 +02:00
Juan Jose Garcia Ripoll
0041220960 Reimplemented MAP using the new macros 2010-05-23 19:33:00 +02:00
Juan Jose Garcia Ripoll
8e93dce002 Remove unused macro DEF-SEQ-BOOL-PARSER 2010-05-23 16:44:13 +02:00
Juan Jose Garcia Ripoll
361b012da6 New macro for running over multiple sequences, DO-SEQUENCES, used to reimplement SOME/EVERY 2010-05-23 16:33:09 +02:00
Juan Jose Garcia Ripoll
7457f9524d Minor fixes in the inference of C1FORM types 2010-05-23 16:32:36 +02:00
Juan Jose Garcia Ripoll
20ad95ce9e Optimize LOOP-FOR-IN using CONS-CAR/CDR 2010-05-23 16:32:07 +02:00
Juan Jose Garcia Ripoll
c60112a470 New auxiliary functions CONS-CAR/CONS-CDR help in optimizing loops 2010-05-23 16:31:45 +02:00
Juan Jose Garcia Ripoll
1bf4956d5a Hack WITH-UNIQUE-NAMES so that it can be used before the sequence functions are installed 2010-05-23 15:36:03 +02:00
Juan Jose Garcia Ripoll
3ebe4b146f In seqlib.lsp, reorder tests for more efficient code. 2010-05-22 18:03:34 +02:00
Juan Jose Garcia Ripoll
1d2e56135c Remove unneeded error checks in seqlib.lsp 2010-05-22 18:00:29 +02:00
Juan Jose Garcia Ripoll
42029200fe Simplify FIND so that it handles :FROM-END T without consing. 2010-05-22 16:45:31 +02:00
Juan Jose Garcia Ripoll
fcf22c21de FILL is now declared to be optimize 2010-05-22 16:10:39 +02:00
Juan Jose Garcia Ripoll
2c09a7b565 Reimplemented REDUCE 2010-05-22 16:03:59 +02:00
Juan Jose Garcia Ripoll
ba4210ef93 Reorganize the keyword arguments in seqlib so that keywords can be reused 2010-05-22 15:03:34 +02:00
Juan Jose Garcia Ripoll
ef04bdcdc2 Reimplemented DELETE/REMOVE-DUPLICATES 2010-05-22 14:56:31 +02:00
Juan Jose Garcia Ripoll
2b9e266407 Implemented DELETE-DUPLICATES-LIST 2010-05-22 09:54:54 +02:00
Juan Jose Garcia Ripoll
6d605bd37d Implemented REMOVE-DUPLICATES-LIST. 2010-05-22 01:17:57 +02:00
Juan Jose Garcia Ripoll
5141fad5e0 SEQUENCE-START-END now returns also the length of the sequence 2010-05-21 23:27:49 +02:00
Juan Jose Garcia Ripoll
feceaa16f9 Declare the new sequence functions to have low safety settings 2010-05-21 23:05:00 +02:00
Juan Jose Garcia Ripoll
39e7f02a79 WITH-COUNT did not allow inserting declarations at the beginning of the body 2010-05-21 23:04:43 +02:00
Juan Jose Garcia Ripoll
480e227d2c In DELETE, do not copy elements until we reach the first element to be eliminated 2010-05-21 22:06:59 +02:00
Juan Jose Garcia Ripoll
f6ce609bc5 Reimplemented DELETE using the new macros. Removed DEFSEQ, which is no longer needed. 2010-05-21 21:35:03 +02:00
Juan Jose Garcia Ripoll
61b86312e4 Reimplemented REMOVE using specialized vector and list operations. 2010-05-21 21:05:22 +02:00
Juan Jose Garcia Ripoll
fa30623000 Reimplemented substitute using nsubstitute and the new loops 2010-05-21 11:24:39 +02:00
Juan Jose Garcia Ripoll
4be12cb2c0 New C functions for copy-seq and subseq 2010-05-21 11:24:17 +02:00
Juan Jose Garcia Ripoll
d27d2cc5ee NSUBSTITUTE implemented with the new macros 2010-05-20 23:33:44 +02:00
Juan Jose Garcia Ripoll
909ed7f1c5 Export the utility function SEQUENCE-COUNT 2010-05-20 23:33:16 +02:00
Juan Jose Garcia Ripoll
efd6488bc6 New macros for handlig the :COUNT argument in sequence functions. 2010-05-20 23:25:44 +02:00
Juan Jose Garcia Ripoll
56791d24b8 Reimplemented POSITION using the new sequence macros. 2010-05-20 21:57:48 +02:00
Juan Jose Garcia Ripoll
eb090229ee The sequence iteration macros allow specifying the name of the index variable 2010-05-20 21:57:33 +02:00
Juan Jose Garcia Ripoll
365ad7b1e2 Faster, specialized implementation of FIND. 2010-05-20 17:13:41 +02:00
Juan Jose Garcia Ripoll
e2cc2ae6dc Faster version of COUNT specialized for arrays and lists. 2010-05-20 16:46:58 +02:00
Juan Jose Garcia Ripoll
f30d551724 New macros for efficiently traversing arrays and lists 2010-05-20 16:46:25 +02:00
Juan Jose Garcia Ripoll
a6f441f8f9 More efficient use of TEST/TEST-NOT arguments 2010-05-20 14:58:28 +02:00
Juan Jose Garcia Ripoll
7e53f79dd2 Proclaim coerce-to-function 2010-05-20 14:58:11 +02:00
Juan Jose Garcia Ripoll
04f6b655d1 Fixed typos in error messages from sequence-start-end 2010-05-20 14:57:40 +02:00
Juan Jose Garcia Ripoll
4ce6c85438 Split out the sequence macros into a separate file 2010-05-20 12:41:38 +02:00
Juan Jose Garcia Ripoll
ec0ddc1174 New function SEQUENCE-START-END 2010-05-20 12:30:52 +02:00
Juan Jose Garcia Ripoll
8a29b98f94 C1FORM-REPLACE-WITH now replaces entirely the form, not just creating a VALUES proxy. 2010-05-19 15:20:59 +02:00
Juan Jose Garcia Ripoll
ef797cb513 Management of variable references, read and set nodes, and type updates is now done through the functions in cmpvar.lsp. 2010-05-19 14:20:17 +02:00