ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/microscheme/scheme.c
(Generate patch)

Comparing microscheme/scheme.c (file contents):
Revision 1.45 by root, Mon Nov 30 07:44:23 2015 UTC vs.
Revision 1.46 by root, Mon Nov 30 09:16:55 2015 UTC

969 if (SCHEME_V->no_memory && USE_ERROR_CHECKING) 969 if (SCHEME_V->no_memory && USE_ERROR_CHECKING)
970 return S_SINK; 970 return S_SINK;
971 971
972 if (SCHEME_V->free_cell == NIL) 972 if (SCHEME_V->free_cell == NIL)
973 { 973 {
974 const int min_to_be_recovered = SCHEME_V->cell_segsize [SCHEME_V->last_cell_seg] >> 2; 974 const int min_to_be_recovered = SCHEME_V->cell_segsize [SCHEME_V->last_cell_seg] >> 1;
975 975
976 gc (SCHEME_A_ a, b); 976 gc (SCHEME_A_ a, b);
977 977
978 if (SCHEME_V->fcells < min_to_be_recovered || SCHEME_V->free_cell == NIL) 978 if (SCHEME_V->fcells < min_to_be_recovered || SCHEME_V->free_cell == NIL)
979 { 979 {
4199 else 4199 else
4200 Error_0 ("modulo: division by zero"); 4200 Error_0 ("modulo: division by zero");
4201 4201
4202 s_return (mk_number (SCHEME_A_ v)); 4202 s_return (mk_number (SCHEME_A_ v));
4203 4203
4204 case OP_CAR: /* car */ 4204 /* the compiler will optimize this mess... */
4205 s_return (caar (args)); 4205 case OP_CAR: op_car: s_return (car (x));
4206 4206 case OP_CDR: op_cdr: s_return (cdr (x));
4207 case OP_CDR: /* cdr */ 4207 case OP_CAAR: op_caar: x = car (x); goto op_car;
4208 s_return (cdar (args)); 4208 case OP_CADR: op_cadr: x = cdr (x); goto op_car;
4209 case OP_CDAR: op_cdar: x = car (x); goto op_cdr;
4210 case OP_CDDR: op_cddr: x = cdr (x); goto op_cdr;
4211 case OP_CAAAR: op_caaar: x = car (x); goto op_caar;
4212 case OP_CAADR: op_caadr: x = cdr (x); goto op_caar;
4213 case OP_CADAR: op_cadar: x = car (x); goto op_cadr;
4214 case OP_CADDR: op_caddr: x = cdr (x); goto op_cadr;
4215 case OP_CDAAR: op_cdaar: x = car (x); goto op_cdar;
4216 case OP_CDADR: op_cdadr: x = cdr (x); goto op_cdar;
4217 case OP_CDDAR: op_cddar: x = car (x); goto op_cddr;
4218 case OP_CDDDR: op_cdddr: x = cdr (x); goto op_cddr;
4219 case OP_CAAAAR: x = car (x); goto op_caaar;
4220 case OP_CAAADR: x = cdr (x); goto op_caaar;
4221 case OP_CAADAR: x = car (x); goto op_caadr;
4222 case OP_CAADDR: x = cdr (x); goto op_caadr;
4223 case OP_CADAAR: x = car (x); goto op_cadar;
4224 case OP_CADADR: x = cdr (x); goto op_cadar;
4225 case OP_CADDAR: x = car (x); goto op_caddr;
4226 case OP_CADDDR: x = cdr (x); goto op_caddr;
4227 case OP_CDAAAR: x = car (x); goto op_cdaar;
4228 case OP_CDAADR: x = cdr (x); goto op_cdaar;
4229 case OP_CDADAR: x = car (x); goto op_cdadr;
4230 case OP_CDADDR: x = cdr (x); goto op_cdadr;
4231 case OP_CDDAAR: x = car (x); goto op_cddar;
4232 case OP_CDDADR: x = cdr (x); goto op_cddar;
4233 case OP_CDDDAR: x = car (x); goto op_cdddr;
4234 case OP_CDDDDR: x = cdr (x); goto op_cdddr;
4209 4235
4210 case OP_CONS: /* cons */ 4236 case OP_CONS: /* cons */
4211 set_cdr (args, cadr (args)); 4237 set_cdr (args, cadr (args));
4212 s_return (args); 4238 s_return (args);
4213 4239

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines