{"id":21707777,"url":"https://github.com/flightaware/turtles","last_synced_at":"2026-02-04T23:37:01.488Z","repository":{"id":66872766,"uuid":"215554327","full_name":"flightaware/turtles","owner":"flightaware","description":"TURTLES (Tcl Universal Recursive Trace Log Execution Scrutinizer)","archived":false,"fork":false,"pushed_at":"2019-11-08T15:19:22.000Z","size":1096,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":6,"default_branch":"master","last_synced_at":"2023-04-18T10:34:10.279Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Tcl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flightaware.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-16T13:24:37.000Z","updated_at":"2023-04-18T10:34:10.279Z","dependencies_parsed_at":"2023-02-27T10:46:39.037Z","dependency_job_id":null,"html_url":"https://github.com/flightaware/turtles","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/flightaware/turtles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flightaware%2Fturtles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flightaware%2Fturtles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flightaware%2Fturtles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flightaware%2Fturtles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flightaware","download_url":"https://codeload.github.com/flightaware/turtles/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flightaware%2Fturtles/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264320949,"owners_count":23590561,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-25T22:19:15.166Z","updated_at":"2026-02-04T23:37:01.447Z","avatar_url":"https://github.com/flightaware.png","language":"Tcl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TURTLES (Tcl Universal Recursive Trace Log Execution Scrutinizer)\n\nThe TURTLES family of packages provides a pure Tcl trace injection framework\nfor recording proc call statistics including caller/callee info and timing.\nThe call records are stored in a sqlite3 database which contains a few helpful\nviews by default for understanding proc interaction and usage at a glance.\n\n## Requirements\n\nTURTLES depends on a few libraries for its operation. These dependencies were\nkept to a minimum and avoided using core flightaware packages with the goal\nof making the library as light and portable as possible.\n\nRequired Tcl packages include the following:\n\n- `Tcl` (8.5|8.6)\n- `Tclx`\n- `Thread`\n- `cmdline`\n- `platform`\n- `sqlite3`\n- `tcltest`\n\nTURTLES should work with either Tcl 8.5 or 8.6, but 8.6 is recommended.\n\nTurtles additionally requires the following programs to perform installation\nand documentation auto-generation:\n\n- `make` or `gmake`\n- `doxygen`\n\n## Installation\n\nInstallation of the library is accomplished through the use of make targets.\n\nTo install, simply type the following command:\n\n```\n    [environment variable overrides] [sudo] make install\n```\n\n### Environment Variable Overrides\n\nInstallation is configurable through a number of environment variables.\nBecause users may not wish or be able to install in a system-wide location,\nsome flexibility in this regard is provided.\n\n#### `OWNER`\n\nThe `chown` user of the installation. Default is `root`.\n\n#### `INSTALL_GROUP`\n\nThe `chown` group of the installation. Default depends on the target system.\n\n`uname -s` = `Linux`, `$OWNER` = `root`: `sudo`\n\n`uname -s` = `Linux`, `$OWNER` != `root`: first group to which `$OWNER` belongs\n\n`uname -s` != `Linux`, `$OWNER` = `root`: `wheel`\n\n`uname -s` != `Linux`, `$OWNER` != `root`: first group to which `$OWNER` belongs\n\n#### `PREFIX`\n\nThe installation path prefix. Default is `/usr/local`.\n\n#### `LIB`\n\nThe installation library path prefix. Default is `$PREFIX/lib`.\n\n#### `DOC`\n\nThe installation documentation path prefix. Default is `$PREFIX/share/doc`.\n\n\n#### `DOCDIR`\n\nThe `doxygen` output directory whence documentation is installed to `$DOC`.\n\nDefault is `./docs`.\n\n#### `TCLSH`\n\nThe Tcl shell command used for executing tests, etc. Default is `tclsh`.\n\n### Considerations\n\nNote that for some target directories `sudo` or `root` access may be required.\nThe installation will place the packages under `$LIB/turtles-0.1`.\n\nIf `doxygen` is present on the target system, the installation will also\nauto-generate documentation for the various functions defined in the packages\nin both HTML and PDF format. This documentation will be placed in the path\n`$DOC/turtles-0.1`.\n\n## Usage\n\nTURTLES is designed to add trace handlers to procs as they are defined by\nthe `proc` command. As such, it is recommended that users of the library\ninclude the `turtles` package and initialize the framework as soon as possible\nduring program execution. Make sure that the turtles installation location\nis visible to the Tcl interpreter on the target system.\n\n### Starting Traces\n\nInclusion and initialization is straightforwardly accomplished as follows:\n\n```\npackage require turtles\n::turtles::release_the_turtles ::argv\n```\n\nThe argument string variable may be replaced with any string, but most use\ncases will generally be using `::argv` so that library options can be passed\nthrough the command-line.\n\n### Stopping Traces\n\nStopping the framework is likewise straightforward:\n\n```\n::turtles::capture_the_turtles\n```\n\n### Configuration\n\nTURTLES is configured by a command line options bracketed by special delimiters,\nnamely between `+TURTLES`, which signals to the TURTLES command-line parser\nto start processing options, and `-TURTLES`, which signals to the parser to stop\nprocessing options. Note that TURTLES lies dormant until explicitly enabled.\n\nThe simplest command-line addendum to enable tracing:\n\n```\n+TURTLES -enabled -TURTLES\n```\n\nFor more detailed information, please review the namespace documentation for\n`::turtles` in `turtles.tcl`.\n\n## Contact\n\nTo report bugs or feature requests, please submit an issue under the github\nrepo at https://github.com/flightaware/turtles. For other inquiries,\nplease contact the author and maintainer, Michael Yantosca, via e-mail at\nmichael.yantosca@flightaware.com.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflightaware%2Fturtles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflightaware%2Fturtles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflightaware%2Fturtles/lists"}