• Stars
    star
    9
  • Rank 1,939,727 (Top 39 %)
  • Language
    Ada
  • License
    GNU General Publi...
  • Created almost 5 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Ada binding to Tcl/Tk. Note, the copyright is GPL 2.0 + GMGPL

Tcl Ada SHell

Tcl Ada SHell (Tash) is an Ada binding to Tcl/Tk.

Its purpose is to

  • 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

  • support the rapid development of Platform-Independent Graphical User Interfaces via Tk.

Installation and usage

This branch is designed to be used with Alire.

alr init --bin my_project
cd my_project
alr with tash

Licensing

The software is released under the GPL Version 2, with the following additional permission:

As 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.

Skinny Tcl Binding

TASH 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.

Medium Tcl Binding

In 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.

The TASHELL Interpreter

The 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.

An early paper describing the rationale of the design of TASH is available in several different formats in the docs directory.

Skinny Tk Binding

TASH 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.

Medium Tk Binding

An early, experimental medium binding to Tk is provided in the Ada package, Tcl.Tk.Ada. This binding does not yet support all Tk widgets.

The TWASHELL Interpreter

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.

An 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.

More Repositories

1

cortex-gnat-rts

This project contains various GNAT Ada Run Time Systems (RTSs) targeted at Cortex boards: so far, the Arduino Due, the STM32F4-series evaluation boards from STMicroelectronics, and the BBC micro:bit (v1)
Ada
60
star
2

distributing-gcc

Binary releases of GCC (native and cross) on macOS; also, the scripts/Makefiles used for producing them.
Makefile
32
star
3

building-gcc-macos-native

Scripts for building GCC on macOS
Shell
11
star
4

ews

The Embedded Web Server is designed for use in embedded systems with limited resources (eg, no disk). It supports both static (converted from a standard web tree, including graphics and Java class files) and dynamic pages. It is written in GCC Ada.
Ada
11
star
5

stack_usage

Calculates the maximum stack depth required by GCC-compiled code
Python
10
star
6

analytical-engine

An Ada 2012 emulation of Charles Babbage’s Analytical Engine
Ada
9
star
7

ACATS

The Ada Conformity Assessment Test Suite, customised for GCC.
Ada
9
star
8

ASIS

Supports building the Ada Semantic Interface Specification library and tools for FSF GCC variants. Tracks AdaCore CE releases.
Ada
8
star
9

coldframe

ColdFrame generates Ada framework code and documentation from UML models.
Ada
8
star
10

nuweb.py

Literate programming in LaTeX; programming languages of your choice
Python
5
star
11

xia

An Ada implementation of XPath 1.0.
Ada
4
star
12

dhondt

Ada implementation of D’Hondt electoral result calculator
Ada
4
star
13

alire-index.mac

Index of Alire crate versions catering for macOS idiosyncrasies
4
star
14

building-gcc-macos-arm-eabi

Scripts for building GCC on macOS as a cross-compiler to arm-eabi
Shell
3
star
15

adagoop

Generator of object-oriented parsers in Ada
Ada
3
star
16

libadalang2xml

Generates an XML representation of Ada source using libadalang.
Ada
2
star
17

asis2xml

Converts Ada sources’ ASIS representation to XML, so as to make it easier to develop reporting and transformational tools using (for example) XSLT.
Ada
2
star
18

leak_detector

Reports memory leaks in Ada programs.
Ada
2
star
19

xcode_15_fix

Xcode/CLT version 15 introduced problems for Ada programming on macOS.
Ada
2
star
20

Quaternions

An Ada library to support using quaternions.
Ada
2
star
21

macos-sdks-vs-gcc

Provides GCC 'specs' files to cope with macOS SDK policy changes
Ada
1
star
22

synchronized_output

Supports text logging from multiple tasks
Ada
1
star
23

gnat_util

Provides access to GNAT compiler internals for AdaCore utilities
Makefile
1
star
24

scripted_testing

Supports functional testing using Tcl scripts.
Ada
1
star
25

ACATS-grading

Tools for grading ACATS results, modified for Unix-like systems
Shell
1
star
26

minimal_containers

Just enough containers for ColdFrame.
Ada
1
star
27

trace_utilities

Support for presenting traceback information.
Ada
1
star
28

parallelize

Reads commands and executes them in parallel.
Ada
1
star