Commit Graph

4761 Commits

Author SHA1 Message Date
Pragmatic Software de8e261276 Update doc/VirtualMachine.md 2022-01-29 19:09:35 -08:00
Pragmatic Software e38aa378e9 compiler_vm: add README linking to documentation 2022-01-29 19:02:55 -08:00
Pragmatic Software b55f675afe compiler_vm: setup-guest now disables networking 2022-01-29 17:44:03 -08:00
Pragmatic Software 575d82dd0e compiler_vm: add polkit rule to require admin password for all actions 2022-01-29 17:29:55 -08:00
Pragmatic Software 4d0e06e111 Fix vm-server 2022-01-29 15:51:39 -08:00
Pragmatic Software 917d9b7c50 Remove extraneous blank lines 2022-01-29 12:30:29 -08:00
Pragmatic Software fd93ecd6f9 vm-exec: remove redundant PBOT_VM_PORT assignment 2022-01-29 12:24:56 -08:00
Pragmatic Software f460088331 Refactoring virtual machine (2/3) 2022-01-29 12:22:48 -08:00
Pragmatic Software 07dff29d4a guest-gdb: remove redundant error-checking 2022-01-29 09:50:15 -08:00
Pragmatic Software 55b4ae0c57 Rewrite guest-gdb to use GDB/MI 2022-01-28 20:21:10 -08:00
Pragmatic Software 73700661d0 Rename constants 2022-01-24 18:12:59 -08:00
Pragmatic Software bca07da986 doc/VirtualMachine.md: remove ToC, minor tweaks 2022-01-23 21:47:33 -08:00
Pragmatic Software ee41ae5b36 doc/VirtualMachine.md: minor touch-ups 2022-01-23 11:03:03 -08:00
Pragmatic Software 9dff3bed47 Polish doc/VirtualMachine.md a bit 2022-01-23 08:40:19 -08:00
Pragmatic Software 33e13fd993 Start refactoring virtual machine (1/3)
This is expected to take three commits to complete. This first initial
commit does the following:

- Begin initial rough-draft of doc/VirtualMachine.md
- Begin initial refactoring of scripts

The next commit will polish up the initial rough-draft and refactoring.

The final commit will quality-check everything and fix anything overlooked.
2022-01-23 07:49:23 -08:00
Pragmatic Software 550544a0be Update Plang submodule 2022-01-19 14:24:09 -08:00
Pragmatic Software 6810ce7d56 Update Plang submodule 2022-01-18 13:45:17 -08:00
Pragmatic Software 3f5a11e608 Plugin/Plang: fix run-time unhandled exception error reporting 2022-01-18 13:42:06 -08:00
Pragmatic Software 02a600fa32 Plugin/Plang: improve error message of unhandled exceptions 2022-01-18 10:59:56 -08:00
Pragmatic Software e421f9b6bc Replace U+200b (zwsp) with U+feff (zwnbsp)
U+feff is now used instead of U+200b for nick-dehighlighting.

U+feff is non-breaking; it will not break-up the word when wrapping. It also
appears to be much more widely supported. In fact, some terminals will simply
strip the bytes -- this allows copying the text as-is, etc.

Additionally, an exclude-list was added to prevent dehighlighting of specific
nicknames. This is because several terminals do not fully support Unicode's
zero-width spaces -- they show up as plain spaces. Certain words for the #c
channel have been added to this exclude list since they are also somewhat
popular as nicknames there.
2022-01-18 10:32:21 -08:00
Pragmatic Software ef04c3eb12 Update Plang submodule 2022-01-16 21:22:16 -08:00
Pragmatic Software e213656053 Update Plang submodule 2022-01-12 22:41:38 -08:00
Pragmatic Software d030dba52b Update Plang submodule 2022-01-12 19:18:07 -08:00
Pragmatic Software 8bcf0099bb Update Plang submodule 2022-01-12 17:08:48 -08:00
Pragmatic Software 88e2f3df1a Update Plang submodule 2022-01-12 13:27:12 -08:00
Pragmatic Software c99af56c8e Update Plang submodule 2022-01-12 13:15:52 -08:00
Pragmatic Software 75660c537f Update Plang submodule 2022-01-10 00:32:01 -08:00
Pragmatic Software 444cd983e4 Update Plang submodule 2022-01-09 22:30:17 -08:00
Pragmatic Software 21464cdb86 Update Plang submodule 2022-01-03 19:13:00 -08:00
Pragmatic Software 731a95ef11 Plugins/Plang: rename Grammar to ParseRules 2022-01-03 15:47:30 -08:00
Pragmatic Software 1fc75863e3 Update Plang submodule 2022-01-03 15:41:17 -08:00
Pragmatic Software c04467b50f Fix minor uninitialized object warning 2022-01-01 21:32:01 -08:00
Pragmatic Software f78e7bea88 Fix `chanrem` command 2022-01-01 21:30:20 -08:00
Pragmatic Software dac9555fa4 Update Plang submodule 2022-01-01 21:25:47 -08:00
Pragmatic Software 1c1bf26ab4 Update Plang submodule 2021-12-31 18:07:32 -08:00
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