3
0
mirror of https://github.com/pragma-/pbot.git synced 2024-11-25 21:39:27 +01:00
Commit Graph

4426 Commits

Author SHA1 Message Date
rlcamp
3e4d034c93
Added pick and roll. Fixed "nano[anything]" being parsed as nan. Backed off printed precision for large reals (#66)
- Added pick and roll

- Fixed "nano[anything]" being parsed as nan

- Backed off printed precision for large reals
2021-12-10 08:41:40 -08:00
Pragmatic Software
eef431af10 Fix path 2021-11-25 16:47:26 -08:00
Pragmatic Software
35ebdd69df Update .gitattributes 2021-11-19 18:31:44 -08:00
Pragmatic Software
aab958e1e1 doc/QuickStart: move applets/ to correct position in table 2021-11-19 18:20:51 -08:00
Pragmatic Software
3d97dc2c33 Rename "modules" to "applets"
"Applet" is a much better name for the external command-line
scripts and programs that can be loaded as PBot commands. They
will no longer be confused with Perl modules.

https://en.wikipedia.org/wiki/Applet
2021-11-19 18:05:50 -08:00
rlcamp
dd250ccf83
Update modules/qrpn (#65)
- Fixed itenlog erroneously disallowing negative arguments
- Removed badly behaving exact literal check
- Fixed 2 not being a prime number
- Fixed whitespace issues
- Reordered checks in evaluate_literal for speed and factored out the annoying QRPN_NOT_A_UNIT non-error error code
- Added a least significant digit to the definition of a year
2021-11-18 17:33:40 -08:00
Pragmatic Software
da7d31229b modules/qrpn: replace stderr with stdout; remove extraneous whitespace throughout
PBot modules do not send the stderr stream to the channel. Instead, the output
is logged in <module-filename>-stderr, for private debugging purposes. PBot
expects output intended for channels to be on stdout.
2021-11-14 09:18:47 -08:00
rlcamp
9172bcd29f
Update modules/qrpn (#64) 2021-11-14 09:07:00 -08:00
Pragmatic Software
a2111640af Update modules/qrpn 2021-11-08 06:12:48 -08:00
Pragmatic Software
136460e6b4 Expand factoid variables/selectors in arguments to code factoids 2021-11-05 13:08:45 -07:00
0xACE
1dae484e3f
compiler_vm: C removed unnecessary regex replace (#63)
This problem has previously been encountered. And my last solution was
not satisfactory.

It seems like there were 2 regex lines, one targeting `//` and another
targeting `/* */`.

Originally they were basically meant to perform this:

Search for

```c
;<COMMENT>;\n
```

and replacing it with

```c
;<COMMENT>
```

In e00ba2e62f I provided a patch to add
another `;` for `//` as it would eat the first `;` after the `<COMMENT>`

After thinking for some time, I came to the conclusion that the lines of
REGEX serve no purpose and should be removed.

For future reference:

e00ba2e62f was targeting this problem:

```c
printf("why is the last ; missing?"); // foo \n int a=42;
```

which generated something along the lines of

```c
    printf("why is the last ; missing?");
// foo
    int a = 42return 0;
```

Where it would strip a `;` from the first line after a `//` comment

And this commit additionally targeted:

```c
printf("foo\n");
//printf("bar\n");
printf("baz\n");
// only happens if the line ends with ; eg:
printf("hello\n");
// deny with ;
printf("world\n");
```
output:

    foo
    hello

expected:

    foo
    baz
    hello
    world

where it generated the code:

```c
    printf("foo\n");
//printf("bar\n" );printf("baz\n" );
// only happens if the line ends with ; eg:
    printf("hello\n");
// deny with ;printf("world\n" );
```

Thus this should fix #62 and the original problem
2021-11-03 14:31:07 -07:00
Pragmatic Software
4cf1e76169 Update commands and factoids 2021-10-19 21:14:52 -07:00
Pragmatic Software
85fd8397c2 Fix auto-rejoin channels when reconnecting 2021-10-19 21:09:21 -07:00
Pragmatic Software
4809341e0f Commands/Factoids: minor formatting clean-up 2021-10-19 21:05:16 -07:00
Pragmatic Software
9a01b1c433 modules/compiler_vm: ASAN now works 2021-10-19 21:03:34 -07:00
Pragmatic Software
abd6abcc6c modules/wiktionary.pl: always show all entries 2021-10-19 21:01:45 -07:00
Pragmatic Software
8dd1a4bc3d Add qrpn module 2021-10-19 21:00:43 -07:00
Pragmatic Software
b63c1f022b modules/c2english.pl: limit cpu time on semantic checker 2021-10-19 20:59:40 -07:00
Pragmatic Software
73e5048fad modules/c2english: fix #pragma 2021-10-15 18:54:53 -07:00
0xACE
7692b57f58
compiler_vm: fix leading whitespace in $func_regex (#61)
Fixes the issue where a function has a trailing whitespace before a line
break.

example:
```
void foo(){}
int main(){return 0;}
```
2021-10-06 11:06:55 -07:00
Pragmatic Software
347e4ac69f modules/compiler_vm: replace ix.io with 0x0.st for pastes 2021-09-17 13:38:04 -07:00
Pragmatic Software
eae16b14b8 modules/compiler_vm: fix -noheaders; manually #including a header once again replaces default includes 2021-09-17 13:30:46 -07:00
0xACE
e00ba2e62f
compiler_vm: fix interwined comments losing first ; after // (#60) 2021-09-15 21:31:11 -07:00
Pragmatic Software
76479ed8cf doc/Registry.md: remove references to an outdated IRC network 2021-09-15 21:23:44 -07:00
Pragmatic Software
5106622698 doc/Admin.md: minor edit 2021-09-15 21:16:48 -07:00
Pragmatic Software
8b09dd17ac Update README.md and docs 2021-09-15 21:13:12 -07:00
Pragmatic Software
8b92ba4731 doc/Admin.md: minor edit 2021-09-15 13:54:20 -07:00
Pragmatic Software
566978a867 doc/Admin.md: clarify things about akalink 2021-09-15 13:32:33 -07:00
Pragmatic Software
389c7248af Document list modules 2021-09-14 22:46:08 -07:00
Pragmatic Software
80b64a6fb5 Doc/Commands.md: update list commands with an example 2021-09-14 22:12:49 -07:00
Pragmatic Software
44e3443e7d Doc/Admin.md: add missing sort methods to nicklist documentation 2021-09-14 22:07:46 -07:00
Pragmatic Software
f2b7436f58 Doc: minor edits 2021-09-14 22:01:13 -07:00
Pragmatic Software
4bb7a3ade6 Document nicklist, banlist, checkban, list commands 2021-09-14 21:57:24 -07:00
Pragmatic Software
6c273d263c Doc: remove trailing "command" text from various headings 2021-09-14 21:30:44 -07:00
Pragmatic Software
44e1506f28 Doc: very minor edits 2021-09-14 21:23:01 -07:00
Pragmatic Software
5a477709b5 Document id and recall; misc improvements 2021-09-14 21:13:23 -07:00
Pragmatic Software
3d1479aa59 Users: simplify previous commit 2021-09-14 16:15:00 -07:00
Pragmatic Software
fa65bfc878 Users: id command can now search by wildcarded hostmasks 2021-09-14 14:23:35 -07:00
Pragmatic Software
5cf9ac1b9f BanList: misc refactors to improve readability 2021-09-12 22:24:29 -07:00
Pragmatic Software
153d771960 BanList: do not update existing bans with server bans
For some reason, various IRC networks do not propagate banlist metadata
such as owner and timestamp when a server rejoins. This causes the
server's banlist entries to contain "set by server" instead of the
original individual who set it and "set on now" instead of when it was
originally set.

This commit modifies PBot's banlist monitoring to only update PBot's
internal banlist metadata when the ban doesn't exist or when the ban is
being updated by an actual individual instead of the server. Now PBot
will remember the original setter and the original timestamp
regardless of whether the IRC server can.
2021-09-12 18:59:36 -07:00
Pragmatic Software
6924bc236d cpanfile: add missing JSON::XS module for significant JSON speed-ups 2021-09-12 11:13:12 -07:00
Pragmatic Software
c7bb4b51cd Plugin/Spinach: fix path to Storage::HashObject 2021-09-12 11:11:44 -07:00
Pragmatic Software
74401977e1 Factoids: look-up use_output_queue/preserve_whitespace properly 2021-09-10 11:03:20 -07:00
Pragmatic Software
eba5766865 modules/paren: specify python2 in shebang 2021-09-09 11:55:31 -07:00
Pragmatic Software
a0265b4a6f MessageHistory: recall can use -a and -b together again 2021-09-08 14:05:35 -07:00
Pragmatic Software
c3e16410c2 Whoops, execute_process() cannot return undef
If ProcessManager::execute_process() returns undef,
then the loop in Interpreter::interpret() thinks that
the command didn't get handled, and so goes on to look
for other commands. This is now corrected.
2021-09-07 10:18:12 -07:00
Pragmatic Software
7e539cc633 Fix typo 2021-09-06 13:03:01 -07:00
Pragmatic Software
93ad26d27d Doc: minor formatting tweak 2021-09-06 12:51:04 -07:00
Pragmatic Software
ce2224c380 Document aka commands 2021-09-06 12:45:02 -07:00
Pragmatic Software
e60c4dc1f2 MessageHistory: Add akadelete command 2021-09-06 12:43:18 -07:00