←2019-11-26 2019-11-27 2019-11-28→ ↑2019 ↑all
00:02:02 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
00:12:39 -!- FreeFull has quit.
00:18:59 -!- tromp has joined.
00:23:02 <b_jonas> fizzie: thanks for documenting more about HackEso on the wiki
00:23:18 <b_jonas> I'll still have to write about the commands some time, especially rnoodl
00:23:26 <b_jonas> `? rnooodl
00:23:27 <HackEso> rnooodl? ¯\(°​_o)/¯
00:23:30 <b_jonas> `? rnoodl
00:23:31 <HackEso> rnoodl? ¯\(°​_o)/¯
00:23:34 <b_jonas> `? nooodl
00:23:35 -!- tromp has quit (Ping timeout: 250 seconds).
00:23:35 <HackEso> noooodl is the correct spelling
00:23:39 <b_jonas> `? noodl
00:23:40 <HackEso> noooooooodl is the correct spelling
00:23:41 <b_jonas> `? nooodl
00:23:43 <HackEso> nooooodl is the correct spelling
00:23:48 <b_jonas> `? nooooooooooooooooooooooooooooooooooooooooodl
00:23:49 <HackEso> noooooodl is the correct spelling
00:24:00 <b_jonas> (that's actually a built-in pattern in the ? command)
00:24:11 <b_jonas> (recognizing that argument that is)
00:38:22 -!- xkapastel has joined.
01:01:33 <j4cbo> fa
01:01:36 <j4cbo> adsfasdfasdf
01:02:27 <j4cbo> pro tip: address bar autocomplete does not work when your cursor is in the irccloud text box
01:18:34 -!- oerjan has joined.
01:29:06 <oerjan> wait what, the wiki diff has improved
01:29:42 <oerjan> it actually matches words in a paragraph to two different ones in the post-edit
01:31:45 <oerjan> well maybe that's not a case that was broken previously.
01:32:06 <oerjan> `../bin/help
01:32:10 <HackEso> ​? ¯\(°​_o)/¯
01:33:24 <fizzie> It's also possible the MediaWiki upgrade did improve it.
01:41:51 <esowiki> [[HackEso]] M https://esolangs.org/w/index.php?diff=67480&oldid=67479 * Oerjan * (-1) /* Implementation details */ an -> a
01:42:33 <oerjan> i'm assuming it's pronounced like u-m-l-box
02:03:50 <oerjan> `` url ../bin/rainwords
02:03:51 <HackEso> https://hack.esolangs.org/repo/file/tip/bin/rainwords
02:05:55 <oerjan> hm pikhqbow is a binary
02:06:04 <oerjan> `dobg pikhqbow
02:06:11 <HackEso> 8746:2016-07-05 <pikḧq> ` gcc -Os -s src/pikhqbow.c -o bin/pikhqbow \ 8744:2016-07-05 <pikḧq> ` gcc -Os -s src/pikhqbow.c -o bin/pikhqbow \ 8742:2016-07-05 <pikḧq> ` gcc src/pikhqbow.c -o bin/pikhqbow
02:06:48 <oerjan> `url ../src/pikhqbow.c
02:06:48 <HackEso> https://hack.esolangs.org/repo/file/tip/src/pikhqbow.c
02:07:43 <shachaf> `wrl
02:07:44 <HackEso> https://hack.esolangs.org/repo/file/tip/wisdom
02:07:46 <shachaf> `brl
02:07:46 -!- tromp has joined.
02:07:47 <HackEso> brl?
02:08:00 <shachaf> `sakdfnla
02:08:03 <HackEso> sakdfnla?
02:08:18 <oerjan> ah. it no longer seems to try to use only as many colors as will fit in a line
02:08:35 <oerjan> which means i don't have to fix it for changed line length :P
02:09:20 <fizzie> Oh, right, there was something like that at some point.
02:09:28 <shachaf> `cbt wrl
02:09:29 <HackEso> url "$HACKENV/wisdom/$1"
02:10:03 <shachaf> `mkx ../bin/brl//url "$HACKENV/bin/$1"
02:10:10 <oerjan> `u
02:10:13 <shachaf> `brl brl
02:10:14 <HackEso> ​../bin/brl
02:10:17 <HackEso> u?
02:10:17 -!- jix has quit (Ping timeout: 268 seconds).
02:10:18 <HackEso> https://hack.esolangs.org/repo/file/tip/bin/brl
02:11:26 <oerjan> `mkx ../bin/u//cd ${HACKENV-/hackenv}; nur "$1"
02:11:28 <HackEso> ​../bin/u
02:11:37 <oerjan> `u ls
02:11:38 <HackEso> bin \ canary \ emoticons \ esobible \ etc \ f \ factor \ hw \ ibin \ interps \ karma \ le \ lib \ misle \ paste \ ply-3.8 \ quines \ quotes \ share \ src \ stuff \ tmflry \ tmp \ wisdom
02:12:01 <shachaf> but what if HACKENV has a space in it htdnh
02:12:15 -!- tromp has quit (Ping timeout: 252 seconds).
02:12:26 <oerjan> `u mkx bin/u//cd "${HACKENV-/hackenv}"; nur "$1"
02:12:28 <HackEso> bin/u \ /hackenv/bin/u: line 2: unexpected EOF while looking for matching `"' \ /hackenv/bin/u: line 3: syntax error: unexpected end of file
02:12:46 <oerjan> hum
02:13:02 <oerjan> `cbt mkx
02:13:03 <HackEso> key=$(mk "$@") && echo "$key" && chmod +x "$key"
02:13:15 <oerjan> `cbt mk
02:13:16 <HackEso> ​[[ "$1" == ?*//* ]] || { echo usage: "mk[x]" file//contents >&2; exit 1; }; key="${1%%//*}"; value="${1#*//}"; echo "$value" > "$(echo-p "$key")" && echo "$key"
02:14:56 <fizzie> What's the u in `u short for?
02:15:07 <oerjan> "up"
02:15:12 <oerjan> h was taken
02:15:33 <oerjan> and r might suggest / instead
02:15:50 <shachaf> `u mkx bin/uh//u "$@" | h
02:16:01 <fizzie> `uh huh
02:16:04 <HackEso> uh?
02:16:07 -!- jix has joined.
02:16:19 <oerjan> `cbt u
02:16:20 <HackEso> cd "${HACKENV-/hackenv}"; nur "$1"
02:16:43 <fizzie> What happened to shachaf's command?
02:16:54 <oerjan> `nur mkx ../bin/u//cd "${HACKENV-/hackenv}"; nur "$1"
02:16:55 <HackEso> ​../bin/u
02:17:03 <oerjan> huh
02:17:15 <oerjan> `cbt u
02:17:16 <HackEso> cd "${HACKENV-/hackenv}"; nur "$1"
02:17:36 <fizzie> It sure looks like it ought to just work.
02:17:47 <oerjan> fizzie: shamagic
02:17:47 <shachaf> fizzie: HackEso rightly decided it was a terrible idea and ignored it.
02:19:18 <fizzie> Oh, that kind of magic.
02:19:47 <fizzie> I took it seriously, probably because it seemed to be not that far off the mean goodness of HackEso command ideas.
02:20:15 <oerjan> `u ls share
02:20:19 <shachaf> If u and h each have goodness ε, uh has goodness ε².
02:20:21 <HackEso> 8ballreplies \ airports.dat \ autowelcome_status \ awesome \ ballreplies \ candide \ cat \ Complaints.mp3 \ conscripts \ construct_grams.pl \ delvs-master \ dict \ dict-words \ esolangs.txt \ esolangs.txt.sorted \ headers \ headers.gch \ hello \ lua \ maimer \ maimery \ maze \ mtg \ nothp \ recipe \ scapegoats \ scowrevs \ sedtest \ UnicodeData.txt \ unic.txt \ units.dat \ usercmds \ whatis \ wisdom \ WordData
02:20:39 <oerjan> ok u seems to work there
02:20:50 <shachaf> ``u or `u` might actually make sense, though.
02:20:55 <fizzie> `` u huh |& h # just testing
02:20:56 <HackEso> ​/hahckehnv/bihn/nuhr: lihne 2: huhh: cohmmahnd noht fouhnd
02:20:58 <oerjan> `u echo "testing" "more testing"
02:20:58 <HackEso> ​"testing" "more testing"
02:21:46 <oerjan> perhaps there was a race condition between u modifying itself and editing itself
02:21:55 <oerjan> er, *reading
02:24:46 <oerjan> `u ` ls | h
02:24:47 <HackEso> bihn \ cahnahry \ ehmohtihcohns \ ehsohbihble \ ehtc \ f \ fahctohr \ hw \ ihbihn \ ihntehrps \ kahrma \ le \ lihb \ mihsle \ pahste \ ply-3.8 \ quihnehs \ quohtehs \ shahre \ src \ stuhff \ tmflry \ tmp \ wihsdohm
02:25:44 <oerjan> shachaf: `u ` works, anyway
02:26:02 <shachaf> `cbt ~
02:26:06 <HackEso> cat: /hackenv/bin/~: No such file or directory
02:26:10 <shachaf> whoa
02:26:18 <shachaf> prime rbal estate
02:26:56 <oerjan> `` echo $HOME
02:26:57 <HackEso> ​/tmp
02:27:05 -!- jix has quit (Ping timeout: 276 seconds).
02:27:42 <shachaf> Maybe it's actually awkward to type.
02:33:31 -!- jix has joined.
02:57:01 -!- xkapastel has quit (Quit: Connection closed for inactivity).
03:16:39 <esowiki> [[LogOS]] N https://esolangs.org/w/index.php?oldid=67481 * IFcoltransG * (+654) Created page with "{{lowercase}} '''logOS''' is an imperative and partially object-oriented language based around the 'Desktop metaphor' that modern operating systems use. It was brainstormed wi..."
03:16:52 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=67482&oldid=67467 * IFcoltransG * (+12) /* L */ added logOS
03:30:34 -!- hppavilion[1] has joined.
03:47:54 <esowiki> [[LogOS]] https://esolangs.org/w/index.php?diff=67483&oldid=67481 * IFcoltransG * (+1082) Added code samples, tidied up headings
03:52:41 -!- imode has joined.
03:53:33 <esowiki> [[Hunter]] https://esolangs.org/w/index.php?diff=67484&oldid=53690 * YamTokTpaFa * (+12) +deadlink
03:56:02 -!- tromp has joined.
04:00:41 -!- tromp has quit (Ping timeout: 276 seconds).
04:15:41 <esowiki> [[LogOS]] https://esolangs.org/w/index.php?diff=67485&oldid=67483 * IFcoltransG * (+479) Added info on 'programs' i.e. objects within the OS
04:16:37 <esowiki> [[LogOS]] M https://esolangs.org/w/index.php?diff=67486&oldid=67485 * IFcoltransG * (+2) Word choice - resolved ambiguity
04:21:01 <esowiki> [[User:IFcoltransG]] https://esolangs.org/w/index.php?diff=67487&oldid=66651 * IFcoltransG * (+6) Added link to logOS
04:22:31 <esowiki> [[User:IFcoltransG]] https://esolangs.org/w/index.php?diff=67488&oldid=67487 * IFcoltransG * (+75) Formatted new link
04:53:57 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
05:03:38 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
05:04:12 -!- Lord_of_Life has joined.
05:24:12 -!- hppavilion[1] has joined.
05:29:03 -!- hppavilion[1] has quit (Ping timeout: 245 seconds).
05:40:50 -!- hppavilion[1] has joined.
05:44:17 -!- tromp has joined.
05:49:03 -!- imode has quit (Ping timeout: 245 seconds).
05:49:14 -!- tromp has quit (Ping timeout: 276 seconds).
06:44:11 -!- hppavilion[1] has quit (Ping timeout: 265 seconds).
06:44:42 -!- hppavilion[1] has joined.
07:08:45 -!- hppavilion[1] has quit (Ping timeout: 268 seconds).
07:32:42 -!- tromp has joined.
07:37:07 -!- tromp has quit (Ping timeout: 252 seconds).
07:47:02 -!- tromp has joined.
08:45:36 <esowiki> [[Bin-8]] https://esolangs.org/w/index.php?diff=67489&oldid=67463 * OsmineYT * (+2)
08:53:19 <oerjan> the clank today looks very much like the leftmost one here http://www.girlgeniusonline.com/comic.php?date=20060605
09:00:02 -!- b_jonas has quit (Remote host closed the connection).
09:05:44 -!- arseniiv has joined.
09:12:58 <oerjan> in fact it's the only one to survive the following scenes
09:16:19 -!- oerjan has quit (Quit: Nite).
09:27:11 -!- tswett[m] has quit (Read error: Connection reset by peer).
09:27:34 -!- ddmm_ has quit (Read error: Connection reset by peer).
10:12:14 -!- Lord_of_Life has quit (Read error: Connection reset by peer).
10:15:42 -!- Lord_of_Life has joined.
10:18:04 -!- kingoffrance has quit (Ping timeout: 268 seconds).
10:24:31 -!- xkapastel has joined.
10:47:51 -!- tswett[m] has joined.
10:47:51 -!- wmww has joined.
10:47:51 -!- ddmm_ has joined.
11:02:22 -!- laerling_ has joined.
11:03:03 -!- laerling_ has quit (Client Quit).
11:03:08 -!- laerlingSAP has joined.
11:03:37 -!- laerlingSAP has quit (Client Quit).
11:17:09 -!- laerlingSAP has joined.
11:18:56 -!- laerlingSAP has quit (Client Quit).
11:19:28 -!- laerlingSAP has joined.
12:32:01 -!- laerlingSAP_ has joined.
12:32:08 <esowiki> [[User:OsmineYT]] https://esolangs.org/w/index.php?diff=67490&oldid=67470 * OsmineYT * (+10)
12:32:42 -!- haavard has quit (Remote host closed the connection).
12:33:46 -!- haavard has joined.
12:34:32 -!- laerlingSAP_ has quit (Client Quit).
12:34:50 -!- laerlingSAP_ has joined.
12:34:52 -!- laerlingSAP_ has quit (Client Quit).
12:35:05 -!- laerlingSAP has quit (Ping timeout: 265 seconds).
12:35:14 -!- laerlingSAP has joined.
12:43:43 <esowiki> [[Cell]] N https://esolangs.org/w/index.php?oldid=67491 * OsmineYT * (+625) Created page with "Cell is Turing-complete language founded by [[User:OsmineYT|OsmineYT]] in 2019. The sense of making this language is simple: '''make an Turing-complete language first instead..."
12:43:54 <esowiki> [[Cell]] https://esolangs.org/w/index.php?diff=67492&oldid=67491 * OsmineYT * (-3)
12:44:04 <esowiki> [[Cell]] https://esolangs.org/w/index.php?diff=67493&oldid=67492 * OsmineYT * (-1)
13:02:30 -!- wib_jonas has joined.
13:03:44 <wib_jonas> so, I created an entry for HackEso on the wiki and now fizzie filled it with a lot of useful information. am I allowed to point to
13:03:45 <wib_jonas> `quote boring wisdom
13:03:46 <HackEso> 1263) <b_jonas> boily: sorry for the boring wisdom entries I added. I mostly did it hoping that someone will stumble on them and replace them with something better.
13:03:59 <wib_jonas> ^ this now and say "they're not laughing now"?
13:04:44 <wib_jonas> I need to learn the stereotypical mad scientist laugh.
13:06:48 <esowiki> [[Cell]] https://esolangs.org/w/index.php?diff=67494&oldid=67493 * OsmineYT * (+232)
13:07:24 <esowiki> [[Cell]] https://esolangs.org/w/index.php?diff=67495&oldid=67494 * OsmineYT * (+1)
13:08:24 <esowiki> [[Cell]] https://esolangs.org/w/index.php?diff=67496&oldid=67495 * OsmineYT * (+43)
13:09:20 <esowiki> [[Talk:Cell]] N https://esolangs.org/w/index.php?oldid=67497 * OsmineYT * (+49) Created page with "Anyone here? If you want, try making interpreter."
13:11:15 <esowiki> [[Talk:Cell]] https://esolangs.org/w/index.php?diff=67498&oldid=67497 * OsmineYT * (+181) /* Most commands are same as in brainfuck */ new section
13:12:00 <esowiki> [[Talk:Cell]] https://esolangs.org/w/index.php?diff=67499&oldid=67498 * OsmineYT * (+4)
13:13:21 <esowiki> [[WALP]] https://esolangs.org/w/index.php?diff=67500&oldid=12858 * PythonshellDebugwindow * (+841) Explaining your loop example
13:33:25 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=67501&oldid=67482 * OsmineYT * (+13)
13:34:18 -!- laerlingSAP has quit (Quit: Leaving).
13:38:17 -!- sprocklem has quit (Ping timeout: 240 seconds).
14:02:12 <esowiki> [[W (A)]] M https://esolangs.org/w/index.php?diff=67502&oldid=66964 * A * (+211) /* 99 bottles of beer */
14:09:04 <fizzie> I'm not sure what I added to the HackEso entry is particularly useful, it's just answering a question that's come up every now and then.
14:40:04 -!- imode has joined.
14:45:20 <imode> continuing with the mantra "code == data && data == code", I think I'm not going to have traditional segmented executables for Mode bytecode.
14:47:39 <imode> instead, an executable is just a giant switch statement. if you wanna extract a couple bytes from segment 1, you need to actually _run_ the file, send the interpreter the segment you want to evaluate, then send it an index into the byte array (provided that segment is a byte array...)
14:53:16 <wib_jonas> imode: are you saying that you're trying to make an interpreter that is fully lazy in the way that Haskell is, as in, any value can be a thunk that you have to evaluate later?
14:54:21 <imode> yessir.
14:55:13 <imode> if you want an array, generate a switch statement. if you want an array who's contents are the fibonacci sequence, the protocol is the same.
14:57:46 <wib_jonas> @oeis A45
14:57:49 <lambdabot> https://oeis.org/A000045 Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0)...
14:57:49 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,...
14:57:56 <wib_jonas> ^oeis A45
14:57:57 <wib_jonas> =oeis A45
14:57:57 <bfbot> No such command. Try =help.
14:57:58 <wib_jonas> `oeis A45
14:57:59 <HackEso> oeis?
14:58:27 <wib_jonas> HackEso now has error messages better than ed
14:58:46 <wib_jonas> `/dev/null
14:58:47 <HackEso> ​/dev/null?
14:58:55 <wib_jonas> `/dev
14:58:56 <HackEso> ​/dev?
15:01:00 <imode> you can also provide metadata about the entire program within this segmented system. for instance, if I have a segment that I want to use precompiled jump targets, I can generate some Mode bytecode to simulate a simple map between an instruction pointer and a jump target.
15:02:55 <imode> "evaluate segment 1. if I'm executing a [ or a ] instruction, evaluate segment 0 with parameter $ip. examine the queue after evaluation, fetch the returned result, and set $ip to that result."
15:04:02 <imode> it won't be as fast because you still need to evaluate segment 0 without jump targets.. but imo if you want speed, this kind of information should be in a separate file that you can set up to read.
15:08:14 -!- diverger has quit (Ping timeout: 276 seconds).
15:10:42 -!- diverger has joined.
15:43:06 -!- imode-ruby has joined.
15:44:15 -!- xkapastel has quit (Quit: Connection closed for inactivity).
15:46:02 <fizzie> I did think of adding a perror in that error message when the error is execve failing, though thing is it does the path search, so if execve fails due to /hackenv/bin/foo not having +x set, and then later due to /bin/foo and /usr/bin/foo not existing, the last errno would be the misleading ENOENT rather than the more relevant EACCESS.
15:46:56 <fizzie> The glibc execp family actually special-cases this, if one of the attempted executions fails with EACCESS, the search does continue but the final error is still EACCESS unless something that works is found.
15:47:15 -!- imode-ruby has quit (Client Quit).
15:47:33 -!- imode-ruby has joined.
15:48:34 <imode-ruby> weechat doesn't work that well under tmux && ssh.
15:48:52 <imode-ruby> color bars get weird.
15:55:36 -!- kspalaiologos has joined.
15:59:42 -!- imode has quit (Ping timeout: 268 seconds).
16:00:35 -!- imode has joined.
16:02:47 -!- atslash has quit (Ping timeout: 268 seconds).
16:04:55 -!- imode-ruby has quit (Quit: WeeChat 1.6).
16:05:10 -!- imode-ruby has joined.
16:05:41 <imode-ruby> there we go, much better.
16:07:18 -!- imode has quit (Quit: WeeChat 2.6).
16:07:36 -!- imode has joined.
16:10:29 -!- imode-ruby has quit (Quit: WeeChat 1.6).
16:10:39 -!- imode-ruby has joined.
16:11:10 -!- stux|away has quit (Read error: Connection reset by peer).
16:16:37 -!- imode has quit (Ping timeout: 240 seconds).
16:27:55 <kspalaiologos> I've been writing a brainfuck generator today
16:28:07 <kspalaiologos> crunched around 1MB data file
16:28:18 <kspalaiologos> too bad I can't eaisly rewrite it to brainfuck though
16:28:27 <kspalaiologos> RLE'd it would be, I guess, around 2 megabytes
16:28:59 <kspalaiologos> but yeah currently it's going like
16:29:00 <kspalaiologos> http://prntscr.com/q2wtuq
16:29:21 -!- stux|away has joined.
16:31:10 <wib_jonas> kspalaiologos: is that a compiler to bfasm?
16:31:31 <wib_jonas> um, I mean to asm2bf
16:34:25 <kspalaiologos> nope, not the case
16:34:30 <kspalaiologos> a brainfuck text generator in asm2bf
16:34:41 <kspalaiologos> also, bfasm and asm2bf are two separate things
16:34:53 <kspalaiologos> asm2bf is the entire toolkit and bfasm is just the compiler
16:40:16 <wib_jonas> ok, now I'm confused
16:40:30 <wib_jonas> there's a bfasm compiler, and an asmbf and an asm2bf? how do those differ?
16:40:45 <kspalaiologos> it's even more complicated
16:40:47 <wib_jonas> and what does "text generator" mean?
16:40:58 <kspalaiologos> like bf_textgen or something like this on hack eso
16:41:04 <kspalaiologos> so actually, bfasm is older than asm2bf
16:41:19 <wib_jonas> I don't know what bf_textgen is either
16:41:22 <wib_jonas> `? bf_textgen
16:41:23 <HackEso> bf_textgen? ¯\(°​_o)/¯
16:41:30 <kspalaiologos> that makes a brainfuck program
16:41:32 <kspalaiologos> displaying given text
16:41:35 <wib_jonas> ok
16:41:37 <kspalaiologos> and bfasm had v1/v2/v3/v4/v5 versions each one with a-d letters (some skipped some version)
16:41:45 <kspalaiologos> that I used for my Izmit compiler series
16:42:00 <kspalaiologos> but then I abadoned it for a while and went back to the ye oldie bfasm v1
16:42:06 <kspalaiologos> I had to come up with the versioning schema
16:42:25 <kspalaiologos> so the v* versions are for izmit, and [0-9]\.* versions are the new ones
16:42:33 <kspalaiologos> going back to your question
16:42:45 <kspalaiologos> bfasm is a compiler from assembly subset to brainfuck
16:42:46 <kspalaiologos> for instance
16:42:54 <kspalaiologos> ``` bfasm <<<"lbl 1/jmp 1"
16:42:55 <HackEso> ​+>+[#
16:43:15 <kspalaiologos> ``` tr '/' '\n' <<<"lbl 1/jmp 1" | bfasm
16:43:16 <HackEso> ​+>+[>>>+<<+<<[>>->+<<<-]>>>[<<<+>>>-]<[->+<<[>>>-<<+<-]>[<+>-]>>[<->[-]]<[<<<+>>>-]<]>>[-]<<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>>+<<<<<<<<<[-]>[-]>>>>>>>>[<<<<<<<<+>+>>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[-]<<<<<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]<<<[-]>[-]>>]<<]
16:43:18 <kspalaiologos> there we go
16:43:29 <kspalaiologos> asm2bf is a toolchain
16:43:33 <kspalaiologos> that has bfasm as a tool
16:43:41 <kspalaiologos> like MinGW and GCC
16:43:49 <kspalaiologos> the toolchain has many goodies linked in
16:44:06 <kspalaiologos> like the standard library, labels preprocessor, the generic macro preprocessor
16:44:46 <kspalaiologos> $asm2bf eq $asmbf basically
16:45:17 <kspalaiologos> oh and by the way
16:45:19 <wib_jonas> ok, so asm2bf has the compiler and some extras
16:45:21 <kspalaiologos> the above is an infinite loop
16:45:24 <kspalaiologos> Yes.
16:45:32 <kspalaiologos> https://esolangs.org/wiki/Asm2bf
16:45:38 <kspalaiologos> this page lists all the tools in the toolchain
16:45:42 <wib_jonas> naming them that way is a bit strange, but sure
16:45:57 <kspalaiologos> and has a bfasm section describing the pure assembler
16:46:02 <kspalaiologos> without the toolchain programs
16:46:07 <kspalaiologos> e.g. it doesn't use named labels, macros
16:46:12 <kspalaiologos> but you obviously can do it
16:46:39 <kspalaiologos> I first named it asm2bf
16:46:43 <kspalaiologos> but the source file was called bfasm
16:46:49 <kspalaiologos> then somebody lurked my repos and found the program
16:46:52 <kspalaiologos> it had no docs by then
16:46:58 <kspalaiologos> he asked me how can he use it
16:47:06 <kspalaiologos> and we talked a bit more, so the fragmentation happened
16:47:15 <kspalaiologos> because he reffered to it by a source file name (bfasm.c)
16:47:23 <kspalaiologos> and I reffered to it by the name I've given (asm2bf)
16:47:36 <kspalaiologos> as he's been assisting me with the docs, he called the tool bfasm
16:47:42 <kspalaiologos> and I kinda settled on it
16:47:53 <kspalaiologos> after making a few more tools I set up a separate repo
16:47:54 <wib_jonas> so now you're making a text generator that you embed to the toolchain so that you can make a shorter 8-ball program for example?
16:48:02 <kspalaiologos> nope
16:48:06 <kspalaiologos> I'm making a text generator
16:48:08 <kspalaiologos> using asm2bf
16:48:17 <kspalaiologos> but, I can embed it to the toolchain
16:48:32 <kspalaiologos> it has no sense to me though, but a more performant txt would be lovely
16:48:39 <kspalaiologos> and I'll work on it later
16:48:42 <kspalaiologos> look:
16:48:47 <kspalaiologos> `asmbf txt "Hello"
16:48:48 <HackEso> ​+>+[<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>>>>>>>>>>>>>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>
16:48:54 <kspalaiologos> It's using + to embed the string
16:49:04 <kspalaiologos> it's terrible, because we have to conserve runtime memory
16:49:13 <kspalaiologos> I could set a multiplication loop though
16:49:21 <kspalaiologos> I'll work more on it when time permits
16:49:50 <kspalaiologos> the naming is pretty scary
16:49:54 <kspalaiologos> but the assembler itself is really easy
16:50:06 <kspalaiologos> and getting started is as simple as adding a shebang and executing a file to get a brainfuck program generated
16:54:11 <kspalaiologos> wib_jonas, got bored to death lol?
16:54:25 <wib_jonas> no, I just find it weird that the whole thing involves brainfuck
16:54:44 <kspalaiologos> It has a Malbolge target too
16:54:49 <kspalaiologos> but I keep it private for obvious reasons
16:55:24 <wib_jonas> I mean, I'm at work right now, and I'm doing weird things to work around the deficiencies of a legacy system, but it's not an esoteric one like brainfuck, it's just weird for all sorts of historical reasons,
16:55:56 <kspalaiologos> right
16:55:59 <wib_jonas> like they made the system some way ten to twenty years ago, and they can't change things because they value compatibility,
16:55:59 <kspalaiologos> how old is the system though?
16:56:03 <kspalaiologos> ah, finme
16:56:09 <wib_jonas> depends on which parts
16:56:12 <kspalaiologos> which technology?
16:56:25 <kspalaiologos> is it using
16:56:38 <kspalaiologos> and more importantly, what exactly is it? Webapp, desktop app?
16:56:42 <wib_jonas> Siemens WinCC was originally designed for the 16-bit windows era, so it has the oldest weird stuff
16:56:54 <wib_jonas> it runs on windows desktop
16:57:18 <kspalaiologos> fine
16:57:20 <kspalaiologos> I hear wincc
16:57:24 <kspalaiologos> and I know what is it by now
16:57:25 <wib_jonas> and it's a recent version, and this one runs on windows 10 and some windows server version, I'm not sure which one
16:57:38 <wib_jonas> but there are all sorts of newer stuff here too
16:57:57 <kspalaiologos> I had a friend that used to work in CodeGear
16:57:59 <wib_jonas> like parts of the system designed within the company and copied from one system to another and ideally gradually patched and improved
16:58:03 <kspalaiologos> a part of Inprise / Borland
16:58:11 <kspalaiologos> and maintain the C++ Builder
16:58:38 <kspalaiologos> he said that it contained tons of old shitcode dating back to MS-DOS since C++ Builder 6
16:59:04 <kspalaiologos> honestly I'd like to work somewhere where I could program&improve compilers/IDE's
16:59:13 <kspalaiologos> because it seems like a suitable task for me
16:59:32 <wib_jonas> and there are like cases when there's an old project A, then two different projects B and C indirectly derived from it, then at some point a certain breaking change of the internals was made between A and C, but now I'm working on B which is under development, and
16:59:37 <kspalaiologos> but I'm stuck where I am lol
17:00:03 <kspalaiologos> I need to get my COBOL backend for asm2bf finally sorted out
17:00:10 <kspalaiologos> it would be the first official backend other than brainfuck itself
17:00:14 <wib_jonas> I have to find out if B will have the old or the new behavior with respect to that internal interface, and that's a question that doesn't even have an answer yet because the code on the other side of the interface isn't written yet, and will be written by a busy co-worker,
17:00:28 <kspalaiologos> is there someone in the team
17:00:30 <kspalaiologos> who knows A?
17:00:37 <kspalaiologos> or took part in creating it?
17:00:40 <wib_jonas> so we have to ask him to decide how it will work and make our match that interface.
17:00:47 <kspalaiologos> or you have to figure out the entire code yourself
17:00:57 <wib_jonas> I know how this particular interface works in A
17:01:22 <kspalaiologos> I think
17:01:27 <kspalaiologos> is there a way using C preprocessor
17:01:31 <kspalaiologos> to do something like
17:01:33 <wib_jonas> basically it's a word in which bit 15 is set to mean something in A, but 14 is set to mean the same thing in C, and I read that bit
17:02:04 <kspalaiologos> perform a single operation for every character in any form?
17:02:06 <wib_jonas> so in the tables that I'm making, I have to write 14 or 15 depending on what a co-worker's program will do in the future
17:02:17 <kspalaiologos> ^ just macro it
17:02:25 <wib_jonas> and there's even a reason why it was changed from bit 14 to 15, though not a very good reason
17:02:59 <wib_jonas> I don't have to figure out everything myself, I found out a lot already from my project leader who knows a lot of these projects
17:03:15 <wib_jonas> and I am somewhat in debt to document some of what I've found for future maintainers
17:03:44 <wib_jonas> C preprocessor to perform a single operation for every character => I believe no, but you can
17:03:57 <kspalaiologos> like
17:04:10 <kspalaiologos> raw .H/raw .E/raw .L/raw .L
17:04:11 <kspalaiologos> etc...
17:04:15 <kspalaiologos> where / is a newline
17:04:18 -!- Lord_of_Life_ has joined.
17:04:48 <wib_jonas> use the C preprocessor to do something on every element on a comma-separated list, or every element on a list where each element is parenthisized, https://p99.gforge.inria.fr/ and https://www.boost.org/doc/libs/1_71_0/libs/preprocessor/doc/index.html help in these
17:04:53 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
17:05:20 <wib_jonas> also in very recent C++ there's a way to do something on every character of a string literal, or of a user-defined string literal, in compile time
17:05:37 <kspalaiologos> yeah I know
17:05:39 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
17:05:43 <kspalaiologos> but I want the substitution to be done in compile time
17:05:53 <wib_jonas> does it have to be during preprocessing?
17:05:58 <kspalaiologos> yes
17:06:11 <kspalaiologos> because I'm using C preprocessor with asm2bf and it has been the worst decision I made so far
17:06:17 <wib_jonas> ouch
17:06:38 <kspalaiologos> I regret it
17:06:42 <kspalaiologos> but I think its not too late
17:06:44 <kspalaiologos> to change it
17:06:49 <wib_jonas> mind you, I wrote a somewhat esoteric custom preprocessor for C code at one point, and it was also a bad decision, but I used it for only one C program
17:07:26 <kspalaiologos> it has to support define
17:07:28 <kspalaiologos> and include
17:07:33 <kspalaiologos> ifdef ifndef else endif
17:07:43 <kspalaiologos> possibly the same as C preprocessor without paste operation
17:07:45 <kspalaiologos> and concat
17:07:48 <kspalaiologos> stringify
17:07:56 <kspalaiologos> with some compile time stuff
17:08:02 <kspalaiologos> I think about bundling lua here
17:08:08 <kspalaiologos> to allow user to do everything they wish
17:09:09 <wib_jonas> that one allows you to embed ed commands (with some prefix, let's say #.) into the code, so I can copy a block of code like this: #.ka to mark the beginning of the block, then the block, then #.kb to mark the end, then some other code, then #.kc #.'a,'bt. #.kd to copy the block, then #.'c,'ds/foo/bar/g to do some substitutions on the copy of the
17:09:09 <wib_jonas> block
17:09:37 <wib_jonas> and I implemened this with a shell script that uses a short sed script that transforms the input to an ed script and runs it with ed
17:09:51 <wib_jonas> it's a really stupid design and I'm glad it hasn't survived, but it still haunts me
17:10:16 <kspalaiologos> little you have seen
17:10:37 <wib_jonas> I heard rumors of other people who have written sed scripts with other sed scripts
17:10:44 <kspalaiologos> I'm doing worse stuff on a daily basis
17:11:17 <wib_jonas> and there's an IOCCC entry that writes C++ preprocessor input with the C++ preprocessor (so you run multiple iterations of the C++ preprocessor)
17:11:23 <kspalaiologos> asm2bf is a somehow 90% coverage program
17:11:24 <wib_jonas> possibly two IOCCC entries, I don't remember
17:11:33 <kspalaiologos> albeit being so hacky I can't believe it works
17:12:16 <wib_jonas> kspalaiologos: I'm trying to *clean up* worse stuff on a daily basis for my job, replacing them with saner solutions. I don't always succeed, but when I do, it's at least a good feeling to know that the projects will now be more maintainable.
17:12:40 <kspalaiologos> ^ at least I am writing Malbolge and Brainfuck
17:12:49 <wib_jonas> at least they will be if I write enough internal documentation so that future maintainers can figure out how to use what I made
17:12:50 <kspalaiologos> so it's resonable that the programs have terrible maintainability
17:13:04 <kspalaiologos> but you're doing some real stuff
17:13:21 <kspalaiologos> when I'm doing real stuff I'm trying to do it as good as I can
17:13:33 <kspalaiologos> so I'm not very performant but the job gets done
17:13:46 <kspalaiologos> possibly you have shorter deadlines than me
17:13:54 <kspalaiologos> I can understand it then
17:14:31 <wib_jonas> real stuff during the day, yes
17:15:33 <wib_jonas> I'd like to say that I'm cleaning up badly done stuff that other people made for these projects and their ancestors, but it's not entirely true. I have now worked here for long enough that I'm totally also cleaning up bad stuff that I've done to these projects.
17:15:57 <kspalaiologos> I'd throw an obligatory joke
17:16:02 <kspalaiologos> about Indian programmers
17:16:26 <kspalaiologos> but I'm kinda more careful on foreign IRC networks lol
17:16:31 <wib_jonas> But some of the bad design results from how this company used to have mostly employees who understand electronics well but don't understand enough of programming, so the desktop software side, which is what I'm working on, is in a sad state.
17:16:50 <kspalaiologos> ^ that actually sucks
17:17:53 <wib_jonas> But now they've lost several people who knew the electronics and embedded control software well, so now the desktop software will be good and the rest will be rushed by overworked employees.
17:20:11 <wib_jonas> By the way, unrelated puzzle. In windows 10, how do you move a window such that its top is above the top of your desktop? The window manager normally adjust the location after you as a user move a window, so that they can't be above the top edge. Programs can still put their windows above it, but this is when you're a user moving the window of an
17:20:12 <wib_jonas> existing program.
17:21:55 <wib_jonas> Solution: open Control Panel / Ease of Access / Ease of Access Center / Make the mouse easier to use, and in there, check "prevent windows from being automatically arranged when moved to the edge of the screen". That checkbox has other, more important effects, but as a side effect it lets you move windows above the top edge of the desktop.
17:37:51 -!- wib_jonas has quit (Quit: Connection closed).
18:15:14 <kmc> prevent windows from becoming automatically enraged
18:36:14 <int-e> addition chains are so much fun. http://paste.debian.net/1118289/
18:37:59 <int-e> hmm, actually, can't I stop earlier...
18:39:18 <esowiki> [[Special:Log/newusers]] create * Dart * New user account
18:39:22 <int-e> (Yes, I can. x^(2^30) = 1 (mod 2^32) is true for all odd x.)
18:50:25 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=67503&oldid=67383 * Dart * (+219) /* Introductions */
19:05:28 -!- b_jonas has joined.
19:19:11 -!- atslash has joined.
19:23:54 -!- FreeFull has joined.
19:24:28 -!- atslash has quit (Ping timeout: 265 seconds).
19:25:19 -!- atslash has joined.
20:07:02 -!- nico_nico has joined.
20:07:40 -!- nico_nico has quit (Client Quit).
20:09:34 -!- Hooloovo0 has quit (*.net *.split).
20:11:40 -!- Hooloovo0 has joined.
20:24:10 -!- kingoffrance has joined.
20:25:59 -!- enoua5 has joined.
20:26:28 -!- enoua5 has left.
21:45:45 <arseniiv> and in there, check "prevent windows from being automatically arranged when moved to the edge of the screen". => oh, thanks from me too! Though when applying, that also resets the mouse cursor scheme :( thankfully I have mine saved
21:47:25 <arseniiv> (b_jonas ^)
21:53:21 <esowiki> [[Keg]] https://esolangs.org/w/index.php?diff=67504&oldid=67000 * JonoCode9374 * (+880) /* Program Flow */
21:53:47 -!- sprocklem has joined.
21:54:15 <b_jonas> what video games have you played lately, fungot
21:54:16 <fungot> b_jonas: what is tco again? ( c-c something) to reduce clutter of name generation. i don't particularily find it very interesting. y is the identity function) ( list 3 4))
21:55:15 <esowiki> [[The Temporary Stack]] https://esolangs.org/w/index.php?diff=67505&oldid=67468 * PythonshellDebugwindow * (+251) /* Hello, World! */
21:56:00 <kspalaiologos> =8ball bfbot, will I ever implement markov chains for you?
21:56:00 <bfbot> Outlook not so good
21:56:08 <kspalaiologos> yeah he knows
21:57:44 -!- gitlogger has joined.
21:57:49 <kspalaiologos> ^ my bot died
21:57:53 <kspalaiologos> but I'm not sure when and why
21:57:58 <kspalaiologos> or I don't seem to remember
21:58:08 <kspalaiologos> anyways, it's back in business
22:00:55 <kingoffrance> s/in business/& for december/ to keep the rhyming
22:01:15 <kspalaiologos> ^ lol
22:01:22 <kspalaiologos> but the stability pun is in place here too
22:03:21 <b_jonas> kspalaiologos: if you teach bfbot bfasm, will you interpret it directly, or will you have it go through a compiler to bf then a bf interpreter that recognizes the structures of the bfasm output and executes them optimized?
22:03:23 <esowiki> [[Cell]] https://esolangs.org/w/index.php?diff=67506&oldid=67496 * JonoCode9374 * (+519)
22:03:35 <kspalaiologos> honestly I'm not sure
22:03:42 <kspalaiologos> I think about making some kind of bfasm interpreter
22:03:47 <kspalaiologos> because it would make more sense
22:03:58 <kspalaiologos> but, there is raw too
22:04:01 <kspalaiologos> to embed raw brainfuck
22:04:13 <kspalaiologos> so I guess I'll have to switch the modes whether I grep somewhere this text
22:04:30 <kspalaiologos> ^~~ i should parse the code, so normal grep wont suffice
22:05:39 -!- sebbu2 has joined.
22:07:30 -!- kspalaiologos has quit (Quit: Leaving).
22:08:38 -!- sebbu has quit (Ping timeout: 245 seconds).
22:19:22 -!- arseniiv has quit (Quit: gone completely :o).
←2019-11-26 2019-11-27 2019-11-28→ ↑2019 ↑all