Actually, I think I've figured out (at least partially) what's wrong with my code. I will post my results once I get the opportunity to test my theory out.
On Wednesday, April 29, 2020 at 7:31:27 AM UTC-4, d4v3y_5c0n3s wrote: > > So, I made the changes which you suggested, but unfortunately, this > didn't resolve the issues. First, I tried modifying the macro for > Mix_GetError() in the SDL_mixer.cats file to what you suggested, but this > didn't seem to change the error message. Perhaps I missed something, > because I don't have a solid understanding of more complex C macros. My > changes can be seen here: > https://github.com/d4v3y5c0n3s/Goldelish-Engine/blob/master/source/SDL2/SDL_local.cats > > Next, I tried modifying the function definition for Mix_FadeInMusic() > in SDL_mixer.sats to match your suggested modifacation, but this didn't fix > the issue. Your suggestion is actually how I had previously written the > function, but I had changed it while experimenting to find the cause of the > issue I was encountering. When I pushed my changes to Github, I forgot to > revert that function to what it had been previously. My changes can be > seen here: > https://github.com/d4v3y5c0n3s/Goldelish-Engine/blob/master/source/SDL2/SDL_mixer.sats > > I appreciate the help, so thank you. > > *Here are the errors which I am currently getting after incorporating the > changes you suggested:* > > In file included from g_audio_dats.c:15: > g_audio_dats.c: In function 'audio_sound_play': > /home/d4v3y/ATS2-Postiats-0.4.0/ccomp/runtime/pats_ccomp_instrset.h:276:35: > warning: assignment discards 'const' qualifier from pointer target type > [-Wdiscarded-qualifiers] > #define ATSINSmove(tmp, val) (tmp = val) > ^ > g_audio_dats.c:753:1: note: in expansion of macro 'ATSINSmove' > ATSINSmove(tmp36, Mix_GetError()) ; > ^~~~~~~~~~ > g_audio_dats.c: In function 'audio_music_play': > g_audio_dats.c:931:11: error: storage size of 'tmpref41' isn't known > ATStmpdec(tmpref41, Mix_Music) ; > ^~~~~~~~ > /home/d4v3y/ATS2-Postiats-0.4.0/ccomp/runtime/pats_ccomp_instrset.h:209:33: > note: in definition of macro 'ATStmpdec' > #define ATStmpdec(tmp, hit) hit tmp > ^~~ > /home/d4v3y/ATS2-Postiats-0.4.0/ccomp/runtime/pats_ccomp_instrset.h:217:29: > error: dereferencing pointer to incomplete type 'Mix_Music' {aka 'struct > _Mix_Music'} > #define ATSderef(pmv, hit) (*(hit*)pmv) > /home/d4v3y/ATS2-Postiats-0.4.0/ccomp/runtime/pats_ccomp_instrset.h:276:37: > note: in definition of macro 'ATSINSmove' > #define ATSINSmove(tmp, val) (tmp = val) > ^~~ > g_audio_dats.c:960:22: note: in expansion of macro 'ATSSELrecsin' > ATSINSmove(tmpref41, ATSSELrecsin(ATSderef(arg0, Mix_Music), Mix_Music, > atslab__handle)) ; > ^~~~~~~~~~~~ > g_audio_dats.c:960:35: note: in expansion of macro 'ATSderef' > ATSINSmove(tmpref41, ATSSELrecsin(ATSderef(arg0, Mix_Music), Mix_Music, > atslab__handle)) ; > ^~~~~~~~ > /home/d4v3y/ATS2-Postiats-0.4.0/ccomp/runtime/pats_ccomp_instrset.h:276:35: > warning: assignment discards 'const' qualifier from pointer target type > [-Wdiscarded-qualifiers] > #define ATSINSmove(tmp, val) (tmp = val) > ^ > g_audio_dats.c:999:1: note: in expansion of macro 'ATSINSmove' > ATSINSmove(tmp50, Mix_GetError()) ; > ^~~~~~~~~~ > make: *** [Makefile:63: obj/g_audio_dats.o] Error 1 > > > On Tuesday, April 28, 2020 at 2:26:04 PM UTC-4, gmhwxi wrote: >> >> >>Ever since my previous question, I've been running into two issues with >> my SDL_mixer bindings. The first, is that I get a warning message whenever >> I use the function Mix_GetError() (the definition for this function may be >> found here: >> https://github.com/d4v3y5c0n3s/Goldelish-Engine/blob/master/source/SDL2/SDL_mixer.sats). >> >> The warning is as follows: >> >> g_audio_dats.c: In function 'audio_sound_play': >> >> /home/d4v3y/ATS2-Postiats-0.4.0/ccomp/runtime/pats_ccomp_instrset.h:276:35: >> warning: >> assignment discards 'const' qualifier fr >> om pointer target type [-Wdiscarded-qualifiers] >> #define ATSINSmove(tmp, val) (tmp = val) >> >> While this is only a warning, I would still like to know what is going >> wrong here. I looked at ATS-contrib's SDL binding, and found that the >> SDL_GetError() function there had the exact same problem. (The file for >> this function definition may be found here: >> https://github.com/githwxi/ATS-Postiats-contrib/blob/master/contrib/SDL2/SATS/SDL_error.sats >> ) >> >> Here is my guess: >> >> Mx_GetError() returns a const string; but it is assigned to a variable >> (tmp) which is not declared to be a const. >> >> I did the following: >> >> #define atscntrb_SDL2_SDL_GetError SDL_GetError >> >> which should probably be changed to the following: >> >> #define atscntrb_SDL2_SDL_GetError() ((char*)(SDL_GetError())) >> >> so as to suppress warnings like the one you encountered. >> >> --Hongwei >> >> >> >> >> >> On Tue, Apr 28, 2020 at 6:59 AM d4v3y_5c0n3s <[email protected]> wrote: >> >>> Ever since my previous question, I've been running into two issues >>> with my SDL_mixer bindings. The first, is that I get a warning message >>> whenever I use the function Mix_GetError() (the definition for this >>> function may be found here: >>> https://github.com/d4v3y5c0n3s/Goldelish-Engine/blob/master/source/SDL2/SDL_mixer.sats). >>> >>> The warning is as follows: >>> >>> g_audio_dats.c: In function 'audio_sound_play': >>> >>> /home/d4v3y/ATS2-Postiats-0.4.0/ccomp/runtime/pats_ccomp_instrset.h:276:35: >>> warning: >>> assignment discards 'const' qualifier fr >>> om pointer target type [-Wdiscarded-qualifiers] >>> #define ATSINSmove(tmp, val) (tmp = val) >>> >>> While this is only a warning, I would still like to know what is going >>> wrong here. I looked at ATS-contrib's SDL binding, and found that the >>> SDL_GetError() function there had the exact same problem. (The file for >>> this function definition may be found here: >>> https://github.com/githwxi/ATS-Postiats-contrib/blob/master/contrib/SDL2/SATS/SDL_error.sats >>> ) >>> >>> The second issue that I'm running into has to do with my >>> Mix_FadeInMusic() function (which is defined here: >>> https://github.com/d4v3y5c0n3s/Goldelish-Engine/blob/master/source/SDL2/SDL_mixer.sats). >>> >>> When I use this function, I get the following error message: >>> >>> g_audio_dats.c: In function 'audio_music_play': >>> g_audio_dats.c:931:11: error: storage size of 'tmpref41' isn't known >>> ATStmpdec(tmpref41, Mix_Music) ; >>> ^~~~~~~~ >>> >>> /home/d4v3y/ATS2-Postiats-0.4.0/ccomp/runtime/pats_ccomp_instrset.h:209:33: >>> note: >>> in definition of macro 'ATStmpdec' >>> #define ATStmpdec(tmp, hit) hit tmp >>> ^~~ >>> >>> /home/d4v3y/ATS2-Postiats-0.4.0/ccomp/runtime/pats_ccomp_instrset.h:217:29: >>> error: >>> dereferencing pointer to incomplete type ' >>> Mix_Music' {aka 'struct _Mix_Music'} >>> #define ATSderef(pmv, hit) (*(hit*)pmv) >>> >>> >>> The file *where I've been receiving these errors* is available >>> here: >>> https://github.com/d4v3y5c0n3s/Goldelish-Engine/blob/master/source/g_audio.dats. >>> >>> My full source code is available on Github here: >>> https://github.com/d4v3y5c0n3s/Goldelish-Engine. >>> >>> Any help is appreciated, and if you'd like me to provide any more >>> information, please ask for it. Also, if anyone knows of a great resource >>> for understanding how the internals of ATS work, please let me know. I >>> have a feeling that if I better understood how ATS worked, I would also >>> better understand what to do when I encounter error messages such as these. >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "ats-lang-users" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/ats-lang-users/e3db4fac-0969-406f-aaa5-02b3b2145a84%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/ats-lang-users/e3db4fac-0969-406f-aaa5-02b3b2145a84%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- You received this message because you are subscribed to the Google Groups "ats-lang-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ats-lang-users/5275c7ab-a79c-4e31-b487-298b8ce26246%40googlegroups.com.
