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-12-01 00:00:00Z and 2020-12-02 00:00:00Z
Avatar
interesting
Avatar
504, now 503, eh? …
05:07
now 502
05:07
at this rate, not long before 200, heh?
05:09
(ah, now it's done)
Avatar
yo dont mind my times i always start 2 hours later to get some sleep
Avatar
just admit it took you two hours to get the solution
Avatar
No points for day 1 due too technical problems :>
Avatar
If you want to learn these techniques then start by carefully reading Jeff Preshing’s introduction to lock-free programming or This is Why They Call It a Weakly-Ordered CPU, and then consider joining a monastery or nunnery instead.
https://randomascii.wordpress.com/2020/11/29/arm-and-lock-free-programming/
I was inspired by the release of Apple’s M1 ARM processor to tweet about the perils of lock-free programming which led to some robust discussion. The discussion went pretty well given the inanity o…
Avatar
@deen is that an answer to something?
Avatar
just woke up monkalaugh
08:12
time to code it
08:13
@heinrich5991 yesterday i did my first code golf answer, maybe u can improve it (in rust) https://codegolf.stackexchange.com/a/215799/58802
Background: A sequence of infinite naturals is a sequence that contains every natural number infinitely many times. To clarify, every number must be printed multiple times! The Challenge: Output a
08:13
(2..).for_each(|x|(1..x).for_each(|y|print!("{} ",y)))
08:13
monkalaugh
08:14
i didnt know u could go to the infinite with (2..)
08:14
before that
Avatar
how about rand="0" 9 bytes with newline in the Cargo.toml and loop{print!("{} ", rand::random::<i32>())} + 42 bytes = 51 bytes @Ryozuki
Avatar
idk if u can use packages
08:44
also it just spits out random numbers
Avatar
huh i mean else you wouldnt be able to solve any problems which play with random numbers in rust
Avatar
it doesnt solve the problem
Avatar
why not?
08:44
i would say it solves it just as well as your solution
Avatar
did u read the codegolf challenge?
08:45
oh fuck yea replace i32 with u32
Avatar
it needs to write them ordered btw
08:45
like
08:45
1
08:45
1 2
08:45
1 2 3
Avatar
not really
08:45
Any way of writing such a sequence is acceptable.
Avatar
Notice that we write all naturals from 1 to N for all N ∈ ℕ.
08:46
@Patiga it means the format
Avatar
seems fine for me
Avatar
There are a number of standard loopholes which experienced question-setters seek to explicitly close. However, inexperienced question-setters may unintentionally leave them open, or respondents may...
Avatar
the example output is just an example
Avatar
all other answers arent random like this
08:46
its not ok imho
Avatar
why not?
Avatar
thats why the loophole rule exists
Avatar
which loophole rule do you mean? can you link to a specific one?
08:51
ok its valid
08:51
but i dont like it
Avatar
Because of an outage during the day 1 puzzle unlock, day 1 is worth no points.
08:55
oh rip
09:00
use std::fs; fn main() { let r = fs::read_to_string("input").unwrap(); let x: Vec<i64> = r.split("\n") .filter(|x| !x.is_empty()) .map(|x| x.parse::<i64>().unwrap()).collect(); for a in x.iter() { for b in x.iter() { for c in x.iter() { if a + b + c == 2020 { println!("{}", a * b * c); return; } } } } }
09:00
my rust solution aPES4_Steering
Avatar
x.iter()&x
Avatar
for a in x.iter()for a in &x
09:02
it's the same and shorter 😉
09:02
i was not golfin here xd
09:03
for some reason split returned some empty strings
Avatar
probably after the last line?
Avatar
i guess
Avatar
because the last line is still terminated with a \n
Avatar
is there some linux tool to view newlines ez
Avatar
API documentation for the Rust str primitive in crate std.
09:03
is what you want, probably
09:03
hexdump -C
Avatar
oh it has a lines method
Avatar
(and yes, on non-windows, there's a newline at end of file)
09:04
you need to do .trim() probably though
09:04
because .parse::<i64>() probably chokes on whitespace
Avatar
lines() work without the filter
09:05
no need to trim
Avatar
k
Avatar
An implementation of the X Window System Protocol in Rust - not-a-seagull/breadx
09:10
poggers
Avatar
wow rust seems to be actually kinda cool
Avatar
If I have a vector v in rust I can create a slice with &v[x..y] but v[x..y] also works. Does the second one copy the vector?
10:16
ah maybe when &v is the same as v.iter() then &v[x..y] is the same as v[x..y].iter()?
Avatar
no. v[x..y] cannot be used in a non-reference context
10:16
it's always the reference
10:17
v[x..y].iter() autoreferences v[x..y] to &v[x..y]
10:17
. can autoreference one level
Avatar
okay, I guess i need to read further in "The Book" if I really want to understand what I'm doing
Avatar
@timakro did u know rust auto derefs
Avatar
I'm learning/experimenting with Rust, and in all the elegance that I find in this language, there is one peculiarity that baffles me and seems totally out of place. Rust automatically dereferences
10:32
well its on chapter 15.2
10:32
aPES4_Steering
Avatar
Avatar
deen
If you want to learn these techniques then start by carefully reading Jeff Preshing’s introduction to lock-free programming or This is Why They Call It a Weakly-Ordered CPU, and then consider joining a monastery or nunnery instead.
https://randomascii.wordpress.com/2020/11/29/arm-and-lock-free-programming/
I love this guy’s blog, always a great read
Avatar
@Ryozuki Prolog is easier :D solve(L, Z) :- member(W, L), member(X, L), member(Y, L), 2020 is W + X + Y, Z is W * X * Y. (edited)
Avatar
autoref and autoderef makes rust even harder to follow imo
12:04
Though I don't like anything auto so my opinion is not really relevant. Compilers and interpreters making assumptions is just a no no for me, unless I explicitly tell it to think for me.
Avatar
Avatar
Learath2
Though I don't like anything auto so my opinion is not really relevant. Compilers and interpreters making assumptions is just a no no for me, unless I explicitly tell it to think for me.
make the holy learath2 bible on how a language should be made
12:07
monkalaugh
Avatar
One day when I have more time I will make my own language that compiles down to LLVM IR
12:09
It would probably end up very similar to D or zig though
12:09
Honestly, zig I think has everything I would want in a language
12:14
I've been wondering why every modern language moved the return type to the end. I mean it's easier to parse but it's just so silly to read and introduces an extra token that conveys no extra information
Avatar
everyone did their homework today
12:14
monkalaugh
Avatar
(usually more than 1 extra token, some languages even have a ->)
Avatar
why is ryo only 4th
Avatar
ranking is by alphabet
12:15
since day 1 doesnt give points
12:15
due to a outage
Avatar
Not like any of us will get any points ever
Avatar
@Learath2 we will get points in the private leaderboard
Avatar
ah, is it separate in private?
Avatar
thats why private leaderboards exist
12:16
since not all ppl can wake up at utc-5
12:16
u can make friendly rules with ur friends i guess
Avatar
I hate this kind of ranking. So america centric
12:16
utc-5 is new york i think
Avatar
I guess I also hate these kinds of challanges
12:17
I never enjoyed challanges that only reward obsessive people. Look at the people doing the google challanges on youtube
12:19
It's like the same 5 obsessive people every time hogging the top5 spots, golfing every day to know all the latest theoretical questions that have 0 applications in reality
12:20
They spot a word in the question, instead of solving the question they refer to a database of question types in their heads, and just pattern match the answer
Avatar
well i enjoy the challenge of the later days, which require you to think about how you want to approach the problem
12:23
the first few days are practically only about time
12:25
@Learath2 i think you forget that you can also enjoy those challenges without looking at the top ranks. enjoy the difficulty (that is introduced later, you can skip the first days if you like) and participate in the friendly competition of private leaderboards if you like that
Avatar
The later problems are about time too. The reason these kinds of people are unbeatable is it's O(1) for them to come up with a solution no matter how complex the problem
12:28
@Patiga oh yeah, I enjoy friendly competition. I just think the global leaderboards are just not indicative of anything
Avatar
They are probably reading books full of problems/solutions 24/7
Avatar
well let em be
Avatar
ah thats nice :)
Avatar
@Learath2 ur more the type to know the ins and outs of compilers and stuff i guess
12:29
other ppl like to do challenges fast
Avatar
@Ryozuki it's a pet peeve of mine, never liked these people in high school either. It just stuck with me, I guess the part I despise the most is their perceived success
12:29
A childish jealousy wired deep inside my brain 😄
Avatar
Is this some window joke im too gnu+linux to get?
Avatar
it's a joke you're too windows to get
Avatar
Avatar
Deleted User
add a skin folder, put any default in
looks i see them the skin (Redboppenomred) but they still see me default
Avatar
what did u expect? that u hacked their game xD
16:07
@hussainx3 if u want others to see ur skin, u gotta add it to the database
Avatar
does someone here know how to use config_store.exe? I was able to extract a map's server settings .cfg and edit it but putting the new edited config inside the map doesn't seem to work
Avatar
I think you drag-and-drop the map onto the config_store.exe to store the config with the same name into the map
16:22
@Ravie ^
Avatar
that's what I'm doing but it simply doesn't change the server settings
16:24
I even tried replacing everything with just sv_deepfly 0 to be sure I'm not seeing things wrong
Avatar
could you open the executable from the console (cmd.exe) to see what it outputs?
16:26
you can drag-and-drop the executable and the map filename into the console, I think
16:26
to get the complete paths in there
Avatar
and then drop the map file into it as well?
Avatar
yes
16:28
with a space between the executable name and the map name
Avatar
@heinrich5991
Avatar
couldn't open … for writing
16:34
sounds like you lack permissions to write to that file(?)
Avatar
I can try running as administrator and see if that works
Avatar
do you run your client as administrator?
Avatar
you could try it on another file, or right-click → properties it and check if there are weird permissions
Avatar
it looks like I have all permissions on map files
Avatar
hmmm
16:42
do you have python installed?
16:42
(to debug this issue furtherly)
Avatar
don't think so, I'm not that advanced but I can try if you give me instructions
Avatar
The official home of the Python Programming Language
16:44
download python 3.9, install it
Avatar
What will you even do with python?
Avatar
check if I can open the file for writing
16:44
python is my syscall tool on windows&linux, because I know that it behaves kinda sane
Avatar
while we're on the topic of server settings, a simple way to rearrange the commands like this would be very welcome
Avatar
and I can trigger syscalls and get errors
16:45
@Ravie if importing/exporting to text file worked, would it still be an issue?
Avatar
well it's still rather clunky to deal with files like this and I don't think this would be too hard to implement
16:46
but for now this is the only way
Avatar
well, I think the endgame is implementing a text editor there
16:46
and that sounds rather hard\
Avatar
A small text editor there would be so nice
Avatar
I think it's alright to use with the new Mod feature, I'm just missing the ability to rearragne everything neatly once all the commands are done
16:47
and you pretty much can't just write them in order from the start, never know what you'll end up needing
Avatar
Well arrows should be trivial to add
16:48
Maybe I'll do it quickly tonight
Avatar
well then I guess we don't need to debug config_store.exe, since I'm the only one with this problem
Avatar
🤷‍♀️
Avatar
do/did you run your client as administrator? @Ravie
Avatar
@Patiga this is an external .exe that does something to map files
Avatar
yeah, question still stands tho
Avatar
well no I don't
👍 1
Avatar
Well if you opened it with an administrator client. It would save it with wrong ownership
16:51
Anyway, odd issue :P
Avatar
got a better idea on how to debug if the file can be opened for writing on windows btw?
Avatar
Have you checked that we close the file after reading it?
16:52
Windows can be picky with it's exclusive opens
Avatar
yes, we do
16:53
at least if CDatafileReader::Close closes the file
Avatar
@Learath2 c++ void SomeFunc() { // throws an exception with all the error info if something goes wrong DoSomething(); } void SomeFunc() { if (!DoSomething()) { // obtain the error info and report it to the caller somehow } } properly used exceptions = clean code or no?
Avatar
Gist of it is in limited contexts I am sort of okay with the idea of exceptions. In those limited contexts try{ SomeFunc(); } catch(whatever) { handleerror; } is equivalent to if(!SomeFunc()){ handleerror; }. I think the second is cleaner, I also think limiting them to such contexts (e.g. exceptions that can only go back 1 stack frame) makes exceptions not the correct solution
18:07
Exceptions also lead to "unexpected" code-paths which is why I much prefer something like rusts result or optional/variant types.
18:08
A compiler checked error type that can't be implicitly propagated upwards is what I would investigate for a language I would make
Avatar
you mean something like checked exceptions in Java?
18:11
that's not the right way probably, but i know what you mean
18:11
it's good idea
Avatar
Well the same idea but not as overengineered a solution, leading to both prettier assembly and allowing actual error recovery
18:12
instead of putting try catches everywhere throwing upwards and pretending you do "error checking" well
Avatar
sometimes it's really hard to do error handling with exceptions properly 😄
18:12
that's true
Avatar
And a single code path, leading to easier analysis and reasoning about flow. If you want to see the mess exceptions make look no further than disassemblers trying to visualize the code flow
18:13
If a program given minutes can't reason about the flow, how am I supposed to
Avatar
yes, exceptions in assembly looks terrible
18:14
all those "cold clone" functions etc
18:14
*look
Avatar
returns are so nice, idk why people would want anything else
Avatar
because it makes the code harder to understand
Avatar
They are efficient, they are well defined ABI-wise, they look clean in code and in assembly, they give such clean entry and exit points
Avatar
do you have a sane ABI for multiple return values?
18:16
also interesting: RVO is inhibited if you have a Result-like type
18:16
which is quite bad IMO
18:16
native support for exceptions fixes that issue, at least
Avatar
I don't get how try { whatever(); } catch (Exception e){ handle(); } is easier to understand than if(!whatever()) { handle(); }. That's just silly
Avatar
because there's usually much more ifs than try-catch blocks
Avatar
@heinrich5991 there is a sane ABI for returning pointers, which is what you would return a pointer to your variant type return
Avatar
huh no, that would imply an allocation
18:18
that is inefficient
Avatar
Not any more space inefficient than an exception
18:19
A try block with multiple things that can fail is exactly what's wrong with exceptions
Avatar
i think error handling code after each function call (the ifs) distracts when you read the code and trying to understand what it does
Avatar
How are you supposed to handle something failing if you can't know what exactly failed?
Avatar
more inefficient if you assume that the error case happens more rarely
Avatar
Hm, I guess it does require more ABI support
Avatar
some errors even cannot be handled properly without exceptions - Let's say you call some function from some library. That function opens some file internally and it fails. How do you report such error back to the calling code outside the library without exception? Note that you need the filename to create meaningful error message for the user.
Avatar
you have an error type that contains the necessary information for the user to handle the error
Avatar
throwing a FileNotFoundError from deep inside the library isn't actually that helpful for the user of the library
Avatar
@heinrich5991 I have a feeling RVO is only viable because of the current "crash and burn" approach to programming. If you actually figure out a way to recover from the exception it would cost way more than the optimization gained you
Avatar
Result best coffee
Avatar
but name of the file is highly helpful for the end user
Avatar
@Comrade You return an error type. The internal function puts it in another error type and returns it to the user
Avatar
FileNotFoundError(/var/cache/firefox/acbjksbefjksf) what do you do now?
Avatar
you can always do one thing - google that 😄
Avatar
fair
Avatar
Anyway, error types don't prevent you from signaling that
18:26
I'll do you one even better. I think that FileNotFoundError should never make it to the user
Avatar
but might still do, due to bugs
Avatar
I think it should be LibraryError(FileNotFound: /path/to/file)
Avatar
it's so annoying when app shows something like "File not found" and nothing else 😄
18:27
with exceptions you can easily avoid that
Avatar
@heinrich5991 the compiler can check that none of these errors make it out of your library
Avatar
ah yes
18:28
but they might still make it out as "AssertionError: FileNotFound"
18:28
or similar
18:28
"InvalidStateError: FileNotFound"
Avatar
I don't mind them wrapping it again and returning it. As long as it's an explicit decision, that's fine
Avatar
maybe logging is the best error handling 😄
Avatar
Something like if-error(e : fopen()) { return wrap_unrecoverable(e); }
Avatar
but you always have to return that thing even if no error occurs
18:30
that's bad
Avatar
or if you don't mind annoying the new people I wouldn't even introduce a new token for that
18:31
@Comrade again, this is a hypothetical language, you don't "have to" do anything
18:31
The return type could be Type? e.g. where either an object of type
18:31
is returned, or an error
Avatar
interesting ideas
Avatar
@Comrade hav u used rust?
Avatar
not yet
Avatar
One more example: try { foo(); goo(); boo(); doo(); } catch (Exception e) { ... } Each of foo, goo, boo and doo have recovery routines on error. You caught an e, how do you recover?
Avatar
The usual answer is that you a) Introduce exception hierarchies b) Introduce new exceptions so you can handle different types c) You put each call in it's own try block
18:36
a and b give you a lot more exceptions you just might forget to handle at each point and for b in the case of checked exceptions huge throws clauses. c is no more intuitive or clear than the if block you didn't want in the first place
Avatar
by the way, there's one more problem - throwing exception in destructor 😄
Avatar
that never worked in C++ anyway 😛
Avatar
In java i use catch(Exception e) and call it a day BASED
Avatar
Yeah, that's how 99% of the Java developer population does "error handling"
Avatar
it does - you can mark destructor with noexcept(false)
Avatar
Have u seen how absurdly long function signatures get when adding exceptions
18:39
Java is a circus
18:39
but Kotlin doesn't look that bad
Avatar
but they're part of the signature
Avatar
(except the underlying JVM crap)
Avatar
@Comrade marking a destructor noexcept(false) is how you break a lot of things 😄
Avatar
yes, that's true 😄
18:40
it's evil
18:40
but it works 😄
Avatar
@Ryozuki the exceptions people will tell you that you should be using exception hierarchies 4head
Avatar
btw, annoy linux about their errors in close(2)
Avatar
That controls the exponential growth of exception numbers somewhat
Avatar
doesn't fit RAII
Avatar
public static int primeraPuntuacio(String ruta) throws ParserConfigurationException, IOException, SAXException, XPathExpressionException
18:41
😆
Avatar
@heinrich5991 logging that is the only sane thing you can do i think
Avatar
xml in java justatest
Avatar
@Comrade but it's an error, you have to handle it
18:42
and it doesn't document anything like "fdatasync before close makes sure that close doesn't error"
Avatar
yes, but you can't really handle it
18:42
only kernel can
Avatar
huh? why not?
18:42
you can handle any file writing error, why not that one?
Avatar
What is the problem with close()?
Avatar
it fails in certain cases
Avatar
Ah, it shouldn't be allowed to, true
18:43
They should provide a RAII compliant version of it too.
Avatar
or, linux should provide a function that does the error bookkeeping so you can call that before close(2)
18:43
if you want your write to succeed
Avatar
it's like malloc returning NULL - what can you do with that? 😄
Avatar
@Comrade handle it like any file writing error? disk might be full e.g.
18:44
you also have to handle that
Avatar
@Comrade depends, many of my programs handle it quite gracefully
Avatar
(the error in close(2))
Avatar
In practice, close should never be retried on error, and the fd you passed to close is always invalid (closed) after close returns, regardless of whether an error occurred. In some cases, an error may indicate that data was lost (certain NFS setups) or unusual hardware conditions for devices (e.g. tape could not be rewound), so you may want to be cautious to avoid data loss, but you should never attempt to close the fd again.
18:44
On my system (Ubuntu Linux, glibc), man page of a close call specifies several error return values it can return. It also says Not checking the return value of close() is a common but neverthel...
18:44
justatest
Avatar
Though the OOM Killer will more than likely nuke your program along with many others, and malloc will probably never even return null on most modern OSs
Avatar
only linux I think
Avatar
they prefer to hand out a pointer anyway and either swap things around to let you use that virtual memory or just nuke you on page fault if swap is not available
Avatar
is swap needed in these modern times
Avatar
@Ryozuki depends on your workload
Avatar
is that so for windows and macos, @Learath2 ?
Avatar
let's say malloc returns NULL, so you log that first, but then you realize that your logging function calls malloc internally - how to fix that? 😄
Avatar
@heinrich5991 I think it's similar on macOS, not sure about windows at all
Avatar
Avatar
Learath2
@Ryozuki depends on your workload
Android studio aPES4_Steering
Avatar
Simple, my logging functions don't allocate memory
Avatar
that's not so easy
Avatar
It's quite simple. Step 1 is to not allocate memory
18:46
There is no step 2 even 😛
Avatar
as far as i know even printf may call malloc in glibc implementation
Avatar
That's printfs business how it handles malloc
Avatar
so, your allocation fails, logging fails, what's next?
Avatar
do you achieve this by going like char[256] buffer to avoid malloc? or what
Avatar
roll back the current transaction, I guess?
18:48
return a 500 error as a http server?
Avatar
well, if all the libs you use can do that without malloc, then yes
Avatar
Depends, if there is a way to recover, then you recover, if not then you just die
Avatar
@Learath2 hav u seen the try catch finally mess u get in java when opening and closing a streamwriter, u hav to add another try catch inside the finally block, luckily in new java versions u have a nicer try
Avatar
it's not entirely clear that just because malloc failed for one allocation, it'll fail for all others, too, btw
Avatar
ObjectOutputStream oos = null; try { oos = new ObjectOutputStream(new FileOutputStream(file)); oos.writeObject(shapes); oos.flush(); } catch (FileNotFoundException ex) { // complain to user } catch (IOException ex) { // notify user } finally { if (oos != null) { try { oos.close(); } catch (IOException ex) { // ignore ... any significant errors should already have been // reported via an IOException from the final flush. } } }
Avatar
@Ryozuki try-with-resources is the cute way to handle this
18:50
yeah
18:50
but imagine the live
18:50
before it existed
Avatar
yeah, java world is often clown world
Avatar
why did you put the oos.close() into the finally block?
18:51
I'd think you can put that after oos.flush()
Avatar
why not?
Avatar
you wouldnt close it if it throws
Avatar
Yep ^^
Avatar
Java doesn't have RAII
Avatar
huh? it'll still close AFAIK
18:52
when the garbage collector runs
Avatar
no, it doesn't actually
Avatar
source?
Avatar
i think this is how u leak memory
18:52
in java
18:52
but idk
Avatar
Even if it did, that's one uuuuuuugly solution
Avatar
no, don't think so @Ryozuki. if so, source please
Avatar
Relying on the OS to clean up your allocations on exit I can accept. Relying on GC to close your file handles is ew
Avatar
Is there any good example do demonstrate file descriptor leak in Android? I read somewhere that it occurs if we don't close the streams for example FileInputStream or FileOutputStream but I could not
Avatar
"But many classes such as FileInputStream and RandomAccessFile are written with a finalize() method which ensures that IF an instance in garbage collected, close() will be called first."
Avatar
Because Dalvik's FileInputStream will close itself when it is garbage collected (this is also true for OpenJDK/Oracle) it is less common than you'd think to actually leak file descriptors. Of course, the file descriptors will be "leaked" until the GC runs so depending on your program it could take a while before they are reclaimed.
Avatar
yes, it seems some GC implementations can close it (edited)
Avatar
give me one that cannot
Avatar
Well I don't think the standard guarantees it
Avatar
some testing is needed 😄
Avatar
source? I really don't think this is true
Avatar
nvm, the standard does guarantee it
Avatar
It still does linger around until the GC gets to it though, depending on the load and the GC it might stick around forever 😛
Avatar
I guess
Avatar
GC in Java is so lazy anyway 😄
Avatar
Well I'm sure there is some clause in the standard that requires gc be run atleast sometimes, to avoid exactly this issue
Avatar
+ OS resources might be quite limited. but I don't think it's really required for the error case of IOException while writing to the file
Avatar
maybe System.gc() or how is it called?
Avatar
that only fails if the actual writing fails
Avatar
https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Copy-on-write :o u can use Cow in c++, rust has this in the standard tho bluekitty
Avatar
so, it's probably better to call "close" in "finally" block to get somewhat deterministic resource management
Avatar
@Ryozuki this is one of the ugliest idioms I've ever encountered, don't use it if you value your life
Avatar
Cow is used a lot in rust tho
18:58
but i guess in c++ is ugly
Avatar
CoW is in general a great idea
Avatar
doesn't look threadsafe
Avatar
I wish there was a clean way to accomplish it in C++
Avatar
nvm my comment, class works differently than I expected
Avatar
There really is no safe way to do this in C++ I would honestly just delete the copy constructor
19:02
Have a refcount, delete the copy constructor so as to only allow things to be explicitly copied and no modifications unless refcount == 1
19:02
(and even that probably has some safety issues I'm not thinking about right now)
Avatar
Despite having a steep learning curve, the programming language offers speed and safety.
19:11
toptri
19:12
if anyone uses rust for AOC: https://github.com/gobanos/cargo-aoc
Contribute to gobanos/cargo-aoc development by creating an account on GitHub.
19:12
its quite tryhard tho
Avatar
by the way, Rust is still being mainly developed by Mozilla, right?
Avatar
Avatar
Comrade
by the way, Rust is still being mainly developed by Mozilla, right?
Hm not quite sure, they want to found The Rust foundation
20:19
Microsoft facebook and others are interested in rust too
20:20
I hear m$$ uses it on some parts of windows
Avatar
that would be epic 😄
20:20
Good read i guess
Avatar
Mozilla is now heavily infiltrated by SJWs and they are doing really weird decisions, so let's hope Rust survives that (edited)
Avatar
In 2015, with the launch of Rust 1.0, Rust established its project direction and governance independent of the Mozilla organization
Avatar
smart move
Avatar
@Comrade sjw will be everywhere
20:22
They are always dedicated enough
20:22
To get to a position
20:23
Whre they hold power
20:23
Shit smartphone
Avatar
https://en.wikipedia.org/wiki/Servo_(software) In August 2020 during the COVID-19 pandemic, due to lack of funds and organization restructuring, Mozilla laid off most of the Servo development team, along with its own threat management security team, to "adapt its finances to a post-COVID-19 world and re-focus the organization on new commercial services".
20:23
it's core component of Firefox, isn't it? 😄
Avatar
Unless the BDFL holds them off
20:24
@Comrade nah
Avatar
Servo is now under Linux Foundation
Avatar
Its opt in
20:24
And is not stable
20:24
Thats good
20:24
Servo is a good project
Avatar
@Comrade mozilla doesn't employ rust developers anymore, I think
Avatar
What is sv_rcon_token_check
22:02
And How to use?
Avatar
Avatar
Spyry
What is sv_rcon_token_check
Never heard of
22:39
it
Exported 426 message(s)