Commit Graph

2776 Commits

Author SHA1 Message Date
Dianne Skoll
9624b1045c Track filename and line number where variables are defined. 2025-05-24 22:58:28 -04:00
Dianne Skoll
102748397f Remove a couple of inappropriate "free" calls. 2025-05-24 22:58:16 -04:00
Dianne Skoll
f852f7e7e5 Refactor conversion of "-" to "-stdin-" 2025-05-24 22:55:02 -04:00
Dianne Skoll
8d88192483 Keep a hash table of filenames we've seen so we don't need to strdup the current filename all over the place. 2025-05-24 22:51:16 -04:00
Dianne Skoll
a6ca571fe5 Fix indentation. 2025-05-24 22:13:47 -04:00
Dianne Skoll
2af783a58d Use isany() in preference to || operator. 2025-05-24 10:36:03 -04:00
Dianne Skoll
af2daa7a87 Use "is_constant" attribute for Var to be consistent with UserFunc. 2025-05-24 10:10:44 -04:00
Dianne Skoll
c5bc459dd9 Add "-du" debugging flag to print a list of variables that were set but never used. 2025-05-23 16:55:10 -04:00
Dianne Skoll
edf26eaa14 Add more "const" debugging messages. 2025-05-23 13:38:38 -04:00
Dianne Skoll
7e5dc26ee5 *PROPERLY* disable RUN in eval. :) 2025-05-23 12:03:09 -04:00
Dianne Skoll
4c2b6031cd Disable shell() inside an eval("...") for safety.
Based on email from Tim Chase.
2025-05-23 11:48:06 -04:00
Dianne Skoll
af8c1630c3 Add more clarification. 2025-05-23 08:56:01 -04:00
Dianne Skoll
0ec43d570c Add "const" function, which is the inverse of "nonconst" 2025-05-23 08:47:12 -04:00
Dianne Skoll
1df8b12e71 Clarification. 2025-05-23 08:42:00 -04:00
Dianne Skoll
3fb10fe946 Don't put anchors in HTML output.
Can be achieved with a REM statement:

    REM SPECIAL HTML <a id="[$T]"></a>
05.04.00-BETA-1
2025-05-23 07:36:45 -04:00
Dianne Skoll
e11dbcf52a Revert "Put anchor <a name="dN"></a> for day N's day box."
This reverts commit 398100c6e3.
2025-05-23 07:34:57 -04:00
Dianne Skoll
88cc25e53f Update release notes. 2025-05-22 21:57:14 -04:00
Dianne Skoll
0c93e045bd Bump version to 05.04.00. 2025-05-22 21:40:38 -04:00
Dianne Skoll
99e5b3f43d Document "trigbase" entry in JSON output. 2025-05-22 18:05:31 -04:00
Dianne Skoll
f0f0cec2d3 Add $Tu == triguntil() system variable. 2025-05-22 18:00:24 -04:00
Dianne Skoll
70a97a8fe5 Add trigbase() built-in function. 2025-05-22 17:44:42 -04:00
Dianne Skoll
8a6857b787 Add test to ensure recursive eval() yields error rather than segfault. 2025-05-22 15:00:46 -04:00
Dianne Skoll
95b82a4457 "eval" can itself now be recursive, so we need to guard built-in functions against recursion. 2025-05-22 14:59:08 -04:00
Dianne Skoll
8fd39e477f A bit more non-const documentation. 2025-05-22 14:44:17 -04:00
Dianne Skoll
3118f8d2a4 Add "eval()" built-in function. 2025-05-22 13:52:07 -04:00
Dianne Skoll
acf570512d Correct documentation for maximum IF nest level. 2025-05-22 10:08:34 -04:00
Dianne Skoll
cf2114e2ef Update tests. 2025-05-22 10:04:32 -04:00
Dianne Skoll
357f7105bd Better coerce error messages. 2025-05-22 10:03:32 -04:00
Dianne Skoll
e7094b71c2 Clarify FSET syntax. 2025-05-22 09:51:05 -04:00
Dianne Skoll
8a3db4cba1 Document "DUMP -c ..." 2025-05-22 09:45:04 -04:00
Dianne Skoll
b33a3191f5 Better nonconst diagnostic messages. 2025-05-22 09:38:06 -04:00
Dianne Skoll
caa900d38d Fix tests. 2025-05-22 09:35:52 -04:00
Dianne Skoll
1d3c1f006f Take care of some corner-cases of non-const tracking. 2025-05-22 09:35:18 -04:00
Dianne Skoll
633812d961 Add "-c" option to "dump" to show constness when dumping variables. 2025-05-21 23:43:40 -04:00
Dianne Skoll
ec8cae6d4b Mark a few functions as non-const that were incorrectly marked const before. 2025-05-21 23:43:26 -04:00
Dianne Skoll
5019d54379 Document a practical use of nonconst. 2025-05-21 15:50:05 -04:00
Dianne Skoll
56e4f14a2f Don't use bitfields. They don't save space and are slower. 2025-05-21 13:42:06 -04:00
Dianne Skoll
af5854d0c6 Improve diagnostic message. 2025-05-21 12:27:08 -04:00
Dianne Skoll
43d0066780 Add test for additional non-constant debugging message. 2025-05-21 12:24:44 -04:00
Dianne Skoll
de2d15009f Document all the non-constant tracking machinery. 2025-05-21 12:23:08 -04:00
Dianne Skoll
8ca5c7e56e Add test for "hush mode" in conjunction with "purge mode" 2025-05-21 11:21:24 -04:00
Dianne Skoll
bd6218d7e2 Update man page. 2025-05-21 11:21:04 -04:00
Dianne Skoll
5d822e294d Make "Hush Mode" suppress all purge-mode diagnostics.
We only get the "#!P: Expired" lines in that case.
2025-05-21 11:15:56 -04:00
Dianne Skoll
1e3657b728 Overhaul how IF/ELSE work so we can track "constant-ness" of variables.
We now keep track of whether a variable holds a "constant" value
(ie, a value that will stay the same on successive Remind runs)
so Purge Mode can be more accurate.
2025-05-20 22:11:39 -04:00
Dianne Skoll
a309af731f Minor code-formatting improvement. 2025-05-20 16:42:50 -04:00
Dianne Skoll
31c8893a2a Add tests for non-const-expression debugging output. 2025-05-20 12:03:53 -04:00
Dianne Skoll
e3a6c65983 Fix silly typo 2025-05-20 11:57:20 -04:00
Dianne Skoll
1355b99560 Document non-constant expressions. 2025-05-20 11:55:19 -04:00
Dianne Skoll
21904e708f Add "n" debugging flag to diagnose non-constant expressions. 2025-05-20 11:17:04 -04:00
Dianne Skoll
e4a6a5cf01 Properly parse unary '+' operator. It's ignored, essentially. 2025-05-17 11:33:27 -04:00