Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.tw/irclogs/ Connected with DDNet's IRC channel, Matrix room and GitHub repositories — IRC: #ddnet on Quakenet | Matrix: #ddnet-developer:matrix.org GitHub: https://github.com/ddnet
Between 2020-04-20 00:00:00Z and 2020-04-21 00:00:00Z
Avatar
Hello again! I made map on last version on ddnet, load it into ddnet7-server, but when I run it in teeworlds, game freezes like windows xp
(edited)
Avatar
@TimiT it looks like your map is missing a background
Avatar
[quakenet] ChillerDragon BOT 2020-04-20 07:48:06Z
gfx_clear 1
Avatar
(to debug it, not to fix it)
Avatar
@TimiT it looks like your map is missing a background
Yes... i should to use bg?
09:35
(to debug it, not to fix it)
Ok :)
Avatar
oh, could have asked here first
Avatar
why this point trigger hook collusion?
Avatar
check entities
Avatar
@heinrich5991 hm, let me take a look at the standard, I'm not completely sure how allowed that reordering is
Avatar
[quakenet] Konsti BOT 2020-04-20 15:05:16Z
Hello hello,
Avatar
its the 0/0 points of the map i think
15:07
reason enough imo :p
Avatar
bug alarm
Avatar
[quakenet] Konsti BOT 2020-04-20 15:08:28Z
Im trying to toggle super/unsuper on the key o with cfg files like i did with deepfly but it doesnt work because it instantly executes the cfg file which leads to the file that gives o the bind unsuper. Like my cfg file is bind o rcon super; exec 4.cfg. It doesnt give me super but executes the cfg file with bind o rcon unsuper; exec 3.cfg
15:09
and it keep staying at it, unsuper bind works, super bind doesnt
Avatar
keep in mind that yellow hook indicates a hookable tee
Avatar
not a hookable block?
15:10
thats the green hookline
Avatar
[quakenet] heinrich5991 BOT 2020-04-20 15:10:33Z
so you have a file 3.cfg with rcon unsuper; bind o exec 4.cfg
15:10
and 4.cfg with rcon super; bind o exec 3.cfg?
15:10
Konsti: ^
Avatar
@heinrich5991 I can reproduce the compilation on godbolt until clang 3.3
15:15
well until 3.4.1, 3.3 still has it
Avatar
[quakenet] Konsti BOT 2020-04-20 15:16:03Z
alright ur sentence brought me to the fix. 3.cfg has to be rcon super; bind o exec 4.cfg and 4.cfg has to be rcon unsuper; bind o exec 3.cfg
15:16
i remember it was not like that on older clients or at least i think so, anyway thanks
Avatar
[quakenet] heinrich5991 BOT 2020-04-20 15:16:37Z
np
Avatar
[quakenet] Konsti BOT 2020-04-20 15:16:48Z
also send discord unban :)
Avatar
[quakenet] heinrich5991 BOT 2020-04-20 15:16:59Z
I think you were banned for a reason
15:17
or rather for a continued flood of reasons
Avatar
[quakenet] Konsti BOT 2020-04-20 15:17:21Z
2 years ago:/ cant even access to my tested map
Avatar
I don't see how any of this reordering he talks about is legal
Avatar
the last one I kinda see
15:18
as long as the compiler can assume that write returns
15:19
(assuming the compiler can look into all functions)
Avatar
modifying an object is a side-effect and at sequence points all previous side effects should have taken place and no side effects from the subsequent evaluations shall take place.
Avatar
so this is wrong?
Avatar
a++; does indeed have a side-effect it modifies an object, and expression evaluations are sequence points
Avatar
The “modifying an object” clause is nonsensical because — in combination with sequence point semantics — it forbids the compiler from eliminating the redundant store when a program contains code like this:
>
x=0; x=0;
Avatar
Why? the compiler can deduce that a modification of the object does not happen here
Avatar
okay, so this is a misunderstanding of his
Avatar
thus the modifying an object clause wouldn't apply here, so it's allowed to optimize this unless x is volatile
15:22
This is just how I understand the standard, you can ask like 50 people and get 50 interpretations
15:22
You should try ##C, there are some standard nutjobs there
15:24
The function thing I'm not sure about, C99 5.1.2.3p2 defines what happens when we know the insides of the function, it doesn't seem to say anything about the default assumption though
15:24
(I think you are right about the miscompilation thing though, seeing how clang 3.3 is the last version that does that)
Avatar
@heinrich5991 okay, I'm not quite right. The compiler is allowed to optimize that last thing, but not because of what I said
15:47
It's because the compiler can determine that the side effect is not needed it can optimize out the second expression
Avatar
@Learath2 I don't understand
16:05
can you elaborate?
Avatar
@heinrich5991 do you have a copy of the standard? C99 5.1.2.3p3 says that an actual implementation need not evaluate an expression if it can determine that it's value is not used and it produces no needed side effects
16:09
The second expressions value is not used, and the compiler determines that it produces no needed side effects
16:09
thus optimizes it out
Avatar
@deen b'jao' doesnt work either
Avatar
even though there are side-effects as defined by the standard and there is a sequence point
Avatar
The reordering thing I am indeed wrong about though, the compiler can re-order as it pleases as long as it satisfies the things in 5.1.2.3p5, e.g. doesn't change "observable behaviour"
16:22
p5 in c99, p6 in c11
Avatar
@heinrich5991 and after an extensive discussion, I no longer think that's a miscompilation
Avatar
@heinrich5991 why do you think it is? I assumed it was because clang stopped doing it, but that was just a prediction
Avatar
@Learath2 I laid out the reasoning in the reddit post
17:27
the compiler cannot create code that aborts when it cannot prove that the code will eventually hit UB
Avatar
meh, very hard to think about this, it's not legal in the abstract machine to do the reordering, but the actual implementation is allowed to deviate from that if it can prove that the "observable behaviour" doesn't change, as it doesn't know what bar does, I think the optimization is illegal
Avatar
the observable behavior is different for certain kinds of bars
18:45
hence the optimization is illegal
Avatar
so the articles premise that "crashes are not side-effecting operations" is wrong
18:47
if the operation couldn't result in an abort, it'd be perfectly legal to reorder the expressions
Avatar
yes
Avatar
is the premise wrong though, the standard is pretty specific about what has side effects
20:01
I think only because it changes observable behaviour this is illegal :/
Avatar
@Learath2 now dissenting voices on the reddit
Avatar
@heinrich5991 you really should try ##C instead, you can read through the backlog with my chat with dho and caze
Avatar
do they accept reddit links?
20:17
or should I edit it for them again?
Avatar
I don't think there'll be a problem with a reddit link
Avatar
Hey, just want to ask if anyone can help me out, I am out of ideas. My problem: I am about to create a 128 player server for 0.7, so far its working just fine. Now the problem are dummy clients like F-Client or ZillyWoods. The current system functions just as the one from 0.6 for vanilla clients: The client gets the closest 64 tees to see. The first problem that occured was that the client info is wrong, because 0.7 doesnt handle the information in the snaps. So I solved that one by sending disconnect/connect packets with correct information but still faked IDs to the client when they come nearby some other tees. The client of course only knows about 64 tees, and the server doesnt know if its a dummy or not. The solution would be that the client gets the information of the dummy's closest 64 tees when it switches between them, but that is unfortunately impossible to detect. Any ideas?
Avatar
why is it a problem when dummy and main client see different players?
Avatar
what do you mean?
20:28
player information is sent to the client using connect and disconnect packets, not via snaps, thats why it doesnt work with 0.7 clients
20:29
that would mean when swapping between dummy and main the other one has wrong information about the tees around
Avatar
you could keep two sets of player information in the client
Avatar
wait
Avatar
one for the dummy and one for the main client
Avatar
thats what i thought too, but i want to make it serverside
20:29
just in case we get other dummy clients for 0.7 too
Avatar
with that reasoning you could go for full serverside dummies
20:30
then you wouldn't need a special client
Avatar
that doesnt work in 0.7, as you cant fake client ids anymore
20:31
they are not in the snaps anymore
Avatar
why do you need client IDs for this?
Avatar
for the information to be correct
20:31
your own local client id that you have in the client is set when you enter the server
20:31
and can not be changed
Avatar
but you don't need to change the client ID the client wants
Avatar
you need to change your own one, or at least the information like name and clan
20:32
that doesnt work either
20:33
you cannot set m_Local too, that also comes from the connect packet
Avatar
you can pretend the dummy tee is the new main tee and vice versa
Avatar
information of your own tee would be wrong then
Avatar
it would be named [d] you then?
Avatar
i dont get what exactly you mean, but it would not work
20:36
well, nevermind. but do you know a solution to my initial problem?
20:37
without client modding?
Avatar
not entirely without
20:43
unless you match IP addresses
Avatar
what would that help
Avatar
that's only fuzzy btw
20:44
there are people who have a different IP address than their dummy has
Avatar
i dont get how that should help
Avatar
@jao weird, works for me
20:57
@jao same error?
Exported 116 message(s)