Skip to content

Latest commit

 

History

History
126 lines (91 loc) · 3.2 KB

File metadata and controls

126 lines (91 loc) · 3.2 KB

TODO

Current baseline

BBCS(12) — A+ wA{ B+ wB{

  • Total: 2511
  • Halted: 180
  • Nonhalted: 2311
  • Holdout: 20
  • Highscore: 5

Update logs

L/Enumeration

  • Loop structure analyzer
  • Create loopAnalyzer.js
  • Decide 2-period cyclers
  • Fix nested loops decider
  • Just-in-time while-loops states
  • Update analysis when a child undefined loop gets a body
  • Fix pruning bug
  • Earlier pruning for invalid loops
  • Better analysis appBasicInstr undo (avoid adding default values)
  • Implement enumeration testing for specific programs

L/Documentation

  • Include results for manually designed champions
  • Option to hide programs status in enumeration output
  • Revamp tester.js (array bulk test)
  • Move group configs in the same file
  • New script for managing enumeration stack
  • Function to append instructions enumAction.js
  • Extract properties methods from analyzeLoop.js
  • Area test mode analysis
  • Revamp TODO.md
  • Project overview README.md
  • Update general documentation
  • Create AGENTS.md
  • Replace difficulty table with a more complete analysis
  • "Is greater or equal to self" value loopAnalyzer.js
  • Refractor analyzer operations

L/Website

  • Show error messages
  • Add comments
  • Text editor line numbers
  • Display compiled programs
  • Run step by step
  • Fix empty loops crash bug

Enumeration

  • Enumerate BBCS(12) again
  • Return loopAnalyzer.js/filterLoop analysis result

Keep intermediate layers

  • New stack parameter to mark intermediate frames: isDone
  • Keep intermediate enumeration stack layers when generating into undefined loops.
  • Store parent analysis and loop position in intermediate frames.

Just-in-time pruning areVarsOrdered.js

  • Create stack param to store allowed counters list

"Is equal to var" value loopAnalyzer.js

  • Plan comment
  • Update props functions

Undefined loops parser

For while # {undefined}.

  • Parser
  • Unparser

Testing

  • Count pruned programs
  • Count nextInstr calls

Website

  • Auto programs coloring
  • Color selected line
  • Show program length
  • Auto identations
  • Normal slash comment

Add macros parser

Convert macros to a serie of standard instructions.

  • A+=n
  • A>>B

Undo step option

  • States history object

Ideas

I/Enumeration

  • Early detect programs with useless counters (each must have inc, dec and while loop)
  • Remove multiplication equivalence while A {A--; B++;} while B {A++; A++; B--;}
  • Enumerate comparator in tester.js
  • Decide multi-period cyclers
  • Ignore while # {#--;} if # is proven to be 2 or less
  • Nonhalting function that depend of starting counters
  • Undo state for better time performances
  • Test analysis undo

I/Website

  • Presets programs
  • Visualize running program
  • Search and replace
  • Accelerated simulation (auto multiply/transfer counters)
  • Functional programming function A {...} (compile to standard CS before running)
  • Variable scopes