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

619 Commits

Author SHA1 Message Date
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
c0cb6331a9 Fix "const const" and reorder types 2015-05-25 17:25:00 -07:00
Pragmatic Software
059ac072a6 Adjust score output: Move ratio to end, and use concise time durations 2015-05-25 11:34:43 -07:00
Pragmatic Software
dcc48e98e2 Add ratio to scores 2015-05-25 11:27:24 -07:00
Pragmatic Software
f4013a4594 Correct qstats rank text from player rank text 2015-05-25 11:27:03 -07:00
Pragmatic Software
2a378d67ad Bump maximum average to 15 minutes 2015-05-25 11:25:55 -07:00
Pragmatic Software
38c00f3220 Remove unused modules 2015-05-25 07:19:49 -07:00
Pragmatic Software
f81e9bc592 Add QStats ranking 2015-05-25 07:17:20 -07:00
Pragmatic Software
748a9fd049 Add some more alternative answers 2015-05-25 07:15:58 -07:00
Pragmatic Software
2a2296c916 Add command to display a C Jeopardy question by ID (for use with qstats) 2015-05-25 07:00:03 -07:00
Pragmatic Software
2258512698 Replace incomplete question with one that makes more sense 2015-05-24 12:12:07 -07:00
Pragmatic Software
0bef21770f Reduce weight of correct answers in quickest streak by half 2015-05-24 06:19:03 -07:00
Pragmatic Software
b79b835579 Add nick field to WrongAnswers; don't update average if > 10 mins elapsed since question asked 2015-05-24 06:17:56 -07:00
Pragmatic Software
cd0486e525 Remove UNIQUE constraint from WrongAnswers 2015-05-23 09:25:20 -07:00
Pragmatic Software
2dc245abed Add qstats command; todo: ranking 2015-05-23 06:24:49 -07:00
Pragmatic Software
ae128442a8 Add date for quickest/longest answer qstat 2015-05-23 06:24:22 -07:00
Pragmatic Software
afad192b83 Show fractional seconds; use concise duration 2015-05-23 06:23:37 -07:00
Pragmatic Software
41cc190f2a Add "expansion" as an alternative answer to "replacement" 2015-05-23 06:22:45 -07:00
Pragmatic Software
7d3bf58d86 Oops, add missing equation to moving average formula 2015-05-23 02:58:58 -07:00
Pragmatic Software
5b4fccb3f4 Add per-question statistics gathering 2015-05-23 02:27:53 -07:00
Pragmatic Software
7a5a3a38f2 Improve quickest streak ranking; misc bug-fixes 2015-05-23 02:27:08 -07:00
Pragmatic Software
04a308a59e Improve quickest-streak algorithm for setting new records
Use the following formula to set personal records for quickest-streak
relative to an existing personal current record.

(ranked_streak + ranked_streak) / ranked_answers > (current_streak + ranked_streak) / current_answers

E.g., given a current record of 8 correct answers in a row in 1 minute and
20 seconds, to beat that record you'd need: 6 answers in 40 seconds, 7 in
1 minute, 9 in 1 minute 40 seconds, 10 in 2 minutes, etc.
2015-05-22 04:03:39 -07:00
Pragmatic Software
b0b74cd6ea Add "greater" as alternate answer to a certain question 2015-05-22 03:59:00 -07:00
Pragmatic Software
66635da9cc Don't bold "this" or "these" embedded in other words 2015-05-22 03:58:28 -07:00
Pragmatic Software
ada7f57141 Reduce hint timeout to 20 seconds; don't update hint statistics if in hints-only mode 2015-05-22 03:57:30 -07:00
Pragmatic Software
8508be2d72 Add quickest-correct-streak logic CJeopardy scores module
Remove colors from `score` command
2015-05-21 07:35:04 -07:00
Pragmatic Software
766859eca0 Remove underscore typo 2015-05-21 03:26:38 -07:00
Pragmatic Software
51d8a136ce Add quickest-correct-streak logic to CJeopardy answer module
Todo: Add to `rank`, `scores`, and `reset`.
2015-05-21 02:25:08 -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
c69d6c1953 Ignore more useless URL titles 2015-05-08 05:11:07 -07:00
Pragmatic Software
3baa1cf809 Added qalc calculator module 2015-05-08 05:02:57 -07:00
Pragmatic Software
7139490067 Updated math.pl to perform unit conversions 2015-05-08 05:02:35 -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
06d6e0f0d4 Correct handling of concatenated prefixed string literals 2015-02-22 23:58:03 -08:00
Pragmatic Software
6cf818419f Bold more this keywords 2015-02-19 06:42:12 -08:00
Pragmatic Software
31f20e6b94 Fix minor typos 2015-02-19 06:41:38 -08:00
Pragmatic Software
341cad090e Take tied ranking positions into account when determining offset 2015-02-17 01:47:28 -08:00
Pragmatic Software
954563b53a CJeopardy's rank command can now accept an optional offset argument 2015-02-17 01:31:40 -08:00
Pragmatic Software
76bb9a2c5f Group players with identical stats under the same rank
If Bill and Bob both have 10 correct answers, place them both
under the same rank of #5 instead of putting Bill at #5 and
Bob at #6.
2015-02-14 14:03:26 -08:00
Pragmatic Software
6ce05f5a05 CGrammar: support prefixes for character constants and string literals 2015-02-13 21:34:02 -08:00
Pragmatic Software
23f2b10ca7 Use descriptive titles instead of keywords in ranking output 2015-02-13 15:36:45 -08:00
Pragmatic Software
96c9c38215 Improvements to C Jeopardy rank command
Allow specifying a nick to show overall rankings for each category.
Limit rankings to top 15 or bottom 15.
Use temp variables to handle division-by-zero instead of setting player's data.
2015-02-13 14:39:20 -08:00
Pragmatic Software
7b7554802d Correct minor typo; descending --> ascending 2015-02-11 21:38:41 -08:00
Pragmatic Software
edd8762ae2 CJeopardy: Add rank command 2015-02-11 20:58:16 -08:00
Pragmatic Software
95b1f3eee6 Show message about ending own correct answer streak 2015-02-07 08:47:42 -08:00
Pragmatic Software
0da2287cde Implement "quickest answer" score tracking (and disable wrong answer streaks) 2015-01-31 16:41:05 -08:00
Pragmatic Software
e6c18eb428 Fix typo 2015-01-31 16:39:05 -08:00
Pragmatic Software
b7a511a2e1 Additional acceptable alternative answers 2015-01-30 18:41:05 -08:00
Pragmatic Software
adec5c1505 Update C Jeopardy colors 2015-01-30 18:40:19 -08:00
Pragmatic Software
9d4af761ca Add flock semaphore to prevent race conditions 2015-01-29 21:55:46 -08:00
Pragmatic Software
9f5347ab06 Improve streak messages to be more frequent 2015-01-29 01:39:40 -08:00
Pragmatic Software
07a8da6edc Accept valid alternatives to "null character" 2015-01-29 01:24:59 -08:00
Pragmatic Software
652d91d748 Don't show nick unless checking another player's score 2015-01-29 01:23:57 -08:00
Pragmatic Software
f0593fece7 Add score and reset C Jeopardy commands 2015-01-28 13:11:04 -08:00
Pragmatic Software
f14b205148 Minor tweaks to score-streak messages 2015-01-28 03:31:36 -08:00
Pragmatic Software
e656c4f2cc Add scorestreaks to C Jeopardy 2015-01-28 03:04:28 -08:00
Pragmatic Software
1f260c9e94 Improvements to C Jeopardy module
Moved to its own cjeopardy directory.

Added IRCColors module to print colored text.

Added Scorekeeper module to track scoring statistics.
2015-01-28 00:40:40 -08: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
c3dde27328 cjeopardy: If answer is integral, then respond "too big!" or "too small!" respectively 2015-01-24 08:05:47 -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
340cf07558 get_title.pl: remove trailing non-word character 2015-01-23 13:49:16 -08:00
Pragmatic Software
5f9dd151e2 nickometer.pl: update special cases 2015-01-23 13:47:08 -08:00
Pragmatic Software
3010cf1d8d compiler: Lowercase language 2015-01-23 13:46:18 -08:00
Pragmatic Software
ac128312ac cjeopardy.txt: fix typo 2015-01-23 13:43:00 -08:00
Pragmatic Software
5d51fe9795 c2english.pl: show usage if no code, and add -Wno-implicit 2015-01-23 13:41:31 -08:00
Pragmatic Software
938561a2fb math.pl: add cbrt and add optional "the" to 42 question 2015-01-23 13:40: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
6f3d5f3179 Allow case-insensitive section-matching in c99std/c11std 2015-01-06 15:35:40 -08:00
Pragmatic Software
4116afb86d Improve text search in c99std/c11std modules
Regular expression special characters are now escaped.
A trailing word-boundary is added to limit results to exact matches.
2014-12-29 23:24:54 -08:00
Pragmatic Software
f9e2c3fb49 CJeopardy improvements
- Reduce hint wait-period from 60 seconds to 30 seconds
- Improve ignoring of common leading words in answers
- Correct several grammar mistakes/typos in questions
2014-12-29 23:19:32 -08:00
Pragmatic Software
ba59edb040 Update paren.py module to improve parentheses verbosity 2014-12-20 19:44:40 +00:00
Pragmatic Software
79796f9710 CGrammar: Add istrue to static assertion expression; add ability to customize istrue truthiness result, add isfalse 2014-09-19 04:17:37 +00:00
Pragmatic Software
9d3c8c0285 CGrammar: Correct translation of sizeof in static assertions 2014-09-19 03:54:13 +00: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
2529d49aac CGrammar: Remove excessive "result of the expression" for parenthesized expressions 2014-09-09 07:20:42 +00:00
Pragmatic Software
d40361a2bf Disallow ?, [, ], and ~~ in math.pl 2014-08-31 20:27:40 +00:00
Pragmatic Software
fa2e3e4b5d Dump LWP error text if get_title.pl fails to fetch webpage 2014-08-31 20:26:24 +00:00
Pragmatic Software
838f232d68 Update C Jeopardy questions 2014-08-31 20:24:08 +00:00
Pragmatic Software
a5ede3307e Update C facts module 2014-08-31 20:23:27 +00:00
Pragmatic Software
021401b538 C Jeopardy: Show correctness percentage when an answer is almost correct; recommend #cjeopardy channel when attempting to play via /msg 2014-08-31 20:21:09 +00:00