Calvin Rose
9b605b27bd
Address #174 - fix string/trim
2019-11-08 08:47:37 -06:00
Calvin Rose
c5010dffb4
Print error message on bad CLI usage.
...
This was a small regression when bundling cli-main
into boot.janet.
2019-11-05 12:51:15 -06:00
Calvin Rose
026f26f05f
Improve error message in slice functions.
...
Check the first argument before trying to do range
checks.
2019-11-05 09:41:30 -06:00
Calvin Rose
cf2d3861d6
Make slice a c function.
...
This will allow future integration into the compiler
for more general destructuring.
2019-11-05 09:29:32 -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
280dca3998
Add shell.c to the amalgamation.
...
This allows easy builds of the full interpreter with no
build system.
1. Get janet.c, janet.h, janetconf.h, and shell.c in a directory. Edit
janetconf.h as desired.
2. gcc shell.c janet.c -lm -ldl -O2 -o janet (on GNU-Linux for example)
3. ./janet -h (Yay!)
2019-10-29 19:18:44 -05:00
Calvin Rose
427b2638e0
Fix startup environment.
2019-10-29 18:47:54 -05:00
Calvin Rose
2541806dc1
Fix suite7 failing when run with no docstrings.
2019-10-29 18:28:41 -05:00
Calvin Rose
0d16b9e1a1
Move init.janet into cli-main in boot.janet
...
This makes it easier to get the CLI functionality when
embedding Janet, although the main reason is the init script
is now pre-compiled to bytecode when generating the boot image.
2019-10-29 18:16:32 -05:00
Calvin Rose
45c2819068
Improve flychecking.
...
Flychecking will now work correctly with arity checking, and
will better handle imports. Well structured modules should interact
cleanly with the flychecker in a mostly safe manner, but maliciously
crafted modules can execute arbitrary code. As such, the flychecker is
not a good way to validate completely untrusted modules.
We also extend run-context with an :evaluator option to replace
:compile-only. This is more flexible and allows users to create their
own flychecker like functionality.
2019-10-27 16:15:41 -05:00
Calvin Rose
d28925fdab
Relax type checking when fuction position is nil
...
This lets the flychecker work as expected.
2019-10-24 15:17:19 -05:00
Calvin Rose
9097e36ea0
[] should evaluate to ()
...
This is consistent with most bracket tuples.
2019-10-20 14:06:28 -05:00
Calvin Rose
423b6db855
Fix memory leak with some string/ functions.
...
kmp_init leaked memory when called with an empty string.
2019-10-19 15:14:19 -05:00
Calvin Rose
bb54b940c0
Don't call fwrite with size = 0
2019-10-19 10:51:11 -05:00
Calvin Rose
8dd8af742a
Add eprintf and make printf a C function.
...
This allows some more optimizations when printing to
buffers or when output is disabled. It also makes printf
more consistent with print and prin (Same with eprintf).
2019-10-19 10:30:29 -05:00
Calvin Rose
d47804d222
Add prin, eprint, and eprin functions.
...
The print family of functions now writes output
to an optional buffer instead of a file bound to :out.
This means output can be more easily captured an redirected.
2019-10-19 09:44:27 -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
5f51476526
Remove a git attribute for linguist.
2019-10-12 22:03:34 -05:00
Calvin Rose
a18a251d16
Address some issues found in lgtm
...
Caught a few potentially issues with overflows, as well as use of
unsafe function localtime.
2019-10-10 22:59:43 -05:00
Calvin Rose
54b66a4199
Add shorthand package name support in jpm.
...
Package installation checks in the package listing if
the package name is not a url. The package listsing can be specified
via switch or env variable.
2019-10-10 18:11:45 -05:00
Calvin Rose
f9d57103f4
Improve peg error on unknown rule.
...
This helps a lot when debugging large, failing grammars.
2019-10-09 17:59:48 -05:00
Calvin Rose
f780df0aa6
Fix single threaded build option with meson.
...
By default, was building with the opposite of what was provided.
2019-10-05 20:35:11 -05:00
Calvin Rose
fede40f279
Relax requirement minimum arity of fn
...
A valid `fn` special could have only a parameter list, as
recommended by R. DuPlain.
2019-10-05 11:53:30 -05:00
Calvin Rose
e9f3dc7d5c
Add varfn.
2019-10-03 20:20:42 -05:00
Calvin Rose
944347e828
Fix formatting.
...
Run make format.
2019-09-30 20:00:29 -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
70ffe3b6bd
Add slice function to core.
...
Returns immutable slices.
2019-09-24 19:44:36 -05:00
Calvin Rose
339dea9390
Add optional argument functions to c api.
...
These are just helpers to make parameters than can be nil with a
default value easier to handle in a consitent way.
2019-09-24 19:40:49 -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
45dfc7cc96
Fix debug/break search algorithm.
2019-09-22 18:08:38 -05:00
Calvin Rose
8cda06b995
GCC seemed to not fill array of computed gotos.
...
This is expected as per the C standard, but segfaulted
unless all 255 labels were added.
2019-09-22 17:56:33 -05:00
Calvin Rose
a8afc5b81f
Sourcemapping uses line, column instead of offsets.
...
This should be friendlier to most users. It does, however, mean
we lose range information. However, range information could be
recovered by re-parsing, as janet's grammar is simple enough to do this.
2019-09-22 17:18:28 -05:00
Calvin Rose
228d045a06
Fix formatting.
2019-09-22 15:17:06 -05:00
Calvin Rose
803c3fc235
Add line, col to error messages when available.
2019-09-22 15:13:21 -05:00
Calvin Rose
7bee204390
Fix installer.
2019-09-22 13:29:34 -04: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
8e427317cd
Add mean function to boot.janet
...
Update changelog.
2019-09-19 21:21:14 -05:00
Calvin Rose
16127fc55c
Remove printf in regalloc.c
...
This should never be hit unless there is a
bug in the compiler, but should be removed.
2019-09-15 18:17:43 -05:00
Calvin Rose
97d874f16b
Fix small compiler bug (not freeing temp register).
2019-09-15 13:27:49 -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
99f147219a
Add put-in.
2019-09-05 13:19:25 -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
98eaadf2d1
Simplify peg caching further.
...
Remove the multiple caching tables we were using
and use the grammar table for caching. This works
well because we can use raw_get for checking the local cache, and normal
get fro checking the global cache.
2019-08-30 08:57:45 -05:00
Calvin Rose
54a04b5894
Fix some more recursion issues with pegs.
...
A keyword reference only counts as visited if we have
it as cached in the memoized->table, and we know it was
originally referenced from the same grammar table. If these
two conditions are true, then compilation must work correctly.
Also add janet_table_get_ex.
2019-08-29 19:56:04 -05:00
Calvin Rose
8bc8709d0e
Try to address memoization problem in pegs.
2019-08-29 19:09:43 -05: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
711fe64a51
Add backmatch operator to pegs.
...
(backmatch [tag?]) is similar to a back reference in regular expressions
(NOT to backwards capture in a peg). It only matches a pattern if
it exactly matches the text of the last capture. It does not consume
or push any captures to the capture stack.
2019-08-24 18:57:01 -04:00
Calvin Rose
292be33b9d
Fix some stack overflow bugs.
2019-08-19 01:19:51 -04:00
Calvin Rose
81789a6930
Add wasm to architectures returned by os/arch.
2019-08-18 10:08:52 -05:00
Calvin Rose
28fb2403d9
Add os/arch to core.
...
Also allow setting custom keywords for compiled
os name and architecture name.
2019-08-18 10:00:04 -05:00
Calvin Rose
54170d92db
Add some color to stacktraces in repl.
2019-08-12 19:20:01 -05: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
c84ddefc53
Merge pull request #156 from curist/take-and-drop
...
Take and drop
2019-08-06 17:35:55 -05:00
curist
5802155882
Update take/drop - while/until.
...
to be more consistent with take/drop
2019-08-06 15:33:55 +08:00
curist
ee8a68f7b2
Fix take/drop comments.
2019-08-06 14:25:09 +08:00
curist
61bbeebfba
Update take/drop implementation.
...
No more preserves input type.
2019-08-06 14:19:22 +08:00
curist
18da183ef7
Add take/drop.
2019-08-06 14:00:05 +08:00
Calvin Rose
19c6714f06
Fix MSVC warnings and errors.
2019-08-05 20:19:46 -05:00
Calvin Rose
2193193b12
Improve error message on bad method calls.
2019-08-05 19:06:58 -05:00
Calvin Rose
850a2d7f79
Allow method calls on typed arrays.
2019-08-05 18:51:53 -05:00
Calvin Rose
ca5dce5d9f
Address #155 .
...
Fix bug in janet_table_clone that leaked memory.
2019-08-05 17:52:05 -05:00
curist
d334f070a3
Update several docstrings.
2019-08-05 19:58:51 +08: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
02ce3031e9
Fix comp case with arity of exactly 5.
2019-08-03 14:53:14 -05:00
Calvin Rose
6caf8d3d56
Make comp
create variadic functions.
2019-08-03 13:57:11 -05:00
Calvin Rose
b18f1e8127
Keep count fo allocated memory via malloc.
...
We normally only track memory allocated with janet_gcalloc, but
if only a few very large normal memory blocks are allocated, the GC
will never run. Se simply need to increment a count when we allocate
memory so that the next time we enter the VM, we will be able to
run a collection if needed.
2019-07-31 00:24:13 -05:00
Calvin Rose
3e67916971
Fix MSVC warning.
2019-07-28 18:44:00 -05:00
Calvin Rose
8bbe518696
Executables linking to natives working on linux.
...
This involves a bunch of machinery in cook.janet
and even a little bit in the janet C API.
2019-07-28 13:27:20 -05:00
curist
c2ef58d880
Update math/log docstring
2019-07-28 22:18:36 +08:00
Calvin Rose
7e97687c9e
Update windows installation and automation.
2019-07-27 21:44:44 -04:00
Calvin Rose
d6a1faa380
Typos.
2019-07-27 11:36:48 -05:00
Calvin Rose
3c133bd677
Add more values for (os/which)
...
Some bsd flavors.
2019-07-27 11:29:40 -05:00
Calvin Rose
efc38b87de
Preemptive version bump.
2019-07-27 09:40:35 -05:00
Calvin Rose
a3a3e4c0dc
Add (dyn :executable).
...
Also remove process/args.
2019-07-27 09:31:03 -05:00
Calvin Rose
dfe00fee94
Building standalone binaries on linux working.
...
Mostly changes to cook and jpm. Also some
code for file associations in the windows installer, and
adding the :linux value from os/which (instead of just :posix).
2019-07-26 22:43:54 -05:00
Calvin Rose
a0e98b9aa8
Deprecate process/args and add use macro.
...
Use is a shorthand for (import module :prefix "").
process/args has been replaced by (dyn :args) at
the top level.
2019-07-20 16:57:07 -05:00
Calvin Rose
0d3986abbb
Update cook and add an install test.
2019-07-19 19:40:51 -05:00
Calvin Rose
e0fe8476aa
Address issue #143
...
Fix some logic in module/expand-path.
2019-07-15 17:39:50 -05:00
Calvin Rose
0ca0180f27
More "correct" emscripten support.
2019-07-14 16:11:00 -05:00
Calvin Rose
21a355c89f
Small changes to help with latest emscripten.
2019-07-14 09:58:11 -05:00
Calvin Rose
e528b86a2a
Ensure no carriage returns end up in doc strings.
2019-07-12 09:14:37 -04:00
Calvin Rose
2e6ee39506
Fix windows build issues.
2019-07-12 08:47:11 -04: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
affcb5b459
Address #137
...
Fix compiler bug when compiling desturctured bindings in a top-level
def or var. Also introduce janet_table_clone API call to make this
easier.
2019-07-07 23:18:39 -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
7c4670c3de
Change semantics of -l flag to be more useful.
2019-07-04 12:42:54 -05:00
Calvin Rose
d66f8333c1
Prepare for 1.0.0
2019-07-01 14:47:03 -05:00
Calvin Rose
1588359ebc
Fix memory leak caused by casting error.
...
janet_abstract_end improperly modified a gc tag.
2019-06-30 10:32:52 -05:00
Calvin Rose
a7f3d3436f
Update CHANGELOG.md
...
Also change `with-resource` to `with`.
2019-06-24 22:02:37 -04:00
Calvin Rose
75f1bb6a7c
Fix up webclient.
2019-06-24 17:27:03 -04:00
Calvin Rose
b8032ec61d
Add propagate function and opcode
...
This allows better stacktraces when manually intercepting
signals to clean up resources. Also allows functionality
from Common Lisp's unwind-protect, such as calling cleanup code
while unwindinding the stack, restarting on certain signals, and
just in general having more control over signal and signal propagation.
Also fix a bug encountered while implementing with-resource in the
compiler. Desturcturing arguments that were not the last argument
would often result in bad code generation, as slots used to destructure
the earlier arguments would invalidate the later parameters. This is
fixed by allocating all named parameters before doing any destructuring.
2019-06-24 12:44:13 -04:00
Calvin Rose
a29e717fd7
Start working to a full meson build.
...
One build system instead of three for Make + Meson + build_win.bat.
2019-06-20 16:33:28 -04:00
Calvin Rose
522545287e
Add janet_abstract_begin and janet_abstract_end
...
This will allow some one constructing an abstract to
only make it visible to the garbage collector after it
is in a valid state. If code in the constructing cfunction
panics before janet_abstract_end is called, the GC will not try
to mark the incomplete abstract type. This is often not needed through
careful programming, but should work well.
2019-06-20 12:37:57 -04:00
Calvin Rose
4b4fe80404
Be more complete with JANET_NO_SOURCEMAPS
...
This actually removed sourcemaps, not just
the top level annotation in bindings.
2019-06-20 11:55:52 -04:00
Calvin Rose
cf05ff610f
Add some fixes for serializing complex grammars.
2019-06-19 23:23:27 -04:00
Calvin Rose
300124961f
Change -c option to use dofile instead of require
2019-06-19 22:05:13 -04:00
Calvin Rose
7eb78c8028
Load jimage files before janet source files.
...
This should allow precompiled files to be placed
right next to the source files in the file system with
the expected behavior.
2019-06-19 20:18:44 -04:00
Calvin Rose
1a7691dade
Flatten environment binding tables.
...
For some reason, these tables used prototypes. There
seems to be no need for this.
2019-06-19 20:07:40 -04:00
Calvin Rose
fc46030e7d
Add options to not include docstrings in binary.
...
This lets us build a smaller binary. The minimal tested
binary on x86-64 (with -Os, -s, and all options that shrink binary size
turned on) is about 240 kB.
2019-06-19 19:43:38 -04:00
Calvin Rose
19a0444f41
Appease MSVC
2019-06-19 09:45:56 -04:00
Calvin Rose
0102a72538
Update module/paths for saner defaults.
...
Relative imports will only check the paths
directly concerning relative imports.
2019-06-19 09:01:21 -04:00
Calvin Rose
264c5bc02b
Change default module/path.
...
Disallow loading directly with extension to be more
consistent and keep things simpler.
2019-06-19 00:34:15 -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
e88a9af2f6
Add bytecode verification for peg unmarshaling.
2019-06-18 13:01:49 -04:00
Calvin Rose
a5e50a0f65
Fix windows getline.
2019-06-18 00:04:29 -04:00
Calvin Rose
7c35acca75
One more MSVC warning.
2019-06-17 23:53:38 -04:00
Calvin Rose
4bb57550c8
Silence some windows build warnings.
2019-06-17 23:50:39 -04:00
Calvin Rose
446ab037b0
Allow marshaling pegs.
2019-06-17 23:40:02 -04:00
Calvin Rose
4adfb9f2d3
Update changelog.
2019-06-17 22:46:38 -04:00
Calvin Rose
9c89d1c658
Inline yield when called with no arguments.
...
It was already inline when called with one argument.
2019-06-15 12:21:08 -04:00
Calvin Rose
3598f056bb
Reformat capi.c
2019-06-15 11:04:24 -04:00
Calvin Rose
779fcf2d54
Merge pull request #124 from ALSchwalm/parse-state
...
Add support for getting more detailed parser state
2019-06-15 11:00:06 -04:00
Adam Schwalm
3bbc121c6a
Add support for getting more detailed parser state
2019-06-15 07:37:01 -05:00
Calvin Rose
82edc19137
Update cook to take headers for natives.
...
This should help incremental building.
2019-06-13 00:41:20 -04:00
Calvin Rose
5689ef1af1
Add keyword flag utility for modules.
2019-06-12 12:05:48 -04:00
Calvin Rose
647139cdf9
Fix string/check-set.
...
Also change external unification identifier in match macro
to @. This means we can more easily match symbol literals.
2019-06-10 14:00:51 -04:00
Calvin Rose
6225f8d334
Fix defn docstring typo.
2019-06-09 09:18:16 -04:00
Calvin Rose
43520ac67d
Add parser/clone. ( #120 )
2019-06-08 17:16:36 -04:00
Calvin Rose
802a2d6b71
Add more dynamic bindings for printing.
2019-06-08 15:27:13 -04:00
Calvin Rose
d9a4ef05ac
Update docstring format.
...
Also add :p flag to fiber/new, change implemntation of with-dyns, and
make meson build install static library by default.
2019-06-08 10:30:43 -04:00
Andrew Chambers
2b7428ed2b
Add file/{fdopen,fileno} functions.
2019-06-08 10:33:29 +12:00
Calvin Rose
64a80c57e3
Tables created via table_init cannot leak memory.
...
Before, if Janet paniced without calling table_deinit
on a table created via table_init, Janet leaked memory.
This changes tables so that tables created via table_init
us scratch memory for auto cleanup instead of normal
malloc/free.
2019-06-05 17:08:49 -04:00
Calvin Rose
efb2ab06cb
Remove array_init and array_deinit
...
These functions made it very easy to create memory
leaks, and are better replaced with functions in vector.h or
simply using non-stack allocated arrays.
2019-06-05 16:19:51 -04:00
Calvin Rose
6e8beff0a0
Add optional argument to parser/where to set index.
...
DSLs that use the parser API can use this to more accurately
report source location.
2019-06-03 10:48:16 -04:00
Calvin Rose
c21eaa5474
Fix redefinition.
2019-06-02 20:09:16 -04:00
Calvin Rose
13667292c6
Expose signal, type, and status name arrays.
...
Makes it easier to print status stuff.
2019-06-02 20:05:17 -04:00
Adam Schwalm
64bf52372a
Allow all-bindings and dynamics to search specific env
2019-06-02 10:12:46 -05:00
Calvin Rose
0a9715a94c
Bump version to 1.0.0
2019-06-01 23:52:01 -04:00
Calvin Rose
c82aac1365
Refer to @ as atsign not ampersand.
2019-06-01 23:40:59 -04:00
Calvin Rose
e697cc3811
Make os/execute not leak memory on panics.
...
Since many calls can panic, it's best
to only use scratch memory for temporary values.
2019-06-01 23:38:10 -04:00
Calvin Rose
c150f2f2c1
Add scratch memory API.
...
This should make it easier to write
code that does not leak memory on panics.
2019-06-01 23:31:39 -04:00
Calvin Rose
3d76d988c3
More work on installation and moving files around.
...
Move all installed libraries into auxlib.
Move all installed executable scripts into auxbin.
2019-06-01 10:38:28 -04:00
Calvin Rose
bea6dbbf3d
Hint utf8 output on windows console.
2019-05-31 15:30:23 -04:00
Calvin Rose
e1bd24c2ab
Make os/execute on windows closer to posix version
2019-05-31 15:02:44 -04:00
Calvin Rose
1f30ea66e9
Windows quick fix.
2019-05-31 13:45:39 -04:00
Calvin Rose
c43aaf8986
More work to os/execute.
...
Use environ when eflag not given. Also try to escape windows
command line strings correctly.
2019-05-31 13:44:14 -04:00
Calvin Rose
2acc81d1c5
Add noreturn attribute to panic functions.
2019-05-31 10:10:20 -04:00
Calvin Rose
d005ac6888
Appease MSVC.
2019-05-30 19:21:11 -04:00
Calvin Rose
7fdb098a20
Add process.h.
2019-05-30 19:14:54 -04:00
Calvin Rose
a4a200e037
Spawn.h not found in windows.
2019-05-30 19:13:13 -04:00
Calvin Rose
15d95d8803
Windows include issue.
2019-05-30 18:50:52 -04:00
Calvin Rose
46950a8cb3
Convert os/execute to use posix_spawn.
2019-05-30 18:40:10 -04:00
Calvin Rose
c8cf7c2445
Appease MSVC.
2019-05-29 22:12:24 -04:00
Calvin Rose
1b63215aad
Remove extra functions.
2019-05-29 22:00:47 -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
31f502b508
Add more to util.h to help with amalg build.
2019-05-29 12:07:53 -04:00
Calvin Rose
4d47d92a4a
Windows WEXITSTATUS fix?
2019-05-29 11:53:57 -04:00
Calvin Rose
b39ad97a87
Fix up close to return proper exit code.
2019-05-29 11:50:46 -04:00
Calvin Rose
af23040d9c
file/close returns an integer.
...
If opened with popen, returns the exit code. Otherwise
returns nil.
2019-05-29 11:40:58 -04:00
Calvin Rose
fd2d706e33
Add os/remove.
2019-05-29 11:31:19 -04:00
Calvin Rose
7a7f586094
Merge branch 'master' of github.com:janet-lang/janet
2019-05-28 23:03:08 -04:00
Calvin Rose
db55277b58
Work on windows installer.
...
We will probably shift to NSIS as the default
installation method for windows. Shipping around a
single binary just doesn't cut it if we want to be able
to reliably use tools like `jpm` to build things.
2019-05-28 20:45:39 -04:00
Calvin Rose
486b80fa7b
Update changelog, change version to 0.6.0
2019-05-28 13:59:12 -04:00
Andrew Chambers
3c304ddc35
Add api for checking build compatibilty.
2019-05-28 13:51:40 +12:00
Calvin Rose
1696de233c
Add jpm tool, based on cook.
...
Modify cook as well.
2019-05-27 16:50:57 -04:00
Calvin Rose
ce9cd4fcef
Issue #113 Color console support for windows 10
...
Use SetConsoleMode winapi function to enable ANSI
escape codes if we can.
2019-05-26 22:31:30 -04:00
Calvin Rose
698e89aba4
Fix comment macro arity #110
2019-05-25 22:50:15 -04:00
Calvin Rose
4c8dd4b96c
Fix shell like scripts.
2019-05-25 19:28:00 -04:00
Calvin Rose
11998b3913
Remove resolver element in path tuple.
...
Try to simplify module/paths back to how it used to be.
2019-05-25 17:27:56 -04:00
Calvin Rose
840610facf
Add urlloader example.
...
Demonstrate loading files from URL.
2019-05-25 17:10:25 -04:00
Calvin Rose
0280deccae
Allow filters on templates in module/paths
...
This lets us make loaders depend on file suffixes, which
lets us more efficiently use full paths.
2019-05-25 16:13:02 -04:00
Calvin Rose
5deb13d73e
Update version 1.0.0 instead of 1.0.0-dev
2019-05-24 17:49:33 -04:00
Calvin Rose
010e2e4652
Add keyword arguments via &keys.
...
This makes it easier to document functions that
take keyword arguments and also prevents some allocations
with these functions. Before, this was possible via normal
variadic functions but created an intermediate tuple, and
the generated docstrings did not document the keys.
2019-05-24 17:03:22 -04:00
Calvin Rose
ddedae6831
Reenable computed gotos - they were disabled.
2019-05-24 13:54:23 -04:00
Calvin Rose
a303704a7d
Add some tests for the amalgamated source/
...
Adds tests to Makefile and CI on Poisx platforms.
2019-05-23 10:34:01 -04:00
Calvin Rose
b5e6c0b8fc
Address #109
...
Make repl work when default chunks not supplied.
2019-05-22 23:56:59 -04:00
Calvin Rose
98c46fcfb1
Update
2019-05-21 15:35:39 -04:00
Calvin Rose
409da697dd
Update JANET_TFLAG_CALLABLE.
...
Most datatypes in Janet are callable.
2019-05-21 15:33:35 -04:00
Calvin Rose
91c3685705
Remove JANET_WALIGN
...
It was not used anywhere in the source after some
refactoring to make better use of structs and unions for automatic
alignment.
2019-05-21 11:12:56 -04:00
Calvin Rose
411fc77ecf
Make env optional for compile.
2019-05-20 11:34:07 -04:00
Calvin Rose
55d8e8b56b
Fix issue with compilation with source name.
...
Also add tuple/sourcemap and tuple/setmap.
2019-05-20 04:02:38 -04:00
Calvin Rose
97ad4c4f89
Update manpage and make -k mode not exit on error.
2019-05-19 15:20:59 -04:00
Adam Schwalm
f444bd25ef
Add a 'compile-only' flag to the command line
...
This allows syntax checkers like the emacs 'flycheck-mode' to check
the source without side effects.
2019-05-19 12:55:28 -05:00
Andrew Chambers
ec43afb426
Minor documentation fixes.
2019-05-17 20:58:06 +12:00
Calvin Rose
56d903d75b
Remove extra closing paren.
2019-05-16 12:12:55 -04:00
Calvin Rose
7054e878fb
Add module/loaders for custom file types.
...
This will allow other languages/DSLs to very easily
integrate with Janet.
2019-05-16 12:05:40 -04:00
Calvin Rose
dde5351d11
Small changes to some doc strings.
2019-05-16 11:43:21 -04:00
Calvin Rose
7d49e3e6f1
Add unification to match macro.
...
Using a quote on a symbol prevents the match
macro from trying to create a binding to it, and
instead tells it that we are binding to a symbol
that is already in scope.
2019-05-16 10:05:54 -04:00
Calvin Rose
f35b5765d6
Set module/*headerpath* during bootstrap
...
Cook also uses module/*headerpath* for finding headers
rather than using module/*syspath*.
2019-05-15 10:49:16 -04:00
Calvin Rose
ad0f7d9b0d
Merge branch 'master' of github.com:janet-lang/janet
2019-05-15 00:05:00 -04:00
Calvin Rose
f647ac5631
Address #95
...
A very minimal code change made partition take strings.
2019-05-15 00:04:25 -04:00
Calvin Rose
e4c5eb4c76
Merge pull request #97 from Crestwave/haiku
...
Add support for Haiku
2019-05-14 21:53:40 -04:00
Crestwave
3b6a51df24
Add support for Haiku
2019-05-15 01:03:17 +00:00
Calvin Rose
f2313b9959
file/read on eof will return nil.
...
Also add documentation for :exit in import.
Address issue #91
Partially adress issue #93
2019-05-14 11:05:19 -04:00
Calvin Rose
805b3bbb88
Numbers require at least 1 significant digit.
...
Address issue #96
2019-05-14 08:44:38 -04:00
Calvin Rose
232ea22dc5
Add string/triml, string/trimr, and string/trim.
2019-05-10 16:09:49 -04:00
Calvin Rose
3388acd2db
Add dofile function.
...
Abstracts the actually running of a file from
the require function, so a file can be easily
evaluated without being cached.
2019-05-10 10:19:51 -04:00
Calvin Rose
52ab9fb475
Update cook tool and headers.
2019-05-09 17:37:46 -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
bbcfaf1289
Fix use after free bug in buffer/format when printing self.
2019-05-08 15:25:25 -04:00
Calvin Rose
bfb0cb331e
No temporary buffer in PR #87
2019-05-08 10:53:23 -04:00
Andrew Chambers
1759252071
Fix use after free in buffer/push-string.
2019-05-08 10:49:25 -04:00
Calvin Rose
fff60b053b
Use memmove in buffer/blit when needed.
2019-05-08 09:29:21 -04:00
Calvin Rose
65ac17986a
Address similar issue to #86
...
buffer/blit could trigger a use after free if a buffer is
blitted with itself and modifies its length.
2019-05-08 08:55:43 -04:00
Calvin Rose
ff720f1320
Expose current fiber via janet_current_fiber().
2019-05-04 19:07:04 -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