Skip to content

Latest commit

 

History

History
55 lines (35 loc) · 1.7 KB

TODO.md

File metadata and controls

55 lines (35 loc) · 1.7 KB

[command] run_command -- remove log_level support

[lang] write the arity checker like a type checker

  • choose good names in the problem domain

[vm] vm_print -- should call activity_print [value] xvoid -- so that every function can return one value [lang] check arity -- compute arity from exp

about arity

[lang] compile_exp -- EXP_AP -- should not get arity from list_length(exp->ap.arg_list)

  • should compute arity from each exp

    • exp_arity -- for arg output arity
    • exp_target_arity -- for target input arity
      • need to infer output arity of function

[lang] apply_function -- supplement wire if arity is short

  • [stack] stack_pop_list

  • [stack] stack_push_list

  • use stack_pop_list and stack_push_list to save arguments by arity

more examples

[example] examples/cellular-automata.lisp -- 1997-interaction-combinators.pdf [example] examples/lambda.lisp -- use interaction combinators to implement lambda [example] examples/turing.lisp -- coding turing machine -- 2008-the-annotated-turing.djvu

primitive value

[design] node ports can store any value -- not only wire, but also primitive values [design] the most important primitive value is function (closure) [design] write list-map as example that uses function [design] use explicit copy -- keep linear variable like simple

debug

[debug] 尝试使用真实的物理学来实现 force [debug] node_physics_simulate -- move by velocity and clear force for every node_model [debug] remove node_physics_fake_simulate

module system

支持简单的 import name,同时支持修改 name 以避免冲突

parallelism

learn linux thread shared memory parallel execution of inet projects/others/HigherOrderCO/HVM/paper/HVM2.pdf