Macaulay2 » Documentation
Packages » Macaulay2Doc » The Macaulay2 language » debugging » disassemble
next | previous | forward | backward | up | index | toc

disassemble -- disassemble a pseudocode or function

Description

i1 : disassemble (() -> 1/(1-1))

o1 = (function restargs: false numparms: 0 framesize: 0 frameID: 12858 (2-OP
     / 1 (2-OP - 1 1)))
i2 : disassemble functionBody (() -> 1/(1-1))

o2 = (2-OP / 1 (2-OP - 1 1))

It may be useful to disassemble code during debugging, as in the following demonstration.

i3 : load "Macaulay2Doc/demos/demo1.m2"
i4 : code g

o4 = ${prefix}/share/Macaulay2/Macaulay2Doc/demos/demo1.
     m2:11:4-14:9: --source code:
     g = y -> (
          c := f(y-1);
          d := f(y-2);
          c+d)
i5 : g 2
${prefix}/share/Macaulay2/Macaulay2Doc/demos/demo1.m2:8:11:(3):[2]: error: division by zero
${prefix}/share/Macaulay2/Macaulay2Doc/demos/demo1.m2:8:11:(3): entering debugger (enter 'help' to see commands)
${prefix}/share/Macaulay2/Macaulay2Doc/demos/demo1.m2:8:
10-8:13: --source code:
     b := 1/x;
ii6 : code current

oo6 = ${prefix}/share/Macaulay2/Macaulay2Doc/demos/demo1.
      m2:8:10-8:13: --source code:
           b := 1/x;
ii7 : disassemble current

oo7 = (2-OP / 1 (local-fetch 0 0))
ii8 : current

oo8 = 2-OP / 1
             local-fetch 0 0

oo8 : PseudocodeClosure

See also

Ways to use disassemble:

  • disassemble(FunctionBody)
  • disassemble(FunctionClosure)
  • disassemble(Pseudocode)
  • disassemble(PseudocodeClosure)

For the programmer

The object disassemble is a compiled function.


The source of this document is in Macaulay2Doc/ov_repl.m2:1053:0.