New week, new Rust! What are you folks up to?
Still happily contributing to https://github.com/svenstaro/miniserve
My focus this week will be to revamp the errors, and to eliminate all calls to unwrap and display nice error messages to the user instead of panics in unexpected cases.
Still working on https://github.com/notriddle/more-interesting
Next step will be to apply some more refactoring suggestions, like moving to boxed queries.
I recently started looking into issue #41 and extending the current parser to deal with
Include lines/statements. While investigating I thought it might be a good time for a complete re-write of the parsing code. Instead of changing the Rust code for the main executable
rs_pbrt I introduced another example program called
parse_pbrt_file (there is another experimental one called
parse_ass_file which deals with Arnold’s scene description). Both basically call API functions while parsing to create the scene, when done reading the scene an acceleration structure gets built, and finally the scene gets rendered. My current test scene contains only 36 lines, but includes another file with 1.5 million curves:
> pwd /mill3d/users/jan/Graphics/Rendering/PBRT/pbrt-v3-scenes/bunny-fur > grep Include f3-15_no_exrs.pbrt Include "geometry/bunnyfur.pbrt" > wc -l f3-15_no_exrs.pbrt 36 f3-15_no_exrs.pbrt > wc -l geometry/bunnyfur.pbrt 1508665 geometry/bunnyfur.pbrt
The resulting image looks like this:
So, I think I will test the new parser vs. the old parser this week and once I’m convinced it works as expected I replace the old Rust parsing code by the new one (so the main executable will still be called
rs_pbrt). That might be a good time for a new release …
I’m continuing to contribute to Miri. I’m working on adding proper panic unwinding support, which should allow a greater variety of Rust programs to run successfully under Miri.
Announced libz blitz for
Got basic configurable control input working for my game, so players can specify what sequence characters will execute upon:
- Button press: for instant sequences, such as punch, shoot
- Button hold: for continuous sequences such as lasers
- Button release: for powered up moves, such as a charge shot release (mega buster)