Commit Graph

129 Commits

Author SHA1 Message Date
Pragmatic Software 0066c4a312 applets/cstd.pl: fix footnote URLs 2022-12-25 18:07:04 -08:00
rlcamp abf70a2871
applets/qrpn: Reverted nchoosek implementation and fixed the original (#71) 2022-10-01 12:59:20 -07:00
rlcamp 9d420fd5c9
applets/qrpn: Fixed nchoosek implementation (#70) 2022-10-01 09:46:58 -07:00
Pragmatic Software c071bf7604 applets/cstd.pl: fix parsing of paragraphs 2022-08-26 11:18:20 -07:00
Pragmatic Software 4551318c56 applets/cstd.pl: Fix footnotes 2022-08-12 13:02:00 -07:00
Pragmatic Software 6a61de1026 Consolidate c{99,11,23}std.pl into cstd.pl 2022-08-12 12:28:58 -07:00
Pragmatic Software de57906979 applets/gencstd23: update pdftotext arguments 2022-08-08 19:02:18 -07:00
Pragmatic Software 43dec7b70f applets/gencstd23: fix paragraph diff special case for n1570 2022-08-08 18:45:15 -07:00
Pragmatic Software 51eae56632 applets: regenerate n{1256,1570} drafts 2022-08-08 18:30:35 -07:00
Pragmatic Software 00d583e654 applets: Linkify section identifiers in n{1256,1570}.html 2022-08-08 13:14:05 -07:00
Pragmatic Software 9ddd38038a applets: add C23 draft (n3047) command
I really, really need to clean this mess up and combine
c99std.pl, c11std.pl and c23std.pl into one script!
2022-08-07 19:10:34 -07:00
Pragmatic Software d824255c6e Misc fixes and improvements
applets/random_quote.pl: URI encode arguments

Plugins/FuncSed: improve error handling
2022-08-03 05:18:33 -07:00
Pragmatic Software 0023790fec applets/(c99,c11)std: better handling of capture groups within -text option 2022-07-04 09:52:50 -07:00
Pragmatic Software 87eff496e9 applets/wiktionary: group definitions w/examples; clean up output 2022-06-29 19:38:17 -07:00
Pragmatic Software 3ef58c2bfa applets/wiktionary: improve output 2022-06-27 20:35:02 -07:00
rlcamp 799c9e68c7
applets/qrpn: misc fixes (#68) 2022-05-05 12:00:11 -07:00
Pragmatic Software e7f4729567 pbot-vm: rebuild without print_last_statement() if "cannot subscript something" error 2022-05-01 10:30:34 -07:00
Pragmatic Software 4b5d8aa535 pbot-vm: use %02X for escapes; do not escape \x03 (for IRC colors) 2022-04-08 13:12:37 -07:00
Pragmatic Software acbebddacc applets/ty.py: URL-encode form data 2022-04-08 09:10:07 -07:00
Pragmatic Software 3d311296eb pbot-vm: output postprocessing: escape control characters/unprintable characters 2022-04-07 18:24:57 -07:00
Pragmatic Software 690c5f5c44 pbot-vm: Add newline to output only if output does not already have a newline 2022-04-07 18:21:54 -07:00
Pragmatic Software 3375580a2d pbot-vm: fix parsing of quoted text within GDB/MI 2022-04-06 10:53:07 -07:00
Pragmatic Software 7b9971294a Add Ty applet 2022-04-06 09:09:20 -07:00
Pragmatic Software 1c57e01fad pbot-vm: escape malformed Unicode on STDOUT 2022-04-04 22:32:53 -07:00
Pragmatic Software 110912e85d pbot-vm: use coderef to simplify escaping of malformed Unicode 2022-04-04 22:10:50 -07:00
Pragmatic Software 5bc47b61d9 pbot-vm: display escaped malformed Unicode in output instead of U+FFFD 2022-04-04 21:54:39 -07:00
Pragmatic Software 757088987d pbot-vm: fix invalid character encountered in JSON string 2022-04-04 21:41:27 -07:00
Pragmatic Software 4535881898 pbot-vm: fix whitespace issue with `"string"[n]` 2022-04-04 17:17:57 -07:00
Pragmatic Software 8381fc7ad2 c99/c11 commands can now take `-text` option to filter output 2022-04-04 10:42:42 -07:00
Pragmatic Software 03fb901291 pbot-vm: fix potential time-out when outputting 0
If the output from a code snippet is `0` without a newline,
Perl treats this as a false value. When Guest::process_command()
returns a false value, that signals to guest-server::serial_server()
that it is the parent returning and so it will not send the result back
to the host.

However, `0\n` is a true value. Solution: always append a final newline to
the guest output.
2022-03-31 19:52:46 -07:00
Pragmatic Software 1f3110075a pbot-vm: fix clang2x 2022-03-19 21:50:43 -07:00
Pragmatic Software 02ca5e4435 pbot-vm: add C2X language files; default `cc` to C2X 2022-03-19 21:31:58 -07:00
Pragmatic Software fcb39511c3 pbot-vm: restore stdin for default languages 2022-03-16 12:18:11 -07:00
Pragmatic Software 01cefe462f pbot-vm: fix occasional "illegal escape sequence" in guest-gdb 2022-03-15 13:53:34 -07:00
Pragmatic Software 46ccc1fb70 pbot-vm: prevent [Exit 1] output with compiler errors 2022-03-06 14:07:28 -08:00
Pragmatic Software 3e2204a6b0 pbot-vm: improve exit-code handling 2022-03-06 13:51:33 -08:00
Pragmatic Software 02cc7fc488 Refactor UrlTitles plugin
Moved logic from get_title.pl applet to plugin.
Removed get_title.pl applet.
ProcessManager::execute_process() can now take a reader subref.
2022-02-27 16:58:01 -08:00
Pragmatic Software 66856441e4 pbot-vm: do not decode non-printable characters 2022-02-24 12:55:27 -08:00
Pragmatic Software 76fd5f5fd7 pbot-vm: fix encoding issues; misc clean-ups 2022-02-24 10:39:15 -08:00
Pragmatic Software 55b203126c Fix typo in comment 2022-02-18 12:46:33 -08:00
Pragmatic Software 8b5428f77b pbot-vm: `vm-exec -lang=?` once again lists languages without needing <code> argument 2022-02-18 12:45:28 -08:00
Pragmatic Software 3fdfb789df pbot-vm: Fix add_option() 2022-02-15 11:40:06 -08:00
Pragmatic Software 951b771b9c pbot-vm: vm-exec can now select VM; can be configured by vm-exec.json file
The vm-exec command now recognizes the following options:

    -vm-serial -vm-heart -vm-cid -vm-vport -vm

The -vm option accepts a name and configures the serial,
heart, cid and vport appropriately.

The vm-exec command can be configured by /host/config/vm-exec.json.
2022-02-15 11:28:47 -08:00
Pragmatic Software 3cfedcf3b8 Rename compiler_vm to pbot-vm and other misc applet updates 2022-02-14 16:33:29 -08:00
Pragmatic Software 4316f26797 compiler_vm: begin refactoring lib/Languages
This initial refactor commit starts with Languages/_default.pm. It moves
several things to their own packages: Paste, InteractiveEdit, SplitLine.
All of these packages will soon be further refactored or rewritten.
2022-02-14 11:18:49 -08:00
Pragmatic Software df625ef14e compiler_vm: very minor edit to vm-exec header 2022-02-14 09:50:44 -08:00
Pragmatic Software 76eff85241 compiler_vm: refactor and clean-up vm_exec 2022-02-14 09:47:16 -08:00
Pragmatic Software 0f067ea577 compiler_vm: rename vm-host-watchdog -> vm-watchdog 2022-02-14 09:12:19 -08:00
Pragmatic Software d609206be8 compiler_vm: refactor some things related to vm-exec 2022-02-13 22:01:06 -08:00
Pragmatic Software 1326b0ac5f compiler_vm: major refactor to support VM sockets (AF_VSOCK)
VM socket communication is superior to VM serial communication in
every way. Unfortunately at this time only Linux supports them.
Fortunately, that's 99% of PBot's userbase.

If you're not using Linux or if you're using an older Linux that
does not support VM sockets, the PBot VM scripts will gracefully
fallback to using the serial connection. You may explicitly
disable VM socket connection attempts by setting PBOTVM_CID=0.
2022-02-12 16:06:04 -08:00
Pragmatic Software 563dc8c70a compiler_vm: add-serials now uses HEREDOC for templating 2022-02-10 19:12:23 -08:00
Pragmatic Software df5e288aef compiler_vm: add-serials can be configured with env 2022-02-10 16:30:11 -08:00
Pragmatic Software d2269a3ca6 compiler_vm: more refactoring to prepare to handle multiple connections 2022-02-10 10:58:56 -08:00
Pragmatic Software 1c010fe223 compiler_vm: guest-gdb no longer attempts to print undefined functions 2022-02-08 12:12:32 -08:00
Pragmatic Software 871327efb2 compiler_vm: update comments 2022-02-08 10:44:50 -08:00
Pragmatic Software 31aa1d5869 compiler_vm: simplify vm-client; move -lang option to vm-exec 2022-02-08 09:55:00 -08:00
Pragmatic Software 85b9aaddf8 compiler_vm: refactor vm_server 2022-02-07 20:33:24 -08:00
Pragmatic Software c488b912d2 compiler_vm: update PBOTVM_SERIAL comment 2022-02-06 20:16:37 -08:00
Pragmatic Software f4a665ef5d compiler_vm: restore default serial TCP port 2022-02-06 20:13:13 -08:00
Pragmatic Software 7916930816 compiler_vm: various host improvements
* VM scripts can now be configured via environment variables:

  PBOTVM_DOMAIN, PBOTVM_TIMEOUT, PBOTVM_SERVER, PBOTVM_SERIAL,
  PBOTVM_HEART, PBOTVM_NOREVERT
2022-02-06 20:01:56 -08:00
Pragmatic Software 6b93005808 Increase indentation size 2022-02-06 19:32:34 -08:00
Pragmatic Software 46fdd01ccd compiler_vm: make guest debugging output less verbose 2022-02-06 11:33:21 -08:00
Pragmatic Software f0dbf8c33a compiler_vm: add ulimits; fix print_last_statement() 2022-02-06 00:24:04 -08:00
Pragmatic Software 0626397dbf Replace -ggdb with -gdwarf-2 so gdb works better
Some recent changes in the default `gdb` debugging format has broken
some gdb functionality, notably the `info macro` command.

Specifying the `dwarf-2` format restores this functionality.
2022-02-04 13:57:09 -08:00
Pragmatic Software 41359b0c84 Minor clean-up 2022-01-31 09:12:11 -08:00
Pragmatic Software a5e5dd5533 compiler_vm: update vm-client 2022-01-29 19:23:36 -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 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 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
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 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