Macaulay2 / Macaulay2/M2

M2 debugging tools and Debug Adapter Protocol

Open
#3,891 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Interpreter
Dominant language
Macaulay2
Stars
435
Forks
297
Avg merge
4d 20h
Merged PRs (30d)
11

Description

At some internal meeting it was brought up the in order to be able to debug M2 code using vscode or other modern editors, we need a "debug adapter" (written either in the M2 language or C++ or Python or Javascript) which communicates with the editor (via JSON-RPC) using the Debug Adapter Protocol.

There are several technical steps that would need to be implemented first:

  1. support breakpoints in M2
  2. support stepping through a function
  3. support internal variable inspection
  4. support outputting a top-level stack trace

Some of these are partially there, but in an unusual way, e.g. we have

  • a breakpoint keyword,
  • a continue keyword, but #1928, and
  • a top-level stack trace exists, but has #2568.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing breakpoint keyword and continue support referenced in #1928, along with the top-level stack trace work in #2568. Compare these capabilities with the Debug Adapter Protocol requirements; done means implementing breakpoints, stepping, variable inspection, stack traces, and the editor adapter.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, javascript, python, vscode
Domain
devtools
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.