Vaguery / lexicase-redux

Learning about Clojush, Midje, and Clojure more generally...
Eclipse Public License 1.0
2 stars 0 forks source link

`code_rand` instruction raises exceptions #3

Open Vaguery opened 9 years ago

Vaguery commented 9 years ago

The execution of the code_rand instruction depends on a global collection of... something. Can't quite figure out what. But if it's encountered, code_rand: global-atom-generators is empty. is printed whenever the interpreter executes that instruction.

Apparently global-atom-generators is set... somewhere? Automatically? Having trouble tracing this one.

NicMcPhee commented 9 years ago

This search turned up what I think are some useful info. In particular they have these two commented out lines that might have helped you a lot if they had been left in :-)

    ;(when (empty? @global-atom-generators)
    ;  (println "global-atom-generators is empty. You should do something like: (reset! global-atom-generators '(exec_if boolean_not true false))"))

So it looks like you might want to do:

   (reset! global-atom-generators 
      '(int_add int_mult 0 1 2 exec_if boolean_not true false ...))

where what you pass it is a list of all the functions and terminals that you want to make available to the system.

Does that make sense?

Vaguery commented 9 years ago

Ish. Tom and Lee and I spoke about this in email. Consider it a valid target for refactoring Clojush to separate interpreter from search functionalities.