←2022-02-17 2022-02-18 2022-02-19→ ↑2022 ↑all
00:36:44 <esolangs> [[Xjansk]] M https://esolangs.org/w/index.php?diff=93193&oldid=93182 * PythonshellDebugwindow * (+33) WIP, category
00:49:16 <esolangs> [[Deadfish]] https://esolangs.org/w/index.php?diff=93194&oldid=93134 * Dnm * (+761) Added Deadfish in Umka
00:51:04 <esolangs> [[Deadfish]] M https://esolangs.org/w/index.php?diff=93195&oldid=93194 * Dnm * (+86) Added (Internet Archive Wayback Machine) link to Zeno web page (to disambiguate from the esolang Zeno...)
00:52:27 <b_jonas> zzo38: no, we normally do that emulation on the compiler sides, not emulate them in the operating system.
00:52:38 <b_jonas> emulating them in the operating system would be slower.
00:53:07 <b_jonas> but gcc can just output the equivalent instructions for older cpus if you use the intel or gcc builtins
00:53:49 <b_jonas> it's still not perfect, because usually the code that uses those kinds of primitives want to be quite optimized, but if you just want an optimized program with a slow fallback for older cpus then that can work well
00:54:03 <zzo38> Yes, it is slower, but still would allow the program to run even without needing to recompile it (e.g. if the program is the compiler itself, then it can recompile itself but will still need to run at first)
00:56:05 <b_jonas> zzo38: nah, you can just compile multiple versions of the program in first place, or even multiple versions of the functions in the same executable dispatched in runtime
00:57:14 <zzo38> Yes, which would increase the size, I suppose (although if it is possible to unload at runtime the parts that you do not want, then you can reduce the RAM usage; this would be useful for other programs too but I don't know if there is such a capability or how to use it)
00:57:15 <b_jonas> I think these days there's even some dynamic linker magic or something like that for it
00:57:43 <b_jonas> zzo38: you can put the slower fallback functions into a different segments so that they call can be paged out together
00:58:17 <b_jonas> by segments I mean linker sections
00:59:45 <zzo38> OK, but you might also want to tell it to discard the section if it won't be used again. (This can be the case for variables, too, as well as for code)
00:59:49 <b_jonas> fungot: are you connected through ethernet or æthernet?
00:59:49 <fungot> b_jonas: the only emotions i ever see another fnord program written in gambit will be faster
01:01:38 <zzo38> Also, can the compiler detect some implementations and will automatically substitute the instructions if the computer has them?
01:04:54 <zzo38> Otherwise, what #ifdef command can be used to detect it, if you will want to use that?
01:06:45 <zzo38> I have the implementation of bit interleave with 16-bit input and 32-bit output, although in the example I mentioned, the input is more likely to be a 4-bit number (although it might not be).
01:11:07 <fizzie> There's a few "software" approaches of the bit interleaving at https://graphics.stanford.edu/~seander/bithacks.html#InterleaveTableObvious (and after) though I think nothing incredibly unlikely.
01:12:00 <zzo38> I had implemented one of the ones listed there; you can look at the Free Hero Mesh code (the function called "morton" in the file called "exec.c")
01:12:28 <zzo38> Is the use of the BMI2 extensions more efficient, though? I don't know if it is.
01:19:12 <zzo38> (Also, x86 is not necessarily the only target instruction set, anyways. I had also managed to compile Free Hero Mesh on Raspberry Pi, although with a compiler warning about shift count out of range, which seems to be due to not having 64-bit timestamps. The program still works though, but a bit slower than it does on this computer.)
01:19:19 <b_jonas> "can the compiler detect some implementations and will automatically substitute the instructions if the computer has them" => yes in theory, and sometimes it even does, but it rarely comes up in practice because the kind of optimization that can trigger that only comes up if you enable too aggressive optimizations that more often make code worse than better.
01:20:03 -!- tromp has quit (Ping timeout: 252 seconds).
01:20:33 <b_jonas> zzo38: the problem is that when the code has a loop, for the compiler to convert it to simd instructions, it has to handle alignment and all that nonsense, and you'd better be damn sure that it's a hot code where replacing the loop with a much longer and slower to decode code is worth, and the compiler usually doesn't know that,
01:21:03 <b_jonas> or if it does then you usually just write the loop with simd primitives in first place rather than try to convince the compiler in other ways of which pointers are aligned and which loops are long etc
01:21:16 <b_jonas> (or call higher level libraries that do that, obviously)
01:25:25 <zzo38> One common thing to do is read/write numbers by endian, probably. Bit interleaving is probably less common.
01:26:16 <b_jonas> zzo38: here's an example that's pretty much the best case, fixed-sized vectors https://godbolt.org/z/TdGzEY4d5
01:26:45 <b_jonas> you can see that the compiler uses two pandn instructions to do the arithmetic there
01:26:52 <b_jonas> but only because I added the -O3 compiler option
01:27:21 <b_jonas> wait, let me add alignas guarantees
01:29:32 <b_jonas> https://godbolt.org/z/xY618fM3K with alignment, so it can now directly use a memory operand in the instructions
01:32:03 <b_jonas> and you'll notice that it still doesn't emit PANDN instructions, which would be a shorter way to do this
01:33:09 <b_jonas> in the end it's usually better if you call the simd primitives yourself through the intel interface functions, and the compiler only does the register allocation and inlining etc for them
01:35:03 <b_jonas> "Also, x86 is not necessarily the only target instruction set, anyways." => yes, that's also why it's useful that gcc can emit the equivalent instructions for other cpus
01:36:05 <b_jonas> some of the simd code you can write once and gcc will emit the right thing for both x86_64 and neon or whatever ARM cpus use these days
01:36:43 <b_jonas> also for AVX and AVX2 from the same code
01:44:56 -!- eli_oat has joined.
01:52:05 <esolangs> [[User:Digital Hunter]] M https://esolangs.org/w/index.php?diff=93196&oldid=93155 * Digital Hunter * (+6)
01:53:17 -!- eli_oat has quit (Quit: eli_oat).
02:36:34 -!- A_Dragon has changed nick to NotRegistered.
02:36:48 -!- NotRegistered has changed nick to A_Dragon.
05:07:34 <esolangs> [[Entrance]] https://esolangs.org/w/index.php?diff=93197&oldid=77349 * Ais523 * (-38) /* Applications */ replace external link (with external marker hidden) with a link to the corresponding local page
05:09:12 <esolangs> [[Entrance]] M https://esolangs.org/w/index.php?diff=93198&oldid=93197 * Ais523 * (+0) /* Applications */ whitespace
07:52:36 -!- Sgeo has quit (Read error: Connection reset by peer).
07:59:36 <esolangs> [[Deadfish]] https://esolangs.org/w/index.php?diff=93199&oldid=93195 * Dnm * (+769) Added Deadfish in ICI
08:11:30 <esolangs> [[ECL]] https://esolangs.org/w/index.php?diff=93200&oldid=93037 * Bushbo * (-144)
08:12:00 <esolangs> [[ECL]] M https://esolangs.org/w/index.php?diff=93201&oldid=93200 * Bushbo * (-2)
08:12:25 <esolangs> [[ECL]] M https://esolangs.org/w/index.php?diff=93202&oldid=93201 * Bushbo * (+1)
08:16:40 -!- immibis_ has quit (Ping timeout: 272 seconds).
08:19:27 -!- tromp has joined.
08:29:05 -!- SGautam has joined.
08:29:23 <esolangs> [[ECL]] https://esolangs.org/w/index.php?diff=93203&oldid=93202 * Bushbo * (+269)
08:33:55 <riv> Corbin: https://twitter.com/bgavran3/status/1494417314418204681
08:34:58 <riv> new astrology symbol https://twitter.com/Foone/status/1494342562630365184
09:11:05 -!- immibis has joined.
09:11:55 <Corbin> riv: Yes.
09:20:38 <zzo38> Why shouldn't there be a astrological symbol for Makemake?
09:21:55 <riv> there should be!
09:21:58 <riv> it's cool that there is
09:23:22 <zzo38> Yes. Unfortunately the IAU doesn't make up symbols for the objects they find newly, so astrologers will have to do instead, and unfortunately sometimes it is not consistent agreement of such a thing.
09:24:59 <zzo38> These symbols can be used for plotting on horoscopes and other plots if you want to do, and can be used for other purposes if you want to do, too.
09:25:24 <riv> wow!!!
09:25:39 <riv> how do you get horoscopes if you aren't one of the main 12?
09:26:33 <zzo38> You should not confuse astrological signs with the constellations having similar names; they are not the same thing. Astrological signs are an angular measurement of ecliptic longitude, each one being 30 degrees.
09:27:40 <zzo38> If it is the "tropical zodiac" (or "equinox of date") then 0 Aries will be the spring equinox in the north hemisphere.
09:28:22 <riv> :O
09:28:24 <riv> thanks I see
09:28:47 <zzo38> The exact date can differ a bit in different years, but are always near the same date. (This difference is also why we will need leap years, which is that the seasons do not drift too far away from the calendar.)
09:29:08 <zzo38> The Tropic of Cancer and Tropic of Capricorn correspond to the astrological signs of those names, and not the constellations of those names.
09:29:18 <riv> that
09:29:20 <riv> s interesting
09:29:24 <riv> I didn't know there was a difference
09:36:31 <zzo38> Well, now you know.
10:13:26 -!- Palaiologosmoved has quit (Quit: Bridge terminating on SIGTERM).
10:13:26 -!- razetime[m] has quit (Quit: Bridge terminating on SIGTERM).
10:13:26 -!- msmith12[m] has quit (Quit: Bridge terminating on SIGTERM).
10:13:26 -!- kamila[m] has quit (Quit: Bridge terminating on SIGTERM).
10:17:20 -!- msmith12[m] has joined.
10:33:10 -!- kamila[m] has joined.
10:33:10 -!- Palaiologosmoved has joined.
10:33:13 -!- razetime[m] has joined.
10:53:32 <esolangs> [[Xjansk]] https://esolangs.org/w/index.php?diff=93204&oldid=93193 * DanielE * (+665)
10:55:54 <esolangs> [[Xjansk]] https://esolangs.org/w/index.php?diff=93205&oldid=93204 * DanielE * (+51)
10:56:16 <esolangs> [[Xjansk]] https://esolangs.org/w/index.php?diff=93206&oldid=93205 * DanielE * (+6)
11:02:51 <esolangs> [[Xjansk]] https://esolangs.org/w/index.php?diff=93207&oldid=93206 * DanielE * (+55)
11:33:31 <esolangs> [[Special:Log/newusers]] create * Vizdun * New user account
11:37:13 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=93208&oldid=93177 * Vizdun * (+148)
12:40:16 -!- tech_exorcist has joined.
12:59:35 <esolangs> [[Gearbox]] N https://esolangs.org/w/index.php?oldid=93209 * Vizdun * (+5682) Created page with "{{infobox proglang |name=Gearbox |paradigms=declarative |author=[[User:Vizdun]] |year=[[:Category:2022|2022]] |class=[[:Category:Unknown computational class|Unknown]] |refimpl..."
13:03:02 <esolangs> [[User:Vizdun]] N https://esolangs.org/w/index.php?oldid=93210 * Vizdun * (+34) Created page with "[https://github.com/Vizdun Github]"
13:04:31 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=93211&oldid=93187 * Vizdun * (+14)
13:11:22 -!- definitelya has joined.
13:28:11 -!- sprout_ has quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.).
13:38:40 -!- SGautam has quit (Quit: Connection closed for inactivity).
13:46:57 -!- sprout has joined.
13:56:49 <riv> fungot: i'm interested in probability because I love learning random things
13:56:50 <fungot> riv: those fnord are part of the code to which they correspond.
13:56:50 -!- eli_oat has joined.
14:05:04 <esolangs> [[Xjansk]] https://esolangs.org/w/index.php?diff=93212&oldid=93207 * DanielE * (+74)
14:05:57 <esolangs> [[Xjansk]] https://esolangs.org/w/index.php?diff=93213&oldid=93212 * DanielE * (+3) /* Program examples */
14:08:02 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=93214&oldid=93146 * DanielE * (+11)
14:08:23 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=93215&oldid=93214 * DanielE * (+0)
14:10:20 <esolangs> [[Talk:Xjansk]] N https://esolangs.org/w/index.php?oldid=93216 * DanielE * (+59) Created page with "Can someone teach me how to write pieces of code on a wiki?"
14:23:08 <esolangs> [[Talk:Xjansk]] https://esolangs.org/w/index.php?diff=93217&oldid=93216 * Fizzie * (+898) Answered a question, maybe
14:57:26 <esolangs> [[Talk:Xjansk]] https://esolangs.org/w/index.php?diff=93218&oldid=93217 * DanielE * (+139)
15:13:59 -!- eli_oat has quit (Ping timeout: 256 seconds).
15:17:34 -!- eli_oat has joined.
15:33:20 <esolangs> [[Special:Log/newusers]] create * VitalyR * New user account
15:33:40 -!- Sgeo has joined.
15:43:34 -!- ArthurStrong has quit (Remote host closed the connection).
16:18:03 <Sgeo> `olist 1253
16:18:04 <HackEso> olist <https://www.giantitp.com/comics/oots1253.html>: shachaf oerjan Sgeo FireFly boily nortti b_jonas
16:38:27 <riv> https://youtu.be/BstloCx8KDk?t=221 ok this was great
16:44:57 -!- tech_exorcist has quit (Remote host closed the connection).
16:45:25 -!- tech_exorcist has joined.
16:51:20 <esolangs> [[Teramithic]] https://esolangs.org/w/index.php?diff=93219&oldid=93192 * Digital Hunter * (+1022) /* Examples */ added fibonacci and factorial alongside a general-purpose function
16:55:59 <esolangs> [[Teramithic]] M https://esolangs.org/w/index.php?diff=93220&oldid=93219 * Digital Hunter * (+55) /* Fibonacci numbers */
16:58:39 -!- eli_oat has quit (Quit: eli_oat).
17:18:40 <b_jonas> ooh, an olist
17:31:32 -!- definitelya_ has joined.
17:34:31 -!- definitelya has quit (Ping timeout: 256 seconds).
17:37:55 -!- dyeplexer has joined.
17:38:42 <esolangs> [[Gdelang]] https://esolangs.org/w/index.php?diff=93221&oldid=89774 * Kaveh Yousefi * (+458) Added the infinite cat program and the truth-machine as two examples.
17:39:41 <esolangs> [[Gdelang]] https://esolangs.org/w/index.php?diff=93222&oldid=93221 * Kaveh Yousefi * (+168) Added a hyperlink to my implementation of the Gdelang programming language on GitHub and changed the category tag Unimplemented to Implemented.
17:43:11 -!- immibis_ has joined.
17:45:35 -!- immibis has quit (Ping timeout: 256 seconds).
18:31:19 -!- dyeplexer has quit (Remote host closed the connection).
18:38:57 -!- eli_oat has joined.
19:09:48 -!- ArthurStrong has joined.
19:25:57 <esolangs> [[Gdelang]] https://esolangs.org/w/index.php?diff=93223&oldid=93222 * Kaveh Yousefi * (+751) Improved the formatting of the instruction table and extended the description of the interpreter's hyperlink.
19:42:32 -!- Lord_of_Life_ has joined.
19:43:51 -!- Lord_of_Life has quit (Ping timeout: 272 seconds).
19:45:13 -!- chronon has left.
19:45:16 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
19:57:41 -!- eli_oat has quit (Quit: eli_oat).
21:39:50 -!- definitelya_ has quit (Quit: h).
22:22:52 -!- tech_exorcist has quit (Quit: Disconnecting).
23:15:10 <esolangs> [[Teramithic]] M https://esolangs.org/w/index.php?diff=93224&oldid=93220 * Digital Hunter * (+25) /* Examples */
23:41:14 <esolangs> [[Teramithic]] https://esolangs.org/w/index.php?diff=93225&oldid=93224 * Digital Hunter * (+4) /* Reserved characters */ teramithic has comments now because i am losing my sanity
23:43:15 <esolangs> [[Teramithic]] https://esolangs.org/w/index.php?diff=93226&oldid=93225 * Digital Hunter * (+154) /* Blocks and flow control */ comments
←2022-02-17 2022-02-18 2022-02-19→ ↑2022 ↑all