Picol  Timeline

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

154 check-ins using file ABOUT.txt version 1aa7b38b5d

2024-08-08
09:35
help.pcl: Return a list of `{result number}` instead of just a number from `match-bracket`. Avoid interpreting a number differently based on its sign. Leaf check-in: fb19e567ce user: dbohdan tags: trunk
07:15
shell: Switch from linenoise to bestline. Bestline has history search and other improvements. Replace `PICOL_SHELL_LINENOISE` with generic `PICOL_SHELL_LINE_EDIT` in case of future changes. Rename the binary to `picol-line-edit`. check-in: 55e2a82d3f user: dbohdan tags: trunk
2023-11-28
18:45
CI: Replace Travis CI with GitHub Actions for Linux. check-in: f819f68aa3 user: dbohdan tags: trunk
2023-11-26
09:47
appveyor.yml: Do not try to upload to Bintray. check-in: 89ce6ec405 user: dbohdan tags: trunk
09:21
picol.h: Incorporate changes suggested by srtech in [ead4f8c4b0c44235]. Bump the version to 0.6.1. check-in: 0a2fdb0984 user: dbohdan tags: trunk, version-0.6.1
2021-04-17
08:05
Makefile: add $(DESTDIR) before $(PREFIX) per request. check-in: 966294d7f9 user: dbohdan tags: trunk, version-0.6.0
07:55
examples/privdata.c: add more tests. check-in: a5fe71f1c1 user: dbohdan tags: trunk
07:49
Make PICOL_EVAL_BUF_SIZE part of the configuration. check-in: 9f4f9d7bdc user: dbohdan tags: trunk
07:47
picol.h: Rewrite the top comment. Reformat long lines to be under 80 characters. Make the comments' phrasing more consistent. check-in: 280df39eb3 user: dbohdan tags: trunk
2021-04-16
21:14
Makefile: add the target "upx". check-in: 6ca6596bfd user: dbohdan tags: trunk
20:50
Fix a segfault when deleting an alias. Introduce reference counting for procs (procargument lists and bodies) as part of the fix. Implement new functions picolFreeCmd() and picolRenameCmd(). Do not reuse an existing list item when renaming a command: that code is too difficult to understand and debug; delete and recreate the command instead. Reorder struct fields to put "next" pointers first. I don't plan on reordering them again, though I may add more fields. Add more tests in examples/privdata.c. check-in: 87fe2ef71f user: dbohdan tags: trunk
15:48
Makefile: add an "install" target check-in: 9afc5909d9 user: dbohdan tags: trunk
15:41
Add the field "isproc" to picolCmd (like in Jim Tcl). Do not free the privdata when deleting native code commands. Add a privdata example. Bump the version 0.6.0. check-in: 020d98ff48 user: dbohdan tags: trunk
2021-04-07
08:02
Build with -Wextra. Fix the -Wextra warnings. Bump the version to 0.5.1. check-in: fb70c55516 user: dbohdan tags: trunk, version-0.5.1
06:54
Rename the function "picolLAppend" to "picolLappend" for consistency. check-in: 425c60de51 user: dbohdan tags: trunk, version-0.5.0
06:47
Fix building with arrays disabled. check-in: 0d3a33aa59 user: dbohdan tags: trunk
06:42
Rename the small stack macro to "PICOL_SMALL_STACK" for consistency with other macros. Do not redefine it if defined. Run the tests with it both on (default) and off. Bump the version to 0.5.0. check-in: bbbff59daf user: dbohdan tags: trunk
06:40
shell.c: Set the history length to 1000 lines. check-in: 817bbc3d5b user: dbohdan tags: trunk
06:34
parray.pcl: Do not create an example array. check-in: b0ab87fa31 user: dbohdan tags: trunk
2021-04-04
15:35
Add option to use heap allocation in recursive eval functions to reduce stack size requirements. check-in: 7f85d80f94 user: Stekke tags: trunk
15:06
Free the interpreter in the shell application check-in: 2a523ef8dd user: Stekke tags: trunk
2021-03-27
22:29
picolFreeInterp(): Add function to free entire interpreter data structure. check-in: c57084d5cb user: Stekke tags: trunk
18:36
picolIsDirectory(): Use only with PICOL_FEATURE_IO, along with sys/stat.h header check-in: 16eac3ff1c user: Stekke tags: trunk
17:43
PicolValidPtrRemove(): Remove extraneous if check. check-in: 1e29d52ddc user: Stekke tags: trunk
17:28
Remove extraneous ';'. check-in: 7ec1ca9c62 user: Stekke tags: trunk
15:24
Fix buffer underflow read when command output is empty. check-in: 41e26522b9 user: Stekke tags: trunk
2020-07-14
08:33
picol.h: Clarify a comment and improve formatting. check-in: 824d95ebfa user: dbohdan tags: trunk, version-0.4.0
08:23
picolSource(): Initialize the buffers. check-in: a424361c16 user: dbohdan tags: trunk
08:20
picolGetVar2(), picolSetVar2(): Rename the parameter glob to "global". check-in: 192a25a52b user: dbohdan tags: trunk
08:08
[exit]: Replace atoi() with PICOL_SCAN_INT(). check-in: fa8ce8bf94 user: dbohdan tags: trunk
07:54
picolCallProc(): When we can't allocate a callframe, print an error to stderr and do not exit(). check-in: bbe66803b7 user: dbohdan tags: trunk
07:51
picolValidPtrRemove(): Fix a memory leak. check-in: 8ef82f99f5 user: dbohdan tags: trunk
07:50
picolEval2(): Fix a memory leak. check-in: e9df06ed23 user: dbohdan tags: trunk
07:24
Rename the type picol_Func to picolFunc. check-in: bd546c66af user: dbohdan tags: trunk
07:23
Standardize the return values where possible. (Currently some functions return a zero int for success and some for failure.) Add two new types: picolResult and picolBool. Have Picol commands return picolResult. Rename picolValidPtrAdd() to picolValidPtr(). check-in: 1481ef5a31 user: dbohdan tags: trunk
06:45
picol_Func: Change the type of the argv parameter to const char** like in Tcl. Propagate the const qualifier to the signatures of Picol functions. check-in: dc212c837a user: dbohdan tags: trunk
2020-07-13
17:21
picolParseList(): Rename to "picolListHead", which is more appropriate. check-in: 81e7508564 user: dbohdan tags: trunk
17:19
picolParseList(): Rewrite the parser to fix errors in the handling of nested lists. check-in: 95b897ea96 user: dbohdan tags: trunk
15:04
picolLsort(): Scan integers with picolScanInt() instead of atoi(). check-in: 2c4999efa1 user: dbohdan tags: trunk
13:20
picol.h: Reformat some function calls with many arguments. check-in: 01b8513949 user: dbohdan tags: trunk
13:15
picol_Math(): Reformat the PICOL_ARITY2 annotations for the updated help.pcl. check-in: 22a6945057 user: dbohdan tags: trunk
12:51
picolEscape(), picolQuoteForShell(): Add a destination size parameter. picolExpandLC(): Move the destination size parameter to right after the destination parameter. check-in: 1a2d2ab454 user: dbohdan tags: trunk
12:37
picolParseList(): Add a target size parameter. check-in: b4cc57f703 user: dbohdan tags: trunk
11:41
picolErr1(): Rename to "picolErrFmt". Add a macro for backwards compatibility. check-in: 7af82f424e user: dbohdan tags: trunk
11:15
picolParser: Rename the field p to "pos". check-in: f3ba47060e user: dbohdan tags: trunk
10:27
Rename picolFileUtil() to picol_FileUtil(), picolLsort() to picol_Lsort(). check-in: 04d343d75d user: dbohdan tags: trunk
10:19
picol.h: Replace strcat() with strncat() and strcpy() with strncpy() everywhere except where unnecessary. check-in: a4caffa2ea user: dbohdan tags: trunk
10:16
picolErr(): Fix the buffer size check in PICOL_APPEND_BREAK_PICOLERR(). check-in: d0479427af user: dbohdan tags: trunk
10:15
picolReplace(): Add an output buffer size parameter. check-in: 2eb64cb6a2 user: dbohdan tags: trunk
10:14
picolConcat(): Add an output buffer size parameter. check-in: 529259ac8f user: dbohdan tags: trunk
10:11
Arrays: Give the array functions more consistent and informative names. Add buffer size arguments. check-in: 94ec76dd4c user: dbohdan tags: trunk
04:42
[string repeat]: Fix a segfault due to argument access before an arity check. check-in: da80530b87 user: dbohdan tags: trunk
04:38
[%]: Check for zero. check-in: d28f32288b user: dbohdan tags: trunk
04:35
picolList(): Add a destination buffer size argument. check-in: 5a60388254 user: dbohdan tags: trunk
2020-07-12
21:24
Return an error on a missing ']'. check-in: f879cd9c44 user: dbohdan tags: trunk
21:15
picolParseCmd(): Handle '\' at the end of the input and '\0'. check-in: 787690350d user: dbohdan tags: trunk
20:34
[info level 0]: Crash a crash at the top level. check-in: e10ecb4507 user: dbohdan tags: trunk
20:22
[proc]: Fix a segfault on no args. check-in: 0269898a1a user: dbohdan tags: trunk
19:04
examples/command.c: Increase PICOL_SOURCE_BUF_SIZE to one byte. check-in: f8efc34b49 user: dbohdan tags: trunk
18:59
picolSource(): Make the buffer size configurable at compile time. check-in: 14f37e7b92 user: dbohdan tags: trunk
16:34
picol.h: Do not use PICOL_CALLOC. Initialize structs ourselves. check-in: 41181c710c user: dbohdan tags: trunk
16:32
Makefile: Fix a typo. check-in: db76b81fd2 user: dbohdan tags: trunk
16:05
vendor/regexp.h: Fix an error message mangled by the automatic prefixing. check-in: da0136ed34 user: dbohdan tags: trunk
16:02
vendor/regexp.h: Add a prefix to the functions, macros, and types. check-in: 95c0167d0a user: dbohdan tags: trunk
12:39
Makefile.nname: Remove regexp.obj. check-in: cedc02e762 user: dbohdan tags: trunk
12:37
vendor/regexp: Convert to a header-only library. check-in: 8fbcfca936 user: dbohdan tags: trunk
12:36
picol.h: Move PICOL_MEMORY_MANAGEMENT out of PICOL_CONFIGURATION. check-in: 170f0123ed user: dbohdan tags: trunk
12:23
Make the memory allocator pluggable in picol.h and vendor/regexp.{c,h}. check-in: e2f3ee6ec4 user: dbohdan tags: trunk
2020-07-11
18:52
[string last]: Ensure the offset is less than the haystack string length. check-in: 51087b36b4 user: dbohdan tags: trunk
18:48
help.pcl: Update for the updated [string last]. check-in: f1f19e9536 user: dbohdan tags: trunk
18:44
picolValidPtrRemove(): Remove the type argument. check-in: 0056fbca72 user: dbohdan tags: trunk
18:35
picolArrDestroy(): Remove the array pointer from the list of valid pointers. check-in: 17177ae257 user: dbohdan tags: trunk
18:23
[string last]: Find matches *before* the optional index argument. Handle out-of-bounds indices in [string first]. check-in: d8728100d3 user: dbohdan tags: trunk
15:06
help.pcl: Rewrite. Actually parse PICOL_ARITY2(). check-in: 1ff6089063 user: dbohdan tags: trunk
13:52
picolHash(): Ensure the return value is not negative. This fixes a crash when using arrays with long keys. Explicitly initialize the picolArray in picolArrCreate(). Check for NULL in picolArrGet1(). check-in: fcb6f8a2f4 user: dbohdan tags: trunk
12:50
test.pcl: Add [if] tests. check-in: 18ff51281f user: dbohdan tags: trunk
12:49
picolCondition(): Replace strcat() with PICOL_APPEND(). check-in: 036c320a35 user: dbohdan tags: trunk
10:15
examples/regexp-ext.c: Add an unused submatch variable. check-in: 0882d85ac8 user: dbohdan tags: trunk
09:10
test.pcl: Add array scope tests. check-in: 77dd875fba user: dbohdan tags: trunk
09:06
[unset]: Unset global variables. check-in: fad1d14999 user: dbohdan tags: trunk
08:56
[unset]: Factor out picolUnsetVar(). check-in: 646ebc2e8b user: dbohdan tags: trunk
08:18
[for]: Return an empty string. check-in: f3b6a64a60 user: dbohdan tags: trunk
08:17
picolArrUnset(): Fix a segfault due to broken bucket traversal. check-in: ee79879ba3 user: dbohdan tags: trunk
08:12
[rename]: Free the proc's privdata (not just its elements) when we delete it. check-in: 34bfc51d76 user: dbohdan tags: trunk
2020-07-10
14:06
[string is]: Always return true for an empty string. This is necessary for Tcl 8 compatiblity. check-in: a3b5445c4a user: dbohdan tags: trunk
11:02
[string]: Allow "string is integer" as well as "string is int". check-in: a1d2c4fdb8 user: dbohdan tags: trunk
10:48
fact.pcl: Improve style. check-in: c1521de09b user: dbohdan tags: trunk
10:43
fact.pcl: Add the factorial benchmark removed from test.pcl. check-in: eee2c1b785 user: dbohdan tags: trunk
10:37
tcl_platform: Expose PICOL_MAX_LEVEL to Picol code. check-in: e1fc5a5c45 user: dbohdan tags: trunk
09:52
picol.h: Fix two -Wshadow warnings. check-in: 6b82da8ea3 user: dbohdan tags: trunk
08:27
help.pcl: Update to showcase Picol's new features. check-in: e19cdae195 user: dbohdan tags: trunk
08:26
[lsearch]: Implement the switch "-exact" and "-glob". check-in: afa8bc6d59 user: dbohdan tags: trunk
08:25
picol.h: Add the missing prototype for PICOL_COMMAND(time). Thanks to Reinhard Max. check-in: dc7cb4af37 user: dbohdan tags: trunk
2020-07-09
19:59
picolGetToken(): Indicate fallthrough. check-in: c3e30249ad user: dbohdan tags: trunk
19:53
regexp-wrapper: Fix a -Wextra GCC warning. check-in: 3f8290f9ec user: dbohdan tags: trunk
19:50
[exec]: Fix a file descriptor leak when the output of the command is too long. check-in: bcb38f0568 user: dbohdan tags: trunk
19:25
picolSource(): Fix a wrong buffer size passed to strncpy(). check-in: 0baea4109e user: dbohdan tags: trunk
19:14
picol.h: Fix -Wextra GCC warnings. This patch was contributed by Reinhard Max. check-in: 8f3e8bcda5 user: dbohdan tags: trunk
10:16
test.pcl: Run picolsh.exe instead of picol.exe in Windows [exec] tests. check-in: 17741bd7e6 user: dbohdan tags: trunk
10:11
build-mingw.cmd: Fix trying to build picolsh with Linenoise. check-in: 85d06a73f1 user: dbohdan tags: trunk
10:10
shell: Make it easier to build without Linenoise on *nix. Fix a build error when PICOL_SHELL_LINENOISE is 0. check-in: 7fcd92121f user: dbohdan tags: trunk
08:51
appveyor.yml: Package picolsh*.exe. check-in: 07526c8d87 user: dbohdan tags: trunk
08:41
Makefile.nmake: Name the shell binary "picolsh.exe". check-in: 373a22c542 user: dbohdan tags: trunk
08:23
shell: Fix saving history in the current directory. check-in: 508ab1cf3e user: dbohdan tags: trunk
08:23
picolSource(): Preserve the previous value of [info script]. check-in: b579a22476 user: dbohdan tags: trunk
08:23
examples/regexp-ext.c: Fix not instantiating the regexp wrapper implementation. check-in: 2447661e4e user: dbohdan tags: trunk
2020-07-08
20:52
Makefile.nmake: Rename "interp" to "shell". check-in: e2a82fa02d user: dbohdan tags: trunk
20:51
shell: Name the init and the history file like Tcl 8 does. Store these files in the user's home directory. Only load the init file in interactive mode. check-in: b9422f4c11 user: dbohdan tags: trunk
19:50
regexp-wrapper: Prefix macros with "PICOL_". check-in: f0fbbde550 user: dbohdan tags: trunk
19:47
interp: Rename to "shell" to match other Tcls and avoid confusion. check-in: d5a58e6022 user: dbohdan tags: trunk
19:44
interp: Implement line editing and history in the REPL on *nix. Vendor Linenoise. check-in: 74cfb61b6c user: dbohdan tags: trunk
15:28
appveyor.yml: Remove Picol version. check-in: d5543a80d1 user: dbohdan tags: trunk
15:23
[array set]: Fix a -Wformat-truncation warning. check-in: 4f4066c3c6 user: dbohdan tags: trunk
15:04
Prefix the names of function-like macros like COMMAND with "PICOL_". Bump the version to 0.4.0. check-in: 00aa74258e user: dbohdan tags: trunk
2020-07-07
19:24
test.pcl: Remove unnecessary and unused aliases for Picol commands in Tcl 8. check-in: b5707273ee user: dbohdan tags: trunk
15:10
test.pcl: Implement a glob and a regexp matching mode in [test]. Refactor tests that use [string match]. check-in: 284233add3 user: dbohdan tags: trunk
14:43
[interp]: Handle unknown subcommands. check-in: 38f31e0092 user: dbohdan tags: trunk
10:59
Makefile: Delete files with `rm -f`. check-in: 1e126fdb7c user: dbohdan tags: trunk
2020-05-28
16:03
Rename the variable "small" in the implementation of [string map]. check-in: 8ef4462dd5 user: dbohdan tags: trunk, version-0.3.10
15:59
Fix replacement of replacements in [string map]. picolReplace() is not longer used by any command, but we'll keep it. Bump the version to 0.3.10. check-in: 115ad1b53a user: dbohdan tags: trunk
2020-02-12
14:39
Reindent PICOL_SNPRINTF calls. check-in: 5fb71a5add user: dbohdan tags: trunk
2020-02-11
21:27
Replace snprintf() with the macro PICOL_SNPRINTF. Define PICOL_SNPRINTF through _snprintf_s() for old versions of MSVC. check-in: 5fd46012cf user: dbohdan tags: trunk, version-0.3.9
20:57
appveyor.yml: Bump the version. check-in: 531f12ff6d user: dbohdan tags: trunk
20:54
picolErr1(): Truncate a long "%s" argument. check-in: a4293a22e7 user: dbohdan tags: trunk
20:27
picolEval2(): Limit the length of an argument for procs. check-in: ed4a8925ab user: dbohdan tags: trunk
18:39
picolArrStat(): Add a buffer size argument. check-in: 564427f880 user: dbohdan tags: trunk
18:36
Replace sprintf() with snprintf(). check-in: 86119cf44e user: dbohdan tags: trunk
17:45
picolEval2(): Assign NULL to interp->current after free() when the script is too long. check-in: ac2cd73f3f user: dbohdan tags: trunk
17:28
interp.c: Fix the segfault on "-e" without an argument. check-in: 739abad94e user: dbohdan tags: trunk
2019-11-30
13:15
Match the [rename foo {}] error message with Tcl 8.6. check-in: 113e3cca5c user: dbohdan tags: trunk, version-0.3.8
13:05
free() the data of procs that are deleted with [rename foo {}] or replaced with [proc]. check-in: 81dfb5e98d user: dbohdan tags: trunk
12:49
picolCondition(): Fix double evaluation of conditionals of [llength] != 3 after substitution. check-in: 16f7c19d37 user: dbohdan tags: trunk
2019-11-02
09:59
appveyor.yml: Include the tag, if present, in the executable name. Bump the version. check-in: cd434d58be user: dbohdan tags: appveyor-tag-test, trunk
09:50
[file split]: Escape leading "~" with "./" in path fragments like Tcl 8.6 does. Bump the version to 0.3.7. check-in: 9042c57d02 user: dbohdan tags: trunk, version-0.3.7
2019-10-17
18:39
Allow [lreplace] "from" indexes beyond the last element again. The "list doesn't contain element" error in Tcl 8.6.6-8.6.8 was a regression. check-in: fae1ea2de3 user: dbohdan tags: trunk, version-0.3.6
16:23
appveyor.yml: Update the Tclkit URL and bump the version. check-in: d2624e86d6 user: dbohdan tags: trunk
16:13
Make [file split] treat repeated leading slashes like one leading slash. check-in: 9ae297d931 user: dbohdan tags: trunk
16:09
Make [file dirname] and [file tail] treat trailing slashes like in Tcl 8.6. Bump the version to 0.3.6. check-in: 3a6c10cd67 user: dbohdan tags: trunk
2019-02-19
07:55
vendor/regexp.{c,h}: Update the library to Git commit 32773617b3. check-in: 8c778169ee user: dbohdan tags: trunk
2018-12-05
12:52
.travis.yml: Switch to VM infrastructure. check-in: a1c5daa3bc user: dbohdan tags: trunk
2018-10-19
09:34
appveyor.yml: Bump the version to 0.3.5 check-in: 5105f95eef user: dbohdan tags: trunk
09:27
Fix [info] and [interp] with no arguments causing a segfault through the use of SUBCMD. Bump the version to 0.3.5. check-in: af010d97a8 user: dbohdan tags: trunk, version-0.3.5
2018-09-17
09:18
appveyor.yml: Include the commit in the .exe artifact filename. Update the version number. check-in: d1ecbf2863 user: dbohdan tags: trunk
09:06
Makefile: Use CFLAGS from the environment if defined. check-in: 8399c6aaac user: dbohdan tags: trunk
2018-07-31
14:36
appveyor.yml: Upload build artifacts to Bintray check-in: 521dec194d user: dbohdan tags: trunk
2018-04-21
18:07
Fix a segfault on [clock format] with no clock value. Bump the version to 0.3.4. check-in: d43555a9eb user: dbohdan tags: trunk, version-0.3.4
10:32
Process line continuation sequences in braced strings. Bump the version to 0.3.3. check-in: a4c8e399c2 user: dbohdan tags: trunk, version-0.3.3
07:03
Fix a missing word in the comment at the top of picol.h. check-in: dae858bf6b user: dbohdan tags: trunk
2017-06-05
04:48
Do not force-quote the first argument to picolQuoteForShell() on Windows. This reverses the change in v0.2.2. Bump the version to 0.3.2. check-in: 78aa441553 user: dbohdan tags: trunk, version-0.3.2
04:24
Add the command [rawexec], a version of [exec] that doesn't quote the arguments. check-in: 159a159ac9 user: dbohdan tags: trunk, version-0.3.1
04:21
Implement "elseif" clauses in [if]. check-in: e7edf1389f user: dbohdan tags: trunk
2017-06-04
13:07
Fix a regression that caused the env array/variables to be impossible to access at the top level without the "::" global qualifier. Bump the version to 0.3.1. check-in: 7f9ef02637 user: dbohdan tags: trunk
2017-05-14
05:01
examples/regexp-ext.c: Update the example's title. check-in: ef31bc9409 user: dbohdan tags: trunk
04:44
ABOUT.txt: Fit the text in 80 columns. check-in: a8352d1f9a user: dbohdan tags: trunk