mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-07 03:38:31 +00:00
Greatly expand system() shell code features
The cosmopolitan command interpreter now has 13 builtin commands, variable support, support for ; / && / || syntax, asynchronous support, and plenty of unit tests with bug fixes. This change fixes a bug in posix_spawn() with null envp arg. strace logging now uses atomic writes for scatter functions. Breaking change renaming GetCpuCount() to _getcpucount(). TurfWar is now updated to use the new token bucket algorithm. WIN32 affinity masks now inherit across fork() and execve().
This commit is contained in:
parent
e7329b7cba
commit
b41f91c658
80 changed files with 1370 additions and 344 deletions
|
@ -17,7 +17,6 @@
|
|||
│ PERFORMANCE OF THIS SOFTWARE. │
|
||||
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||
#include "libc/calls/calls.h"
|
||||
#include "libc/mem/copyfd.internal.h"
|
||||
#include "libc/calls/copyfile.h"
|
||||
#include "libc/calls/ioctl.h"
|
||||
#include "libc/calls/struct/itimerval.h"
|
||||
|
@ -42,12 +41,12 @@
|
|||
#include "libc/macros.internal.h"
|
||||
#include "libc/math.h"
|
||||
#include "libc/mem/alg.h"
|
||||
#include "libc/mem/copyfd.internal.h"
|
||||
#include "libc/mem/gc.internal.h"
|
||||
#include "libc/mem/mem.h"
|
||||
#include "libc/nexgen32e/kcpuids.h"
|
||||
#include "libc/nexgen32e/x86feature.h"
|
||||
#include "libc/runtime/runtime.h"
|
||||
#include "libc/runtime/sysconf.h"
|
||||
#include "libc/stdio/append.h"
|
||||
#include "libc/stdio/stdio.h"
|
||||
#include "libc/str/str.h"
|
||||
|
@ -301,7 +300,7 @@ void PrintMakeCommand(void) {
|
|||
appends(&output, "make MODE=");
|
||||
appends(&output, mode);
|
||||
appends(&output, " -j");
|
||||
appendd(&output, buf, FormatUint64(buf, GetCpuCount()) - buf);
|
||||
appendd(&output, buf, FormatUint64(buf, _getcpucount()) - buf);
|
||||
appendw(&output, ' ');
|
||||
appends(&output, target);
|
||||
}
|
||||
|
|
|
@ -39,7 +39,6 @@
|
|||
#include "libc/runtime/ezmap.internal.h"
|
||||
#include "libc/runtime/runtime.h"
|
||||
#include "libc/runtime/stack.h"
|
||||
#include "libc/runtime/sysconf.h"
|
||||
#include "libc/stdio/append.h"
|
||||
#include "libc/stdio/stdio.h"
|
||||
#include "libc/str/str.h"
|
||||
|
@ -426,7 +425,7 @@ int main(int argc, char *argv[]) {
|
|||
ShowCrashReports();
|
||||
if (argc == 2 && !strcmp(argv[1], "-n")) exit(0);
|
||||
GetOpts(argc, argv);
|
||||
threads = 1; // GetCpuCount();
|
||||
threads = 1; // _getcpucount();
|
||||
th = calloc(threads, sizeof(*th));
|
||||
bouts = calloc(threads, sizeof(*bouts));
|
||||
LoadRelationships(argc, argv);
|
||||
|
|
|
@ -44,7 +44,6 @@
|
|||
#include "libc/mem/mem.h"
|
||||
#include "libc/nexgen32e/kcpuids.h"
|
||||
#include "libc/runtime/runtime.h"
|
||||
#include "libc/runtime/sysconf.h"
|
||||
#include "libc/sock/sock.h"
|
||||
#include "libc/sock/struct/pollfd.h"
|
||||
#include "libc/stdio/stdio.h"
|
||||
|
@ -162,9 +161,9 @@ static void GetOpts(int argc, char *argv[]) {
|
|||
g_fszquota = 256 * 1000 * 1000;
|
||||
if (!sysinfo(&si)) {
|
||||
g_memquota = si.totalram;
|
||||
g_proquota = GetCpuCount() + si.procs;
|
||||
g_proquota = _getcpucount() + si.procs;
|
||||
} else {
|
||||
g_proquota = GetCpuCount() * 100;
|
||||
g_proquota = _getcpucount() * 100;
|
||||
g_memquota = 4L * 1024 * 1024 * 1024;
|
||||
}
|
||||
while ((opt = getopt(argc, argv, "hnqkNVT:p:u:g:c:C:D:P:M:F:O:v:")) != -1) {
|
||||
|
|
|
@ -1711,6 +1711,7 @@ Keywords={
|
|||
"LLONG_MAX",
|
||||
"LONG_LONG_MAX",
|
||||
"SIZE_MAX",
|
||||
"SSIZE_MAX",
|
||||
"INT8_MAX",
|
||||
"INT16_MAX",
|
||||
"INT32_MAX",
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
"LLONG_MAX"
|
||||
"LONG_LONG_MAX"
|
||||
"SIZE_MAX"
|
||||
"SSIZE_MAX"
|
||||
"INT8_MAX"
|
||||
"INT16_MAX"
|
||||
"INT32_MAX"
|
||||
|
|
|
@ -39,7 +39,6 @@
|
|||
#include "libc/nexgen32e/rdtsc.h"
|
||||
#include "libc/nexgen32e/rdtscp.h"
|
||||
#include "libc/runtime/runtime.h"
|
||||
#include "libc/runtime/sysconf.h"
|
||||
#include "libc/sock/sock.h"
|
||||
#include "libc/stdio/rand.h"
|
||||
#include "libc/str/str.h"
|
||||
|
@ -126,7 +125,7 @@ int LuaGetCpuCore(lua_State *L) {
|
|||
}
|
||||
|
||||
int LuaGetCpuCount(lua_State *L) {
|
||||
lua_pushinteger(L, GetCpuCount());
|
||||
lua_pushinteger(L, _getcpucount());
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue