📂 _devcontainer (763.00 B)
📄 devcontainer.json (763.00 B)
📂 _github (4.61 KB)
📂 workflows (4.61 KB)
📄 actions.lock (2.53 KB)
📄 gh-pages.yml (2.08 KB)
📂 apps (963.97 KB)
📂 chat (282.44 KB)
📂 _cargo (77.00 B)
📄 config.toml (77.00 B)
📂 contract (107.73 KB)
📂 tests (13.17 KB)
📂 src (12.53 KB)
📄 main.rs (12.53 KB)
📄 Cargo.toml (420.00 B)
📄 build.ps1 (232.00 B)
📄 Cargo.toml (325.00 B)
📄 build.ps1 (2.89 KB)
📄 chat_contract.rs (81.21 KB)
📄 chat_contract.spi (10.05 KB)
📄 package.spiproj (97.00 B)
📄 Cargo.lock (174.01 KB)
📄 Cargo.toml (388.00 B)
📄 build.ps1 (255.00 B)
📂 ipfs (83.85 KB)
📄 build.ps1 (192.00 B)
📄 bun.lockb (82.78 KB)
📄 index.ts (577.00 B)
📄 package.json (329.00 B)
📂 parser (368.52 KB)
📄 JsonParser.fs (4.48 KB)
📄 JsonParser.livemd (15.46 KB)
📄 JsonParser.livemd.html (114.50 KB)
📄 JsonParser.livemd.ipynb (48.21 KB)
📄 Parser.fs (8.83 KB)
📄 Parser.livemd (16.73 KB)
📄 Parser.livemd.html (126.48 KB)
📄 Parser.livemd.ipynb (33.38 KB)
📄 build.ps1 (470.00 B)
📂 perf (73.24 KB)
📄 Perf.livemd (46.26 KB)
📄 Perf.spi (26.40 KB)
📄 build.ps1 (603.00 B)
📂 scheduler (6.37 KB)
📄 Tasks.spi (5.96 KB)
📄 build.ps1 (423.00 B)
📂 spiral (149.55 KB)
📂 temp (149.55 KB)
📂 blender (1.58 KB)
📄 build.ps1 (274.00 B)
📄 build.py (1.31 KB)
📂 cube (109.16 KB)
📄 build.ps1 (2.24 KB)
📄 cube.c (19.04 KB)
📄 cube.fsx (7.86 KB)
📄 cube.lua (8.34 KB)
📄 cube.pas (10.17 KB)
📄 cube.py (9.03 KB)
📄 cube.rs (11.51 KB)
📄 cube.spi (4.77 KB)
📄 cube.ts (9.12 KB)
📄 cube.zig (17.35 KB)
📄 cube_auto.py (9.69 KB)
📄 package.spiproj (39.00 B)
📂 extension (38.23 KB)
📂 e2e (1.63 KB)
📄 extension.spec.ts (711.00 B)
📄 fixtures.ts (957.00 B)
📂 public (1.47 KB)
📄 devtools.html (52.00 B)
📄 manifest.json (1021.00 B)
📄 popup.html (366.00 B)
📄 popup.js (25.00 B)
📂 src (19.46 KB)
📄 app.rs (6.17 KB)
📄 js.rs (1.28 KB)
📄 lib.rs (449.00 B)
📄 state.rs (7.35 KB)
📄 timer.rs (4.23 KB)
📄 Cargo.toml (1.14 KB)
📄 build.ps1 (742.00 B)
📄 bun.lockb (5.17 KB)
📄 content_script.ts (1.36 KB)
📄 devtools.ts (2.58 KB)
📄 package.json (315.00 B)
📄 playwright.config.ts (960.00 B)
📄 service_worker.ts (3.34 KB)
📄 tsconfig.json (97.00 B)
📄 build.ps1 (593.00 B)
📂 examples (18.19 KB)
📂 elixir (18.19 KB)
📄 exercism.livemd (18.19 KB)
📂 lib (14.06 MB)
📂 fsharp (445.10 KB)
📄 Async.fs (6.24 KB)
📄 Async.livemd (7.85 KB)
📄 Async.livemd.html (49.18 KB)
📄 Async.livemd.ipynb (15.49 KB)
📄 AsyncSeq.fs (972.00 B)
📄 AsyncSeq.livemd (5.32 KB)
📄 AsyncSeq.livemd.html (33.59 KB)
📄 AsyncSeq.livemd.ipynb (8.76 KB)
📄 Common.fs (1.22 KB)
📄 Common.livemd (1.38 KB)
📄 Common.livemd.html (9.33 KB)
📄 Common.livemd.ipynb (3.25 KB)
📄 Common.rs (2.42 KB)
📄 CommonFSharp.fs (261.00 B)
📄 CommonFSharp.livemd (597.00 B)
📄 Common_contract.rs (2.42 KB)
📄 Common_wasm.rs (2.42 KB)
📄 FileSystem.fs (4.85 KB)
📄 FileSystem.livemd (19.23 KB)
📄 FileSystem.livemd.html (164.42 KB)
📄 FileSystem.livemd.ipynb (64.10 KB)
📄 Notebooks.livemd (134.00 B)
📄 NotebooksHtml.livemd (116.00 B)
📄 Runtime.fs (1.17 KB)
📄 Runtime.livemd (3.18 KB)
📄 Runtime.livemd.html (20.08 KB)
📄 Runtime.livemd.ipynb (6.66 KB)
📄 Testing.livemd (3.07 KB)
📄 build.ps1 (1.58 KB)
📂 math (13.63 MB)
📄 Cargo.toml (286.00 B)
📄 build.ps1 (1.33 KB)
📄 math.rs (285.16 KB)
📄 math.spi (17.67 KB)
📄 math.spi.html (6.67 MB)
📄 math.spi.ipynb (6.66 MB)
📄 package.spiproj (85.00 B)
📂 scripts (123.21 KB)
📄 build.livemd (860.00 B)
📄 build.livemd.html (40.33 KB)
📄 build.livemd.ipynb (47.19 KB)
📄 build.ps1 (144.00 B)
📄 core.ps1 (1.13 KB)
📄 dep_hyperui.ps1 (801.00 B)
📄 dep_spiral.ps1 (716.00 B)
📄 dep_spiral_extension.ps1 (3.51 KB)
📄 init.livemd (2.58 KB)
📄 init.livemd.ipynb (15.35 KB)
📄 init.ps1 (5.02 KB)
📄 init.sh (465.00 B)
📄 nbs_header.ps1 (397.00 B)
📄 outdated.ps1 (874.00 B)
📄 publish-bin.ps1 (930.00 B)
📄 publish.ps1 (201.00 B)
📄 spiral-bundle.ps1 (1.50 KB)
📄 symlinks.ps1 (253.00 B)
📄 update.ps1 (663.00 B)
📄 workflow.ps1 (455.00 B)
📂 workspace (5.44 KB)
📄 Cargo.lock (4.82 KB)
📄 Cargo.toml (637.00 B)
📄 LICENSE (33.71 KB)
📄 README.md (22.64 KB)
📄 _editorconfig (250.00 B)
📄 _gitattributes (160.00 B)
📄 _gitignore (431.00 B)
📄 _ignore (7.00 B)
📄 _markdownlint.json (39.00 B)
📄 _prettierignore (24.00 B)
📄 _prettierrc.json (297.00 B)
📄 bun.lockb (2.47 KB)
📄 flake.lock (534.00 B)
📄 flake.nix (1.12 KB)
📄 index.html (44.77 KB)
📄 package.json (307.00 B)
📄 requirements.txt (20.00 B)
📄 tsconfig.json (372.00 B)

polyglot

https://i574n.github.io/polyglot

https://polyglot.pages.dev

https://polyglot.on.fleek.co

깃허브 코드스페이스


* Temporary README drafted with ChatGPT.

Getting Started

Installation

Clone the repository:

git clone https://github.com/i574n/polyglot.git

Navigate to the directory, initialize dependencies and build the project:

cd polyglot
pwsh scripts/workflow.ps1

Links

<table>

<tr> <td>

Documentation

</td> <td>

https://i574n.github.io/polyglot

</td> </tr>

<tr> <td>

Build

</td> <td>

https://i574n.github.io/polyglot/scripts/init.livemd.html

https://i574n.github.io/polyglot/scripts/build.livemd.html

</td> </tr>

<tr> <td>

Samples

</td> <td>

https://i574n.github.io/polyglot/apps/perf/Perf.livemd.html

https://i574n.github.io/polyglot/apps/spiral/temp/cube/cube.livemd.html

https://i574n.github.io/polyglot/apps/chat/contract/chat_contract.spi.html

https://i574n.github.io/polyglot/apps/scheduler/Tasks.spi.html

https://i574n.github.io/polyglot/lib/math/math.spi.html

</td> </tr>

<tr> <td>

Social

</td> <td>

https://chat.openai.com/share/62ae3405-4d5f-4cff-a7d9-10ed67cc7cf2

https://chat.openai.com/share/1ad5a1de-ca7a-4d26-8594-f1901c56281c

https://www.tabnews.com.br/i574n/pitch-a-linguagem-de-programacao-spiral-chatgpt

</td> </tr>

</table>

Introduction

Welcome to Polyglot, an expansive repository that serves as a testament to the versatility and power of the Spiral programming language. Polyglot stands as a confluence of cutting-edge programming paradigms, showcasing the integration of functional programming with modern software development techniques. This repository is a living proof-of-concept, demonstrating Spiral’s adaptability in a variety of applications, from AI and specialized hardware programming to educational resources and interactive web applications.

Repository Overview

Polyglot is structured to illuminate the diverse capabilities of Spiral and its seamless interplay with other languages and technologies. The repository is divided into several distinct segments, each highlighting a unique aspect of Spiral’s application:

1. Specialized Hardware and AI Integration: Featuring examples of Spiral’s application in programming novel hardware platforms and AI chips, Polyglot serves as an excellent resource for those venturing into the realm of AI and hardware optimization.

2. Backend Development with Hybrid Technologies: The repository showcases the development of backends that fuse F# and Rust with Spiral, illustrating a hybrid approach that leverages the strengths of each language for optimal performance and functionality.

3. Educational and Interactive Resources: Polyglot is rich in documentation, tutorials, and interactive notebooks, making it an invaluable educational tool for both new learners and seasoned programmers looking to dive deeper into Spiral and its applications.

4. Real-World Testing and Demonstrations: The repository includes various real-world examples and test cases, providing insights into the practical applications of Spiral in complex, performance-critical environments.

Key Features

Target Audience

Polyglot is intended for a broad spectrum of users, including:

Technical Compendium

Architectural Synopsis

Polyglot exemplifies a paradigmatic shift in the utilization of the Spiral language, amalgamating it with contemporary technologies. The repository embodies a polyglot programming approach, harmonizing the functional programming tenets of Spiral with imperative paradigms of languages like Rust and Python.

Core Components

System Interoperability

Advanced Programming Techniques

Educational and Developmental Focus

Strategic Advantages and Future Implications

The Polyglot repository, by integrating the Spiral language with a range of modern programming techniques and technologies, presents a forward-thinking approach with significant long-term value. This section outlines the strategic advantages and future implications of the Polyglot approach.

Enhancing Language Ecosystem Diversity

Fostering Advanced Computational Models

Educational and Collaborative Expansion

Long-Term Impact on Software Engineering

Repository Structure

The repository structure serves not just as a file hierarchy but as a living embodiment of the literate programming concept, where the intertwining of code, documentation, and narrative aims to make software as understandable and accessible as possible.

Embracing Literate Programming in Spiral's Context

Literate programming, a methodology introduced by Donald Knuth, emphasizes the importance of writing software in a way that is understandable by humans. In the context of Spiral, this approach is taken to heart through the detailed documentation embedded directly within the codebase, manifesting not only as traditional comments but also through extensive use of notebooks (.livemd, .ipynb) and markdown files (.md) to provide context, explanations, and usage examples.

Repository Structure Overview

The repository is organized into several key directories, each serving a distinct purpose in the ecosystem of the Polyglot project:

Literate Programming and Documentation as a Paradigm

Within this structure, the use of literate programming principles is evident. The extensive documentation, both inline within code files and as separate documentation artifacts, serves to guide the reader through the project's rationale, design decisions, and implementation details. This approach fosters an environment where learning and understanding the nuances of Spiral and its applications are as integral to the repository as the code itself.

A Conduit for Clarity, Efficiency, and Innovation

The repository's structure, enriched with literate programming philosophies, underscores Spiral's unique position as a language that encourages clarity, efficiency, and innovation. By weaving documentation with code, Spiral projects like Polyglot bridge the gap between software development and narrative storytelling, making complex concepts accessible and engaging to a broader audience.

This detailed exposition of the repository's structure, highlighting its adherence to literate programming principles within the context of Spiral, offers a glimpse into the project's depth and breadth. It reflects a commitment to not only developing robust software solutions but also to crafting a rich, educational, and collaborative experience for developers, researchers, and enthusiasts alike.

Leveraging Spiral in a Unified Compilation Pipeline

The Polyglot repository, through its comprehensive utilization of Spiral within a monolithic architecture, exemplifies the profound synergy between functional programming and literate programming paradigms. This setup, far from being a mere organizational convenience, serves as a vibrant testing ground for exploring the depths of statically typed functional programming alongside intricate metaprogramming techniques.

Compilation Pipeline and Statically Typed Functional Programming

Spiral's role within the repository's architecture is pivotal, acting as the linchpin in a complex compilation pipeline that spans across various programming environments and target platforms. This pipeline, meticulously designed to leverage Spiral's compile-time features and type inference capabilities, ensures seamless integration and transformation of code across different layers of the application stack.

Metaprogramming and Compile-Time Optimizations

Metaprogramming, a cornerstone of Spiral's design philosophy, plays a crucial role in the repository's compilation strategy. Spiral's metaprogramming capabilities allow for compile-time computations and transformations, enabling a level of optimization and customization that is not readily achievable in languages with more conventional compile-time models.

Bridging Literate and Functional Programming

The integration of literate programming within this architecture amplifies the repository's technical prowess. Literate programming, in conjunction with Spiral's functional programming model, offers a narrative-driven approach to software development. This approach enhances understandability and maintainability, as the rationale and logic behind complex algorithms and data transformations are elucidated through prose and code alike.

Compilation Pipeline Summary

The Polyglot repository, through its innovative use of Spiral within a unified compilation pipeline, showcases the powerful interplay between functional programming, metaprogramming, and literate programming paradigms. This technical architecture, while serving immediate developmental needs, also offers profound insights into constructing robust, scalable, and comprehensible software systems. Spiral's role is central in this endeavor, providing the tools and paradigms necessary to navigate the complexity of modern software development while maintaining a commitment to code quality, performance, and clarity.

Conclusion

The repository’s approach, characterized by its innovative integration of Spiral with various technologies and paradigms, presents a pioneering model with substantial long-term value. It not only enhances the current software development landscape but also sets a foundation for future advancements in programming languages and computational models.

This document provides a bird’s-eye view of the Polyglot repository, encapsulating its essence as a hub for Spiral’s exploration and application. If there are specific sections or details you’d like to add or modify, please feel free to provide feedback or suggestions.

Contributing

Contributions are welcome! Please see the CONTRIBUTING.md for guidelines.

License

This project is licensed under the AGPLv3 License. See the LICENSE file for details.