Commit Graph

216 Commits

Author SHA1 Message Date
06a4e2d29b Disable Travis emails 2021-03-07 08:29:43 -08:00
67b9675c81 Make tgmath.h available (#109) 2021-03-06 22:40:18 -08:00
4d4aa9e791 Add automatic tests for pull requests
Now when you send a pull request Travis CI will build the entire
repository and run all the tests for you automatically. It takes
approximately two minutes to finish so you can get fast feedback
2021-03-06 21:39:03 -08:00
813e11b90b Fix int parsing with base 2 and 16 (#107) 2021-03-06 21:12:32 -08:00
fb7b7c6e21 Fix isystem headers including wrong files (#108) 2021-03-06 21:06:29 -08:00
d769df3482 Fix issues with stdio needed for Lua
See #61
2021-03-06 19:04:26 -08:00
c3ed8d6c7f Make %p consistent with glibc and musl
See #61
2021-03-06 14:36:44 -08:00
937d921018 Add tests for the greatest of all libm functions 2021-03-06 12:59:35 -08:00
bfef17eb6d Add more math fixes 2021-03-06 11:44:40 -08:00
11ec99931b Add Musl multibyte functions
These are standard functions that are needed to help support the Skull
language. Note that normally this codebase uses libc/str/thompike.h

See #105
2021-03-06 09:53:16 -08:00
cfd453d125 Add more real formatting tests
See #61
2021-03-06 08:45:44 -08:00
6fa049c9c7 Add macro for static_assert (#106) 2021-03-05 20:32:25 -08:00
3364fc5b03 Add modf(), modff(), and modfl()
See #104
2021-03-05 10:47:14 -08:00
f064183646 Support proper %g, %f, and %a float formatting
See #61
See #104
2021-03-05 10:31:16 -08:00
e26bdbec52 Make examples folder somewhat more focused 2021-03-05 06:09:12 -08:00
5141d00992 Perform some minor code cleanup 2021-03-04 13:22:32 -08:00
b9f73e6a4d Clarify APE self-modifying behavior in README
See #102
2021-03-04 07:54:41 -08:00
43b2475aaa Handle more pow cases (#61) 2021-03-04 06:14:07 -08:00
1a08594f95 Add honeybadger to ape.S 2021-03-03 15:00:41 -08:00
e55e71ab48 Delete some old build code 2021-03-03 14:30:25 -08:00
3573814e45 Change release process to use default mode
See #101
2021-03-03 13:47:22 -08:00
2134ffe005 Add features needed by Janet language
See #97
See https://github.com/ahgamut/janet/tree/f838e36#compiling-janet-on-cosmopolitan
2021-03-03 13:26:46 -08:00
e3ee3c78e9 Refactor some Blinkenlights code 2021-03-03 13:09:06 -08:00
8af91bcbe7 Make pow() conform to standard definition 2021-03-03 09:21:27 -08:00
754974faaa Remove SOCK_NONBLOCK from Echo Server example
See #102 for further explanation.
2021-03-03 06:17:56 -08:00
9367253b4d Add more libm unit tests and fixes
See #61
2021-03-02 13:57:23 -08:00
32e289b1d8 Add error and gamma functions
Fixes #99
2021-03-02 11:58:00 -08:00
d53a344e18 Remove getc() optimization
This has been reported as causing issues in #61 although it isn't clear
why that's happening. Having a function boundary is bullet proof.
2021-03-02 07:34:38 -08:00
3e19b96ab8 Add more POSIX function stubs
Cosmopolitan currently doesn't support threads and it doesn't do
anything fancy in longjmp/setjmp so this change was simple to do

- localeconv
- _setjmp (same as setjmp)
- _longjmp (same as longjmp)
- strcoll (same as strcmp)
- flockfile (does nothing)
- funlockfile (does nothing)
- ftrylockfile (does nothing)

See #61
2021-03-02 03:27:55 -08:00
1831e3ccf7 Bring life.com executable size back down to 12kb 2021-03-02 01:13:32 -08:00
4651962070 Limit frame size restriction to internal repo
Fixes #91
2021-03-02 01:05:37 -08:00
8a6a1e25b1 Fix redbean daemonization
Fixes #94
2021-03-02 00:43:30 -08:00
7e4021bf82 Put Redbean in uniprocess mode on NT temporarily
The Windows fork() polyfill (which we implement using pure WIN32)
appears to be acting strangely. It's possible a regression was
introduced by recent changes that our tests didn't catch.

This change is workaround so we can upload a new working binary release
to the Redbean website until we can fully fix the problem.

See also #90
2021-03-01 23:45:49 -08:00
2596a59374 Use noasan attribute on XNU signal trampoline
The ucontext_t data structure XNU passes us doesn't appear to be part of
known memory. So we can't use ASAN during the trampoline, which converts
it to a Linux ucontext_t data structure. Please note that this change
doesn't impact the signal handler itself, only the trampoline.
2021-03-01 22:02:27 -08:00
0eaad9dd7b Fix APE error if unable to modify self
See PR #96 and issue #85
2021-03-01 21:13:22 -08:00
f4298f10c2 Generate ZIP files the same way as Windows 2021-03-01 06:24:11 -08:00
d932948fb4 Remove more nonstandard stuff from cosmopolitan.h
Fixes #61
2021-03-01 00:18:23 -08:00
5e069a64d4 Improve limits.h
Fixes #84
See also #61
2021-02-28 20:59:19 -08:00
3c24c12068 Document support vector
Fixes #87
2021-02-28 16:41:53 -08:00
839e2f4cfb Add hyperbolic math functions
See #61
2021-02-28 01:27:50 -08:00
c42dbe0e9e Issue new Blinkenlights release 2021-02-27 22:35:50 -08:00
94afa982c3 Fix zip executables on MacOS
Here's why we got those `Killed: 11` failures on MacOS after modifying
the contentns of the redbean.com executable. If you were inserting a
small file, such as a HelloWorld.html file, then InfoZIP might have
decreased the size of the executable to less than what the Mach-O
section had been expecting.

That's because when zipobj.com put things like time zone data in the
executable, it aligned each zip file entry on a 64-byte boundary, simply
for the sake of readability in binary dumps. But when InfoZIP edited the
file it would rewrite every entry using ZIP's usual 2-byte alignment.
Thus causing shrinkage.

The solution was to reconfigure the linker script so that zip file bits
that get put into the executable at link-time, such as timezone data,
aren't officially part of the executable image, i.e. we don't want the
operating system to load that part.

The original decision to put the linked zip files into the .data section
was mostly made so that when the executable was run in its .com.dbg form
it would still have the zip entries be accessible, even though there was
tons of GNU debug data following the central directory. We're not going
to be able to do that. The .com executable should be the canonical
executable. We have really good tools for automatically attaching and
configuring GDB correctly with debug symbols even when the .com is run.
We'll have to rely on those in cases where zip embedding is used.

See #53
See #54
See #68
2021-02-27 18:16:59 -08:00
cc56038b05 Fix memzoom on Windows
Right now we can't call poll() on file and fifos on Windows. So we work
around that by simply blocking on keyboard input. This is OK because on
Windows we can't use /proc/*/mem for realtime monitoring, so there's no
reason not to block.

See #65
2021-02-27 15:01:00 -08:00
f3baa05195 Define console.log() in hellojs.com example
Fixes #69
2021-02-27 14:15:13 -08:00
1c9065510f redbean.c: remove duplicate png content-types 2021-02-27 13:37:36 -08:00
da199b7a45 Further refine printf long double change (#66) 2021-02-27 13:30:17 -08:00
98fba078a3 Add title to the LICENSE file 2021-02-27 13:25:59 -08:00
5d334b9ce0 Support %lf and %lF in format string
Per C99 this should resolve to double.
2021-02-27 13:14:09 -08:00
35c7edac49 Restore Windows command prompt mode on exit
Fixes #60
2021-02-27 12:53:51 -08:00
218ef49147 Fix redbean zip central directory lookup
This regression snuck in at some point. It resulted in the program
sometimes failing to load when the zip content was changed.
2021-02-27 12:08:28 -08:00