./DDNet: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by ./DDNet)
./DDNet: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by ./DDNet)
./DDNet: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by ./libSDL2-2.0.so.0)
./DDNet: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by ./libSDL2-2.0.so.0)
./DDNet: error while loading shared libraries: libpulse.so.0: cannot open shared object file: No such file or directory
???-static
u8
and I want to write to the first one(for example struct offset is 0), if i use struct offset + field offset, it would write to rbp - 1
but it actually has to write to rbp - 3
time/usr time
, in this case the usr
time is the significant one
size load load+save
zlib 231M 34s 174s
zlib-ng6 238M 12s 67s
zlib-ng7 225M 89s
zlib-ng8 216M 119s
zlib-ng9 209M 186s
imo, the compression level 7 looks reasonable. what do you think? u8
and I want to write to the first one(for example struct offset is 0), if i use struct offset + field offset, it would write to rbp - 1
but it actually has to write to rbp - 3
rbp - 1
correct for first element?rbp - 1
(edited)rbp - 1
(edited)struct foo { // stack offset 0xC
uint32_t first; // field offset 0x0, stack offset 0xC - 0x0 = 0xC
uint32_t second; // field offset 0x4, stack offset 0xC - 0x4 = 0x8
uint32_t third; // field offset 0x8, stack offset 0xC - 0x8 = 0x4
}
Admin-mail
, they will Help you Out ^^time/usr time
, in this case the usr
time is the significant one
size load load+save
zlib 231M 34s 174s
zlib-ng6 238M 12s 67s
zlib-ng7 225M 89s
zlib-ng8 216M 119s
zlib-ng9 209M 186s
imo, the compression level 7 looks reasonable. what do you think? stack_offset - struct_size + field_offset + field_type_size
looks bad but at least works stack_offset - struct_size + field_offset + field_type_size
looks bad but at least works field_offset
?struct_offset - field_offset
point to the lowest byte of the field directly? pub fn offset(
&self,
...
) -> Result<usize, TypeError> {
let mut offset = 0;
for (field_name, type_) in &self.fields {
if name == field_name {
break;
}
offset += type_.size(arch, scope)?;
}
Ok(offset)
}
pub fn offset(
&self,
...
) -> Result<usize, TypeError> {
let mut offset = 0;
for (field_name, type_) in &self.fields {
if name == field_name {
break;
}
offset += type_.size(arch, scope)?;
}
Ok(offset)
}
For example, let’s consider a C code fragment and how it gets compiled to LLVM:
struct RT {
char A;
int B[10][20];
char C;
};
struct ST {
int X;
double Y;
struct RT Z;
};
int *foo(struct ST *s) {
return &s[1].Z.B[5][13];
}
The LLVM code generated by Clang is approximately:
%struct.RT = type { i8, [10 x [20 x i32]], i8 }
%struct.ST = type { i32, double, %struct.RT }
define ptr @foo(ptr %s) {
entry:
%arrayidx = getelementptr inbounds %struct.ST, ptr %s, i64 1, i32 2, i32 1, i64 5, i64 13
ret ptr %arrayidx
}
time/usr time
, in this case the usr
time is the significant one
size load load+save
zlib 231M 34s 174s
zlib-ng6 238M 12s 67s
zlib-ng7 225M 89s
zlib-ng8 216M 119s
zlib-ng9 209M 186s
imo, the compression level 7 looks reasonable. what do you think? has_finishes: false
to true for the KoG community on info.ddnet.org?$ cargo test --example logs -- average_sizes --nocapture
Generating 1000 LogArchives with 100 entries.
+-----------------+-----------+-----------------+
| Format | Bytes | Self-Describing |
+-----------------+-----------+-----------------+
| pot | 2,627,586 | yes |
+-----------------+-----------+-----------------+
| cbor | 3,072,369 | yes |
+-----------------+-----------+-----------------+
| msgpack(named) | 3,059,915 | yes |
+-----------------+-----------+-----------------+
| msgpack | 2,559,907 | no |
+-----------------+-----------+-----------------+
| bincode(varint) | 2,506,844 | no |
+-----------------+-----------+-----------------+
| bincode | 2,755,137 | no |
+-----------------+-----------+-----------------+
PUT /finishes/:community/:map/:player
DELETE /finishes/:community/:map/:player
(edited):map
GET /finishes/:community/:player
, no?GET /finishes/:community/:player
, no? GET /finishes?:player
(edited)! FNG
just to be first in the server browser xD! FNG
just to be first in the server browser xD A grouping of servers hosted by a single entity != many server
which is why the thing you asked for sounded so absurd to usA grouping of servers hosted by a single entity != many server
which is why the thing you asked for sounded so absurd to us wontfix
Showing 0 to 0 of 0 entries
^.....^
version with a sequence terminator. Dunno about @heinrich5991 though, he didn't reply to my message here ^.....^
is pretty simple to extend too, just add new characters<c=#123456>foobar</c>
seems reasonable to type for me<c=#123456>foobar</c>
seems reasonable to type for me <c=#
, >
, </c>
being tokens, and rejecting invalid inputMariaDB [teeworlds]> SELECT Ranking, Time, PercentRank
-> FROM (
-> SELECT RANK() OVER w AS Ranking, PERCENT_RANK() OVER w as PercentRank, MIN(Time) AS Time, Name
-> FROM record_race
-> WHERE Map = 'Tutorial'
-> AND Server LIKE '%'
-> GROUP BY Name
-> WINDOW w AS (ORDER BY MIN(Time))
-> ) as a
-> WHERE Name = 'deen';
+---------+--------+--------------+
| Ranking | Time | PercentRank |
+---------+--------+--------------+
| 13674 | 191.54 | 0.0230672938 |
+---------+--------+--------------+
1 row in set (2.388 sec)
MariaDB [teeworlds]> explain SELECT Ranking, Time, PercentRank FROM ( SELECT RANK() OVER w AS Ranking, PERCENT_RANK() OVER w as PercentRank, MIN(Time) AS Time, Name FROM record_race WHERE Map = 'Tutorial'
AND Server LIKE '%' GROUP BY Name WINDOW w AS (ORDER BY MIN(Time)) ) as a WHERE Name = 'deen';
+------+-------------+-------------+------+----------------------------------------------------+------+---------+-------+---------+-------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+------+-------------+-------------+------+----------------------------------------------------+------+---------+-------+---------+-------------------------------------------+
| 1 | PRIMARY | <derived2> | ALL | NULL | NULL | NULL | NULL | 4222528 | Using where |
| 2 | DERIVED | record_race | ref | Map,MapTimestamp,idx_map,idx_map_name_time,MapTime | Map | 514 | const | 4222528 | Using where; Using index; Using temporary |
+------+-------------+-------------+------+----------------------------------------------------+------+---------+-------+---------+-------------------------------------------+
2 rows in set (0.001 sec)
MariaDB [teeworlds]> explain SELECT Ranking, Time, PercentRank FROM ( SELECT RANK() OVER w AS Ranking, PERCENT_RANK() OVER w as PercentRank, MIN(Time) AS Time, Name FROM record_race WHERE Map = 'Tutorial'
AND Server LIKE '%' GROUP BY Name WINDOW w AS (ORDER BY MIN(Time)) ) as a WHERE Name = 'deen';
+------+-------------+-------------+------+----------------------------------------------------+------+---------+-------+---------+-------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+------+-------------+-------------+------+----------------------------------------------------+------+---------+-------+---------+-------------------------------------------+
| 1 | PRIMARY | <derived2> | ALL | NULL | NULL | NULL | NULL | 4222528 | Using where |
| 2 | DERIVED | record_race | ref | Map,MapTimestamp,idx_map,idx_map_name_time,MapTime | Map | 514 | const | 4222528 | Using where; Using index; Using temporary |
+------+-------------+-------------+------+----------------------------------------------------+------+---------+-------+---------+-------------------------------------------+
2 rows in set (0.001 sec)
data/mapres
from the place where you start ddnet from?faster than X%
, then I can speed up the queryCStorage::FindDatadir
data/mapres
from the place where you start ddnet from? usr/share/ddnet/data
usr/share/ddnet/data
faster than X%
, then I can speed up the query MariaDB [teeworlds]> WITH m AS (
-> SELECT MIN(Time) as minTime
-> FROM record_race
-> WHERE Map = 'Tutorial'
-> AND Name = 'deen'
-> AND Server LIKE '%'
-> GROUP BY Name
-> )
-> SELECT COUNT(DISTINCT Name) + 1, minTime
-> FROM record_race, m
-> WHERE Map = 'Tutorial'
-> AND Server LIKE '%'
-> AND Time < minTime;
+--------------------------+---------+
| COUNT(DISTINCT Name) + 1 | minTime |
+--------------------------+---------+
| 13674 | 191.54 |
+--------------------------+---------+
1 row in set (0.790 sec)
MariaDB [teeworlds]> SELECT COUNT(DISTINCT Name) + 1, (SELECT MIN(Time)
-> FROM record_race
-> WHERE Map = 'Tutorial'
-> AND Name = 'deen'
-> AND Server LIKE '%'
-> GROUP BY Name
-> LIMIT 1) as minTime
-> FROM record_race
-> WHERE Map = 'Tutorial'
-> AND Server LIKE '%'
-> AND Time < (SELECT MIN(Time)
-> FROM record_race
-> WHERE Map = 'Tutorial'
-> AND Name = 'deen'
-> AND Server LIKE '%'
-> GROUP BY Name
-> LIMIT 1
-> );
+--------------------------+---------+
| COUNT(DISTINCT Name) + 1 | minTime |
+--------------------------+---------+
| 13674 | 191.54 |
+--------------------------+---------+
1 row in set (0.028 sec)
1 row in set (1,966 sec)
on my desktop pc[mysqld]
tmp_table_size = 128M
max_heap_table_size = 128M
sort_buffer_size = 128M
MariaDB [teeworlds]> WITH m AS (
-> SELECT MIN(Time) as minTime
-> FROM record_race
-> WHERE Map = 'Tutorial'
-> AND Name = 'deen'
-> AND Server LIKE '%'
-> GROUP BY Name
-> )
-> SELECT COUNT(DISTINCT Name) + 1, minTime
-> FROM record_race, m
-> WHERE Map = 'Tutorial'
-> AND Server LIKE '%'
-> AND Time < minTime;
+--------------------------+---------+
| COUNT(DISTINCT Name) + 1 | minTime |
+--------------------------+---------+
| 13674 | 191.54 |
+--------------------------+---------+
1 row in set (0.790 sec)
MariaDB [teeworlds]> SELECT COUNT(DISTINCT Name) + 1, (SELECT MIN(Time)
-> FROM record_race
-> WHERE Map = 'Tutorial'
-> AND Name = 'deen'
-> AND Server LIKE '%'
-> GROUP BY Name
-> LIMIT 1) as minTime
-> FROM record_race
-> WHERE Map = 'Tutorial'
-> AND Server LIKE '%'
-> AND Time < (SELECT MIN(Time)
-> FROM record_race
-> WHERE Map = 'Tutorial'
-> AND Name = 'deen'
-> AND Server LIKE '%'
-> GROUP BY Name
-> LIMIT 1
-> );
+--------------------------+---------+
| COUNT(DISTINCT Name) + 1 | minTime |
+--------------------------+---------+
| 13674 | 191.54 |
+--------------------------+---------+
1 row in set (0.028 sec)
bdd7784
Consistently return true
from OnInput
function for used events - Robyt3
2c7c391
Only activate double-clicks with left mouse button again - Robyt3
dd1fb20
Merge pull request #8696 from Robyt3/UI-DoubleClick-LeftMouse-Only - heinrich5991
83a90c9
Merge pull request #8676 from Robyt3/Client-LineInput-Event-Handling-Consistency - heinrich5991