Fix issue with code not returning results

This commit is contained in:
Melissa LeBlanc-Williams 2024-07-17 12:03:13 -07:00
parent 35402aa686
commit 303bf48502

27
repl.js
View file

@ -11,7 +11,7 @@ const MODE_RAW = 2;
const TYPE_DIR = 16384; const TYPE_DIR = 16384;
const TYPE_FILE = 32768; const TYPE_FILE = 32768;
const DEBUG = true; const DEBUG = false;
export const LINE_ENDING_CRLF = "\r\n"; export const LINE_ENDING_CRLF = "\r\n";
export const LINE_ENDING_LF = "\n"; export const LINE_ENDING_LF = "\n";
@ -507,7 +507,9 @@ export class REPL {
async _checkCodeRunning() { async _checkCodeRunning() {
await this._detectCurrentMode(); await this._detectCurrentMode();
console.log("Checking code running in " + modes[this._mode]); if (DEBUG) {
console.log("Checking if code is running in " + modes[this._mode]);
}
if (this._mode == MODE_RAW) { if (this._mode == MODE_RAW) {
// In raw mode, we simply need to look for OK // In raw mode, we simply need to look for OK
// Then we should store the results in the code output // Then we should store the results in the code output
@ -525,8 +527,9 @@ export class REPL {
this._checkpointCount++; this._checkpointCount++;
bytes = bytes.slice(2); bytes = bytes.slice(2);
} else if (bytes.slice(0, 2).match("ra")) { } else if (bytes.slice(0, 2).match("ra")) {
console.log("Unexpected bytes encountered. Assuming code is not running."); if (DEBUG) {
this._pythonCodeRunning = false; console.log("Unexpected bytes encountered. " + bytes);
}
return; return;
} else { } else {
console.error("Unexpected output in raw mode: " + bytes); console.error("Unexpected output in raw mode: " + bytes);
@ -561,7 +564,9 @@ export class REPL {
// In normal mode, we need to look for the prompt // In normal mode, we need to look for the prompt
if (!!this._currentLineIsNormalPrompt()) { if (!!this._currentLineIsNormalPrompt()) {
console.log("REPL at Normal Mode prompt"); if (DEBUG) {
console.log("REPL at Normal Mode prompt");
}
this._pythonCodeRunning = false; this._pythonCodeRunning = false;
} }
} }
@ -609,7 +614,9 @@ export class REPL {
async _waitForCodeExecution(codeTimeoutMs=CODE_EXECUTION_TIMEOUT) { async _waitForCodeExecution(codeTimeoutMs=CODE_EXECUTION_TIMEOUT) {
// Wait for the code to finish running, so we can capture the output // Wait for the code to finish running, so we can capture the output
console.log("Waiting for code execution"); if (DEBUG) {
console.log("Waiting for code execution");
}
if (codeTimeoutMs) { if (codeTimeoutMs) {
try { try {
await this._timeout( await this._timeout(
@ -632,7 +639,9 @@ export class REPL {
} }
async _waitForModeChange(mode, keySequence=null) { async _waitForModeChange(mode, keySequence=null) {
console.log("Waiting for mode change from " + modes[this._mode] + " to " + modes[mode]); if (DEBUG) {
console.log("Waiting for mode change from " + modes[this._mode] + " to " + modes[mode]);
}
try { try {
await this._timeout( await this._timeout(
async () => { async () => {
@ -763,7 +772,9 @@ export class REPL {
} }
async interruptCode() { async interruptCode() {
console.log("Interrupting code"); if (DEBUG) {
console.log("Interrupting code");
}
this._pythonCodeRunning = true; this._pythonCodeRunning = true;
// Wait for code to be interrupted // Wait for code to be interrupted
try { try {