# h-raylib changelog ## Changelog guidelines (apply to `5.5.0.0` onward) Changes ported from the upstream raylib code are not mentioned unless they are breaking changes. Changes and bug fixes in the h-raylib API are mentioned, breaking and non-breaking. Internal changes that do not change the API or affect functionality are not mentioned (e.g. performance improvements). ### Versioning scheme h-raylib's version numbers do not follow the usual format. The first two numbers in the version track the underlying C raylib version. For example, `5.1.x.x` versions use raylib 5.1 under the hood. The third number represents breaking changes (renamed/deleted functions or modules). The last number represents non-breaking changes (new functions or modules, bug fixes, etc). The safest version bound format to use is `h-raylib >=x.y.z.w && =` bound). ## Version 5.5.3.1 _14 October 2025_ - Fixed a bug with `setTraceLogCallback` not working properly ## Version 5.5.3.0 _14 August 2025_ - **BREAKING CHANGE**: Bracket functions now only work with the `IO` monad - \[[#60](https://github.com/Anut-py/h-raylib/issues/60)\] Added the `disable-lens` flag - Loosened version bounds ## Version 5.5.2.1 _28 October 2024_ - Bug fixes for web compilation ## Version 5.5.2.0 _21 October 2024_ - **BREAKING CHANGE**: `is*Ready` functions renamed to `is*Valid` (upstream change in raylib) - **BREAKING CHANGE**: `setGamepadVibration` takes a fourth argument, `duration` (upstream change in raylib) - Loosened the version bound on `base` ## Version 5.5.1.0 _11 October 2024_ - **BREAKING CHANGE**: `set*Callback` functions are no longer managed and do not return `IO C'*Callback` values - **BREAKING CHANGE**: Removed `loadImageSvg` (upstream change in raylib) - \[[#58](https://github.com/Anut-py/h-raylib/issues/58)\] Added support for `setTraceLogCallback` ## Version 5.5.0.0 _12 July 2024_ - **BREAKING CHANGE**: Reimplemented `Vector2/3/4` using `linear`'s `V2/3/4` - \[[#55](https://github.com/Anut-py/h-raylib/issues/55)\] **BREAKING CHANGE**: Completely reworked memory management (check `DOCUMENTATION.md` and the example programs) - Dropped ghc 8.10 support - \[[#54](https://github.com/Anut-py/h-raylib/issues/54)\] Exposed internal modules - \[[#56](https://github.com/Anut-py/h-raylib/issues/56)\] Fixed a bug with `loadFontEx` and other font-related functions not working ## Version 5.1.3.0 _13 April, 2024_ - Made some utility functions pure - Improved the performance of `Raylib.Util.Math` ## Version 5.1.2.0 _9 April, 2024_ - Internal changes for performance - Fixed a typo in `filePathList'capacity` (previously `filePathlist'capacity`) - Fixed marshalling bugs with `FilePathList` ## Version 5.1.1.0 _22 February, 2024_ - Split `Raylib.Types` into different modules (`Raylib.Types` reexports everything, so this will not break existing code) - Fixed `flake.nix` and `default.nix` - Exposed all the native functions - Added support for callbacks - Added more thorough Haddock documentation - Added pointer utility functions (`p'*`) - \[[#4](https://github.com/Anut-py/h-raylib/issues/4)\] Started working on web support - \[[#34](https://github.com/Anut-py/h-raylib/issues/34)\] Added bindings for raygui (`Raylib.Util.GUI`, `Raylib.Util.GUI.Styles`) ## Version 5.1.0.1 _16 January, 2024_ - Updated raylib to the master branch - \[[#26](https://github.com/Anut-py/h-raylib/pull/26)\] New `platform-nixos` build flag - \[[#27](https://github.com/Anut-py/h-raylib/pull/27), [#35](https://github.com/Anut-py/h-raylib/pull/35)\] Added flake.nix ## Version 4.6.0.7 _10 September, 2023_ - Updated raylib to the master branch ## Version 4.6.0.6 _24 July, 2023_ - Updated raylib to the master branch ## Version 4.6.0.5 _29 June, 2023_ - \[[#22](https://github.com/Anut-py/h-raylib/pull/22)\] Allowed `base-4.18` to support GHC 9.4 and higher - \[[#23](https://github.com/Anut-py/h-raylib/pull/23)\] Added helper functions in `Raylib.Util` as an alternative to the `begin*` and `end*` functions ## Version 4.6.0.4 _16 June, 2023_ - Updated raylib to the master branch - \[[#19](https://github.com/Anut-py/h-raylib/pull/19)\] Changed all the `Raylib.Util` functions to use `MonadIO` for flexibility - \[[#20](https://github.com/Anut-py/h-raylib/pull/20)\] Changed `CFloat` to `Float` in `drawCapsule` and `drawCapsuleWires` ## Version 4.6.0.3 _23 April, 2023_ - Updated raylib to the master branch - \[[#18](https://github.com/Anut-py/h-raylib/pull/18)\] Added lenses for raylib data structures ## Version 4.6.0.2 _8 April, 2023_ - Fixed a bug in `clamp` - Updated raylib to the master branch ## Version 4.6.0.1 _2 April, 2023_ - Created the `Raylib.Util.Math` and `Raylib.Util.Camera` modules. They are Haskell implementations of `raymath` and `rcamera`. - \[[#15](https://github.com/Anut-py/h-raylib/pull/15)\] Fixed a memory issue with `getFontDefault` ## Version 4.5.3.4 _19 March, 2023_ - Updated raylib to the master branch ## Version 4.5.3.3 _15 March, 2023_ - Added GHCi support (see README.md for usage instructions) - Updated raylib to the master branch - Removed global state; use `WindowResources` (see examples for usage) ## Version 4.5.3.2 _1 March, 2023_ - \[[#12](https://github.com/Anut-py/h-raylib/pull/12)\] Added rlgl bindings (`Raylib.Util.RLGL`) ## Version 4.5.3.1 _27 February, 2023_ - Added manual asset unloading functions - Updated raylib to the master branch - \[[#11](https://github.com/Anut-py/h-raylib/pull/11)\] Fixed a build issue on MacOS ## Version 4.5.3.0 _24 February, 2023_ - **BREAKING CHANGE**: Restructured project; the main modules are moved into `Raylib/Core` and `Raylib.Colors` is now `Raylib.Util.Colors` - Changed `setShaderValue` and `setShaderValueV` to consume Haskell values rather than `Ptr`s - Added the `Raylib.Util` module for utility functions ## Version 4.5.2.0 _21 February, 2023_ - **BREAKING CHANGE**: Removed asset unloading functions - **BREAKING CHANGE**: Changed `Camera3D` API to match C code - Added code to automatically unload assets - Added mathematical operators for vector types - Updated raylib to the master branch ## Version 4.5.1.1 _14 February, 2023_ - Added finalizers to auto-unload audio data - Fixed C include errors ## Version 4.5.1.0 _12 February, 2023_ - **BREAKING CHANGE**: Changed all types to minimize usage of `Ptr`s - **BREAKING CHANGE**: Split the `Raylib` module into six modules: `Raylib.Audio`, `Raylib.Core`, `Raylib.Models`, `Raylib.Shapes`, `Raylib.Text`, and `Raylib.Textures` - Added the internal `Freeable` typeclass to prevent memory leaks - \[[#8](https://github.com/Anut-py/h-raylib/issues/8)\] Added `Xext` as a dependency again ## Version 4.5.0.12 _14 January, 2023_ - Removed `ShaderLocationIndex` from some function types ## Version 4.5.0.11 _14 January, 2023_ - Fixed some function types - Allowed omitting fragment/vertex shaders in `loadShader` functions ## Version 4.5.0.10 _5 January, 2023_ - Restructured to make the examples easier to run - Updated raylib to the master branch ## Version 4.5.0.9 _23 December, 2022_ - Changed `setConfigFlags` and `setGesturesEnabled` to use an array of flags ## Version 4.5.0.8 _18 December, 2022_ - \[[#9](https://github.com/Anut-py/h-raylib/issues/9)\] Fixed an issue on Mac where `clang` failed to detect that `rglfw.c` was using objective-c ## Version 4.5.0.7 _26 November, 2022_ \[[#7](https://github.com/Anut-py/h-raylib/pull/7)\] - Removed all constants that were enums in the original C API and replaced them with sum types deriving `Enum` - Removed some `CInt` usage in the main API - Removed `Raylib.Constants` ## Version 4.5.0.6 _24 November, 2022_ - \[[#6](https://github.com/Anut-py/h-raylib/issues/6)\] Fixed `Font` marshalling ## Version 4.5.0.5 _19 November, 2022_ - Replaced `CInt` with `CBool` in `RayCollision` - Updated raylib to the master branch ## Version 4.5.0.4 _13 November, 2022_ - Replaced `CInt` with `CBool` for functions that return booleans - Removed `Xext` dependency (it is no longer required for Nix builds)