3a48b8e
Revert "Initialize all ghost item member (Closed #8297)" - heinrich5991
8a64fea
Remove RGB images from the map file format - heinrich5991
587b545
Merge pull request #8327 from heinrich5991/pr_ddnet_revert_initialize_variables - def-
f214c11
Merge pull request #8326 from heinrich5991/pr_ddnet_no_map_image_rgb - def-206 / 255 * 360 = 290
206 / 255 * 360 = 290
206 / 255 * 360 = 290
LNK2019
cargo
would need to be replaced with cargo ndk -t aarch64-linux-android
(with the respective arch) (edited)ninja: build stopped: subcommand failed.
set(CMAKE_C_STANDARD 99)
set(gcc_like_cxx "$<COMPILE_LANG_AND_ID:C,ARMClang,AppleClang,Clang,GNU>")
set(msvc_cxx "$<COMPILE_LANG_AND_ID:C,MSVC>")
add_compile_definitions(
"$<${gcc_like_cxx}:$<BUILD_INTERFACE:-O3>>"
"$<${msvc_cxx}:$<BUILD_INTERFACE:/02>>"
)
but here's the portable version of this[build] cl : befehlszeile warning D9002: Unbekannte Option "-std=c99" wird ignoriert. [C:\Users\Anwender\Projects\Craft\build\craft.vcxproj]
[build] cl : befehlszeile warning D9002: Unbekannte Option "-O3" wird ignoriert. [C:\Users\Anwender\Projects\Craft\build\craft.vcxproj]
also yeah just use precompiled binaries for libcurl i guess.
anway CHILLER
it works. (edited)How is GEP different from ptrtoint, arithmetic, and inttoptr?
It’s very similar; there are only subtle differences.
With ptrtoint, you have to pick an integer type. One approach is to pick i64; this is safe on everything LLVM supports (LLVM internally assumes pointers are never wider than 64 bits in many places), and the optimizer will actually narrow the i64 arithmetic down to the actual pointer size on targets which don’t support 64-bit arithmetic in most cases. However, there are some cases where it doesn’t do this. With GEP you can avoid this problem.
Also, GEP carries additional pointer aliasing rules. It’s invalid to take a GEP from one object, address into a different separately allocated object, and dereference it. IR producers (front-ends) must follow this rule, and consumers (optimizers, specifically alias analysis) benefit from being able to rely on it. See the Rules section for more information.
And, GEP is more concise in common cases.
However, for the underlying integer computation implied, there is no difference.
How is GEP different from ptrtoint, arithmetic, and inttoptr?
It’s very similar; there are only subtle differences.
With ptrtoint, you have to pick an integer type. One approach is to pick i64; this is safe on everything LLVM supports (LLVM internally assumes pointers are never wider than 64 bits in many places), and the optimizer will actually narrow the i64 arithmetic down to the actual pointer size on targets which don’t support 64-bit arithmetic in most cases. However, there are some cases where it doesn’t do this. With GEP you can avoid this problem.
Also, GEP carries additional pointer aliasing rules. It’s invalid to take a GEP from one object, address into a different separately allocated object, and dereference it. IR producers (front-ends) must follow this rule, and consumers (optimizers, specifically alias analysis) benefit from being able to rely on it. See the Rules section for more information.
And, GEP is more concise in common cases.
However, for the underlying integer computation implied, there is no difference.
offset
method on raw pointers: https://doc.rust-lang.org/std/primitive.pointer.html#method.offset-1*const T
, and *mut T
.To recap, abi-cafe was created in a feverish mania as I became increasingly obsessed with the disaster that was C’s technically-nonstandard-but-also-literally-used-in-standards __int128. Like sure there’s the whole intmax_t debacle, but that’s understandable. The truly unforgivable thing was that clang and gcc couldn’t reliably pass __int128 between each other. This of course meant that if Rust’s i128 wished to interoperate with them… it would always be wrong, because there was no correct answer.
Actually I’m telling this story a bit backward. Initially we definitely knew that Rust and Clang disagreed in at least one case on at least platform. Discussion of this issue was stalled out because people weren’t sure of the scope and nature of the problem. Which cases were broken? Who was right or wrong and needed to be fixed? What needed to be fixed? Did __int128 FFI work right on any platforms?
So I made abi-cafe, which let me describe a function signature in the abstract and generate code for the caller and callee, in Rust or C, and compile and link them together. Notably the generated code had both sides “report” the values they saw with callbacks, so the test harness could just run them and compare what each side reported.
cmake build -G "Visual Studio 17 2022" && cmake --build .
apart from having to move the glfw and libcurl headers aswell as the .exe manually, it kind of worked straight out of the box, having to move those files is a msvc issue (or im just to bad to set it up correctly)#03 pc 0000000000b4f4e0 /data/app/~~CB3gJmYnDypE7Tt0GeY6pg==/tw.ddnet-ZaQHILJQjp03xFlIOoioFQ==/lib/arm64/libDDNet.so (io_write(void*, void const*, unsigned int)+148) (BuildId: 87efde8ff66ec7895f494b893a16f33dd0813378)
05-08 17:41:27.458 22528 22528 F DEBUG : #04 pc 0000000000d9a590 /data/app/~~CB3gJmYnDypE7Tt0GeY6pg==/tw.ddnet-ZaQHILJQjp03xFlIOoioFQ==/lib/arm64/libDDNet.so (InitAndroid+448) (BuildId: 87efde8ff66ec7895f494b893a16f33dd0813378)
05-08 17:41:27.458 22528 22528 F DEBUG : #05 pc 0000000000cac3c8 /data/app/~~CB3gJmYnDypE7Tt0GeY6pg==/tw.ddnet-ZaQHILJQjp03xFlIOoioFQ==/lib/arm64/libDDNet.so (SDL_main+204) (BuildId: 87efde8ff66ec7895f494b893a16f33dd0813378)
05-08 17:41:27.458 22528 22528 F DEBUG : #06 pc 000000000122d314 /data/app/~~CB3gJmYnDypE7Tt0GeY6pg==/tw.ddnet-ZaQHILJQjp03xFlIOoioFQ==/lib/arm64/libDDNet.so (Java_org_libsdl_app_SDLActivity_nativeRunMain+712) (BuildId: 87efde8ff66ec7895f494b893a16f33dd0813378)
crashes in InitAndroid io_write#03 pc 0000000000b4f4e0 /data/app/~~CB3gJmYnDypE7Tt0GeY6pg==/tw.ddnet-ZaQHILJQjp03xFlIOoioFQ==/lib/arm64/libDDNet.so (io_write(void*, void const*, unsigned int)+148) (BuildId: 87efde8ff66ec7895f494b893a16f33dd0813378)
05-08 17:41:27.458 22528 22528 F DEBUG : #04 pc 0000000000d9a590 /data/app/~~CB3gJmYnDypE7Tt0GeY6pg==/tw.ddnet-ZaQHILJQjp03xFlIOoioFQ==/lib/arm64/libDDNet.so (InitAndroid+448) (BuildId: 87efde8ff66ec7895f494b893a16f33dd0813378)
05-08 17:41:27.458 22528 22528 F DEBUG : #05 pc 0000000000cac3c8 /data/app/~~CB3gJmYnDypE7Tt0GeY6pg==/tw.ddnet-ZaQHILJQjp03xFlIOoioFQ==/lib/arm64/libDDNet.so (SDL_main+204) (BuildId: 87efde8ff66ec7895f494b893a16f33dd0813378)
05-08 17:41:27.458 22528 22528 F DEBUG : #06 pc 000000000122d314 /data/app/~~CB3gJmYnDypE7Tt0GeY6pg==/tw.ddnet-ZaQHILJQjp03xFlIOoioFQ==/lib/arm64/libDDNet.so (Java_org_libsdl_app_SDLActivity_nativeRunMain+712) (BuildId: 87efde8ff66ec7895f494b893a16f33dd0813378)
crashes in InitAndroid io_write <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET" />
/Users/runner/work/ddnet/ddnet/src/engine/shared/netban.h:236:64: error: format specifies type 'long' but the argument has type 'int64_t' (aka 'long long') [-Werror,-Wformat]
str_format(pBuf, BuffSize, "%s for %ld minutes (%s)", aBuf, Mins, pBan->m_Info.m_aReason);
~~~ ^~~~
%lld
ubuntu:
/home/runner/work/ddnet/ddnet/src/engine/shared/netban.h:236:63: error: format ‘%lld’ expects argument of type ‘long long int’, but argument 5 has type ‘int64_t’ {aka ‘long int’} [-Werror=format=]
236 | str_format(pBuf, BuffSize, "%s for %lld minutes (%s)", aBuf, Mins, pBan->m_Info.m_aReason);
| ~~~^ ~~~~
| | |
| long long int int64_t {aka long int}
| %ld
/Users/runner/work/ddnet/ddnet/src/engine/shared/netban.h:236:64: error: format specifies type 'long' but the argument has type 'int64_t' (aka 'long long') [-Werror,-Wformat]
str_format(pBuf, BuffSize, "%s for %ld minutes (%s)", aBuf, Mins, pBan->m_Info.m_aReason);
~~~ ^~~~
%lld
ubuntu:
/home/runner/work/ddnet/ddnet/src/engine/shared/netban.h:236:63: error: format ‘%lld’ expects argument of type ‘long long int’, but argument 5 has type ‘int64_t’ {aka ‘long int’} [-Werror=format=]
236 | str_format(pBuf, BuffSize, "%s for %lld minutes (%s)", aBuf, Mins, pBan->m_Info.m_aReason);
| ~~~^ ~~~~
| | |
| long long int int64_t {aka long int}
| %ld
int64_t
that's the issue thereint64_t
that's the issue there "%s for " PRId64 " minutes (%s)"
"%s for %" PRId64 " minutes (%s)"
#[doc(hidden)]
pub mod ඞ {
pub use ::regex_automata;
pub use ::regex_syntax;
}
src/lib.rs
.map_create_pixelart
tool is missing from downloadsmap_create_pixelart
tool is missing from downloads map_create_pixelart
tool is missing from downloads 100x faster matrix multiplication (compared to “for-for-for”)
cmake .. -D...