aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-10-08move some package management related source files aroundAndrew Kelley
2023-10-08fix dependencies.zig generation with no dependenciesAndrew Kelley
2023-10-08zig fetch: require 'paths' field in the manifestAndrew Kelley
2023-10-08Package.Fetch: fix not making directory paths for symlinksAndrew Kelley
2023-10-08use long-lived arena for `@cImport`-generated ModuleAndrew Kelley
2023-10-08give build.zig modules access to their dependencies' build.zig modulesAndrew Kelley
2023-10-08Manifest: fix not initializing token locationsAndrew Kelley
2023-10-08Package.Fetch: fix handling of relative pathsAndrew Kelley
2023-10-08Package.Fetch: resolve instead of join relative pathsAndrew Kelley
This prevents bogus "error: file exists in multiple modules" errors due to file paths looking like: ``` note: root of module foo/freetype/ note: root of module foo/fontconfig/../freetype/ ``` It also enables checking for dependency paths outside the root package.
2023-10-08CLI: fix only_core_functionality logicAndrew Kelley
2023-10-08zig build: add `--fetch` argumentAndrew Kelley
closes #14280
2023-10-08dependencies.zig: omit deps without hashesAndrew Kelley
2023-10-08dependencies.zig: omit modules without build.zig as depsAndrew Kelley
2023-10-08std.tar: fix creation of symlinks with omit_empty_directoriesAndrew Kelley
2023-10-08finish hooking up new dependency tree logicAndrew Kelley
* add Module instances for each package's build.zig and attach it to the dependencies.zig module with the hash digest hex string as the name. * fix incorrectly skipping the wrong packages for creating dependencies.zig * a couple more renaming of "package" to "module"
2023-10-08more fixes related to previous commits Package/Module APIAndrew Kelley
2023-10-08finish implementing the auto-generated dependencies.zig moduleAndrew Kelley
2023-10-08fix detection of build.zig file inside packagesAndrew Kelley
2023-10-08package fetching: generate dependencies.zig fileAndrew Kelley
Only problem is that it looks like `has_build_zig` is being false when it should be true. After that is fixed then main.zig needs to create the `@dependencies` module from the generated source code.
2023-10-08make Package.Path support string escape formattingAndrew Kelley
2023-10-08std: add unstable sorting to array hash mapsAndrew Kelley
closes #17426
2023-10-08fix recursive package fetching logicAndrew Kelley
For path-relative dependencies, they always need to be added to the hash table at the end. For remote dependencies, they never need to be added.
2023-10-08fix inverted logic for allowing/disallowing paths fieldAndrew Kelley
2023-10-08fix Fetch.JobQueue.consolidateErrorsAndrew Kelley
2023-10-08CLI: finish updating module API usageAndrew Kelley
Finish the work started in 4c4fb839972f66f55aa44fc0aca5f80b0608c731. Now the compiler compiles again. Wire up dependency tree fetching code in the CLI for `zig build`. Everything is hooked up except for `createDependenciesModule` is not yet implemented.
2023-10-08require inclusion directives in root manifest but not depsAndrew Kelley
see #14311
2023-10-08get `zig fetch` working with the new systemAndrew Kelley
* start renaming "package" to "module" (see #14307) - build system gains `main_mod_path` and `main_pkg_path` is still there but it is deprecated. * eliminate the object-oriented memory management style of what was previously `*Package`. Now it is `*Package.Module` and all pointers point to externally managed memory. * fixes to get the new Fetch.zig code working. The previous commit was work-in-progress. There are still two commented out code paths, the one that leads to `Compilation.create` and the one for `zig build` that fetches the entire dependency tree and creates the required modules for the build runner.
2023-10-08rework package managerAndrew Kelley
Organize everything around a Fetch task which does a bunch of stuff in a worker thread without touching any shared state, and then queues up Fetch tasks for its dependencies. This isn't the theoretical optimal package fetching performance because CPU cores don't necessarily map 1:1 with I/O tasks, and each fetch task contains a mixture of computations and I/O. However, it is expected for this to significantly outperform master branch, which fetches everything recursively with only one thread. The logic is now a lot more linear and easy to follow. Everything that is embarassingly parallel is done on the thread pool, and then after everything is fetched, the worker threads are joined and the main thread does the finishing touches of stitching together the dependencies.zig import files. There is only one tiny little critical section and it does not even have any error handling in it. This also lays the groundwork for #14281 because in system mode, all this fetching logic will be skipped, but the "finishing touches" mentioned above still need to be done. With this branch, that logic is separated out and no longer recursively tangled with fetching stuff. Additionally, this branch: * Implements inclusion directives in `build.zig.zon` for deciding which files belong the package (#14311). * Adds basic documentation for `build.zig.zon` files. * Adds support for fetching dependencies with the `file://` protocol scheme (#17364). * Adds a workaround for a Linux/btrfs file system bug (#17282). This commit is a work-in-progress. Still todo: 1. Hook up the CLI to the new system. 2. Restore the module table creation logic after all the fetching is done. 3. Fix compilation errors, get the tests passing, and regression test against real world projects.
2023-10-08add basic build.zig.zon documentationAndrew Kelley
2023-10-08Manifest: add top-level `paths` field for inclusion rulesAndrew Kelley
See #14311
2023-10-08std.zig.ErrorBundle: add some explicit error setsAndrew Kelley
2023-10-08std.tar: add option for omitting empty directoriesAndrew Kelley
2023-10-08Merge pull request #17438 from Luukdegram/issue-17436Luuk de Gram
wasm - fix `@tagName` for signed enums
2023-10-08add behavior test `@tagName` with signed valuesLuuk de Gram
2023-10-08wasm: correctly lower signed value in `@tagName`Luuk de Gram
2023-10-08Merge pull request #17416 from jacobly0/x86_64Jacob Young
x86_64: implement more `f80` operations and other features
2023-10-08x86_64: implement `@mulAdd` of floats for baselineJacob Young
2023-10-08x86_64: implement `@rem` for floatsJacob Young
2023-10-08x86_64: fix `@divTrunc` and `@divFloor` of `f16`Jacob Young
2023-10-08x86_64: fix undersized vector binary operationsJacob Young
2023-10-08x86_64: fix conversions between floats and 128-bit integersJacob Young
2023-10-08x86_64: implement `@abs` for some integer vector typesJacob Young
2023-10-08x86_64: fix bitcast from `f80`Jacob Young
2023-10-08cbe: fix crash on errorJacob Young
This hashmap value used to be assigned much later during `flushModule`, which never happens if an error is returned by the backend, and attempting to the undefined values would cause a crash.
2023-10-07x86_64: hack around silent `f80` miscompilationsJacob Young
The x87 kind sucks.
2023-10-07x86_64: improve inline assembly supportJacob Young
* instruction prefixes * mnemonic fixes * labels * memory operands * read-write constraint modifier * register and memory alternative constraint
2023-10-07x86_64: implement C var argsJacob Young
2023-10-07x86_64: implement negation and `@abs` for `f80`Jacob Young
Also implement live-outs since the x87 requires so much care around liveness tracking.
2023-10-07x86_64: implement `f80` movementJacob Young
2023-10-07x86_64: fix C abi typosJacob Young