Calvin Rose
b0d8369534
Increase reference accuracy of on-stack close envs.
...
Using a bitset to indicate which stack values are upvalues, we
can more accurately track when a reference to a stack value
persists after the stack frame exits.
2020-03-18 09:30:10 -05:00
Calvin Rose
bac2b74b3d
Add os/chmod.
2020-03-14 11:57:04 -05:00
Calvin Rose
77343e02e9
Fixes #304
...
Add chr macro.
2020-03-10 22:46:50 -05:00
Calvin Rose
a3d4ecddba
Address #301
...
Incorrect bounds checking and offset calculation in buffer/blit.
2020-03-08 20:44:03 -05:00
Calvin Rose
c864828735
Address #293 - wildcard to match macro.
...
The _ symbol will match any value without creating a binding.
2020-03-07 09:40:02 -06:00
Calvin Rose
e0c9910d85
Add :range-to and :down-to to loop.
...
Fully inclusive ranges are generally useful and
do not complicate implementation much.
2020-03-07 09:34:11 -06:00
Calvin Rose
e351dde651
Update CHANGELOG.md and docs for loop and pp.
2020-03-06 17:12:06 -06:00
Calvin Rose
f9e9c70b6c
Update CHANGELOG.md
2020-03-06 08:40:51 -06:00
Calvin Rose
7d26de6697
Update changelog.
2020-02-25 20:08:22 -06:00
Calvin Rose
59d288c429
Add prompt
and return
.
...
User friendly delimited continuations. While this was doable with
signals before, this does not require C and will play nicely with
existing error handling, defers, and with statements.
2020-02-23 16:46:54 -06:00
Calvin Rose
f5f3858da1
Update CHANGELOG.md
2020-02-23 14:55:21 -06:00
Calvin Rose
64e1961193
Update version strings to 1.7.1-dev.
2020-02-02 09:38:44 -06:00
Calvin Rose
f7ee8bd30d
Update to version 1.7.0.
2020-02-01 23:35:17 -06:00
Calvin Rose
6f9c9879ca
Add var-
...
We had defn-, def-, defmacro-, but no var-.
2020-01-24 22:52:28 -06:00
Calvin Rose
163e2a5b22
Add string support to %j format.
2020-01-24 08:52:27 -06:00
Calvin Rose
60304c7e27
Update CHANGELOG.md
2020-01-23 19:07:09 -06:00
Calvin Rose
68a5667a1a
Add history first and history last shortcuts.
...
Alt-, and Alt-.
2020-01-19 15:45:04 -06:00
Calvin Rose
064475cb8d
Add eachk and eachp.
...
These should make iterating over datastructures easier
without needing the loop macro.
2020-01-18 18:46:49 -06:00
Calvin Rose
9d8af7355f
Improve getline.
2020-01-18 00:30:46 -06:00
Calvin Rose
962cd7e5f5
Add when-with and if-with
...
This is useful for reading from files.
2020-01-15 22:56:40 -06:00
Calvin Rose
65be9ae095
Add defer and assert to the core.
2020-01-15 22:39:14 -06:00
Calvin Rose
f001b0a40c
Update Changelog
...
Also change how add-body in jpm works. We keep an array of thunks
instead of a single thunk.
2020-01-13 20:51:11 -06:00
Calvin Rose
f709d7eb40
Add module/add-paths
...
This should make it much easier to make custom DSLs work
well with the import system. No need to mess about with import paths,
things will just work.
2020-01-12 20:59:45 -06:00
Calvin Rose
ef02dacdb4
Update changelog.
2019-12-31 12:17:32 -05:00
Calvin Rose
52dd0f132a
Remove emscripten build.
...
Prefer using custom toolchain with amalgmated build.
2019-12-28 16:11:15 -05:00
Calvin Rose
022be217a2
Remove ==, not==, and order[<,<=,>,>=].
...
This unifies equality and comparison checking. Before, we had
separate functions and vm opcodes for comparing general values vs.
for comparing numbers, where the numberic functions were polymorphic and
had special cases for handling NaNs. By unfiying them, abstract types
can now better integrate with other number types and behave as keys.
For now, the old functions are aliased but will eventually be removed.
2019-12-28 16:04:15 -05:00
Calvin Rose
5528bca7a9
Version bump to dev version.
2019-12-28 11:58:40 -05:00
Calvin Rose
da93a73dbd
Version bump to 1.6.0.
2019-12-22 12:09:56 -05:00
Calvin Rose
e28262f5ab
Add array/fill
...
This function has similar semantics to buffer/fill.
2019-12-19 12:58:11 -05:00
Calvin Rose
94b472df64
Update jpm with show-paths
...
Update CHANGELOG.md as well.
2019-12-15 22:02:33 -06:00
Calvin Rose
bc8ee207d5
Address #219 .
...
Adds several shorthands to the C API.
2019-12-14 11:31:46 -06:00
Calvin Rose
eca42e98f6
Update CHANGELOG.md
2019-12-12 19:39:00 -06:00
Calvin Rose
f24e2f8706
Update CHANGELOG.md
2019-12-12 17:51:49 -06:00
Calvin Rose
5b9eda5e87
Add root-env
...
This makes images smaller without needing to make sure
that no references to the root environment occur in the final
image.
2019-12-12 17:25:04 -06:00
Calvin Rose
eb1988a5ae
Update CHANGELOG.md
2019-12-09 18:26:58 -06:00
Calvin Rose
4c5734c2ee
Update CHANGELOG.md
2019-12-07 10:35:40 -06:00
Calvin Rose
4a0ee5df7d
Address #215
...
Also update docs for module/expand-path.
2019-12-06 19:54:11 -06:00
Calvin Rose
77cb823719
Update CHANGELOG.md
2019-12-04 20:02:15 -06:00
Calvin Rose
11a7a7069a
Update CHANGELOG.md
2019-12-04 18:46:36 -06:00
Calvin Rose
8ca10f37bd
Update CHANGELOG.md
2019-12-04 16:51:34 -06:00
Calvin Rose
6bc400eb8c
Update CHANGELOG.md
2019-11-25 20:11:10 -06:00
Calvin Rose
bcd2089f71
Version 1.5.1
2019-11-16 17:17:13 -06:00
Calvin Rose
6b76ac3d18
Fix bug when appending buffer to self.
...
janet_to_string_b had a bug when printing buffers.
2019-11-10 14:57:09 -06:00
Calvin Rose
5681e02e0f
Update deployment and fix changelog.
2019-11-10 11:30:31 -06:00
Calvin Rose
0d2844b7c9
Update to 1.5.0
2019-11-10 10:57:18 -06:00
Calvin Rose
75d21d9f45
Update CHANGELOG.md
2019-11-09 10:05:29 -06:00
Calvin Rose
aee1687215
Add RNG functionality to the math/ module.
...
The new RNG wraps up state for random number generation, so
one can have many rngs and even marshal and unmarshal them.
Adds math/rng, math/rng-uniform, and math/rng-int.
Also introduce `in` and change semantics for
indexing out of range. This commit enforces stricter
invariants on keys when indexing via a function call
on the data structure, or the new `in` function.
The `get` function is now more lax about keys, and will
not throw an error when a bad key is used for a data structure, instead
returning the default value.
2019-11-08 17:40:04 -06:00
Calvin Rose
6ceaf9d28d
Add with-vars
...
This helps for temporarily setting vars in a safe
manner that is guaranteed not to leave vars in a bad state
(assuming that a fiber does not emit debug or use signal and
is never resumed).
2019-10-31 21:58:43 -05:00
Calvin Rose
cf19cd5292
Add the quickbin command to jpm.
...
This is useful for making one off executable scripts
without needing to set up a project.janet file.
2019-10-29 20:33:18 -05:00
Calvin Rose
03824dd9f7
Update CHANGELOG.md
2019-10-29 19:41:48 -05:00
Calvin Rose
427b2638e0
Fix startup environment.
2019-10-29 18:47:54 -05:00
Calvin Rose
b2263ed5b5
Update CHANGELOG.md
2019-10-29 17:52:41 -05:00
Calvin Rose
4149df1fca
Update CHANGELOG.md
2019-10-19 10:35:56 -05:00
Calvin Rose
8dd322c0be
Fix webclient.
2019-10-14 20:55:04 -05:00
Calvin Rose
7fd0748c19
Update to 1.4.0
2019-10-14 20:35:13 -05:00
Calvin Rose
d47b5f8c6a
Update CHANGELOG.md
2019-10-11 00:11:19 -05:00
Calvin Rose
8ee54e887f
Update changelog.
2019-10-10 19:06:16 -05:00
Calvin Rose
e9f3dc7d5c
Add varfn.
2019-10-03 20:20:42 -05:00
Calvin Rose
7910a5feef
Add compile time arity checking.
...
This should help catch a number of errors, but it
is a very shallow implementation of type checking. It will
catch some common misuses of functions at compile time
rather than runtime.
2019-09-30 19:50:42 -05:00
Calvin Rose
bcb45157a8
Update CHANGELOG.md
2019-09-24 21:25:21 -05:00
Calvin Rose
b26a7bb22a
Disallow the empty string for some string fns.
...
This will prevent these functions from being run
with empty strings, which usually produces useless
output, as the internal string search algorithm will
never "find" empty strings. This is by design, as it is
not always obvious which empty strings should be found in
the search text.
2019-09-24 13:23:18 -05:00
Calvin Rose
9d020c3ec5
Update CHANGELOG.md
2019-09-22 18:00:53 -05:00
Calvin Rose
c447e7b3a5
Update changelog.
2019-09-22 15:15:28 -05:00
Calvin Rose
7809f89dfc
1.3.1 Release
...
Small changes, mostly just fixing minor bugs.
2019-09-21 19:15:02 -05:00
Calvin Rose
940860755c
jpm: Read :lflags from meta file when linking.
...
Let us link in native code that itself neads to be linked
to native code when creating standalone executables.
2019-09-21 18:57:04 -05:00
Calvin Rose
8e427317cd
Add mean function to boot.janet
...
Update changelog.
2019-09-19 21:21:14 -05:00
Calvin Rose
39f1d81fd4
Use :length method for (length abstract)
...
Also adds the janet_lengthv API call. This is
needed because janet_length returns a 32 bit integer, where
as lengthv lets us return larger values (useful for typed arrays).
janet_mcall is an api function that should make it easier to call
a janet method from C code. It shares a similar signature with
janet_call.
2019-09-08 19:26:16 -05:00
Calvin Rose
37a943d9b5
1.3.0 Release
2019-09-05 19:33:08 -05:00
Calvin Rose
2f2b875c2a
Update CHANGELOG.md
2019-09-05 13:21:17 -05:00
Calvin Rose
7a13d24e6f
Add get-in, update-in, and freeze to core.
2019-09-05 13:11:53 -05:00
Calvin Rose
96a3104fe2
Update to 1.3.0, add jpm.1
2019-09-04 23:44:23 -05:00
Calvin Rose
97f525d069
Update CHANGELOG.md
2019-09-01 11:37:43 -05:00
Calvin Rose
58ffb9d7a5
Remove cook and path from default install
...
Instead, combine cook into jpm so we can manipulate
JANET_PATH without messing with jpm. path was moved to
and external repository, https://github.com/janet-lang/path.git
2019-08-28 20:54:31 -05:00
Calvin Rose
29054e8072
Update changelog.
2019-08-24 23:43:51 -04:00
Calvin Rose
060d11e4c2
Add Q and q formatters to buffer/format.
...
These are similar to P and p, but print values
on a single line for a much more compact version.
2019-08-24 22:53:45 -04:00
Calvin Rose
77870508de
Update CHANGELOG.md
2019-08-24 19:06:02 -04:00
Calvin Rose
78b5c94cb0
jpm updates.
...
Add better error message if no c compiler detected on windows.
2019-08-24 17:36:50 -04:00
Calvin Rose
292be33b9d
Fix some stack overflow bugs.
2019-08-19 01:19:51 -04:00
Calvin Rose
826bb1abbe
Update appveyor deployment.
2019-08-18 16:54:43 -04:00
Calvin Rose
ec62e871dd
Update to version 1.2.0.
2019-08-08 18:51:24 -05:00
Calvin Rose
ab782d8896
Add optional default value to get.
...
Also update CHANGELOG.md
2019-08-06 18:12:00 -05:00
Calvin Rose
44e752d737
Add shorthand function literals to janet.
...
These are similar to the function literals from Clojure
(also Fennel), and should make short functions for maps, filters, etc.
easier to write.
2019-08-04 12:25:52 -05:00
Calvin Rose
166862ecff
Hold off on adding file associations on windows.
2019-07-27 11:34:47 -05:00
Calvin Rose
a3a3e4c0dc
Add (dyn :executable).
...
Also remove process/args.
2019-07-27 09:31:03 -05:00
Calvin Rose
d46bcd5b8f
Update CHANGELOG.md
2019-07-26 22:47:42 -05:00
Calvin Rose
9118f2ce08
Update CHANGELOG.md
2019-07-20 16:59:11 -05:00
Calvin Rose
894877a0e3
Address issue #142
...
Also add janet_wrap_number_safe to API.
2019-07-12 07:23:24 -05:00
Calvin Rose
3928136670
Begin update to 1.1.0.
2019-07-08 18:16:17 -05:00
Calvin Rose
044fc7c461
Update jpm tool.
...
The jpm tool can now use git to download dependencies, install
packages from urls, and use a manifest file for better uninstalls.
2019-07-05 11:00:46 -05:00
Calvin Rose
d66f8333c1
Prepare for 1.0.0
2019-07-01 14:47:03 -05:00
Calvin Rose
a7f3d3436f
Update CHANGELOG.md
...
Also change `with-resource` to `with`.
2019-06-24 22:02:37 -04:00
Calvin Rose
3b51501847
Update CHANGELOG.md
2019-06-19 19:52:41 -04:00
Calvin Rose
9ba8728176
Update module system.
...
Add relative imports and path normalization. This should
help towards a more composable build/dependency system.
2019-06-18 22:10:13 -04:00
Calvin Rose
8839731951
Update changelog.
2019-06-18 15:41:48 -04:00
Calvin Rose
4adfb9f2d3
Update changelog.
2019-06-17 22:46:38 -04:00
Calvin Rose
95eb54045f
Update changelog.
2019-06-08 17:22:42 -04:00
Calvin Rose
5734e02034
Update CHANGELOG.md
2019-06-03 10:55:26 -04:00
Calvin Rose
0a9715a94c
Bump version to 1.0.0
2019-06-01 23:52:01 -04:00
Calvin Rose
26513a7a16
Update changelog
2019-05-30 19:33:09 -04:00
Calvin Rose
4867cab569
Correct changelog date.
2019-05-29 22:21:06 -04:00
Calvin Rose
bcbe42ab23
Add API version checking for modules.
...
Checking now actively implemented for dynamic modules
in a fully backwards compatible way.
2019-05-29 21:58:20 -04:00
Calvin Rose
ba0956488d
Prepare for 0.6.0 release
2019-05-29 12:19:39 -04:00
Calvin Rose
efaaead378
Update changelog
2019-05-29 11:58:41 -04:00
Calvin Rose
6c897b1a37
Add default for bindir.
2019-05-28 22:41:47 -04:00
Calvin Rose
486b80fa7b
Update changelog, change version to 0.6.0
2019-05-28 13:59:12 -04:00
Calvin Rose
840610facf
Add urlloader example.
...
Demonstrate loading files from URL.
2019-05-25 17:10:25 -04:00
Calvin Rose
82a1c8635e
Update changelog.
2019-05-24 17:14:05 -04:00
Calvin Rose
52ab9fb475
Update cook tool and headers.
2019-05-09 17:37:46 -04:00
Calvin Rose
c7dc3611bc
Prepare for 0.5.0 release
2019-05-09 13:45:19 -04:00
Calvin Rose
7a313f6038
Update CHANGELOG, string/has-suffix?|prefix?
...
string/has-suffix? and string/has-prefix? can now accept
all byte data types for both arguments.
2019-05-09 13:42:14 -04:00
Calvin Rose
88b8418253
Add simple tracing functionality to VM.
...
Also disable debugger for normal errors.
2019-05-04 15:05:00 -04:00
Calvin Rose
4fa1b28cad
Update changelog (string module)
...
Also run `make format` on code.
2019-05-04 10:11:52 -04:00
Calvin Rose
5694998382
Update changelog
2019-05-02 18:05:06 -04:00
Calvin Rose
027f106a56
Update CHANGELOG.md
...
Indicate support for longstrings with non semantic newlines.
2019-04-21 15:45:55 -04:00
Calvin Rose
513d551df6
Move print in source code to io module.
...
print now reads the dynamic binding for :out
when choosing where to write to.
2019-04-16 19:10:01 -04:00
Calvin Rose
208eb7520a
Update CHANGELOG.md and bump version.
2019-04-16 15:48:53 -04:00
Calvin Rose
7527142549
Prepare for 0.4.1 release
2019-04-14 11:42:41 -04:00
Calvin Rose
53c7f2eedd
Add more os module functions.
2019-03-28 23:23:58 -04:00
Calvin Rose
37e6ea0a23
Update changelog
2019-03-24 15:11:00 -04:00
Calvin Rose
c045eadefa
Update changelog.
2019-03-23 22:16:12 -04:00
Calvin Rose
687a3c91f5
Add array/remove and update CHANGELOG.
2019-03-08 10:24:21 -05:00
Calvin Rose
a61b59be87
Mark release for 0.4.0
2019-03-08 00:56:19 -05:00
Calvin Rose
91f3c17a5b
Update CHANGELOG.md
2019-03-08 00:54:53 -05:00
Calvin Rose
b3401381fa
Update CHANGELOG.md
2019-02-21 20:40:13 -05:00
Calvin Rose
811b1825cb
Remove tuple/append and tuple/prepend.
...
Use the splice special instead.
2019-02-20 21:08:54 -05:00
Calvin Rose
6af5800d21
Add -m option to command line
...
The -m option set the default system path for finding libraries
for that invocation of Janet.
2019-02-18 15:11:59 -05:00
Calvin Rose
c715912ea3
Update changelog.
2019-02-16 21:57:47 -05:00
Calvin Rose
c6f032340a
Update CHANGELOG.md
2019-02-16 17:55:08 -05:00
Calvin Rose
1f91ee30fe
Make require simpler and module/find more useful.
...
This replaces a lot of the functionality in require by moving
it to module/find. module/native-paths and module/image-paths are also
merged into the one module/paths to make it easier to extend. This of
course breaks some of the less important API - module/native-paths no
longer exists.
2019-02-16 13:21:29 -05:00
Calvin Rose
9e6b1d1b16
Add images.
...
Images are precompiled libraries. They can be created programmatically
via the `write-image` function and then loaded with `require` or
`import`. They can also be run by the command line tool - you must
specify the path to the image without the .jimage extension.
2019-02-15 18:56:41 -05:00
Calvin Rose
1244e2e93b
Update changelog
2019-02-08 13:45:04 -05:00
Calvin Rose
8343c9edd1
Update example to use API.
2019-02-05 19:49:10 -05:00
Calvin Rose
74e1a3273f
Add method syntax to parser.
2019-02-05 19:43:41 -05:00
Calvin Rose
4bcf6565cd
Add parser/insert and bump to 0.4.0
2019-01-31 14:48:28 -05:00
Calvin Rose
cb3b9dd76f
Update changelog an fix typos.
2019-01-31 10:09:34 -05:00
Calvin Rose
c333cbfa55
0.3.0
2019-01-26 21:40:04 -05:00
Calvin Rose
f72aa64f41
0.3.2
2019-01-26 21:36:29 -05:00
Calvin Rose
872d03ae1d
Update for version 0.4.0.
...
Version 0.3.0 never really happened, as no release
binaries were ever generated.
2019-01-26 20:46:40 -05:00
Calvin Rose
4d81fbc238
Add a changelog.
2019-01-22 15:23:42 -05:00