(define (symbol->source s i)
(string-append
(format #f "g_free++;\n")
- ;; FIXME: g_functions
- (if GCC?
- (format #f "g_cells[cell_~a] = scm_~a;\n\n" s s)
- (string-append
- (format #f "g_cells[cell_~a].type = scm_~a.type;\n" s s)
- (format #f "g_cells[cell_~a].car = scm_~a.car;\n" s s)
- (format #f "g_cells[cell_~a].cdr = scm_~a.cdr;\n\n" s s)))))
+ (format #f "g_cells[cell_~a] = scm_~a;\n\n" s s)))
(define (symbol->names s i)
- (string-append
- (if GCC?
- (format #f "g_cells[cell_~a].car = cstring_to_list (scm_~a.name);\n" s s)
- (format #f "g_cells[cell_~a].car = cstring_to_list (scm_~a.car);\n" s s))))
+ (if GCC?
+ (format #f "g_cells[cell_~a].car = cstring_to_list (scm_~a.name);\n" s s)
+ (format #f "g_cells[cell_~a].car = cstring_to_list (scm_~a.car);\n" s s)))
(define (function->header f i)
(let* ((arity (or (assoc-ref (.annotation f) 'arity)
(format #f "~a.cdr = g_function;\n" (function-builtin-name f)))
(format #f "g_functions[g_function++] = fun_~a;\n" (.name f))
(format #f "cell_~a = g_free++;\n" (.name f))
- ;; FIXME: g_functions
- (if GCC?
- (format #f "g_cells[cell_~a] = ~a;\n\n" (.name f) (function-builtin-name f))
- (string-append
- (format #f "g_cells[cell_~a].type = ~a.type;\n" (.name f) (function-builtin-name f))
- (format #f "g_cells[cell_~a].car = ~a.car;\n" (.name f) (function-builtin-name f))
- ;;(format #f "g_cells[cell_~a].car = MAKE_STRING (~a.car);\n" (.name f) (function-builtin-name f))
- (format #f "g_cells[cell_~a].cdr = ~a.cdr;\n\n" (.name f) (function-builtin-name f))))))
+ (format #f "g_cells[cell_~a] = ~a;\n\n" (.name f) (function-builtin-name f))))
(define (function->environment f i)
(string-append
;; g_cells[i] = c;
((expr-stmt (assn-expr (array-ref (p-expr (ident ,index)) (p-expr (ident ,array))) (op ,op) ,b))
- (stderr "g_cells4[]: ~s\n" array)
;;(stderr "pointer_cells4[]: ~s\n" array)
(when (not (equal? op "="))
(stderr "OOOPS4: op=~s\n" op)
(count (length fields))
(field-size 4) ;; FIXME:4, not fixed
(ptr (ident->pointer info array)))
- (stderr "g_cells4[~a]: type=~a\n" array type)
- (stderr "g_cells4[~a]: pointer=~a\n" array ptr)
- (stderr "g_cells4[~a]: fields=~a\n" array fields)
- (stderr "g_cells4[~a]: size=~a\n" array size)
- (stderr "g_cells4[~a]: count=~a\n" array count)
(clone info #:text
(append text
(.text base)
(count (length fields))
(field-size 4) ;; FIXME:4, not fixed
(ptr (ident->pointer info array)))
- (stderr "g_cells5[~a]: type=~a\n" array type)
- (stderr "g_cells5[~a]: pointer=~a\n" array ptr)
- (stderr "g_cells5[~a]: fields=~a\n" array fields)
- (stderr "g_cells5[~a]: size=~a\n" array size)
- (stderr "g_cells5[~a]: count=~a\n" array count)
(clone info #:text
(append text
(.text base)