issue #123 added workaround for VSCode bug

gccjit-ravi534
Dibyendu Majumdar 7 years ago
parent fa983ba291
commit 4c813450f2

@ -1,5 +1,5 @@
mkdir llvm32
cd llvm32
rem cmake -DCMAKE_INSTALL_PREFIX=\d\ravi32 -G "Visual Studio 14" -DLLVM_JIT=ON -DLLVM_DIR=\d\LLVM37_32\share\llvm\cmake -DBUILD_STATIC=OFF ..
cmake -DCMAKE_INSTALL_PREFIX=\d\ravi32 -G "Visual Studio 14" -DLLVM_JIT=ON -DLLVM_DIR=\d\LLVM39\lib\cmake\llvm -DSTATIC_BUILD=OFF ..
cmake -DCMAKE_INSTALL_PREFIX=\d\ravi32 -G "Visual Studio 14" -DLLVM_JIT=ON -DLLVM_DIR=\d\LLVM39_32\lib\cmake\llvm -DSTATIC_BUILD=OFF ..
cd ..

@ -1,4 +1,4 @@
mkdir nojit64
cd nojit64
cmake -DCMAKE_INSTALL_PREFIX=c:\ravi -DCMAKE_BUILD_TYPE=Release -G "Visual Studio 14 Win64" ..
cmake -DCMAKE_INSTALL_PREFIX=c:\ravi -DCMAKE_BUILD_TYPE=Release -DSTATIC_BUILD=ON -G "Visual Studio 14 Win64" ..
cd ..

@ -277,7 +277,7 @@ end
checkcompt("divide by zero", "return 2 // 0")
checkcompt(msgf2i, "return 2.3 >> 0")
checkcompt(msgf2i, ("return 2.0^%d & 1"):format(intbits - 1))
--checkcompt("field 'huge'", "return math.huge << 1")
checkcompt("field 'huge'", "return math.huge << 1")
checkcompt(msgf2i, ("return 1 | 2.0^%d"):format(intbits - 1))
checkcompt(msgf2i, "return 2.3 ~ '0.0'")

@ -102,6 +102,9 @@ static int stepping_stacklevel =
static lua_State *stepping_lua_State =
NULL; /* Tracks the Lua State that requested a step over or step out */
static membuff_t readbuf;
/* Since 1.8 VSCode has a bug in the way output events are handled so we
try to buffer until newline */
static char output_buffer[8 * 1024];
/*
* Generate response to InitializeRequest
@ -1085,15 +1088,23 @@ void ravi_debughook(lua_State *L, lua_Debug *ar) {
}
void ravi_debug_writestring(const char *s, size_t l) {
char temp[256];
if (l >= sizeof temp) l = sizeof temp - 1;
vscode_string_copy(temp, s, l + 1);
vscode_send_output_event(&output_response, "stdout", temp, stdout, my_logger);
size_t already_used = strlen(output_buffer);
char *buf = output_buffer + already_used;
size_t buflen = sizeof output_buffer - already_used - 1;
int overflow = 0;
if (l >= buflen) {
l = buflen - 1;
overflow = 1;
}
vscode_string_copy(buf, s, l + 1);
if (overflow || *s == '\n') {
vscode_send_output_event(&output_response, "stdout", output_buffer, stdout,
my_logger);
output_buffer[0] = 0;
}
}
void ravi_debug_writeline(void) {
vscode_send_output_event(&output_response, "stdout", "\n", stdout, my_logger);
}
void ravi_debug_writeline(void) { ravi_debug_writestring("\n", 1); }
void ravi_debug_writestringerror(const char *fmt, const char *p) {
char temp[256];

Loading…
Cancel
Save