3
0
mirror of https://github.com/pragma-/pbot.git synced 2024-11-23 12:29:27 +01:00
Commit Graph

239 Commits

Author SHA1 Message Date
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
Pragmatic Software
f4275a4cc8 compiler_vm: more compiler output beautification 2014-03-01 20:25:42 +00:00
Pragmatic Software
4d0e23243b compiler_vm: minor beautification of compiler diagnostic output 2014-03-01 14:42:08 +00:00
Pragmatic Software
80a7a82221 Remove extranous flushall from compiler watchdog 2014-02-28 07:52:28 +00:00
Pragmatic Software
e72a8c04a2 Remove use of compiler output merger 2014-02-28 07:48:27 +00:00
Pragmatic Software
7a99175bd7 compiler_vm updates
- make compiler_output_merger.pl more resistant to being killed
  - support gcc 4.9.0's -fdiagnostics-show-caret 
    (disable in channel, enable in paste)
  - force a newline to be added to program output to prevent output
    from being buffered by output merger
2014-02-27 16:31:31 +00:00
Pragmatic Software
aa00540c8d compiler_vm: Hack to ensure gdb and prog streams are output in the correct order 2014-02-25 11:49:21 +00:00
Pragmatic Software
d66d3d2a31 compiler_vm: Add constants to easily customize time-out and nographic options in compiler_server.pl 2014-02-25 11:47:57 +00:00
Pragmatic Software
0b2b18d93a compiler_vm: separate program output and gdb output in watchdog to prevent crossing the streams 2014-02-25 05:40:44 +00:00
Pragmatic Software
f6edfce6b4 compiler_vm: Use random fortune instead of Ipsum for default input 2014-02-24 07:25:50 +00:00
Pragmatic Software
7388bf9cfc Add heartbeat logic to compiler server to detect when vm is booted (prevents unnecessary vm restarts) 2014-02-23 00:56:51 +00:00
Pragmatic Software
b7b9ce76ca Fix potential infinite loop due to not restoring pos value after regex 2013-10-25 07:33:43 +00:00
Pragmatic Software
32385ec691 Fix wrong quote-type for #include derp 2013-10-12 16:35:23 +00:00
Pragmatic Software
174e7f71e4 Fix issues with quoted literals and #include statement 2013-10-11 14:50:29 +00:00
Pragmatic Software
272e13236f Preserve empty lines in source 2013-10-07 05:03:03 +00:00
Pragmatic Software
dc1390fca2 Improve formatting 2013-09-16 10:35:32 +00:00
Pragmatic Software
d739415a29 Fix show/undo/replace/etc (need args stripped first); undo once again updates last-code record 2013-09-13 11:32:15 +00:00
Pragmatic Software
2720071dbd compiler_vm:
Add compiler flags section to web-pasted output
  Clean up output section in web-pasted output
  Save cc-specific flags (-paste, -nomain, etc) to last-code
2013-09-13 11:03:50 +00:00
Pragmatic Software
8d882a4240 compiler_vm: -paste and -nomain arguments no longer need to be first arguments; fix issue with replace command 2013-09-13 09:29:24 +00:00
Pragmatic Software
a6a3129171 Preserve comments in code/paste 2013-08-27 12:49:14 +00:00
Pragmatic Software
522b9770dd compiler_vm:
Fix comment stripping logic regarding C89 comments versus C99 comments in code like `int i = 10 //**/ 2\n;`
  Code history now includes argument flags
  Improved regex parsing of diff tags
2013-08-27 00:42:17 +00:00
Pragmatic Software
4adedc2a90 Show "No difference." when code is the same in cc diff 2013-08-24 15:01:31 +00:00
Pragmatic Software
cb74a9be1e Improved matching of tags in cc diff to be less greedy 2013-08-23 22:26:32 +00:00
Pragmatic Software
e6ae49fd4f Improve handling of spaces in cc diff 2013-08-23 18:26:43 +00:00
Pragmatic Software
36e48cb703 Added cc diff command 2013-08-22 20:41:54 +00:00
Pragmatic Software
0e783365d1 Misc updates to modules/compiler_vm 2013-08-16 17:28:17 +00:00
Pragmatic Software
2a62729fcc Fix potential infinite loop in "replace all"; show line numbers in diagnostics if using "-paste"; other misc fixes 2013-06-17 22:25:05 +00:00
Pragmatic Software
57166ff734 compiler_vm: Handle --version flag 2013-02-05 11:14:19 +00:00
Pragmatic Software
3d492ed76b Allow function argument list to be empty; e.g., int main() { code } 2013-02-01 23:35:11 +00:00
Pragmatic Software
e846f24716 Rename -naked to -nomain; fix issue with function prototypes 2012-12-30 08:14:27 +00:00
Pragmatic Software
9205736b3f Don't add {}'s around single statements following if/for/etc; add -naked flag to prevent wrapping code with a main function 2012-12-29 16:19:51 +00:00
Pragmatic Software
e93ac26062 compiler_vm: Warn about #defines not terminated with \n 2012-11-21 19:01:10 +00:00
Pragmatic Software
d5e5f2c728 Reposition * character in function regex to be consistent 2012-11-19 15:57:54 +00:00
Pragmatic Software
c8d77ed230 Replace A-Z0-9_ in function regex with \w to slightly improve readability 2012-11-19 15:52:07 +00:00
Pragmatic Software
a6a2b3eeb3 Minor clean-up of previous commit to remove unnecessary substitutions 2012-11-19 15:45:13 +00:00
Pragmatic Software
1d7791d9a5 compiler_vm: Improve extraction of function parameters containing parentheses 2012-11-18 19:18:56 +00:00
Pragmatic Software
3f771df8bc compiler_vm: added -paste flag to send formatted source/output to paste site and show link instead of output; e.g. cc -paste <code> --> http://somepastesite.com 2012-11-14 18:36:04 +00:00
Pragmatic Software
b8d2d0797e compiler_vm: Show output from program when using paste command
google search: Show "No results found" if no results found
c99std/c11std: Minor clean-up of output
2012-11-02 22:08:20 +00:00
Pragmatic Software
f16dedf680 compiler_vm: add script to mount/umount qcow2 for editing 2012-10-24 12:29:00 +00:00
Pragmatic Software
4602c3b732 compiler_vm: Pass host date to guest
Replace "Killed" with "[Killed]"
             Don't print empty '' after unprintable char values
             Set default language in compiler_client.pl to C11
2012-10-24 12:26:18 +00:00
Pragmatic Software
7f8b39d20a compiler_vm: Limit cpu usage and kill processes using excess cpu 2012-10-07 17:48:18 +00:00
Pragmatic Software
f61bb61aeb Channels: Properly check for arguments to chanadd/chanrem
HashObject: Fix potential divide by zero
compiler_vm: Limit cpu usage and kill processes using excess cpu
             Unbuffer stdout
2012-10-05 01:59:04 +00:00
Pragmatic Software
bf91c67346 compiler_vm: improve parsing/function extraction 2012-09-17 07:12:16 +00:00
Pragmatic Software
a0bcdfef2f compiler_vm: improve parsing of cpp and functions (properly handle \n) 2012-09-03 18:48:47 +00:00
Pragmatic Software
7ed26f928e compiler_vm: fix \n after #include directives 2012-09-03 07:02:17 +00:00
Pragmatic Software
a4cf4136ee compiler_vm: Improve handling of \n in quoted literals 2012-09-01 05:20:01 +00:00
Pragmatic Software
09cb762c6f compiler_vm: update client to remove duplicate warnings/infos; typeof('a') should be int; misc output clean-ups 2012-08-18 03:28:10 +00:00
Pragmatic Software
da3e05bc72 Prevent gcc from optimizing away gdb() call 2012-08-16 01:17:28 +00:00
Pragmatic Software
b88c02c3c3 ulimit for core files no longer necessary 2012-08-02 05:02:27 +00:00
Pragmatic Software
f74de0864e Removed unnecessary core ulimit 2012-08-02 04:34:35 +00:00
Pragmatic Software
d5a3d63235 Removed unnecessary debugcommands 2012-08-02 04:34:21 +00:00
Pragmatic Software
8a70c06096 Misc bug fixes and tweaks 2012-07-22 19:22:30 +00:00
Pragmatic Software
dad1bf978e compiler_vm: improved function extraction (missed a spot) 2012-03-21 16:02:02 +00:00
Pragmatic Software
0e957ba414 compiler_vm: improved function extraction 2012-03-21 15:58:07 +00:00
Pragmatic Software
2fc11ea1fd compiler_vm: disregard this commit 2012-03-21 15:54:43 +00:00
Pragmatic Software
5066f348a1 compiler_vm: added support for splint 2012-03-12 03:33:54 +00:00
Pragmatic Software
b30216d8ec compiler_vm: restored stdin input, improved error output, reset vm only on timed-out for improved speed 2012-02-29 01:10:12 +00:00
Pragmatic Software
38166bd14d compiler_vm: reset vm only on time-outs to improve response speed 2012-02-25 08:30:49 +00:00
Pragmatic Software
58a592c86f compiler-vm: use astyle with file instead of stdin to avoid astyle bug; add lorem ipsum default -input text 2012-02-15 22:00:58 +00:00
Pragmatic Software
4e52d77f61 compiler_vm: improved macro parsing; replace newlines outside of quoted text 2012-02-11 05:05:49 +00:00
Pragmatic Software
a2e2d15fc7 compiler_vm: added libc fatal errors; trace program only on signal 2012-02-09 18:48:45 +00:00
Pragmatic Software
11923967cf compiler_vm: watchdog debug output includes commands sent to gdb, fflush stdout on breakpoints 2012-02-04 20:34:55 +00:00
Pragmatic Software
e3ec59322e compiler_vm: watchdog wraps more gdb output with <> 2012-02-04 06:02:52 +00:00
Pragmatic Software
56bd0e9101 compiler_vm: added trace() macro to trace function calls 2012-02-03 17:54:52 +00:00
Pragmatic Software
e2e54079ae compiler_vm: improved abormal signal handling 2012-02-02 18:28:24 +00:00
Pragmatic Software
fd1f18850a compiler_vm: updates (needs refactoring, pronto) 2012-02-02 04:14:38 +00:00
Pragmatic Software
22b43f21bf compiler_vm: updated gdb parsing (still needs refactoring) 2012-01-31 05:32:24 +00:00
Pragmatic Software
d56aaeebca compiler_vm: updated to show local vars if no output, etc 2012-01-29 23:50:33 +00:00
Pragmatic Software
84f2f979a6 compiler_vm: rewrote watchdog to execute within gdb; added dump(), ptype(), watch() macros 2012-01-28 07:39:13 +00:00
Pragmatic Software
cf0fead036 compiler-vm: added -input flag for providing stdin input; added %b printf specifier to print base-2; bug-fixes 2011-12-30 23:20:29 +00:00
Pragmatic Software
735da9ec05 compiler_vm: updated README -- added version numbers to dependencies 2011-02-14 00:35:45 +00:00
Pragmatic Software
0c0b2e7836 compiler_vm: flagged some debug output 2011-02-10 01:32:03 +00:00
Pragmatic Software
8f4152c918 compiler_vm: fix indentation 2011-02-08 01:27:45 +00:00
Pragmatic Software
bb05ab5274 compiler_vm: do not extract potential functions from within string literals or comments, if no main function is provided 2011-02-08 01:24:12 +00:00
Pragmatic Software
bd9fb7ad0b compiler_vm: use "$@" instead of $* to properly pass arguments 2011-02-07 20:51:27 +00:00
Pragmatic Software
6552390c5e compiler_vm: extract_codeblock doesn't do what I thought; also improved handling of #defines 2011-02-04 02:50:52 +00:00
Pragmatic Software
c8bc14183b compiler_vm: updated to run properly on Linux; untested on Cygwin 2011-02-02 07:46:03 +00:00
Pragmatic Software
be8c03ba27 compiler_vm: updated README example to use single quotes correctly 2011-02-01 03:09:18 +00:00
Pragmatic Software
5e9fbf1d16 compiler_vm: updated README example to use single quotes correctly 2011-02-01 03:06:38 +00:00
Pragmatic Software
f35874b6ea compiler_vm: updated watchdog 2011-02-01 02:55:33 +00:00
Pragmatic Software
65d1d49aaf compiler_vm: minor update to README 2011-02-01 02:52:42 +00:00
Pragmatic Software
2cd796e56e compiler_vm: added debugcommands file 2011-02-01 02:50:14 +00:00
Pragmatic Software
80b50559bb compile_vm: added missing cc script 2011-02-01 02:47:16 +00:00
Pragmatic Software
9e731958b1 compiler_vm: note about ulimit -c in README 2011-02-01 00:58:33 +00:00
Pragmatic Software
0b8216e13c compiler_vm: added functionality to be executed without qemu, via cc script; added gdb debugging to watchdog 2011-02-01 00:41:51 +00:00
Pragmatic Software
514484a1e6 compiler_vm: do not automatically pull in #include prelude if #include detected in code 2011-01-29 20:50:44 +00:00
Pragmatic Software
b3886b522e compiler_vm: updated README 2011-01-26 02:08:11 +00:00
Pragmatic Software
52d6880feb compiler_vm: clarified location of compiler_watchdog.pl 2011-01-26 02:05:55 +00:00
Pragmatic Software
8fd584a9e7 compiler_vm: updated compiler_client with comments 2011-01-26 02:02:21 +00:00
Pragmatic Software
93658e0f6f modules: added compiler virtual machine scripts; use to set up your own environment for !cc/compiler_client.pl 2011-01-26 01:59:19 +00:00