Calvin Rose
24b8b0e382
Fix NaNboxing bug that cause flaky builds.
...
The macro janet_checktype(x, JANET_NUMBER) was incorrect when
x was NaN. This caused the initial unmarshalling dictionary to be missing
entries in certain cases.
2020-09-06 14:59:29 -05:00
Calvin Rose
1a9c14acde
Add checksum to build/janet.c to check for inconsistent builds.
2020-09-06 11:04:07 -05:00
Calvin Rose
3563e7e1aa
Add -fPIC to default cflags when building boot image.
2020-08-03 17:32:41 -05:00
Calvin Rose
5899671d96
Merge branch 'master' into ev
2020-08-03 07:54:53 -05:00
Calvin Rose
8c1eb23aa1
Add -fPIC to default cflags when building boot image.
2020-08-02 13:52:21 -05:00
Calvin Rose
297de01d95
Add preliminary channel implementation.
2020-08-01 13:13:58 -05:00
Calvin Rose
d393fbf360
Merge branch 'master' into ev
2020-07-25 14:07:47 -05:00
Calvin Rose
d37eda4e9b
Don't use x43bot to test install.
2020-07-25 13:23:57 -05:00
Calvin Rose
3960d0f6de
Merge branch 'master' into ev
2020-07-25 13:17:05 -05:00
Calvin Rose
5be5e5b58f
Update soname.
2020-07-25 13:11:52 -05:00
Calvin Rose
df145f4bc9
Merge branch 'master' into ev
2020-07-19 17:20:43 -05:00
Calvin Rose
9e163db491
Test building binaries with jpm.
...
Test in CI with both meson and normal build.
Also test windows.
2020-07-18 15:50:58 -05:00
Calvin Rose
3ba2c7e7e8
Address #394 and #451 - Prepare for 1.11.0
...
Prefix MANPATH and PKG_CONFIG_PATH variables
with JANET_ to disassociate with standard env variables
that have a different format.
2020-07-18 13:09:53 -05:00
Calvin Rose
a0abf307b4
Merge branch 'master' into ev
2020-07-03 12:14:48 -05:00
Calvin Rose
9c5e97144d
More small changes to help with cross compilation
...
via makefile. Add option to turn off built in
getline via janetconf.
2020-06-27 12:39:16 -05:00
Calvin Rose
328ee94412
Merge branch 'master' into ev
2020-06-22 22:25:44 -05:00
Calvin Rose
853b33b67c
On nix platforms, patch jpm with path information.
...
This means we no longer need to guess paths after install.
Custom directory layouts can now be better supported at install
time without need for environment variables.
2020-06-14 14:04:23 -05:00
Calvin Rose
19f3568e18
Update for 1.10.0.
2020-06-14 12:15:56 -05:00
Calvin Rose
a78af0a7fb
Do not explicitly free state machines, instead return a status.
...
This makes it harder to have some kind of use after free issue.
2020-05-30 11:31:05 -05:00
Calvin Rose
b68b0a256e
Start with ev module.
2020-05-28 10:39:40 -05:00
Calvin Rose
92df01b99d
Add valtest and debug to Makefile help.
2020-05-15 17:59:05 -05:00
LouisJackman
d6cd69e659
Add make help target
2020-05-15 07:51:21 +01:00
Calvin Rose
1add0c7d43
make test-install should be easier to clean.
2020-05-09 10:30:09 -05:00
Calvin Rose
d2ebf4b52d
Merge branch 'net'
2020-04-26 12:27:37 -05:00
Calvin Rose
69eb9531da
Rename auxbin/jpm -> jpm.
2020-04-26 08:55:32 -05:00
Calvin Rose
596111c988
Merge branch 'master' into net
2020-04-17 15:08:26 -05:00
Calvin Rose
810ef7401c
Update changelog and bump version to dev version.
2020-04-04 21:50:27 -05:00
Calvin Rose
bb5c478704
Switch to two digit sonames.
...
Janet's versioning scheme is not 'true' semantic versioning.
Minor versions can have and often do have breaking changes.
Although such breakages are mostly avoided, only limited effort is
made to prevent this, and no system is in place to verify this.
Thus, stricter version pinning is needed.
2020-04-04 18:30:18 -05:00
Calvin Rose
6b89da4bb2
Use -Wl,-install_name,... on macos.
2020-04-04 13:44:21 -05:00
Calvin Rose
1d0e862129
Update Makefile for pkg-config issues and soname.
2020-04-04 13:09:59 -05:00
Calvin Rose
8f1527712e
Merge branch 'master' into net
2020-03-05 18:08:35 -06:00
Calvin Rose
f06addfe06
For #240 , address case when LDCONFIG is empty
2020-03-03 18:13:25 -06:00
Calvin Rose
7c2c50ee16
For #240 - don't run ldconfig for DESTDIR installs.
2020-03-03 18:03:44 -06:00
Calvin Rose
8580d3c27e
Address #240 - Support DESTDIR in Makefile.
2020-03-03 17:45:59 -06:00
Calvin Rose
951e10f272
Address #292
...
Faulty Makefile fallback.
2020-03-03 08:21:14 -06:00
Calvin Rose
2779037f13
Clean up Makefile.
2020-02-25 20:02:03 -06:00
Calvin Rose
c0d2140d14
Begin net/ module in core.
...
Humble beginnings.
2020-02-01 20:39:54 -06:00
Calvin Rose
1bdde9c4f7
Fix warnings.
2020-01-28 23:46:14 -06:00
Calvin Rose
333ae7c4f8
Make amalgamtion the default when building.
...
This way we can support fewer build configurations. Also, remove
all undefined behavior due to use of memcpy with NULL pointers. GCC
was exploiting this to remove NULL checks in some builds.
2020-01-28 23:38:52 -06:00
Calvin Rose
62cf407f0c
Remove lto.
...
Gosh Darnit, Travis!
2020-01-20 13:53:59 -06:00
Calvin Rose
bbed72f39f
Only enable lto on linux for now.
...
Was failing with clang, as the default clang linker doesn't
do LTO.
2020-01-20 13:37:10 -06:00
Calvin Rose
3c87d89df3
Enable LTO by default
...
Most compilers support it, and it gives a good perf increase OOTB.
2020-01-20 11:38:22 -06:00
Calvin Rose
8fbcae6029
Remove -march=native from Makefile
...
Instead, one can pass in CFLAGS to make
2020-01-18 20:01:12 -06:00
Calvin Rose
a68ee7aac6
Update Copyright 2020.
2020-01-12 10:50:37 -06:00
Thodoris Sotiropoulos
5575e7577a
Fix faults in Make build
2020-01-02 22:15:55 +02:00
Calvin Rose
9dd152dc28
Add features.h for feature test macros.
...
Because we use an amalgated build, feature
test macros should be set in a single file that
is included before any other headers, and is placed
at the top of the amalgamated build.
2019-12-30 19:06:15 -05:00
Calvin Rose
407d8af026
Address #233
...
Move _POSIX_C_SOURCE to internal header.
2019-12-30 12:31:26 -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
aa7f3411f5
Use JANET_SINGLE_THREADED to disable threads.
2019-12-12 17:39:22 -06:00
Calvin Rose
eb1c21b0da
Fix some example issue and warnings under -Os.
2019-12-08 12:40:05 -06:00
Calvin Rose
8a91c52fa2
Change pthreads linking with jpm, make, and meson.
...
Try to add pthread deps when compiling programs with jpm.
2019-11-27 14:52:20 -06:00
Calvin Rose
bca0392738
First work on threading.
...
Posix only, needs to be disabled on windows. Also
the Makefile needs to be configurable, and meson.build
needs to take pthreads into account.
2019-11-26 23:13:53 -06:00
Calvin Rose
8911daaf6c
Add --test flag to jpm.
...
Also test some select packages when testing installation.
This is used in CI to make sure that versions of Janet work with
the most libraries.
2019-11-09 10:03:56 -06:00
Calvin Rose
6591e7636d
Copy janetconf to build for amalg target.
...
This makes testing the amalg easier.
2019-11-08 20:36:16 -06:00
Calvin Rose
58e3e63a89
Add jpm to release bundle.
2019-11-08 11:00:12 -06: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
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
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
6ae5a9be60
Add -fvisibility in Makefile, provide meson example commands.
...
Shaves off 10 kb in binary. Also -fpic -> -fPIC in Makefile and jpm.
2019-10-05 10:38:58 -05:00
Crestwave
63e3e02a39
Fix installation on Haiku
2019-10-02 05:52:55 +00:00
Calvin Rose
9d020c3ec5
Update CHANGELOG.md
2019-09-22 18:00:53 -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
1b283c47b4
Remove macos update_dyld_shared_cache
...
This just doesn't work well for a non global install.
It is better packages that need this to run it themselves.
2019-09-20 13:13:05 -05:00
Calvin Rose
908a3b6f5c
Address #160 : Use ldconfig alternative on macos.
...
update_dyld_shared_cache seems to work on macos.
2019-09-18 12:20:59 -05:00
Alberto González Palomo
8753d2dcb8
Defuse tarbomb: wrap tar file contents in directory
...
https://en.wikipedia.org/wiki/Tar_(computing)#Tarbomb
http://www.linfo.org/tarbomb.html
2019-09-09 18:59:29 +02:00
Calvin Rose
8dc91755f7
Work on makefile and build for jpm.1
2019-09-05 12:28:11 -05:00
Calvin Rose
05695a35c7
Fix test-install after removing cook.
2019-08-28 21:05:34 -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
f903ee8acc
Add quotes and remove input path as make target.
...
Make doesn't handle that or auto escape that very well, so
we only put known paths as Make targets.
2019-08-27 18:10:03 -05:00
Calvin Rose
b0b1024f8a
Try to fix some tests for CI.
2019-07-27 11:05:53 -05:00
Calvin Rose
cc07ff987d
Fix normal native building and make test-install.
...
Add executable generation testing to make test-install.
2019-07-27 09:53:28 -05:00
Calvin Rose
0384b83c31
Update emscripten makefile.
2019-06-24 17:23:01 -04:00
Calvin Rose
f7f2f5e84f
Address #129 .
...
Don't rm -rf the wrong directory on uninstall.
2019-06-24 08:28:40 -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
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
75818217a6
Update CI tasks.
2019-05-28 14:02:45 -04:00
Calvin Rose
f12f896020
Change test-install
2019-05-28 12:59:21 -04:00
Calvin Rose
7569930b0c
More work on cook and jpm.
2019-05-28 08:48:35 -04:00
Calvin Rose
1696de233c
Add jpm tool, based on cook.
...
Modify cook as well.
2019-05-27 16:50:57 -04:00
Calvin Rose
4d5a95784a
Add LDFLAGS to Lflags in generated janet.pc
2019-05-24 19:58:52 -04:00
Calvin Rose
b43d93cf55
Add pkg-config to install.
2019-05-24 19:38:13 -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
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
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
30cb01e2f0
Merge pull request #102 from PaulBatchelor/master
...
Add static library
2019-05-16 07:30:42 -04:00
Paul Batchelor
516e031f67
Add static library
2019-05-15 22:38:18 -04:00
Calvin Rose
3331f2fa02
Update soname.
2019-05-15 11:39:18 -04:00
Calvin Rose
dd1a199ebd
Don't copy headers to JANET_PATH
2019-05-15 10:53:26 -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
8359044408
Don't symlink into $(PREFIX)/lib/janet
...
Using the AUR installer, this seems to result in
symlinks into the cache, which may be an issue and looks
strange. Instead, we can just copy the file once for
the cook module.
2019-05-15 08:46:12 -04:00
Crestwave
3b6a51df24
Add support for Haiku
2019-05-15 01:03:17 +00:00
Calvin Rose
3c0f12ea4d
Add library installation during make install
...
Got removed a while ago for some reason, I forgot why.
2019-04-28 16:02:05 -04:00
Calvin Rose
d514eab627
Add regression test for #78
2019-04-09 09:14:40 -04:00
Calvin Rose
2c9195b507
More updates to meson
...
Redo amalg script so we can more easily run
it from Meson.
2019-03-23 13:50:50 -04:00
Calvin Rose
7f1b5d4d70
Merge core.janet into boot.janet
...
This simplifies the build machinery a bit.
core.janet is never actually included in the final
binary, it is just used to generate an image file.
2019-03-22 18:34:50 -04:00
Calvin Rose
25aa7a26c5
Add experimental meson build.
...
Should help with IDE integration.
2019-03-22 18:07:10 -04:00
Calvin Rose
cb2caecbb3
Add janetconf.h for configuring builds.
...
Rather than edit the Makefile or the janet.h header yourself, use
janetconf.h to configure builds. This has the benefit of making it
easier to configure janet in a persitent but easy way.
2019-03-22 14:33:30 -04:00
Calvin Rose
95e54c66b6
Use one tag type true and false
...
We moved the literals true and false into one tag
type, so we an extra tag for raw pointer types
(light userdata). These can be used from the C API via
janet_wrap_pointer and janet_unwrap_pointer.
2019-03-13 14:50:25 -04:00
Calvin Rose
8d37e544ab
Fix BSD builds.
...
Try to silence some more undefined C warnings
with -fsanitize=undefined.
2019-03-04 12:16:49 -05:00
Calvin Rose
a4cc23971f
Only use -rdyanmic at link time
...
Before, we were using -rdynamic as a compiler flag, but
it is only needed at link time. This also gets rid of some
annoying warnings in clang.
2019-03-03 18:55:10 -05:00