hkaiser changed the topic of #ste||ar to: STE||AR: Systems Technology, Emergent Parallelism, and Algorithm Research | stellar-group.org | HPX: A cure for performance impaired parallel applications | github.com/STEllAR-GROUP/hpx | This channel is logged: irclog.cct.lsu.edu
<gonidelis[m]>
any reason we define the documentation twice?
<gonidelis[m]>
why ^^
<gonidelis[m]>
<K-ballo> "some things have to be in..." <- seems more like headers are the go-to solution and then you basically retain a couple small sources to "run". at the end of the day we are building a libarary, I wouldn't consider headers either forced or lazy
<gonidelis[m]>
maintain^^
<K-ballo>
no
<K-ballo>
both static and shared libraries are composed only of source files after all
<K-ballo>
header files, on the other hand, are copy-pasted into each source file in which they are #included
<K-ballo>
in old style C headers weren't even necessary, they were more of a luxury convenience
<gonidelis[m]>
K-ballo: so headers are mainly for name conflicts avoidance
<gonidelis[m]>
libraries are composed ONLY of sources? wow
<K-ballo>
name conflicts? what do you have in mind?
<K-ballo>
library *files* (.a/.lib, .so/.dll) are composed only of sources
<gonidelis[m]>
actually the oposite
<gonidelis[m]>
reusable code i meant
<K-ballo>
headers are for interfaces
<gonidelis[m]>
yes
<gonidelis[m]>
interface <- reusable code
<gonidelis[m]>
not the other way around necessary
<gonidelis[m]>
but why the sources?
<K-ballo>
I don't understand the question
<gonidelis[m]>
why can i not write a library that is just comrised of .hpp's?
<gonidelis[m]>
and just be included in the user's main
<gonidelis[m]>
source file
diehlpk has joined #ste||ar
<K-ballo>
you can, it's just a terribly poor practice
<gonidelis[m]>
alright
<gonidelis[m]>
excellent
<K-ballo>
unless you are forced to it, like it's the case of libraries entirely composed of macros, or (pre modules) templates
<K-ballo>
each time your header is included the code gets copy/pasted into the user sources
<K-ballo>
and it has to be parsed, and compiled (and optimized)
<K-ballo>
and later the linker has to come in and de-duplicate all those copies
<K-ballo>
each time the user compiles their program
<gonidelis[m]>
:E
<gonidelis[m]>
i get why it's awful
<gonidelis[m]>
nice explanation
<gonidelis[m]>
thanks!
<K-ballo>
whereas a library source file gets compiled (and optimized) once, no duplicates, and gets linked just as the user asks for it
<K-ballo>
and modules are some sort of parsed source representation (possibly compiled too in some cases), so at least you don't have to keep parsing the same templates over and over and over and over
<gonidelis[m]>
modules?
<K-ballo>
search online for c++ modules for some basic introduction
<K-ballo>
they serve the same purpose of headers, but don't have (all) the downsides
<gonidelis[m]>
wtf
<gonidelis[m]>
i have never ever in my life seen modules
<gonidelis[m]>
like ever
<gonidelis[m]>
like in use i mean
<K-ballo>
you were surprised by the existence of source files in a library mere hours ago
<gonidelis[m]>
why is the view "printable" immediately in the first example while in the second one a new string has to be constructed from scratch
K-ballo has quit [Quit: K-ballo]
<gonidelis[m]>
🙃
hkaiser has quit [Quit: Bye!]
diehlpk has quit [Quit: Leaving.]
Guest82 has joined #ste||ar
Guest82 has quit [Ping timeout: 250 seconds]
Guest59 has joined #ste||ar
Guest59 has quit [Client Quit]
Yorlik has joined #ste||ar
ahmed_ has joined #ste||ar
Yorlik has quit [Read error: Connection reset by peer]
NeelShah[m] has quit [Quit: You have been kicked for being idle]
ahmed_ has quit [Quit: Connection closed for inactivity]
hkaiser has joined #ste||ar
<srinivasyadav227>
hkaiser: yt ?
<hkaiser>
srinivasyadav227: here
<hkaiser>
g'morning ;-)
<srinivasyadav227>
hkaiser: is the SIMD meeting cancelled ?
<srinivasyadav227>
good morning :)
<hkaiser>
yes, we forgot that today is Good Friday
<srinivasyadav227>
oh okay, gsoc meeting is cancelled aswell ?
<hkaiser>
I'd think so, yes - can we meet Tuesday at the usual time?
<srinivasyadav227>
okay sure :) sorry again for missing out on this Tuesday :)
<hkaiser>
nah, no worries
<srinivasyadav227>
thanks! ;)
K-ballo has joined #ste||ar
<zao>
gonidelis[m]: There's two aspects to what goes in "source files" (.cpp) and headers (.hpp) - "mechanical" and "cultural" and it largely boils down to the one-definition-rule (ODR).
<zao>
Mechanically some constructs when compiled in a translation unit (TU, source file with all includes expanded) generate distinct entities each time, these are things like free functions, variables of global scope. Some generate the same thing across different TUs and are interchangeable by the linker like inline functions and expanded templates. Some don't generate anything like extern variables. Member functions defined inside a class definition are
<zao>
implicitly inline. These are hard rules and you have to design around them.
<zao>
Culturally a project may pick among multiple ways to do things and design their libraries accordingly - you can go "header-only" by only using mechanisms that don't need separate source files and can be expressed (with effort and cost) in a set of headers. You have projects with very traditional headers that put as much as possible in source files and keep the header interface as slim as possible, and there's the ones inbetween that may define smaller
<zao>
things inline in headers but also have some of the costlier or bulkier things in source files. For things like HPX that go hard on templates, a lot of code is kind of forced into headers whether one likes it or not.
<zao>
(hah, really screwed up my line length estimates there :D )
<ruchipakhle>
hkaiser stellar has been selected into the GSOD'22 so we can officially start sending the proposal submission so is there any google forms sent for the same as I am not able to see any communication or previous messages on libera and there is no chat going on in the matrix so am I left behind?
<hkaiser>
ruchipakhle: will publish this by early next week
<hkaiser>
sorry for being slow :/
<hkaiser>
gonidelis[m]: has it almost ready, I believe
<hkaiser>
ruchipakhle: you can definitely start thinking on what you would like to work on
<ruchipakhle>
ohhh no worriess i was just concerned as I was not able to see any messages also is there any way by which I could remain in sync with the community here=L
<hkaiser>
ruchipakhle: this channel is being logged: irclog.cct.lsu.edu
<ruchipakhle>
hkaiser: ohh cool, thanks for sharing
<ruchipakhle>
you can definitely start thinking on what you would like to work on : yes definitely i have started to go through the stellar documentation thoroughly
<hkaiser>
cool
Yorlik has joined #ste||ar
diehlpk has joined #ste||ar
diehlpk has quit [Client Quit]
<gnikunj[m]>
hkaiser: do we have HPX + LCI meeting rn?
<gnikunj[m]>
tried joining the room. Looks like not.
<gonidelis[m]>
hkaiser: ruchipakhle will take care to publish the questionnaire in a bit. Apologies for that
ruchipakhle has quit [Quit: Client closed]
diehlpk_work has joined #ste||ar
<hkaiser>
gnikunj[m]: Eastern...
<gnikunj[m]>
Aah yeah
<gnikunj[m]>
For some reason, I don't have a holiday today ;_;
<hkaiser>
gnikunj[m]: you're paying to be punished ;-)
<gnikunj[m]>
Fortunately not paying but unfortunately still being punished 🥲
ruchipakhle has joined #ste||ar
<ruchipakhle>
gonidelis[m] : no worries at all, i just asked coz I did not have logs of whats happening over here and hence asked
<ruchipakhle>
but now that i have I would be patiently seeing that before :)
ahmed_ has joined #ste||ar
diehlpk_work has quit [Remote host closed the connection]
ruchipakhle has quit [Quit: Client closed]
hkaiser has quit [Read error: Connection reset by peer]
hkaiser has joined #ste||ar
Yorlik has quit [Ping timeout: 248 seconds]
jehelset has joined #ste||ar
ahmed_ has quit [Quit: Connection closed for inactivity]
<pansysk75[m]>
Hey, fellow newcomer here.
<pansysk75[m]>
Are there any specific tools commonly used for profiling and performance testing? I only know of those included in Visual Studio
<hkaiser>
pansysk75[m]: that's a good one for high-level assessments, more detailed information can be collected using vtune (Intel Amplifier)
<hkaiser>
depends on what you're planning to do, really
<pansysk75[m]>
Also what is "Traveler-integrated" for? Some sort of profiling tool as well?
<pansysk75[m]>
Thanks so much!
<hkaiser>
pansysk75[m]: Traveller is a set of web-based visualization tools for trace data collected by other tools (mainly otf2 traces, but I think they support other formats as well)
<gonidelis[m]>
you should have also received an email with the spreadsheet that collects the responses along with privillages to modify the google form if you want
<gonidelis[m]>
gnikunj: ms and diehlpk_work too
<hkaiser>
ok, thanks
<hkaiser>
yep, got it
<gnikunj[m]>
gonidelis: thanks for working on this!