Commit Graph

239 Commits

Author SHA1 Message Date
Pragmatic Software ef3b8f0fbc compiler_vm improvements
Server-side C base now strips print_last_statement() and rebuilds/re-runs code
if there was any bad gdb output related to it (i.e. "No such symbol" or "A
syntax error in expression").
2015-09-17 22:18:14 -07:00
Pragmatic Software 76fc3a33a1 compiler_vm improvements
Compiler watchdog now properly handles signals raised during gdb functions.

Compiler watchdog now times out and flushes output when "hung".
2015-09-17 22:16:23 -07:00
Pragmatic Software 511994025c Update compiler_vm stuff 2015-09-03 21:32:44 -07:00
Pragmatic Software 593fe59263 Do not print values of uninitialized/unassigned objects 2015-08-16 05:19:53 -07:00
Pragmatic Software b23ea3f212 compiler_vm improvements
Convert escaped characters (\n, \r, \t, etc) in stdin input to literal values.

Fix some print_last_statement() issues.
2015-07-18 08:12:59 -07:00
Pragmatic Software 6a6f0aa7e6 Restore -g flag to -g3 2015-07-17 00:33:04 -07:00
Pragmatic Software f535d5fb7b Add `no_gdb_extensions` flag to disable gdb extensions for TenDRA 2015-07-17 00:32:26 -07:00
Pragmatic Software 079a3b9e90 Add print_last_statement() and other misc compiler_vm fixes 2015-07-12 02:54:08 -07:00
Pragmatic Software cb712af92d Add history directory (compiler_vm) 2015-07-12 02:48:22 -07:00
Pragmatic Software 7638bb031b Fix interactive-editing chained commands 2015-06-16 21:51:09 -07:00
Pragmatic Software 882dea12e4 Add clang++ language option
Update all clang languages to use clang-3.7.
2015-05-18 20:50:11 -07:00
Pragmatic Software d001720f11 Add qbasic language (using freebasic -lang qb) 2015-05-18 20:49:12 -07:00
Pragmatic Software 06ee49d7ff Update compiler_server.pl 2015-05-18 20:48:39 -07:00
Pragmatic Software 03baaeb81c Refactor handling of --version flags; add --analyze
Move handling of certain language-specific flags out of
compiler_vm_server.pl and into their own language modules.

Add support for clang --analyze.

Java now understands -version.
2015-05-18 20:48:15 -07:00
Pragmatic Software bc99ac001f Compiler CPU watchdog: print message only when there's load 2015-04-21 01:10:45 -07:00
Pragmatic Software 10c17bd3ad Add watchdog to monitor VM cpu load and reset for excessive load
Detect if VM is running under excessive load (e.g., due to fork bombing)
for longer than a certain period and reset the VM state if so.
2015-04-20 21:33:01 -07:00
Pragmatic Software ef22f9578d Move backspace handling to base class for all languages 2015-04-16 03:12:07 -07:00
Pragmatic Software 0d69796e6f Increase BC_LINE_LENGTH in bc language 2015-04-16 03:11:10 -07:00
Pragmatic Software c4659cd4cb Minor cosmetic refactoring of C11 language 2015-04-16 03:10:45 -07:00
Pragmatic Software 766e433d33 Add all standard C++ headers to C++ compiler_vm language 2015-04-16 03:09:32 -07:00
Pragmatic Software 3a7051b32b Perform rudimentary Java language preprocessing 2015-04-10 05:08:07 -07:00
Pragmatic Software d3eca7544f Add Java language to compiler_vm 2015-04-10 03:43:45 -07:00
Pragmatic Software 518f6d041f Add Go language to compiler_vm 2015-04-09 11:04:34 -07:00
Pragmatic Software c8f35ddb09 Add Haskell language to compiler_vm 2015-04-09 11:04:18 -07:00
Pragmatic Software 88f6998b12 Improve support for C++ functions within structs/classes 2015-04-09 11:03:42 -07:00
Pragmatic Software 1122f7ede6 Use `name` field for -info flag 2015-04-09 11:03:04 -07:00
Pragmatic Software 38d109059a Improvements to watchdog
Expand escape sequences
Ignore various text related to no symbol table and to threads
Automatically continue on breakpoints for functions prefixed with underscores (mostly because of C++)
2015-04-09 11:02:20 -07:00
Pragmatic Software 355853c24e Remove indent(1) since it barfs on some C99/C11 constructs 2015-04-06 06:43:08 -07:00
Pragmatic Software 8bbfe2d387 Add scheme language to compiler_vm 2015-04-06 00:49:38 -07:00
Pragmatic Software 332545452f Add clisp language to compiler_vm 2015-04-06 00:49:29 -07:00
Pragmatic Software a8c813e631 Update C++ compiler_vm to gcc 5.0 and use -std=c++14 2015-04-06 00:48:57 -07:00
Pragmatic Software 2db52fd656 Add Lua language to compiler_vm 2015-04-05 02:32:08 -07:00
Pragmatic Software d01cbde65b Add JavaScript language to compiler_vm (using Google V8) 2015-04-05 02:31:45 -07:00
Pragmatic Software 4986c786f1 Add FreeBASIC language to compiler_vm 2015-04-05 02:31:09 -07:00
Pragmatic Software 8686a40104 Add C++ language to compiler_vm 2015-04-05 02:30:42 -07:00
Pragmatic Software 14ebbe2533 Add support for using an optional `name` field to override language
Since Perl modules cannot use certain characters in the module name,
such as the '+' character, modules cannot have names like "c++".

Using a `name` field allows us to use, e.g., "cpp" as the module name
and "c++" as the language name to invoke that module.
2015-04-05 02:29:12 -07:00
Pragmatic Software 137a29cd3c Improve indentation for pretty-pasting; remove newline replacement code 2015-04-05 02:24:56 -07:00
Pragmatic Software 1b342af3a4 Replace newlines outside of literals for all languages; improve interactive-edit replacement logic 2015-04-05 02:24:01 -07:00
Pragmatic Software 2261a5bc75 Don't split numbers across lines; use -l as default optional arg 2015-04-05 02:21:35 -07:00
Pragmatic Software 56a926603f Fix -input option for TenDRA 2015-01-25 13:28:46 -08:00
Pragmatic Software 0f00ceae95 Add -noheaders option to disable pre-included headers 2015-01-24 19:01:44 -08:00
Pragmatic Software a53b5473ae TenDRA: Show exit code return value from main() 2015-01-24 11:53:23 -08:00
Pragmatic Software f31ce372cc Add language-specific comments for cmdline/output 2015-01-23 19:24:39 -08:00
Pragmatic Software 03d377000b Use language-specific commenting and syntax highlighter for pastes 2015-01-23 19:23:33 -08:00
Pragmatic Software 7ad726b383 Ensure $last_output is defined 2015-01-22 06:41:55 -08:00
Pragmatic Software 383c9f7813 Add bc language to compiler_vm 2015-01-21 17:43:51 -08:00
Pragmatic Software 361b53a64e Remove -Wa,-Wl flags from tendra cmdline 2015-01-21 17:43:39 -08:00
Pragmatic Software 36f2f91ba0 Add -fsanitize=undefined to gcc cmdlines 2015-01-21 17:43:13 -08:00
Pragmatic Software 48bd04ba31 Remove leading whitespace at beginning of diagnostics 2015-01-21 01:05:49 -08:00
Pragmatic Software d0a007853c Add sh, ksh and python3 languages 2015-01-20 10:13:09 -08:00
Pragmatic Software 540243764f Remove left-over uneeded $comma 2015-01-18 18:52:42 -08:00
Pragmatic Software a0f0249c8f Use more elegant Perlish method to print supported languages 2015-01-18 18:49:36 -08:00
Pragmatic Software a41906d323 Add python to compiler_vm languages 2015-01-18 18:36:57 -08:00
Pragmatic Software 5e2cd4fd22 Add bash to compiler_vm languages 2015-01-18 18:36:48 -08:00
Pragmatic Software 5f1f350046 Postprocess clang output for invalid %b format specifier 2015-01-18 05:43:16 -08:00
Pragmatic Software 76ead7c8cb Remove leading/trailing whitespace from nick/channel/lang/code 2015-01-18 05:42:28 -08:00
Pragmatic Software 8999e22db1 Ignore backup~ files when showing supported languages 2015-01-18 05:41:48 -08:00
Pragmatic Software ae957c0314 Lowercase language option 2015-01-17 07:00:47 -08:00
Pragmatic Software 728015672d Update local cc to use new compiler_vm_client.pl properly 2015-01-17 05:00:42 -08:00
Pragmatic Software 53f3a59ba1 Fix #inclue typo 2015-01-17 05:00:07 -08:00
Pragmatic Software fb286837bb Clean up compiler_vm directory a bit 2015-01-17 04:59:14 -08:00
Pragmatic Software d473c1650b Add options conditional on whether code is being pasted 2015-01-17 04:41:50 -08:00
Pragmatic Software 9dfe67c7b3 Add missing C89 includes 2015-01-17 04:40:00 -08:00
Pragmatic Software 0afaf9eb1b Show usage if no code given 2015-01-17 04:39:19 -08:00
Pragmatic Software c4c325085a Update clang options 2015-01-16 22:40:49 -08:00
Pragmatic Software e8fc3e965d Improve output filtering; show line-numbers in pastes 2015-01-16 22:24:54 -08:00
Pragmatic Software c40fc622ff Remove -fsanitize=address because it interfered with showing locals 2015-01-16 22:24:26 -08:00
Pragmatic Software 999ec05afc Show cmdline in pastes 2015-01-16 22:23:28 -08:00
Pragmatic Software b7fe220152 Add the Brainfuck language to compiler_vm 2015-01-16 17:56:28 -08:00
Pragmatic Software f552695393 Remove errant addition of backup file 2015-01-16 17:31:01 -08:00
Pragmatic Software 1a1f8f8e63 Correct handling of no-output 2015-01-16 17:30:09 -08:00
Pragmatic Software e0359cba32 Update TenDRA output postprocessing and default options 2015-01-16 17:29:41 -08:00
Pragmatic Software 925f2292e0 Correct handling of no-output 2015-01-16 17:28:38 -08:00
Pragmatic Software 16dce2c484 Add -info standard option to show cmdline information 2015-01-15 22:00:20 -08:00
Pragmatic Software 45e403b51f Add support for TenDRA compiler 2015-01-15 21:21:40 -08:00
Pragmatic Software 77e95a69ae Remove debug message 2015-01-15 21:21:20 -08:00
Pragmatic Software ac8dadb7f7 Show supported languages when invalid language given 2015-01-15 21:20:34 -08:00
Pragmatic Software b3081b9e9f Add compiler_vm support for clang
Also renamed c11.pm to _c_base.pm and set the C languages to inherit
from _c_base.pm instead of c11.pm.
2015-01-15 01:21:18 -08:00
Pragmatic Software bfd373814c Set compiler_watchdog.pl breakpoint one previous end of main
The clang compiler doesn't generate debug info for line number at the
closing } bracket terminating the main function.

Setting the breakpoint to the line immediately before that works for
gcc and clang.
2015-01-15 01:18:35 -08:00
Pragmatic Software b6b90ffa49 Significantly refactor compiler_vm module
The compiler_vm module has been significantly refactored into distinct
modules in order to better facilitate the addition of other languages
and compilers.

Currently there is support for C89, C99 and C11 using gcc, as well as
support for Perl.

This is an initial work-in-progress commit and there are still some minor
rough edges to polish up.
2015-01-14 21:51:17 -08:00
Pragmatic Software da352f64d7 compiler_vm: Save command-line args and compiler flags to history; handle \b properly; other misc fixes 2014-09-11 13:37:41 +00:00
Pragmatic Software cf63d9d46a compiler_vm: maintain original ordering of statements before, after and between functions instead of shoving everything to the top or into main 2014-07-23 21:27:09 +00:00
Pragmatic Software 9c5b307bef compiler_vm: Fix #include parsing logic against mismatched #include <foo" tokens 2014-07-04 13:04:27 +00:00
Pragmatic Software 2cb5d60b51 compiler_vm: Convert exit code from octal to decimal; add variables to easily change opening/closing brackets; experiment with using whitespace instead of <> 2014-05-31 16:36:37 +00:00
Pragmatic Software 0302a5328a compiler_vm: Add Win32 named-pipe TCP proxy program 2014-05-31 01:24:22 +00:00
Pragmatic Software 62e11d0b5d compiler_vm: add Win32 VirtualBox server; misc improvements 2014-05-31 01:20:31 +00:00
Pragmatic Software ae1842e3db compiler_vm: Improve a couple of output sanitization regexs 2014-05-08 13:07:24 +00:00
Pragmatic Software 8e07eb300e compiler_vm: add -Wshadow; support -include 2014-05-02 00:43:42 +00:00
Pragmatic Software cebcafba70 Do not allow RE2 to fallback to PCRE 2014-04-29 17:00:51 +00:00
Pragmatic Software 595e6a34d2 Use DFA regex engine on user-supplied regexs to avoid potential denial-of-service attacks 2014-04-28 17:20:01 +00:00
Pragmatic Software 76cd4965f1 compiler_vm: allow ()'s around function identifiers; e.g. int (main)(void) {} 2014-04-26 15:17:11 +00:00
Pragmatic Software 08e300bd54 compiler_vm: bump "Same output" length case to 22 to allow repetitions of "Success (no output)" 2014-04-07 07:24:14 +00:00
Pragmatic Software 736056b586 compiler_vm: Don't display "Same output" unless length of output is greater than 10 characters 2014-04-03 07:54:35 +00:00
Pragmatic Software 8a7c539e0f compiler_vm: print "Same output" only if same output is within 10 minutes of last snippet otherwise print actual output again 2014-04-03 07:47:19 +00:00
Pragmatic Software b2544d9d5a compiler_vm: remember last output per channel and print "Same output." if the current output matches the last output 2014-04-02 23:48:43 +00:00
Pragmatic Software 1ec463f021 compiler_vm: Remember last keyword when chaining together "and" statements in editor
This allows the more natural "replace 'a' with 'b' and 'c' with 'd'" syntax
rather than the previous syntax of "replace 'a' with 'b' and replace 'c' with 'd'"
2014-04-02 00:23:14 +00:00
Pragmatic Software 474f7ed168 Remove compiler_vm ability to execute .gdbinit commands 2014-03-24 15:37:54 +00:00
Pragmatic Software bff786666e compiler_vm: Add more standard headers to default set of includes 2014-03-06 21:52:44 +00:00
Pragmatic Software bc261e0965 compiler_vm: Add ability to show/diff/copy another channel's snippet 2014-03-05 19:58:46 +00:00
Pragmatic Software a5ae7478e1 compiler_vm: Add $channel argument to separate snippet history into per-channel/nick files 2014-03-04 21:40:51 +00:00