concat

A poorly named Python-based concatenative programming language.

https://github.com/jmanuel1/concat

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.0%) to scientific vocabulary

Keywords

concatenative concatenative-language concatenative-programming-language python stack-based
Last synced: 6 months ago · JSON representation

Repository

A poorly named Python-based concatenative programming language.

Basic Info
  • Host: GitHub
  • Owner: jmanuel1
  • License: other
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 1.38 MB
Statistics
  • Stars: 6
  • Watchers: 2
  • Forks: 0
  • Open Issues: 20
  • Releases: 1
Topics
concatenative concatenative-language concatenative-programming-language python stack-based
Created almost 10 years ago · Last pushed 6 months ago
Metadata Files
Readme License

README.md

Concat

Coverage
Status

An experimental concatenative Python-based programming language.

Examples are in the examples directory. To see the (out of date and incomplete) spec, go to http://jmanuel1.github.io/concat-spec/.

Python 3.12 required.

Development

Code formatting

Python code is formatted using Ruff through a pre-commit Git hook. To set this up in your clone of the repository, install the dev dependencies of the project (by running pip install -e .[dev], for example), and then run:

pre-commit install

Now Ruff and pre-commit should be working! Whenever you commit a Python file, Ruff will be ran on that file. If Ruff makes formatting changes, you might need to try restaging and recommiting.

Testing

If you run the tests on Windows, you might need a Rust installation for one of the tests. (The tests depend on pywinpty to use Windows pseudoterminals.)

If your Python is 32-bit, you may get Rust compile errors that make it look like the standard library is missing (in particular, E0463: rustc --explain E0463). As suggested by rustc, you can try adding the right standard library with rustup target add <target>. I used the target i686-pc-windows-msvc even though pywinpty claims to require x86_64-pc-windows-msvc to build from source. Then set the environment variable CARGO_BUILD_TARGET to i686-pc-windows-msvc and try to install pywinpty again.

Run the tests and get coverage info using coverage run -m nose2 --pretty-assert concat.tests. (Make sure you've installed the development dependencies first.)

Nota Bene: If you have concat installed globally, make sure to create and enter a virtualenv before testing, so you don't end up running the installed version.

CI Linters

To run the linters locally, use:

```pwsh

Powershell

docker run -e RUN_LOCAL=true --env-file ..github\super-linter.env -v .:/tmp/lint ghcr.io/super-linter/super-linter:latest ```

Building and uploading (on Windows)

Change the version number in setup.py. Upload will fail if you try to push an existing version.

Delete the dist directory, if it exists.

rmdir dist /S

Build source and pure Python-3 distributions.

py -3 setup.py sdist
py -3 setup.py bdist_wheel

Upload.

twine upload dist/* [-r pypitest]

Related work

For a similar idea that is more mature, check out Nustack.

Owner

  • Name: Jason Manuel
  • Login: jmanuel1
  • Kind: user
  • Location: United States
  • Company: Imagine Learning

Software developer; ASU CS, Barrett, and GCSP graduate. I like web development and programming languages.

GitHub Events

Total
  • Issues event: 4
  • Watch event: 1
  • Issue comment event: 17
  • Push event: 94
  • Pull request review event: 3
  • Pull request review comment event: 8
  • Pull request event: 34
  • Create event: 15
Last Year
  • Issues event: 4
  • Watch event: 1
  • Issue comment event: 17
  • Push event: 94
  • Pull request review event: 3
  • Pull request review comment event: 8
  • Pull request event: 34
  • Create event: 15

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 822
  • Total Committers: 1
  • Avg Commits per committer: 822.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 48
  • Committers: 1
  • Avg Commits per committer: 48.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Jason Manuel j****o@h****m 822

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 19
  • Total pull requests: 54
  • Average time to close issues: over 1 year
  • Average time to close pull requests: 7 days
  • Total issue authors: 1
  • Total pull request authors: 2
  • Average comments per issue: 0.05
  • Average comments per pull request: 0.87
  • Merged pull requests: 52
  • Bot issues: 0
  • Bot pull requests: 3
Past Year
  • Issues: 3
  • Pull requests: 39
  • Average time to close issues: N/A
  • Average time to close pull requests: 4 days
  • Issue authors: 1
  • Pull request authors: 2
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.95
  • Merged pull requests: 37
  • Bot issues: 0
  • Bot pull requests: 3
Top Authors
Issue Authors
  • jmanuel1 (19)
Pull Request Authors
  • jmanuel1 (51)
  • dependabot[bot] (3)
Top Labels
Issue Labels
enhancement (9) lsp (5) bug (4) documentation (1) type-inference (1)
Pull Request Labels
dependencies (5) enhancement (3) lsp (1) javascript (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 76 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 3
  • Total versions: 2
  • Total maintainers: 1
pypi.org: concat

An experimental concatenative Python-based programming language

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 3
  • Downloads: 76 Last month
Rankings
Dependent repos count: 9.0%
Dependent packages count: 10.0%
Average: 18.1%
Downloads: 20.1%
Stargazers count: 21.5%
Forks count: 29.8%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/python-app.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • coverallsapp/github-action master composite
  • deepsourcelabs/test-coverage-action master composite
language-concat/package-lock.json npm
  • @types/atom 1.40.11 development
  • @types/node 18.11.18 development
  • atom-ts-transpiler 1.5.3
  • typescript 4.9.4
language-concat/package.json npm
  • @types/atom ^1.40.11 development
  • @types/node ^18.11.18 development
  • atom-ts-transpiler ^1.5.3
  • typescript ^4.9.4
pyproject.toml pypi
  • astunparse >=1.3.0,<2
  • parsy >=1.3.0,<2
  • typing-extensions >=4