Update cycle detection algorithm.
(ses-localvars): Add ses--Dijkstra-attempt-nb and ses--Dijkstra-weight-bound, and initial values thereof when applicable. (ses-set-localvars): New function. (ses-make-cell): Add property-list as a cell element. (ses-cell-property-get-fun, ses-cell-property-get) (ses-cell-property-delq-fun, ses-cell-property-set-fun) (ses-cell-property-pop-fun, ses-cell-property-get-handle-fun): New functions. (ses-cell-property-set, ses-cell-property-pop) (ses-cell-property-get-handle): New macro. (ses-cell-property-handle-car, ses-cell-property-handle-setcar): New aliases, used for code readability. (ses-calculate-cell, ses-update-cells): Use Dijkstra algorithm for cycle detection. (ses-self-reference-early-detection): New defcustom. (ses-formula-references): Robustify against self-refering cells. (ses-mode): Use ses-set-localvars. (ses-command-hook): Add call to ses-initialize-Dijkstra-attempt before lauching the update processing. (ses-initialize-Dijkstra-attempt): New function. (ses-recalculate-cell): Update for cycle detection based on Dijkstra algorithm.
Showing with 318 additions and 81 deletions