Building a small personal project in #Rust to teach myself the language. As I was looking over my code, I noticed a mistake I'd made that technically worked, but was kind of silly so I fixed it.
This got me to wondering if Rust had a linter (it does) because surely I'd made other similar rookie mistakes. I found the linter and ran it on my project. It came back with one result that I already knew about: a value in a struct that doesn't get read because I haven't written that code yet. That was it.
I was surprised. It's still a very small project, but perhaps I'm a more competent developer than I give myself credit for.
reshared this
Does time::OffsetDateTime::now_local()
always fail in a testing context or something? It keeps returning Err(IndeterminateOffset)
.
#rust
Edit: it's working fine when I use it in src/main.rs
.
reshared this
UtcOffset
not threadsafe in such an environment?
UtcOffset
to be manually specified.
More musings on #Rust:
I wonder if it would be possible to write an #SNES #ROM in Rust. It seems like exactly the kind of resource-constrained system that would be a prime candidate for that sort of thing. Unfortunately, it seems that the SNES used a custom processor, so it's very possible that I won't be able to specify it as a compile target. A quick search reveals that many people have made SNES emulators in Rust, but at a glace, I see nothing about writing ROMS.
I believe the original NES used an off-the-shelf processor (6502 if memory serves?). Perhaps that's more likely to be supported, but that may be a little too resource constrained.
I shall have to dig deeper into this idea. I love the idea of building a custom ROM rather than just pirating something off the internet.
Has anyone done anything like this? Links to any relevant resources would be very much appreciated.
like this
reshared this
The SNES CPU is based on the WDC 65C816, which is indeed able to run 6502 code but it also has 16-bit mode instructions with much larger memory address space.
I think the only general purpose computer to use this CPU was the Apple IIGS, so maybe look around to see if there's any Rust port to Apple IIGS.
this folks have ported llvm to MOS6502: llvm-mos.org/wiki/Welcome
You can try to link rustc to that fork and add a new rustc target.
It will be a very long journey, but it is possible.
Newbie #Rust question time:
I wan to use the current_local_offset function from the time
library, but I apparently need to import it into my project with the local-offset
feature.
I assume I need to specify this in Cargo.toml
but for the life of me, I can't figure out how. Can someone point me in the right direction?
reshared this
You need to specify the `features` list next to the version in Cargo.toml:
doc.rust-lang.org/cargo/refere…
Alternatively, you can run
`cargo add -F FEATURE1,FEATURE2,…`
You can run `cargo add` even after you added a dependency.
Have you tried something like the following?
time = { version = "0.3.36", features = ["local-offset"] }
Jonathan Lamothe likes this.
Ep. 309 The Covenant, the Sword and the Arm of the Lord Part 2 - Episode 107 Remastered
In this remastered conversation, I speak with former co-leader of the Covenant, the Sword and the Arm of the Lord (CSA). Unfortunately, I found out recently that Kerry passed away last year.Spreaker
Story time:
I've been holed up in the (home) office for most of the day (not uncommon). I happened to look out the window and noticed that our building was surrounded by cops.
Interesting.
Turns out they arrested one of the downstairs neighbours... for what, I don't know.
Here's the interesting bit though: apparently, the landlord offered them the key to the apartment, but they couldn't legally use it because there was no warrant. I guess that makes sense, but while they weren't allowed to to that, they apparently were allowed to enter the apartment by prying a window open or kicking the door in. In what world does that make any sense?
like this
reshared this
People who don't like #Rust: why specifically don't you like it?
I'm in the process of learning it now. There are definitely some things about the language that I can see some as finding irritating (i.e.: the borrowing system). Personally though, I'd rather have a dozen complie-time errors than a single runtime error. This is the reason I tend to gravitate towards Haskell, for instance.
It's certainly not the right language for everything, but if you want better safety in code that needs to be highly efficient, it seems a reasonable alternative to C/C++.
reshared this
the borrow checker is such a big part of the language it's not just slightly irritating, it's like having a non-consentual finger up the ass every time you open some Rust code in your editor
And the fact Rust is always staticallly linked and lacks any sort of reproducible builds don't help, even the compiler itself only compiles with an n-2 version of the compiler, if you skip updating the compiler for a while and want or have to keep using sources then have fun compiling every version since you last updated the compiler
Its type system is also like a borrow checker: non-consentual fist up the ass, want to add an u8 to an u32? Nope, can't, have to manually cast everything because that's why we do programming languages instead of writing Assembly, to do all the fucking busy work ourselves
Oh, and Cargo is its own can of rotten worms
LisPi likes this.
@Reiddragon > And the fact Rust is always staticallly linked and lacks any sort of reproducible builds don't help
That is excusable in languages where source-only distribution is normal and expected. (Indeed, compilation should be a transparent caching step and artifacts of such shouldn't be commonly shared.)
That is not the case for Rust.
> even the compiler itself only compiles with an n-2 version of the compiler
That's also a problem, Rust's bootstrap story sucks.
Ada's might suck as much, I'm not sure, I have found a few interpreters when I last looked...
> I'd rather have a dozen complie-time errors than a single runtime error. This is the reason I tend to gravitate towards Haskell, for instance.
There should be no meaningful difference between runtime and dev-time for the majority of devs. Dead languages aren't necessary. And punchcard retrocompatibility can be preserved without prioritizing a development process that is optimized for that workflow.
As for typing static vs dynamic, there's a thing called "gradual typing", and it is very possible to tie the type-checker into a REPL.
I've got a few things with Rust that make me dislike it a bit -- note that that doesn't mean that I think it's generally a bad language. (They're all good langs, Brent.) But here we go:
Another single implementation standard-less language. No solid standard library, everything done by downloading the internet. Very un-Turbo-Pascal-ish compile times and memory usage. Annotations. BCPL-ish syntax with too much line noise (and hey, I used to program Perl). Tied a lot to the worst things in IT (browser engines, crypto). Fanatical community. Overly complex async to save me from writing threads. Both functional purists and micro-optimizers. The word "Rustaceans" alone.
It's not a language that I'd like to use recreationally, but I wouldn't quit jobs if I have to do more work with it at work.
Jonathan Lamothe likes this.
Dear OpenBoard,
I have you set to English (UK) for a reason (because English (CA) isn't an option). Quit trying to autocorrect "colour" to "color".
Thanks.
juliadream likes this.
Ep. 309 The Covenant, the Sword and the Arm of the Lord Part 1 - Episode 107 Remastered
In this remastered conversation, I speak with former co-leader of the Covenant, the Sword and the Arm of the Lord (CSA). Unfortunately, I found out recently that Kerry passed away last year.Spreaker
@Reiddragon @me
@Reiddragon
DJ UNK and I basically have a show that's just about what @me does.
BREAKING
GREEN TEA ADDED TO MENU AT PARADISE SUSHI
so according to classic Bell labs at worst jlamothe is a minor success ;p
Diving into the #Veilid documentation... or what I can find of it.
I have an idea that may well turn out to be vapourware, but my brain won't let me drop it if I don't at least try to build it.
I've been itching to do something with Veilid since @The Gibson first announced it.
screwlisp reshared this.
I honestly didn't think veilid managed to get anywhere, which was sad.
VeilidChat exists but I think that's the only productive/useful project.
Development on the repos has really slowed down post-announcement, which isn't inherently a bad thing, if it's "done", but I don't think it's done - instead it feels stalled.
Maybe it all moved on-network and to places I can't see? That'd be cool.
like this
Dear spammers:
If you're going to create fake accounts, maybe don't choose a profile photo with an iStock watermark...
Ep. 308 The Unification Church with Jen Kiaba - Episode 88 Remastered
In this episode we continue our coverage of The Unification Church. This episode includes an interview with artist and activist Jen Kiaba who creates art depicting the spiritual abuse that comes with control and coercion. Find her work here at www.Spreaker
#FediBlock
like this
@Alex :autism: :neofox_flag_ace: Good to know. I don't like to use third-party lists, because I use defederation as a last resort, and want to make those calls on a case-by-case basis as I become aware of them. Fortunately, I'm a small enough server that that's been a sustainable policy so far.
I'll check out those other two, though I'm pretty sure I already have at least noagendatube.com
blocked already. It sounds familiar.
So, I'm eating a Wagonwheel for the first time since childhood. I'm not sure if they've gotten significantly smaller, or if I'm just remembering them as being larger than they were.
Probably both.
There's this little Chinese restaurant that Katy and I like to order from occasionally. Because this is Canada, the fortune cookies tend to have English and French on them (one language on each side of the paper). They're manufactured in such a way that when I crack them open, I usually see the French side first, which usually isn't a problem.
I'll admit that my French is not as good as my English, but I'm more or less bilingual. This time though, I swear the French side of the fortune was generated by a Markov chain or something. I was actually forced to read the English side to figure out what they were trying to say.
The French side:
Vos yeux délicieux, voire dynamiques, ont fait naître un admirateur mystérieux.
The English side:
Your dynamic eyes have attracted a secret admirer.
Am I just forgetting how to speak French, or is this a really clumsily constructed sentence?
Ep. 307 Cult Chatting with Caroline Ansley
This week we finally have a new episode. I sat down with Caroline Ansley to discuss cults and coercive control. Caroline, a medical doctor, activist, advocate and cult survivor, is doing SO much to combat these issues in her homeland of New Zealand.Spreaker
Joel Michael
in reply to Jonathan Lamothe • • •Jonathan Lamothe
in reply to Joel Michael • •Codrus 🇺🇲
in reply to Jonathan Lamothe • • •@jpm `rustc` itself has built-in lints. There's also MIRI, and some other static analysis tools...
github.com/rust-lang/miri
GitHub - rust-lang/miri: An interpreter for Rust's mid-level intermediate representation
GitHubDylan :heart_nb:
in reply to Jonathan Lamothe • • •Jonathan Lamothe likes this.
Jonathan Lamothe
in reply to Dylan :heart_nb: • •Dylan :heart_nb:
in reply to Jonathan Lamothe • • •Jonathan Lamothe
in reply to Jonathan Lamothe • •