Commit Graph

104 Commits

Author SHA1 Message Date
52c8d1c95a Updated everything and moved to hard tab indentation 2025-01-08 19:20:34 +01:00
7cdfe7e3c4 Macro processing factored into Orchid functions 2025-01-08 01:34:40 +00:00
e780969c6c Gitbutler >:(
I don't understand this piece of software at all
2024-12-31 00:03:39 +01:00
3a3ae98aff Began implementing fully isomorphic macros
Like Rust's Proc macros. Now we have preprocessor recursion to worry about. I also made a cool macro for enums
2024-10-14 00:13:09 +02:00
84cbcdd4fe Removed macro facets
Macros, placeholders, etc. will all be handled by std eventually so they shouldn't appear in the protocol or the host
2024-08-22 18:05:57 +02:00
3a63894de2 New plans for macros
About to move them completely to stdlib
2024-08-18 22:57:06 +02:00
11951ede43 Lexer test mode works 2024-08-04 23:24:32 +02:00
9d35ba8040 Changes in api and upwards
- Removed out-of-stack error reporting
- Revised module system to match previous Orchid system
- Errors are now in a Vec everywhere
- Implemented atoms and lexer
- Started implementation of line parser
- Tree is now ephemeral to avoid copying Atoms held inside
- Moved numbers into std and the shared parser into base
- Started implementation of Commands
2024-07-28 23:59:55 +02:00
cc3699bbe7 bkp 2024-07-18 16:07:36 +02:00
949b3758fd Cleaned up atoms
- Atoms now use MFBI to distinguish between thin and owned atoms.
- Introduced TryFromExpr and ToExpr (formerly ToClause) from the old FFI
- Standardized on Bottom being a ProjErr, which means that there will be no RTErr
2024-07-02 00:57:11 +02:00
fc8441f080 very elegant extension API and parts of it used in std as POC 2024-07-01 20:11:22 +02:00
93867e40c6 Finally figured out how I want atoms to work 2024-06-14 19:41:08 +02:00
b1ab483d92 Merge remote-tracking branch 'origin/ipc-refactor' into ipc-refactor 2024-05-12 13:31:13 +02:00
7ad4fe96d1 Progress mostly on atom repr 2024-05-12 13:30:00 +02:00
ee823ca3c2 perftest more idiomatic 2024-05-03 12:29:57 +02:00
bc3b10674b Separated orchid-host and orchid-extension
This is an architectural change that allows me to implment specifics first and generalize along observed symmetries in orchid-base
2024-05-01 21:20:17 +02:00
aa3f7e99ab in midst of refactor 2024-04-29 22:16:35 +02:00
ed0d64d52e Almost Alpha
Massive improvements across the board.

One day I'll adopt incremental commits.
2024-02-24 00:31:00 +00:00
c279301583 Massive feature drop
- pattern matching seems to be correct
- dynamic dispatch works with the to_string example
- template strings as a last-minute addition
- interpreter revamp, virtual stack for abort safety
2024-01-29 18:26:56 +00:00
a8887227e5 Backup commit
My backspace key started ghosting. Nothing works atm.
2024-01-27 14:50:33 +00:00
f77e4fd90a October commit
- custom parser support and infra
- type-tagging and traits (untested)
- match expressions
2023-10-24 22:17:37 +01:00
c961506a3a Extended examples 2023-10-12 18:53:31 +01:00
ce34777555 Improved timer example
Also pushed other half of system::fs rename
2023-10-12 17:41:27 +01:00
ff486a5f74 FIxed the timer and the example 2023-10-12 15:01:19 +01:00
cb395da894 Fixed a tricky type erasure bug in the scheduler 2023-10-12 14:47:12 +01:00
af3e9f67fa Fixed float parsing and improved printing 2023-10-11 20:32:04 +01:00
86e520e8b8 September-october commit
- manual parser
- stl refinements
- all language constructs are now Send
2023-10-11 18:27:50 +01:00
56679dcc01 added rust-analyzer to recommendations 2023-09-24 13:00:34 +01:00
ba0b155ebd Removed foreign macros
Converted the function integration to use template
metaprogramming instead of macros.
2023-09-22 23:25:26 +01:00
7396078304 Added directfs
Added a very rudimentary file I/O system suitable for experimenting
with the language further. A better one will be designed when we have
sensible error management.
2023-09-17 16:37:39 +01:00
1078835e8b opportunistic move
should be way faster now
2023-09-16 12:57:50 +01:00
0bcf10659b Cut down on macro nonsense
- InertAtomic replaced atomic_inert! for improved tooling support
- atomic_defaults! is easier to type out than to explain in a docstring
- Changed rustfmt config to better support tiny functions such as as_any
2023-09-15 12:37:10 +01:00
3c0056c2db Generic mutation scheduling system
IO adapted to use it
Also, Atoms can now dispatch type-erased requests
2023-09-14 22:54:42 +01:00
8c866967a9 The pipeline is finally reasonably clean 2023-09-12 01:26:46 +01:00
6693d93944 Interning Orchid string literals 2023-08-19 14:35:24 +01:00
0b887ced70 Converted Interner to work with Rc-s
- Interner no longer contains unsafe code
- Tokens now hold a reference to the value they represent directly

This will enable many future improvements
2023-08-19 14:03:05 +01:00
ab0b57b1b8 Added line:col display to errors 2023-08-18 22:53:38 +01:00
c9cb1b205f Temporarily disable borked workflow 2023-08-18 21:54:24 +01:00
7e2975115f Toolchain patch 2023-08-18 21:51:56 +01:00
9186bce956 Import and export improved
- Import paths are now vname and not sym
- Imports and exports accept multiple space-delimited operators in []

as a result, we can now reliably import and export the operator *

- error reporting ergonomics
2023-08-18 21:10:29 +01:00
3fdabc29da Most files suffered major changes
- Less ambiguous syntax
- Better parser (Chumsky only does tokenization now)
- Tidy(|ier) error handling
- Facade for simplified embedding
- External code grouped in (fairly) self-contained Systems
- Dynamic action dispatch
- Many STL additions
2023-08-18 12:57:41 +01:00
751a02a1ec Basic string and binary processing
- strings are now made of graphemes
- char is no longer a literal type
- preliminary binary support
- added implicit extraction methods for primitives
- added explicit extraction method for atoms

Nothing has been tested yet
2023-07-02 23:56:54 +01:00
cce4b8f11c Various Improvements
- removed many panics from the pipeline
- extracted project and const tree to representations
- extended STL list support
- improved loops
2023-06-28 22:29:58 +01:00
79e28883db Removed a copious amount of premature Rc-s 2023-06-18 04:22:20 +01:00
aebbf51228 STL rework
- fixed lots of bugs
- overlay libraries work correctly and reliably
- the STL is an overlay library
- examples updated
2023-06-17 21:12:29 +01:00
5bb8a12fc2 Added define_fn
- updated write_fn_step to support attributes, bind names and
  explicit argument types
- added define_fn to generate write_fn_step sequences
- updated concatenate to define_fn as an example
2023-06-02 18:41:00 +01:00
01aa37b27d write_fn_step convenience macro 2023-06-01 19:10:07 +01:00
6e545be8a7 docs reference 2023-05-29 22:17:34 +01:00
c40c731138 bruh 2023-05-29 21:35:49 +01:00
5a18f14d3b More adjustments 2023-05-29 21:34:54 +01:00