From 1c38c5a5f9931222f1f600732275b07de434aaf0 Mon Sep 17 00:00:00 2001 From: Kyle Benne Date: Fri, 7 Jul 2023 13:54:11 -0500 Subject: [PATCH 01/15] Reorganize cli options [WIP] The new options are not yet connected. --- cli/main.cpp | 281 +++++++++++------- energyplus/actuatortypes.hpp | 2 +- .../build_and_import_open_modelica.cmake | 1 + 3 files changed, 172 insertions(+), 112 deletions(-) diff --git a/cli/main.cpp b/cli/main.cpp index e16082e34..08393ab2a 100644 --- a/cli/main.cpp +++ b/cli/main.cpp @@ -39,135 +39,156 @@ void handle_eptr(std::exception_ptr eptr) } } -int main(int argc, const char *argv[]) // NOLINT exception may escape from main +void main_command(CLI::App &app, [[maybe_unused]] nlohmann::json &user_input) { - CLI::App app{"Spawn of EnergyPlus"}; + app.set_help_all_flag("-H, --expanded-help", "Show expanded help for all subcommands"); - spdlog::cfg::load_env_levels(); + auto print_version = []() { std::cout << "Spawn-" << spawn::version_string() << std::endl; }; + app.add_flag_callback("-v,--version", print_version, "Print version info and exit"); - auto versionOption = app.add_flag("-v,--version", "Print version info and exit"); - auto verboseOption = app.add_flag("--verbose", "Use verbose logging"); - - std::string jsonInput = "spawn.json"; - auto createOption = app.add_option("-c,--create", jsonInput, "Create a standalone FMU based on json input", true); - - std::string outputPath; - auto outputPathOption = app.add_option("--output-path", - outputPath, - "Full path including filename and extension where the fmu should be placed. " - "Intermediate directories will be created if necessary", - true); - outputPathOption->needs(createOption); - - std::string outputDir; - auto outputDirOption = - app.add_option("--output-dir", - outputDir, - "Directory where the fmu should be placed. This path will be created if necessary", - true); - outputDirOption->needs(createOption); - outputDirOption->excludes(outputPathOption); - outputPathOption->excludes(outputDirOption); - - bool nozip = false; - auto zipOption = app.add_flag("--no-zip", nozip, "Stage FMU files on disk without creating a zip archive"); - zipOption->needs(createOption); - - bool nocompress = false; - auto compressOption = app.add_flag( - "--no-compress", - nocompress, - "Skip compressing the contents of the fmu zip archive. An uncompressed zip archive will be created instead"); - compressOption->needs(createOption); - - auto outputVarsOption = - app.add_flag("--output-vars", "Report the EnergyPlus output variables supported by this version of Spawn"); - - auto actuatorsOption = - app.add_flag("--actuators", "Report the EnergyPlus actuators supported by this version of Spawn"); + auto make_verbose = []() {}; + app.add_flag_callback("--verbose", make_verbose, "Use verbose logging"); +} +void modelica_command(CLI::App &app, nlohmann::json &user_input) +{ #if defined ENABLE_MODELICA_COMPILER - auto modelicaCommand = app.add_subcommand("modelica", "Subcommand for Modelica operations"); - std::string moinput; - auto createModelicaFMUOption = - modelicaCommand->add_option("--create-fmu", moinput, "Compile Modelica model to FMU format", true); + auto modelica_command = app.add_subcommand("modelica", "Subcommand for Modelica operations"); + modelica_command->add_option( + "--modelica-path", user_input["modelica"]["modelica-path"], "Additional Modelica search paths"); + modelica_command->add_flag("--optimica", user_input["modelica"]["optimica"], "Use Optimica compiler"); - std::vector modelicaPaths; - auto modelicaPathsOption = - modelicaCommand->add_option("--modelica-path", modelicaPaths, "Additional Modelica search paths"); - modelicaPathsOption->needs(createModelicaFMUOption); + auto create_fmu_command = modelica_command->add_subcommand("create-fmu", "Compile Modelica model to FMU format"); + create_fmu_command->add_option("Model", user_input["modelica"]["create-fmu"]["model"], "Modelica model path"); + create_fmu_command->add_option("--fmu-type", user_input["modelica"]["create-fmu"]["fmu-type"], "FMU Type, CS or ME"); - bool optimica = false; - auto optimicaOption = modelicaCommand->add_flag("--optimica", optimica, "Use Optimica compiler"); - optimicaOption->needs(createModelicaFMUOption); + create_fmu_command->callback( + [&user_input]() { std::cout << "create-fmu callback input: " << user_input << std::endl; }); +#endif +} - std::string fmuType = toString(spawn::fmu::FMUType::CS); - auto fmuTypeOption = modelicaCommand->add_option("--fmu-type", fmuType, "FMU Type, CS or ME"); - fmuTypeOption->needs(createModelicaFMUOption); +void energyplus_command(CLI::App &app, nlohmann::json &user_input) +{ + auto energyplus_command = app.add_subcommand("energyplus", "Subcommand for EnergyPlus related operations"); + energyplus_command->add_flag("-v, --version", "Print version info about the embedded EnergyPlus software"); - auto makeOption = app.add_flag("-f", "compile a Modelica external function, acting like 'make'"); -#endif + auto fmu_command = energyplus_command->add_subcommand("create-fmu", "Create a standalone FMU based on json input"); - auto fmuCommand = app.add_subcommand("fmu", "Subcommand for FMU related operations"); - std::string fmuinput; - double fmustart = 0.0; - double fmustop = 60.0; - double fmustep = 0.001; - auto fmuSimulateOption = fmuCommand->add_option("--simulate", fmuinput, "Simulate the FMU located at the given path"); - auto fmuStartOption = fmuCommand->add_option("--start", fmustart, "Simulation start time"); - fmuStartOption->needs(fmuSimulateOption); - auto fmuStopOption = fmuCommand->add_option("--stop", fmustop, "Simulation stop time"); - fmuStopOption->needs(fmuSimulateOption); - auto fmuStepOption = fmuCommand->add_option("--step", fmustep, "Simulation step size"); - fmuStepOption->needs(fmuSimulateOption); + auto &fmu_input_path = user_input["energyplus"]["create-fmu"]["input"]; + fmu_command->add_option("INPUT_FILE_PATH", fmu_input_path, "Spawn input file"); - auto energyplusCommand = app.add_subcommand("energyplus", "Subcommand for EnergyPlus related operations"); - auto energyplusVersionOption = - energyplusCommand->add_flag("-v, --version", "Print version info about the embedded EnergyPlus software"); + auto &fmu_output_path = user_input["energyplus"]["create-fmu"]["output-path"]; + constexpr auto output_path_doc = "Full path including filename and extension where the fmu should be placed"; + fmu_command->add_option("--output-path", fmu_output_path, output_path_doc); - app.allow_extras(); + auto &fmu_output_dir = user_input["energyplus"]["create-fmu"]["output-dir"]; + constexpr auto output_dir_doc = "Directory where the fmu should be placed. This path will be created if necessary"; + fmu_command->add_option("--output-dir", fmu_output_dir, output_dir_doc); - CLI11_PARSE(app, argc, argv); + auto &no_zip = user_input["energyplus"]["create-fmu"]["no-zip"]; + constexpr auto no_zip_doc = "Stage FMU files on disk without creating a zip archive"; + fmu_command->add_flag("--no-zip", no_zip, no_zip_doc); - std::exception_ptr eptr; + auto &no_compress = user_input["energyplus"]["create-fmu"]["no-compress"]; + constexpr auto no_compress_doc = + "Skip compressing the contents of the fmu zip archive. An uncompressed zip archive will be created instead"; + fmu_command->add_flag("--no-compress", no_compress, no_compress_doc); - try { - if (*verboseOption) { - spdlog::set_level(spdlog::level::trace); - } else { - spdlog::set_pattern("%v"); - spdlog::set_level(spdlog::level::info); - } + constexpr auto output_vars_doc = "Report the EnergyPlus output variables supported by this version of Spawn"; + auto output_vars_command = energyplus_command->add_subcommand("list-output-variables", output_vars_doc); + auto output_vars_callback = [&user_input]() { std::cout << "output vars input: " << user_input << std::endl; }; + output_vars_command->callback(output_vars_callback); - if (*createOption) { - spawn::energyplusToFMU( - jsonInput, nozip, nocompress, outputPath, outputDir, spawn::idd_install_path(), spawn::epfmi_install_path()); -#if defined ENABLE_MODELICA_COMPILER - } else if (*createModelicaFMUOption) { - auto optimica = spawn::Optimica(); - std::ignore = - optimica.generateFMU(moinput, spawn_fs::current_path(), modelicaPaths, spawn::fmu::toFMUType(fmuType)); - } else if (*makeOption) { - auto optimica = spawn::Optimica(); - optimica.makeModelicaExternalFunction(app.remaining(true)); -#endif - } else if (*versionOption) { - std::cout << "Spawn-" << spawn::version_string() << std::endl; - } else if (*energyplusVersionOption) { - std::cout << EnergyPlus::DataStringGlobals::VerString << std::endl; - } else if (*outputVarsOption) { - std::cout << nlohmann::json(outputtypes).dump(4) << std::endl; - } else if (*actuatorsOption) { - std::cout << nlohmann::json(actuatortypes).dump(4) << std::endl; - } else if (*fmuSimulateOption) { - spawn::fmu::Sim sim(fmuinput); - nlohmann::json config; - config["start"] = fmustart; - config["stop"] = fmustop; - config["step"] = fmustep; - sim.run(config); + constexpr auto actuators_doc = "Report the EnergyPlus output variables supported by this version of Spawn"; + auto actuators_command = energyplus_command->add_subcommand("list-actuators", actuators_doc); + auto actuators_vars_callback = [&user_input]() { std::cout << "actuators input: " << user_input << std::endl; }; + actuators_command->callback(actuators_vars_callback); +} + +void cc_command(CLI::App &app, [[maybe_unused]] nlohmann::json &user_input) +{ + auto cc_command = app.add_subcommand("cc", "Subcommand for C compiler with a 'make' style interface"); + cc_command->allow_extras(); +} + +void fmu_command(CLI::App &app, nlohmann::json &user_input) +{ + auto fmu_command = app.add_subcommand("fmu", "Subcommand for FMU related operations"); + auto simulate_command = fmu_command->add_subcommand("simulate", "Simulate an existing FMU"); + + auto &start = user_input["fmu"]["simulate"]["start"].get_ref(); + simulate_command->add_option("--start", start, "Simulation start time"); + auto &stop = user_input["fmu"]["simulate"]["stop"].get_ref(); + simulate_command->add_option("--stop", stop, "Simulation stop time"); + auto &step = user_input["fmu"]["simulate"]["step"].get_ref(); + simulate_command->add_option("--step", step, "Simulation step size"); + auto &fmu_path = user_input["fmu"]["simulate"]["fmu_path"]; + simulate_command->add_option("FMU_PATH", fmu_path, "FMU path"); + + auto callback = [&user_input]() { std::cout << "fmu_command input: " << user_input << std::endl; }; + simulate_command->callback(callback); +} + +int main(int argc, const char *argv[]) // NOLINT exception may escape from main +{ + spdlog::cfg::load_env_levels(); + + // clang-format off + nlohmann::json user_input = { + {"verbose", false}, + {"modelica", + { + {"modelica-path", ""}, + {"optimica", false}, + {"create-fmu", + { + {"model", ""}, + {"fmu-type", toString(spawn::fmu::FMUType::CS)} + } + } + } + }, + {"energyplus", + { + {"create-fmu", + { + {"input", ""}, + {"output-path", ""}, + {"output-dir", ""}, + {"no-zip", false}, + {"no-compress", false} + } + } + } + }, + {"cc", {}}, + {"fmu", + { + {"simulate", + { + {"fmu_path", ""}, + {"start", 0.0}, + {"stop", 60.0}, + {"step", 0.001} + } + } + } } + }; + // clang-format on + + CLI::App app{"Spawn of EnergyPlus"}; + + main_command(app, user_input); + modelica_command(app, user_input); + energyplus_command(app, user_input); + cc_command(app, user_input); + fmu_command(app, user_input); + std::exception_ptr eptr; + + try { + CLI11_PARSE(app, argc, argv); } catch (...) { eptr = std::current_exception(); } @@ -178,4 +199,42 @@ int main(int argc, const char *argv[]) // NOLINT exception may escape from main } else { return 0; } + + // if (*verboseOption) { + // spdlog::set_level(spdlog::level::trace); + // } else { + // spdlog::set_pattern("%v"); + // spdlog::set_level(spdlog::level::info); + // } + // + // if (*createOption) { + // spawn::energyplusToFMU( + // jsonInput, nozip, nocompress, outputPath, outputDir, spawn::idd_install_path(), + // spawn::epfmi_install_path()); + // #if defined ENABLE_MODELICA_COMPILER + // } else if (*createFMUCommand) { + // auto optimica = spawn::Optimica(); + // std::ignore = + // optimica.generateFMU(moinput, spawn_fs::current_path(), modelicaPaths, spawn::fmu::toFMUType(fmuType)); + // } else if (*makeOption) { + // auto optimica = spawn::Optimica(); + // optimica.makeModelicaExternalFunction(app.remaining(true)); + // #endif + // } else if (*versionOption) { + // std::cout << "Spawn-" << spawn::version_string() << std::endl; + // } else if (*energyplusVersionOption) { + // std::cout << EnergyPlus::DataStringGlobals::VerString << std::endl; + // } else if (*outputVarsOption) { + // std::cout << nlohmann::json(outputtypes).dump(4) << std::endl; + // } else if (*actuatorsOption) { + // std::cout << nlohmann::json(actuatortypes).dump(4) << std::endl; + // } else if (*fmuSimulateOption) { + // spawn::fmu::Sim sim(fmuinput); + // nlohmann::json config; + // config["start"] = fmustart; + // config["stop"] = fmustop; + // config["step"] = fmustep; + // sim.run(config); + // } + // } diff --git a/energyplus/actuatortypes.hpp b/energyplus/actuatortypes.hpp index 2d36ae531..fa3bde9bf 100644 --- a/energyplus/actuatortypes.hpp +++ b/energyplus/actuatortypes.hpp @@ -15,7 +15,7 @@ struct ActuatorProperties spawn::units::UnitType epUnitType; }; -static void to_json(nlohmann::json &j, const ActuatorProperties &p) +[[maybe_unused]] static void to_json(nlohmann::json &j, const ActuatorProperties &p) { j = nlohmann::json{{"componentType", p.componentType}, {"controlType", p.controlType}, diff --git a/open_modelica/cmake/build_and_import_open_modelica.cmake b/open_modelica/cmake/build_and_import_open_modelica.cmake index 9f0ac19ab..1603cb86a 100644 --- a/open_modelica/cmake/build_and_import_open_modelica.cmake +++ b/open_modelica/cmake/build_and_import_open_modelica.cmake @@ -40,6 +40,7 @@ ExternalProject_Add( GIT_TAG v1.20.0 GIT_SHALLOW GIT_SUBMODULES_RECURSE 1 + # CMAKE_ARGS -DBLA_STATIC=1 ) set_property( From 57d3852f765c6db2c37d3c096d67b7e7752b4191 Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Tue, 1 Aug 2023 16:11:13 -0600 Subject: [PATCH 02/15] Initial update for c_bridge --- c_compiler/c_bridge/c_bridge.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/c_compiler/c_bridge/c_bridge.c b/c_compiler/c_bridge/c_bridge.c index 567078c1e..58b27b79b 100644 --- a/c_compiler/c_bridge/c_bridge.c +++ b/c_compiler/c_bridge/c_bridge.c @@ -41,14 +41,4 @@ int snprintf_wrap(char *restrict buffer, size_t bufsz, const char *restrict form return ret; } -// string.h -void *memset_wrap(void *dest, int ch, size_t count) -{ - return memset(dest, ch, count); -} - -// math.h -double cos_wrap(double input) -{ - return cos(input); -} + From 44cc8e78f0c23c62c1239b5f8253d08b0b29096b Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Tue, 1 Aug 2023 17:42:21 -0600 Subject: [PATCH 03/15] Update c_bridge.h with moar --- c_compiler/c_bridge/c_bridge.h | 708 ++++++++++++++++++++++++++++++++- 1 file changed, 705 insertions(+), 3 deletions(-) diff --git a/c_compiler/c_bridge/c_bridge.h b/c_compiler/c_bridge/c_bridge.h index b041c5c7c..d9dc892ae 100644 --- a/c_compiler/c_bridge/c_bridge.h +++ b/c_compiler/c_bridge/c_bridge.h @@ -100,11 +100,713 @@ C_BRIDGE_API double cos_wrap(double); // stdio.h #define snprintf snprintf_wrap -// string.h -#define memset memset_wrap +/// Created by: https://docs.google.com/spreadsheets/d/126iyiRC-fspn9O-0QV39JneEetiVtKzm_KmFJkNxPGo/edit?usp=sharing -// math.h +/// +/// assert.h +/// + +C_BRIDGE_API void assert_wrap(int expression); + + +/// +/// ctype.h +/// + +C_BRIDGE_API int isalnum_wrap(int c); +C_BRIDGE_API int isalpha_wrap(int c); +C_BRIDGE_API int isascii_wrap(int c); +C_BRIDGE_API int isblank_wrap(int c); +C_BRIDGE_API int iscntrl_wrap(int c); +C_BRIDGE_API int isdigit_wrap(int c); +C_BRIDGE_API int isgraph_wrap(int c); +C_BRIDGE_API int islower_wrap(int c); +C_BRIDGE_API int isprint_wrap(int c); +C_BRIDGE_API int ispunct_wrap(int c); +C_BRIDGE_API int isspace_wrap(int c); +C_BRIDGE_API int isupper_wrap(int c); +C_BRIDGE_API int toascii_wrap(int c); +C_BRIDGE_API int tolower_wrap(int c); +C_BRIDGE_API int toupper_wrap(int c); + + +/// +/// langinfo.h +/// + +C_BRIDGE_API char *nl_langinfo_wrap(nl_item item); + + +/// +/// locale.h +/// + +C_BRIDGE_API struct lconv *localeconv_wrap(void); +C_BRIDGE_API char *setlocale_wrap(int category, const char *locale); +C_BRIDGE_API struct wcslconv *wcslocaleconv_wrap(void); + + +/// +/// math.h +/// + +C_BRIDGE_API double acos_wrap(double x); +C_BRIDGE_API double asin_wrap(double x); +C_BRIDGE_API double atan_wrap(double x); +C_BRIDGE_API double atan2_wrap(double y, double x); +C_BRIDGE_API double ceil_wrap(double x); +C_BRIDGE_API double cos_wrap(double x); +C_BRIDGE_API double cosh_wrap(double x); +C_BRIDGE_API double erf_wrap(double x); +C_BRIDGE_API double erfc_wrap(double x); +C_BRIDGE_API double exp_wrap(double x); +C_BRIDGE_API double fabs_wrap(double x); +C_BRIDGE_API double floor_wrap(double x); +C_BRIDGE_API double fmod_wrap(double x, double y); +C_BRIDGE_API double frexp_wrap(double x, int *expptr); +C_BRIDGE_API double gamma_wrap(double x); +C_BRIDGE_API double hypot_wrap(double side1, double side2); +C_BRIDGE_API double j0_wrap(double x); +C_BRIDGE_API double j1_wrap(double x); +C_BRIDGE_API double jn_wrap(int n, double x); +C_BRIDGE_API double ldexp_wrap(double x, int exp); +C_BRIDGE_API double log_wrap(double x); +C_BRIDGE_API double log10_wrap(double x); +C_BRIDGE_API double modf_wrap(double x, double *intptr); +C_BRIDGE_API double nextafter_wrap(double x, double y); +C_BRIDGE_API long double nextafterl_wrap(long double x, long double y); +C_BRIDGE_API double nexttoward_wrap(double x, long double y); +C_BRIDGE_API long double nexttowardl_wrap(long double x, long double y); +C_BRIDGE_API double pow_wrap(double x, double y); +// C_BRIDGE_API _Decimal128 quantized128_wrap(_Decimal128 x, _Decimal128 y); +// C_BRIDGE_API _Decimal32 quantized32_wrap(_Decimal32 x, _Decimal32 y); +// C_BRIDGE_API _Decimal64 quantized64_wrap(_Decimal64 x, _Decimal64 y); +// C_BRIDGE_API int quantexpd128_wrap(_Decimal128 x); +// C_BRIDGE_API int quantexpd32_wrap(_Decimal32 x); +// C_BRIDGE_API int quantexpd64_wrap(_Decimal64 x); +// C_BRIDGE_API __bool__ samequantumd128_wrap(_Decimal128 x, _Decimal128 y); +// C_BRIDGE_API __bool__ samequantumd32_wrap(_Decimal32 x, _Decimal32 y); +// C_BRIDGE_API __bool__ samequantumd64_wrap(_Decimal64 x, _Decimal64 y); +C_BRIDGE_API double sin_wrap(double x); +C_BRIDGE_API double sinh_wrap(double x); +C_BRIDGE_API double sqrt_wrap(double x); +C_BRIDGE_API double tan_wrap(double x); +C_BRIDGE_API double tanh_wrap(double x); +C_BRIDGE_API double y0_wrap(double x); +C_BRIDGE_API double y1_wrap(double x); +C_BRIDGE_API double yn_wrap(int n, double x); + + +/// +/// nl_types.h +/// + +C_BRIDGE_API int catclose_wrap(nl_catd catd); +C_BRIDGE_API char *catgets_wrap(nl_catd catd, int set_id, int msg_id, const char *s); +C_BRIDGE_API nl_catd catopen_wrap(const char *name, int oflag); + + +/// +/// regex.h +/// + +// C_BRIDGE_API int regcomp_wrap(regex_t *preg, const char *pattern, int cflags); +// C_BRIDGE_API size_t regerror_wrap(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size); +// C_BRIDGE_API int regexec_wrap(const regex_t *preg, const char *string, size_t nmatch, regmatch_t *pmatch, int eflags); +// C_BRIDGE_API void regfree_wrap(regex_t *preg); + + +/// +/// setjmp.h +/// + +C_BRIDGE_API void longjmp_wrap(jmp_buf env, int value); +C_BRIDGE_API int setjmp_wrap(jmp_buf env); + + +/// +/// signal.h +/// + +C_BRIDGE_API int raise_wrap(int sig); +// C_BRIDGE_API void_wrap(*signal _wrap(int sig, void_wrap(*func)_wrap(int))) _wrap(int); + + +/// +/// stdarg.h +/// + +// C_BRIDGE_API var_type va_arg_wrap(va_list arg_ptr, var_type); +// C_BRIDGE_API void va_copy_wrap(va_list dest, va_list src); +// C_BRIDGE_API void va_end_wrap(va_list arg_ptr); +// C_BRIDGE_API void va_start_wrap(va_list arg_ptr, variable_name); + + +/// +/// wchar.h +/// + +// C_BRIDGE_API int vfwprintf_wrap(FILE *stream, const wchar_t *format, va_list arg); +// C_BRIDGE_API int vswprintf_wrap(wchar_t *wcsbuffer, size_t n, const wchar_t *format, va_list arg); +// C_BRIDGE_API int vwprintf_wrap(const wchar_t *format, va_list arg); +// C_BRIDGE_API int wctob_wrap(wint_t wc); + + +/// +/// stdio.h +/// + +C_BRIDGE_API void clearerr_wrap(FILE *stream); +C_BRIDGE_API int fclose_wrap(FILE *stream); +C_BRIDGE_API FILE *fdopen_wrap(int handle, const char *type); +C_BRIDGE_API int feof_wrap(FILE *stream); +C_BRIDGE_API int ferror_wrap(FILE *stream); +C_BRIDGE_API int fflush_wrap(FILE *stream); +C_BRIDGE_API int fgetc_wrap(FILE *stream); +C_BRIDGE_API int fgetpos_wrap(FILE *stream, fpos_t *pos); +C_BRIDGE_API char *fgets_wrap(char *string, int n, FILE *stream); +C_BRIDGE_API int fileno_wrap(FILE *stream); +C_BRIDGE_API FILE *fopen_wrap(const char *filename, const char *mode); +// C_BRIDGE_API int fprintf_wrap(FILE *stream, const char *format_string, ...); +C_BRIDGE_API int fputc_wrap(int c, FILE *stream); +C_BRIDGE_API int fputs_wrap(const char *string, FILE *stream); +C_BRIDGE_API size_t fread_wrap(void *buffer, size_t size, size_t count, FILE *stream); +C_BRIDGE_API FILE *freopen_wrap(const char *filename, const char *mode, FILE *stream); +// C_BRIDGE_API int fscanf_wrap(FILE *stream, const char *format_string, ...); +C_BRIDGE_API int fseek_wrap(FILE *stream, long int offset, int origin); +C_BRIDGE_API int fsetpos_wrap(FILE *stream, const fpos_t *pos); +C_BRIDGE_API long int ftell_wrap(FILE *stream); +C_BRIDGE_API size_t fwrite_wrap(const void *buffer, size_t size,size_t count, FILE *stream); +C_BRIDGE_API int getc_wrap(FILE *stream); +C_BRIDGE_API int getchar_wrap(void); +C_BRIDGE_API char *gets_wrap(char *buffer); +C_BRIDGE_API void perror_wrap(const char *string); +// C_BRIDGE_API int printf_wrap(const char *format_string, ...); +C_BRIDGE_API int putc_wrap(int c, FILE *stream); +C_BRIDGE_API int putchar_wrap(int c); +C_BRIDGE_API int puts_wrap(const char *string); +C_BRIDGE_API int remove_wrap(const char *filename); +C_BRIDGE_API int rename_wrap(const char *oldname, const char *newname); +C_BRIDGE_API void rewind_wrap(FILE *stream); +C_BRIDGE_API int scanf_wrap(const char *format-string, arg-list); +C_BRIDGE_API void setbuf_wrap(FILE *stream, char *buffer); +C_BRIDGE_API int setvbuf_wrap(FILE *stream, char *buf, int type, size_t size); +// C_BRIDGE_API int snprintf_wrap(char *outbuf, size_t n, const char*, ...); +// C_BRIDGE_API int sprintf_wrap(char *buffer, const char *format_string, ...); +// C_BRIDGE_API int sscanf_wrap(const char *buffer, const char *format, ...); +C_BRIDGE_API FILE *tmpfile_wrap(void); +C_BRIDGE_API char *tmpnam_wrap(char *string); +C_BRIDGE_API int ungetc_wrap(int c, FILE *stream); +C_BRIDGE_API int vsnprintf_wrap(char *outbuf, size_t n, const char*, va_list); + + +/// +/// wchar.h +/// + +// C_BRIDGE_API wint_t btowc_wrap(int c); +// C_BRIDGE_API wint_t fgetwc_wrap(FILE *stream); +// C_BRIDGE_API wchar_t *fgetws_wrap(wchar_t *wcs, int n, FILE *stream); +// C_BRIDGE_API wint_t fputwc_wrap(wchar_t wc, FILE *stream); +// C_BRIDGE_API int fputws_wrap(const wchar_t *wcs, FILE *stream); +C_BRIDGE_API int fwide_wrap(FILE *stream, int mode); +// C_BRIDGE_API int fwprintf_wrap(FILE *stream, const wchar_t *format, ...); +// C_BRIDGE_API int fwscanf_wrap(FILE *stream, const wchar_t *format, ...) +// C_BRIDGE_API wint_t getwc_wrap(FILE *stream); +// C_BRIDGE_API wint_t putwchar_wrap(wchar_t wc, FILE *stream); +// C_BRIDGE_API wint_t ungetwc_wrap(wint_t wc, FILE *stream); + + +/// +/// stdio.h +/// + +C_BRIDGE_API int vfprintf_wrap(FILE *stream, const char *format, va_list arg_ptr); +C_BRIDGE_API int vprintf_wrap(const char *format, va_list arg_ptr); +C_BRIDGE_API int vsprintf_wrap(char *target-string, const char *format, va_list arg_ptr); +C_BRIDGE_API int vfscanf_wrap(FILE *stream, const char *format, va_list arg_ptr); +// C_BRIDGE_API int vfwscanf_wrap(FILE *stream, const wchar_t *format, va_list arg_ptr); +C_BRIDGE_API int vscanf_wrap(const char *format, va_list arg_ptr); +C_BRIDGE_API int vsscanf_wrap(const char*buffer, const char *format, va_list arg_ptr); +// C_BRIDGE_API int vswscanf_wrap(const wchar_t *buffer, const wchar_t *format, va_list arg_ptr); +// C_BRIDGE_API int vwscanf_wrap(const wchar_t *format, va_list arg_ptr); + + +/// +/// stdlib.h +/// + +C_BRIDGE_API void abort_wrap(void); +C_BRIDGE_API int abs_wrap(int n); +// C_BRIDGE_API int atexit_wrap(void _wrap(*func)_wrap(void)); +C_BRIDGE_API double atof_wrap(const char *string); +C_BRIDGE_API int atoi_wrap(const char *string); +C_BRIDGE_API long int atol_wrap(const char *string); +// C_BRIDGE_API void *bsearch_wrap(const void *key, const void *base, size_t num, size_t size, int _wrap(*compare) _wrap(const void *element1, const void *element2)); +C_BRIDGE_API void *calloc_wrap(size_t num, size_t size); +C_BRIDGE_API div_t div_wrap(int numerator, int denominator); +C_BRIDGE_API void exit_wrap(int status); +C_BRIDGE_API void free_wrap(void *ptr); +C_BRIDGE_API char *getenv_wrap(const char *varname); +C_BRIDGE_API long int labs_wrap(long int n); +C_BRIDGE_API ldiv_t ldiv_wrap(long int numerator, long int denominator); +C_BRIDGE_API void *malloc_wrap(size_t size); +C_BRIDGE_API int mblen_wrap(const char *string, size_t n); +// C_BRIDGE_API size_t mbstowcs_wrap(wchar_t *pwc, const char *string, size_t n); +// C_BRIDGE_API int mbtowc_wrap(wchar_t *pwc, const char *string, size_t n); +C_BRIDGE_API int *putenv_wrap(const char *varname); +// C_BRIDGE_API void qsort_wrap(void *base, size_t num, size_t width, int_wrap(*compare)_wrap(const void *element1, const void *element2)); +C_BRIDGE_API int rand_wrap(void); +C_BRIDGE_API int rand_r_wrap(void); +C_BRIDGE_API void *realloc_wrap(void *ptr, size_t size); +C_BRIDGE_API void srand_wrap(unsigned int seed); +C_BRIDGE_API double strtod_wrap(const char *nptr, char **endptr); +// C_BRIDGE_API _Decimal128 strtod128_wrap(const char *nptr, char **endptr); +// C_BRIDGE_API _Decimal32 strtod32_wrap(const char *nptr, char **endptr); +// C_BRIDGE_API _Decimal64 strtod64_wrap(const char *nptr, char **endptr); +C_BRIDGE_API float strtof_wrap(const char *nptr, char **endptr); +C_BRIDGE_API long int strtol_wrap(const char *nptr, char **endptr, int base); +C_BRIDGE_API long double strtold_wrap(const char *nptr, char **endptr); +C_BRIDGE_API unsigned long int strtoul_wrap(const char *string1, char **string2, int base); +C_BRIDGE_API int system_wrap(const char *string); +// C_BRIDGE_API size_t wcstombs_wrap(char *dest, const wchar_t *string, size_t count); +// C_BRIDGE_API int wctomb_wrap(char *string, wchar_t character); + + +/// +/// string.h +/// + +C_BRIDGE_API void *memchr_wrap(const void *buf, int c, size_t count); +C_BRIDGE_API int memcmp_wrap(const void *buf1, const void *buf2, size_t count); +C_BRIDGE_API void *memcpy_wrap(void *dest, const void *src, size_t count); +C_BRIDGE_API void *memmove_wrap(void *dest, const void *src, size_t count); +C_BRIDGE_API void *memset_wrap(void *dest, int c, size_t count); +C_BRIDGE_API char *strcat_wrap(char *string1, const char *string2); +C_BRIDGE_API char *strchr_wrap(const char *string, int c); +C_BRIDGE_API int strcmp_wrap(const char *string1, const char *string2); +C_BRIDGE_API int strcoll_wrap(const char *string1, const char *string2); +C_BRIDGE_API char *strcpy_wrap(char *string1, const char *string2); +C_BRIDGE_API size_t strcspn_wrap(const char *string1, const char *string2); +C_BRIDGE_API char *strerror_wrap(int errnum); +C_BRIDGE_API size_t strlen_wrap(const char *string); +C_BRIDGE_API char *strncat_wrap(char *string1, const char *string2, size_t count); +C_BRIDGE_API int strncmp_wrap(const char *string1, const char *string2, size_t count); +C_BRIDGE_API char *strncpy_wrap(char *string1, const char *string2, size_t count); +C_BRIDGE_API char *strpbrk_wrap(const char *string1, const char *string2); +C_BRIDGE_API char *strrchr_wrap(const char *string, int c); +C_BRIDGE_API size_t strspn_wrap(const char *string1, const char *string2); +C_BRIDGE_API char *strstr_wrap(const char *string1, const char *string2); +C_BRIDGE_API char *strtok_wrap(char *string1, const char *string2); +C_BRIDGE_API char *strtok_r_wrap(char *string, const char *seps, char **lasts); +C_BRIDGE_API size_t strxfrm_wrap(char *string1, const char *string2, size_t count); + + +/// +/// strings.h +/// + +C_BRIDGE_API int srtcasecmp_wrap(const char *string1, const char *string2); +C_BRIDGE_API int strncasecmp_wrap(const char *string1, const char *string2, size_t count); + + +/// +/// time.h +/// + +C_BRIDGE_API char *asctime_wrap(const struct tm *time); +C_BRIDGE_API char *asctime_r_wrap(const struct tm *tm, char *buf); +C_BRIDGE_API clock_t clock_wrap(void); +C_BRIDGE_API char *ctime_wrap(const time_t *time); +C_BRIDGE_API char *ctime_r_wrap(const time_t *time, char *buf); +// C_BRIDGE_API char *ctime64_wrap(const time64_t *time); +// C_BRIDGE_API char *ctime64_r_wrap(const time64_t *time, char *buf); +C_BRIDGE_API double difftime_wrap(time_t time2, time_t time1); +// C_BRIDGE_API double difftime64_wrap(time64_t time2, time64_t time1); +C_BRIDGE_API struct tm *gmtime_wrap(const time_t *time); +C_BRIDGE_API struct tm *gmtime_r_wrap(const time_t *time, struct tm *result); +// C_BRIDGE_API struct tm *gmtime64_wrap(const time64_t *time); +// C_BRIDGE_API struct tm *gmtime64_r_wrap(const time64_t *time, struct tm *result); +C_BRIDGE_API struct tm *localtime_wrap(const time_t *timeval); +C_BRIDGE_API struct tm *localtime_r_wrap(const time_t *timeval, struct tm *result); +// C_BRIDGE_API struct tm *localtime64_wrap(const time64_t *timeval); +// C_BRIDGE_API struct tm *localtime64_r_wrap(const time64_t *timeval, struct tm *result); +C_BRIDGE_API time_t mktime_wrap(struct tm *time); +// C_BRIDGE_API time64_t mktime64_wrap(struct tm *time); +C_BRIDGE_API size_t strftime_wrap(char *dest, size_t maxsize, const char *format, const struct tm *timeptr); +C_BRIDGE_API char *strptime_wrap(const char *buf, const char *format, struct tm *tm); +C_BRIDGE_API time_t time_wrap(time_t *timeptr); +// C_BRIDGE_API time64_t time64_wrap(time64_t *timeptr); + + +/// +/// wchar.h +/// + +// C_BRIDGE_API wint_t getwchar_wrap(void); +C_BRIDGE_API int mbrlen_wrap(const char *s, size_t n, mbstate_t *ps); +// C_BRIDGE_API int mbrtowc_wrap(wchar_t *pwc, const char *s, size_t n, mbstate_t *ps); +C_BRIDGE_API int mbsinit_wrap(const mbstate_t *ps); +// C_BRIDGE_API size_t mbsrtowc_wrap(wchar_t *dst, const char **src, size_t len, mbstate_t *ps); +// C_BRIDGE_API wint_t putwchar_wrap(wchar_t wc); +// C_BRIDGE_API int strfmon_wrap(char *s, size_t maxsize, const char *format, ...); +// C_BRIDGE_API int swprintf_wrap(wchar_t *wcsbuffer, size_t n, const wchar_t *format, ...); +// C_BRIDGE_API int swscanf_wrap(const wchar_t *buffer, const wchar_t *format, ...); +// C_BRIDGE_API int wcrtomb_wrap(char *s, wchar_t wchar, mbstate_t *pss); +// C_BRIDGE_API wchar_t *wcscat_wrap(wchar_t *string1, const wchar_t *string2); +// C_BRIDGE_API wchar_t *wcschr_wrap(const wchar_t *string, wchar_t character); +// C_BRIDGE_API int wcscmp_wrap(const wchar_t *string1, const wchar_t *string2); +// C_BRIDGE_API int wcscoll_wrap(const wchar_t *wcs1, const wchar_t *wcs2); +// C_BRIDGE_API wchar_t *wcscpy_wrap(wchar_t *string1, const wchar_t *string2); +// C_BRIDGE_API size_t wcscspn_wrap(const wchar_t *string1, const wchar_t *string2); +// C_BRIDGE_API size_t wcsftime_wrap(wchar_t *wdest, size_t maxsize, const wchar_t *format, const struct tm *timeptr); +// C_BRIDGE_API size_t wcslen_wrap(const wchar_t *string); +// C_BRIDGE_API wchar_t *wcsncat_wrap(wchar_t *string1, const wchar_t *string2, size_t count); +// C_BRIDGE_API int wcsncmp_wrap(const wchar_t *string1, const wchar_t *string2, size_t count); +// C_BRIDGE_API wchar_t *wcsncpy_wrap(wchar_t *string1, const wchar_t *string2, size_t count); +// C_BRIDGE_API wchar_t *wcspbrk_wrap(const wchar_t *string1, const wchar_t *string2); +// C_BRIDGE_API wchar_t *wcsptime_wrap(const wchar_t *buf, const wchar_t *format, struct tm *tm ); +// C_BRIDGE_API wchar_t *wcsrchr_wrap(const wchar_t *string, wchar_t character); +// C_BRIDGE_API size_t wcsrtombs_wrap(char *dst, const wchar_t **src, size_t len, mbstate_t *ps); +// C_BRIDGE_API size_t wcsspn_wrap(const wchar_t *string1, const wchar_t *string2); +// C_BRIDGE_API wchar_t *wcsstr_wrap(const wchar_t *wcs1, const wchar_t *wcs2); +// C_BRIDGE_API double wcstod_wrap(const wchar_t *nptr, wchar_t **endptr); +// C_BRIDGE_API _Decimal128 wcstod128_wrap(const wchar_t *nptr, wchar_t **endptr); +// C_BRIDGE_API _Decimal32 wcstod32_wrap(const wchar_t *nptr, wchar_t **endptr); +// C_BRIDGE_API _Decimal64 wcstod64_wrap(const wchar_t *nptr, wchar_t **endptr); +// C_BRIDGE_API float wcstof_wrap(const wchar_t *nptr, wchar_t **endptr); +// C_BRIDGE_API wchar_t *wcstok_wrap(wchar_t *wcs1, const wchar_t *wcs2, wchar_t **ptr) +// C_BRIDGE_API long int wcstol_wrap(const wchar_t *nptr, wchar_t **endptr, int base); +// C_BRIDGE_API long double wcstold_wrap(const wchar_t *nptr, wchar_t **endptr); +// C_BRIDGE_API unsigned long int wcstoul_wrap(const wchar_t *nptr, wchar_t **endptr, int base); +// C_BRIDGE_API size_t wcsxfrm_wrap(wchar_t *wcs1, const wchar_t *wcs2, size_t n); +C_BRIDGE_API wctype_t wctype_wrap(const char *property); +// C_BRIDGE_API int wcswidth_wrap(const wchar_t *pwcs, size_t n); +// C_BRIDGE_API wchar_t *wmemchr_wrap(const wchar_t *s, wchar_t c, size_t n); +// C_BRIDGE_API int wmemcmp_wrap(const wchar_t *s1, const wchar_t *s2, size_t n); +// C_BRIDGE_API wchar_t *wmemcpy_wrap(wchar_t *s1, const wchar_t *s2, size_t n); +// C_BRIDGE_API wchar_t *wmemmove_wrap(wchar_t *s1, const wchar_t *s2, size_t n); +// C_BRIDGE_API wchar_t *wmemset_wrap(wchar_t *s, wchar_t c, size_t n); +// C_BRIDGE_API int wprintf_wrap(const wchar_t *format, ...); +// C_BRIDGE_API int wscanf_wrap(const wchar_t *format, ...); + + +/// +/// wctype.h +/// + +// C_BRIDGE_API int iswalnum_wrap(wint_t wc); +// C_BRIDGE_API int iswalpha_wrap(wint_t wc); +// C_BRIDGE_API int iswblank_wrap(wint_t wc); +// C_BRIDGE_API int iswcntrl_wrap(wint_t wc); +// C_BRIDGE_API int iswctype_wrap(wint_t wc, wctype_t wc_prop); +// C_BRIDGE_API int iswdigit_wrap(wint_t wc); +// C_BRIDGE_API int iswgraph_wrap(wint_t wc); +// C_BRIDGE_API int iswlower_wrap(wint_t wc); +// C_BRIDGE_API int iswprint_wrap(wint_t wc); +// C_BRIDGE_API int iswpunct_wrap(wint_t wc); +// C_BRIDGE_API int iswspace_wrap(wint_t wc); +// C_BRIDGE_API int iswupper_wrap(wint_t wc); +// C_BRIDGE_API int iswxdigit_wrap(wint_t wc); +C_BRIDGE_API int isxdigit_wrap(int c); +// C_BRIDGE_API wint_t towctrans_wrap(wint_t wc, wctrans_t desc); +// C_BRIDGE_API wint_t towlower_wrap(wint_t wc); +// C_BRIDGE_API wint_t towupper_wrap(wint_t wc); +C_BRIDGE_API wctrans_t wctrans_wrap(const char *property); + +#define assert assert_wrap +#define isalnum isalnum_wrap +#define isalpha isalpha_wrap +#define isascii isascii_wrap +#define isblank isblank_wrap +#define iscntrl iscntrl_wrap +#define isdigit isdigit_wrap +#define isgraph isgraph_wrap +#define islower islower_wrap +#define isprint isprint_wrap +#define ispunct ispunct_wrap +#define isspace isspace_wrap +#define isupper isupper_wrap +#define toascii toascii_wrap +#define tolower tolower_wrap +#define toupper toupper_wrap +#define nl_langinfo nl_langinfo_wrap +#define localeconv localeconv_wrap +#define setlocale setlocale_wrap +#define wcslocaleconv wcslocaleconv_wrap +#define acos acos_wrap +#define asin asin_wrap +#define atan atan_wrap +#define atan2 atan2_wrap +#define ceil ceil_wrap #define cos cos_wrap +#define cosh cosh_wrap +#define erf erf_wrap +#define erfc erfc_wrap +#define exp exp_wrap +#define fabs fabs_wrap +#define floor floor_wrap +#define fmod fmod_wrap +#define frexp frexp_wrap +#define gamma gamma_wrap +#define hypot hypot_wrap +#define j0 j0_wrap +#define j1 j1_wrap +#define jn jn_wrap +#define ldexp ldexp_wrap +#define log log_wrap +#define log10 log10_wrap +#define modf modf_wrap +#define nextafter nextafter_wrap +#define nextafterl nextafterl_wrap +#define nexttoward nexttoward_wrap +#define nexttowardl nexttowardl_wrap +#define pow pow_wrap +// #define quantized128 quantized128_wrap +// #define quantized32 quantized32_wrap +// #define quantized64 quantized64_wrap +// #define quantexpd128 quantexpd128_wrap +// #define quantexpd32 quantexpd32_wrap +// #define quantexpd64 quantexpd64_wrap +// #define samequantumd128 samequantumd128_wrap +// #define samequantumd32 samequantumd32_wrap +// #define samequantumd64 samequantumd64_wrap +#define sin sin_wrap +#define sinh sinh_wrap +#define sqrt sqrt_wrap +#define tan tan_wrap +#define tanh tanh_wrap +#define y0 y0_wrap +#define y1 y1_wrap +#define yn yn_wrap +#define catclose catclose_wrap +#define catgets catgets_wrap +#define catopen catopen_wrap +// #define regcomp regcomp_wrap +// #define regerror regerror_wrap +// #define regexec regexec_wrap +// #define regfree regfree_wrap +#define longjmp longjmp_wrap +#define setjmp setjmp_wrap +#define raise raise_wrap +// #define void void_wrap +// #define va_arg va_arg_wrap +// #define va_copy va_copy_wrap +// #define va_end va_end_wrap +// #define va_start va_start_wrap +// #define vfwprintf vfwprintf_wrap +// #define vswprintf vswprintf_wrap +// #define vwprintf vwprintf_wrap +// #define wctob wctob_wrap +#define clearerr clearerr_wrap +#define fclose fclose_wrap +#define fdopen fdopen_wrap +#define feof feof_wrap +#define ferror ferror_wrap +#define fflush fflush_wrap +#define fgetc fgetc_wrap +#define fgetpos fgetpos_wrap +#define fgets fgets_wrap +#define fileno fileno_wrap +#define fopen fopen_wrap +// #define fprintf fprintf_wrap +#define fputc fputc_wrap +#define fputs fputs_wrap +#define fread fread_wrap +#define freopen freopen_wrap +// #define fscanf fscanf_wrap +#define fseek fseek_wrap +#define fsetpos fsetpos_wrap +#define ftell ftell_wrap +#define fwrite fwrite_wrap +#define getc getc_wrap +#define getchar getchar_wrap +#define gets gets_wrap +#define perror perror_wrap +// #define printf printf_wrap +#define putc putc_wrap +#define putchar putchar_wrap +#define puts puts_wrap +#define remove remove_wrap +#define rename rename_wrap +#define rewind rewind_wrap +#define scanf scanf_wrap +#define setbuf setbuf_wrap +#define setvbuf setvbuf_wrap +// #define snprintf snprintf_wrap +// #define sprintf sprintf_wrap +// #define sscanf sscanf_wrap +#define tmpfile tmpfile_wrap +#define tmpnam tmpnam_wrap +#define ungetc ungetc_wrap +#define vsnprintf vsnprintf_wrap +// #define btowc btowc_wrap +// #define fgetwc fgetwc_wrap +// #define fgetws fgetws_wrap +// #define fputwc fputwc_wrap +// #define fputws fputws_wrap +#define fwide fwide_wrap +// #define fwprintf fwprintf_wrap +// #define fwscanf fwscanf_wrap +// #define getwc getwc_wrap +// #define putwchar putwchar_wrap +// #define ungetwc ungetwc_wrap +#define vfprintf vfprintf_wrap +#define vprintf vprintf_wrap +#define vsprintf vsprintf_wrap +#define vfscanf vfscanf_wrap +// #define vfwscanf vfwscanf_wrap +#define vscanf vscanf_wrap +#define vsscanf vsscanf_wrap +// #define vswscanf vswscanf_wrap +// #define vwscanf vwscanf_wrap +#define abort abort_wrap +#define abs abs_wrap +// #define atexit atexit_wrap +#define atof atof_wrap +#define atoi atoi_wrap +#define atol atol_wrap +// #define bsearch bsearch_wrap +#define calloc calloc_wrap +#define div div_wrap +#define exit exit_wrap +#define free free_wrap +#define getenv getenv_wrap +#define labs labs_wrap +#define ldiv ldiv_wrap +#define malloc malloc_wrap +#define mblen mblen_wrap +// #define mbstowcs mbstowcs_wrap +// #define mbtowc mbtowc_wrap +#define putenv putenv_wrap +// #define int int_wrap +#define rand rand_wrap +#define rand_r rand_r_wrap +#define realloc realloc_wrap +#define srand srand_wrap +#define strtod strtod_wrap +// #define strtod128 strtod128_wrap +// #define strtod32 strtod32_wrap +// #define strtod64 strtod64_wrap +#define strtof strtof_wrap +#define strtol strtol_wrap +#define strtold strtold_wrap +#define strtoul strtoul_wrap +#define system system_wrap +// #define wcstombs wcstombs_wrap +// #define wctomb wctomb_wrap +#define memchr memchr_wrap +#define memcmp memcmp_wrap +#define memcpy memcpy_wrap +#define memmove memmove_wrap +#define memset memset_wrap +#define strcat strcat_wrap +#define strchr strchr_wrap +#define strcmp strcmp_wrap +#define strcoll strcoll_wrap +#define strcpy strcpy_wrap +#define strcspn strcspn_wrap +#define strerror strerror_wrap +#define strlen strlen_wrap +#define strncat strncat_wrap +#define strncmp strncmp_wrap +#define strncpy strncpy_wrap +#define strpbrk strpbrk_wrap +#define strrchr strrchr_wrap +#define strspn strspn_wrap +#define strstr strstr_wrap +#define strtok strtok_wrap +#define strtok_r strtok_r_wrap +#define strxfrm strxfrm_wrap +#define srtcasecmp srtcasecmp_wrap +#define strncasecmp strncasecmp_wrap +#define asctime asctime_wrap +#define asctime_r asctime_r_wrap +#define clock clock_wrap +#define ctime ctime_wrap +#define ctime_r ctime_r_wrap +// #define ctime64 ctime64_wrap +// #define ctime64_r ctime64_r_wrap +#define difftime difftime_wrap +// #define difftime64 difftime64_wrap +#define gmtime gmtime_wrap +#define gmtime_r gmtime_r_wrap +// #define gmtime64 gmtime64_wrap +// #define gmtime64_r gmtime64_r_wrap +#define localtime localtime_wrap +#define localtime_r localtime_r_wrap +// #define localtime64 localtime64_wrap +// #define localtime64_r localtime64_r_wrap +#define mktime mktime_wrap +// #define mktime64 mktime64_wrap +#define strftime strftime_wrap +#define strptime strptime_wrap +#define time time_wrap +// #define time64 time64_wrap +// #define getwchar getwchar_wrap +#define mbrlen mbrlen_wrap +// #define mbrtowc mbrtowc_wrap +#define mbsinit mbsinit_wrap +// #define mbsrtowc mbsrtowc_wrap +// #define putwchar putwchar_wrap +// #define strfmon strfmon_wrap +// #define swprintf swprintf_wrap +// #define swscanf swscanf_wrap +// #define wcrtomb wcrtomb_wrap +// #define wcscat wcscat_wrap +// #define wcschr wcschr_wrap +// #define wcscmp wcscmp_wrap +// #define wcscoll wcscoll_wrap +// #define wcscpy wcscpy_wrap +// #define wcscspn wcscspn_wrap +// #define wcsftime wcsftime_wrap +// #define wcslen wcslen_wrap +// #define wcsncat wcsncat_wrap +// #define wcsncmp wcsncmp_wrap +// #define wcsncpy wcsncpy_wrap +// #define wcspbrk wcspbrk_wrap +// #define wcsptime wcsptime_wrap +// #define wcsrchr wcsrchr_wrap +// #define wcsrtombs wcsrtombs_wrap +// #define wcsspn wcsspn_wrap +// #define wcsstr wcsstr_wrap +// #define wcstod wcstod_wrap +// #define wcstod128 wcstod128_wrap +// #define wcstod32 wcstod32_wrap +// #define wcstod64 wcstod64_wrap +// #define wcstof wcstof_wrap +// #define wcstok wcstok_wrap +// #define wcstol wcstol_wrap +// #define wcstold wcstold_wrap +// #define wcstoul wcstoul_wrap +// #define wcsxfrm wcsxfrm_wrap +#define wctype wctype_wrap +// #define wcswidth wcswidth_wrap +// #define wmemchr wmemchr_wrap +// #define wmemcmp wmemcmp_wrap +// #define wmemcpy wmemcpy_wrap +// #define wmemmove wmemmove_wrap +// #define wmemset wmemset_wrap +// #define wprintf wprintf_wrap +// #define wscanf wscanf_wrap +// #define iswalnum iswalnum_wrap +// #define iswalpha iswalpha_wrap +// #define iswblank iswblank_wrap +// #define iswcntrl iswcntrl_wrap +// #define iswctype iswctype_wrap +// #define iswdigit iswdigit_wrap +// #define iswgraph iswgraph_wrap +// #define iswlower iswlower_wrap +// #define iswprint iswprint_wrap +// #define iswpunct iswpunct_wrap +// #define iswspace iswspace_wrap +// #define iswupper iswupper_wrap +// #define iswxdigit iswxdigit_wrap +#define isxdigit isxdigit_wrap +// #define towctrans towctrans_wrap +// #define towlower towlower_wrap +// #define towupper towupper_wrap +#define wctrans wctrans_wrap #endif From 045cd78e3adf130717bead95a6ac248cb42f17f0 Mon Sep 17 00:00:00 2001 From: Clang Robot Date: Tue, 1 Aug 2023 23:42:51 +0000 Subject: [PATCH 04/15] Committing clang-format changes --- c_compiler/c_bridge/c_bridge.h | 39 ++++++++++------------------------ 1 file changed, 11 insertions(+), 28 deletions(-) diff --git a/c_compiler/c_bridge/c_bridge.h b/c_compiler/c_bridge/c_bridge.h index d9dc892ae..74b15eca0 100644 --- a/c_compiler/c_bridge/c_bridge.h +++ b/c_compiler/c_bridge/c_bridge.h @@ -108,7 +108,6 @@ C_BRIDGE_API double cos_wrap(double); C_BRIDGE_API void assert_wrap(int expression); - /// /// ctype.h /// @@ -129,14 +128,12 @@ C_BRIDGE_API int toascii_wrap(int c); C_BRIDGE_API int tolower_wrap(int c); C_BRIDGE_API int toupper_wrap(int c); - /// /// langinfo.h /// C_BRIDGE_API char *nl_langinfo_wrap(nl_item item); - /// /// locale.h /// @@ -145,7 +142,6 @@ C_BRIDGE_API struct lconv *localeconv_wrap(void); C_BRIDGE_API char *setlocale_wrap(int category, const char *locale); C_BRIDGE_API struct wcslconv *wcslocaleconv_wrap(void); - /// /// math.h /// @@ -196,7 +192,6 @@ C_BRIDGE_API double y0_wrap(double x); C_BRIDGE_API double y1_wrap(double x); C_BRIDGE_API double yn_wrap(int n, double x); - /// /// nl_types.h /// @@ -205,16 +200,14 @@ C_BRIDGE_API int catclose_wrap(nl_catd catd); C_BRIDGE_API char *catgets_wrap(nl_catd catd, int set_id, int msg_id, const char *s); C_BRIDGE_API nl_catd catopen_wrap(const char *name, int oflag); - /// /// regex.h /// // C_BRIDGE_API int regcomp_wrap(regex_t *preg, const char *pattern, int cflags); // C_BRIDGE_API size_t regerror_wrap(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size); -// C_BRIDGE_API int regexec_wrap(const regex_t *preg, const char *string, size_t nmatch, regmatch_t *pmatch, int eflags); -// C_BRIDGE_API void regfree_wrap(regex_t *preg); - +// C_BRIDGE_API int regexec_wrap(const regex_t *preg, const char *string, size_t nmatch, regmatch_t *pmatch, int +// eflags); C_BRIDGE_API void regfree_wrap(regex_t *preg); /// /// setjmp.h @@ -223,7 +216,6 @@ C_BRIDGE_API nl_catd catopen_wrap(const char *name, int oflag); C_BRIDGE_API void longjmp_wrap(jmp_buf env, int value); C_BRIDGE_API int setjmp_wrap(jmp_buf env); - /// /// signal.h /// @@ -231,7 +223,6 @@ C_BRIDGE_API int setjmp_wrap(jmp_buf env); C_BRIDGE_API int raise_wrap(int sig); // C_BRIDGE_API void_wrap(*signal _wrap(int sig, void_wrap(*func)_wrap(int))) _wrap(int); - /// /// stdarg.h /// @@ -241,7 +232,6 @@ C_BRIDGE_API int raise_wrap(int sig); // C_BRIDGE_API void va_end_wrap(va_list arg_ptr); // C_BRIDGE_API void va_start_wrap(va_list arg_ptr, variable_name); - /// /// wchar.h /// @@ -251,7 +241,6 @@ C_BRIDGE_API int raise_wrap(int sig); // C_BRIDGE_API int vwprintf_wrap(const wchar_t *format, va_list arg); // C_BRIDGE_API int wctob_wrap(wint_t wc); - /// /// stdio.h /// @@ -276,7 +265,7 @@ C_BRIDGE_API FILE *freopen_wrap(const char *filename, const char *mode, FILE *st C_BRIDGE_API int fseek_wrap(FILE *stream, long int offset, int origin); C_BRIDGE_API int fsetpos_wrap(FILE *stream, const fpos_t *pos); C_BRIDGE_API long int ftell_wrap(FILE *stream); -C_BRIDGE_API size_t fwrite_wrap(const void *buffer, size_t size,size_t count, FILE *stream); +C_BRIDGE_API size_t fwrite_wrap(const void *buffer, size_t size, size_t count, FILE *stream); C_BRIDGE_API int getc_wrap(FILE *stream); C_BRIDGE_API int getchar_wrap(void); C_BRIDGE_API char *gets_wrap(char *buffer); @@ -288,7 +277,7 @@ C_BRIDGE_API int puts_wrap(const char *string); C_BRIDGE_API int remove_wrap(const char *filename); C_BRIDGE_API int rename_wrap(const char *oldname, const char *newname); C_BRIDGE_API void rewind_wrap(FILE *stream); -C_BRIDGE_API int scanf_wrap(const char *format-string, arg-list); +C_BRIDGE_API int scanf_wrap(const char *format - string, arg - list); C_BRIDGE_API void setbuf_wrap(FILE *stream, char *buffer); C_BRIDGE_API int setvbuf_wrap(FILE *stream, char *buf, int type, size_t size); // C_BRIDGE_API int snprintf_wrap(char *outbuf, size_t n, const char*, ...); @@ -297,8 +286,7 @@ C_BRIDGE_API int setvbuf_wrap(FILE *stream, char *buf, int type, size_t size); C_BRIDGE_API FILE *tmpfile_wrap(void); C_BRIDGE_API char *tmpnam_wrap(char *string); C_BRIDGE_API int ungetc_wrap(int c, FILE *stream); -C_BRIDGE_API int vsnprintf_wrap(char *outbuf, size_t n, const char*, va_list); - +C_BRIDGE_API int vsnprintf_wrap(char *outbuf, size_t n, const char *, va_list); /// /// wchar.h @@ -316,22 +304,20 @@ C_BRIDGE_API int fwide_wrap(FILE *stream, int mode); // C_BRIDGE_API wint_t putwchar_wrap(wchar_t wc, FILE *stream); // C_BRIDGE_API wint_t ungetwc_wrap(wint_t wc, FILE *stream); - /// /// stdio.h /// C_BRIDGE_API int vfprintf_wrap(FILE *stream, const char *format, va_list arg_ptr); C_BRIDGE_API int vprintf_wrap(const char *format, va_list arg_ptr); -C_BRIDGE_API int vsprintf_wrap(char *target-string, const char *format, va_list arg_ptr); +C_BRIDGE_API int vsprintf_wrap(char *target - string, const char *format, va_list arg_ptr); C_BRIDGE_API int vfscanf_wrap(FILE *stream, const char *format, va_list arg_ptr); // C_BRIDGE_API int vfwscanf_wrap(FILE *stream, const wchar_t *format, va_list arg_ptr); C_BRIDGE_API int vscanf_wrap(const char *format, va_list arg_ptr); -C_BRIDGE_API int vsscanf_wrap(const char*buffer, const char *format, va_list arg_ptr); +C_BRIDGE_API int vsscanf_wrap(const char *buffer, const char *format, va_list arg_ptr); // C_BRIDGE_API int vswscanf_wrap(const wchar_t *buffer, const wchar_t *format, va_list arg_ptr); // C_BRIDGE_API int vwscanf_wrap(const wchar_t *format, va_list arg_ptr); - /// /// stdlib.h /// @@ -342,7 +328,8 @@ C_BRIDGE_API int abs_wrap(int n); C_BRIDGE_API double atof_wrap(const char *string); C_BRIDGE_API int atoi_wrap(const char *string); C_BRIDGE_API long int atol_wrap(const char *string); -// C_BRIDGE_API void *bsearch_wrap(const void *key, const void *base, size_t num, size_t size, int _wrap(*compare) _wrap(const void *element1, const void *element2)); +// C_BRIDGE_API void *bsearch_wrap(const void *key, const void *base, size_t num, size_t size, int _wrap(*compare) +// _wrap(const void *element1, const void *element2)); C_BRIDGE_API void *calloc_wrap(size_t num, size_t size); C_BRIDGE_API div_t div_wrap(int numerator, int denominator); C_BRIDGE_API void exit_wrap(int status); @@ -355,7 +342,8 @@ C_BRIDGE_API int mblen_wrap(const char *string, size_t n); // C_BRIDGE_API size_t mbstowcs_wrap(wchar_t *pwc, const char *string, size_t n); // C_BRIDGE_API int mbtowc_wrap(wchar_t *pwc, const char *string, size_t n); C_BRIDGE_API int *putenv_wrap(const char *varname); -// C_BRIDGE_API void qsort_wrap(void *base, size_t num, size_t width, int_wrap(*compare)_wrap(const void *element1, const void *element2)); +// C_BRIDGE_API void qsort_wrap(void *base, size_t num, size_t width, int_wrap(*compare)_wrap(const void *element1, +// const void *element2)); C_BRIDGE_API int rand_wrap(void); C_BRIDGE_API int rand_r_wrap(void); C_BRIDGE_API void *realloc_wrap(void *ptr, size_t size); @@ -372,7 +360,6 @@ C_BRIDGE_API int system_wrap(const char *string); // C_BRIDGE_API size_t wcstombs_wrap(char *dest, const wchar_t *string, size_t count); // C_BRIDGE_API int wctomb_wrap(char *string, wchar_t character); - /// /// string.h /// @@ -401,7 +388,6 @@ C_BRIDGE_API char *strtok_wrap(char *string1, const char *string2); C_BRIDGE_API char *strtok_r_wrap(char *string, const char *seps, char **lasts); C_BRIDGE_API size_t strxfrm_wrap(char *string1, const char *string2, size_t count); - /// /// strings.h /// @@ -409,7 +395,6 @@ C_BRIDGE_API size_t strxfrm_wrap(char *string1, const char *string2, size_t coun C_BRIDGE_API int srtcasecmp_wrap(const char *string1, const char *string2); C_BRIDGE_API int strncasecmp_wrap(const char *string1, const char *string2, size_t count); - /// /// time.h /// @@ -438,7 +423,6 @@ C_BRIDGE_API char *strptime_wrap(const char *buf, const char *format, struct tm C_BRIDGE_API time_t time_wrap(time_t *timeptr); // C_BRIDGE_API time64_t time64_wrap(time64_t *timeptr); - /// /// wchar.h /// @@ -490,7 +474,6 @@ C_BRIDGE_API wctype_t wctype_wrap(const char *property); // C_BRIDGE_API int wprintf_wrap(const wchar_t *format, ...); // C_BRIDGE_API int wscanf_wrap(const wchar_t *format, ...); - /// /// wctype.h /// From 97096b8ce6d43413b1b0db47a498fb6137e41e3e Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Tue, 1 Aug 2023 17:43:24 -0600 Subject: [PATCH 05/15] Update c_bridge.c with moar --- c_compiler/c_bridge/c_bridge.c | 1298 +++++++++++++++++++++++++++++++- 1 file changed, 1297 insertions(+), 1 deletion(-) diff --git a/c_compiler/c_bridge/c_bridge.c b/c_compiler/c_bridge/c_bridge.c index 58b27b79b..0de533d59 100644 --- a/c_compiler/c_bridge/c_bridge.c +++ b/c_compiler/c_bridge/c_bridge.c @@ -41,4 +41,1300 @@ int snprintf_wrap(char *restrict buffer, size_t bufsz, const char *restrict form return ret; } - + + + +/// Created by: https://docs.google.com/spreadsheets/d/126iyiRC-fspn9O-0QV39JneEetiVtKzm_KmFJkNxPGo/edit?usp=sharing + +/// +/// assert.h +/// + + +void assert_wrap(int expression){ + return assert(expression); +} + + +/// +/// ctype.h +/// + + +int isalnum_wrap(int c){ + return isalnum(c); +} + +int isalpha_wrap(int c){ + return isalpha(c); +} + +int isascii_wrap(int c){ + return isascii(c); +} + +int isblank_wrap(int c){ + return isblank(c); +} + +int iscntrl_wrap(int c){ + return iscntrl(c); +} + +int isdigit_wrap(int c){ + return isdigit(c); +} + +int isgraph_wrap(int c){ + return isgraph(c); +} + +int islower_wrap(int c){ + return islower(c); +} + +int isprint_wrap(int c){ + return isprint(c); +} + +int ispunct_wrap(int c){ + return ispunct(c); +} + +int isspace_wrap(int c){ + return isspace(c); +} + +int isupper_wrap(int c){ + return isupper(c); +} + +int toascii_wrap(int c){ + return toascii(c); +} + +int tolower_wrap(int c){ + return tolower(c); +} + +int toupper_wrap(int c){ + return toupper(c); +} + + +/// +/// langinfo.h +/// + + +char *nl_langinfo_wrap(nl_item item){ + return nl_langinfo(item); +} + + +/// +/// locale.h +/// + + +struct lconv *localeconv_wrap(void){ + return localeconv(void); +} + +char *setlocale_wrap(int category, const char *locale){ + return setlocale(category,locale); +} + +struct wcslconv *wcslocaleconv_wrap(void){ + return wcslocaleconv(void); +} + + +/// +/// math.h +/// + + +double acos_wrap(double x){ + return acos(x); +} + +double asin_wrap(double x){ + return asin(x); +} + +double atan_wrap(double x){ + return atan(x); +} + +double atan2_wrap(double y, double x){ + return atan2(y,x); +} + +double ceil_wrap(double x){ + return ceil(x); +} + +double cos_wrap(double x){ + return cos(x); +} + +double cosh_wrap(double x){ + return cosh(x); +} + +double erf_wrap(double x){ + return erf(x); +} + +double erfc_wrap(double x){ + return erfc(x); +} + +double exp_wrap(double x){ + return exp(x); +} + +double fabs_wrap(double x){ + return fabs(x); +} + +double floor_wrap(double x){ + return floor(x); +} + +double fmod_wrap(double x, double y){ + return fmod(x,y); +} + +double frexp_wrap(double x, int *expptr){ + return frexp(x,expptr); +} + +double gamma_wrap(double x){ + return gamma(x); +} + +double hypot_wrap(double side1, double side2){ + return hypot(side1,side2); +} + +double j0_wrap(double x){ + return j0(x); +} + +double j1_wrap(double x){ + return j1(x); +} + +double jn_wrap(int n, double x){ + return jn(n,x); +} + +double ldexp_wrap(double x, int exp){ + return ldexp(x,exp); +} + +double log_wrap(double x){ + return log(x); +} + +double log10_wrap(double x){ + return log10(x); +} + +double modf_wrap(double x, double *intptr){ + return modf(x,intptr); +} + +double nextafter_wrap(double x, double y){ + return nextafter(x,y); +} + +long double nextafterl_wrap(long double x, long double y){ + return nextafterl(x,y); +} + +double nexttoward_wrap(double x, long double y){ + return nexttoward(x,y); +} + +long double nexttowardl_wrap(long double x, long double y){ + return nexttowardl(x,y); +} + +double pow_wrap(double x, double y){ + return pow(x,y); +} +/* +_Decimal128 quantized128_wrap(_Decimal128 x, _Decimal128 y){ + return quantized128(_Decimal128 x, _Decimal128 y); +}*/ +/* +_Decimal32 quantized32_wrap(_Decimal32 x, _Decimal32 y){ + return quantized32(_Decimal32 x, _Decimal32 y); +}*/ +/* +_Decimal64 quantized64_wrap(_Decimal64 x, _Decimal64 y){ + return quantized64(_Decimal64 x, _Decimal64 y); +}*/ +/* +int quantexpd128_wrap(_Decimal128 x){ + return quantexpd128(_Decimal128 x); +}*/ +/* +int quantexpd32_wrap(_Decimal32 x){ + return quantexpd32(_Decimal32 x); +}*/ +/* +int quantexpd64_wrap(_Decimal64 x){ + return quantexpd64(_Decimal64 x); +}*/ +/* +__bool__ samequantumd128_wrap(_Decimal128 x, _Decimal128 y){ + return samequantumd128(_Decimal128 x, _Decimal128 y); +}*/ +/* +__bool__ samequantumd32_wrap(_Decimal32 x, _Decimal32 y){ + return samequantumd32(_Decimal32 x, _Decimal32 y); +}*/ +/* +__bool__ samequantumd64_wrap(_Decimal64 x, _Decimal64 y){ + return samequantumd64(_Decimal64 x, _Decimal64 y); +}*/ + +double sin_wrap(double x){ + return sin(x); +} + +double sinh_wrap(double x){ + return sinh(x); +} + +double sqrt_wrap(double x){ + return sqrt(x); +} + +double tan_wrap(double x){ + return tan(x); +} + +double tanh_wrap(double x){ + return tanh(x); +} + +double y0_wrap(double x){ + return y0(x); +} + +double y1_wrap(double x){ + return y1(x); +} + +double yn_wrap(int n, double x){ + return yn(n,x); +} + + +/// +/// nl_types.h +/// + + +int catclose_wrap(nl_catd catd){ + return catclose(catd); +} + +char *catgets_wrap(nl_catd catd, int set_id, int msg_id, const char *s){ + return catgets(catd,set_id,msg_id,s); +} + +nl_catd catopen_wrap(const char *name, int oflag){ + return catopen(name,oflag); +} + + +/// +/// regex.h +/// + +/* +int regcomp_wrap(regex_t *preg, const char *pattern, int cflags){ + return regcomp(preg,pattern,cflags); +}*/ +/* +size_t regerror_wrap(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size){ + return regerror(errcode,preg,errbuf,errbuf_size); +}*/ +/* +int regexec_wrap(const regex_t *preg, const char *string, size_t nmatch, regmatch_t *pmatch, int eflags){ + return regexec(preg,string,nmatch,pmatch,eflags); +}*/ +/* +void regfree_wrap(regex_t *preg){ + return regfree(preg); +}*/ + + +/// +/// setjmp.h +/// + + +void longjmp_wrap(jmp_buf env, int value){ + return longjmp(env,value); +} + +int setjmp_wrap(jmp_buf env){ + return setjmp(env); +} + + +/// +/// signal.h +/// + + +int raise_wrap(int sig){ + return raise(sig); +} +/* +void_wrap(*signal _wrap(int sig, void_wrap(*func)_wrap(int))) _wrap(int){ + return void(int); +}*/ + + +/// +/// stdarg.h +/// + +/* +var_type va_arg_wrap(va_list arg_ptr, var_type){ + return va_arg(arg_ptr, var_type); +}*/ +/* +void va_copy_wrap(va_list dest, va_list src){ + return va_copy(dest,src); +}*/ +/* +void va_end_wrap(va_list arg_ptr){ + return va_end(arg_ptr); +}*/ +/* +void va_start_wrap(va_list arg_ptr, variable_name){ + return va_start(arg_ptr, variable_name); +}*/ + + +/// +/// wchar.h +/// + +/* +int vfwprintf_wrap(FILE *stream, const wchar_t *format, va_list arg){ + return vfwprintf(stream,format,arg); +}*/ +/* +int vswprintf_wrap(wchar_t *wcsbuffer, size_t n, const wchar_t *format, va_list arg){ + return vswprintf(wcsbuffer,n,format,arg); +}*/ +/* +int vwprintf_wrap(const wchar_t *format, va_list arg){ + return vwprintf(format,arg); +}*/ +/* +int wctob_wrap(wint_t wc){ + return wctob(wc); +}*/ + + +/// +/// stdio.h +/// + + +void clearerr_wrap(FILE *stream){ + return clearerr(stream); +} + +int fclose_wrap(FILE *stream){ + return fclose(stream); +} + +FILE *fdopen_wrap(int handle, const char *type){ + return fdopen(handle,type); +} + +int feof_wrap(FILE *stream){ + return feof(stream); +} + +int ferror_wrap(FILE *stream){ + return ferror(stream); +} + +int fflush_wrap(FILE *stream){ + return fflush(stream); +} + +int fgetc_wrap(FILE *stream){ + return fgetc(stream); +} + +int fgetpos_wrap(FILE *stream, fpos_t *pos){ + return fgetpos(stream,pos); +} + +char *fgets_wrap(char *string, int n, FILE *stream){ + return fgets(string,n,stream); +} + +int fileno_wrap(FILE *stream){ + return fileno(stream); +} + +FILE *fopen_wrap(const char *filename, const char *mode){ + return fopen(filename,mode); +} +/* +int fprintf_wrap(FILE *stream, const char *format_string, ...){ + return fprintf(stream,format_string, ...); +}*/ + +int fputc_wrap(int c, FILE *stream){ + return fputc(c,stream); +} + +int fputs_wrap(const char *string, FILE *stream){ + return fputs(string,stream); +} + +size_t fread_wrap(void *buffer, size_t size, size_t count, FILE *stream){ + return fread(buffer,size,count,stream); +} + +FILE *freopen_wrap(const char *filename, const char *mode, FILE *stream){ + return freopen(filename,mode,stream); +} +/* +int fscanf_wrap(FILE *stream, const char *format_string, ...){ + return fscanf(stream,format_string, ...); +}*/ + +int fseek_wrap(FILE *stream, long int offset, int origin){ + return fseek(stream,offset,origin); +} + +int fsetpos_wrap(FILE *stream, const fpos_t *pos){ + return fsetpos(stream,pos); +} + +long int ftell_wrap(FILE *stream){ + return ftell(stream); +} + +size_t fwrite_wrap(const void *buffer, size_t size,size_t count, FILE *stream){ + return fwrite(buffer,size,count,stream); +} + +int getc_wrap(FILE *stream){ + return getc(stream); +} + +int getchar_wrap(void){ + return getchar(void); +} + +char *gets_wrap(char *buffer){ + return gets(buffer); +} + +void perror_wrap(const char *string){ + return perror(string); +} +/* +int printf_wrap(const char *format_string, ...){ + return printf(format_string, ...); +}*/ + +int putc_wrap(int c, FILE *stream){ + return putc(c,stream); +} + +int putchar_wrap(int c){ + return putchar(c); +} + +int puts_wrap(const char *string){ + return puts(string); +} + +int remove_wrap(const char *filename){ + return remove(filename); +} + +int rename_wrap(const char *oldname, const char *newname){ + return rename(oldname,newname); +} + +void rewind_wrap(FILE *stream){ + return rewind(stream); +} + +int scanf_wrap(const char *format-string, arg-list){ + return scanf(format-string, arg-list); +} + +void setbuf_wrap(FILE *stream, char *buffer){ + return setbuf(stream,buffer); +} + +int setvbuf_wrap(FILE *stream, char *buf, int type, size_t size){ + return setvbuf(stream,buf,type,size); +} +/* +int snprintf_wrap(char *outbuf, size_t n, const char*, ...){ + return snprintf(outbuf,n,char*, ...); +}*/ +/* +int sprintf_wrap(char *buffer, const char *format_string, ...){ + return sprintf(buffer,format_string, ...); +}*/ +/* +int sscanf_wrap(const char *buffer, const char *format, ...){ + return sscanf(buffer,format, ...); +}*/ + +FILE *tmpfile_wrap(void){ + return tmpfile(void); +} + +char *tmpnam_wrap(char *string){ + return tmpnam(string); +} + +int ungetc_wrap(int c, FILE *stream){ + return ungetc(c,stream); +} + +int vsnprintf_wrap(char *outbuf, size_t n, const char*, va_list){ + return vsnprintf(outbuf,n,char*, va_list); +} + + +/// +/// wchar.h +/// + +/* +wint_t btowc_wrap(int c){ + return btowc(c); +}*/ +/* +wint_t fgetwc_wrap(FILE *stream){ + return fgetwc(stream); +}*/ +/* +wchar_t *fgetws_wrap(wchar_t *wcs, int n, FILE *stream){ + return fgetws(wcs,n,stream); +}*/ +/* +wint_t fputwc_wrap(wchar_t wc, FILE *stream){ + return fputwc(wc,stream); +}*/ +/* +int fputws_wrap(const wchar_t *wcs, FILE *stream){ + return fputws(wcs,stream); +}*/ + +int fwide_wrap(FILE *stream, int mode){ + return fwide(stream,mode); +} +/* +int fwprintf_wrap(FILE *stream, const wchar_t *format, ...){ + return fwprintf(stream,format, ...); +}*/ +/* +int fwscanf_wrap(FILE *stream, const wchar_t *format, ...{ + return fwscanf(fwscanf(stream,format, ...)); +}*/ +/* +wint_t getwc_wrap(FILE *stream){ + return getwc(stream); +}*/ +/* +wint_t putwchar_wrap(wchar_t wc, FILE *stream){ + return putwchar(wc,stream); +}*/ +/* +wint_t ungetwc_wrap(wint_t wc, FILE *stream){ + return ungetwc(wc,stream); +}*/ + + +/// +/// stdio.h +/// + + +int vfprintf_wrap(FILE *stream, const char *format, va_list arg_ptr){ + return vfprintf(stream,format,arg_ptr); +} + +int vprintf_wrap(const char *format, va_list arg_ptr){ + return vprintf(format,arg_ptr); +} + +int vsprintf_wrap(char *target-string, const char *format, va_list arg_ptr){ + return vsprintf(target-string,format,arg_ptr); +} + +int vfscanf_wrap(FILE *stream, const char *format, va_list arg_ptr){ + return vfscanf(stream,format,arg_ptr); +} +/* +int vfwscanf_wrap(FILE *stream, const wchar_t *format, va_list arg_ptr){ + return vfwscanf(stream,format,arg_ptr); +}*/ + +int vscanf_wrap(const char *format, va_list arg_ptr){ + return vscanf(format,arg_ptr); +} + +int vsscanf_wrap(const char*buffer, const char *format, va_list arg_ptr){ + return vsscanf(buffer,format,arg_ptr); +} +/* +int vswscanf_wrap(const wchar_t *buffer, const wchar_t *format, va_list arg_ptr){ + return vswscanf(buffer,format,arg_ptr); +}*/ +/* +int vwscanf_wrap(const wchar_t *format, va_list arg_ptr){ + return vwscanf(format,arg_ptr); +}*/ + + +/// +/// stdlib.h +/// + + +void abort_wrap(void){ + return abort(void); +} + +int abs_wrap(int n){ + return abs(n); +} +/* +int atexit_wrap(void _wrap(*func)_wrap(void)){ + return atexit(void)); +}*/ + +double atof_wrap(const char *string){ + return atof(string); +} + +int atoi_wrap(const char *string){ + return atoi(string); +} + +long int atol_wrap(const char *string){ + return atol(string); +} +/* +void *bsearch_wrap(const void *key, const void *base, size_t num, size_t size, int _wrap(*compare) _wrap(const void *element1, const void *element2)){ + return bsearch(element1,element2)); +}*/ + +void *calloc_wrap(size_t num, size_t size){ + return calloc(num,size); +} + +div_t div_wrap(int numerator, int denominator){ + return div(numerator,denominator); +} + +void exit_wrap(int status){ + return exit(status); +} + +void free_wrap(void *ptr){ + return free(ptr); +} + +char *getenv_wrap(const char *varname){ + return getenv(varname); +} + +long int labs_wrap(long int n){ + return labs(n); +} + +ldiv_t ldiv_wrap(long int numerator, long int denominator){ + return ldiv(numerator,denominator); +} + +void *malloc_wrap(size_t size){ + return malloc(size); +} + +int mblen_wrap(const char *string, size_t n){ + return mblen(string,n); +} +/* +size_t mbstowcs_wrap(wchar_t *pwc, const char *string, size_t n){ + return mbstowcs(pwc,string,n); +}*/ +/* +int mbtowc_wrap(wchar_t *pwc, const char *string, size_t n){ + return mbtowc(pwc,string,n); +}*/ + +int *putenv_wrap(const char *varname){ + return putenv(varname); +} +/* +void qsort_wrap(void *base, size_t num, size_t width, int_wrap(*compare)_wrap(const void *element1, const void *element2)){ + return int(element1,element2)); +}*/ + +int rand_wrap(void){ + return rand(void); +} + +int rand_r_wrap(void){ + return rand_r(void); +} + +void *realloc_wrap(void *ptr, size_t size){ + return realloc(ptr,size); +} + +void srand_wrap(unsigned int seed){ + return srand(seed); +} + +double strtod_wrap(const char *nptr, char **endptr){ + return strtod(nptr, char **endptr); +} +/* +_Decimal128 strtod128_wrap(const char *nptr, char **endptr){ + return strtod128(nptr, char **endptr); +}*/ +/* +_Decimal32 strtod32_wrap(const char *nptr, char **endptr){ + return strtod32(nptr, char **endptr); +}*/ +/* +_Decimal64 strtod64_wrap(const char *nptr, char **endptr){ + return strtod64(nptr, char **endptr); +}*/ + +float strtof_wrap(const char *nptr, char **endptr){ + return strtof(nptr, char **endptr); +} + +long int strtol_wrap(const char *nptr, char **endptr, int base){ + return strtol(nptr, char **endptr,base); +} + +long double strtold_wrap(const char *nptr, char **endptr){ + return strtold(nptr, char **endptr); +} + +unsigned long int strtoul_wrap(const char *string1, char **string2, int base){ + return strtoul(string1, char **string2,base); +} + +int system_wrap(const char *string){ + return system(string); +} +/* +size_t wcstombs_wrap(char *dest, const wchar_t *string, size_t count){ + return wcstombs(dest,string,count); +}*/ +/* +int wctomb_wrap(char *string, wchar_t character){ + return wctomb(string,character); +}*/ + + +/// +/// string.h +/// + + +void *memchr_wrap(const void *buf, int c, size_t count){ + return memchr(buf,c,count); +} + +int memcmp_wrap(const void *buf1, const void *buf2, size_t count){ + return memcmp(buf1,buf2,count); +} + +void *memcpy_wrap(void *dest, const void *src, size_t count){ + return memcpy(dest,src,count); +} + +void *memmove_wrap(void *dest, const void *src, size_t count){ + return memmove(dest,src,count); +} + +void *memset_wrap(void *dest, int c, size_t count){ + return memset(dest,c,count); +} + +char *strcat_wrap(char *string1, const char *string2){ + return strcat(string1,string2); +} + +char *strchr_wrap(const char *string, int c){ + return strchr(string,c); +} + +int strcmp_wrap(const char *string1, const char *string2){ + return strcmp(string1,string2); +} + +int strcoll_wrap(const char *string1, const char *string2){ + return strcoll(string1,string2); +} + +char *strcpy_wrap(char *string1, const char *string2){ + return strcpy(string1,string2); +} + +size_t strcspn_wrap(const char *string1, const char *string2){ + return strcspn(string1,string2); +} + +char *strerror_wrap(int errnum){ + return strerror(errnum); +} + +size_t strlen_wrap(const char *string){ + return strlen(string); +} + +char *strncat_wrap(char *string1, const char *string2, size_t count){ + return strncat(string1,string2,count); +} + +int strncmp_wrap(const char *string1, const char *string2, size_t count){ + return strncmp(string1,string2,count); +} + +char *strncpy_wrap(char *string1, const char *string2, size_t count){ + return strncpy(string1,string2,count); +} + +char *strpbrk_wrap(const char *string1, const char *string2){ + return strpbrk(string1,string2); +} + +char *strrchr_wrap(const char *string, int c){ + return strrchr(string,c); +} + +size_t strspn_wrap(const char *string1, const char *string2){ + return strspn(string1,string2); +} + +char *strstr_wrap(const char *string1, const char *string2){ + return strstr(string1,string2); +} + +char *strtok_wrap(char *string1, const char *string2){ + return strtok(string1,string2); +} + +char *strtok_r_wrap(char *string, const char *seps, char **lasts){ + return strtok_r(string,seps, char **lasts); +} + +size_t strxfrm_wrap(char *string1, const char *string2, size_t count){ + return strxfrm(string1,string2,count); +} + + +/// +/// strings.h +/// + + +int srtcasecmp_wrap(const char *string1, const char *string2){ + return srtcasecmp(string1,string2); +} + +int strncasecmp_wrap(const char *string1, const char *string2, size_t count){ + return strncasecmp(string1,string2,count); +} + + +/// +/// time.h +/// + + +char *asctime_wrap(const struct tm *time){ + return asctime(time); +} + +char *asctime_r_wrap(const struct tm *tm, char *buf){ + return asctime_r(tm,buf); +} + +clock_t clock_wrap(void){ + return clock(void); +} + +char *ctime_wrap(const time_t *time){ + return ctime(time); +} + +char *ctime_r_wrap(const time_t *time, char *buf){ + return ctime_r(time,buf); +} +/* +char *ctime64_wrap(const time64_t *time){ + return ctime64(time64time); +}*/ +/* +char *ctime64_r_wrap(const time64_t *time, char *buf){ + return ctime64_r(time64time,buf); +}*/ + +double difftime_wrap(time_t time2, time_t time1){ + return difftime(time2,time1); +} +/* +double difftime64_wrap(time64_t time2, time64_t time1){ + return difftime64(time64time2, time64time1); +}*/ + +struct tm *gmtime_wrap(const time_t *time){ + return gmtime(time); +} + +struct tm *gmtime_r_wrap(const time_t *time, struct tm *result){ + return gmtime_r(time,result); +} +/* +struct tm *gmtime64_wrap(const time64_t *time){ + return gmtime64(time64time); +}*/ +/* +struct tm *gmtime64_r_wrap(const time64_t *time, struct tm *result){ + return gmtime64_r(time64time,result); +}*/ + +struct tm *localtime_wrap(const time_t *timeval){ + return localtime(timeval); +} + +struct tm *localtime_r_wrap(const time_t *timeval, struct tm *result){ + return localtime_r(timeval,result); +} +/* +struct tm *localtime64_wrap(const time64_t *timeval){ + return localtime64(time64timeval); +}*/ +/* +struct tm *localtime64_r_wrap(const time64_t *timeval, struct tm *result){ + return localtime64_r(time64timeval,result); +}*/ + +time_t mktime_wrap(struct tm *time){ + return mktime(time); +} +/* +time64_t mktime64_wrap(struct tm *time){ + return mktime64(time); +}*/ + +size_t strftime_wrap(char *dest, size_t maxsize, const char *format, const struct tm *timeptr){ + return strftime(dest,maxsize,format,timeptr); +} + +char *strptime_wrap(const char *buf, const char *format, struct tm *tm){ + return strptime(buf,format,tm); +} + +time_t time_wrap(time_t *timeptr){ + return time(timeptr); +} +/* +time64_t time64_wrap(time64_t *timeptr){ + return time64(time64timeptr); +}*/ + + +/// +/// wchar.h +/// + +/* +wint_t getwchar_wrap(void){ + return getwchar(void); +}*/ + +int mbrlen_wrap(const char *s, size_t n, mbstate_t *ps){ + return mbrlen(s,n,ps); +} +/* +int mbrtowc_wrap(wchar_t *pwc, const char *s, size_t n, mbstate_t *ps){ + return mbrtowc(pwc,s,n,ps); +}*/ + +int mbsinit_wrap(const mbstate_t *ps){ + return mbsinit(ps); +} +/* +size_t mbsrtowc_wrap(wchar_t *dst, const char **src, size_t len, mbstate_t *ps){ + return mbsrtowc(dst,char **src,len,ps); +}*/ +/* +wint_t putwchar_wrap(wchar_t wc){ + return putwchar(wc); +}*/ +/* +int strfmon_wrap(char *s, size_t maxsize, const char *format, ...){ + return strfmon(s,maxsize,format, ...); +}*/ +/* +int swprintf_wrap(wchar_t *wcsbuffer, size_t n, const wchar_t *format, ...){ + return swprintf(wcsbuffer,n,format, ...); +}*/ +/* +int swscanf_wrap(const wchar_t *buffer, const wchar_t *format, ...){ + return swscanf(buffer,format, ...); +}*/ +/* +int wcrtomb_wrap(char *s, wchar_t wchar, mbstate_t *pss){ + return wcrtomb(s,wchar,pss); +}*/ +/* +wchar_t *wcscat_wrap(wchar_t *string1, const wchar_t *string2){ + return wcscat(string1,string2); +}*/ +/* +wchar_t *wcschr_wrap(const wchar_t *string, wchar_t character){ + return wcschr(string,character); +}*/ +/* +int wcscmp_wrap(const wchar_t *string1, const wchar_t *string2){ + return wcscmp(string1,string2); +}*/ +/* +int wcscoll_wrap(const wchar_t *wcs1, const wchar_t *wcs2){ + return wcscoll(wcs1,wcs2); +}*/ +/* +wchar_t *wcscpy_wrap(wchar_t *string1, const wchar_t *string2){ + return wcscpy(string1,string2); +}*/ +/* +size_t wcscspn_wrap(const wchar_t *string1, const wchar_t *string2){ + return wcscspn(string1,string2); +}*/ +/* +size_t wcsftime_wrap(wchar_t *wdest, size_t maxsize, const wchar_t *format, const struct tm *timeptr){ + return wcsftime(wdest,maxsize,format,timeptr); +}*/ +/* +size_t wcslen_wrap(const wchar_t *string){ + return wcslen(string); +}*/ +/* +wchar_t *wcsncat_wrap(wchar_t *string1, const wchar_t *string2, size_t count){ + return wcsncat(string1,string2,count); +}*/ +/* +int wcsncmp_wrap(const wchar_t *string1, const wchar_t *string2, size_t count){ + return wcsncmp(string1,string2,count); +}*/ +/* +wchar_t *wcsncpy_wrap(wchar_t *string1, const wchar_t *string2, size_t count){ + return wcsncpy(string1,string2,count); +}*/ +/* +wchar_t *wcspbrk_wrap(const wchar_t *string1, const wchar_t *string2){ + return wcspbrk(string1,string2); +}*/ +/* +wchar_t *wcsptime_wrap(const wchar_t *buf, const wchar_t *format, struct tm *tm ){ + return wcsptime(buf,format,tm ); +}*/ +/* +wchar_t *wcsrchr_wrap(const wchar_t *string, wchar_t character){ + return wcsrchr(string,character); +}*/ +/* +size_t wcsrtombs_wrap(char *dst, const wchar_t **src, size_t len, mbstate_t *ps){ + return wcsrtombs(dst,wchar_t **src,len,ps); +}*/ +/* +size_t wcsspn_wrap(const wchar_t *string1, const wchar_t *string2){ + return wcsspn(string1,string2); +}*/ +/* +wchar_t *wcsstr_wrap(const wchar_t *wcs1, const wchar_t *wcs2){ + return wcsstr(wcs1,wcs2); +}*/ +/* +double wcstod_wrap(const wchar_t *nptr, wchar_t **endptr){ + return wcstod(nptr, wchar_t **endptr); +}*/ +/* +_Decimal128 wcstod128_wrap(const wchar_t *nptr, wchar_t **endptr){ + return wcstod128(nptr, wchar_t **endptr); +}*/ +/* +_Decimal32 wcstod32_wrap(const wchar_t *nptr, wchar_t **endptr){ + return wcstod32(nptr, wchar_t **endptr); +}*/ +/* +_Decimal64 wcstod64_wrap(const wchar_t *nptr, wchar_t **endptr){ + return wcstod64(nptr, wchar_t **endptr); +}*/ +/* +float wcstof_wrap(const wchar_t *nptr, wchar_t **endptr){ + return wcstof(nptr, wchar_t **endptr); +}*/ +/* +wchar_t *wcstok_wrap(wchar_t *wcs1, const wchar_t *wcs2, wchar_t **ptr{ + return wcstok(wcstok(wcs1,wcs2, wchar_t **ptr)); +}*/ +/* +long int wcstol_wrap(const wchar_t *nptr, wchar_t **endptr, int base){ + return wcstol(nptr, wchar_t **endptr,base); +}*/ +/* +long double wcstold_wrap(const wchar_t *nptr, wchar_t **endptr){ + return wcstold(nptr, wchar_t **endptr); +}*/ +/* +unsigned long int wcstoul_wrap(const wchar_t *nptr, wchar_t **endptr, int base){ + return wcstoul(nptr, wchar_t **endptr,base); +}*/ +/* +size_t wcsxfrm_wrap(wchar_t *wcs1, const wchar_t *wcs2, size_t n){ + return wcsxfrm(wcs1,wcs2,n); +}*/ + +wctype_t wctype_wrap(const char *property){ + return wctype(property); +} +/* +int wcswidth_wrap(const wchar_t *pwcs, size_t n){ + return wcswidth(pwcs,n); +}*/ +/* +wchar_t *wmemchr_wrap(const wchar_t *s, wchar_t c, size_t n){ + return wmemchr(s,c,n); +}*/ +/* +int wmemcmp_wrap(const wchar_t *s1, const wchar_t *s2, size_t n){ + return wmemcmp(s1,s2,n); +}*/ +/* +wchar_t *wmemcpy_wrap(wchar_t *s1, const wchar_t *s2, size_t n){ + return wmemcpy(s1,s2,n); +}*/ +/* +wchar_t *wmemmove_wrap(wchar_t *s1, const wchar_t *s2, size_t n){ + return wmemmove(s1,s2,n); +}*/ +/* +wchar_t *wmemset_wrap(wchar_t *s, wchar_t c, size_t n){ + return wmemset(s,c,n); +}*/ +/* +int wprintf_wrap(const wchar_t *format, ...){ + return wprintf(format, ...); +}*/ +/* +int wscanf_wrap(const wchar_t *format, ...){ + return wscanf(format, ...); +}*/ + + +/// +/// wctype.h +/// + +/* +int iswalnum_wrap(wint_t wc){ + return iswalnum(wc); +}*/ +/* +int iswalpha_wrap(wint_t wc){ + return iswalpha(wc); +}*/ +/* +int iswblank_wrap(wint_t wc){ + return iswblank(wc); +}*/ +/* +int iswcntrl_wrap(wint_t wc){ + return iswcntrl(wc); +}*/ +/* +int iswctype_wrap(wint_t wc, wctype_t wc_prop){ + return iswctype(wc,wc_prop); +}*/ +/* +int iswdigit_wrap(wint_t wc){ + return iswdigit(wc); +}*/ +/* +int iswgraph_wrap(wint_t wc){ + return iswgraph(wc); +}*/ +/* +int iswlower_wrap(wint_t wc){ + return iswlower(wc); +}*/ +/* +int iswprint_wrap(wint_t wc){ + return iswprint(wc); +}*/ +/* +int iswpunct_wrap(wint_t wc){ + return iswpunct(wc); +}*/ +/* +int iswspace_wrap(wint_t wc){ + return iswspace(wc); +}*/ +/* +int iswupper_wrap(wint_t wc){ + return iswupper(wc); +}*/ +/* +int iswxdigit_wrap(wint_t wc){ + return iswxdigit(wc); +}*/ + +int isxdigit_wrap(int c){ + return isxdigit(c); +} +/* +wint_t towctrans_wrap(wint_t wc, wctrans_t desc){ + return towctrans(wc,desc); +}*/ +/* +wint_t towlower_wrap(wint_t wc){ + return towlower(wc); +}*/ +/* +wint_t towupper_wrap(wint_t wc){ + return towupper(wc); +}*/ + +wctrans_t wctrans_wrap(const char *property){ + return wctrans(property); +} + + From e82c92e6dda0d261a855d91cae5db5b6251f45bf Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Wed, 2 Aug 2023 09:11:45 -0600 Subject: [PATCH 06/15] Update c_bridge.c simplified --- c_compiler/c_bridge/c_bridge.c | 842 +-------------------------------- 1 file changed, 13 insertions(+), 829 deletions(-) diff --git a/c_compiler/c_bridge/c_bridge.c b/c_compiler/c_bridge/c_bridge.c index 0de533d59..7fa08131f 100644 --- a/c_compiler/c_bridge/c_bridge.c +++ b/c_compiler/c_bridge/c_bridge.c @@ -43,23 +43,13 @@ int snprintf_wrap(char *restrict buffer, size_t bufsz, const char *restrict form - /// Created by: https://docs.google.com/spreadsheets/d/126iyiRC-fspn9O-0QV39JneEetiVtKzm_KmFJkNxPGo/edit?usp=sharing -/// -/// assert.h -/// - - -void assert_wrap(int expression){ - return assert(expression); -} - - /// /// ctype.h /// +#include int isalnum_wrap(int c){ return isalnum(c); @@ -122,38 +112,11 @@ int toupper_wrap(int c){ } -/// -/// langinfo.h -/// - - -char *nl_langinfo_wrap(nl_item item){ - return nl_langinfo(item); -} - - -/// -/// locale.h -/// - - -struct lconv *localeconv_wrap(void){ - return localeconv(void); -} - -char *setlocale_wrap(int category, const char *locale){ - return setlocale(category,locale); -} - -struct wcslconv *wcslocaleconv_wrap(void){ - return wcslocaleconv(void); -} - - /// /// math.h /// +#include double acos_wrap(double x){ return acos(x); @@ -266,42 +229,6 @@ long double nexttowardl_wrap(long double x, long double y){ double pow_wrap(double x, double y){ return pow(x,y); } -/* -_Decimal128 quantized128_wrap(_Decimal128 x, _Decimal128 y){ - return quantized128(_Decimal128 x, _Decimal128 y); -}*/ -/* -_Decimal32 quantized32_wrap(_Decimal32 x, _Decimal32 y){ - return quantized32(_Decimal32 x, _Decimal32 y); -}*/ -/* -_Decimal64 quantized64_wrap(_Decimal64 x, _Decimal64 y){ - return quantized64(_Decimal64 x, _Decimal64 y); -}*/ -/* -int quantexpd128_wrap(_Decimal128 x){ - return quantexpd128(_Decimal128 x); -}*/ -/* -int quantexpd32_wrap(_Decimal32 x){ - return quantexpd32(_Decimal32 x); -}*/ -/* -int quantexpd64_wrap(_Decimal64 x){ - return quantexpd64(_Decimal64 x); -}*/ -/* -__bool__ samequantumd128_wrap(_Decimal128 x, _Decimal128 y){ - return samequantumd128(_Decimal128 x, _Decimal128 y); -}*/ -/* -__bool__ samequantumd32_wrap(_Decimal32 x, _Decimal32 y){ - return samequantumd32(_Decimal32 x, _Decimal32 y); -}*/ -/* -__bool__ samequantumd64_wrap(_Decimal64 x, _Decimal64 y){ - return samequantumd64(_Decimal64 x, _Decimal64 y); -}*/ double sin_wrap(double x){ return sin(x); @@ -336,213 +263,14 @@ double yn_wrap(int n, double x){ } -/// -/// nl_types.h -/// - - -int catclose_wrap(nl_catd catd){ - return catclose(catd); -} - -char *catgets_wrap(nl_catd catd, int set_id, int msg_id, const char *s){ - return catgets(catd,set_id,msg_id,s); -} - -nl_catd catopen_wrap(const char *name, int oflag){ - return catopen(name,oflag); -} - - -/// -/// regex.h -/// - -/* -int regcomp_wrap(regex_t *preg, const char *pattern, int cflags){ - return regcomp(preg,pattern,cflags); -}*/ -/* -size_t regerror_wrap(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size){ - return regerror(errcode,preg,errbuf,errbuf_size); -}*/ -/* -int regexec_wrap(const regex_t *preg, const char *string, size_t nmatch, regmatch_t *pmatch, int eflags){ - return regexec(preg,string,nmatch,pmatch,eflags); -}*/ -/* -void regfree_wrap(regex_t *preg){ - return regfree(preg); -}*/ - - -/// -/// setjmp.h -/// - - -void longjmp_wrap(jmp_buf env, int value){ - return longjmp(env,value); -} - -int setjmp_wrap(jmp_buf env){ - return setjmp(env); -} - - -/// -/// signal.h -/// - - -int raise_wrap(int sig){ - return raise(sig); -} -/* -void_wrap(*signal _wrap(int sig, void_wrap(*func)_wrap(int))) _wrap(int){ - return void(int); -}*/ - - -/// -/// stdarg.h -/// - -/* -var_type va_arg_wrap(va_list arg_ptr, var_type){ - return va_arg(arg_ptr, var_type); -}*/ -/* -void va_copy_wrap(va_list dest, va_list src){ - return va_copy(dest,src); -}*/ -/* -void va_end_wrap(va_list arg_ptr){ - return va_end(arg_ptr); -}*/ -/* -void va_start_wrap(va_list arg_ptr, variable_name){ - return va_start(arg_ptr, variable_name); -}*/ - - -/// -/// wchar.h -/// - -/* -int vfwprintf_wrap(FILE *stream, const wchar_t *format, va_list arg){ - return vfwprintf(stream,format,arg); -}*/ -/* -int vswprintf_wrap(wchar_t *wcsbuffer, size_t n, const wchar_t *format, va_list arg){ - return vswprintf(wcsbuffer,n,format,arg); -}*/ -/* -int vwprintf_wrap(const wchar_t *format, va_list arg){ - return vwprintf(format,arg); -}*/ -/* -int wctob_wrap(wint_t wc){ - return wctob(wc); -}*/ - - /// /// stdio.h /// - -void clearerr_wrap(FILE *stream){ - return clearerr(stream); -} - -int fclose_wrap(FILE *stream){ - return fclose(stream); -} - -FILE *fdopen_wrap(int handle, const char *type){ - return fdopen(handle,type); -} - -int feof_wrap(FILE *stream){ - return feof(stream); -} - -int ferror_wrap(FILE *stream){ - return ferror(stream); -} - -int fflush_wrap(FILE *stream){ - return fflush(stream); -} - -int fgetc_wrap(FILE *stream){ - return fgetc(stream); -} - -int fgetpos_wrap(FILE *stream, fpos_t *pos){ - return fgetpos(stream,pos); -} - -char *fgets_wrap(char *string, int n, FILE *stream){ - return fgets(string,n,stream); -} - -int fileno_wrap(FILE *stream){ - return fileno(stream); -} - -FILE *fopen_wrap(const char *filename, const char *mode){ - return fopen(filename,mode); -} -/* -int fprintf_wrap(FILE *stream, const char *format_string, ...){ - return fprintf(stream,format_string, ...); -}*/ - -int fputc_wrap(int c, FILE *stream){ - return fputc(c,stream); -} - -int fputs_wrap(const char *string, FILE *stream){ - return fputs(string,stream); -} - -size_t fread_wrap(void *buffer, size_t size, size_t count, FILE *stream){ - return fread(buffer,size,count,stream); -} - -FILE *freopen_wrap(const char *filename, const char *mode, FILE *stream){ - return freopen(filename,mode,stream); -} -/* -int fscanf_wrap(FILE *stream, const char *format_string, ...){ - return fscanf(stream,format_string, ...); -}*/ - -int fseek_wrap(FILE *stream, long int offset, int origin){ - return fseek(stream,offset,origin); -} - -int fsetpos_wrap(FILE *stream, const fpos_t *pos){ - return fsetpos(stream,pos); -} - -long int ftell_wrap(FILE *stream){ - return ftell(stream); -} - -size_t fwrite_wrap(const void *buffer, size_t size,size_t count, FILE *stream){ - return fwrite(buffer,size,count,stream); -} - -int getc_wrap(FILE *stream){ - return getc(stream); -} +#include int getchar_wrap(void){ - return getchar(void); + return getchar(); } char *gets_wrap(char *buffer){ @@ -557,10 +285,6 @@ int printf_wrap(const char *format_string, ...){ return printf(format_string, ...); }*/ -int putc_wrap(int c, FILE *stream){ - return putc(c,stream); -} - int putchar_wrap(int c){ return putchar(c); } @@ -576,22 +300,10 @@ int remove_wrap(const char *filename){ int rename_wrap(const char *oldname, const char *newname){ return rename(oldname,newname); } - -void rewind_wrap(FILE *stream){ - return rewind(stream); -} - -int scanf_wrap(const char *format-string, arg-list){ - return scanf(format-string, arg-list); -} - -void setbuf_wrap(FILE *stream, char *buffer){ - return setbuf(stream,buffer); -} - -int setvbuf_wrap(FILE *stream, char *buf, int type, size_t size){ - return setvbuf(stream,buf,type,size); -} +/* +int scanf_wrap(const char *format_string, ...){ + return scanf(format_string, ...); +}*/ /* int snprintf_wrap(char *outbuf, size_t n, const char*, ...){ return snprintf(outbuf,n,char*, ...); @@ -605,131 +317,24 @@ int sscanf_wrap(const char *buffer, const char *format, ...){ return sscanf(buffer,format, ...); }*/ -FILE *tmpfile_wrap(void){ - return tmpfile(void); -} - char *tmpnam_wrap(char *string){ return tmpnam(string); } -int ungetc_wrap(int c, FILE *stream){ - return ungetc(c,stream); -} - -int vsnprintf_wrap(char *outbuf, size_t n, const char*, va_list){ - return vsnprintf(outbuf,n,char*, va_list); -} - - -/// -/// wchar.h -/// - -/* -wint_t btowc_wrap(int c){ - return btowc(c); -}*/ -/* -wint_t fgetwc_wrap(FILE *stream){ - return fgetwc(stream); -}*/ -/* -wchar_t *fgetws_wrap(wchar_t *wcs, int n, FILE *stream){ - return fgetws(wcs,n,stream); -}*/ -/* -wint_t fputwc_wrap(wchar_t wc, FILE *stream){ - return fputwc(wc,stream); -}*/ -/* -int fputws_wrap(const wchar_t *wcs, FILE *stream){ - return fputws(wcs,stream); -}*/ - -int fwide_wrap(FILE *stream, int mode){ - return fwide(stream,mode); -} -/* -int fwprintf_wrap(FILE *stream, const wchar_t *format, ...){ - return fwprintf(stream,format, ...); -}*/ -/* -int fwscanf_wrap(FILE *stream, const wchar_t *format, ...{ - return fwscanf(fwscanf(stream,format, ...)); -}*/ -/* -wint_t getwc_wrap(FILE *stream){ - return getwc(stream); -}*/ -/* -wint_t putwchar_wrap(wchar_t wc, FILE *stream){ - return putwchar(wc,stream); -}*/ -/* -wint_t ungetwc_wrap(wint_t wc, FILE *stream){ - return ungetwc(wc,stream); -}*/ - - -/// -/// stdio.h -/// - - -int vfprintf_wrap(FILE *stream, const char *format, va_list arg_ptr){ - return vfprintf(stream,format,arg_ptr); -} - -int vprintf_wrap(const char *format, va_list arg_ptr){ - return vprintf(format,arg_ptr); -} - -int vsprintf_wrap(char *target-string, const char *format, va_list arg_ptr){ - return vsprintf(target-string,format,arg_ptr); -} - -int vfscanf_wrap(FILE *stream, const char *format, va_list arg_ptr){ - return vfscanf(stream,format,arg_ptr); -} -/* -int vfwscanf_wrap(FILE *stream, const wchar_t *format, va_list arg_ptr){ - return vfwscanf(stream,format,arg_ptr); -}*/ - -int vscanf_wrap(const char *format, va_list arg_ptr){ - return vscanf(format,arg_ptr); -} - -int vsscanf_wrap(const char*buffer, const char *format, va_list arg_ptr){ - return vsscanf(buffer,format,arg_ptr); -} -/* -int vswscanf_wrap(const wchar_t *buffer, const wchar_t *format, va_list arg_ptr){ - return vswscanf(buffer,format,arg_ptr); -}*/ -/* -int vwscanf_wrap(const wchar_t *format, va_list arg_ptr){ - return vwscanf(format,arg_ptr); -}*/ - /// /// stdlib.h /// +#include void abort_wrap(void){ - return abort(void); + return abort(); } int abs_wrap(int n){ return abs(n); } -/* -int atexit_wrap(void _wrap(*func)_wrap(void)){ - return atexit(void)); -}*/ double atof_wrap(const char *string){ return atof(string); @@ -742,19 +347,11 @@ int atoi_wrap(const char *string){ long int atol_wrap(const char *string){ return atol(string); } -/* -void *bsearch_wrap(const void *key, const void *base, size_t num, size_t size, int _wrap(*compare) _wrap(const void *element1, const void *element2)){ - return bsearch(element1,element2)); -}*/ void *calloc_wrap(size_t num, size_t size){ return calloc(num,size); } -div_t div_wrap(int numerator, int denominator){ - return div(numerator,denominator); -} - void exit_wrap(int status){ return exit(status); } @@ -782,29 +379,17 @@ void *malloc_wrap(size_t size){ int mblen_wrap(const char *string, size_t n){ return mblen(string,n); } -/* -size_t mbstowcs_wrap(wchar_t *pwc, const char *string, size_t n){ - return mbstowcs(pwc,string,n); -}*/ -/* -int mbtowc_wrap(wchar_t *pwc, const char *string, size_t n){ - return mbtowc(pwc,string,n); -}*/ int *putenv_wrap(const char *varname){ return putenv(varname); } -/* -void qsort_wrap(void *base, size_t num, size_t width, int_wrap(*compare)_wrap(const void *element1, const void *element2)){ - return int(element1,element2)); -}*/ int rand_wrap(void){ - return rand(void); + return rand(); } int rand_r_wrap(void){ - return rand_r(void); + return rand_r(); } void *realloc_wrap(void *ptr, size_t size){ @@ -818,18 +403,6 @@ void srand_wrap(unsigned int seed){ double strtod_wrap(const char *nptr, char **endptr){ return strtod(nptr, char **endptr); } -/* -_Decimal128 strtod128_wrap(const char *nptr, char **endptr){ - return strtod128(nptr, char **endptr); -}*/ -/* -_Decimal32 strtod32_wrap(const char *nptr, char **endptr){ - return strtod32(nptr, char **endptr); -}*/ -/* -_Decimal64 strtod64_wrap(const char *nptr, char **endptr){ - return strtod64(nptr, char **endptr); -}*/ float strtof_wrap(const char *nptr, char **endptr){ return strtof(nptr, char **endptr); @@ -850,20 +423,13 @@ unsigned long int strtoul_wrap(const char *string1, char **string2, int base){ int system_wrap(const char *string){ return system(string); } -/* -size_t wcstombs_wrap(char *dest, const wchar_t *string, size_t count){ - return wcstombs(dest,string,count); -}*/ -/* -int wctomb_wrap(char *string, wchar_t character){ - return wctomb(string,character); -}*/ /// /// string.h /// +#include void *memchr_wrap(const void *buf, int c, size_t count){ return memchr(buf,c,count); @@ -956,385 +522,3 @@ char *strtok_r_wrap(char *string, const char *seps, char **lasts){ size_t strxfrm_wrap(char *string1, const char *string2, size_t count){ return strxfrm(string1,string2,count); } - - -/// -/// strings.h -/// - - -int srtcasecmp_wrap(const char *string1, const char *string2){ - return srtcasecmp(string1,string2); -} - -int strncasecmp_wrap(const char *string1, const char *string2, size_t count){ - return strncasecmp(string1,string2,count); -} - - -/// -/// time.h -/// - - -char *asctime_wrap(const struct tm *time){ - return asctime(time); -} - -char *asctime_r_wrap(const struct tm *tm, char *buf){ - return asctime_r(tm,buf); -} - -clock_t clock_wrap(void){ - return clock(void); -} - -char *ctime_wrap(const time_t *time){ - return ctime(time); -} - -char *ctime_r_wrap(const time_t *time, char *buf){ - return ctime_r(time,buf); -} -/* -char *ctime64_wrap(const time64_t *time){ - return ctime64(time64time); -}*/ -/* -char *ctime64_r_wrap(const time64_t *time, char *buf){ - return ctime64_r(time64time,buf); -}*/ - -double difftime_wrap(time_t time2, time_t time1){ - return difftime(time2,time1); -} -/* -double difftime64_wrap(time64_t time2, time64_t time1){ - return difftime64(time64time2, time64time1); -}*/ - -struct tm *gmtime_wrap(const time_t *time){ - return gmtime(time); -} - -struct tm *gmtime_r_wrap(const time_t *time, struct tm *result){ - return gmtime_r(time,result); -} -/* -struct tm *gmtime64_wrap(const time64_t *time){ - return gmtime64(time64time); -}*/ -/* -struct tm *gmtime64_r_wrap(const time64_t *time, struct tm *result){ - return gmtime64_r(time64time,result); -}*/ - -struct tm *localtime_wrap(const time_t *timeval){ - return localtime(timeval); -} - -struct tm *localtime_r_wrap(const time_t *timeval, struct tm *result){ - return localtime_r(timeval,result); -} -/* -struct tm *localtime64_wrap(const time64_t *timeval){ - return localtime64(time64timeval); -}*/ -/* -struct tm *localtime64_r_wrap(const time64_t *timeval, struct tm *result){ - return localtime64_r(time64timeval,result); -}*/ - -time_t mktime_wrap(struct tm *time){ - return mktime(time); -} -/* -time64_t mktime64_wrap(struct tm *time){ - return mktime64(time); -}*/ - -size_t strftime_wrap(char *dest, size_t maxsize, const char *format, const struct tm *timeptr){ - return strftime(dest,maxsize,format,timeptr); -} - -char *strptime_wrap(const char *buf, const char *format, struct tm *tm){ - return strptime(buf,format,tm); -} - -time_t time_wrap(time_t *timeptr){ - return time(timeptr); -} -/* -time64_t time64_wrap(time64_t *timeptr){ - return time64(time64timeptr); -}*/ - - -/// -/// wchar.h -/// - -/* -wint_t getwchar_wrap(void){ - return getwchar(void); -}*/ - -int mbrlen_wrap(const char *s, size_t n, mbstate_t *ps){ - return mbrlen(s,n,ps); -} -/* -int mbrtowc_wrap(wchar_t *pwc, const char *s, size_t n, mbstate_t *ps){ - return mbrtowc(pwc,s,n,ps); -}*/ - -int mbsinit_wrap(const mbstate_t *ps){ - return mbsinit(ps); -} -/* -size_t mbsrtowc_wrap(wchar_t *dst, const char **src, size_t len, mbstate_t *ps){ - return mbsrtowc(dst,char **src,len,ps); -}*/ -/* -wint_t putwchar_wrap(wchar_t wc){ - return putwchar(wc); -}*/ -/* -int strfmon_wrap(char *s, size_t maxsize, const char *format, ...){ - return strfmon(s,maxsize,format, ...); -}*/ -/* -int swprintf_wrap(wchar_t *wcsbuffer, size_t n, const wchar_t *format, ...){ - return swprintf(wcsbuffer,n,format, ...); -}*/ -/* -int swscanf_wrap(const wchar_t *buffer, const wchar_t *format, ...){ - return swscanf(buffer,format, ...); -}*/ -/* -int wcrtomb_wrap(char *s, wchar_t wchar, mbstate_t *pss){ - return wcrtomb(s,wchar,pss); -}*/ -/* -wchar_t *wcscat_wrap(wchar_t *string1, const wchar_t *string2){ - return wcscat(string1,string2); -}*/ -/* -wchar_t *wcschr_wrap(const wchar_t *string, wchar_t character){ - return wcschr(string,character); -}*/ -/* -int wcscmp_wrap(const wchar_t *string1, const wchar_t *string2){ - return wcscmp(string1,string2); -}*/ -/* -int wcscoll_wrap(const wchar_t *wcs1, const wchar_t *wcs2){ - return wcscoll(wcs1,wcs2); -}*/ -/* -wchar_t *wcscpy_wrap(wchar_t *string1, const wchar_t *string2){ - return wcscpy(string1,string2); -}*/ -/* -size_t wcscspn_wrap(const wchar_t *string1, const wchar_t *string2){ - return wcscspn(string1,string2); -}*/ -/* -size_t wcsftime_wrap(wchar_t *wdest, size_t maxsize, const wchar_t *format, const struct tm *timeptr){ - return wcsftime(wdest,maxsize,format,timeptr); -}*/ -/* -size_t wcslen_wrap(const wchar_t *string){ - return wcslen(string); -}*/ -/* -wchar_t *wcsncat_wrap(wchar_t *string1, const wchar_t *string2, size_t count){ - return wcsncat(string1,string2,count); -}*/ -/* -int wcsncmp_wrap(const wchar_t *string1, const wchar_t *string2, size_t count){ - return wcsncmp(string1,string2,count); -}*/ -/* -wchar_t *wcsncpy_wrap(wchar_t *string1, const wchar_t *string2, size_t count){ - return wcsncpy(string1,string2,count); -}*/ -/* -wchar_t *wcspbrk_wrap(const wchar_t *string1, const wchar_t *string2){ - return wcspbrk(string1,string2); -}*/ -/* -wchar_t *wcsptime_wrap(const wchar_t *buf, const wchar_t *format, struct tm *tm ){ - return wcsptime(buf,format,tm ); -}*/ -/* -wchar_t *wcsrchr_wrap(const wchar_t *string, wchar_t character){ - return wcsrchr(string,character); -}*/ -/* -size_t wcsrtombs_wrap(char *dst, const wchar_t **src, size_t len, mbstate_t *ps){ - return wcsrtombs(dst,wchar_t **src,len,ps); -}*/ -/* -size_t wcsspn_wrap(const wchar_t *string1, const wchar_t *string2){ - return wcsspn(string1,string2); -}*/ -/* -wchar_t *wcsstr_wrap(const wchar_t *wcs1, const wchar_t *wcs2){ - return wcsstr(wcs1,wcs2); -}*/ -/* -double wcstod_wrap(const wchar_t *nptr, wchar_t **endptr){ - return wcstod(nptr, wchar_t **endptr); -}*/ -/* -_Decimal128 wcstod128_wrap(const wchar_t *nptr, wchar_t **endptr){ - return wcstod128(nptr, wchar_t **endptr); -}*/ -/* -_Decimal32 wcstod32_wrap(const wchar_t *nptr, wchar_t **endptr){ - return wcstod32(nptr, wchar_t **endptr); -}*/ -/* -_Decimal64 wcstod64_wrap(const wchar_t *nptr, wchar_t **endptr){ - return wcstod64(nptr, wchar_t **endptr); -}*/ -/* -float wcstof_wrap(const wchar_t *nptr, wchar_t **endptr){ - return wcstof(nptr, wchar_t **endptr); -}*/ -/* -wchar_t *wcstok_wrap(wchar_t *wcs1, const wchar_t *wcs2, wchar_t **ptr{ - return wcstok(wcstok(wcs1,wcs2, wchar_t **ptr)); -}*/ -/* -long int wcstol_wrap(const wchar_t *nptr, wchar_t **endptr, int base){ - return wcstol(nptr, wchar_t **endptr,base); -}*/ -/* -long double wcstold_wrap(const wchar_t *nptr, wchar_t **endptr){ - return wcstold(nptr, wchar_t **endptr); -}*/ -/* -unsigned long int wcstoul_wrap(const wchar_t *nptr, wchar_t **endptr, int base){ - return wcstoul(nptr, wchar_t **endptr,base); -}*/ -/* -size_t wcsxfrm_wrap(wchar_t *wcs1, const wchar_t *wcs2, size_t n){ - return wcsxfrm(wcs1,wcs2,n); -}*/ - -wctype_t wctype_wrap(const char *property){ - return wctype(property); -} -/* -int wcswidth_wrap(const wchar_t *pwcs, size_t n){ - return wcswidth(pwcs,n); -}*/ -/* -wchar_t *wmemchr_wrap(const wchar_t *s, wchar_t c, size_t n){ - return wmemchr(s,c,n); -}*/ -/* -int wmemcmp_wrap(const wchar_t *s1, const wchar_t *s2, size_t n){ - return wmemcmp(s1,s2,n); -}*/ -/* -wchar_t *wmemcpy_wrap(wchar_t *s1, const wchar_t *s2, size_t n){ - return wmemcpy(s1,s2,n); -}*/ -/* -wchar_t *wmemmove_wrap(wchar_t *s1, const wchar_t *s2, size_t n){ - return wmemmove(s1,s2,n); -}*/ -/* -wchar_t *wmemset_wrap(wchar_t *s, wchar_t c, size_t n){ - return wmemset(s,c,n); -}*/ -/* -int wprintf_wrap(const wchar_t *format, ...){ - return wprintf(format, ...); -}*/ -/* -int wscanf_wrap(const wchar_t *format, ...){ - return wscanf(format, ...); -}*/ - - -/// -/// wctype.h -/// - -/* -int iswalnum_wrap(wint_t wc){ - return iswalnum(wc); -}*/ -/* -int iswalpha_wrap(wint_t wc){ - return iswalpha(wc); -}*/ -/* -int iswblank_wrap(wint_t wc){ - return iswblank(wc); -}*/ -/* -int iswcntrl_wrap(wint_t wc){ - return iswcntrl(wc); -}*/ -/* -int iswctype_wrap(wint_t wc, wctype_t wc_prop){ - return iswctype(wc,wc_prop); -}*/ -/* -int iswdigit_wrap(wint_t wc){ - return iswdigit(wc); -}*/ -/* -int iswgraph_wrap(wint_t wc){ - return iswgraph(wc); -}*/ -/* -int iswlower_wrap(wint_t wc){ - return iswlower(wc); -}*/ -/* -int iswprint_wrap(wint_t wc){ - return iswprint(wc); -}*/ -/* -int iswpunct_wrap(wint_t wc){ - return iswpunct(wc); -}*/ -/* -int iswspace_wrap(wint_t wc){ - return iswspace(wc); -}*/ -/* -int iswupper_wrap(wint_t wc){ - return iswupper(wc); -}*/ -/* -int iswxdigit_wrap(wint_t wc){ - return iswxdigit(wc); -}*/ - -int isxdigit_wrap(int c){ - return isxdigit(c); -} -/* -wint_t towctrans_wrap(wint_t wc, wctrans_t desc){ - return towctrans(wc,desc); -}*/ -/* -wint_t towlower_wrap(wint_t wc){ - return towlower(wc); -}*/ -/* -wint_t towupper_wrap(wint_t wc){ - return towupper(wc); -}*/ - -wctrans_t wctrans_wrap(const char *property){ - return wctrans(property); -} - - From ca6391f561753cf5aaf152bf7df84311218202c0 Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Wed, 2 Aug 2023 09:13:10 -0600 Subject: [PATCH 07/15] Update c_bridge.h simplified --- c_compiler/c_bridge/c_bridge.h | 452 +-------------------------------- 1 file changed, 6 insertions(+), 446 deletions(-) diff --git a/c_compiler/c_bridge/c_bridge.h b/c_compiler/c_bridge/c_bridge.h index 74b15eca0..8a0ed0ea7 100644 --- a/c_compiler/c_bridge/c_bridge.h +++ b/c_compiler/c_bridge/c_bridge.h @@ -86,27 +86,16 @@ typedef unsigned long long size_t; // stdio.h C_BRIDGE_API int snprintf_wrap(char *restrict buffer, size_t bufsz, const char *restrict format, ...); -// string.h -C_BRIDGE_API void *memset_wrap(void *dest, int ch, size_t count); - -// math.h -C_BRIDGE_API double cos_wrap(double); /// if C_BRIDGE_IMPL is *not* defined (when this library is used, not being compiled) /// then we need to rename all of the functions we provide #ifndef C_BRIDGE_IMPL -// stdio.h #define snprintf snprintf_wrap -/// Created by: https://docs.google.com/spreadsheets/d/126iyiRC-fspn9O-0QV39JneEetiVtKzm_KmFJkNxPGo/edit?usp=sharing - -/// -/// assert.h -/// -C_BRIDGE_API void assert_wrap(int expression); +/// Created by: https://docs.google.com/spreadsheets/d/126iyiRC-fspn9O-0QV39JneEetiVtKzm_KmFJkNxPGo/edit?usp=sharing /// /// ctype.h @@ -128,19 +117,6 @@ C_BRIDGE_API int toascii_wrap(int c); C_BRIDGE_API int tolower_wrap(int c); C_BRIDGE_API int toupper_wrap(int c); -/// -/// langinfo.h -/// - -C_BRIDGE_API char *nl_langinfo_wrap(nl_item item); - -/// -/// locale.h -/// - -C_BRIDGE_API struct lconv *localeconv_wrap(void); -C_BRIDGE_API char *setlocale_wrap(int category, const char *locale); -C_BRIDGE_API struct wcslconv *wcslocaleconv_wrap(void); /// /// math.h @@ -174,15 +150,6 @@ C_BRIDGE_API long double nextafterl_wrap(long double x, long double y); C_BRIDGE_API double nexttoward_wrap(double x, long double y); C_BRIDGE_API long double nexttowardl_wrap(long double x, long double y); C_BRIDGE_API double pow_wrap(double x, double y); -// C_BRIDGE_API _Decimal128 quantized128_wrap(_Decimal128 x, _Decimal128 y); -// C_BRIDGE_API _Decimal32 quantized32_wrap(_Decimal32 x, _Decimal32 y); -// C_BRIDGE_API _Decimal64 quantized64_wrap(_Decimal64 x, _Decimal64 y); -// C_BRIDGE_API int quantexpd128_wrap(_Decimal128 x); -// C_BRIDGE_API int quantexpd32_wrap(_Decimal32 x); -// C_BRIDGE_API int quantexpd64_wrap(_Decimal64 x); -// C_BRIDGE_API __bool__ samequantumd128_wrap(_Decimal128 x, _Decimal128 y); -// C_BRIDGE_API __bool__ samequantumd32_wrap(_Decimal32 x, _Decimal32 y); -// C_BRIDGE_API __bool__ samequantumd64_wrap(_Decimal64 x, _Decimal64 y); C_BRIDGE_API double sin_wrap(double x); C_BRIDGE_API double sinh_wrap(double x); C_BRIDGE_API double sqrt_wrap(double x); @@ -192,131 +159,25 @@ C_BRIDGE_API double y0_wrap(double x); C_BRIDGE_API double y1_wrap(double x); C_BRIDGE_API double yn_wrap(int n, double x); -/// -/// nl_types.h -/// - -C_BRIDGE_API int catclose_wrap(nl_catd catd); -C_BRIDGE_API char *catgets_wrap(nl_catd catd, int set_id, int msg_id, const char *s); -C_BRIDGE_API nl_catd catopen_wrap(const char *name, int oflag); - -/// -/// regex.h -/// - -// C_BRIDGE_API int regcomp_wrap(regex_t *preg, const char *pattern, int cflags); -// C_BRIDGE_API size_t regerror_wrap(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size); -// C_BRIDGE_API int regexec_wrap(const regex_t *preg, const char *string, size_t nmatch, regmatch_t *pmatch, int -// eflags); C_BRIDGE_API void regfree_wrap(regex_t *preg); - -/// -/// setjmp.h -/// - -C_BRIDGE_API void longjmp_wrap(jmp_buf env, int value); -C_BRIDGE_API int setjmp_wrap(jmp_buf env); - -/// -/// signal.h -/// - -C_BRIDGE_API int raise_wrap(int sig); -// C_BRIDGE_API void_wrap(*signal _wrap(int sig, void_wrap(*func)_wrap(int))) _wrap(int); - -/// -/// stdarg.h -/// - -// C_BRIDGE_API var_type va_arg_wrap(va_list arg_ptr, var_type); -// C_BRIDGE_API void va_copy_wrap(va_list dest, va_list src); -// C_BRIDGE_API void va_end_wrap(va_list arg_ptr); -// C_BRIDGE_API void va_start_wrap(va_list arg_ptr, variable_name); - -/// -/// wchar.h -/// - -// C_BRIDGE_API int vfwprintf_wrap(FILE *stream, const wchar_t *format, va_list arg); -// C_BRIDGE_API int vswprintf_wrap(wchar_t *wcsbuffer, size_t n, const wchar_t *format, va_list arg); -// C_BRIDGE_API int vwprintf_wrap(const wchar_t *format, va_list arg); -// C_BRIDGE_API int wctob_wrap(wint_t wc); /// /// stdio.h /// -C_BRIDGE_API void clearerr_wrap(FILE *stream); -C_BRIDGE_API int fclose_wrap(FILE *stream); -C_BRIDGE_API FILE *fdopen_wrap(int handle, const char *type); -C_BRIDGE_API int feof_wrap(FILE *stream); -C_BRIDGE_API int ferror_wrap(FILE *stream); -C_BRIDGE_API int fflush_wrap(FILE *stream); -C_BRIDGE_API int fgetc_wrap(FILE *stream); -C_BRIDGE_API int fgetpos_wrap(FILE *stream, fpos_t *pos); -C_BRIDGE_API char *fgets_wrap(char *string, int n, FILE *stream); -C_BRIDGE_API int fileno_wrap(FILE *stream); -C_BRIDGE_API FILE *fopen_wrap(const char *filename, const char *mode); -// C_BRIDGE_API int fprintf_wrap(FILE *stream, const char *format_string, ...); -C_BRIDGE_API int fputc_wrap(int c, FILE *stream); -C_BRIDGE_API int fputs_wrap(const char *string, FILE *stream); -C_BRIDGE_API size_t fread_wrap(void *buffer, size_t size, size_t count, FILE *stream); -C_BRIDGE_API FILE *freopen_wrap(const char *filename, const char *mode, FILE *stream); -// C_BRIDGE_API int fscanf_wrap(FILE *stream, const char *format_string, ...); -C_BRIDGE_API int fseek_wrap(FILE *stream, long int offset, int origin); -C_BRIDGE_API int fsetpos_wrap(FILE *stream, const fpos_t *pos); -C_BRIDGE_API long int ftell_wrap(FILE *stream); -C_BRIDGE_API size_t fwrite_wrap(const void *buffer, size_t size, size_t count, FILE *stream); -C_BRIDGE_API int getc_wrap(FILE *stream); C_BRIDGE_API int getchar_wrap(void); C_BRIDGE_API char *gets_wrap(char *buffer); C_BRIDGE_API void perror_wrap(const char *string); // C_BRIDGE_API int printf_wrap(const char *format_string, ...); -C_BRIDGE_API int putc_wrap(int c, FILE *stream); C_BRIDGE_API int putchar_wrap(int c); C_BRIDGE_API int puts_wrap(const char *string); C_BRIDGE_API int remove_wrap(const char *filename); C_BRIDGE_API int rename_wrap(const char *oldname, const char *newname); -C_BRIDGE_API void rewind_wrap(FILE *stream); -C_BRIDGE_API int scanf_wrap(const char *format - string, arg - list); -C_BRIDGE_API void setbuf_wrap(FILE *stream, char *buffer); -C_BRIDGE_API int setvbuf_wrap(FILE *stream, char *buf, int type, size_t size); +// C_BRIDGE_API int scanf_wrap(const char *format_string, ...); // C_BRIDGE_API int snprintf_wrap(char *outbuf, size_t n, const char*, ...); // C_BRIDGE_API int sprintf_wrap(char *buffer, const char *format_string, ...); // C_BRIDGE_API int sscanf_wrap(const char *buffer, const char *format, ...); -C_BRIDGE_API FILE *tmpfile_wrap(void); C_BRIDGE_API char *tmpnam_wrap(char *string); -C_BRIDGE_API int ungetc_wrap(int c, FILE *stream); -C_BRIDGE_API int vsnprintf_wrap(char *outbuf, size_t n, const char *, va_list); - -/// -/// wchar.h -/// -// C_BRIDGE_API wint_t btowc_wrap(int c); -// C_BRIDGE_API wint_t fgetwc_wrap(FILE *stream); -// C_BRIDGE_API wchar_t *fgetws_wrap(wchar_t *wcs, int n, FILE *stream); -// C_BRIDGE_API wint_t fputwc_wrap(wchar_t wc, FILE *stream); -// C_BRIDGE_API int fputws_wrap(const wchar_t *wcs, FILE *stream); -C_BRIDGE_API int fwide_wrap(FILE *stream, int mode); -// C_BRIDGE_API int fwprintf_wrap(FILE *stream, const wchar_t *format, ...); -// C_BRIDGE_API int fwscanf_wrap(FILE *stream, const wchar_t *format, ...) -// C_BRIDGE_API wint_t getwc_wrap(FILE *stream); -// C_BRIDGE_API wint_t putwchar_wrap(wchar_t wc, FILE *stream); -// C_BRIDGE_API wint_t ungetwc_wrap(wint_t wc, FILE *stream); - -/// -/// stdio.h -/// - -C_BRIDGE_API int vfprintf_wrap(FILE *stream, const char *format, va_list arg_ptr); -C_BRIDGE_API int vprintf_wrap(const char *format, va_list arg_ptr); -C_BRIDGE_API int vsprintf_wrap(char *target - string, const char *format, va_list arg_ptr); -C_BRIDGE_API int vfscanf_wrap(FILE *stream, const char *format, va_list arg_ptr); -// C_BRIDGE_API int vfwscanf_wrap(FILE *stream, const wchar_t *format, va_list arg_ptr); -C_BRIDGE_API int vscanf_wrap(const char *format, va_list arg_ptr); -C_BRIDGE_API int vsscanf_wrap(const char *buffer, const char *format, va_list arg_ptr); -// C_BRIDGE_API int vswscanf_wrap(const wchar_t *buffer, const wchar_t *format, va_list arg_ptr); -// C_BRIDGE_API int vwscanf_wrap(const wchar_t *format, va_list arg_ptr); /// /// stdlib.h @@ -324,14 +185,10 @@ C_BRIDGE_API int vsscanf_wrap(const char *buffer, const char *format, va_list ar C_BRIDGE_API void abort_wrap(void); C_BRIDGE_API int abs_wrap(int n); -// C_BRIDGE_API int atexit_wrap(void _wrap(*func)_wrap(void)); C_BRIDGE_API double atof_wrap(const char *string); C_BRIDGE_API int atoi_wrap(const char *string); C_BRIDGE_API long int atol_wrap(const char *string); -// C_BRIDGE_API void *bsearch_wrap(const void *key, const void *base, size_t num, size_t size, int _wrap(*compare) -// _wrap(const void *element1, const void *element2)); C_BRIDGE_API void *calloc_wrap(size_t num, size_t size); -C_BRIDGE_API div_t div_wrap(int numerator, int denominator); C_BRIDGE_API void exit_wrap(int status); C_BRIDGE_API void free_wrap(void *ptr); C_BRIDGE_API char *getenv_wrap(const char *varname); @@ -339,26 +196,18 @@ C_BRIDGE_API long int labs_wrap(long int n); C_BRIDGE_API ldiv_t ldiv_wrap(long int numerator, long int denominator); C_BRIDGE_API void *malloc_wrap(size_t size); C_BRIDGE_API int mblen_wrap(const char *string, size_t n); -// C_BRIDGE_API size_t mbstowcs_wrap(wchar_t *pwc, const char *string, size_t n); -// C_BRIDGE_API int mbtowc_wrap(wchar_t *pwc, const char *string, size_t n); C_BRIDGE_API int *putenv_wrap(const char *varname); -// C_BRIDGE_API void qsort_wrap(void *base, size_t num, size_t width, int_wrap(*compare)_wrap(const void *element1, -// const void *element2)); C_BRIDGE_API int rand_wrap(void); C_BRIDGE_API int rand_r_wrap(void); C_BRIDGE_API void *realloc_wrap(void *ptr, size_t size); C_BRIDGE_API void srand_wrap(unsigned int seed); C_BRIDGE_API double strtod_wrap(const char *nptr, char **endptr); -// C_BRIDGE_API _Decimal128 strtod128_wrap(const char *nptr, char **endptr); -// C_BRIDGE_API _Decimal32 strtod32_wrap(const char *nptr, char **endptr); -// C_BRIDGE_API _Decimal64 strtod64_wrap(const char *nptr, char **endptr); C_BRIDGE_API float strtof_wrap(const char *nptr, char **endptr); C_BRIDGE_API long int strtol_wrap(const char *nptr, char **endptr, int base); C_BRIDGE_API long double strtold_wrap(const char *nptr, char **endptr); C_BRIDGE_API unsigned long int strtoul_wrap(const char *string1, char **string2, int base); C_BRIDGE_API int system_wrap(const char *string); -// C_BRIDGE_API size_t wcstombs_wrap(char *dest, const wchar_t *string, size_t count); -// C_BRIDGE_API int wctomb_wrap(char *string, wchar_t character); + /// /// string.h @@ -388,116 +237,6 @@ C_BRIDGE_API char *strtok_wrap(char *string1, const char *string2); C_BRIDGE_API char *strtok_r_wrap(char *string, const char *seps, char **lasts); C_BRIDGE_API size_t strxfrm_wrap(char *string1, const char *string2, size_t count); -/// -/// strings.h -/// - -C_BRIDGE_API int srtcasecmp_wrap(const char *string1, const char *string2); -C_BRIDGE_API int strncasecmp_wrap(const char *string1, const char *string2, size_t count); - -/// -/// time.h -/// - -C_BRIDGE_API char *asctime_wrap(const struct tm *time); -C_BRIDGE_API char *asctime_r_wrap(const struct tm *tm, char *buf); -C_BRIDGE_API clock_t clock_wrap(void); -C_BRIDGE_API char *ctime_wrap(const time_t *time); -C_BRIDGE_API char *ctime_r_wrap(const time_t *time, char *buf); -// C_BRIDGE_API char *ctime64_wrap(const time64_t *time); -// C_BRIDGE_API char *ctime64_r_wrap(const time64_t *time, char *buf); -C_BRIDGE_API double difftime_wrap(time_t time2, time_t time1); -// C_BRIDGE_API double difftime64_wrap(time64_t time2, time64_t time1); -C_BRIDGE_API struct tm *gmtime_wrap(const time_t *time); -C_BRIDGE_API struct tm *gmtime_r_wrap(const time_t *time, struct tm *result); -// C_BRIDGE_API struct tm *gmtime64_wrap(const time64_t *time); -// C_BRIDGE_API struct tm *gmtime64_r_wrap(const time64_t *time, struct tm *result); -C_BRIDGE_API struct tm *localtime_wrap(const time_t *timeval); -C_BRIDGE_API struct tm *localtime_r_wrap(const time_t *timeval, struct tm *result); -// C_BRIDGE_API struct tm *localtime64_wrap(const time64_t *timeval); -// C_BRIDGE_API struct tm *localtime64_r_wrap(const time64_t *timeval, struct tm *result); -C_BRIDGE_API time_t mktime_wrap(struct tm *time); -// C_BRIDGE_API time64_t mktime64_wrap(struct tm *time); -C_BRIDGE_API size_t strftime_wrap(char *dest, size_t maxsize, const char *format, const struct tm *timeptr); -C_BRIDGE_API char *strptime_wrap(const char *buf, const char *format, struct tm *tm); -C_BRIDGE_API time_t time_wrap(time_t *timeptr); -// C_BRIDGE_API time64_t time64_wrap(time64_t *timeptr); - -/// -/// wchar.h -/// - -// C_BRIDGE_API wint_t getwchar_wrap(void); -C_BRIDGE_API int mbrlen_wrap(const char *s, size_t n, mbstate_t *ps); -// C_BRIDGE_API int mbrtowc_wrap(wchar_t *pwc, const char *s, size_t n, mbstate_t *ps); -C_BRIDGE_API int mbsinit_wrap(const mbstate_t *ps); -// C_BRIDGE_API size_t mbsrtowc_wrap(wchar_t *dst, const char **src, size_t len, mbstate_t *ps); -// C_BRIDGE_API wint_t putwchar_wrap(wchar_t wc); -// C_BRIDGE_API int strfmon_wrap(char *s, size_t maxsize, const char *format, ...); -// C_BRIDGE_API int swprintf_wrap(wchar_t *wcsbuffer, size_t n, const wchar_t *format, ...); -// C_BRIDGE_API int swscanf_wrap(const wchar_t *buffer, const wchar_t *format, ...); -// C_BRIDGE_API int wcrtomb_wrap(char *s, wchar_t wchar, mbstate_t *pss); -// C_BRIDGE_API wchar_t *wcscat_wrap(wchar_t *string1, const wchar_t *string2); -// C_BRIDGE_API wchar_t *wcschr_wrap(const wchar_t *string, wchar_t character); -// C_BRIDGE_API int wcscmp_wrap(const wchar_t *string1, const wchar_t *string2); -// C_BRIDGE_API int wcscoll_wrap(const wchar_t *wcs1, const wchar_t *wcs2); -// C_BRIDGE_API wchar_t *wcscpy_wrap(wchar_t *string1, const wchar_t *string2); -// C_BRIDGE_API size_t wcscspn_wrap(const wchar_t *string1, const wchar_t *string2); -// C_BRIDGE_API size_t wcsftime_wrap(wchar_t *wdest, size_t maxsize, const wchar_t *format, const struct tm *timeptr); -// C_BRIDGE_API size_t wcslen_wrap(const wchar_t *string); -// C_BRIDGE_API wchar_t *wcsncat_wrap(wchar_t *string1, const wchar_t *string2, size_t count); -// C_BRIDGE_API int wcsncmp_wrap(const wchar_t *string1, const wchar_t *string2, size_t count); -// C_BRIDGE_API wchar_t *wcsncpy_wrap(wchar_t *string1, const wchar_t *string2, size_t count); -// C_BRIDGE_API wchar_t *wcspbrk_wrap(const wchar_t *string1, const wchar_t *string2); -// C_BRIDGE_API wchar_t *wcsptime_wrap(const wchar_t *buf, const wchar_t *format, struct tm *tm ); -// C_BRIDGE_API wchar_t *wcsrchr_wrap(const wchar_t *string, wchar_t character); -// C_BRIDGE_API size_t wcsrtombs_wrap(char *dst, const wchar_t **src, size_t len, mbstate_t *ps); -// C_BRIDGE_API size_t wcsspn_wrap(const wchar_t *string1, const wchar_t *string2); -// C_BRIDGE_API wchar_t *wcsstr_wrap(const wchar_t *wcs1, const wchar_t *wcs2); -// C_BRIDGE_API double wcstod_wrap(const wchar_t *nptr, wchar_t **endptr); -// C_BRIDGE_API _Decimal128 wcstod128_wrap(const wchar_t *nptr, wchar_t **endptr); -// C_BRIDGE_API _Decimal32 wcstod32_wrap(const wchar_t *nptr, wchar_t **endptr); -// C_BRIDGE_API _Decimal64 wcstod64_wrap(const wchar_t *nptr, wchar_t **endptr); -// C_BRIDGE_API float wcstof_wrap(const wchar_t *nptr, wchar_t **endptr); -// C_BRIDGE_API wchar_t *wcstok_wrap(wchar_t *wcs1, const wchar_t *wcs2, wchar_t **ptr) -// C_BRIDGE_API long int wcstol_wrap(const wchar_t *nptr, wchar_t **endptr, int base); -// C_BRIDGE_API long double wcstold_wrap(const wchar_t *nptr, wchar_t **endptr); -// C_BRIDGE_API unsigned long int wcstoul_wrap(const wchar_t *nptr, wchar_t **endptr, int base); -// C_BRIDGE_API size_t wcsxfrm_wrap(wchar_t *wcs1, const wchar_t *wcs2, size_t n); -C_BRIDGE_API wctype_t wctype_wrap(const char *property); -// C_BRIDGE_API int wcswidth_wrap(const wchar_t *pwcs, size_t n); -// C_BRIDGE_API wchar_t *wmemchr_wrap(const wchar_t *s, wchar_t c, size_t n); -// C_BRIDGE_API int wmemcmp_wrap(const wchar_t *s1, const wchar_t *s2, size_t n); -// C_BRIDGE_API wchar_t *wmemcpy_wrap(wchar_t *s1, const wchar_t *s2, size_t n); -// C_BRIDGE_API wchar_t *wmemmove_wrap(wchar_t *s1, const wchar_t *s2, size_t n); -// C_BRIDGE_API wchar_t *wmemset_wrap(wchar_t *s, wchar_t c, size_t n); -// C_BRIDGE_API int wprintf_wrap(const wchar_t *format, ...); -// C_BRIDGE_API int wscanf_wrap(const wchar_t *format, ...); - -/// -/// wctype.h -/// - -// C_BRIDGE_API int iswalnum_wrap(wint_t wc); -// C_BRIDGE_API int iswalpha_wrap(wint_t wc); -// C_BRIDGE_API int iswblank_wrap(wint_t wc); -// C_BRIDGE_API int iswcntrl_wrap(wint_t wc); -// C_BRIDGE_API int iswctype_wrap(wint_t wc, wctype_t wc_prop); -// C_BRIDGE_API int iswdigit_wrap(wint_t wc); -// C_BRIDGE_API int iswgraph_wrap(wint_t wc); -// C_BRIDGE_API int iswlower_wrap(wint_t wc); -// C_BRIDGE_API int iswprint_wrap(wint_t wc); -// C_BRIDGE_API int iswpunct_wrap(wint_t wc); -// C_BRIDGE_API int iswspace_wrap(wint_t wc); -// C_BRIDGE_API int iswupper_wrap(wint_t wc); -// C_BRIDGE_API int iswxdigit_wrap(wint_t wc); -C_BRIDGE_API int isxdigit_wrap(int c); -// C_BRIDGE_API wint_t towctrans_wrap(wint_t wc, wctrans_t desc); -// C_BRIDGE_API wint_t towlower_wrap(wint_t wc); -// C_BRIDGE_API wint_t towupper_wrap(wint_t wc); -C_BRIDGE_API wctrans_t wctrans_wrap(const char *property); - -#define assert assert_wrap #define isalnum isalnum_wrap #define isalpha isalpha_wrap #define isascii isascii_wrap @@ -513,10 +252,6 @@ C_BRIDGE_API wctrans_t wctrans_wrap(const char *property); #define toascii toascii_wrap #define tolower tolower_wrap #define toupper toupper_wrap -#define nl_langinfo nl_langinfo_wrap -#define localeconv localeconv_wrap -#define setlocale setlocale_wrap -#define wcslocaleconv wcslocaleconv_wrap #define acos acos_wrap #define asin asin_wrap #define atan atan_wrap @@ -545,15 +280,6 @@ C_BRIDGE_API wctrans_t wctrans_wrap(const char *property); #define nexttoward nexttoward_wrap #define nexttowardl nexttowardl_wrap #define pow pow_wrap -// #define quantized128 quantized128_wrap -// #define quantized32 quantized32_wrap -// #define quantized64 quantized64_wrap -// #define quantexpd128 quantexpd128_wrap -// #define quantexpd32 quantexpd32_wrap -// #define quantexpd64 quantexpd64_wrap -// #define samequantumd128 samequantumd128_wrap -// #define samequantumd32 samequantumd32_wrap -// #define samequantumd64 samequantumd64_wrap #define sin sin_wrap #define sinh sinh_wrap #define sqrt sqrt_wrap @@ -562,96 +288,25 @@ C_BRIDGE_API wctrans_t wctrans_wrap(const char *property); #define y0 y0_wrap #define y1 y1_wrap #define yn yn_wrap -#define catclose catclose_wrap -#define catgets catgets_wrap -#define catopen catopen_wrap -// #define regcomp regcomp_wrap -// #define regerror regerror_wrap -// #define regexec regexec_wrap -// #define regfree regfree_wrap -#define longjmp longjmp_wrap -#define setjmp setjmp_wrap -#define raise raise_wrap -// #define void void_wrap -// #define va_arg va_arg_wrap -// #define va_copy va_copy_wrap -// #define va_end va_end_wrap -// #define va_start va_start_wrap -// #define vfwprintf vfwprintf_wrap -// #define vswprintf vswprintf_wrap -// #define vwprintf vwprintf_wrap -// #define wctob wctob_wrap -#define clearerr clearerr_wrap -#define fclose fclose_wrap -#define fdopen fdopen_wrap -#define feof feof_wrap -#define ferror ferror_wrap -#define fflush fflush_wrap -#define fgetc fgetc_wrap -#define fgetpos fgetpos_wrap -#define fgets fgets_wrap -#define fileno fileno_wrap -#define fopen fopen_wrap -// #define fprintf fprintf_wrap -#define fputc fputc_wrap -#define fputs fputs_wrap -#define fread fread_wrap -#define freopen freopen_wrap -// #define fscanf fscanf_wrap -#define fseek fseek_wrap -#define fsetpos fsetpos_wrap -#define ftell ftell_wrap -#define fwrite fwrite_wrap -#define getc getc_wrap #define getchar getchar_wrap #define gets gets_wrap #define perror perror_wrap // #define printf printf_wrap -#define putc putc_wrap #define putchar putchar_wrap #define puts puts_wrap #define remove remove_wrap #define rename rename_wrap -#define rewind rewind_wrap -#define scanf scanf_wrap -#define setbuf setbuf_wrap -#define setvbuf setvbuf_wrap +// #define scanf scanf_wrap // #define snprintf snprintf_wrap // #define sprintf sprintf_wrap // #define sscanf sscanf_wrap -#define tmpfile tmpfile_wrap #define tmpnam tmpnam_wrap -#define ungetc ungetc_wrap -#define vsnprintf vsnprintf_wrap -// #define btowc btowc_wrap -// #define fgetwc fgetwc_wrap -// #define fgetws fgetws_wrap -// #define fputwc fputwc_wrap -// #define fputws fputws_wrap -#define fwide fwide_wrap -// #define fwprintf fwprintf_wrap -// #define fwscanf fwscanf_wrap -// #define getwc getwc_wrap -// #define putwchar putwchar_wrap -// #define ungetwc ungetwc_wrap -#define vfprintf vfprintf_wrap -#define vprintf vprintf_wrap -#define vsprintf vsprintf_wrap -#define vfscanf vfscanf_wrap -// #define vfwscanf vfwscanf_wrap -#define vscanf vscanf_wrap -#define vsscanf vsscanf_wrap -// #define vswscanf vswscanf_wrap -// #define vwscanf vwscanf_wrap #define abort abort_wrap #define abs abs_wrap -// #define atexit atexit_wrap #define atof atof_wrap #define atoi atoi_wrap #define atol atol_wrap -// #define bsearch bsearch_wrap #define calloc calloc_wrap -#define div div_wrap #define exit exit_wrap #define free free_wrap #define getenv getenv_wrap @@ -659,25 +314,17 @@ C_BRIDGE_API wctrans_t wctrans_wrap(const char *property); #define ldiv ldiv_wrap #define malloc malloc_wrap #define mblen mblen_wrap -// #define mbstowcs mbstowcs_wrap -// #define mbtowc mbtowc_wrap #define putenv putenv_wrap -// #define int int_wrap #define rand rand_wrap #define rand_r rand_r_wrap #define realloc realloc_wrap #define srand srand_wrap #define strtod strtod_wrap -// #define strtod128 strtod128_wrap -// #define strtod32 strtod32_wrap -// #define strtod64 strtod64_wrap #define strtof strtof_wrap #define strtol strtol_wrap #define strtold strtold_wrap #define strtoul strtoul_wrap #define system system_wrap -// #define wcstombs wcstombs_wrap -// #define wctomb wctomb_wrap #define memchr memchr_wrap #define memcmp memcmp_wrap #define memcpy memcpy_wrap @@ -701,95 +348,8 @@ C_BRIDGE_API wctrans_t wctrans_wrap(const char *property); #define strtok strtok_wrap #define strtok_r strtok_r_wrap #define strxfrm strxfrm_wrap -#define srtcasecmp srtcasecmp_wrap -#define strncasecmp strncasecmp_wrap -#define asctime asctime_wrap -#define asctime_r asctime_r_wrap -#define clock clock_wrap -#define ctime ctime_wrap -#define ctime_r ctime_r_wrap -// #define ctime64 ctime64_wrap -// #define ctime64_r ctime64_r_wrap -#define difftime difftime_wrap -// #define difftime64 difftime64_wrap -#define gmtime gmtime_wrap -#define gmtime_r gmtime_r_wrap -// #define gmtime64 gmtime64_wrap -// #define gmtime64_r gmtime64_r_wrap -#define localtime localtime_wrap -#define localtime_r localtime_r_wrap -// #define localtime64 localtime64_wrap -// #define localtime64_r localtime64_r_wrap -#define mktime mktime_wrap -// #define mktime64 mktime64_wrap -#define strftime strftime_wrap -#define strptime strptime_wrap -#define time time_wrap -// #define time64 time64_wrap -// #define getwchar getwchar_wrap -#define mbrlen mbrlen_wrap -// #define mbrtowc mbrtowc_wrap -#define mbsinit mbsinit_wrap -// #define mbsrtowc mbsrtowc_wrap -// #define putwchar putwchar_wrap -// #define strfmon strfmon_wrap -// #define swprintf swprintf_wrap -// #define swscanf swscanf_wrap -// #define wcrtomb wcrtomb_wrap -// #define wcscat wcscat_wrap -// #define wcschr wcschr_wrap -// #define wcscmp wcscmp_wrap -// #define wcscoll wcscoll_wrap -// #define wcscpy wcscpy_wrap -// #define wcscspn wcscspn_wrap -// #define wcsftime wcsftime_wrap -// #define wcslen wcslen_wrap -// #define wcsncat wcsncat_wrap -// #define wcsncmp wcsncmp_wrap -// #define wcsncpy wcsncpy_wrap -// #define wcspbrk wcspbrk_wrap -// #define wcsptime wcsptime_wrap -// #define wcsrchr wcsrchr_wrap -// #define wcsrtombs wcsrtombs_wrap -// #define wcsspn wcsspn_wrap -// #define wcsstr wcsstr_wrap -// #define wcstod wcstod_wrap -// #define wcstod128 wcstod128_wrap -// #define wcstod32 wcstod32_wrap -// #define wcstod64 wcstod64_wrap -// #define wcstof wcstof_wrap -// #define wcstok wcstok_wrap -// #define wcstol wcstol_wrap -// #define wcstold wcstold_wrap -// #define wcstoul wcstoul_wrap -// #define wcsxfrm wcsxfrm_wrap -#define wctype wctype_wrap -// #define wcswidth wcswidth_wrap -// #define wmemchr wmemchr_wrap -// #define wmemcmp wmemcmp_wrap -// #define wmemcpy wmemcpy_wrap -// #define wmemmove wmemmove_wrap -// #define wmemset wmemset_wrap -// #define wprintf wprintf_wrap -// #define wscanf wscanf_wrap -// #define iswalnum iswalnum_wrap -// #define iswalpha iswalpha_wrap -// #define iswblank iswblank_wrap -// #define iswcntrl iswcntrl_wrap -// #define iswctype iswctype_wrap -// #define iswdigit iswdigit_wrap -// #define iswgraph iswgraph_wrap -// #define iswlower iswlower_wrap -// #define iswprint iswprint_wrap -// #define iswpunct iswpunct_wrap -// #define iswspace iswspace_wrap -// #define iswupper iswupper_wrap -// #define iswxdigit iswxdigit_wrap -#define isxdigit isxdigit_wrap -// #define towctrans towctrans_wrap -// #define towlower towlower_wrap -// #define towupper towupper_wrap -#define wctrans wctrans_wrap + + #endif From 37e04d9bf6c3320f0e25fd63183c3c2c3f11e06e Mon Sep 17 00:00:00 2001 From: Clang Robot Date: Wed, 2 Aug 2023 15:13:56 +0000 Subject: [PATCH 08/15] Committing clang-format changes --- c_compiler/c_bridge/c_bridge.h | 8 -------- 1 file changed, 8 deletions(-) diff --git a/c_compiler/c_bridge/c_bridge.h b/c_compiler/c_bridge/c_bridge.h index 8a0ed0ea7..0d182199b 100644 --- a/c_compiler/c_bridge/c_bridge.h +++ b/c_compiler/c_bridge/c_bridge.h @@ -86,7 +86,6 @@ typedef unsigned long long size_t; // stdio.h C_BRIDGE_API int snprintf_wrap(char *restrict buffer, size_t bufsz, const char *restrict format, ...); - /// if C_BRIDGE_IMPL is *not* defined (when this library is used, not being compiled) /// then we need to rename all of the functions we provide @@ -94,7 +93,6 @@ C_BRIDGE_API int snprintf_wrap(char *restrict buffer, size_t bufsz, const char * #define snprintf snprintf_wrap - /// Created by: https://docs.google.com/spreadsheets/d/126iyiRC-fspn9O-0QV39JneEetiVtKzm_KmFJkNxPGo/edit?usp=sharing /// @@ -117,7 +115,6 @@ C_BRIDGE_API int toascii_wrap(int c); C_BRIDGE_API int tolower_wrap(int c); C_BRIDGE_API int toupper_wrap(int c); - /// /// math.h /// @@ -159,7 +156,6 @@ C_BRIDGE_API double y0_wrap(double x); C_BRIDGE_API double y1_wrap(double x); C_BRIDGE_API double yn_wrap(int n, double x); - /// /// stdio.h /// @@ -178,7 +174,6 @@ C_BRIDGE_API int rename_wrap(const char *oldname, const char *newname); // C_BRIDGE_API int sscanf_wrap(const char *buffer, const char *format, ...); C_BRIDGE_API char *tmpnam_wrap(char *string); - /// /// stdlib.h /// @@ -208,7 +203,6 @@ C_BRIDGE_API long double strtold_wrap(const char *nptr, char **endptr); C_BRIDGE_API unsigned long int strtoul_wrap(const char *string1, char **string2, int base); C_BRIDGE_API int system_wrap(const char *string); - /// /// string.h /// @@ -349,8 +343,6 @@ C_BRIDGE_API size_t strxfrm_wrap(char *string1, const char *string2, size_t coun #define strtok_r strtok_r_wrap #define strxfrm strxfrm_wrap - - #endif #endif From 1d7a7e72c74c1cc1ba16a98c8a14ebde37efa57e Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Wed, 2 Aug 2023 09:23:51 -0600 Subject: [PATCH 09/15] Update c_bridge.h --- c_compiler/c_bridge/c_bridge.h | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/c_compiler/c_bridge/c_bridge.h b/c_compiler/c_bridge/c_bridge.h index 0d182199b..deb94833d 100644 --- a/c_compiler/c_bridge/c_bridge.h +++ b/c_compiler/c_bridge/c_bridge.h @@ -115,6 +115,7 @@ C_BRIDGE_API int toascii_wrap(int c); C_BRIDGE_API int tolower_wrap(int c); C_BRIDGE_API int toupper_wrap(int c); + /// /// math.h /// @@ -156,12 +157,12 @@ C_BRIDGE_API double y0_wrap(double x); C_BRIDGE_API double y1_wrap(double x); C_BRIDGE_API double yn_wrap(int n, double x); + /// /// stdio.h /// C_BRIDGE_API int getchar_wrap(void); -C_BRIDGE_API char *gets_wrap(char *buffer); C_BRIDGE_API void perror_wrap(const char *string); // C_BRIDGE_API int printf_wrap(const char *format_string, ...); C_BRIDGE_API int putchar_wrap(int c); @@ -174,6 +175,7 @@ C_BRIDGE_API int rename_wrap(const char *oldname, const char *newname); // C_BRIDGE_API int sscanf_wrap(const char *buffer, const char *format, ...); C_BRIDGE_API char *tmpnam_wrap(char *string); + /// /// stdlib.h /// @@ -191,9 +193,7 @@ C_BRIDGE_API long int labs_wrap(long int n); C_BRIDGE_API ldiv_t ldiv_wrap(long int numerator, long int denominator); C_BRIDGE_API void *malloc_wrap(size_t size); C_BRIDGE_API int mblen_wrap(const char *string, size_t n); -C_BRIDGE_API int *putenv_wrap(const char *varname); C_BRIDGE_API int rand_wrap(void); -C_BRIDGE_API int rand_r_wrap(void); C_BRIDGE_API void *realloc_wrap(void *ptr, size_t size); C_BRIDGE_API void srand_wrap(unsigned int seed); C_BRIDGE_API double strtod_wrap(const char *nptr, char **endptr); @@ -203,6 +203,7 @@ C_BRIDGE_API long double strtold_wrap(const char *nptr, char **endptr); C_BRIDGE_API unsigned long int strtoul_wrap(const char *string1, char **string2, int base); C_BRIDGE_API int system_wrap(const char *string); + /// /// string.h /// @@ -283,7 +284,6 @@ C_BRIDGE_API size_t strxfrm_wrap(char *string1, const char *string2, size_t coun #define y1 y1_wrap #define yn yn_wrap #define getchar getchar_wrap -#define gets gets_wrap #define perror perror_wrap // #define printf printf_wrap #define putchar putchar_wrap @@ -308,9 +308,7 @@ C_BRIDGE_API size_t strxfrm_wrap(char *string1, const char *string2, size_t coun #define ldiv ldiv_wrap #define malloc malloc_wrap #define mblen mblen_wrap -#define putenv putenv_wrap #define rand rand_wrap -#define rand_r rand_r_wrap #define realloc realloc_wrap #define srand srand_wrap #define strtod strtod_wrap From 33be722dd9081bf6a2262c7c4399db4a9534011e Mon Sep 17 00:00:00 2001 From: Clang Robot Date: Wed, 2 Aug 2023 15:24:25 +0000 Subject: [PATCH 10/15] Committing clang-format changes --- c_compiler/c_bridge/c_bridge.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/c_compiler/c_bridge/c_bridge.h b/c_compiler/c_bridge/c_bridge.h index deb94833d..c5d876e37 100644 --- a/c_compiler/c_bridge/c_bridge.h +++ b/c_compiler/c_bridge/c_bridge.h @@ -115,7 +115,6 @@ C_BRIDGE_API int toascii_wrap(int c); C_BRIDGE_API int tolower_wrap(int c); C_BRIDGE_API int toupper_wrap(int c); - /// /// math.h /// @@ -157,7 +156,6 @@ C_BRIDGE_API double y0_wrap(double x); C_BRIDGE_API double y1_wrap(double x); C_BRIDGE_API double yn_wrap(int n, double x); - /// /// stdio.h /// @@ -175,7 +173,6 @@ C_BRIDGE_API int rename_wrap(const char *oldname, const char *newname); // C_BRIDGE_API int sscanf_wrap(const char *buffer, const char *format, ...); C_BRIDGE_API char *tmpnam_wrap(char *string); - /// /// stdlib.h /// @@ -203,7 +200,6 @@ C_BRIDGE_API long double strtold_wrap(const char *nptr, char **endptr); C_BRIDGE_API unsigned long int strtoul_wrap(const char *string1, char **string2, int base); C_BRIDGE_API int system_wrap(const char *string); - /// /// string.h /// From 5c254db30bb3ffec864642b49b56099778b9432b Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Wed, 2 Aug 2023 09:24:30 -0600 Subject: [PATCH 11/15] Update c_bridge.c --- c_compiler/c_bridge/c_bridge.c | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/c_compiler/c_bridge/c_bridge.c b/c_compiler/c_bridge/c_bridge.c index 7fa08131f..865031271 100644 --- a/c_compiler/c_bridge/c_bridge.c +++ b/c_compiler/c_bridge/c_bridge.c @@ -273,10 +273,6 @@ int getchar_wrap(void){ return getchar(); } -char *gets_wrap(char *buffer){ - return gets(buffer); -} - void perror_wrap(const char *string){ return perror(string); } @@ -380,18 +376,10 @@ int mblen_wrap(const char *string, size_t n){ return mblen(string,n); } -int *putenv_wrap(const char *varname){ - return putenv(varname); -} - int rand_wrap(void){ return rand(); } -int rand_r_wrap(void){ - return rand_r(); -} - void *realloc_wrap(void *ptr, size_t size){ return realloc(ptr,size); } @@ -401,23 +389,23 @@ void srand_wrap(unsigned int seed){ } double strtod_wrap(const char *nptr, char **endptr){ - return strtod(nptr, char **endptr); + return strtod(nptr,endptr); } float strtof_wrap(const char *nptr, char **endptr){ - return strtof(nptr, char **endptr); + return strtof(nptr,endptr); } long int strtol_wrap(const char *nptr, char **endptr, int base){ - return strtol(nptr, char **endptr,base); + return strtol(nptr,endptr,base); } long double strtold_wrap(const char *nptr, char **endptr){ - return strtold(nptr, char **endptr); + return strtold(nptr,endptr); } unsigned long int strtoul_wrap(const char *string1, char **string2, int base){ - return strtoul(string1, char **string2,base); + return strtoul(string1,string2,base); } int system_wrap(const char *string){ @@ -516,7 +504,7 @@ char *strtok_wrap(char *string1, const char *string2){ } char *strtok_r_wrap(char *string, const char *seps, char **lasts){ - return strtok_r(string,seps, char **lasts); + return strtok_r(string,seps,lasts); } size_t strxfrm_wrap(char *string1, const char *string2, size_t count){ From 165cecb0f8ed85be31ca26b0db685b0321c0d5e4 Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Thu, 10 Aug 2023 16:55:33 -0600 Subject: [PATCH 12/15] Initial set of notes for stdlib functions needing wrappers --- c_compiler/c_bridge/notes.md | 68 ++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 c_compiler/c_bridge/notes.md diff --git a/c_compiler/c_bridge/notes.md b/c_compiler/c_bridge/notes.md new file mode 100644 index 000000000..4abb6d84d --- /dev/null +++ b/c_compiler/c_bridge/notes.md @@ -0,0 +1,68 @@ +# Functions called from an example OpenModelica model + + +C Standard Library + +* `assert` +* `calloc` *implemented* +* `fprintf` +* `fflush` +* `fmax` +* `fmin` +* `stderr` +* `free` *implemented* +* `sizeof` *builtin* + +Presumed Macros + +* `max` +* `min` +* `EXIT` + +Open Modelica Macros / Functions + +* `MMC_CATCH_STACK` +* `MMC_CATCH_TOP` +* `MMC_DEFSTRINGLIT` +* `MMC_DEFSTRUCTLIT` +* `MMC_ELSE` +* `MMC_INIT` +* `MMC_REFSTRINGLIT` +* `MMC_REFSTRUCTLIT` +* `MMC_STRINGDATA` +* `MMC_TRY_STACK` +* `MMC_TRY_TOP` +* `DIVISION_SIM` +* `initial` +* `modelica_real_to_modelica_string_format` +* `omc_assert_warning` +* `omc_assert_warning_withEquationIndexes` +* `OpenModelica_updateUriMapping` +* `rt_accumulate` +* `rt_tick` +* `rml_execution_failed` + +Unknown + +* `assertStreamPrint` +* `functionAlg_system0` +* `Greater` +* `GreaterEq` +* `infoStreamPrint` +* `infoStreamPrintWithEquationIndexes` +* `LessZC` +* `messageClose` +* `printStacktraceMessages` +* `stringAppend` +* `throwStreamPrint` +* `relationhysteresis` +* `omp_get_max_threads` +* `String` + +Script Functions + +* `der` +* `zeros` + + + From 05bf0c09c94cd979137eeba882d18194dfa98bd4 Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Thu, 10 Aug 2023 16:58:10 -0600 Subject: [PATCH 13/15] fmin/fmax wrapped --- c_compiler/c_bridge/c_bridge.c | 10 ++++++++++ c_compiler/c_bridge/c_bridge.h | 4 ++++ c_compiler/c_bridge/notes.md | 6 +++--- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/c_compiler/c_bridge/c_bridge.c b/c_compiler/c_bridge/c_bridge.c index 865031271..5bc7ef209 100644 --- a/c_compiler/c_bridge/c_bridge.c +++ b/c_compiler/c_bridge/c_bridge.c @@ -43,6 +43,16 @@ int snprintf_wrap(char *restrict buffer, size_t bufsz, const char *restrict form +double fmin_wrap(double x, double y){ + return fmin(x,y); +} + +double fmax_wrap(double x, double y){ + return fmax(x,y); +} + + + /// Created by: https://docs.google.com/spreadsheets/d/126iyiRC-fspn9O-0QV39JneEetiVtKzm_KmFJkNxPGo/edit?usp=sharing /// diff --git a/c_compiler/c_bridge/c_bridge.h b/c_compiler/c_bridge/c_bridge.h index c5d876e37..0001da324 100644 --- a/c_compiler/c_bridge/c_bridge.h +++ b/c_compiler/c_bridge/c_bridge.h @@ -85,6 +85,8 @@ typedef unsigned long long size_t; // stdio.h C_BRIDGE_API int snprintf_wrap(char *restrict buffer, size_t bufsz, const char *restrict format, ...); +C_BRIDGE_API double fmin_wrap(double x, double y); +C_BRIDGE_API double fmax_wrap(double x, double y); /// if C_BRIDGE_IMPL is *not* defined (when this library is used, not being compiled) /// then we need to rename all of the functions we provide @@ -92,6 +94,8 @@ C_BRIDGE_API int snprintf_wrap(char *restrict buffer, size_t bufsz, const char * #ifndef C_BRIDGE_IMPL #define snprintf snprintf_wrap +#define fmin fmin_wrap +#define fmax fmax_wrap /// Created by: https://docs.google.com/spreadsheets/d/126iyiRC-fspn9O-0QV39JneEetiVtKzm_KmFJkNxPGo/edit?usp=sharing diff --git a/c_compiler/c_bridge/notes.md b/c_compiler/c_bridge/notes.md index 4abb6d84d..a39dba5ad 100644 --- a/c_compiler/c_bridge/notes.md +++ b/c_compiler/c_bridge/notes.md @@ -7,9 +7,9 @@ C Standard Library * `calloc` *implemented* * `fprintf` * `fflush` -* `fmax` -* `fmin` -* `stderr` +* `stderr` +* `fmax` *implemented* +* `fmin` *implemented* * `free` *implemented* * `sizeof` *builtin* From efb36c0eb4333b203d4f2c812f03d1dd93104ef5 Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Thu, 10 Aug 2023 22:24:31 -0600 Subject: [PATCH 14/15] Implement fflush and fprintf --- c_compiler/c_bridge/c_bridge.c | 457 +++++++++++++++++++++------------ c_compiler/c_bridge/c_bridge.h | 19 ++ c_compiler/c_bridge/notes.md | 6 +- 3 files changed, 321 insertions(+), 161 deletions(-) diff --git a/c_compiler/c_bridge/c_bridge.c b/c_compiler/c_bridge/c_bridge.c index 5bc7ef209..ebfea82b8 100644 --- a/c_compiler/c_bridge/c_bridge.c +++ b/c_compiler/c_bridge/c_bridge.c @@ -1,4 +1,3 @@ - /// \seealso c_bridge.h for more information on why c_bridge exists and how it is used #include @@ -11,13 +10,11 @@ #include "c_bridge.h" - /// /// Provide the appropriate set of wrapping functions here. Note that they /// just call into the stdlib versions of the functions /// - // stdio.h // there is no way to forward a va_args, so we must dispatch to the version @@ -41,17 +38,62 @@ int snprintf_wrap(char *restrict buffer, size_t bufsz, const char *restrict form return ret; } +double fmin_wrap(double x, double y) +{ + return fmin(x, y); +} +double fmax_wrap(double x, double y) +{ + return fmax(x, y); +} -double fmin_wrap(double x, double y){ - return fmin(x,y); +FILE *resolve_file(FILE_wrap *file) +{ + if (file == 0) { + return 0; + } + if (file == stderr_wrap) { + return stderr; + } + if (file == stdout_wrap) { + return stdout; + } + if (file == stdin_wrap) { + return stdin; + } + return (FILE*)file->file_ptr; +} + +C_BRIDGE_API int fflush_wrap(FILE_wrap *stream) +{ + if (stream == 0) { + return fflush(0); + } else { + return fflush(resolve_file(stream)); + } } -double fmax_wrap(double x, double y){ - return fmax(x,y); +C_BRIDGE_API int fprintf_wrap(FILE_wrap *stream, const char *format, ...) +{ + int ret = 0; + + va_list myargs; + + va_start(myargs, format); + ret = vfprintf(resolve_file(stream), format, myargs); + va_end(myargs); + + return ret; } +static FILE_wrap stderr_wrap_impl = {0}; +static FILE_wrap stdout_wrap_impl = {0}; +static FILE_wrap stdin_wrap_impl = {0}; +FILE_wrap *stderr_wrap = &stderr_wrap_impl; +FILE_wrap *stdout_wrap = &stdout_wrap_impl; +FILE_wrap *stdin_wrap = &stdin_wrap_impl; /// Created by: https://docs.google.com/spreadsheets/d/126iyiRC-fspn9O-0QV39JneEetiVtKzm_KmFJkNxPGo/edit?usp=sharing @@ -61,229 +103,280 @@ double fmax_wrap(double x, double y){ #include -int isalnum_wrap(int c){ +int isalnum_wrap(int c) +{ return isalnum(c); } -int isalpha_wrap(int c){ +int isalpha_wrap(int c) +{ return isalpha(c); } -int isascii_wrap(int c){ +int isascii_wrap(int c) +{ return isascii(c); } -int isblank_wrap(int c){ +int isblank_wrap(int c) +{ return isblank(c); } -int iscntrl_wrap(int c){ +int iscntrl_wrap(int c) +{ return iscntrl(c); } -int isdigit_wrap(int c){ +int isdigit_wrap(int c) +{ return isdigit(c); } -int isgraph_wrap(int c){ +int isgraph_wrap(int c) +{ return isgraph(c); } -int islower_wrap(int c){ +int islower_wrap(int c) +{ return islower(c); } -int isprint_wrap(int c){ +int isprint_wrap(int c) +{ return isprint(c); } -int ispunct_wrap(int c){ +int ispunct_wrap(int c) +{ return ispunct(c); } -int isspace_wrap(int c){ +int isspace_wrap(int c) +{ return isspace(c); } -int isupper_wrap(int c){ +int isupper_wrap(int c) +{ return isupper(c); } -int toascii_wrap(int c){ +int toascii_wrap(int c) +{ return toascii(c); } -int tolower_wrap(int c){ +int tolower_wrap(int c) +{ return tolower(c); } -int toupper_wrap(int c){ +int toupper_wrap(int c) +{ return toupper(c); } - /// /// math.h /// #include -double acos_wrap(double x){ +double acos_wrap(double x) +{ return acos(x); } -double asin_wrap(double x){ +double asin_wrap(double x) +{ return asin(x); } -double atan_wrap(double x){ +double atan_wrap(double x) +{ return atan(x); } -double atan2_wrap(double y, double x){ - return atan2(y,x); +double atan2_wrap(double y, double x) +{ + return atan2(y, x); } -double ceil_wrap(double x){ +double ceil_wrap(double x) +{ return ceil(x); } -double cos_wrap(double x){ +double cos_wrap(double x) +{ return cos(x); } -double cosh_wrap(double x){ +double cosh_wrap(double x) +{ return cosh(x); } -double erf_wrap(double x){ +double erf_wrap(double x) +{ return erf(x); } -double erfc_wrap(double x){ +double erfc_wrap(double x) +{ return erfc(x); } -double exp_wrap(double x){ +double exp_wrap(double x) +{ return exp(x); } -double fabs_wrap(double x){ +double fabs_wrap(double x) +{ return fabs(x); } -double floor_wrap(double x){ +double floor_wrap(double x) +{ return floor(x); } -double fmod_wrap(double x, double y){ - return fmod(x,y); +double fmod_wrap(double x, double y) +{ + return fmod(x, y); } -double frexp_wrap(double x, int *expptr){ - return frexp(x,expptr); +double frexp_wrap(double x, int *expptr) +{ + return frexp(x, expptr); } -double gamma_wrap(double x){ +double gamma_wrap(double x) +{ return gamma(x); } -double hypot_wrap(double side1, double side2){ - return hypot(side1,side2); +double hypot_wrap(double side1, double side2) +{ + return hypot(side1, side2); } -double j0_wrap(double x){ +double j0_wrap(double x) +{ return j0(x); } -double j1_wrap(double x){ +double j1_wrap(double x) +{ return j1(x); } -double jn_wrap(int n, double x){ - return jn(n,x); +double jn_wrap(int n, double x) +{ + return jn(n, x); } -double ldexp_wrap(double x, int exp){ - return ldexp(x,exp); +double ldexp_wrap(double x, int exp) +{ + return ldexp(x, exp); } -double log_wrap(double x){ +double log_wrap(double x) +{ return log(x); } -double log10_wrap(double x){ +double log10_wrap(double x) +{ return log10(x); } -double modf_wrap(double x, double *intptr){ - return modf(x,intptr); +double modf_wrap(double x, double *intptr) +{ + return modf(x, intptr); } -double nextafter_wrap(double x, double y){ - return nextafter(x,y); +double nextafter_wrap(double x, double y) +{ + return nextafter(x, y); } -long double nextafterl_wrap(long double x, long double y){ - return nextafterl(x,y); +long double nextafterl_wrap(long double x, long double y) +{ + return nextafterl(x, y); } -double nexttoward_wrap(double x, long double y){ - return nexttoward(x,y); +double nexttoward_wrap(double x, long double y) +{ + return nexttoward(x, y); } -long double nexttowardl_wrap(long double x, long double y){ - return nexttowardl(x,y); +long double nexttowardl_wrap(long double x, long double y) +{ + return nexttowardl(x, y); } -double pow_wrap(double x, double y){ - return pow(x,y); +double pow_wrap(double x, double y) +{ + return pow(x, y); } -double sin_wrap(double x){ +double sin_wrap(double x) +{ return sin(x); } -double sinh_wrap(double x){ +double sinh_wrap(double x) +{ return sinh(x); } -double sqrt_wrap(double x){ +double sqrt_wrap(double x) +{ return sqrt(x); } -double tan_wrap(double x){ +double tan_wrap(double x) +{ return tan(x); } -double tanh_wrap(double x){ +double tanh_wrap(double x) +{ return tanh(x); } -double y0_wrap(double x){ +double y0_wrap(double x) +{ return y0(x); } -double y1_wrap(double x){ +double y1_wrap(double x) +{ return y1(x); } -double yn_wrap(int n, double x){ - return yn(n,x); +double yn_wrap(int n, double x) +{ + return yn(n, x); } - /// /// stdio.h /// #include -int getchar_wrap(void){ +int getchar_wrap(void) +{ return getchar(); } -void perror_wrap(const char *string){ +void perror_wrap(const char *string) +{ return perror(string); } /* @@ -291,20 +384,24 @@ int printf_wrap(const char *format_string, ...){ return printf(format_string, ...); }*/ -int putchar_wrap(int c){ +int putchar_wrap(int c) +{ return putchar(c); } -int puts_wrap(const char *string){ +int puts_wrap(const char *string) +{ return puts(string); } -int remove_wrap(const char *filename){ +int remove_wrap(const char *filename) +{ return remove(filename); } -int rename_wrap(const char *oldname, const char *newname){ - return rename(oldname,newname); +int rename_wrap(const char *oldname, const char *newname) +{ + return rename(oldname, newname); } /* int scanf_wrap(const char *format_string, ...){ @@ -323,200 +420,244 @@ int sscanf_wrap(const char *buffer, const char *format, ...){ return sscanf(buffer,format, ...); }*/ -char *tmpnam_wrap(char *string){ +char *tmpnam_wrap(char *string) +{ return tmpnam(string); } - /// /// stdlib.h /// #include -void abort_wrap(void){ +void abort_wrap(void) +{ return abort(); } -int abs_wrap(int n){ +int abs_wrap(int n) +{ return abs(n); } -double atof_wrap(const char *string){ +double atof_wrap(const char *string) +{ return atof(string); } -int atoi_wrap(const char *string){ +int atoi_wrap(const char *string) +{ return atoi(string); } -long int atol_wrap(const char *string){ +long int atol_wrap(const char *string) +{ return atol(string); } -void *calloc_wrap(size_t num, size_t size){ - return calloc(num,size); +void *calloc_wrap(size_t num, size_t size) +{ + return calloc(num, size); } -void exit_wrap(int status){ +void exit_wrap(int status) +{ return exit(status); } -void free_wrap(void *ptr){ +void free_wrap(void *ptr) +{ return free(ptr); } -char *getenv_wrap(const char *varname){ +char *getenv_wrap(const char *varname) +{ return getenv(varname); } -long int labs_wrap(long int n){ +long int labs_wrap(long int n) +{ return labs(n); } -ldiv_t ldiv_wrap(long int numerator, long int denominator){ - return ldiv(numerator,denominator); +ldiv_t ldiv_wrap(long int numerator, long int denominator) +{ + return ldiv(numerator, denominator); } -void *malloc_wrap(size_t size){ +void *malloc_wrap(size_t size) +{ return malloc(size); } -int mblen_wrap(const char *string, size_t n){ - return mblen(string,n); +int mblen_wrap(const char *string, size_t n) +{ + return mblen(string, n); } -int rand_wrap(void){ +int rand_wrap(void) +{ return rand(); } -void *realloc_wrap(void *ptr, size_t size){ - return realloc(ptr,size); +void *realloc_wrap(void *ptr, size_t size) +{ + return realloc(ptr, size); } -void srand_wrap(unsigned int seed){ +void srand_wrap(unsigned int seed) +{ return srand(seed); } -double strtod_wrap(const char *nptr, char **endptr){ - return strtod(nptr,endptr); +double strtod_wrap(const char *nptr, char **endptr) +{ + return strtod(nptr, endptr); } -float strtof_wrap(const char *nptr, char **endptr){ - return strtof(nptr,endptr); +float strtof_wrap(const char *nptr, char **endptr) +{ + return strtof(nptr, endptr); } -long int strtol_wrap(const char *nptr, char **endptr, int base){ - return strtol(nptr,endptr,base); +long int strtol_wrap(const char *nptr, char **endptr, int base) +{ + return strtol(nptr, endptr, base); } -long double strtold_wrap(const char *nptr, char **endptr){ - return strtold(nptr,endptr); +long double strtold_wrap(const char *nptr, char **endptr) +{ + return strtold(nptr, endptr); } -unsigned long int strtoul_wrap(const char *string1, char **string2, int base){ - return strtoul(string1,string2,base); +unsigned long int strtoul_wrap(const char *string1, char **string2, int base) +{ + return strtoul(string1, string2, base); } -int system_wrap(const char *string){ +int system_wrap(const char *string) +{ return system(string); } - /// /// string.h /// #include -void *memchr_wrap(const void *buf, int c, size_t count){ - return memchr(buf,c,count); +void *memchr_wrap(const void *buf, int c, size_t count) +{ + return memchr(buf, c, count); } -int memcmp_wrap(const void *buf1, const void *buf2, size_t count){ - return memcmp(buf1,buf2,count); +int memcmp_wrap(const void *buf1, const void *buf2, size_t count) +{ + return memcmp(buf1, buf2, count); } -void *memcpy_wrap(void *dest, const void *src, size_t count){ - return memcpy(dest,src,count); +void *memcpy_wrap(void *dest, const void *src, size_t count) +{ + return memcpy(dest, src, count); } -void *memmove_wrap(void *dest, const void *src, size_t count){ - return memmove(dest,src,count); +void *memmove_wrap(void *dest, const void *src, size_t count) +{ + return memmove(dest, src, count); } -void *memset_wrap(void *dest, int c, size_t count){ - return memset(dest,c,count); +void *memset_wrap(void *dest, int c, size_t count) +{ + return memset(dest, c, count); } -char *strcat_wrap(char *string1, const char *string2){ - return strcat(string1,string2); +char *strcat_wrap(char *string1, const char *string2) +{ + return strcat(string1, string2); } -char *strchr_wrap(const char *string, int c){ - return strchr(string,c); +char *strchr_wrap(const char *string, int c) +{ + return strchr(string, c); } -int strcmp_wrap(const char *string1, const char *string2){ - return strcmp(string1,string2); +int strcmp_wrap(const char *string1, const char *string2) +{ + return strcmp(string1, string2); } -int strcoll_wrap(const char *string1, const char *string2){ - return strcoll(string1,string2); +int strcoll_wrap(const char *string1, const char *string2) +{ + return strcoll(string1, string2); } -char *strcpy_wrap(char *string1, const char *string2){ - return strcpy(string1,string2); +char *strcpy_wrap(char *string1, const char *string2) +{ + return strcpy(string1, string2); } -size_t strcspn_wrap(const char *string1, const char *string2){ - return strcspn(string1,string2); +size_t strcspn_wrap(const char *string1, const char *string2) +{ + return strcspn(string1, string2); } -char *strerror_wrap(int errnum){ +char *strerror_wrap(int errnum) +{ return strerror(errnum); } -size_t strlen_wrap(const char *string){ +size_t strlen_wrap(const char *string) +{ return strlen(string); } -char *strncat_wrap(char *string1, const char *string2, size_t count){ - return strncat(string1,string2,count); +char *strncat_wrap(char *string1, const char *string2, size_t count) +{ + return strncat(string1, string2, count); } -int strncmp_wrap(const char *string1, const char *string2, size_t count){ - return strncmp(string1,string2,count); +int strncmp_wrap(const char *string1, const char *string2, size_t count) +{ + return strncmp(string1, string2, count); } -char *strncpy_wrap(char *string1, const char *string2, size_t count){ - return strncpy(string1,string2,count); +char *strncpy_wrap(char *string1, const char *string2, size_t count) +{ + return strncpy(string1, string2, count); } -char *strpbrk_wrap(const char *string1, const char *string2){ - return strpbrk(string1,string2); +char *strpbrk_wrap(const char *string1, const char *string2) +{ + return strpbrk(string1, string2); } -char *strrchr_wrap(const char *string, int c){ - return strrchr(string,c); +char *strrchr_wrap(const char *string, int c) +{ + return strrchr(string, c); } -size_t strspn_wrap(const char *string1, const char *string2){ - return strspn(string1,string2); +size_t strspn_wrap(const char *string1, const char *string2) +{ + return strspn(string1, string2); } -char *strstr_wrap(const char *string1, const char *string2){ - return strstr(string1,string2); +char *strstr_wrap(const char *string1, const char *string2) +{ + return strstr(string1, string2); } -char *strtok_wrap(char *string1, const char *string2){ - return strtok(string1,string2); +char *strtok_wrap(char *string1, const char *string2) +{ + return strtok(string1, string2); } -char *strtok_r_wrap(char *string, const char *seps, char **lasts){ - return strtok_r(string,seps,lasts); +char *strtok_r_wrap(char *string, const char *seps, char **lasts) +{ + return strtok_r(string, seps, lasts); } -size_t strxfrm_wrap(char *string1, const char *string2, size_t count){ - return strxfrm(string1,string2,count); +size_t strxfrm_wrap(char *string1, const char *string2, size_t count) +{ + return strxfrm(string1, string2, count); } diff --git a/c_compiler/c_bridge/c_bridge.h b/c_compiler/c_bridge/c_bridge.h index 0001da324..fa632e01b 100644 --- a/c_compiler/c_bridge/c_bridge.h +++ b/c_compiler/c_bridge/c_bridge.h @@ -88,6 +88,18 @@ C_BRIDGE_API int snprintf_wrap(char *restrict buffer, size_t bufsz, const char * C_BRIDGE_API double fmin_wrap(double x, double y); C_BRIDGE_API double fmax_wrap(double x, double y); +typedef struct C_BRIDGE_API FILE_wrap +{ + void *file_ptr; +} FILE_wrap; + +C_BRIDGE_API int fflush_wrap(FILE_wrap *stream); +C_BRIDGE_API int fprintf_wrap(FILE_wrap *stream, const char *format, ...); + +extern FILE_wrap *stderr_wrap; +extern FILE_wrap *stdout_wrap; +extern FILE_wrap *stdin_wrap; + /// if C_BRIDGE_IMPL is *not* defined (when this library is used, not being compiled) /// then we need to rename all of the functions we provide @@ -96,6 +108,13 @@ C_BRIDGE_API double fmax_wrap(double x, double y); #define snprintf snprintf_wrap #define fmin fmin_wrap #define fmax fmax_wrap +#define stderr stderr_wrap +#define stdout stdout_wrap +#define stdin stdin_wrap +#define FILE FILE_wrap +#define fflush fflush_wrap +#define fprintf fprintf_wrap + /// Created by: https://docs.google.com/spreadsheets/d/126iyiRC-fspn9O-0QV39JneEetiVtKzm_KmFJkNxPGo/edit?usp=sharing diff --git a/c_compiler/c_bridge/notes.md b/c_compiler/c_bridge/notes.md index a39dba5ad..b8373ca63 100644 --- a/c_compiler/c_bridge/notes.md +++ b/c_compiler/c_bridge/notes.md @@ -5,9 +5,9 @@ C Standard Library * `assert` * `calloc` *implemented* -* `fprintf` -* `fflush` -* `stderr` +* `fprintf` *implemented* +* `fflush` *implemented* +* `stderr` *implemented* * `fmax` *implemented* * `fmin` *implemented* * `free` *implemented* From dcfb667707c21de6c6ae289a4423ceea34fa3ae8 Mon Sep 17 00:00:00 2001 From: Clang Robot Date: Fri, 11 Aug 2023 04:25:19 +0000 Subject: [PATCH 15/15] Committing clang-format changes --- c_compiler/c_bridge/c_bridge.h | 1 - 1 file changed, 1 deletion(-) diff --git a/c_compiler/c_bridge/c_bridge.h b/c_compiler/c_bridge/c_bridge.h index fa632e01b..3bbdf5a54 100644 --- a/c_compiler/c_bridge/c_bridge.h +++ b/c_compiler/c_bridge/c_bridge.h @@ -115,7 +115,6 @@ extern FILE_wrap *stdin_wrap; #define fflush fflush_wrap #define fprintf fprintf_wrap - /// Created by: https://docs.google.com/spreadsheets/d/126iyiRC-fspn9O-0QV39JneEetiVtKzm_KmFJkNxPGo/edit?usp=sharing ///