←2016-02-11 2016-02-12 2016-02-13→ ↑2016 ↑all
00:10:23 -!- heroux has quit (Ping timeout: 264 seconds).
00:14:24 -!- Vorpal_ has joined.
00:14:47 -!- glowcoil_ has joined.
00:15:07 -!- p34k has quit (Ping timeout: 240 seconds).
00:15:08 -!- Vorpal has quit (Ping timeout: 240 seconds).
00:15:08 -!- glowcoil has quit (Ping timeout: 240 seconds).
00:15:50 -!- glowcoil_ has changed nick to glowcoil.
00:17:08 -!- heroux has joined.
00:27:43 <oerjan> <izabera> damn it's almost like these names aren't meant to be spelled out loud <-- you just need to be czech hth
00:27:59 <izabera> :)
00:28:20 <oerjan> strcspn is almost the beginning of a well-known czech tongue-twister
00:34:58 <oerjan> `? misle
00:35:01 <HackEgo> misle? ¯\(°​_o)/¯
00:35:32 <oerjan> `learn misle v. intr. "I was misled about morphology."
00:35:36 <HackEgo> Learned 'misle': misle v. intr. "I was misled about morphology."
00:35:44 <oerjan> no wait
00:35:51 <oerjan> `learn misle v. tr. "I was misled about morphology."
00:35:54 <HackEgo> Learned 'misle': misle v. tr. "I was misled about morphology."
00:36:47 -!- heroux has quit (Ping timeout: 264 seconds).
00:36:58 -!- heroux has joined.
00:40:39 <izabera> i'm planning to launch a shitload of short-lived processes
00:40:46 <izabera> how may will take my system down?
00:40:51 <oerjan> 42
00:40:53 <izabera> s/may/many/
00:40:58 <izabera> no seriously
00:41:19 <oerjan> sorry, i cannot do that
00:42:53 -!- lynn has joined.
00:43:09 <izabera> most of these processes will last much less than 1/10s
00:43:46 <izabera> at least, they last less than 1/10s when run alone
00:44:35 <izabera> how does spawning 5000 processes in a second sound?
00:44:50 <int-e> crazy
00:45:47 -!- heroux has quit (Ping timeout: 264 seconds).
00:47:11 <oerjan> @tell boily squee squee squee waves squee squee holes colliding squee squee energy than the light from all the stars in the observable squee!
00:47:11 <lambdabot> Consider it noted.
00:47:38 <int-e> a misle should be a unit of length... to measure bridges perhaps
00:47:55 <izabera> what's a misle in meters?
00:47:58 <oerjan> no, the unit is the misletoe hth
00:48:13 <int-e> izabera: it depends on the isles in question
00:48:48 <int-e> then again we could have mis(si)le silos
00:48:57 <int-e> that word has lots of possibilities.
00:49:22 <izabera> ah a variable lenght
00:49:25 <izabera> like a cubit
00:49:50 <oerjan> a cubit can't be a length, it should clearly be a volume
00:51:39 <int-e> hmm, three-dimensional information
00:52:07 <int-e> maybe the mice would understand that concept
00:53:26 <int-e> Ah of course there's a wiki about this. http://hitchhikers.wikia.com/wiki/Mice
00:54:14 -!- heroux has joined.
01:00:29 * oerjan puts two and two together and realizes there has to be porn wikis
01:00:42 <oerjan> well more like two and 34
01:01:04 <int-e> mindblowing
01:01:40 * oerjan is _not_ doing a search
01:03:23 <int-e> there's always https://www.youtube.com/watch?v=zBDCq6Q8k2E
01:05:46 <\oren\> bernie vs hillary debate in 30 min
01:06:56 <\oren\> wait no 60 min
01:07:03 <\oren\> pre-show in 30
01:07:24 <int-e> I'll read the summaries tomorrow (technically today)
01:20:29 <izabera> hold on i just found what's the most unspeakable function name
01:20:33 <izabera> mbsnrtowcs
01:20:52 <ais523> I'm mentally spelling thatout apart from the "to", which is a single word
01:20:58 <ais523> that said, I spell out "mbs" and "wcs" anyway
01:21:01 <ais523> in all those function names
01:23:31 -!- mihow has quit (Quit: mihow).
01:23:58 <int-e> ah, r = reentrant I suppose.
01:24:00 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:25:57 <ais523> reentrant is normally _r
01:26:08 <ais523> r in the middle typically implies "reverse" but that doesn't seem to make sense in this context
01:27:14 <ais523> I guess it is meant to mean re-entrant here but the man pages are really unclear
01:27:36 -!- lynn has quit (Ping timeout: 256 seconds).
01:27:54 <int-e> well, the version without r lacks the mbstate_t *ps argument
01:28:09 <int-e> (well, without r and n)
01:29:54 <oerjan> izabera: for that function name you'll probably have to pass from czech to georgian hth
01:30:54 <izabera> do you think the ratio #vowels/#consonants is a good metric for this?
01:33:03 <oerjan> (#vowels+1)/#consonants
01:33:21 <izabera> ok
01:33:23 <izabera> why?
01:33:50 <oerjan> or wait
01:34:00 <oerjan> -1
01:34:13 <oerjan> er
01:35:03 <oerjan> thing is, a consonant is easier if it has vowels both before and after
01:35:26 <\oren\> ok, so the pre-show is on, a bunch of people are giving stuttery speeches while trying really herd to be neutral
01:35:36 <izabera> this isn't working
01:35:39 <oerjan> really herd, check
01:35:43 <FireFly> Just do #consonants in aa row?
01:35:52 <FireFly> a row, even
01:35:54 <izabera> will try that
01:36:30 <oerjan> consonants in a row, except that the outermost clusters count double.
01:36:32 <FireFly> Reminds me of the word 'västkustskt' "west-coastian"
01:36:37 <FireFly> which is pretty annoying to pronounce
01:36:49 <FireFly> (due to the stskt consonant cluster)
01:36:50 <izabera> well, define a comparison function
01:37:01 <izabera> right now i'm checking with (vow1-1)/con1 - (vow2-1)/con2
01:37:09 <izabera> it doesn't seem to be a good metric though
01:37:25 <FireFly> what're you writing this in
01:37:29 <izabera> awk
01:37:41 <FireFly> ugh, the one time I wish you were using bash, you aren't
01:37:45 <FireFly> well um
01:37:52 <izabera> can use bash but it's slower
01:38:37 <FireFly> for what oerjan said, I guess one approach would be "split on vowels, map length, multiply edges by two, take maximum"
01:38:45 <FireFly> for both names
01:38:49 <fizzie> Character trigram models are the conventional way of assigning language likelihoods to strings -- I'd guess using them except looking for the lowest possible scores could work somewhat.
01:38:50 <FireFly> ...possibly overkill
01:39:06 <oerjan> of course not all consonants are equal. s is much easier, thus västkustskt
01:39:30 <fizzie> (Under the assumption that languages favor speakable words.)
01:39:31 <int-e> sssssseemssssss likely
01:42:20 <izabera> would it be easier to manually assign values to ngrams?
01:43:16 <oerjan> i mean, i think vätkutkt is actually slightly harder to pronounce than västkustskt
01:43:36 <oerjan> *very* slightly
01:44:11 <oerjan> the final t gets me a bit, it's one step more than norwegian does
01:44:58 -!- tromp_ has quit (Remote host closed the connection).
01:46:21 <fizzie> "User-generated spam detected on http://esolangs.org/"
01:46:22 <oerjan> we drop the -t ending when it gets that complicated, swedish doesn't.
01:46:35 <fizzie> Well, that's a fancy warning, but the page's been deleted for days already.
01:46:52 <oerjan> where do you get that from
01:47:37 <fizzie> It was sent to me after I added esolangs.org as a "property" in the Search Console.
01:47:40 -!- mad has joined.
01:47:50 <mad> damn freenode ## thing
01:48:05 <izabera> `welcome mad
01:48:11 <HackEgo> mad: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/>. (For the other kind of esoterica, try #esoteric on EFnet or DALnet.)
01:48:23 -!- tromp_ has joined.
01:48:24 <izabera> so laggy it doesn't even look like a bot
01:48:32 <mad> heh
01:49:13 <mad> can a cpu be efficient if it can only write a single register per cycle
01:49:22 <izabera> define efficient
01:50:36 <oerjan> *sigh* IE's tab handling has got _worse_ again lately
01:51:12 <mad> 2-4+ instructions per cycle, enough to saturate the data cache's 1-load-per-cycle limit
01:51:33 <oerjan> it's putting the tabs in random places in the group. and sometimes failing to keep neighboring groups distinct colors
01:52:04 <izabera> oerjan: sounds self inflicted
01:52:18 * oerjan inflicts a swat on izabera -----###
01:53:07 <izabera> is ie still developed?
01:53:13 <oerjan> i dunno.
01:53:13 <mad> the cpu can do somewhat complex instuctions
01:53:25 <izabera> i thought all their efforts shifted to the new fancy edge
01:53:32 <izabera> which cures cancer i heard
01:53:57 <mad> stuff like add r0, r1 shr 15 add r2 shr 4 and r28 store r12
01:53:58 <int-e> oh no, how shall I use all those websites that require "IE 6 or later" then?
01:54:06 <mad> (single opcode)
01:54:46 <oerjan> izabera: i tried edge and immediately hated it. then i tried again, and lasted a few hours.
01:54:48 <int-e> [actual requirement from an internal website we use for entering students' grades *sigh*]
01:57:15 <HackEgo> [wiki] [[HaPyLi]] M https://esolangs.org/w/index.php?diff=46395&oldid=40951 * LegionMammal978 * (+13) /* External resources */
01:58:42 <int-e> `? anagram
01:58:47 <HackEgo> anagram? ¯\(°​_o)/¯
02:00:13 <int-e> `le/rn anagram Interestingly, "Robert Galbraith" is *not* an anagram of "J. K. Rowling".
02:00:16 <HackEgo> No output.
02:00:48 <oerjan> doesn't _anybody_ remember syntax any more
02:00:56 <int-e> true.
02:01:00 <izabera> what syntax?
02:01:07 <oerjan> for `le/rn
02:01:11 <int-e> `le/rn anagram/Interestingly, "Robert Galbraith" is *not* an anagram of "J. K. Rowling".
02:01:11 <izabera> ah
02:01:14 <HackEgo> Learned «anagram»
02:01:26 <int-e> but I think it refuses to learn if there's no slash at all
02:01:32 <izabera> that's not that interesting after all
02:01:35 <int-e> `` echo wisdom/anagram*
02:01:36 <HackEgo> wisdom/anagram
02:01:56 <int-e> izabera: wisom is always factually accurate, except when it isn't.
02:02:14 <int-e> `? wisdom
02:02:15 <HackEgo> wisdom is always factually accurate, except for this entry, and uh that other one? it started with like, an ø?
02:02:49 <izabera> uh is that a liar paradox?
02:02:52 <int-e> And I hate to say that I do actually find that fact interesting.
02:03:13 <int-e> s/do actually/actually do/
02:03:48 <int-e> Maybe because I just learned about the former name.
02:03:52 <mad> is wisdom more about truth, or about results in the face of an unscrutable world?
02:04:00 <mad> or is wisdom more about attitude?
02:05:23 <zgrep> `tomfoolery wisdom
02:05:24 <HackEgo> wisdom is tomfoolery
02:05:35 <izabera> that doesn't really answer
02:06:11 -!- heroux has quit (Ping timeout: 264 seconds).
02:06:54 <izabera> `? `?
02:06:55 <HackEgo> ​`? ¯\(°​_o)/¯
02:07:12 <oerjan> `? tomfoolery
02:07:13 <int-e> mad: re: registers... I thought modern CPUs keep most of the register values in flight, keeping track of them by elaborate renaming and shadowing schemes. so I can imagine that retiring just one of those value to a "cold storage" register file might indeed be enough to saturate the L1 memory bandwidth.
02:07:13 <HackEgo> tomfoolery is always factually inaccurate. always.
02:07:25 <izabera> so i just gave up on doing that in awk
02:08:15 <oerjan> `tomfoolery tomfoolery
02:08:16 <HackEgo> tomfoolery is wisdom
02:08:45 <oerjan> and punctuation is dead
02:08:55 * zgrep guiltily holds the knife
02:08:59 <int-e> dead.
02:09:44 <izabera> i'm doing it in brainfuck, won't be much harder than awk
02:09:48 <izabera> stupid awk
02:10:53 <int-e> mad: Obviously there's a "per cycle" missing in that sentence.
02:11:01 -!- heroux has joined.
02:19:01 <mad> int-e : the goal of having a single rename per cycle is to make that register renaming reasier
02:20:04 <mad> I guess the speed penalty depends on the kind of code
02:20:08 <mad> stuff that goes
02:20:38 <mad> val1 += val2; val3 += val4; val5 += val6; val7 += val8;
02:20:45 <mad> will obviously suffer a speed penalty
02:21:00 <mad> versus a 2-issue RISC
02:22:57 -!- XorSwap has joined.
02:23:21 <mad> if the average number of chained alu ops is 2 then this is same speed as 2-issue risc
02:25:19 <mad> if the average number of chained alu ops is 8, then you can build a cpu that can take advantage of this but I don't think irl code has chains that long so there's no point (plus you'd probably need a dual port dcache to run anywhere near that speed)
02:27:51 <mad> with 2 renames per cycle or more you could probably go for a nice amount of IPC but that's probably a way too large design to do as a small project in a fpga
02:30:50 <mad> I guess all of this depends on the type of code your run anyways
02:34:57 -!- jaboja64 has quit (Ping timeout: 240 seconds).
02:45:01 -!- jaboja has joined.
03:04:32 <hppavilion[1]> As an exercise for those attempting to design an instruction set, one of the projects is to demonstrate how you construct macros from a subset of instruction
03:05:08 <hppavilion[1]> To do this, you must construct a fully-fledged ISA using macros based on IMOV (the left-heavy version), SUBI, and SKIZ (skip-if-zero)
03:08:40 <hppavilion[1]> for some reason, I'm designing a video game console named RAX
03:16:09 <mad> ooh
03:16:16 <mad> 2d? 3d?
03:21:40 -!- lleu has quit (Quit: That's what she said).
03:23:11 <hppavilion[1]> mad: ?
03:23:18 <hppavilion[1]> mad: Ah, not sure yet
03:23:24 <hppavilion[1]> It'll probably evolve over time
03:39:48 -!- MDude has changed nick to MDream.
04:00:55 <mad> I'm interested in how to design the gfx hw
04:01:16 <mad> there are many approaches and I've always wondered if there was some better way
04:01:22 <hppavilion[1]> mad: Perhaps there is
04:03:23 <mad> there are, roughly speaking, two approaches
04:05:18 <mad> frame-buffer based, and rendering line per line (nes/genesis/snes/etc)
04:05:32 * hppavilion[1] nods
04:06:32 <hppavilion[1]> mad: What kinds of opcodes do you think would go into an esoteric ALU?
04:06:39 <mad> hmmmmmmmm
04:06:43 <hppavilion[1]> For research purposes
04:06:50 <mad> hmmmmmmmmmmmmmmmm
04:06:53 <hppavilion[1]> And practice
04:06:57 <mad> that's a hard question
04:07:16 <hppavilion[1]> mad: Problem is, there are too many esoteric opcodes already, I guess xD
04:07:34 <mad> how about "store to ram except if the value is 0"
04:07:40 <mad> ok that's not really ALU
04:07:53 <mad> "reverse byte order"
04:07:57 <hppavilion[1]> Perhaps that
04:08:46 <mad> "r3 = (r2 >> 16) + (r1 << 16)"
04:08:50 <hppavilion[1]> mad: I think an esoteric processor would either use a deque model w/ 4 or 8 auxiliary registers (no absolute addressing, you have to roll the deque to get to where you want) or a graph model (as seen in graph VM)
04:08:53 <mad> "r3 = (r2 >> 24) + (r1 << 8)"
04:08:55 <hppavilion[1]> mad: Basically, yes
04:09:00 <hppavilion[1]> Though I think you mean |, not +
04:09:17 <hppavilion[1]> Unless you do mean + 0_o
04:09:32 <mad> they have the same result
04:09:33 <hppavilion[1]> `? somethingthatdoesnotexist
04:09:41 <HackEgo> somethingthatdoesnotexist? ¯\(°​_o)/¯
04:09:47 <hppavilion[1]> °​_o
04:09:54 <mad> in hw it would be |
04:10:01 <hppavilion[1]> What's hw?
04:10:05 <hppavilion[1]> homework?
04:10:08 <hppavilion[1]> xD
04:11:02 <hppavilion[1]> mad: So which do you think makes for a more eso CPU? Graph or deque?
04:11:07 <hppavilion[1]> My money's on graph.
04:11:11 <mad> hmm
04:11:23 <mad> depend on how esoteric you want to be
04:11:29 <hppavilion[1]> But deque is more practical, but then again, that isn't the goal
04:11:31 <mad> and what goal you're after
04:11:48 <hppavilion[1]> mad: The graph has a call stack associated with the pointer... so I guess I could replace that with the deque model
04:12:20 <hppavilion[1]> But that makes the call stack (now-deque) too powerful, almost TC on its own...
04:12:25 <mad> how about:
04:12:33 -!- XorSwap has quit (Quit: Leaving).
04:13:09 <mad> a cpu where the only addressing mode is [address register + small immediate * 4]
04:13:23 <mad> with small immediate range being 0..15 or 0..7
04:13:33 <hppavilion[1]> mad: Perhaps, but I'm going for something completely foreign
04:13:34 <mad> but then you can have opcode
04:13:46 <mad> add r0, [a0 + 12]
04:14:19 <hppavilion[1]> OK...
04:14:33 <mad> except it doesn't actually read from ram since it fills registers with values [a0 + 0] [a0 + 4] [a0 + 8]... [a0 + 60] when setting a0
04:15:27 <hppavilion[1]> mad: That's more of a jumbly processor than a truly esoteric processor, IMHO
04:15:44 <hppavilion[1]> Just something a bit confusing and irrational to work with, not so much new and unconventional
04:16:06 <mad> yeah I guess that's more a speed experiment
04:16:15 <hppavilion[1]> More of a Malbolge than a Befunge
04:16:32 <mad> "are memory loads so important that caching everything possible could speed up things"
04:16:45 <mad> well
04:16:58 <mad> to get a truly esoteric cpu you'd need to go without DRAM
04:17:07 <mad> if you have DRAM you'll end up with a mips
04:17:38 <mad> or if you're really twisted, an itanium or a mills
04:17:41 <hppavilion[1]> mad: I think I'll go with the graph xD
04:17:55 <hppavilion[1]> It's a digraph with a pointer and a stack
04:18:34 -!- jaboja has quit (Ping timeout: 250 seconds).
04:19:43 <mad> mhm
04:31:11 -!- ais523 has quit (Ping timeout: 245 seconds).
04:48:46 -!- hppavilion[1] has quit (Ping timeout: 256 seconds).
04:54:00 <\oren\> well, hillary got rekt
04:54:25 <\oren\> at least, according to internet polls
05:00:02 -!- perrier__ has quit (Remote host closed the connection).
05:01:19 -!- perrier_ has joined.
05:10:34 -!- shikhin has quit (Ping timeout: 250 seconds).
05:10:55 -!- Xe has quit (Ping timeout: 240 seconds).
05:12:27 -!- Xe has joined.
05:15:38 -!- shikhin has joined.
05:16:36 -!- vodkode has quit (Remote host closed the connection).
05:30:07 -!- lynn has joined.
06:00:51 <\oren\> wow henry kissinger is an asshole who I had barely heard of until now
06:01:36 <mad> oh yeah kissinger is a classic asshole
06:02:34 <\oren\> i bet millions of people my age are reading the wiki article on him
06:03:29 <mad> what happened?
06:04:25 <\oren\> Hillary said she took advice from him, and bernie repudiated her pointing out his responsibility for deaths of 100's of thousands in cambodia
06:05:00 <\oren\> "if they put Jews into gas chambers in the Soviet Union, it is not an American concern. Maybe a humanitarian concern." -- Henry Kissinger. WHAT THE FUCK
06:05:09 <\oren\> yeah maybe.
06:05:34 <lifthrasiir> during the vacation (national holiday, oh great) I've crafted the first iteration of GSUB support
06:05:37 <lifthrasiir> in my font
06:05:53 <lifthrasiir> it was freakin hard to design
06:06:21 <lifthrasiir> probably I have to iterate handful times to get things right
06:06:33 <\oren\> nice
06:06:41 <mad> yeah I think normally when people talk about kissinger they tread the line of not praise not outright condemnation
06:06:42 <lifthrasiir> I'm yet to check GPOS out though
06:07:00 <lifthrasiir> I do have some infrastructure for automatic mark combination, but it is not yet reflected in the font
06:07:07 <\oren\> I have been procrastinating on my font lately
06:07:10 <mad> kindof like chinese talking about mao
06:07:13 <lifthrasiir> \oren\: me too :p
06:07:35 <lifthrasiir> now I have to tackle the Uniscribe rendering problem, again
06:07:40 <mad> kissinger was an asshole but he was a powerful asshole
06:08:27 <mad> ""Kissinger pressed Nixon to overthrow the democratically elected Allende government because his "'model' effect can be insidious," documents show""
06:09:11 <mad> http://www.thenation.com/article/kissinger-and-pinochet/
06:27:00 -!- tromp_ has quit (Remote host closed the connection).
06:27:22 -!- singingb1yo has quit (Ping timeout: 256 seconds).
06:38:34 -!- J_Arcane has quit (Ping timeout: 276 seconds).
06:43:34 -!- vodkode has joined.
06:53:31 <\oren\> http://gawker.com/moderator-accidentally-whispers-oh-god-into-mic-when-1758651605
06:58:39 -!- hppavilion[1] has joined.
07:12:52 <b_jonas> WTF. you know how linux and gcc and like five other software has had a version number format shift (where the components of the version number now means one place higher than it used to). these disgust me. now it seems that OpenCV has followed suit starting from 3.0.
07:25:23 -!- heroux has quit (Ping timeout: 264 seconds).
07:25:57 -!- heroux has joined.
07:27:36 -!- tromp_ has joined.
07:32:35 -!- tromp_ has quit (Ping timeout: 264 seconds).
07:49:40 <hppavilion[1]> Wikipedia lists paper as a form of non-volatile computer memory
07:57:22 -!- AnotherTest has joined.
08:02:41 <hppavilion[1]> IMHO, we should flesh out the concept of NOP
08:02:45 <hppavilion[1]> For example, NOPIZ
08:02:52 <izabera> b_jonas: ksh versions are the worst
08:03:03 <hppavilion[1]> (Do Nothing n times if register at r is zero)
08:03:04 <izabera> the current beta is ksh93v-
08:03:12 <hppavilion[1]> NOPIZ r n
08:03:48 <izabera> where 93 means 1993 and v is a version letter and - could be + or a handful other symbols to mean which parts are enabled
08:03:52 <lifthrasiir> hppavilion[1]: so what happens if r is non-zero? nothing?
08:04:06 <hppavilion[1]> lifthrasiir: Yes.
08:04:14 <hppavilion[1]> lifthrasiir: But that nothing takes less time.
08:04:22 <izabera> still called after 1993 even if it was released in 2014
08:04:38 <hppavilion[1]> So if r is non-zero, then it takes less processor ticks than if r is zero
08:04:44 <lifthrasiir> hppavilion[1]: I believe NOPWNE a b (Do Nothing While a And b Are Not Equal) may be much more useful
08:04:55 <lifthrasiir> aka CHLTNE
08:04:58 <hppavilion[1]> lifthrasiir: So WAIT?
08:05:03 <lifthrasiir> possibly.
08:05:35 <hppavilion[1]> lifthrasiir: Do you agree that #esoteric should team up to make the ultimate ISA?
08:05:56 <lifthrasiir> I HAVE ONE. DO NOT CONTEST THAT.
08:06:31 <lifthrasiir> (well, I do have a VM ISA design for personal use)
08:06:49 <hppavilion[1]> lifthrasiir: Would you like to look over my ELK VM?
08:06:55 <hppavilion[1]> Tell me what I did horribly wrong?
08:06:57 <lifthrasiir> what is that?
08:07:06 <hppavilion[1]> lifthrasiir: It's just a VM inspired by .NET
08:07:09 <hppavilion[1]> Vaguely
08:07:10 <lifthrasiir> I think I did the equally horrible thing in my VM
08:07:30 <hppavilion[1]> ("If you give me that apple I'll let you paint this fence")
08:08:25 <lifthrasiir> hppavilion[1]: https://gist.github.com/lifthrasiir/1994b24877b41c8b169e#file-opcodes-txt
08:08:27 <hppavilion[1]> lifthrasiir: What's that?
08:08:33 <hppavilion[1]> Reading now
08:08:51 <lifthrasiir> that was my design some years ago
08:09:11 <lifthrasiir> I intended to make a bootstrapped language out of them, but my interest dropped
08:10:26 <lifthrasiir> my goal was a usable VM in the small number of LoC (my goal was ~5K) while being reasonably fast
08:10:35 <lifthrasiir> hence the "vectorized" instructions
08:11:05 <lifthrasiir> (I didn't really test if it is useful, but the intent was to leverage compiler's autovectorization)
08:15:32 -!- MoALTz has quit (Ping timeout: 248 seconds).
08:21:20 <hppavilion[1]> lifthrasiir: For the console I'm making, I have 3 modes for addresses: integer literal, address reference, indirection.
08:21:38 <hppavilion[1]> Since it's determined by a crumb, I have one space left. What should go in it?
08:21:53 <hppavilion[1]> I don't like double indirection; it almost seems... tacky
08:22:18 <lifthrasiir> hppavilion[1]: does your ISA have a concept of register?
08:22:26 <hppavilion[1]> lifthrasiir: Yes
08:22:36 <lifthrasiir> then should that be a register reference?
08:22:38 <hppavilion[1]> That's what it is; register indirection
08:22:42 <lifthrasiir> ah
08:22:56 <hppavilion[1]> lifthrasiir: "address reference" means "register reference"
08:23:00 <lifthrasiir> I think it is more commonly called just a register?
08:23:03 <lifthrasiir> uh, wait
08:23:06 -!- mad has quit (Quit: Pics or it didn't happen).
08:23:07 <hppavilion[1]> It's a "[register] address"
08:23:33 <hppavilion[1]> lifthrasiir: Perhaps that mode should be for accessing from memory?
08:23:35 <lifthrasiir> hppavilion[1]: so... there are three kinds of operands: int, reg[int] and mem[int], right?
08:23:52 <hppavilion[1]> lifthrasiir: int, reg[int], and reg[reg[int]]
08:23:56 <lifthrasiir> what.
08:23:57 <hppavilion[1]> mem[int] sounds good.
08:24:08 <lifthrasiir> okay, that's where I was confused
08:24:08 <hppavilion[1]> lifthrasiir: reg[reg[int]] is for indirection
08:24:18 <hppavilion[1]> because reg[int] is just normal
08:24:22 <hppavilion[1]> SET is reg[int] = int
08:24:28 <hppavilion[1]> MOV is reg[int] = reg[int]
08:24:42 <lifthrasiir> if you don't pursue RISC strictly, mem[int] *can* be useful
08:25:05 <hppavilion[1]> So IMOVL is reg[reg[int]] = reg[int], IMOVR is reg[int] = reg[reg[int]], and IMOVB is reg[reg[int]] = reg[reg[int]]
08:25:09 <hppavilion[1]> At least, in theory
08:25:14 <lifthrasiir> hppavilion[1]: ah, wait, did you mean mem[reg[int]] when you said reg[reg[int]]?
08:25:31 <hppavilion[1]> lifthrasiir: No.
08:25:38 <lifthrasiir> what?
08:25:40 <hppavilion[1]> lifthrasiir: I meant reg[reg[int]]
08:25:50 <hppavilion[1]> lifthrasiir: That's how you do indirection, AFAICT
08:26:02 <lifthrasiir> uh, normally "indirection" does not mean such thing
08:26:10 <hppavilion[1]> Oh, them I'm an idiot
08:26:17 <hppavilion[1]> The point is that it's a pointer
08:26:21 <lifthrasiir> mem[reg[int]] is commonly called an indirection and mem[mem[reg[int]]] is called a double indirection AFAIK
08:26:45 <hppavilion[1]> so IMOVL x y is the same as y = *x in C
08:26:50 <hppavilion[1]> lifthrasiir: Oh
08:27:13 <hppavilion[1]> lifthrasiir: So should I get rid of it? It seems like it'd be useful
08:28:37 <lifthrasiir> hppavilion[1]: do you have a concrete example where it is useful? I cannot easily think of them, unless you have tons of registers (some order of 1000s)
08:29:16 <hppavilion[1]> lifthrasiir: See, I'm clueless. Until now, I didn't completely realize you didn't have 2**64 registers
08:29:30 <hppavilion[1]> lifthrasiir: So that's what I've been designing my VMs to do
08:29:34 <hppavilion[1]> (Using a map, of course)
08:30:06 <hppavilion[1]> lifthrasiir: But it's useful if you want to store a register address in another register
08:30:39 <myname> looool
08:30:55 <myname> 2**64 registers would result in HUGE cpus
08:31:05 <myname> and most of them would be horribly slow
08:31:10 <hppavilion[1]> myname: Yes, I realize that now
08:31:34 <myname> amd64 has like 15 multi-purpose registers
08:31:36 <hppavilion[1]> myname: Of course, in my mind, we didn't REALLY have 2**64; we just had a max of 2**64
08:31:39 <hppavilion[1]> Ah
08:31:42 <myname> which is plenty for most tasks
08:31:45 <hppavilion[1]> See, that makes more sense
08:32:02 <myname> there are r8 to r15
08:32:10 <hppavilion[1]> myname: I think I've been confusing "register" with "memory address" this whole time
08:32:18 <myname> and some special shit that is basically extended from 8 bit onwards
08:32:28 <myname> like rax, rbx, rcx, rdx
08:32:52 <b_jonas> it's rax, rcx, rdx, rbx. they're not in alphabetical order.
08:33:09 <hppavilion[1]> myname: So I take it I should replace regs[regs[int]] with mem[regs[int]]?
08:33:26 <myname> yeah
08:33:32 <hppavilion[1]> myname: And what should I fill the last slot with?
08:33:33 <b_jonas> and not all four of those have been extended from the 8 bit days, some of those are from the 16 bit days
08:33:34 <myname> b_jonas: weöö, yeah
08:33:47 <myname> at least a has
08:33:54 <hppavilion[1]> Perhaps mem[int] would work?
08:33:55 <oerjan> <izabera> still called after 1993 even if it was released in 2014 <-- https://en.wikipedia.org/wiki/Eternal_September
08:34:11 <izabera> waaa
08:34:13 <myname> it does
08:34:45 <b_jonas> the 8 bit days only had the equivalent of al (A), cx and dx (CD and EF in some order), bx (LH), si and di (IX and IY), and sp (SP). it definitely didn't have all four of ax, cx, dx, bx
08:35:13 <b_jonas> and even those are only rough equivalence, there's no binary compatibility of any sort
08:35:21 <myname> huh, why was a always adressable to 8 bits and c and d aren't?
08:36:13 <b_jonas> argh, typo
08:36:25 <b_jonas> the 8 bit days only had the equivalent of al (A), cx and dx (BC and DE in some order), bx (LH), si and di (IX and IY), and sp (SP).
08:36:47 <myname> assambly <3
08:37:02 <hppavilion[1]> myname: Should I make the last addressing mode double indirection then?
08:37:04 <b_jonas> myname: basically, the z80 had seven general purpose registers, plus a virtual one: B, C, D, E, L, H, A, [LH] (memory access through LH), not in this order
08:37:26 <b_jonas> myname: but it also had some 16 bit instructions on the pairs BC, DE, LH
08:37:53 <b_jonas> plus (in the more feature-complete variants of the cpu) two extra 16-bit registers IX and IY which could replace LH in many instructions using a prefix
08:38:21 <myname> well, you still have the rax/rcx pair for division for example
08:38:22 <b_jonas> also a stack pointer and an 8-bit flags register that is the predecessor of the low half of the x86 flags register
08:38:58 <myname> nasm was compiling div 2^n into shr rax, n
08:39:01 <hppavilion[1]> lifthrasiir: Should I use double indirection (the real meaning) for the last slot?
08:39:01 <b_jonas> myname: division? in the 8-bit era? no way. and rax/rcx was never a pair, only rdx/rax was (rdx being the high one)
08:39:07 <myname> which resulted in funny behavior
08:39:22 <myname> 2^64 / 4 = 0
08:39:30 <myname> 2^64 mod 4 = 1
08:39:41 <myname> yeah
08:39:43 <myname> rdx it os
08:40:00 <hppavilion[1]> myname: At least it didn't put it in /reg/null
08:40:26 * hppavilion[1] just made a joke that is so bad it doesn't even make any brainfucking sense
08:43:25 <b_jonas> the correspondence doesn't really work anyway. the z80 has the full set of arithmetic instructions only on A as the destination, and a very small random selection of 16-bit arithmetic that doesn't use A at all. whereas, the x86_16 has the full set of arithmetic on each of the 8-bit registers AL, AH, CL, CH, DL, DH, BL, BH but some abbreviated ones on AL, and the full-set of 16-bit arithmetic on all eight general registers, but a few short ones on AX
08:43:48 <b_jonas> \ whereas, the x86_16 has the full set of arithmetic on each of the 8-bit registers AL, AH, CL, CH, DL, DH, BL, BH but some abbreviated ones on AL, and the full-set of 16-bit arithmetic on all eight general registers, but a few short ones on AX
08:44:25 <b_jonas> So it's not really like the x86_16 bx corresponds to the z80 HL completely, but it's still the closest match you can make
08:44:46 <lifthrasiir> hppavilion[1]: it may or may not be useful, probably depending on your intended use cases
08:44:58 -!- oerjan has quit (Quit: Nite).
08:45:08 <lifthrasiir> hppavilion[1]: you may want to poke https://en.wikipedia.org/wiki/Addressing_mode around
08:45:19 <hppavilion[1]> lifthrasiir: The choice is between mem[int] and mem[mem[reg[int]]]
08:45:50 <lifthrasiir> mem[int] requires you to have a separate word for the memory address (since memory is typically much larger than register)
08:46:09 <lifthrasiir> if your coding allows such thing easily, it may be a good choice
08:46:12 <hppavilion[1]> lifthrasiir: Ah
08:47:45 <lifthrasiir> for example, in x86 you may have reg[int], mem[int] or mem[int * reg[int] + int]
08:48:21 <lifthrasiir> "int"s here can be coded in multiple ways
08:48:31 <b_jonas> lifthrasiir: that's a different generation again, that's x86_32 and x86_64
08:48:38 <b_jonas> it's not x86_16
08:48:56 <b_jonas> x86_16 has a very different set of memory addressing modes
08:49:16 <lifthrasiir> b_jonas: you are right. and I think that it is actually mem[reg[int] + int * reg[int] + int] with different constraints for each ints. I'm a bit simplifying the matter though
08:49:40 <lifthrasiir> oh and x86_64 has rip-relative addressing too
08:50:29 <b_jonas> basically [{0, disp8, disp16} + {BX, SI, DI, BP, BX+SI, BX+DI, BP+SI, BP+DI}] except that there's not [0+BP] but instead there's [disp16] and that the modes involving BP have an implicit but overridable SS segment base (the rest are DS-based)
08:51:03 <b_jonas> plus stack 16-bit PUSH operations which pre-decrement or post-increment SP
08:51:19 <b_jonas> (and are based on SS)
08:51:35 -!- J_Arcane has joined.
08:52:26 -!- hppavilion[1] has quit (Ping timeout: 256 seconds).
08:53:11 -!- evalj has joined.
08:55:43 -!- evalj has quit (Remote host closed the connection).
09:07:09 -!- Treio has joined.
09:28:18 -!- tromp_ has joined.
09:32:26 -!- tromp_ has quit (Ping timeout: 240 seconds).
10:13:42 <fizzie> Aw, you can't put a segment override on push/pop. :/
10:14:05 <fizzie> ("The following default segment selections cannot be overridden: -- Push and pop operations must always reference the SS segment.")
10:25:59 -!- heroux has quit (Ping timeout: 264 seconds).
10:26:32 -!- heroux has joined.
10:29:01 -!- tromp_ has joined.
10:33:24 -!- tromp_ has quit (Ping timeout: 250 seconds).
11:08:52 -!- heroux has quit (Ping timeout: 248 seconds).
11:17:27 -!- heroux has joined.
11:26:28 -!- \oren\ has quit (Ping timeout: 248 seconds).
11:27:17 -!- \oren\ has joined.
11:33:41 -!- J_Arcane has quit (Ping timeout: 276 seconds).
11:36:43 -!- boily has joined.
11:36:51 <boily> @massages-loud
11:36:51 <lambdabot> oerjan said 10h 49m 40s ago: squee squee squee waves squee squee holes colliding squee squee energy than the light from all the stars in the observable squee!
11:37:09 <boily> @tell oerjan LET'S DO THE GRAVITATIONAL WAVE! WOOOOOOOOOOO!
11:37:10 <lambdabot> Consider it noted.
11:49:24 -!- heroux has quit (Ping timeout: 248 seconds).
12:02:47 -!- heroux has joined.
12:09:45 <boily> @metar CYUL
12:09:46 <lambdabot> CYUL 121200Z 25006KT 30SM FEW008 FEW035 FEW080 SCT210 M19/M23 A3012 RMK CF1SC1AC1CI1 CF TR FROIN SLP203
12:19:29 <boily> FROIN?
12:19:44 -!- boily has quit (Quit: CLEAR CHICKEN).
12:26:08 <Taneb> I think COMPLEX is sufficiently powerful to simulate any Minsky Machine, and hence is Turing complete
12:26:12 <Taneb> But it's a narrow thing
12:30:15 -!- hppavilion[1] has joined.
12:44:35 -!- heroux has quit (Ping timeout: 240 seconds).
12:47:18 -!- heroux has joined.
13:30:20 -!- tromp_ has joined.
13:34:46 -!- tromp_ has quit (Ping timeout: 252 seconds).
13:41:33 -!- jaboja has joined.
13:51:06 <izabera> how do you prove that saying whether a brainfuck program never tries to access the left side of the tape is undecidable?
13:52:06 <izabera> something like program = P< if P never moves the pointer and it halts, that program accesses the left side, if it doesn't halt that program doesn't access it?
13:53:15 <int-e> izabera: how deep do you want to go down the rabbit hole? you could just simulate a turing machine and start walking to the left indefinitely when it halts, thereby reducing it from the halting problem...
13:53:56 <izabera> ah so it's P[-]+[<[-]+]
13:53:57 <Taneb> izabera, you can construct a brainfuck program that reads a turing machine off the tape, and goes of the left if and only if the turing machine halts
13:54:56 * izabera was close
14:21:31 -!- j-bot has joined.
14:28:44 -!- jaboja has quit (Ping timeout: 272 seconds).
14:31:45 -!- tromp_ has joined.
14:36:11 -!- tromp_ has quit (Ping timeout: 264 seconds).
14:40:05 -!- jaboja has joined.
14:53:53 -!- heroux has quit (Ping timeout: 276 seconds).
14:57:33 -!- lleu has joined.
14:57:33 -!- lleu has quit (Changing host).
14:57:33 -!- lleu has joined.
15:06:06 -!- heroux has joined.
15:26:37 -!- jdoan105 has joined.
15:26:48 -!- jdoan105 has left.
15:27:06 -!- jaboja has quit (Ping timeout: 240 seconds).
16:08:09 -!- Sprocklem has joined.
16:10:26 -!- Sprocklem_ has quit (Ping timeout: 240 seconds).
16:17:14 -!- spiette has joined.
16:23:41 <izabera> `genbf
16:23:42 <HackEgo> ​>-.>.[-.-]<--,..<[-.,--,<[[.].[+,+<<-,>>,->]]]-,+-
16:23:56 <izabera> `genbf 70
16:23:58 <HackEgo> ​[]<[>+<+<.>,.>>>->>,><<.,[[]].<<.>[<[..++]-].]-+-[[-]-++,,->>].>[<,>]>
16:24:10 -!- heroux has quit (Ping timeout: 252 seconds).
16:24:29 -!- heroux has joined.
16:24:42 <izabera> and the crowd goes mild
16:33:59 -!- lleu has quit (Read error: Connection reset by peer).
16:34:29 <b_jonas> that's not even real bf code
16:34:39 <b_jonas> come on, it starts with []<
16:34:49 <izabera> valid
16:34:54 <izabera> sorta
16:34:57 <izabera> well
16:35:14 <b_jonas> it falls off the tape at the third step
16:35:28 <izabera> valid if the tape is unbounded both ways :p
16:35:30 <b_jonas> [] is a nop because the current cell is 0
16:37:18 <fizzie> Or wrapping.
16:40:39 <izabera> i have an idea
16:40:47 <izabera> generate 1000 valid bf programs
16:40:51 <izabera> without ,
16:41:12 <izabera> valid just means balanced [ ]
16:41:30 <izabera> ok then you run these programs
16:41:40 <izabera> with a timeout of say 1 second
16:42:31 <izabera> then we take their outputs, and compare them against ABCDEFGH...Z
16:43:06 <izabera> discard the 500 programs that produced the farthest output from that
16:43:39 <izabera> then take the rest and make children
16:44:26 <int-e> ... that's very unusual foreplay
16:44:32 <izabera> haha
16:44:55 <izabera> make children by taking two programs and for each character you randomly choose parent1 or parent2 or a random character
16:45:24 <izabera> with a 90% chance of coming from one of the parents
16:45:48 <izabera> discard invalid programs, repeat until you have a pool of 1000 programs
16:46:08 <izabera> then run the new ones, same rules
16:46:25 <izabera> repeat until one produces that exact string
16:46:51 <int-e> I know vaguely what genetic programming is. But it was funnier to read it that other way,
16:47:47 <fizzie> bf_textgen works like that, except it breeds a very limited subset of bf programs.
16:47:57 <izabera> OH COME ON
16:48:01 <izabera> stop this
16:48:10 <izabera> every single idea i have is taken
16:48:13 <izabera> fuck this world
16:48:24 -!- tromp_ has joined.
16:48:24 <fizzie> Well, I mean. It's a very very limited subset.
16:49:05 <izabera> `` type bf_textgen
16:49:07 <HackEgo> bash: line 0: type: bf_textgen: not found
16:49:09 <int-e> izabera: sorry, that's just how it is. for every original idea there's at least a a thousand that other people have had before.
16:49:21 <fizzie> I forget how to invoke it, it used to be in EgoBot.
16:49:28 <izabera> found old logs
16:49:32 <izabera> http://codu.org/logs/_esoteric/2012-08-29.txt
16:49:37 <izabera> !bf_textgen Hi.
16:49:51 <int-e> `prefixes
16:49:52 <HackEgo> Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , blsqbot !
16:50:02 <fizzie> https://github.com/graue/esofiles/blob/master/brainfuck/util/textgen.java has the sources, anyway.
16:51:20 <int-e> @bf ++++[>+<++++]>+[+.]
16:51:20 <lambdabot> ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
16:52:46 -!- tromp_ has quit (Ping timeout: 252 seconds).
16:52:59 -!- heroux has quit (Ping timeout: 264 seconds).
16:53:09 -!- idris-bot has joined.
16:54:08 <fizzie> Very printable.
16:54:18 <fizzie> ^bf ++++[>+<++++]>+[+.]
16:54:18 <fungot> ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
16:54:22 <fizzie> Somewhat less so.
16:54:23 -!- MoALTz has joined.
16:54:28 <int-e> yes, lambdabot filters its output
16:56:05 <int-e> in any case, how's the genetic programming approach supposed to leap from that local optimum to a program that truncates the output after 26 characters?
16:57:28 <int-e> ^bf +++++[>+++++<-]++++[>>+<<++++]>+[>++.-<-]
16:57:28 <fungot> ABCDEFGHIJKLMNOPQRSTUVWXYZ
16:58:49 <izabera> is that as small as possible?
16:59:01 <int-e> I wouldn't bet on it
16:59:16 <izabera> well let me write this thing
16:59:51 <int-e> for example there is this crazy code for producing 26: >++[[+<]>+>++]<-
17:00:33 <int-e> (from https://esolangs.org/wiki/Brainfuck_constants)
17:01:31 -!- heroux has joined.
17:01:45 <int-e> ^bf >++[[+<]>+>++]++++[>+<++++]<-[>>++.-<<-]
17:01:45 <fungot> ABCDEFGHIJKLMNOPQRSTUVWXYZ
17:05:06 -!- p34k has joined.
17:06:07 -!- zzo38 has joined.
17:07:38 <izabera> so that bf_textgen thing produces this ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
17:07:46 <izabera> ^bf ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
17:07:46 <fungot> Hello World!.
17:08:01 <izabera> @bf ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
17:08:01 <lambdabot> Hello World!
17:08:16 <izabera> then loops forever
17:08:49 <izabera> ^bf ++++++++[>++++++++>>><<<<-]>+.+.+.+.
17:08:49 <fungot> ABCD
17:09:09 <izabera> could be improved though.......
17:09:51 <myname> wtf >>><<<<?
17:09:57 <myname> like... <?
17:10:10 <izabera> yes
17:13:58 <izabera> ^bf +++++++++++++[>++++++++>+++++++++>+++++++++>++++<<<<-]>.>>-..----.>++++++.-----------..<----------.<--.>.-.>-.<<----.+++.>++.>+.<<<-----.--.>-----.+++.<.++++++++.>>.<--.+++++.>>.<<<.+++.+++.>+++.>--.+.<---.>>.+++.--.+.+++++.
17:13:59 <fungot> http://fsfe.org/campaigns/ilovefs/2016
17:14:34 -!- heroux has quit (Ping timeout: 240 seconds).
17:15:39 <int-e> ^bf -[+[>+<<]>+]+++++[<+++++>-]<+[>>++.-<-]
17:15:39 <fungot> B
17:16:05 <int-e> ^bf -[+[>+<<]>+]<[-]>+++++[<+++++>-]<+[>>++.-<-]
17:16:05 <fungot> B
17:16:13 <int-e> ah, stupid.
17:16:17 <int-e> ^bf -[+[>+<<]>+]+++++[<+++++>-]<+[>>++.-<<-]
17:16:17 <fungot> BCDEFGHIJKLMNOPQRSTUVWXYZ[
17:16:29 <int-e> ^bf -[+[>+<<]>+]+++++[<+++++>-]<+[>>+.<<-]
17:16:29 <fungot> ABCDEFGHIJKLMNOPQRSTUVWXYZ
17:18:07 * izabera is a noob and loops that move the pointer are too hard
17:18:24 <int-e> ^bf -[+[>+<<]>+]<+++++[>+++++<-]>+[>+.<-]
17:18:24 <fungot> ABCDEFGHIJKLMNOPQRSTUVWXYZ
17:18:42 <izabera> are you writing these yourself or...?
17:18:44 <int-e> izabera: I copied that imbalanced part from the brainfuck constants page as well
17:19:01 <izabera> well i'm disappointed >.>
17:19:05 <int-e> "64: -[+[>+<<]>+]> (13, 4) wrapping"
17:19:43 <izabera> how do you compute the distance in this case?
17:20:05 <izabera> like ABCD and ABCE are much closer than ABCD and ABCZ
17:22:00 <int-e> Anyway, that's 37 characters; I still wouldn't want to bet that there isn't something shorter, but I think I collected the low-hanging fruits.
17:22:15 <izabera> :)
17:22:22 -!- jaboja has joined.
17:27:42 -!- heroux has joined.
17:28:00 <izabera> "Just use the hashtag #ilovefs on GnuSocial, Twitter, or other platforms."
17:28:08 <izabera> OTHER PLATFORMS
17:28:24 <izabera> the platform-that-shall-not-be-named
17:28:54 <int-e> myspace?
17:29:05 <izabera> ah yes that one
17:29:42 <int-e> I mean is there anything else now that Google+ is pretty much dead :P
17:31:23 <int-e> (much to my disappointment, one of the webcomics I read is currently not publishing on its wordpress blog but only on that-unnnamable-platform... so I'm missing out now)
17:32:02 -!- Reece` has joined.
17:32:08 <izabera> what do you need other platforms for? we've got gnu social
17:32:56 <int-e> fwiw this is actually the first time I heard about GnuSocial, well as far as I remember.
17:33:12 <int-e> (so I may have heard of it and forgotten... it happens)
17:33:24 <izabera> you're getting old
17:33:39 <int-e> that too
17:38:55 -!- Reece` has quit (Quit: Leaving).
17:39:21 -!- Reece` has joined.
17:41:10 -!- heroux has quit (Ping timeout: 252 seconds).
17:41:22 -!- heroux has joined.
17:42:38 <izabera> http://www.cupidsundierun.com/ and then there's this
17:42:50 <izabera> which sounds more fun than the fsf event
17:47:22 -!- lynn has quit (Ping timeout: 256 seconds).
17:48:21 <shachaf> `olist 1023
17:48:26 <HackEgo> olist 1023: shachaf oerjan Sgeo FireFly boily nortti b_jonas
17:50:38 -!- Reece` has quit (Quit: Leaving).
17:51:15 -!- Reece` has joined.
17:56:35 -!- heroux has quit (Ping timeout: 264 seconds).
18:09:12 -!- heroux has joined.
18:19:06 -!- hppavilion[1] has quit (Ping timeout: 256 seconds).
18:21:11 -!- heroux has quit (Ping timeout: 264 seconds).
18:33:36 -!- heroux has joined.
18:35:07 <b_jonas> shachaf: thanks
18:36:25 <zzo38> How do I make a program in Linux to be allow to bind to the specified port number for listening?
18:38:28 <b_jonas> zzo38: um, what exactly do you mean? can't you just call bind on the socket? or do you want to bind to a low port number as non-root?
18:38:48 <b_jonas> zzo38: if the latter, I suggest an inetd program
18:38:55 <b_jonas> that might help anyway, even for non-low ports
18:39:18 <zzo38> I want to do it temporarily though rather than as a daemon program
18:39:36 -!- bb010g has joined.
18:39:43 <b_jonas> zzo38: inetd helps there, because it's one process running, and you can make it run your program only when necessary
18:40:06 <b_jonas> there are multiple inetd programs with different feature sets, but I think any should work for this
18:40:20 -!- Reece` has quit (Quit: Leaving).
18:40:49 -!- Reece` has joined.
18:41:13 -!- Reece` has quit (Remote host closed the connection).
18:41:15 <zzo38> In my case I am trying to run an existing program that binds to port 25 and do not want to rewrite it.
18:41:22 -!- MDream has changed nick to MDude.
18:41:29 -!- Reece` has joined.
18:42:10 <b_jonas> zzo38: um, do you mean you want to change it so it binds to a different port instead?
18:42:13 -!- Reece` has quit (Client Quit).
18:42:19 <b_jonas> I don't understand.
18:42:20 <zzo38> No
18:42:29 -!- Reece` has joined.
18:42:35 <zzo38> I want it to listen to port 25
18:42:42 <zzo38> Maybe I can change the router setting temporarily
18:42:51 <b_jonas> But what does the program do right now?
18:42:58 <b_jonas> Before you change anything, that is?
18:43:40 <zzo38> Listen to port 25 and accepts a single email message and stores it in a file.
18:44:12 <b_jonas> If it already listens to port 25, then what's the problem?
18:44:51 <zzo38> It can't; it just displays an error message and quit because it can't listen to port 25
18:45:21 <b_jonas> zzo38: so the problem is that you want to bind to a low port as non-root?
18:45:32 <zzo38> I could change the port number and then change the router setting to forward connections to port 25 to a different internal number I suppose though
18:45:34 <zzo38> b_jonas: Yes
18:46:46 <zzo38> Actually I should set up a proper SMTP server, but am not sure how to configure it to do what I wanted it to do
18:47:12 <b_jonas> And can you modify the program in some way, eg. (a) instead of binding, make it take an inherited file descriptor that's already bound and listen on it, or (b) instead of binding and listening and accepting, take a file descriptor that's already an accepted socket?
18:47:16 -!- Phantom_Hoover has joined.
18:47:41 <zzo38> What I can do is change the port number
18:47:42 <b_jonas> Or possibly the simplest, (c) to bind to a high port instead (and then you forward).
18:48:00 <b_jonas> Change the port number then, and forward from a service that you start from inetd maybe?
18:48:13 <zzo38> I could forward from the router I said
18:48:21 <b_jonas> The forwarding service needn't run as root since inetd does.
18:48:27 <b_jonas> You can do that too, sure.
18:50:18 -!- Reece` has quit (Quit: Leaving).
18:52:23 <izabera> `` echo 'a[b][c[d[e]f]g[h]i]j' | sed ':a;/]\[/!b;s//][|/;tb;:b;s/|\([^]]*\)\[[^]]*]/|\1/;tb;s/.|[^]]*]//;ta'
18:52:25 <HackEgo> a[b]j
18:52:38 <izabera> removes loops after loops
18:53:26 <zzo38> Do you know though how to set up a proper SMTP server on Linux? I need to use different email addresses externally as internally though
18:54:24 <b_jonas> zzo38: I don't know anything about setting up smtp servers, and don't want to either, sorry
18:54:31 <b_jonas> you'll have to ask someone else
18:54:43 <b_jonas> a system administrator presumably
18:55:15 <zzo38> I am the system administrator
18:55:35 <b_jonas> another system administrator then
18:59:28 -!- hppavilion[1] has joined.
19:04:00 -!- Reece` has joined.
19:13:12 -!- gniourf has quit (Read error: Connection reset by peer).
19:13:49 -!- gniourf has joined.
19:15:11 -!- Frooxius has quit (Ping timeout: 264 seconds).
19:16:23 -!- heroux has quit (Ping timeout: 264 seconds).
19:25:13 -!- heroux has joined.
19:26:56 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
19:28:27 -!- hppavilion[1] has joined.
19:31:43 -!- evalj has joined.
19:43:00 -!- heroux has quit (Ping timeout: 248 seconds).
19:43:52 <zzo38> If I send a message that is not a reply of another message I want it to make up a random number and use that as the reply address, but if it is reply to another message, to use the recipient address of the message being replied to instead
19:44:56 -!- heroux has joined.
19:53:35 -!- heroux has quit (Ping timeout: 264 seconds).
19:53:50 <int-e> @uptime
19:53:50 <lambdabot> uptime: 1m 8d 15m 16s, longest uptime: 1m 10d 23h 44m 29s
20:00:05 -!- Reece_ has joined.
20:01:14 -!- Reece` has quit (Ping timeout: 272 seconds).
20:04:09 -!- heroux has joined.
20:05:18 -!- Reece_ has quit (Quit: Leaving).
20:20:53 -!- prooftechnique has quit (Quit: ZNC http://znc.in).
20:25:25 -!- heroux has quit (Ping timeout: 260 seconds).
20:27:29 -!- heroux has joined.
20:39:19 <izabera> http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html
20:39:22 <izabera> "Implementors are encouraged to provide warning messages about labels that are never used"
20:39:35 <izabera> am i reading it wrong or is that impossible?
20:42:08 <izabera> impossible via static analysis i mean
20:43:56 <izabera> i guess sed can print a warning at the end of its execution
20:44:00 <b_jonas> izabera: um, I think that's about labels that aren't even mentioned in any g or t command
20:44:05 <int-e> if by "impossible" you mean "undecidable", sure...
20:44:11 <izabera> int-e: yes, that
20:44:28 <int-e> but there are sound approximations that one can reasonably implement, like the one b_jonas described
20:45:29 <izabera> should this be a warning? blabel1; blabel2; :label2; :label1
20:45:39 <int-e> or perhaps one should distinguish between labels that are mentioned (one possible interpretation of "use") and ones that can be actually reached (another interpretation).
20:48:11 <MDude> For any given year N, what is the smallest counting number to not have been specified exactly in a widely availiable public record by the end of that year?
20:48:21 <b_jonas> oh right, the goto command is b, not g
20:48:23 <b_jonas> sorry
20:49:55 -!- tromp_ has joined.
20:51:29 -!- evalj has quit (Remote host closed the connection).
20:52:37 -!- Elronnd has quit (Quit: Let's jump!).
20:53:44 -!- Elronnd has joined.
20:54:28 -!- tromp_ has quit (Ping timeout: 248 seconds).
20:57:35 -!- lynn_ has joined.
20:57:37 <zzo38> What I want to do is the following: If a message is received for anyone @zzo38computer.org then look up the part before the at sign in a acceptance list, if it is in there then deliver the message to <user@zzo38computer> otherwise reject the message.
20:59:11 -!- hppavilion[1] has quit (Ping timeout: 276 seconds).
20:59:54 -!- mihow has joined.
21:00:26 -!- jaboja has quit (Ping timeout: 250 seconds).
21:01:09 <zzo38> This is a bit similar to Q9805 but is more complicated
21:01:36 -!- Frooxius has joined.
21:08:22 -!- heroux has quit (Ping timeout: 272 seconds).
21:08:36 -!- heroux has joined.
21:09:21 -!- LexiciScriptor has joined.
21:20:12 -!- hppavilion[1] has joined.
21:29:09 -!- jaboja has joined.
21:30:32 -!- heroux has quit (Ping timeout: 272 seconds).
21:33:14 -!- heroux has joined.
21:34:55 -!- hppavilion[1] has quit (Ping timeout: 276 seconds).
21:38:24 -!- hppavilion[1] has joined.
21:40:59 -!- spiette has quit (Ping timeout: 264 seconds).
21:49:16 -!- lynn_ has quit (Read error: Connection reset by peer).
21:49:48 -!- lynn_ has joined.
21:53:08 -!- spiette has joined.
22:05:35 -!- hppavilion[1] has quit (Ping timeout: 264 seconds).
22:10:15 -!- Sprocklem has quit (Ping timeout: 240 seconds).
22:12:08 -!- Sprocklem has joined.
22:20:07 -!- lynn_ has changed nick to lynn.
22:29:45 -!- oerjan has joined.
22:30:20 <oerjan> @messages-
22:30:20 <lambdabot> boily said 10h 53m 10s ago: LET'S DO THE GRAVITATIONAL WAVE! WOOOOOOOOOOO!
22:30:32 <oerjan> @tell boily WOOOOSQUEE!!!
22:30:33 <lambdabot> Consider it noted.
22:30:33 -!- AnotherTest has quit (Ping timeout: 240 seconds).
22:35:46 -!- spiette has quit (Ping timeout: 272 seconds).
22:36:21 -!- tromp_ has joined.
22:38:50 -!- hppavilion[1] has joined.
22:40:35 -!- heroux has quit (Ping timeout: 276 seconds).
22:40:35 -!- tromp_ has quit (Ping timeout: 240 seconds).
22:41:17 -!- heroux has joined.
22:45:08 -!- lynn_ has joined.
22:47:42 -!- lynn has quit (Ping timeout: 256 seconds).
22:50:20 -!- hppavilion[1] has quit (Ping timeout: 272 seconds).
22:52:16 -!- lynn_ has quit (Quit: Leaving).
22:59:14 -!- hppavilion[1] has joined.
23:03:30 -!- lynn has joined.
23:04:37 -!- hppavilion[1] has quit (Ping timeout: 276 seconds).
23:17:17 -!- boily has joined.
23:17:43 <boily> hellørjan!
23:18:04 <boily> @massages-loud
23:18:04 <lambdabot> oerjan said 47m 31s ago: WOOOOSQUEE!!!
23:19:52 <boily> @metar CYUL
23:19:52 <lambdabot> CYUL 122317Z 16011KT 1 1/2SM -SN OVC011 M07/M09 A2980 RMK SN2SF6 SLP094
23:21:34 <oerjan> bood evenily
23:22:31 -!- Sprocklem_ has joined.
23:25:59 -!- Sprocklem has quit (Ping timeout: 264 seconds).
23:27:28 <zzo38> I think I have now figured it out properly
23:31:25 <zzo38> This is what I did: data = ${if eq{$domain}{zzo38computer.org} {${lookup{$local_part}lsearch{/etc/aliases}{$value}{:fail: No alias}}}{}} in the "system_aliases" block (I commented out the other "data =" line)
23:31:32 <zzo38> I don't know if it is the proper way to do it though
23:35:34 <boily> finally thawed. walked home because busses melt away when there's snow.
23:35:45 * boily rants and grumbles
23:36:04 -!- Sprocklem_ has quit (Ping timeout: 248 seconds).
23:37:51 <oerjan> `! bf_txtgen hi izabera
23:38:29 <oerjan> with my luck it's either missing or timing out
23:38:35 <HackEgo> 99 +++++++++++++++[>+++++++>++++++++>+++++++>++<<<<-]>-.>>.>++.<.<++.>--------.+.<<---.>--------.>-.>. [308]
23:38:38 <oerjan> yay!
23:39:19 -!- p34k has quit.
23:39:40 <boily> what are the 99 and 308?
23:40:05 <oerjan> i think 99 is the length
23:40:34 -!- hppavilion[1] has joined.
23:40:36 -!- ais523 has joined.
23:40:39 <oerjan> 308 is either running time or generation time, not sure
23:40:48 -!- Sprocklem has joined.
23:41:07 <boily> `! bf_txtgen hi izabera
23:41:21 <boily> let's reproduce the experiment and check if anything changes...
23:41:26 <HackEgo> 91 +++++++++++++++[>++++++++>+++++++>++><<<<-]>>-.+.>++.<.<++.>--------.+.+++.<--------.>----. [903]
23:41:30 <izabera> wat
23:41:34 <boily> wut?
23:41:49 <boily> there's something wrong there...
23:41:55 <boily> `! bf_txtgen hi izabera
23:42:07 <ais523> boily: you mean the ><?
23:42:18 <ais523> bf_txtgen just uses a fixed template
23:42:20 <boily> his523. ???
23:42:36 <HackEgo> No output.
23:42:48 <boily> what the fungot is going on.
23:42:49 <fungot> boily: madam president, in this parliament. we will be talking about this being an opportunity to express its views soon enough to be able to discuss it in council and there are certain european aspects. take the failed wto negotiations in seattle, because there is relatively little medical research into poverty-related diseases. the solutions are only to be competitive, regulated in such a way as to avoid any cuts in relation
23:43:21 <boily> izabera: are you a shapeshifter? is your aura eldritch, and emanating distortions in the brainfuck-space-time-continuum?
23:43:22 <oerjan> boily: a timeout?
23:43:28 <FireFly> boily: it's not deterministic
23:43:41 <boily> FirelloFly. that disturbs me.
23:43:53 <FireFly> It uses genetic programming to try to improve the program
23:44:03 <boily> damn! Ō_Ō
23:44:28 <FireFly> I forget where its source code is
23:44:43 <oerjan> `ls interps/bf_txtgen
23:44:44 <boily> so izabera is a normal human. that's good to know.
23:44:44 <HackEgo> CompareIndividuals.class \ Individual.class \ textgen.class \ textgen.java \ textgen.tar.gz
23:44:47 <FireFly> ah
23:45:15 <FireFly> might be, at least
23:45:21 <oerjan> boily: let's not conclude too early
23:45:31 <oerjan> she's in #esoteric, after all.
23:46:20 <FireFly> we're all mad here
23:46:44 <boily> I'm sane.
23:46:48 <izabera> prove it
23:47:04 <boily> `? boily
23:47:06 <HackEgo> boily is monetizing a broterhood scheme with the Guardian of Lachine, apparently involving cookie dealing. He's also a NaniDispenser, a Trigotillectomic Man Eating Chicken and a METARologist. He is seriously lacking in the f-word department.
23:47:13 <boily> ↑ see, I'm sane ^^
23:47:42 <oerjan> boily: someone's got to be the odd one out
23:48:49 <FireFly> @metar ESSB
23:48:49 <lambdabot> ESSB 122320Z AUTO 21006KT 9999 SCT009/// BKN038/// OVC059/// M02/M03 Q0996
23:49:30 <oerjan> `? mad
23:49:31 <HackEgo> mad? ¯\(°​_o)/¯
23:49:39 <FireFly> as a hatter
23:49:47 <oerjan> `le/rn mad/This wisdom entry was censored for being too accurate.
23:49:52 <HackEgo> Learned «mad»
23:49:59 <oerjan> that's in fact true hth
23:50:14 <boily> `? wisdom
23:50:15 <FireFly> [citation needed]
23:50:15 <HackEgo> wisdom is always factually accurate, except for this entry, and uh that other one? it started with like, an ø?
23:50:27 <FireFly> `? ø
23:50:29 <HackEgo> ​ø is not going anywhere.
23:50:42 -!- J_Arcane has joined.
23:50:44 <FireFly> `? rjan
23:50:44 <HackEgo> rjan? ¯\(°​_o)/¯
23:50:47 <boily> (meanwhile, a guy next door just cried "no... nooo... NOOOOOOOOO!")
23:50:56 <FireFly> boily: mad. I tell you
23:50:59 <hppavilion[1]> >FireFly?: we're all mad here <-- especially mad hth
23:51:05 <hppavilion[1]> *<FireFly>
23:51:10 <oerjan> FireFly: "I deleted `? mad for being too accurate." -- oerjan
23:51:22 <hppavilion[1]> `? mad
23:51:24 <HackEgo> This wisdom entry was censored for being too accurate.
23:51:35 <hppavilion[1]> oerjan: Put it in `tomfoolery then
23:51:36 <FireFly> oerjan: well then, can't argue with that
23:51:41 <hppavilion[1]> oerjan: If you remember what it was
23:52:00 <hppavilion[1]> (Unless it was too accurate for wisdom, but not enough for tomfoolery)
23:52:13 <FireFly> `? tomfoolery
23:52:14 <HackEgo> tomfoolery is always factually inaccurate. always.
23:52:38 <FireFly> `` grep factually wisdom/*
23:52:44 <HackEgo> grep: wisdom/le: Is a directory \ grep: wisdom/¯\(°_o): Is a directory \ grep: wisdom/¯\(°​_o): Is a directory \ Binary file wisdom/reflection matches \ wisdom/tomfoolery:tomfoolery is always factually inaccurate. always. \ wisdom/wisdom:wisdom is always factually accurate, except for this entry, and uh that other one? it started with like, a
23:52:48 <hppavilion[1]> FireFly: It's what we created so people can actually figure out what's going on
23:52:52 <ais523> `tmflry tomfoolery
23:52:53 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: tmflry: cannot execute: Is a directory
23:52:59 <hppavilion[1]> `tomfoolery hth
23:53:00 <HackEgo> hth means "hope that helps"
23:53:09 <hppavilion[1]> FireFly: That right there was the motivation
23:53:12 <ais523> `tomfoolery tomfoolery
23:53:13 <HackEgo> tomfoolery is wisdom
23:53:17 <FireFly> `tomfoolery tdnh
23:53:18 <HackEgo> I must confess, I know not of what you are speaking.
23:53:23 <hppavilion[1]> FireFly: Not added yet
23:53:33 <FireFly> tdnh
23:53:50 <hppavilion[1]> `misle/rn tdnh/"That did not help", used when your hth raises an exception
23:53:53 <HackEgo> Was lied to about «tdnh»
23:54:15 <shachaf> oerjan: `? tdnh
23:54:20 <shachaf> Er.
23:54:24 <shachaf> `? tdnh
23:54:25 <HackEgo> tdnh does not help
23:54:32 <shachaf> the dogs need hugs
23:54:35 <shachaf> always true
23:54:41 <hppavilion[1]> FireFly: As long as it actually explains to the user what it is in an accurate and readable fashion, you can put whatever you want in `tomfoolery
23:54:59 <FireFly> So basically, it's wtf(1)
23:55:12 <FireFly> er wtf(6)
23:55:19 <shachaf> I can put whatever I want in `tomfoolery no matter what.
23:55:36 <shachaf> HackEgo is anarchy, yo
23:55:40 <hppavilion[1]> It was created largely because newbies have no clue wtf 90% of what we say means
23:57:03 <hppavilion[1]> `mislearn brainfuck is an esoteric programming language created for extreme minimalism- which it accomplishes, with a total of eight (8) zero-argument procedural instructions. It is what introduces many people to esolangs, spawning a vast number of derivatives that we pretty much all despise. http://esolangs.org/wiki/Brainfuck
23:57:06 <HackEgo> Was lied to about 'brainfuck': brainfuck is an esoteric programming language created for extreme minimalism- which it accomplishes, with a total of eight (8) zero-argument procedural instructions. It is what introduces many people to esolangs, spawning a vast number of derivatives that we pretty much all despise. http://esolangs.org/wiki/Brainfuck
23:57:11 -!- heroux has quit (Ping timeout: 264 seconds).
23:57:13 <hppavilion[1]> `tomfoolery brainfuck
23:57:14 <HackEgo> brainfuck is an esoteric programming language created for extreme minimalism- which it accomplishes, with a total of eight (8) zero-argument procedural instructions. It is what introduces many people to esolangs, spawning a vast number of derivatives that we pretty much all despise. http://esolangs.org/wiki/Brainfuck
23:57:26 <hppavilion[1]> `wtf
23:57:26 <HackEgo> why is like wtf
23:57:42 <hppavilion[1]> `wtf is a walrus
23:57:43 <HackEgo> why is a walrus is like wtf
23:57:47 -!- heroux has joined.
23:57:56 <hppavilion[1]> `wtf(6)
23:57:57 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: wtf(6): not found
23:58:05 <oerjan> hppavilion[1]: your brainfuck tomfoolery is not entirely true hth
23:58:12 <hppavilion[1]> oerjan: How so?
23:58:21 <FireFly> hm
23:58:32 <FireFly> `which wtf
23:58:33 <HackEgo> ​/hackenv/bin/wtf
23:58:41 <FireFly> `` ls /usr/bin/wtf
23:58:42 <HackEgo> ls: cannot access /usr/bin/wtf: No such file or directory
23:58:44 <oerjan> it slightly misrepresents its reason for creation.
23:58:45 <FireFly> oh, okay
23:58:52 <hppavilion[1]> oerjan: Ah, I'll fix it
23:59:10 <FireFly> hppavilion[1]: your package manager might have it
23:59:39 <FireFly> http://netbsd.gw.com/cgi-bin/man-cgi/man?wtf+6+NetBSD-current
23:59:49 <hppavilion[1]> `mislearn brainfuck is an esoteric programming language created to make the smallest possible compiler for a Turing-complete language. To do this, it was designed to be extremely minimalistic- which it accomplishes, with a total of eight (8) zero-argument procedural instructions. It is what introduces many people to esolangs, spawning a vast number of derivatives that we pretty much all despise. http://esolangs.org/wiki/Brainfuck
23:59:51 <HackEgo> Was lied to about 'brainfuck': brainfuck is an esoteric programming language created to make the smallest possible compiler for a Turing-complete language. To do this, it was designed to be extremely minimalistic- which it accomplishes, with a total of eight (8) zero-argument procedural instructions. It is what introduces many people to esolangs, s
←2016-02-11 2016-02-12 2016-02-13→ ↑2016 ↑all