Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API

From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "compile your food"
-
Let me start this off by stating I'm a Java dev, and a noob with C++.
Thought it'd be cool to learn some OpenCL, since I want to do some maths stuff and why not learn something new.
So I sat down, installed Nvidia proprietary drivers, broke my x-org server, purged, reinstalled, rebooted and after a while I got stuff sorted out.
Then on to my IDE. I use CLion and it uses Cmake. C++ noob knows shit about Cmake, so struggle for two hours trying to figure out wtf is going on with the OpenCL libs and why they're only partially detected. Fml.
Finally, everything is configured and I'm set. I start working on a Hello World program using OpenCL. Finish it in 20 mins, all good. No output. Do some googling, check my program a million times. Nothing wrong here. Check the kernel, everything as in the tutorial.
I start checking error codes after a while reported by OpenCL (which I had no clue was a thing) and I get some code saying the program was not created properly (to run the kernel). No fucking clue what's up with that. Google around, find another tutorial, rewrite my code in case I'm using outdated code or something. Nothing.
Fast forward an hour, I find out that OpenCL has logs! So I grab some code from the website I found it on, and voila, I finally get some info on what's going on.
Get a load of this bs.
In the kernel file, so that OpenCL knows that it's a function to run, you have to put __kernel. But in all the places I read, it said to put it as _kernel.
Add the underscore, compile, run and everything is perfect.
Then I tried just putting 'kernel'. Also compiles and runs fine.
Two hours hours and my program was fixed by adding an underscore. IF ONLY C++ GAVE AN INDICATION OF WHAT BLEW UP INSTEAD OF SITTING BACK AND BEING LIKE "oh wow man feels bad, work some magic and try again" THEN THIS WOULD NOT HAVE TAKEN SO LONG.
Then again, it was OpenCL that was being shitty with its styling enforcement or whatever the hell the underscore business is. But screw it. C++ eats shit too for this. Sure, maybe Java babies you by giving you the exact error and position that the error took place at. But at least that way you don't waste hours of your life chasing invisible bugs 😠😠
I'm going to eat some food... Too much energy was consumed fighting the system... Then I'll get back to OpenCL because 😇 but that doesn't make it less bs.1 -
Should someone try to verify what they trust, they will find themselves on the shore of infinite, immesurable void. This void is aggressively anti-memetic: it exists, we know it exists, but it's practically unknowable.
Have you ever tried so much as compile your entire OS and all its programs from scratch? I know it's possible, I know there are people somewhere who do it, but have YOU personally tried that? Did you compile every part with multiple compilers to verify that your compiler isn't compromised? You can talk the talk, but have you walked the walk?
The food you eat every day. Did you make sure that it only contains what the label says it contains? Have you checked it with the lab? Have you then checked the lab itself? Did you check their equipment? The firmware their equipment runs? Purity of test mediums and reagents? The equipment you used to check the purity?
As I type that, I want to smack myself in the face. My brain aggresivelly rejects the idea that it needs to check everything itself. More specifically, the idea that the amount of trust it puts into other people it doesn't even know is INSANE. Here this void is -- known, but unknowable.
Do you remember the shore? It actually was _your_ shore -- you yourself is just an island floating in this void. Other people are islands too. Or bubbles, or, more specifically, entities that live within those bubbles. The bubbles made of beliefs and assumptions that form their hosts' realities.
With natural language, you build bridges to other islands/bubbles. The natural language itself is a thing that you don't really know -- you use it, yet you (and no one else for that matter) can guarantee that other person you talked to understood exactly what you was trying to say.
This black sticky void can consume us all at any moment. Yet, it chooses not to.
This void is god.6