Comments (2)
I agree, trying to mimic GLFW would add too much maintenance for too little benefit; felt I should put it on the table anyhow. You do make a good point that perhaps we could propose upstream for GLFW to publicize their internal 'parseMappings' function. Put a pin in that.
I'll look at making the changes whenever I get time today or tomorrow, cheers.
from mach.
Thanks for raising this.
One option is to try and mimic GLFW's parsing to pre-emptively assert that the format is wrong, and perhaps deliver a useful error message to inform the caller of what's gone wrong
I think this would be hard to maintain in the long-term. If we did go that route, I'd prefer we instead add some validation logic to GLFW's API and then everyone who uses GLFW can benefit from it.
the other option is to simply leave the Error.InvalidValue code for this function, and allow it to be unique to it, and any other functions that may do parsing that we can't pre-empt in a maintainable fashion, which, while it doesn't allow us to eliminate the error altogether as hoped, would still be more or less made okay by error denormalization.
I think that this is the most reasonable approach. I would also say InvalidValue
doesn't need to be part of the broader Error
type. We could potentially rename it to ParseError
too? an inline error{ ParseError }
or similar
from mach.
Related Issues (20)
- {core,engine}: sysgpu disabled in v0.3 due to lack of optional Zig dependencies; spirv-cross/spirv-tools are indirect and take a while to build
- core: autodoc segfaults the build if enabled, after Zig 2024.1.0-mach update HOT 2
- core: custom entrypoint build API design broken after Zig 2024.1.0-mach update
- all: nominate Zig 2024.03 HOT 4
- sysgpu: SPIR-V code gen fails on else ifs
- 100% banish usingnamespace from all of our codebases
- all: Mach 0.3 release checklist
- all: eliminate `sdkPath` HOT 3
- sysaudio: runtime alignment error when converting samples on Windows HOT 4
- core: window size not restored on leaving .fullscreen to .windowed.
- all: change addPaths(step) -> addPaths(mod); fix linux -> macOS cross-compilation
- docs: should be more clear about required Zig version in getting-started guides
- docs: suggest using zig fetch --save
- all: use snake_case for package names and build CLI flags
- sysgpu: provide clear default values instead of WebGPU 'undefined' default values HOT 3
- sysaudio: opus play.zig example crashes after a few seconds of playing HOT 1
- docs: provide guidance/tooling for app distribution (packaging, code signing, notarization, installers, etc.)
- glfw may not build on Arch Linux, why? HOT 1
- all: use Wayland by default once it is stable/reliable/good enough consistently HOT 5
- sysgpu: metal: pbr-basic codegen failure HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mach.