Commit Graph

148 Commits

Author SHA1 Message Date
Sage Vaillancourt f37969418d Add simple web server implementation.
Adjust global Environment implementation.
Example `webby.pl` is now a simple server program.
Only limit stringNObj outside of STANDALONE implementations.
Larger catObjects sizes.
Parsing files ignores semicolons inside of quotes.
2022-03-15 21:48:04 -04:00
Sage Vaillancourt b390e272a7 Remove Makefile testing code.
Revert disabled printd() to a semicolon.
2022-03-15 16:53:34 -04:00
Sage Vaillancourt 2cc97288bf Add hard-coded readline REPL.
...the library issue was not Ubuntu's fault.
2022-03-15 16:51:23 -04:00
Sage Vaillancourt a59ce1646f More comprehensive webby.pl
Allow for longer strings, but there's still another limiting element somewhere.
2022-03-15 16:03:23 -04:00
Sage Vaillancourt 1d5621923c Further flesh-out structs.
Temporarily disable http due to buggy Ubuntu libmicrohttpd.
Add a way to access their fields with `'s`.
 - Uses some fairly hacky parseAtom additions. Needs to be refined.
Add structCapacity to Environment.
Add global Environment pointer.
Use structDef indexes instead of direct pointers.
 - Easier to increase capacity this way
strcpy struct field names
2022-03-15 15:27:02 -04:00
Sage Vaillancourt 11f39bf136 Add simple webserver functionality. 2022-03-14 23:46:20 -04:00
Sage Vaillancourt 6c8ff04711 Extremely barebones struct object implementation. 2022-03-14 16:52:08 -04:00
Sage Vaillancourt e2c977e95a Finally some consistent styling.
Centralized printf/printd defines in object.h
Removed null/isList checking from FOR_POINTER_IN_LIST
2022-01-07 16:55:03 -05:00
Sage Vaillancourt 8d22bf575c Add history and ok/err functionality to REPL. 2021-12-15 14:40:49 -05:00
Sage Vaillancourt f3a69989fa Better switch functionality. 2021-12-15 14:39:13 -05:00
Sage Vaillancourt 55d39431b1 Add TYPE_SLIST.
Not yet stable, but allows manipulation of lists without immediate
evaluation.
2021-12-15 14:38:52 -05:00
Sage Vaillancourt 5261880ebb Fix test quoting. 2021-12-15 14:27:01 -05:00
Sage Vaillancourt d73247a471 Fix deleteEnv null-pointer bug. 2021-12-15 14:25:47 -05:00
Sage Vaillancourt c0ad4481bd Fix tokens.c missing-error-code bug. 2021-12-15 14:25:09 -05:00
Sage Vaillancourt d36f1bf162 Remove single-quote support for strings.
Add triple-quote support.
Switch to structs for handling errors.
2021-12-13 10:47:35 -05:00
Sage Vaillancourt 49bf4aa1a2 Add system calls and some char processing.
Color REPL error output.
Add 'clear' shorthand to REPL.
Add basic switch to lib.
2021-12-10 16:38:44 -05:00
Sage Vaillancourt 08432275c8 Correct and re-enable environment tests 2021-07-22 15:51:42 -04:00
= ea04af7b6b Remove unused BOUNDS type from PebbleObject 2021-07-22 17:08:53 +01:00
= 787aec6f95 Remove in-memory duplication of pebbles' code text 2021-07-22 14:34:26 +01:00
= 2cbe610b95 Correct FORCE_TEXT 2021-07-21 20:48:41 +01:00
= 58f73bc0f8 Simpler SIMPLE_ERRORS and new LOW_MEM FORCE_TEXT 2021-07-21 19:49:29 +01:00
= 3d8e2d30d4 Add LOW_MEM and SIMPLE_ERRORS flags for aplite.
LOW_MEM drops some functionality (like `defe`) for very low memory devices like
aplite. SIMPLE_ERRORS is enabled when compiling with LOW_MEM, and overrides the
new error-with-context functionality with older, less intensive methods.
Also marked more code for standalone compilation only.
2021-07-21 19:31:40 +01:00
= c142730837 Errors can have context to make them more useful.
External:
  Error changes.
  User windows will show string reps of all object types
Internal:
  Some re-org and renames in calc.
  Add stringNObj for more controlled string-receiving.
Note: currently aplite has a hard time with larger scripts, possibly because of
recent changes. Not sure how much can be done about it, but I'm investigating.
2021-07-21 16:26:04 +01:00
= 06ab491b1e Give result prefix its own definition 2021-07-16 01:33:17 +01:00
= e58e5aeaa9 Some renames and general cleanup.
Added spaces after `cat` `map`, etc.
2021-07-16 01:20:36 +01:00
= bdd8c3fae3 Add extra-small font for large amounts of text 2021-07-16 00:43:46 +01:00
= a6f3fc96e6 Fixed bug where all func calls require an argument
Certain I/O functions (like `inp` or `repl`) do not need arguments, but
previously all functions required at least one argument to called correctly
(i.e. `(inp 0)` or `(repl "banana")`). Now, these can be called as intended:
`(inp)` or `(repl)`.
2021-07-13 21:46:15 +01:00
Sage Vaillancourt 811e9e3dd2 Breaking: Stop `def` adding vars to higher scopes
Fixed OOP error in allocating lambda environments. Add ability to disable test
groups. Disabled forbble tests and `switch` implementation (broken by `def`
change)
2021-07-12 20:34:54 -04:00
Sage Vaillancourt ce28c84696 Slightly better error-handling in Forbble 2021-07-12 20:13:02 -04:00
Sage Vaillancourt b222df047d Only run tests if 'make' succeeded 2021-07-12 20:10:45 -04:00
Sage Vaillancourt 77cb35f961 Add newline print to lib and use it in examples 2021-07-10 23:35:05 -04:00
Sage Vaillancourt f89417ab9e Load script arguments into `args` list
For example, running "./do_math.pl 5 + 5" would define args as a list of
( /usr/bin/pl ./do_math.pl 5 + 5 ), where each of the five elements is a
string object. The arguments will also be loaded when opening the repl,
but NOT when writing  pl code directly as command-line arguments (i.e.
'./pl "(* 9 9)"').
2021-07-10 22:46:31 -04:00
Sage Vaillancourt 96a47590f1 Left-align checkmarks for valgrind testing 2021-07-05 05:32:47 -04:00
Sage Vaillancourt 5a69d5730a Add another Forbble test 2021-07-05 05:17:59 -04:00
Sage Vaillancourt 4974e87273 Disable Forbble REPL. Add Forbble-based tests 2021-07-05 05:09:32 -04:00
Sage Vaillancourt d4d1f27a63 Corrects all known memory leaks 2021-07-05 05:08:37 -04:00
Sage Vaillancourt c7d3d7f457 forbble stability and usability 2021-07-05 01:15:01 -04:00
Sage Vaillancourt 166c9d4889 Add simple 'switch' implemented in pbl 2021-07-05 01:14:39 -04:00
Sage Vaillancourt 77c9c39295 Check indexes etc for `at` 2021-07-05 01:13:59 -04:00
Sage Vaillancourt 6ec0da6353 Add anonymous lambda test 2021-07-05 00:26:29 -04:00
Sage Vaillancourt dbaf57abad Correct executable target location 2021-07-05 00:26:18 -04:00
Sage Vaillancourt c9babe439d Test display and code style tweaks 2021-07-05 00:18:14 -04:00
Sage Vaillancourt 2af48f63ca More consistent whitespace in tests.sh 2021-07-04 23:56:55 -04:00
Sage Vaillancourt 0c9c876d00 Some type-check functions. Consistent 'if' styling 2021-07-04 23:48:26 -04:00
Sage Vaillancourt 6a2e12ebfe More dense test output 2021-07-04 23:46:59 -04:00
Sage Vaillancourt 3d48c2eae0 Added `loadfile` to standalone.
Tests now manually load the library file, instead of needing it to be
installed.
2021-07-04 21:49:41 -04:00
Sage Vaillancourt cc199b0e57 Add Forbble comment 2020-11-08 16:44:53 -05:00
Sage Vaillancourt fc3fcf34ed Added missing cleanObject() call 2020-11-08 15:26:28 -05:00
Sage Vaillancourt 35f0a94f40 Add dup, rot, and over to Forbble example 2020-11-08 13:12:00 -05:00
Sage Vaillancourt fe86f7c836 Add Forbble example code
Forbble is a very, very, simple implementation of Forth, written in PebbLisp.
Forbble isn't very practical, but has been a great test-bed for finding areas
where PebbLisp is particularly lacking in features, or expressiveness.
2020-11-08 12:31:45 -05:00