compiler_vm: Add $channel argument to separate snippet history into per-channel/nick files

This commit is contained in:
Pragmatic Software 2014-03-04 21:40:51 +00:00
parent 921c9917a5
commit a5ae7478e1
6 changed files with 67 additions and 60 deletions

View File

@ -13,7 +13,7 @@ use warnings;
# These are set automatically by the build/commit script
use constant {
BUILD_NAME => "PBot",
BUILD_REVISION => 502,
BUILD_REVISION => 503,
BUILD_DATE => "2014-03-04",
};

View File

@ -1851,10 +1851,10 @@ action: /say C89/C90 draft: http://flash-gordon.me.uk/ansi.c.txt or http://web.a
created_on: 1236861685
enabled: 1
last_referenced_in: pragma-
last_referenced_on: 1393877069.42851
last_referenced_on: 1393946502.21155
owner: Wulf4
rate_limit: 15
ref_count: 97
ref_count: 98
ref_user: pragma-!~chaos@unaffiliated/pragmatic-chaos
type: text
@ -7185,34 +7185,34 @@ action_with_args: /say $nick, $answers
created_on: 1193948417
enabled: 1
last_referenced_in: ##c
last_referenced_on: 1393901895.20933
last_referenced_on: 1393945309.2847
owner: pragma_
rate_limit: 0
ref_count: 1303
ref_user: puish!~jgb@unaffiliated/jonbryan
ref_count: 1304
ref_user: cousteau!~cousteau@138.100.74.81
type: text
<:(>
action: /call :)
created_on: 1180052710
enabled: 1
last_referenced_on: 1390399438.41235
last_referenced_on: 1393961635.61896
owner: pragma_
rate_limit: 15
ref_count: 27
ref_user: rie!~chatzilla@p2003004ACE51B43792E6BAFFFE5389F3.dip0.t-ipconnect.de
ref_count: 28
ref_user: nCrazed!~nCrazed@5.2.16.190
type: text
<:)>
action: /say $faces
created_on: 1109365121
enabled: 1
last_referenced_in: rob``
last_referenced_on: 1390851212.03434
last_referenced_in: ##c
last_referenced_on: 1393961635.63607
owner: pragma_
rate_limit: 15
ref_count: 152
ref_user: rob``!~rob@gtng-4db047dd.pool.mediaWays.net
ref_count: 153
ref_user: nCrazed!~nCrazed@5.2.16.190
type: text
<:-(>
@ -8557,11 +8557,11 @@ type: text
action: c11std.pl
created_on: 1326727233.54048
enabled: 1
last_referenced_in: ##c
last_referenced_on: 1393889491.09541
last_referenced_in: pragma-
last_referenced_on: 1393959075.38608
owner: pragma_
rate_limit: 0
ref_count: 1136
ref_count: 1141
ref_user: pragma-!~chaos@unaffiliated/pragmatic-chaos
type: module
@ -8703,14 +8703,16 @@ ref_user: pragma_
type: text
<cc>
action: /call compiler $nick
action: /call compiler $nick $channel
created_on: 1272176634
edited_by: pragma-!~chaos@unaffiliated/pragmatic-chaos
edited_on: 1393967703.12375
enabled: 1
last_referenced_on: 1393921443.89722
last_referenced_on: 1393967711.47421
owner: pragma_
preserve_whitespace: 1
rate_limit: 4
ref_count: 37728
ref_count: 37763
ref_user: pragma-!~chaos@unaffiliated/pragmatic-chaos
type: text
@ -8764,10 +8766,10 @@ type: text
action: /call factchange
created_on: 1277259441.33026
enabled: 1
last_referenced_on: 1393300207.62137
last_referenced_on: 1393967703.11071
owner: pbot3
rate_limit: 15
ref_count: 236
ref_count: 238
ref_user: pragma-!~chaos@unaffiliated/pragmatic-chaos
type: text
@ -8972,10 +8974,10 @@ action: compiler_client.pl
created_on: 1291939583.25391
enabled: 1
last_referenced_in: pragma-
last_referenced_on: 1393921443.9184
last_referenced_on: 1393967711.49546
owner: pragma_
rate_limit: 0
ref_count: 30569
ref_count: 30604
ref_user: pragma-!~chaos@unaffiliated/pragmatic-chaos
type: module
@ -9637,11 +9639,11 @@ type: text
action: /call factfind
created_on: 1277784994.65625
enabled: 1
last_referenced_on: 1393744259.21007
last_referenced_on: 1393951484.46497
owner: pbot3
rate_limit: 15
ref_count: 358
ref_user: pragma-!~chaos@unaffiliated/pragmatic-chaos
ref_count: 359
ref_user: lemonade`!~lemonade`@pool-108-28-100-56.washdc.fios.verizon.net
type: text
<floating>
@ -10125,12 +10127,12 @@ action: /say To learn all about me, see http://www.iso-9899.info/wiki/Candide
action_with_args: /say To learn all about $args, see http://www.iso-9899.info/wiki/Candide#$args
created_on: 1109792986
enabled: 1
last_referenced_in: lemonade`
last_referenced_on: 1393639199.45894
last_referenced_in: ##c
last_referenced_on: 1393933113.36018
owner: NeverDream
rate_limit: 0
ref_count: 1224
ref_user: lemonade`!~lemonade`@pool-108-28-100-56.washdc.fios.verizon.net
ref_count: 1226
ref_user: dozn!~dozn@24-207-52-240.eastlink.ca
type: text
<herring>
@ -11010,12 +11012,12 @@ type: text
action: man.pl
created_on: 1107137901
enabled: 1
last_referenced_in: puish
last_referenced_on: 1393565259.68701
last_referenced_in: ##c
last_referenced_on: 1393945292.18739
owner: pragma_
rate_limit: 15
ref_count: 1361
ref_user: puish!~jgb@unaffiliated/jonbryan
ref_count: 1362
ref_user: cousteau!~cousteau@138.100.74.81
type: module
<manpage>
@ -12290,12 +12292,12 @@ type: text
action: /say $args
created_on: 1251663502
enabled: 1
last_referenced_in: ##c
last_referenced_on: 1393702026.66878
last_referenced_in: pragma-
last_referenced_on: 1393967745.99187
owner: pragma_
rate_limit: 0
ref_count: 808
ref_user: fisted!~fisted@unaffiliated/fisted
ref_count: 814
ref_user: pragma-!~chaos@unaffiliated/pragmatic-chaos
type: text
<scheme>
@ -12459,10 +12461,10 @@ type: regex
action: /call factshow
created_on: 1277259146.86343
enabled: 1
last_referenced_on: 1393928620.05921
last_referenced_on: 1393967768.1747
owner: pbot3
rate_limit: 15
ref_count: 186
ref_count: 194
ref_user: pragma-!~chaos@unaffiliated/pragmatic-chaos
type: text
@ -12933,11 +12935,11 @@ type: text
action: /call 8ball
created_on: 1360662740.86483
enabled: 1
last_referenced_on: 1389897389.91006
last_referenced_on: 1393945309.26443
owner: pragma-
rate_limit: 15
ref_count: 2
ref_user: zid`!zid@laiz.stalker.fi
ref_count: 3
ref_user: cousteau!~cousteau@138.100.74.81
type: text
<that's>
@ -13398,8 +13400,8 @@ ref_user: pragma-!~chaos@unaffiliated/pragmatic-chaos
type: text
<version>
action: /say PBot revision 494 2014-03-01
created_on: 1393838096.62111
action: /say PBot revision 501 2014-03-04
created_on: 1393968046.58128
enabled: 1
last_referenced_in: lemonade`
last_referenced_on: 1393639215.26177
@ -13940,8 +13942,10 @@ ref_user: pragma-!~chaos@unaffiliated/pragmatic-chaos
type: text
<{>
action: /call compiler_block $nick
action: /call compiler_block $nick $channel
created_on: 1329860884.76944
edited_by: pragma-!~chaos@unaffiliated/pragmatic-chaos
edited_on: 1393967624.45297
enabled: 1
last_referenced_in: pragma_
last_referenced_on: 1393297892.74508

View File

@ -21,6 +21,7 @@ if(not defined $sock) {
}
my $nick = shift @ARGV;
my $channel = shift @ARGV;
my $code = join ' ', @ARGV;
#$code = "{ $code";
@ -32,7 +33,7 @@ if($code =~ s/-lang=([^ ]+)//) {
$lang = uc $1;
}
print $sock "compile:$nick:$lang\n";
print $sock "compile:$nick:$channel:$lang\n";
print $sock "$code\n";
print $sock "compile:end\n";

View File

@ -21,6 +21,7 @@ if(not defined $sock) {
}
my $nick = shift @ARGV;
my $channel = shift @ARGV;
my $code = join ' ', @ARGV;
my $lang = "C11";
@ -29,7 +30,7 @@ if($code =~ s/-lang=([^ ]+)//) {
$lang = uc $1;
}
print $sock "compile:$nick:$lang\n";
print $sock "compile:$nick:$channel:$lang\n";
print $sock "$code\n";
print $sock "compile:end\n";

View File

@ -178,6 +178,7 @@ sub compiler_server {
eval {
my $lang;
my $nick;
my $channel;
my $code = "";
local $SIG{ALRM} = sub { die 'Timed-out'; };
@ -196,13 +197,10 @@ sub compiler_server {
last;
}
$code = quotemeta($code);
print "Attempting compile...\n";
alarm 0;
my $tnick = quotemeta($nick);
my $tlang = quotemeta($lang);
my ($ret, $result) = execute("./compiler_vm_client.pl $tnick -lang=$tlang $code");
my ($ret, $result) = execute("./compiler_vm_client.pl \Q$nick\E \Q$channel\E -lang=\Q$lang\E \Q$code\E");
if(not defined $ret) {
#print "parent continued\n";
@ -234,9 +232,10 @@ sub compiler_server {
exit $ret;
}
if($line =~ /compile:([^:]+):(.*)$/) {
if($line =~ /compile:([^:]+):([^:]+):(.*)$/) {
$nick = $1;
$lang = $2;
$channel = $2;
$lang = $3;
$code = "";
next;
}

View File

@ -29,9 +29,9 @@ my %languages = (
);
my %preludes = (
'C99' => "#define _XOPEN_SOURCE 9001\n#define __USE_XOPEN\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <unistd.h>\n#include <math.h>\n#include <limits.h>\n#include <sys/types.h>\n#include <stdint.h>\n#include <stdbool.h>\n#include <stddef.h>\n#include <stdarg.h>\n#include <ctype.h>\n#include <inttypes.h>\n#include <float.h>\n#include <errno.h>\n#include <time.h>\n#include <assert.h>\n#include <prelude.h>\n\n",
'C11' => "#define _XOPEN_SOURCE 9001\n#define __USE_XOPEN\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <unistd.h>\n#include <math.h>\n#include <limits.h>\n#include <sys/types.h>\n#include <stdint.h>\n#include <stdbool.h>\n#include <stddef.h>\n#include <stdarg.h>\n#include <stdnoreturn.h>\n#include <stdalign.h>\n#include <ctype.h>\n#include <inttypes.h>\n#include <float.h>\n#include <errno.h>\n#include <time.h>\n#include <assert.h>\n#include <complex.h>\n#include <prelude.h>\n\n",
'C89' => "#define _XOPEN_SOURCE 9001\n#define __USE_XOPEN\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <unistd.h>\n#include <math.h>\n#include <limits.h>\n#include <sys/types.h>\n#include <stdint.h>\n#include <errno.h>\n#include <ctype.h>\n#include <assert.h>\n#include <prelude.h>\n\n",
'C99' => "#define _XOPEN_SOURCE 9001\n#define __USE_XOPEN\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <unistd.h>\n#include <math.h>\n#include <limits.h>\n#include <sys/types.h>\n#include <stdint.h>\n#include <stdbool.h>\n#include <stddef.h>\n#include <stdarg.h>\n#include <ctype.h>\n#include <inttypes.h>\n#include <float.h>\n#include <errno.h>\n#include <time.h>\n#include <assert.h>\n#include <signal.h>\n#include <prelude.h>\n\n",
'C11' => "#define _XOPEN_SOURCE 9001\n#define __USE_XOPEN\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <unistd.h>\n#include <math.h>\n#include <limits.h>\n#include <sys/types.h>\n#include <stdint.h>\n#include <stdbool.h>\n#include <stddef.h>\n#include <stdarg.h>\n#include <stdnoreturn.h>\n#include <stdalign.h>\n#include <ctype.h>\n#include <inttypes.h>\n#include <float.h>\n#include <errno.h>\n#include <time.h>\n#include <assert.h>\n#include <complex.h>\n#include <signal.h>\n#include <prelude.h>\n\n",
'C89' => "#define _XOPEN_SOURCE 9001\n#define __USE_XOPEN\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <unistd.h>\n#include <math.h>\n#include <limits.h>\n#include <sys/types.h>\n#include <stdint.h>\n#include <errno.h>\n#include <ctype.h>\n#include <assert.h>\n#include <signal.h>\n#include <prelude.h>\n\n",
);
sub pretty {
@ -139,18 +139,20 @@ sub compile {
return $result;
}
if($#ARGV < 1) {
if($#ARGV < 2) {
print "Usage: cc [-compiler -options] <code> [-stdin=input]\n";
# usage for shell: cc <nick> <channel> [-compiler -options] <code> [-stdin=input]
exit 0;
}
my $nick = shift @ARGV;
my $channel = lc shift @ARGV;
my $code = join ' ', @ARGV;
my @last_code;
print " code: [$code]\n" if $debug;
if(open FILE, "< last_code.txt") {
if(open FILE, "< history/$channel.hist") {
while(my $line = <FILE>) {
chomp $line;
push @last_code, $line;
@ -598,7 +600,7 @@ if($save_last_code) {
unshift @last_code, $extracted_args . (length $args ? $args . ' ' . $code : $code);
}
open FILE, "> last_code.txt";
open FILE, "> history/$channel.hist";
my $i = 0;
foreach my $line (@last_code) {