7f5e3ae8dc
lol oops
2023-11-03 22:59:31 -05:00
7a54230cb9
hated the styling of this
...
consistency is nice to have
2023-11-03 22:36:59 -05:00
1a7d6caec6
fix __proto object getter
2023-09-11 22:17:35 -05:00
1678194941
minor refactoring
2023-09-06 20:23:18 -05:00
3ea653b26d
added file:write() & an optional mode
param to os.open()
2023-09-06 17:29:38 -05:00
d3de4c0e66
removed more debug prints
2023-09-05 14:45:03 -05:00
d66d4807b3
removed debug prints, oops
2023-09-05 14:43:50 -05:00
1fcb35168f
fix makefile
2023-09-05 14:42:29 -05:00
611162b3be
documented the new os.open and file objects
2023-09-05 14:41:59 -05:00
b3587f48a2
added os.open(); new file object
...
eg.
```lua
local err, file = os.open("LICENSE.md")
if err then
// do error handling stuff
end
// passing "a" to read() will read the whole file
print(file:read("a"))
```
2023-09-05 14:38:24 -05:00
bf36412699
removed 'roots', replaced with a registry table
...
- removed cosmoM_addRoot
- removed cosmoM_removeRoot
- renamed cosmoV_register to cosmoV_addGlobals
- added cosmoV_addRegistry
- added cosmoV_getRegistry
- added cosmoV_setProto
- added cosmoV_isValueUserType
2023-09-05 14:35:29 -05:00
6701a63a63
capture freezeGC in CPanic
2023-09-05 02:23:31 -05:00
ffff01e9d1
build a release build for linux as well
2023-09-04 20:15:15 -05:00
89be01aaf6
even more error handling refactoring
...
removing all of these useless checks has actually made cosmoV_execute just a
lil bit faster :)
2023-09-04 20:14:53 -05:00
cc9eb4a5ec
lol oops
2023-09-01 17:16:10 -05:00
789c5210b4
switched to a better linenoise fork
...
https://github.com/msteveb/linenoise
this version has several benefits, namely win32 support :D
2023-09-01 17:12:39 -05:00
dfdd97e739
fix artifacts path
2023-09-01 14:43:20 -05:00
096d80d8df
better repl input, using linenoise
2023-08-31 23:17:13 -05:00
f7bc8e0471
include util path
2023-08-31 23:16:28 -05:00
fce568addc
whoops, wrong path to the workflow file
2023-08-30 21:30:20 -05:00
f5e75f09b9
ig that runner doesn't work lol
2023-08-30 21:28:50 -05:00
fe136f84b5
removed CERROR
2023-08-30 20:14:03 -05:00
de8cd481c3
allow manual runs
2023-08-30 20:12:06 -05:00
6654c3b91c
wrong output path for windows build
2023-08-30 20:09:06 -05:00
21f7ea5c14
oops
2023-08-30 20:03:30 -05:00
e1591ae3fd
switched from appveyor to github workflow
2023-08-30 20:02:04 -05:00
bfdd33e01d
fix vm.collect()
...
we don't freeze the vm on entry to C functions now
2023-08-26 15:03:56 -05:00
c0893b8a14
more refactoring; things seem to work fine
...
all example scripts run fine with GC_STRESS enabled
2023-08-30 12:00:52 -05:00
d30bcace9a
don't freezeGC during GC cycle
2023-08-29 23:32:25 -05:00
6a47c82179
fix more GC bugs
2023-08-29 23:21:52 -05:00
d41126e75f
fix cparse.c gc bug
2023-08-29 23:01:47 -05:00
9f19fd4f31
fix this test script
2023-08-29 16:51:04 -05:00
6126b50941
cosmoV_throw() now resets the vm stack as well
...
also a minor GC bug in cosmoO_newError was fixed.
i'm going to try to phase out cosmoM_freezeGC & friends
since that would cause hell with this new
error handling solution. the only thing still using it is the GC.
2023-08-29 16:48:38 -05:00
7fa7eb8d94
fixed minor memory leak in cparse
...
we keep track of internal values used by the parser by pushing them onto the stack
and popping them off once complete.
2023-08-29 15:27:22 -05:00
0633e87aa6
WIP: removed stale error handling
...
currently, scripts seem to run fine. however I'm a bit worried about stack related issues. maybe i'll need to reset state->top as well? but not entirely sure
2023-08-29 14:07:45 -05:00
75d27afe2c
WIP: major error handling refactoring
...
switching to setjmp instead of the really bad global 'panic' flag
2023-08-28 21:13:00 -05:00
3f39211081
minor refactoring
2023-08-25 23:34:21 -05:00
c5e4305ef8
refactored cobj.c:printObject()
...
uses obj type strings from cosmoO_typeStr
2023-08-25 21:28:41 -05:00
1a78a9ab5f
finally fixed this memory bug
...
we were accidentally tracking frees of stuff that was never
allocated lol
2023-08-25 21:22:10 -05:00
2f0f675159
more debug related refactoring
2023-08-25 20:44:24 -05:00
7c5d2f6b65
minor CTable refactoring
2023-08-25 19:57:16 -05:00
f76f2ffa92
refactoring and cleanup
...
cosmoB_loadOSLib -> cosmoB_loadOS
2023-08-24 23:36:32 -05:00
155e0829fb
minor refactoring
2023-06-03 01:39:35 -05:00
2b3825d258
implemented jump table dispatch
...
- currently only enabled on supported platforms (GNU C Compiler + Clang)
- when enabled, sped up examples/fibtest.cosmo by about 20% (avg of 11.179s prior and 8.799 after)
NOTE: malicious dumps can trivially cause crashes now by having junk function chunks
2023-06-03 01:17:28 -05:00
7bca6927a9
fixed formatting
2023-06-01 22:28:07 -05:00
d3647c161b
added vm.disassemble()
2023-06-01 19:04:12 -05:00
d27d94975e
fixed MSVC support
2023-06-01 22:22:44 -05:00
2d0e63f706
forgot to update this a while back
2023-05-28 21:16:30 -05:00
dfcf0c92b5
whoops, need to update the command to run the testsuite
2023-05-28 21:13:51 -05:00
447f874eff
update README.md
2023-05-28 21:11:52 -05:00
7b1bd1c9fc
minor usage fix
2023-05-28 20:57:53 -05:00
9537a2c7b8
major main.c refactoring
...
- now takes command line arguments:
Usage: ./bin/cosmo [-clsr] [args]
available options are:
-c <in> <out> compile <in> and dump to <out>
-l <in> load dump from <in>
-s <in...> compile and run <in...> script(s)
-r start the repl
2023-05-28 20:52:12 -05:00
c44dc88972
minor stack fixes
2023-05-28 12:19:52 -05:00
d581e68166
proper error handling for dump edgecases
2023-05-28 12:16:00 -05:00
2271681cec
undef macros
2023-05-28 12:03:49 -05:00
cf18bbbe54
fixed GC bug in cundump.c
2023-05-28 11:55:48 -05:00
3a872fb83f
these values can be defined at the top of the function
2023-05-28 00:08:28 -05:00
4ed1c79b50
formatting changes
2023-05-28 00:03:50 -05:00
bc6eb9b6dc
added cdump.[ch] and cundump.[ch] to makefile
2023-05-27 23:17:17 -05:00
635f31863f
cvm.c: added cosmoV_undump
2023-05-27 23:16:47 -05:00
49a7f68239
cdump.c: major refactoring; various fixes
2023-05-27 23:15:58 -05:00
8efecf71a4
cdump.c: fix instruction and line info dumping
2023-05-27 23:15:12 -05:00
395f352c6e
started cundump.c:cosmoD_undump(); minor fixes
2023-05-25 21:12:21 -05:00
65d37838cd
started cdump.c:cosmoD_dump()
2023-05-25 19:41:13 -05:00
3b13ae1624
minor refactoring and typos
2023-05-25 19:40:15 -05:00
d1a16d990c
removed stale COBJ_STREAM usage
2023-05-25 18:34:39 -05:00
0a4d36f2f4
update Docs to reflect keyword changes
2023-02-10 20:46:05 -06:00
8ac8085d20
syntax: 'var'->'let' 'function'->'func'
...
- 'var' has some weird scoping connotations with users of JS. better to change it to 'let', which will decide whether to make the variable a local or a global
- 'func' looks visually appealing lol
- some minor refactoring done in cparse.c
2023-02-09 15:58:25 -06:00
e335fd95d6
minor formatting fixes
2023-02-09 12:52:36 -06:00
b902ac90de
removed CObjStream
2023-02-09 12:42:09 -06:00
6056f8eb5b
added clang-format
2023-02-09 12:32:48 -06:00
88284a0b6e
Removed '-Werror' to the Makefile
2021-06-11 15:01:53 -05:00
Inversion
7998c2ab41
Add documentation for the OS library
2023-11-03 22:55:24 -05:00
7b5825668d
Added boilerplate for CObjStream
2021-03-20 01:44:03 -05:00
d13cc398c8
Added os.system() to the os.* library
2021-03-20 01:02:13 -05:00
012d3702bf
Updated Appveyor to test testsuite
2021-03-19 22:25:23 -05:00
d761970f17
Added minimal testsuite for IC
...
- main.c will now report errors for passed scripts
2021-03-19 22:23:04 -05:00
0e730b9c51
Added svg to README, whitelisted commits only effecting the binary
2021-03-16 15:05:20 -05:00
bff2799bb6
Added AppVeyor CI
2021-03-16 14:54:44 -05:00
07ca82f968
Added '__equal' metamethod docs
2021-02-24 12:52:31 -06:00
b545e8e5e3
Added another example script 'compare.comso'
...
- This stresses the table implementation as well as cosmoV_equals
2021-02-23 11:50:41 -06:00
55e6453589
Improved cosmoO_equals performance for strings
2021-02-23 11:49:57 -06:00
c83dca2ab2
Added '__equal' metamethod, slightly refactored cosmoO_equal
...
- ISTRING_EQUAL has been added
2021-02-20 12:42:13 -06:00
3890c9dd1e
Refactored cosmoO_equals
...
This sets up room for the '__equal' metamethod to be added
- cosmoO_equals now requires the state to be passed
- cosmoV_equals now requires the state to be passed
- cosmoT_get now requires the state to be passed
2021-02-19 17:04:23 -06:00
40739e9bea
cparse.c now throws an error on illegal statements
2021-02-19 12:47:12 -06:00
Inversion
1eec23035f
Temporary fix for possible bug
2023-11-03 22:55:19 -05:00
Inversion
c0274d1d77
Update standard library documentation
2023-11-03 22:55:14 -05:00
Inversion
fec26ac380
Add optional custom error message to assert
2023-11-03 22:55:09 -05:00
35466f691f
Added C99 support, refactored headers
2021-02-15 16:20:04 -06:00
71c8dc7e34
Added basic standard library docs
2021-02-15 14:25:08 -06:00
7a6e00be41
Added math.rad() and math.deg()
2021-02-15 14:06:43 -06:00
14b091b691
Added trig. functions to the math library
2021-02-15 14:00:26 -06:00
5c71efbe40
Added OP_POW to cdebug.c; refactored cosmoV_registerProtoObject
...
- cosmoV_registerProtoObject now walks the object list and updates the proto's for objects of the objType which have a NULL proto.
- misc. comment changes in cvm.h as well.
2021-02-13 20:08:35 -06:00
1fff6c7fe9
Added string.rep() to the string library
2021-02-13 19:07:47 -06:00
1a96e411f2
Minor Makefile fix
2021-02-11 20:35:42 -06:00
fdd0d19308
Added CMake support
...
should make integration into visual studio easier for people
2021-02-11 20:34:04 -06:00
33da88a18a
Minor cbaselib.c cleanup
2021-02-11 00:58:12 -06:00
Inversion
50b19e9f4f
Added argument type check to string.len
2023-11-03 22:55:03 -05:00
Inversion
472a0ea4c1
Updated baselib in accordance with cosmoV_readCString
2023-11-03 22:54:56 -05:00
Inversion
76574c7860
Added cosmoV_readCString for convenience
2023-11-03 22:54:51 -05:00
Inversion
8b931fa4a7
Add string.len to base library
2023-11-03 22:54:45 -05:00
Inversion
ce844dc110
Added error to the base library
2023-11-03 22:53:59 -05:00