{"id":13411487,"url":"https://github.com/simonjwright/tcladashell","last_synced_at":"2025-03-14T17:30:54.250Z","repository":{"id":58932202,"uuid":"237082633","full_name":"simonjwright/tcladashell","owner":"simonjwright","description":"Ada binding to Tcl/Tk. Note, the copyright is GPL 2.0 + GMGPL","archived":false,"fork":false,"pushed_at":"2023-02-26T21:08:15.000Z","size":1348,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"alire","last_synced_at":"2025-03-10T16:55:22.638Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ada","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/simonjwright.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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":"2020-01-29T21:07:46.000Z","updated_at":"2024-07-15T12:20:15.000Z","dependencies_parsed_at":"2024-05-03T02:54:02.471Z","dependency_job_id":"12ae29ff-df5b-4ce6-a490-4efc44493cf7","html_url":"https://github.com/simonjwright/tcladashell","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonjwright%2Ftcladashell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonjwright%2Ftcladashell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonjwright%2Ftcladashell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonjwright%2Ftcladashell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simonjwright","download_url":"https://codeload.github.com/simonjwright/tcladashell/tar.gz/refs/heads/alire","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243618633,"owners_count":20320269,"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-07-30T20:01:14.009Z","updated_at":"2025-03-14T17:30:53.471Z","avatar_url":"https://github.com/simonjwright.png","language":"Ada","funding_links":[],"categories":["Bindings","Libraries"],"sub_categories":["Misc","Bindings to Other Languages"],"readme":"# Tcl Ada SHell #\n\nTcl Ada SHell (Tash) is an Ada binding to Tcl/Tk.\n\nIts purpose is to\n\n* allow a Tcl program to use Ada in place of C to implement Tcl commands where additional execution speed, more complex data structures, or better name space management is needed, and\n\n* support the rapid development of Platform-Independent Graphical User Interfaces via Tk.\n\n## Installation and usage ##\n\nThis branch is designed to be used with [Alire](https://alire.ada.dev/docs/#introduction).\n```\nalr init --bin my_project\ncd my_project\nalr with tash\n```\n\n## Licensing ##\n\nThe software is released under the GPL Version 2, with the following additional permission:\n\n\u003eAs a special exception, if other files instantiate generics from this unit, or you link this unit with other files to produce an executable, this unit does not by itself cause the resulting executable to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the executable file might be covered by the GNU Public License.\n\n## Skinny Tcl Binding ##\n\nTASH includes both skinny and medium bindings to Tcl. The skinny binding is a direct translation of the public Tcl interface, `tcl.h`. It is implemented in the Ada package `Tcl`. It includes all the definitions in `tcl.h`, both functions and data types. All data types are implemented with Ada equivalents from `Interfaces.C`. All functions take C data types and use return codes for status information.\n\n## Medium Tcl Binding ##\n\nIn addition to the skinny binding, TASH provides a medium binding to Tcl. This binding replaces C data types with Ada types (e.g. `String` is used in place of `Interfaces.C.Strings.chars_ptr`), uses exceptions in place of return codes and uses generic packages to implement Tcl `clientdata` types.\n\n## The TASHELL Interpreter ##\n\nThe Tcl distribution includes a Tcl shell interpreter, named `tclsh`. The TASH binding derives its name from the Ada version of the Tcl shell interpreter: Tcl Ada SHell. Just like `tclsh`, `tashell` reads and interprets a Tcl script. It is also a good starting point for building a custom Tcl interpreter in which new Tcl commands are implemented in Ada rather than C.\n\nAn early paper describing the rationale of the design of TASH is available in several different formats in the docs directory.\n\n## Skinny Tk Binding ##\n\nTASH includes both skinny and medium bindings to Tk. The skinny binding is a direct translation of the public Tk interface, `tk.h`, and is implemented in the Ada package, `Tcl.Tk`.\n\n## Medium Tk Binding ##\n\nAn early, experimental medium binding to Tk is provided in the Ada package, `Tcl.Tk.Ada`. This binding does not yet support all Tk widgets.\n\n## The TWASHELL Interpreter ##\n\n`twashell` is the Tcl Windowing Ada SHell. It is the Ada version of the Tcl/Tk `wish` program. Just like `wish`, it reads and interprets a Tcl/Tk script. It is also a starting point for building a custom Tcl/Tk interpreter in which new Tcl/Tk commands are implemented in Ada rather than C.\n\nAn early paper describing how `twashell` is a Platform-Independent toolkit for development of Graphical User Interfaces is available in several different formats in the docs directory.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimonjwright%2Ftcladashell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimonjwright%2Ftcladashell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimonjwright%2Ftcladashell/lists"}