Go to file
Gwilym Inzani 004116969c
Update Rust crate libc to 0.2.152 (#538)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [libc](https://togithub.com/rust-lang/libc) | dependencies | patch |
`0.2.151` -> `0.2.152` |

---

### Release Notes

<details>
<summary>rust-lang/libc (libc)</summary>

###
[`v0.2.152`](https://togithub.com/rust-lang/libc/releases/tag/0.2.152)

[Compare
Source](https://togithub.com/rust-lang/libc/compare/0.2.151...0.2.152)

##### What's Changed

- openbsd: syscall() has been removed in upcoming OpenBSD 7.5 by
[@&#8203;semarie](https://togithub.com/semarie) in
[https://github.com/rust-lang/libc/pull/3479](https://togithub.com/rust-lang/libc/pull/3479)
- adding tcp_info to openbsd by
[@&#8203;devnexen](https://togithub.com/devnexen) in
[https://github.com/rust-lang/libc/pull/3481](https://togithub.com/rust-lang/libc/pull/3481)
- iadding yser_fpxregs_struct data to linux/musl i686. by
[@&#8203;devnexen](https://togithub.com/devnexen) in
[https://github.com/rust-lang/libc/pull/3477](https://togithub.com/rust-lang/libc/pull/3477)
- strftime\* api for \*BSD by
[@&#8203;devnexen](https://togithub.com/devnexen) in
[https://github.com/rust-lang/libc/pull/3483](https://togithub.com/rust-lang/libc/pull/3483)
- strftime_l for Linux glibc/musl by
[@&#8203;devnexen](https://togithub.com/devnexen) in
[https://github.com/rust-lang/libc/pull/3484](https://togithub.com/rust-lang/libc/pull/3484)
- adding iocb data for io_submit syscall for linux/glibc. by
[@&#8203;devnexen](https://togithub.com/devnexen) in
[https://github.com/rust-lang/libc/pull/3486](https://togithub.com/rust-lang/libc/pull/3486)
- Re-enable `i686-pc-windows-gnu` CI by
[@&#8203;JohnTitor](https://togithub.com/JohnTitor) in
[https://github.com/rust-lang/libc/pull/3489](https://togithub.com/rust-lang/libc/pull/3489)
- Stop testing on FreeBSD 12 by
[@&#8203;asomers](https://togithub.com/asomers) in
[https://github.com/rust-lang/libc/pull/3475](https://togithub.com/rust-lang/libc/pull/3475)
- Add `ifreq`, `ifconf` and related constants to Android by
[@&#8203;arctic-alpaca](https://togithub.com/arctic-alpaca) in
[https://github.com/rust-lang/libc/pull/3487](https://togithub.com/rust-lang/libc/pull/3487)
- Add waitid function for OpenBSD by
[@&#8203;lcheylus](https://togithub.com/lcheylus) in
[https://github.com/rust-lang/libc/pull/3490](https://togithub.com/rust-lang/libc/pull/3490)
- adding SOMAXCONN to redox by
[@&#8203;devnexen](https://togithub.com/devnexen) in
[https://github.com/rust-lang/libc/pull/3491](https://togithub.com/rust-lang/libc/pull/3491)
- Fix typos in comments by
[@&#8203;asomers](https://togithub.com/asomers) in
[https://github.com/rust-lang/libc/pull/3492](https://togithub.com/rust-lang/libc/pull/3492)
- fix typos in libc by
[@&#8203;Takashiidobe](https://togithub.com/Takashiidobe) in
[https://github.com/rust-lang/libc/pull/3496](https://togithub.com/rust-lang/libc/pull/3496)
- apple adding tcp_connection_info struct by
[@&#8203;devnexen](https://togithub.com/devnexen) in
[https://github.com/rust-lang/libc/pull/3482](https://togithub.com/rust-lang/libc/pull/3482)
- Improve the version parser of Emscripten by
[@&#8203;kleisauke](https://togithub.com/kleisauke) in
[https://github.com/rust-lang/libc/pull/3498](https://togithub.com/rust-lang/libc/pull/3498)
- Add constants from \<include/linux/sched.h> by
[@&#8203;GuillaumeGomez](https://togithub.com/GuillaumeGomez) in
[https://github.com/rust-lang/libc/pull/3505](https://togithub.com/rust-lang/libc/pull/3505)
- Define `TFD_TIMER_*` constants on FreeBSD. by
[@&#8203;sunfishcode](https://togithub.com/sunfishcode) in
[https://github.com/rust-lang/libc/pull/3506](https://togithub.com/rust-lang/libc/pull/3506)
- Add support for posix_spawn on OpenBSD by
[@&#8203;nuudlman](https://togithub.com/nuudlman) in
[https://github.com/rust-lang/libc/pull/3502](https://togithub.com/rust-lang/libc/pull/3502)
- clock_nanosleep for dragonflybsd, moving constants freebsd only too.
by [@&#8203;devnexen](https://togithub.com/devnexen) in
[https://github.com/rust-lang/libc/pull/3509](https://togithub.com/rust-lang/libc/pull/3509)
- solarish add fcntl's O_DIRECT constant. by
[@&#8203;devnexen](https://togithub.com/devnexen) in
[https://github.com/rust-lang/libc/pull/3503](https://togithub.com/rust-lang/libc/pull/3503)
- Unpin cc dependency version by
[@&#8203;JohnTitor](https://togithub.com/JohnTitor) in
[https://github.com/rust-lang/libc/pull/3511](https://togithub.com/rust-lang/libc/pull/3511)
- redox: add openpty, login_tty, TIOCSCTTY, and organize functions by
[@&#8203;jackpot51](https://togithub.com/jackpot51) in
[https://github.com/rust-lang/libc/pull/3512](https://togithub.com/rust-lang/libc/pull/3512)
- Move all seccomp consts and structs into top-level mod by
[@&#8203;boustrophedon](https://togithub.com/boustrophedon) in
[https://github.com/rust-lang/libc/pull/3343](https://togithub.com/rust-lang/libc/pull/3343)
- freebsd 15 support proposal. by
[@&#8203;devnexen](https://togithub.com/devnexen) in
[https://github.com/rust-lang/libc/pull/3508](https://togithub.com/rust-lang/libc/pull/3508)
- Prepare workflow for merge queue by
[@&#8203;JohnTitor](https://togithub.com/JohnTitor) in
[https://github.com/rust-lang/libc/pull/3514](https://togithub.com/rust-lang/libc/pull/3514)
- Allow dead_code on `clockid_t` by
[@&#8203;JohnTitor](https://togithub.com/JohnTitor) in
[https://github.com/rust-lang/libc/pull/3516](https://togithub.com/rust-lang/libc/pull/3516)
- Add more items from `include/linux/sched.h` header by
[@&#8203;GuillaumeGomez](https://togithub.com/GuillaumeGomez) in
[https://github.com/rust-lang/libc/pull/3515](https://togithub.com/rust-lang/libc/pull/3515)
- fix typo by [@&#8203;shuoer86](https://togithub.com/shuoer86) in
[https://github.com/rust-lang/libc/pull/3517](https://togithub.com/rust-lang/libc/pull/3517)
- Add sigsuspend to more targets: bsd, haiku, and solarish by
[@&#8203;asomers](https://togithub.com/asomers) in
[https://github.com/rust-lang/libc/pull/3518](https://togithub.com/rust-lang/libc/pull/3518)
- Tweak libc-0.2 CI by
[@&#8203;JohnTitor](https://togithub.com/JohnTitor) in
[https://github.com/rust-lang/libc/pull/3519](https://togithub.com/rust-lang/libc/pull/3519)
- fuchsia adding pthread_set/getname_np by
[@&#8203;devnexen](https://togithub.com/devnexen) in
[https://github.com/rust-lang/libc/pull/3520](https://togithub.com/rust-lang/libc/pull/3520)
- Prepare docs for libc v0.3 by
[@&#8203;JohnTitor](https://togithub.com/JohnTitor) in
[https://github.com/rust-lang/libc/pull/3510](https://togithub.com/rust-lang/libc/pull/3510)
- Merge main into libc-0.2 by
[@&#8203;JohnTitor](https://togithub.com/JohnTitor) in
[https://github.com/rust-lang/libc/pull/3521](https://togithub.com/rust-lang/libc/pull/3521)
- Prepare release for v0.2.152 by
[@&#8203;JohnTitor](https://togithub.com/JohnTitor) in
[https://github.com/rust-lang/libc/pull/3522](https://togithub.com/rust-lang/libc/pull/3522)

##### New Contributors

- [@&#8203;Takashiidobe](https://togithub.com/Takashiidobe) made their
first contribution in
[https://github.com/rust-lang/libc/pull/3496](https://togithub.com/rust-lang/libc/pull/3496)
- [@&#8203;nuudlman](https://togithub.com/nuudlman) made their first
contribution in
[https://github.com/rust-lang/libc/pull/3502](https://togithub.com/rust-lang/libc/pull/3502)
- [@&#8203;boustrophedon](https://togithub.com/boustrophedon) made their
first contribution in
[https://github.com/rust-lang/libc/pull/3343](https://togithub.com/rust-lang/libc/pull/3343)
- [@&#8203;shuoer86](https://togithub.com/shuoer86) made their first
contribution in
[https://github.com/rust-lang/libc/pull/3517](https://togithub.com/rust-lang/libc/pull/3517)

**Full Changelog**:
https://github.com/rust-lang/libc/compare/0.2.151...0.2.152

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log [here](https://developer.mend.io/github/agbrs/agb).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->
2024-01-07 21:09:25 +00:00
.github Update actions/upload-artifact action to v4 2023-12-28 22:39:14 +00:00
.vscode go back to tab spacing 2023-04-25 20:39:25 +01:00
agb add docs for priority 2023-12-09 20:48:46 +00:00
agb-fixnum Release v0.18.0 2023-10-31 20:35:14 +00:00
agb-gbafix Update lockfiles 2024-01-07 15:10:41 +00:00
agb-hashmap Release v0.18.0 2023-10-31 20:35:14 +00:00
agb-image-converter Use ..Default::default() to make it clearer what we're changing 2023-12-05 20:50:33 +00:00
agb-macros Release v0.18.0 2023-10-31 20:35:14 +00:00
agb-sound-converter Release v0.18.0 2023-10-31 20:35:14 +00:00
book Update lockfiles 2024-01-07 15:10:41 +00:00
emulator Update lockfiles 2024-01-07 15:10:41 +00:00
examples Update lockfiles 2024-01-07 15:10:41 +00:00
template Release v0.18.0 2023-10-31 20:35:14 +00:00
tools Update lockfiles 2024-01-07 15:10:41 +00:00
tracker Release v0.18.0 2023-10-31 20:35:14 +00:00
.gitignore ignore tiled session 2023-08-29 21:45:11 +01:00
.gitmodules replace mgba-test-runner with better bindings 2023-08-08 09:48:07 +01:00
CHANGELOG.md Release v0.18.0 2023-10-31 20:35:14 +00:00
justfile Move the linkers scripts to the src directory so agb itself can change its script 2023-10-18 12:26:50 +01:00
LICENSE add project wide MPLv2 license 2021-05-29 15:22:19 +01:00
logo-original.png Add logo to repo and readme 2021-07-05 23:56:43 +01:00
README.md change emulator directory notes 2023-08-08 09:48:10 +01:00

AGB

Rust for the Game Boy Advance

Docs Build Licence Crates.io

AGB logo

This is a library for making games on the Game Boy Advance using the Rust programming language. The library's main focus is to provide an abstraction that allows you to develop games which take advantage of the GBA's capabilities without needing to have extensive knowledge of its low-level implementation.

agb provides the following features:

  • Simple build process with minimal dependencies
  • Built in importing of sprites, backgrounds, music and sound effects
  • High performance audio mixer
  • Easy to use sprite and tiled background usage
  • A global allocator allowing for use of both core and alloc

The documentation for the latest release can be found on docs.rs.

Getting started

The best way to get started with agb is to use the template, either within the template directory in this repository or cloning the template repository.

Once you have done this, you will find further instructions within the README in the template.

There is an (in progress) tutorial which you can find on the project website.

Help / Support

If you need any help, the discussions page is a great place to get help from the creators and contributors.

Feel free to create a new discussion in the Q&A category and we'll do our best to help!

Contributing to agb itself

In order to contribute to agb itself, you will need a few extra tools on top of what you would need to just write games for the Game Boy Advance using this library:

  • Recent rustup, see the rust website for instructions for your operating system.
    • You can update rustup with rustup update, or using your package manager if you obtained rustup in this way.
  • libelf and cmake
    • Debian and derivatives: sudo apt install libelf-dev cmake
    • Arch Linux and derivatives: pacman -S libelf cmake
  • mgba-test-runner
    • Run cargo install --path emulator/test-runner inside this directory
  • The 'just' build tool
    • Install with cargo install just
  • mdbook
    • Install with cargo install mdbook
  • miri
    • Some of the unsafe code is tested using miri, install with rustup component add miri

With all of this installed, you should be able to run a full build of agb using by running

just ci

Note that before you create a PR, please file an issue so we can discuss what you are looking to change.

Structure of the repo

agb-fixnum - a simple fixed point number storage since the GBA doesn't have a floating point unit, so required for performant decimals.

agb-image-converter - a crate which converts images in normal formats to a format supported by the game boy advance

agb-macros - miscellaneous proc-macros which have to be in a different crate

agb-sound-converter - a crate which converts wav files into a format supported by the game boy advance

agb-hashmap - an no_std hashmap implementation tuned for use on the game boy advance

agb - the main library code

agb/examples - basic examples often targeting 1 feature, you can run these using just run-example <example-name>

tracker - crates that make up the agb-tracker library which allows playing of tracker files

book - the source for the tutorial and website

book/games - games made as part of the tutorial

examples - bigger examples of a complete game, made during game jams

emulator - Rust bindings for the mgba emulator used for our purposes. Currently this does not accept contributions.

template - the source for the template repository

Stability

While agb is in the pre-1.0 phase, we follow a semi-semantic versioning scheme to ensure compatibility between minor releases. Specifically, any 0.x.y release is guaranteed to be compatible with another 0.x.z release provided that y > z, but there may be breaking changes between minor releases (i.e., changes to the second digit, e.g., between 0.1 and 0.2).

Once agb reaches version 1.0, we will transition to stronger semantic versioning, meaning that any breaking changes will be indicated by an increment to the major version (i.e., the first digit, e.g., from 1.0 to 2.0).

Acknowledgments

agb would not be possible without the help from the following (non-exhaustive) list of projects:

  • The amazing work of the rust-console for making this all possible in the first place
  • The asefile crate for loading aseprite files
  • agbabi for providing high performance alternatives to common methods
  • mgba for all the useful debugging / developer tools built in to the emulator

Licence

agb and all its subcrates are released under MPL version 2.0. See full licence text in the LICENSE file.

agb contains a subset of the code from agbabi which is released under a zlib style licence, details for which you can find under agb/src/agbabi.

The template is released under CC0 to allow you to make whatever changes you wish.

The agb logo is released under Creative Commons Attribution-ShareAlike 4.0

The music used for the examples is by Josh Woodward and released under Creative Commons Attribution 4.0