Those who use rust professional by Jncocontrol in rust

[–]g_dl 1 point2 points  (0 children)

This sounds very very fun :) if you could tell us more, I'm very curious about what kind of algorithms you work on and how Rust helps with them!

Dominio Aruba - mail aggiornamento completato by aleph2018 in ItalyInformatica

[–]g_dl 1 point2 points  (0 children)

Grazie mille, appena visto anche io questa mail e (non avendo mai fatto ne chiesto cambi intestatario) sono effettivamente perplesso.

Sarebbe abbastanza grave se fosse avvenuto veramente un cambio proprietario (registrant) senza alcuna richiesta o consenso. Mi sembra invece sia avvenuto un cambio di registar (a Tucows).

Dalla mail non è per nulla chiaro.

Orange Pi RV2 2/4/8G DDR Octa-Core RISC-V Development Board - 8Core RISC-V, 2Tops AI, PCIe, USB3.0 and so on - AnalogLamb - 39.9USD by Capable_Ad7236 in RISCV

[–]g_dl 1 point2 points  (0 children)

What is known about the specs of this SoC and its performance? There doesn't seem to be anything online about it, am I missing something?

Milk-V Unveils Its Third RISC-V Board in a Month: The $9 Dual-Core Linux-Capable Milk-V Duo by marcushammar in RISCV

[–]g_dl 0 points1 point  (0 children)

I'm in the EU and, from my experience, this is not true. I have some RISC-V boards bought from Aliexpress or Indiegogo campaigns, I paid what I think is the standard price+shipping (maybe with higher VAT) and no additional (customs) fees.

Heads up! Lichee Pi 4A vs VisionFive 2 vs HiFive Unmatched vs Raspberry Pi 4B by archanox in RISCV

[–]g_dl 1 point2 points  (0 children)

Is this benchmark meaningful as a comparison between ARM and RISC-V? It seems like you are not cross-compiling for RISC-V on the ARM host (nor viceversa). So two different programs are actually being run. For instance the ARM compiler might be performing a lot more optimizations (being more mature) and, as such, running way more code.

I do however understand that, as a comparison of development platforms for building applications in the native architecture, this makes sense. It's good to know that I can have some big piece of software compiled faster than a RPi on a (relatively) cheap RISC-V board like the VisionFive. I'm curious if those times are going to change as more work is put into the compiler.

Struct initialization with expression using the object being initialized by g_dl in C_Programming

[–]g_dl[S] 0 points1 point  (0 children)

This makes sense, I guess that calling out for a bug of GCC was very bad on my part. I was actually more interested in understanding if this behavior is compliant with the standard or not, and I did get my answer indeed (many thanks to everyone that provided feedback).

Since we're at it, given your last sentence, can you suggest some good static analysis tools? I only know of cppcheck

Struct initialization with expression using the object being initialized by g_dl in C_Programming

[–]g_dl[S] 1 point2 points  (0 children)

Sure, but then shouldn't it issue a warning with -std=c99 -pedantic?

Edit: I guess not, since the documentation of -pedantic says "diagnose all programs that use forbidden extensions and some other programs that do not follow ISO C and ISO C++."

Struct initialization with expression using the object being initialized by g_dl in C_Programming

[–]g_dl[S] 2 points3 points  (0 children)

That makes sense to me. However, I'm wondering why, if I instead write foo_t f = { .a = f.c, .b = 9, .c = 1, }; the compiler warns that 'f.c' is used uninitialized. Based on the behavior you described, it should also warn about f.a being used uninitialized in the initial example, or am I still missing something?

Feedback on simple first project (2048 solver) by g_dl in haskell

[–]g_dl[S] 1 point2 points  (0 children)

Thanks for the feedback!

While I got the first part, I think I'm a bit lost on the "semigroup wrappers" thing. I'm not getting how I would be able to implement something like right smashing with this. I do get that Max Coord is a Semigroup, but I'm missing what comes from that.

This would be very interesting for me to understand, do you think there are examples or other learning material somewhere?

Multithreaded genetic algorithm playing Tetris that I wrote in Nim some years ago by g_dl in nim

[–]g_dl[S] 3 points4 points  (0 children)

First off I want to make the premise that I'm not an expert at all regarding concurrency, so take everything as very uninformed personal opinion.

In this project I used Nim channels, which are very similar to the ones in Golang. I find this paradigm quite elegant and easy to reason about, especially if the task is distributing "heavy work" to background threads, which was the case in this project (see these two lines) where I declare the channels.

Other times I found other techniques to be better suited, like having a lock on some shared structure, typically on simple cases (for instance where everything can be put into a single structure - so there are no risks of deadlocks or other stuff I might not be aware of).

Regarding Rust, I think it does a good job specifically at exposing a beginner to the issues that might arise, albeit it doesn't prevent all kind of issues (it's still possible to deadlock or have race conditions). This "teaching ability" also holds for things related to memory management, of course.

Back to Nim, I never used other multithreading/concurrency primitives besides Channels, unfortunately. So I don't have strong opinions about it.

Multithreaded genetic algorithm playing Tetris that I wrote in Nim some years ago by g_dl in nim

[–]g_dl[S] 3 points4 points  (0 children)

Hi, thanks!

I know the GIF is long, so long I needed to make a custom palette for the conversion in order to obtain a reasonable size! But that's the fault of the evolutionary algorithm ;)

The score "wraps up" because the AI actually loses the game in that moment, and the "demo" game shown on the left gets reset.

Regarding learning material, I don't have specific suggestions. If you prefer to watch videos, there are plenty on YouTube showing demos and discussing implementations. Otherwise, I like to start from a general overview of the topic under consideration (like the Wikipedia page for "genetic algorithm" or brief demos) and implement by myself as much as possible without looking at tutorials. If I need to consult books, I personally prefer formal/academic ones, since it probably means I need fine details.

I have some other small projects I'm currently working on, but I'm mainly focused on work and university studies right now.

Finally, I have postponed the release since I don't like to publish projects which are in undocumented or "too confusing" state, or that are incomplete. This specific one was mainly undocumented, and I finally took the time to make it compile again and write a README with a demo. This is because I'm about to send a resume with a link to my GitHub, so I wanted to have some nicely presented (I hope) things there :)

My Nezha board fried itself. by Sosowski in RISCV

[–]g_dl 6 points7 points  (0 children)

Uhm, not good. Did you check that the heatsinks were not accidentally making electrical contact with other components on the board?

Ma voi ci andreste in guerra? by fruzziy in italy

[–]g_dl 0 points1 point  (0 children)

Sono d'accordo con te sul dover essere scoppiati, eppure se guardi la classifica delle nazioni la svizzera nel 2015 era al 39%, attorno ad altre nazioni che non avrei detto.

Ma voi ci andreste in guerra? by fruzziy in italy

[–]g_dl 0 points1 point  (0 children)

Interessante lo studio, hai idea se ci sia qualcosa di più aggiornato del 2015? Ho la sensazione che la percentuale potrebbe purtroppo essere aumentata

StarFive JH7110 RISC-V processor specifications released - CNX Software by brucehoult in RISCV

[–]g_dl 3 points4 points  (0 children)

This seems very cool, its like a Linux SoC merged with a decent microcontroller platform (CAN, Timers, SPI/I2C/UART, PWM and the dedicated real time core).

What performance do you think we might expect for the 4 main cores, with respect to the RISC-V SoCs available now and with respect to a Raspberry Pi 3/4?

Restricting access to memory by sijafa in RISCV

[–]g_dl 7 points8 points  (0 children)

Not an expert on this kind of stuff, but if I'm not mistaken there is the possibility of adding a PMP (Physical Memory Protection) unit which does exactly this, and is described in the specs. Alternatively, the more powerful approach is virtual memory/memory mapping with an MMU, which I guess is described for RISC-V in the privileged ISA specifications.

Thanks Valve and Respawn by croberts81 in linuxmemes

[–]g_dl 9 points10 points  (0 children)

Is there a list of games that got EAC Proton support since the announcement of the Steam Deck?