trying to detect the error

This commit is contained in:
Erik 2016-04-22 23:32:40 +02:00
parent f4948747fb
commit 38d0a90c80
2 changed files with 7 additions and 5 deletions

View File

@ -4,7 +4,7 @@ LDLIBS=-lffi
SOURCE_FILES=src/main.c src/obj.c src/gc.c src/obj_string.c src/reader.c src/eval.c src/env.c src/primops.c src/repl.c src/obj_array.c src/obj_conversions.c src/process.c src/bytecode.c src/match.c src/call_ffi.c SOURCE_FILES=src/main.c src/obj.c src/gc.c src/obj_string.c src/reader.c src/eval.c src/env.c src/primops.c src/repl.c src/obj_array.c src/obj_conversions.c src/process.c src/bytecode.c src/match.c src/call_ffi.c
all: src/main.o all: src/main.o
clang $(SOURCE_FILES) -g -O2 -Wall -rdynamic -o ./bin/carp-repl -ldl $(CFLAGS) $(LDFLAGS) $(LDLIBS) clang $(SOURCE_FILES) -g -O0 -Wall -rdynamic -o ./bin/carp-repl -ldl $(CFLAGS) $(LDFLAGS) $(LDLIBS)
run: run:
./bin/carp ./bin/carp

View File

@ -19,7 +19,7 @@
(defn bake-global [variable-name deps] (defn bake-global [variable-name deps]
(let [t (type-of-global variable-name) (let [t (type-of-global variable-name)
evaled (eval (symbol variable-name)) evaled (eval (symbol variable-name))
;;_ (println (str "Global " variable-name " to bake has type " t " and value " evaled)) ;; <- BUG!!! _ (println (str "Global " variable-name " to bake has type " t " and value " evaled)) ;; <- BUG!!!
c-variable-name (c-ify-name variable-name) c-variable-name (c-ify-name variable-name)
init-value (if (contains? '(:int :float :double :string) t) init-value (if (contains? '(:int :float :double :string) t)
(prn evaled) (prn evaled)
@ -39,8 +39,10 @@
(compiler/bake-src variable-name prototype c-code t deps) (compiler/bake-src variable-name prototype c-code t deps)
(reset! deps (cons (symbol init-closure-name) deps)) (reset! deps (cons (symbol init-closure-name) deps))
(when (= "NULL" init-value) (when (= "NULL" init-value)
(bake-init-closure init-closure-name variable-name evaled t)) (do
(when (= init-value "NULL") (eval (list 'reset! (symbol variable-name) evaled))) (bake-init-closure init-closure-name variable-name evaled t)
;;(eval (list 'reset! (symbol variable-name) evaled))
))
:baked)))))) :baked))))))
(defn bake-init-closure [func-name global-name body return-type] (defn bake-init-closure [func-name global-name body return-type]
@ -48,7 +50,7 @@
(do (do
;;(println (str "Defining init closure for " global-name ": " func-def)) ;;(println (str "Defining init closure for " global-name ": " func-def))
(eval func-def) (eval func-def)
(eval (list 'meta-set! (symbol func-name) :signature (list 'quote (list :fn () return-type)))) ;;(eval (list 'meta-set! (symbol func-name) :signature (list 'quote (list :fn () return-type))))
(compiler/bake-function-and-its-dependers func-name) (compiler/bake-function-and-its-dependers func-name)
(graph/update-node! func-name :is-init-closure true) (graph/update-node! func-name :is-init-closure true)
))) )))