Ecosyste.ms: OpenCollective

An open API service for software projects hosted on Open Collective.

github.com/gbdev/rgbds

Rednex Game Boy Development System - An assembly toolchain for the Nintendo Game Boy and Game Boy Color
https://github.com/gbdev/rgbds

Clone test repositories with earlier --shallow-since dates

The previous dates were not reliably downloading the
necessary commit IDs for checkout to work.

4ee2eb845b6343ce761126afb5f7926b02b06cb3 authored almost 4 years ago
Resolve some TODO comments

- `out_PushSection` should not set `currentSection` to NULL because
PUSHS, PUSHC, and PUSHO co...

3fdf01c0f53297e4e8d2d7a19040abc594d75abf authored almost 4 years ago
Tested the ctz and clz shim functions

Their values match the GCC builtins for all
4,294,967,295 nonzero inputs.

1949a61c6fd6577e384bfaeb38d21464c9b43975 authored almost 4 years ago
Support Mac OS classic CR line endings in linkerscripts

This also refactors `readChar(file)` to `nextChar()` to be
more like the rgbasm lexer.

43cf20b155f9888b838ef226f348983923992380 authored almost 4 years ago
Support character escapes in linkerscript strings

This allows linkerscripts to refer to section names even if
they contain special characters: '\r...

e27a6d53a0219deda031496767e73999bb988b74 authored almost 4 years ago
Update the tested commits of pokecrystal, pokered, and ucity (#859)

These are the latest commits as of today. The pokecrystal and
pokered commits use rgbds 0.5.0 f...

d17e9c663e8b52e32c50b22e298a4240c7951b3d authored almost 4 years ago
Fix compiler warnings

As reported in #789

dd8f396227fafbfad52002f9eef9e8ff8ae8c4a0 authored almost 4 years ago
Fix RGBFIX option parsing on platforms with unsigned char

Such as Termux, once again.

b60853ea2184cef66faed4505838e6fa163e4fe0 authored almost 4 years ago
Enable _ISOC11_SOURCE

See #789

b936ca27abf52b33fc4eba0c2d20692ce374a868 authored almost 4 years ago
Use `size_t` for measuring nested depths

Multiple functions involve tracking the current depth
of a nested structure (symbol expansions, ...

e050803ed1acab5e378647d66c5da00f4f5fee09 authored almost 4 years ago
Parentheses in macro args prevent commas from starting new arguments

This is similar to C's behavior, and convenient for passing
function calls as single values, lik...

27f38770d4860305ef90922743f399eedf52de63 authored almost 4 years ago
Correct "| operator" line not including the pipe

db1f77f90b9441671df6382c13a9c5ef54663967 authored almost 4 years ago
Make invalid UTF-8 characters in strings non-fatal

STRLEN and STRSUB report the erroneous bytes

Fixes #848

4d21588eb27c19a2c69145ab343fc1217cd2f21d authored almost 4 years ago
Make failed macro arg expansions non-fatal

Expanding empty strings is valid but pointless;
macro args already skipped doing so, now other
`...

e596dbfc80112c5da0fa8906fc262c63bb6c63c9 authored almost 4 years ago
Add test case sort-algorithms.asm

This combines 0.5.0 and post-0.5.0 features:
print and println, strfmt, for loops,
def assignmen...

1aeaca2af602b19c5af2fc2bb2a71934eda2a0d0 authored almost 4 years ago
rgbds.7(7) shows an example of piping rgbasm to rgblink to rgbfix

This uses one line instead of three

267e4bc25c951c4817012b4696e81f39d08de321 authored almost 4 years ago
More specific "Symbol name too long" error messages

Identifiers, {interpolations} and \<macroArgs> are distinct

c3e27217ddb534a2837c4d6e80fe869d3aca6b08 authored almost 4 years ago
Shorten quine.asm with \(parenthesized) macro args

b0f8d75d1dbabc354aafb56d9a3d37b99e9209c5 authored almost 4 years ago
Support numeric symbol names in \(parentheses)

For example, \(_NARG) will get the last argument

7a314e7aff2a6e9a0f82cc7f98269276fcc167cb authored almost 4 years ago
Support multi-digit macro arguments in parentheses

This allows access to arguments past \9 without using 'shift'

637bbbdf4312ca6efb6eb4ad6ae4ad7f06d9357e authored almost 4 years ago
Switch from parentheses to angle brackets

`\(` is more likely to be a valid escape sequence in the
future (as is `\[`) and `\{` is already...

fe3521c7a4d8681fe68ea3b139761780c630a563 authored almost 4 years ago
Return a marker token at the end of any buffer

Removes the lexer hack mentioned in #778

7ac8bd6e240618fbfacfe9f0987bf089b7721b9c authored almost 4 years ago
Use midrule action values for captures' terminated status

Bison 3.1 introduces "typed midrule values", which would write
`<captureTerminated>{ ... }` and ...

7a587eb7d624d717d4af44682f59c4c39fc83392 authored almost 4 years ago
Eliminate `isAtEOF` by changing `yylex` control flow

`yylex` calls `yywrap` at the beginning of the next call, after it
has set `lexerState->lastToke...

8230e8165ca159736906e3bb33321800b360b061 authored almost 4 years ago
Capture termination status is equivalent to not having reached EOF

This avoids the need for a separate `terminated` flag

a727a0f81f0e56706e13f1ee860116090d566564 authored almost 4 years ago
Track nested interpolation depth even outside string literals

Fixes #837

be2572edca1eb97f5ca801d4e4380e757b04f314 authored almost 4 years ago
STRSUB and CHARSUB allow zero or negative positions

These are offsets from the end of the string, as if the
STRLEN or CHARLEN respectively were adde...

b1e6c7319792afa6aeda51fd83b891497dcccc4c authored almost 4 years ago
Make the `len` parameter optional in `STRSUB(str, pos, len)`

An unspecified length will continue to the end of the string.

dc5b7802c873ce2549e7443d2250e9eed73e1367 authored almost 4 years ago
Position -1 is the last character of a string

Position 0 is invalid, which matches with STRIN/STRRIN
returning 0 on failure.

cf2bbe6435b643660c747a3e170b18baa20e3000 authored almost 4 years ago
Update some whitespace after Hungarian prefixes were removed

Keep the parameter alignment and 100-char line limit

459773b3f0b26144e3756d9e510cca10f846ef15 authored almost 4 years ago
Get rid of Hungarian notation for good

Bye bye it was not nice knowing ya

6d0a3c75e9a79acec82fc1cae3e97fc6ba0b9d8e authored almost 4 years ago
Avoid generating CRLF'd release tarballs

Fixes #841

e35585960c5b814a00e216fdc6f7fa1503134250 authored almost 4 years ago
Only update documentation for gbdev/rgbds

Prevent the relevant GitHub Actions from running on forks

3bea7930a9ac84528f737940219fc1c5efc2895a authored almost 4 years ago
Implement SIZEOF("Section") and STARTOF("Section") (#766)

Updates the object file revision to 8

Fixes #765

52797b6f68bd470d538f5b12dff1c716eea4db09 authored almost 4 years ago
Implement CHARLEN and CHARSUB

Fixes #786

2005ed1df9a6abfbb693889129af15f78569282e authored almost 4 years ago
Let charmap_ConvertNext advance its output pointer

5108c5643cbcab4463c831c44c83a18298edf4cc authored almost 4 years ago
Allow OPT to modify -W

Warning flags are processed individually;
PUSHO and POPO (re)store all the warning states.

d43408f4f3dc7b8375e43ea5de77075726dcecfc authored almost 4 years ago
Allow OPT to modify -L

-L is a Boolean flag option, so you specify 'OPT L' or 'OPT !L'.

2c30ab8731ab1b9f3880b1a8f55e49abe2b625e9 authored almost 4 years ago
Release v0.5.0

432c769d604a481bdb96e9f13c53289ed5028b0b authored almost 4 years ago
Fix expansions that start from the end of another expansion (#839)

Do not free an expansion until its offset is *past* its size.
This means potentially freeing a ...

9923fa3eee8924d1fd49117bcbd9339e17a1a241 authored almost 4 years ago
Further simplify formatting code

- Remove redundant length checks before `memcpy`
- Coerce `sign` and `prefix` to boolean for `nu...

750e93be3de46f50220ce4920f064380ec9b704f authored almost 4 years ago
Fix interpolation/STRFMT overflow issues (#838)

Widths and fractional widths greater than 255 would overflow a
uint8_t and wrap around to small...

ee5da4468d061b5fa0f321643cec35b42aecbcdd authored almost 4 years ago
Revert "Fix interpolation/STRFMT overflow issues"

This reverts commit 992be3fd9bd5fd62d2955bb494e14ce5e47c73d4.

503c3b53649cc74218b281c35ff423d1fbdf83bf authored almost 4 years ago
Fix interpolation/STRFMT overflow issues

Widths and fractional widths greater than 255 would overflow a
uint8_t and wrap around to smalle...

992be3fd9bd5fd62d2955bb494e14ce5e47c73d4 authored almost 4 years ago
`readIdentifier` does not process characters that get truncated

Previously a '.' could be past the truncation limit but still
cause the identifier to be marked ...

c755fa3469af9c4179b36f7b06ef54a95b8eafeb authored almost 4 years ago
`readInterpolation` is limited by `nMaxRecursionDepth`

Fixes #837

e78a1d5bfd2840fa94c6a4c75a4e3aabeb904b70 authored almost 4 years ago
Remove unused function `hash_ReplaceElement`

d2f6def2eb6da8b16b90f0bba95ace24b45d255b authored almost 4 years ago
Make tests work on NixOS

Some distributions, such as NixOS and Guix, only have the /bin/sh and
/usr/bin/env binaries in s...

1ffd7cb5bbf1920ac6b51f39e7e2df59b7a787a7 authored almost 4 years ago
hash_AddElement: return the new node

8885f7bcf656626baeb0c4bcdf5239aea594efcf authored almost 4 years ago
Don't report hashmap collisions

This doesn't seem to be very useful, and keeping this "feature" is
difficult.

5334fc334e610b34c781891ea52072067d5f8b88 authored almost 4 years ago
hashmap: add hash_GetNode

f97663aa375e4220ca9c78f4b3215e987384dfac authored almost 4 years ago
charmap: Store hashmap nodes in charmap stack

This helps update all the pointers during reallocation.

215e26b478c1cbf5a5d5dd86e7ee027072acaaac authored almost 4 years ago
Add an .editorconfig

This automatically sets up the formatting settings in a number of
editors, regardless of the use...

08bdbd1949ee356acbc3f218f47bc8918ef4eff3 authored almost 4 years ago
Store the nested expansions starting from the deepest one (#829)

This shortens the lexer by 100 lines and simplifies
access to expansion contents, since it usua...

5c852c76515c2a1cc73d7dd91ec294324622eef6 authored almost 4 years ago
`peek(0)` => `peek()`

This does not completely refactor `peek` as #708 suggested,
to make it shift and cache a charact...

eba06404f036f17819b6a51e01bd246ef993f7d2 authored almost 4 years ago
`shiftChars(1)` => `shiftChar()`

Only two sites were for distances greater than 1:
a `shiftChars(2)`, trivial to just do two `shi...

9558ccea1bb2e8af593cfe8f26e541731318ce3a authored almost 4 years ago
expansionOfs cannot be negative

lexerState->expansionOfs is always either set to 0, or updated by
adding a positive quantity:

...

f69e666b00dcfc6cde763100af4049c50610f2dc authored almost 4 years ago
Lex `$ff00+c` without needing large `peek` lookahead

This also allows arbitrary amounts of whitespace in `$ff00 + c`,
instead of needing to fit in th...

260d372acd761f6310339a91f1cb1a7ce25e1805 authored almost 4 years ago
Get rid of `skip` in struct Expansion

This was only used to skip the two macro arg characters,
but shiftChar() can skip them before th...

8c90d9d2d70c3f7872730c467d3151704f06bcb5 authored almost 4 years ago
LexerState's 'size' and 'offset' for mmapped files are unsigned

These were using signed 'off_t' because that is the type of
'st_size' from 'stat()', but neither...

6be3584467ee5b56d7c7f857f8cbc70cd460d411 authored almost 4 years ago
Rephrase CONTRIBUTING.rst

Fix #729

4e1b0ce7930fc7201a42ca17669e81d088d0c5b2 authored almost 4 years ago
Document the release process in RELEASE.rst

Fix #718

363ee9578c6bfe11b5adb34952bfe65b3ddef717 authored almost 4 years ago
Mention alternative mnemonics in gbz80(7)

Fixes #819

8fa5a4255e93fd7a3eeec24e69ae4e90ec7696b4 authored almost 4 years ago
Use a `lookupExpansion`, but not as an X macro

Instead of defining `LOOKUP_PRE_NEST` and `LOOKUP_POST_NEST`,
pass a variable name and a block t...

b3312886fb4b40ac4cb806d1a1410da35980c870 authored almost 4 years ago
Refactor the lexer to not use the `lookupExpansion` X macro

This macro was only used twice, in `beginExpansion` and
`lexer_DumpStringExpansions`, with `getE...

7fc8a65d0a428f8ee6978619ad4bd5b0acb64749 authored almost 4 years ago
Remove the unused `calchash` djb2 hash function

Note that hashmap.c uses its own FNV-1a hash function

c278a361dadead172322198c8e325e8444b8b047 authored almost 4 years ago
Change how `print(c)` formats reported characters

Printable ASCII becomes single-quoted, using backslash
escapes if necessary. Unprintable charact...

ab79e6bede3342cfb79485cac29eb7c5651997b4 authored almost 4 years ago
Report garbage chars as their bytes; don't try decoding them as UTF-8

This decoding required high lookahead, and was not even
consistently useful (the `garbage_char` ...

850c78aaf47a167e64a01aa1dc07bbe558a7c282 authored almost 4 years ago
Rename `print` to `printChar`

This clarifies its usage, for printing a single character
in error messages.

a2f52867ad6e4cbdef43f4c28a57a5fba73417d5 authored almost 4 years ago
Remove 'inline' from functions not in headers

c08cf783c87e1e6eb48d73fe2701c121b76b6b7f authored almost 4 years ago
Remove unused function `removeLeadingZeros`

25a8518fbf9e664394ad859e4b99377bb0cbce4b authored almost 4 years ago
Define the UTC time components as EQU, not EQUS

Fixes #827

49174f4486b9ac85d949a5d11a3a361a37558e57 authored almost 4 years ago
Merge branch 'master' of https://github.com/gbdev/rgbds

81327b0d993f9800423edbc086ec3e6b8e13d140 authored almost 4 years ago
fstk_FindFile checks for sprintf failure

c0859e64f71a603be9feacd55dceaabdf7b45519 authored almost 4 years ago
Fix an unclosed file and unfreed memory in out_BinaryFileSlice

Use 'goto cleanup' in both out_BinaryFileSlice and out_BinaryFile

3e0b7d428f7a600ab9d899996176a2b514b116e2 authored almost 4 years ago
Add contact info for potential contributors

I'm going on a break, but I'll stay available if anyone wants to contribute.

ba3428314bcf5ef36ef2882d4b0a643dcfe7d8f0 authored almost 4 years ago
Define `__RGBDS_VERSION__` as the output of `rgbasm --version` (sans "rgbasm")

Fixes #824

bcb78f5d186592d66127f7f07e6c85d059f7ccb9 authored almost 4 years ago
Add assertion that an expansion's total len doesn't overflow

Typically not needed because the recursion depth limit should prevent it,
but it might help debu...

de7d1facf3609165bb8b8bb96e19022ef4f46dfc authored almost 4 years ago
Comment on REG_SP and REG_AF both being 3

No instruction needs to distinguish them both

310d34c655cd06dfdc579e29b4c1e3f831f8bd66 authored almost 4 years ago
Add a test case for unattainable SECTION UNION alignment

This test cases used to fail an assertion in `make develop`

39c38f98387c3b8ad0a285c8cb5948f101d37ce3 authored almost 4 years ago
Fix unattainable alignments to address 0

Fixes #818

576b063519f1b0ca8b60471314e376dea6fda73f authored almost 4 years ago
Factor out a common `strlen` into `beginExpansion`

This avoids the possibility of `size` not matching `str`

596e17ee61ea020a218d2885d86af195f088d8c6 authored almost 4 years ago
Flush stdout after PRINTLN

This allows debug PRINTLN statements to run even if
subsequent rgbasm directives cause a crash.

363b3d01341f3511b9316a78c7686e15901e5d66 authored almost 4 years ago
Do not expand empty strings

Fixes #813

c7ed9a275e793e9f6509cc6e900cb5d1c659c6b1 authored almost 4 years ago
Warn about backwards FOR loops with -Wbackwards-for (-Wall)

Fixes #816

49aac2961d01a395d60b6eeeb7467021b43498f6 authored almost 4 years ago
Speed up the `div-mod` test case

Test various explicit cases, not nested `for` loops
over thousands of cases

3741bd46171a143c5549422e8f55a2933b59eb97 authored almost 4 years ago
Robustly disallow overwriting builtin symbols (#817)

937c9888a4ed4269ee9d9f7ad4d697649b7f0ad1 authored almost 4 years ago
Some tests use the new `macro <name>` syntax

This happens to make quine.asm shorter

61a9bfd33cf9e620a39c337291adc69b9558ff57 authored almost 4 years ago
Handle errors when opening source file

Before this commit, opening a file for which the user didn't have
permission resulted in a "Bad ...

d08bcc455d372662ec687897ef46c1a3a299e5e9 authored almost 4 years ago
Require a plus sign in `ld hl, sp + <e8>`

Fixes #810

aaa92659ea2bb5d645392fa9c86fe82e020042b7 authored almost 4 years ago
Remove support for `ld bc/de/hl/sp` for `ld hl, bc/de/hl/sp`

Fixes #811

be877134e56b0ccf0293202d75dc6416311900c7 authored almost 4 years ago
Release 0.5.0-rc2

d05703c6925cc08e1827fffb52124262c5f97f19 authored almost 4 years ago
Update man page copyrights to 2021

5dbfafcc551cfe3513f124f1ecd34a96d44062b4 authored almost 4 years ago
Report "1 error", not "1 errors", when assembly is aborted

This matches other such pluralized error messages

a265b85d9dabc026778b3ef42de08d6ff5bcd2b6 authored almost 4 years ago
Output USED space, not FREE space, in the .map file

Fixes #808

28abf03c0a20ab47fee16c366539579434ae88ca authored almost 4 years ago
Assign section locations to all UNIONs/FRAGMENTs

Fixes the test case from #800

The `out.gb` output was corrected, since the two "test"
fragments...

7e7f92f18c38cbb755c6c067e42efa19655cd5b1 authored almost 4 years ago
Add LOAD FRAGMENT pc test (#800)

Reproduces a reported problem, fix pending

746117095688be84f9f4611f14d42644bf761776 authored almost 4 years ago
Merge pull request #804 from Rangi42/normal-backslash

Backslash in normal lexer mode must be a line continuation

57d966d6e00a94fe54d335cec750034af08c892a authored almost 4 years ago
Backslash in normal lexer mode must be a line continuation

Macro args were already handled by `peek`, and character escapes
do not exist outside of string ...

17752d7094e74752d5fc1efb2fc81f7efb3e5a2e authored almost 4 years ago
Init top-level fstack node line number

It still gets written to the object file, generating Valgrind warnings
about using uninitialized...

4216f0a9b0bd08d66ecb50e453d22a5d8c23da6b authored almost 4 years ago