152 Commits

Author SHA1 Message Date
c3bdce74a9 MAINT: cargo fmt. 2020-04-26 12:19:06 -04:00
c1414bdde4 DEV: Removing gratuitous use of Rc.
It was unnecessary once I better understood the ownership
model and it had a significant performance cost. Removing
it brought the runtime for the integration tests down from
an average of 6 seconds to less than a second on my laptop.
2020-01-04 11:47:00 -06:00
13f0749ac8 FIX: v0.7.0 completely broke stdlib loading. 2019-12-09 20:11:42 -06:00
632019ac18 DEV: Implement primitive casting. 2019-11-11 20:06:17 -06:00
Jeremy Wall
392050d9f4 DEV: Don't output the welcome message if we aren't interactive. 2019-11-11 18:15:27 -06:00
7e3e598423 Merge branch 'master' into bytecode 2019-11-09 19:42:34 -06:00
6f714e6583 DEV: Canonicalize is never the right thing on windows. 2019-11-09 15:39:32 -06:00
27011769dd DEV: respect strict in our bytecode interpreter 2019-11-09 15:07:46 -06:00
aecb1d571e DEV: Get rid of the MemoryCache implmentation. 2019-11-09 14:38:14 -06:00
34636a1743 MAINT: cargo fmt 2019-11-03 14:20:25 -06:00
31d76ec733 MAINT: Unused variables and import cleanups 2019-11-02 11:12:17 -05:00
e058088a17 DEV: Working repl; 2019-10-17 17:58:03 -05:00
d092fba5e8 DEV: More of the ucg commandline works now. 2019-10-17 17:58:03 -05:00
b3fd37a6b5 DEV: Integration tests all pass now. 2019-10-17 17:57:06 -05:00
2b64c2b4e0 DEV: The cargo test command works now. 2019-10-17 17:57:06 -05:00
3017ced8d9 DEV: A while raft of unit test fixes for error reporting mostly. 2019-10-17 17:57:06 -05:00
e256abfee6 DEV: Plugin the VM to our FileBuilder.
Most of the tests do not yet pass and the main.rs doesn't compile
but we are snapshotting here so we can start fixing unit tests
before we hook directly into the main.rs.
2019-10-17 17:57:06 -05:00
9f31a16b93 DEV: A first pass at the runtime.
Minus the actual compiling of a file in imports.
2019-10-17 17:57:04 -05:00
a7aab10723 DEV: The beginnings of a runtime for the opcode vm. 2019-10-17 17:57:04 -05:00
b6c208fb97 REFACTOR: Keep the bytecodes in memory
This will help us implement functions and modules.
Also move each of the operations into a separate method.
This will help the readability of our run method.
2019-10-17 17:57:03 -05:00
d4b7bdcd46 DEV: Basic primitives and operations on them in a VM Stack Machine. 2019-10-17 17:57:03 -05:00
Jeremy Wall
cd4fdfb9be DEV: Fix bug in eval command when you don't specify an input file. 2019-08-12 11:40:51 -05:00
7e88ed4d84 FIX: deprecated and unsafe code revealed by 1.36 rust release. 2019-07-11 14:53:11 -05:00
f349293400 FEATURE: Support a convert expression. 2019-06-20 19:28:20 -05:00
85f239a566 REFACTOR: Error handling to use BuildError throughout.
Also removed more extraneous error output.

Contributes toward issue #45
2019-05-29 18:58:13 -05:00
07d132bebc CLEANUP: an errant debug printf... 2019-05-28 20:50:50 -05:00
c5d608216a FEATURE: Repl commands.
Adds: #help and #del

Closes #46
2019-05-28 20:29:18 -05:00
879a8d2100 DEV: for the repl use case allow changed file reimports.
Closes #47
2019-05-28 19:55:35 -05:00
1589aaf7d7 Refactor: Use trait constraints instead of a trait object for our assets cache. 2019-05-28 18:24:02 -05:00
9382563dfc DEV: Adds a Repl for ucg.
Uses a StatementAccumulator to handle the accumulation of lines
until a line terminated with a statement is encountered.

Fixes #41
2019-05-26 16:20:19 -05:00
957d0c6102 DEV: Handle comments between statements. 2019-05-21 20:54:15 -05:00
6661e02a75 DEV: Generate a comment map as part of our tokenization.
The comment_map is optional but if passed in it will be populated
during tokenization.
2019-05-20 21:05:58 -05:00
525cdd32e6 FEATURE: Use the AST Pretty Printer for TRACE and assert output. 2019-05-17 19:49:13 -05:00
ec756636b0 FEATURE: Add a TRACE pragma for assitance debugging ucg files. 2019-04-26 19:19:43 -05:00
439ebf74f3 FEATURE: Give modules a reference to self. 2019-04-24 19:13:22 -05:00
3385c775d3 MAINT: Fix small comment inaccuracy. 2019-04-18 20:22:35 -05:00
1fbd1c0a50 FIX: Bug in dot_lookups
curr_val forms the basis of the scope search but it shouldn't be part of the
lookup expression for the field.
2019-04-18 17:36:16 -05:00
0e41a40ab3 FEATURE: Add a function to the mod binding that imports the containing package. 2019-04-16 20:09:27 -05:00
0e2e396ac3 FIX: Include source file for parsing/build errors in the std lib. 2019-04-15 22:18:39 -05:00
1f7d405a3b MAINT: Cleanup todos and unnecessary code. 2019-04-08 21:42:39 -05:00
2e38a3486e FIX: import cycle detection which was broken. 2019-03-29 10:24:07 -04:00
df8834dddc FIX: Grouped Expressions store their position properly now. 2019-03-26 20:45:33 -04:00
263e91c9f9 MAINT: Cleanup some todos and wording. 2019-03-23 21:16:30 -05:00
708f23c674 MAINT: cleanup old FIXME comment. 2019-03-21 19:53:49 -05:00
b6a7f9778c FEATURE: OS portable import and include paths.
Adds #38
2019-03-20 20:08:43 -05:00
f86d9b8ec6 FIX: Better error messages when importing.
If the path or directory doesn't exist show the invalid path in the
error message.

Fixes #37
2019-03-19 20:11:26 -05:00
40107cefb6 FEATURE: Parsing and evaluation with optional defaults in select. 2019-03-01 17:10:03 -06:00
e095cb3235 REFACTOR: AST changes to support optional defaults. 2019-03-01 16:52:08 -06:00
c8443b9181 MAINT: The great TODO cleanup. 2019-02-27 19:52:06 -06:00
d9b2c0cb00 FEATURE: out expression for modules.
issue #35
2019-02-21 20:09:47 -06:00