Commit Graph

240 Commits

Author SHA1 Message Date
nocturn9x 875440ba8c Made print a variadic function and added clock() for benchmarking 2021-01-05 09:35:18 +01:00
Mattia 1e2227ea38
Merge pull request #27 from Productive2/master
Natives
2021-01-05 00:41:11 +01:00
Productive2 586522ce44 Added Natives
Added stdlib.nim
Added print
2021-01-05 00:32:17 +01:00
Productive2 5609b7ad20 Merge remote-tracking branch 'upstream/master' 2021-01-04 23:50:09 +01:00
Productive2 67d4b77c8f Beginning of a multibyte conversion helper 2021-01-04 23:49:30 +01:00
Mattia 554d761700
Merge pull request #26 from Productive2/master
Fixes #24 and a SetGlobals
2021-01-04 23:31:18 +01:00
Productive2 383af42d76 Fix VM's SetGlobal pop
Fix Wrong loop constants
2021-01-04 23:22:27 +01:00
nocturn9x cead00061b Added interning for compile-time strings, made gc:markAndSweep the default option in the build tool and fixed a bug with the compiler where it would not free its memory if it encountered an error 2020-12-28 10:09:52 +01:00
Productive2 b895399e01
Merge pull request #22 from Productive2/master
Fixes call frames, Op.SetLocal
2020-12-26 20:25:44 +01:00
Productive2 7d059bd50e Fixes call frames, Op.SetLocal 2020-12-26 20:05:45 +01:00
nocturn9x bfef0aa1a5 Removed redundant build.py 2020-12-26 17:10:01 +01:00
nocturn9x 1e8b4632e9 Attempt to fix function calls by using ref seqs (failed, lol). Now all math operations on nan raise a TypeError 2020-12-26 17:01:03 +01:00
nocturn9x 9e9dc3ac75 Removed a lot of redundant dereferencing in the compiler and fixed runtime objects memory leaking. Fixed some typos 2020-12-21 22:43:40 +01:00
nocturn9x d27cc60891 Moved the templates inside vm.run into separate procedures. Fixed a couple of logical mistakes and renamed SliceRange to Slice and Slice to GetItem. Added the cache optimization to other singletons (nil, nan, inf) 2020-12-21 21:53:45 +01:00
nocturn9x 18823ccf0d Fixed some of the bugs with function calls (recursion needs revision) and locals resolution. JumpIfFalse now always pops its operand even when the condition isn't met. Fixed a lot of typos inside types/jobject.nim caused by copy-paste errors and got rid of newString in favor of asStr 2020-12-21 18:37:08 +01:00
Mattia f074b491c0
Merge pull request #21 from pokurt/build-improvement
Improvements to build
2020-11-16 08:03:45 +01:00
nocturn9x 9496bea02d Minor fixes 2020-11-05 09:16:37 +01:00
nocturn9x 3c296c942d Removed default's config file 2020-11-04 07:06:51 +01:00
ポキ d008e6a6b2 Improvements to build
- removed redundant conditional, source: https://stackoverflow.com/questions/49917999/if-statements-made-redundant-by-else-statements
- replaced if with if expression, https://www.guru99.com/if-loop-python-conditional-structures.html#:~:text=What%20is%20Python%20If%20Statement,code%20for%20the%20else%20condition.
2020-11-04 07:46:47 +05:00
nocturn9x 47c5f4755e Removed test code 2020-11-02 21:46:33 +01:00
nocturn9x a38f0c3fd9 Updated README with build instructions 2020-11-02 21:40:58 +01:00
nocturn9x 78c7576880 Removed main.nim (see previous commit) 2020-11-02 21:40:28 +01:00
nocturn9x a6ef548c49 Moved main.nim to japl.nim 2020-11-02 21:39:57 +01:00
nocturn9x 6b6358d1c8 Updated build tool 2020-11-02 21:37:57 +01:00
nocturn9x 5922a21cfa Added config.nim to gitignore 2020-11-02 21:37:46 +01:00
nocturn9x b86206ee29 Improved build.py to include a custom-generated and configurable config.nim file 2020-11-02 20:06:52 +01:00
nocturn9x e57b783242 Added a simple build script 2020-10-31 13:06:03 +01:00
Mattia dd1bda12b9
Added forum link 2020-10-29 17:17:30 +01:00
nocturn9x 4241379aff Updated roadmap 2020-10-28 17:41:46 +01:00
nocturn9x dba31dfba1 (Re-)Added bitwise operators and strings multiplication 2020-10-28 17:19:41 +01:00
nocturn9x 1b8b8d9096 Type system refactoring complete, some recursion debugging. Bumped up version to 0.3.0 2020-10-27 18:59:36 +01:00
nocturn9x ef08fee976 Base structure for some methods ready 2020-10-27 14:38:28 +01:00
nocturn9x 09e543d786 Fixed typos, minor improvements, added isCallable for objects 2020-10-26 22:55:20 +01:00
nocturn9x e87096ce71 Type system refactoring partially done, the VM is now at a compilable and semi-runnable state 2020-10-26 20:29:35 +01:00
Mattia 3b67c95736
Merge pull request #18 from Productive2/master
just starting to add methods
2020-10-26 16:39:23 +01:00
Productive2 b79d7e4f7a just starting to add methods 2020-10-26 16:29:00 +01:00
Mattia 17360ab6b9
small fix 2020-10-26 13:56:13 +01:00
Productive2 fac1065799
Merge pull request #17 from Productive2/master
Minor changes
2020-10-25 18:02:05 +01:00
Productive2 f061d99215 Merge remote-tracking branch 'upstream/master' 2020-10-25 17:48:59 +01:00
Productive2 44aab6f5fc a few minor changes, so it compiles 2020-10-25 17:47:53 +01:00
Productive2 2809c6387b
Merge pull request #16 from Productive2/master
Endscope fix, more debug
2020-10-25 15:12:57 +01:00
Productive2 26f035a998 Merge remote-tracking branch 'upstream/master' 2020-10-25 15:10:32 +01:00
Productive2 08ecf2a1ad Add more compiler debug; fix endScope() 2020-10-25 15:08:26 +01:00
nocturn9x b93643e5b5 Moved object structure to a single file + random stuff idk I'm tired 2020-10-25 15:08:08 +01:00
nocturn9x 673b88f9de Huge refactoring for the type system and object structure, VM needs opcode refactoring 2020-10-25 12:45:03 +01:00
nocturn9x 823f4c622b Started to ditch value objects in favor of object pointers 2020-10-24 20:48:10 +02:00
Mattia a910445bd4
Merge pull request #14 from Productive2/master
Object refactoring 1
2020-10-24 00:07:04 +02:00
Productive2 8be057f3cc Finished moving everything to types, now it compiles 2020-10-23 18:28:39 +02:00
Productive2 73009c669c More changes to make code compilable 2020-10-23 18:17:41 +02:00
Productive2 9d13f53e6d Getting closer to compilability 2020-10-23 17:14:55 +02:00