mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-23 20:15:05 +02:00
Fixes for make-vector
This commit is contained in:
parent
66e69f2c29
commit
fc2c84e731
3 changed files with 12 additions and 11 deletions
1
eval.scm
1
eval.scm
|
@ -265,6 +265,7 @@
|
|||
(list 'string->symbol string->symbol)
|
||||
(list 'symbol->string symbol->string)
|
||||
(list 'number->string number->string)
|
||||
(list 'make-vector make-vector)
|
||||
(list 'boolean? boolean?)
|
||||
(list 'char? char?)
|
||||
(list 'eof-object? eof-object?)
|
||||
|
|
|
@ -1100,7 +1100,7 @@ void _string_91append(object cont, object args) {
|
|||
void _string_91_125list(object cont, object args) {
|
||||
string2list(lst, car(args));
|
||||
return_funcall1(cont, &lst);}
|
||||
void _make_91_125vector(object cont, object args) {
|
||||
void _make_91vector(object cont, object args) {
|
||||
make_vector(v, car(args), cadr(args));
|
||||
return_funcall1(cont, &v);}
|
||||
void _list_91_125string(object cont, object args) {
|
||||
|
@ -1764,7 +1764,7 @@ static primitive_type list_91_125string_primitive = {primitive_tag, "list->strin
|
|||
static primitive_type string_91_125symbol_primitive = {primitive_tag, "string->symbol", &_string_91_125symbol};
|
||||
static primitive_type symbol_91_125string_primitive = {primitive_tag, "symbol->string", &_symbol_91_125string};
|
||||
static primitive_type number_91_125string_primitive = {primitive_tag, "number->string", &_number_91_125string};
|
||||
static primitive_type make_91_125vector_primitive = {primitive_tag, "make-vector", &_make_91_125vector};
|
||||
static primitive_type make_91vector_primitive = {primitive_tag, "make-vector", &_make_91vector};
|
||||
static primitive_type boolean_127_primitive = {primitive_tag, "boolean?", &_boolean_127};
|
||||
static primitive_type char_127_primitive = {primitive_tag, "char?", &_char_127};
|
||||
static primitive_type eof_91object_127_primitive = {primitive_tag, "eof-object?", &_eof_91object_127};
|
||||
|
@ -1862,7 +1862,7 @@ const object primitive_list_91_125string = &list_91_125string_primitive;
|
|||
const object primitive_string_91_125symbol = &string_91_125symbol_primitive;
|
||||
const object primitive_symbol_91_125string = &symbol_91_125string_primitive;
|
||||
const object primitive_number_91_125string = &number_91_125string_primitive;
|
||||
const object primitive_make_91_125vector = &make_91_125vector_primitive;
|
||||
const object primitive_make_91vector = &make_91vector_primitive;
|
||||
const object primitive_boolean_127 = &boolean_127_primitive;
|
||||
const object primitive_char_127 = &char_127_primitive;
|
||||
const object primitive_eof_91object_127 = &eof_91object_127_primitive;
|
||||
|
|
16
runtime.h
16
runtime.h
|
@ -161,14 +161,14 @@ void do_dispatch(int argc, function_type func, object clo, object *buffer);
|
|||
} \
|
||||
}
|
||||
|
||||
#define make_vector(v, len, fill) object v = nil; { \
|
||||
// v = (object)alloca(sizeof(vector_type));
|
||||
#define make_vector(v, len, fill) vector_type v; { \
|
||||
int i; \
|
||||
v = (object)alloca(sizeof(vector_type)); \
|
||||
v->tag = vector_tag; \
|
||||
v->num_elt = ((integer_type *)len)->value; \
|
||||
v->elts = (v->num_elt > 0) ? (object *)alloca(sizeof(object) * v->num_elt): NULL; \
|
||||
for (i = 0; i < v->num_elt; i++) { \
|
||||
v->elts[i] = fill; \
|
||||
v.tag = vector_tag; \
|
||||
v.num_elt = ((integer_type *)len)->value; \
|
||||
v.elts = (v.num_elt > 0) ? (object *)alloca(sizeof(object) * v.num_elt): NULL; \
|
||||
for (i = 0; i < v.num_elt; i++) { \
|
||||
v.elts[i] = fill; \
|
||||
} \
|
||||
}
|
||||
|
||||
|
@ -275,7 +275,7 @@ extern const object primitive_list_91_125string;
|
|||
extern const object primitive_string_91_125symbol;
|
||||
extern const object primitive_symbol_91_125string;
|
||||
extern const object primitive_number_91_125string;
|
||||
extern const object primitive_make_91_125vector;
|
||||
extern const object primitive_make_91vector;
|
||||
extern const object primitive_system;
|
||||
extern const object primitive_boolean_127;
|
||||
extern const object primitive_char_127;
|
||||
|
|
Loading…
Add table
Reference in a new issue