←2017-08-11 2017-08-12 2017-08-13→ ↑2017 ↑all
00:09:50 -!- oerjan has joined.
00:10:10 -!- oerjan has quit (Client Quit).
00:39:32 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:04:57 -!- Antoxyde has quit (Quit: Leaving).
01:17:55 -!- jaboja has quit (Remote host closed the connection).
01:41:19 -!- ATMunn has changed nick to the_moon_in_ksp.
01:44:42 -!- xkapastel has joined.
02:19:59 <HackEgo> [wiki] [[Special:Log/newusers]] create * HereToAnnoy * New user account
02:21:06 -!- the_moon_in_ksp has changed nick to ATMunn.
02:24:45 <HackEgo> [wiki] [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=52699&oldid=52692 * HereToAnnoy * (+312) /* Introductions */
02:25:17 <HackEgo> [wiki] [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=52700&oldid=52699 * HereToAnnoy * (+105) /* Introductions */
02:27:45 <HackEgo> [wiki] [[User:HereToAnnoy]] N https://esolangs.org/w/index.php?oldid=52701 * HereToAnnoy * (+23) Created page with "What should I put here?"
02:35:18 -!- augur_ has quit (Remote host closed the connection).
02:52:11 -!- hppavilion[1] has quit (Ping timeout: 255 seconds).
02:54:48 -!- augur has joined.
02:58:57 -!- augur has quit (Ping timeout: 240 seconds).
03:01:54 -!- ATMunn has quit (Quit: See ya! o/).
03:06:21 -!- hppavilion[1] has joined.
04:03:58 -!- MrRoboto has changed nick to GeekDude.
04:23:45 -!- hppavilion[1] has quit (Ping timeout: 248 seconds).
05:05:45 <zzo38> Is there a faster way of dealing with sign-magnitude on a computer that doesn't use sign-magnitude?
05:06:44 <Hoolootwo> faster than what?
05:07:51 <zzo38> Than always dealing with the sign and magnitude separately (which does work, but is there a better way?)
05:08:56 <Hoolootwo> not sure, what does java do?
05:09:37 <zzo38> I don't know
05:10:00 <zzo38> (Also, I mean specifically for integers; floating-point is already sign-magnitude)
05:10:18 <zzo38> (well, kind of; it is sign-fraction-exponent-magnitude)
05:10:40 <imode> why not just do regular two's compliment arithmetic.
05:11:22 <zzo38> Mainly in case you are working with data or programs that use sign-magnitude, such as if you are implementing MIX, which uses sign-magnitude.
05:11:41 <Hoolootwo> oh, never mind about java, not sure why I thought java did weird stuff with ints, maybe I was thinking of floats
05:11:42 <imode> oh.
05:11:48 <imode> hm.
05:12:03 <Hoolootwo> hasn't been long enough since I've programmed in java
05:12:26 <imode> well, it doesn't really stop you from doing regular integer arithmetic. just different wrapping/overflow conditions.
05:12:54 <HackEgo> [wiki] [[Assignless]] https://esolangs.org/w/index.php?diff=52702&oldid=52678 * Rdococ * (+17)
05:13:26 <zzo38> Yes, I suppose so.
05:14:13 <zzo38> Although there still may be some other considerations with the sign
05:14:42 <imode> such as?
05:15:25 <imode> also, I hope you're storing those numbers as native binary and not as a single bool + n-bit integer.
05:16:29 <zzo38> Even so, it is necessary to keep track of negative zero and positive zero
05:16:36 <HackEgo> [wiki] [[HI9+]] https://esolangs.org/w/index.php?diff=52703&oldid=51373 * Rdococ * (+141) Arbitrary_effect_at_an_arbitrary_point
05:16:47 <HackEgo> [wiki] [[Language list]] https://esolangs.org/w/index.php?diff=52704&oldid=52694 * LyricLy * (+9) /* L */
05:16:53 <HackEgo> [wiki] [[HI9+]] M https://esolangs.org/w/index.php?diff=52705&oldid=52703 * Rdococ * (+1)
05:16:59 <imode> true. but that still lies on underflow/overflow conditions.
05:17:31 <imode> meaning when a negative zero is added to some positive number, as some positive zero is added to a negative.
05:17:36 <imode> I guess.
05:18:47 <HackEgo> [wiki] [[Ly]] https://esolangs.org/w/index.php?diff=52706&oldid=52689 * LyricLy * (+110) /* Interpreters */
05:20:05 <HackEgo> [wiki] [[HI9+]] M https://esolangs.org/w/index.php?diff=52707&oldid=52705 * Rdococ * (-9)
05:20:29 <HackEgo> [wiki] [[HQ9+]] M https://esolangs.org/w/index.php?diff=52708&oldid=52477 * Rdococ * (+93)
05:20:37 <zzo38> The esolang wiki article about "MIX (Knuth)" describes what happens in this case on MIX, at least. (Other things using sign-magnitude might do differently maybe)
05:21:40 <zzo38> (I don't know if MIXPC is actually doing it correctly; if it is wrong, I will fix it)
05:24:05 <zzo38> (But I think the rule is basically like: If x+y=0 then the result has the same sign as x. For multiplication and division the sign of the result is already unambiguous anyways)
05:25:28 <HackEgo> [wiki] [[MIX (Knuth)]] https://esolangs.org/w/index.php?diff=52709&oldid=52696 * Zzo38 * (+3)
05:27:31 <HackEgo> [wiki] [[HI9+]] https://esolangs.org/w/index.php?diff=52710&oldid=52707 * Rdococ * (+415) quines
05:28:12 <HackEgo> [wiki] [[HI9+]] M https://esolangs.org/w/index.php?diff=52711&oldid=52710 * Rdococ * (+73)
05:29:55 <HackEgo> [wiki] [[Talk:HI9+]] M https://esolangs.org/w/index.php?diff=52712&oldid=51381 * Rdococ * (+236)
05:30:05 <HackEgo> [wiki] [[Talk:HI9+]] https://esolangs.org/w/index.php?diff=52713&oldid=52712 * Rdococ * (+79)
05:34:38 <HackEgo> [wiki] [[HI9+]] https://esolangs.org/w/index.php?diff=52714&oldid=52711 * Rdococ * (+373) more quines
05:48:02 -!- j-bot has joined.
05:58:22 <zzo38> I invented a few new kind of astrological house system, such as "Hemisphere-Null" system, which is similar to the "Null" (or "Aries") system, but the houses are flipped in the southern hemisphere.
06:02:00 <zzo38> Do you like this?
06:52:16 -!- rdococ has joined.
06:53:38 -!- doesthiswork has quit (Quit: Leaving.).
07:01:07 <rdococ> Ugh, why am I so scared to talk here?
07:02:21 <zzo38> I don't know?
07:05:40 <int-e> `grwp scar
07:05:41 <HackEgo> intelligence:Intelligence is a scarce resource that is distributed by the CIA. \ ß:ß is not a beta. It's a "scharfes S", aka s with a scarf. \ the universe:The universe was invented by Taneb as an opposing force to oerjan. Escardó proved that it was indiscreet.
07:06:12 <int-e> it's a mystery.
07:06:29 <int-e> sometimes we mock people.
07:08:08 -!- Gregor has quit (Quit: Coyote finally caught me).
07:08:23 <rdococ> I'm still hunting for an original concept. Am I going about this whole esolanging thing wrong?
07:10:14 <zzo38> Depends whether you intend to make only the original one or to just make it anyways regardless of that, I suppose. (Or, do something in between.)
07:12:18 <int-e> rdococ: "1) Watch everything, read everything, and especially read outside your subject -- you should be importing, not recycling." from https://www.lspace.org/books/apf/words-from-the-master.html seems relevant
07:13:13 <zzo38> Yes, that too
07:13:21 <int-e> in almost all cases, inspiration is taking a couple of ideas and combining them in a new way... which means you need to learn about the existing ideas first.
07:23:06 <imode> rdococ: don't fear looking stupid.
07:23:30 <imode> I know I look stupid every time I type something or share some weird thing I wrote.
07:23:45 <rdococ> imode: When I look back on what past me has added to the wiki, I faceplant.
07:24:04 <imode> meh. it's ideas.
07:24:26 <imode> some may like them, some may not. point is they're yours and they reflect your preferences.
07:24:32 <rdococ> Well... whether it works out or not, I have an idea in my head right now (if you want to hear about it).
07:24:49 <imode> sure, it's late and I have some booze. hit me.
07:25:56 <rdococ> K. The idea is that there would be no subroutines; only coroutines. Subroutines would be simulated using a while (true) loop and a call to yield() at the end of each iteration of that loop.
07:26:25 <imode> oh oh oh. I have done this.
07:26:54 <rdococ> Rather than calling a subroutine, you would pass parameters to and resume the coroutine.
07:27:56 <rdococ> imode: so, what do you think?
07:28:41 <imode> it's an interesting concept. I experimented with it for something like a tuplespace.
07:30:34 <imode> the gist was you'd have a large what was basically an assembly program, yet execution was based on coroutines, so that segments of the program would fall through to other segments in sequence. each segment would search for matching tuples in the tuplespace and work on them if it found them, else it would drop to the next segment, in an infinite loop. "yield" was essentially putting tuples back into the
07:30:34 <imode> tuplespace.
07:31:02 <imode> in this way it could be seen as multiple agents working on a shared blackboard. it works well, but only if you have a decent model of execution backing it.
07:31:16 <imode> I have some python code if you wanna see it.
07:31:37 <rdococ> I'd like to see it.
07:32:19 -!- Gregor has joined.
07:33:02 <imode> https://ptpb.pw/urGZ/python
07:33:32 <imode> I treat all my python files as sort of scratch files. they are not pretty.
07:33:35 <imode> but this is turing complete.
07:34:02 <imode> it is not complete in documentation, though. if you scroll down to the bottom you can see some code.
07:34:26 <imode> it's seen as a linear sequence of instructions but the way the matches are set up, you either jump back to a previous statement or fall through.
07:34:39 <imode> it's kind of like... a declarative assembly language, if you wanna read it from a moving car.
07:38:06 <rdococ> Eh... okay...
07:38:38 <imode> the point is it worked pretty well. the yields were implicit.
07:38:57 <imode> meaning you didn't have to do the windows 3.1 thing of giving CPU time to something.
07:41:13 <imode> one of the advantages of that method is that you don't need a stack to do anything. functions that you define, or subroutines as you call them, are _always running_, searching for work to do and where to send the results.
07:42:47 <imode> it'd be interesting to see an esolang that utilized that model.
07:46:11 <rdococ> I barely understand the model myself.
07:47:23 <imode> think of it like this. you have chunks of code, whatever they may be, that represent some functionality of your program. say for example a square function, or something that computes raising a number to a power.
07:48:07 <imode> so one chunk may be one function, one chunk may be another. instead of having a single entry point to your program, and a cursor racing back and forth between subroutine calls and the call stack...
07:48:43 <imode> you have no call stack. the cursor zips linearly around. you can still jump to instructions, sure, but you eventually have to fall through to other chunks of code. what you do differently is you have a sort of mailbox/work order system.
07:49:16 <imode> so you say "I am from function Foo, I am requesting a result from Bar with these parameters. I'm going to send it to Bar's mailbox. Please post the result with my name on it afterwards, so I can pick it up."
07:49:42 <imode> then you yield. if no other functions have work, they simply yield.
07:49:46 <rdococ> O_o
07:50:13 <rdococ> Umm... okay?
07:50:16 <imode> but Bar will go search in its mailbox and say "oh wow I have a letter. oh it's from Foo. cool I'm going to post the result of me mangling this value or whatever back in his mailbox."
07:50:34 <imode> and eventually execution will trace back to Foo, he'll receive the work.
07:51:24 <rdococ> Again, I'm not sure...
07:53:03 <imode> it's kind of like standard coroutines only, like I said, yields are implicit, as are entry points. a segment can pause and resume because it can save its work in its own mailbox, and other segments can send stuff to its mailbox so it can act as a function/subroutine.
07:53:21 <imode> sounds a lot like the actor model erlang has, actually.
07:53:31 <imode> with a blackboard system attached.
07:54:21 <rdococ> To me, it sounds like it could be an object-oriented system.
07:54:32 <rdococ> As in, objects sending messages to eachother.
07:54:45 <imode> certainly can! work at your chosen level of abstraction. :)
07:56:21 <imode> in fact, I was implementing this for a game, so I'd be writing game objects in that style.
07:56:32 <imode> so you really aren't that far off the mark.
07:56:58 <rdococ> I'd also like an opinion on the concept of http://esolangs.org/wiki/Assignless - at the moment, its syntax is borrowed from C/C++ but it has no actual assignment operation.
07:57:32 <imode> so.. like a functional language.
07:57:51 <rdococ> I guess, but it is imperative......is it?
07:57:57 <rdococ> Yeah, it's imperative.
07:58:13 <imode> in the fact that you don't do mutable assignment.
07:58:44 <imode> you just declare values, and code that acts on values. they don't need names attached to them.
07:59:12 <rdococ> I guess...
07:59:50 <imode> why the dots?
08:00:24 <rdococ> I tend to be very uncertain.
08:01:01 <imode> uncertainty is the first step towards certainty.
08:01:18 <rdococ> Odd, "#input"? I don't remember what that # was for.
08:01:28 <HackEgo> [wiki] [[Assignless]] https://esolangs.org/w/index.php?diff=52715&oldid=52702 * Rdococ * (-1)
08:01:51 <rdococ> Ohh, I see now.
08:01:54 <imode> judging from the syntax, a comment.
08:02:01 <Taneb> (forall a b. (Dim a, Dim b) => Layer a b -> v a x -> v b x) -> v a x -> Network a b -> v a x
08:02:15 <Taneb> That's the most frustratingly slightly awkward type signature I've written in a while
08:02:16 <imode> neural nets in haskell? :P
08:02:28 <Taneb> Yeah! That's what I'm trying to do
08:02:32 <imode> sweet.
08:02:45 <rdococ> imode: # is used for comments, yes, but I was talking about the line "if (step < #input) {".
08:03:01 <imode> rdococ: yeah, I was wondering if you meant to comment it out or something.
08:03:34 <rdococ> imode: I guess so, but "if (step < " doesn't seem to be a very useful line to me.
08:03:41 <imode> lol.
08:04:24 <int-e> it's a bit of a cliffhanger
08:04:36 <Taneb> imode, I work for a company that writes neural net compilers and I want to get a feel for how it all works
08:05:01 <imode> Taneb: huh. interesting. done anything with integer-only NNs?
08:06:06 <Taneb> imode, I don't think so, I'm afraid
08:06:24 <Taneb> But there's no real reason why we couldn't
08:06:49 <imode> they're mainly intended for systems with small memory footprints but for large-scale ops they couldn't hurt.
08:07:09 <Taneb> I guess it fits, but we mostly use half-width floats
08:07:39 <imode> hehe. the main strength was also the simplicity in implementation. no need to mess with floating point numbers for devices that lacked an FPU. :P
08:08:09 <Taneb> From the sound of it, they're not out of our remit
08:08:27 <imode> https://cdn.intechopen.com/pdfs-wm/9274.pdf some literature if you're morbidly curious.
08:08:37 <imode> interesting that you choose haskell though. what brought that on?
08:09:02 <Taneb> I don't know, I just joined
08:09:10 <Taneb> Oh, you mean me personally?
08:09:15 <imode> yuh!
08:09:18 <Taneb> I like to use Haskell as much as I can
08:09:30 <Taneb> Joined this company because I heard that they use Haskell
08:09:41 <Taneb> It's the language I know best
08:09:54 -!- erkin has joined.
08:09:59 <imode> nice. I don't think I've ever seen a NN libarary for haskell...
08:10:15 <imode> no time like the present. though I agree, that is an awkward type signature. :P
08:10:28 <Taneb> It looks like there's a few on Hackage
08:10:37 <Taneb> @type foldr
08:10:39 <lambdabot> Foldable t => (a -> b -> b) -> b -> t a -> b
08:10:45 <Taneb> That's what the type signature wants to be
08:11:55 <Taneb> I'm trying to make a type-safe-as-possible feed forward network
08:12:49 <Taneb> It's going to be a fair bit awkward but I'm doing this for fun mostly
08:13:25 <imode> 's all that matters in the end.
08:14:15 -!- xkapastel has quit (Quit: Connection closed for inactivity).
08:15:05 <Taneb> feedForward sigmoid = foldNetwork (\l i -> sigmoid <$> weights l !* i - biases l)
08:15:10 <Taneb> I love how neat that is
08:16:14 <imode> damn.
08:31:16 <Taneb> Now I've defined an analogous function to mapAccumL, I'm going to try and figure out backpropogation
08:52:20 -!- ski has joined.
08:58:30 -!- g0d355__ has joined.
09:13:23 -!- btiffin has joined.
09:23:06 -!- augur has joined.
09:36:39 <rdococ> Would it be a good idea to use "function" to refer to functions that can't form closures, and "closure" to refer to those that can?
09:46:45 -!- zseri has joined.
09:49:03 -!- augur has quit (Remote host closed the connection).
09:52:55 -!- imode has quit (Ping timeout: 246 seconds).
09:58:24 -!- imode has joined.
10:11:00 <rdococ> imode: One other idea I had was different flavours of function: @funcs inherit their scope from their caller, rather than their creator (that is, no closures), &funcs have /no/ scope of their own - all variables they define can be accessible from after the function is called, and ^funcs force their caller to return when they return.
10:11:19 <rdococ> They would be used in defining custom control structures.
10:16:30 -!- ^v has quit (Ping timeout: 240 seconds).
10:17:50 -!- ^v has joined.
10:19:01 -!- augur has joined.
10:23:20 -!- augur has quit (Ping timeout: 246 seconds).
10:25:27 <imode> interesting concept, but alas it is far too late for me to even consider the ramifications.
10:25:48 <imode> head go on pillow now. sweet dreams.
10:30:24 -!- imode has quit (Ping timeout: 258 seconds).
11:08:40 -!- Phantom_Hoover has joined.
11:18:21 -!- wob_jonas has joined.
11:18:44 <wob_jonas> I am cutting the book from the cover right now. And AAAAAAA IT HURTS ME INSIDE SO MUCH even though I know it's the right thing to do rationally.
11:26:38 -!- jaboja has joined.
11:28:51 -!- Antoxyde has joined.
11:36:35 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
11:45:11 -!- LKoen has joined.
11:49:33 -!- btiffin has left.
12:14:16 -!- FreeFull has quit.
12:23:53 -!- 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.”).
13:04:00 -!- ybden has quit (Read error: Connection reset by peer).
13:05:05 -!- ybden has joined.
13:25:03 -!- jaboja has quit (Ping timeout: 240 seconds).
14:00:25 -!- doesthiswork has joined.
14:09:57 -!- jaboja has joined.
14:13:20 -!- HTTP_____GK1wmSU has joined.
14:13:36 -!- HTTP_____GK1wmSU has left.
14:28:05 -!- jaboja has quit (Ping timeout: 240 seconds).
14:30:50 -!- ATMunn has joined.
14:32:21 -!- jaboja has joined.
15:01:42 -!- xkapastel has joined.
15:09:50 <HackEgo> [wiki] [[Talk:Assignless]] N https://esolangs.org/w/index.php?oldid=52716 * Zseri * (+154) Created page with "Assignless looks like a more functional version of C. Is it (pure) functional? ~~~~"
15:27:21 -!- boily has joined.
15:28:51 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
15:49:05 <boily> `5 w
15:49:10 <HackEgo> 1/2:numbers//Numbers: 0, 848, 1344, 1696, 1969, 2192, _, 2544, 2688, 2817, _, 3040, _, _, 3313, 3392, ... \ `whoops//`whoops is a repluralizer. \ qdb//qdb is used like: `quote; `quote regexp; `quote id; `addquote ...; `delquote id; `pastequotes regexp; `pastenquotes [n]; see also quoteformat \ sleep//Sleep is for the weak. \ ping//Ping is a Peking
15:49:12 <boily> `n
15:49:13 <HackEgo> 2/2:Duck H4XX0R who amuses himself by making people's IRC connections timeout.
15:49:44 <boily> `quote some.*thing
15:49:46 <HackEgo> 48) <Madelon> both of you, quit it with the f-bombs. <Madelon> kaelis: what's the matter? something censoring stuff you're interested in? \ 73) <Warrigal> Making a small shrine to Lawlabee in my basement is something I should get around to at some point. \ 96) <fungot> AnMaster: to any airbus plane. 3 passengers sadly died the most awesome thing e
16:18:51 <HackEgo> [wiki] [[User:HereToAnnoy]] https://esolangs.org/w/index.php?diff=52717&oldid=52701 * HereToAnnoy * (+2)
16:32:36 -!- boily has quit (Quit: KERNAL CHICKEN).
16:33:27 <HackEgo> [wiki] [[Assignless]] https://esolangs.org/w/index.php?diff=52718&oldid=52715 * Zseri * (-26) remove unneeded returns
16:39:37 <HackEgo> [wiki] [[Assignless]] https://esolangs.org/w/index.php?diff=52719&oldid=52718 * Zseri * (-44) remove semicolons after braces
16:43:03 -!- ATMunn has quit (Remote host closed the connection).
16:45:37 -!- ATMunn has joined.
16:46:28 <int-e> @metar eddf
16:46:28 <lambdabot> EDDF 121520Z 21009KT 9999 -RA FEW010 SCT020 BKN026 17/14 Q1018 NOSIG
16:46:49 <int-e> seems plausible.
16:46:52 <int-e> @metar lowi
16:46:52 <lambdabot> LOWI 121520Z 08004KT 040V120 9999 FEW025 BKN075 16/11 Q1022 NOSIG
17:05:44 -!- augur has joined.
17:10:02 -!- augur has quit (Ping timeout: 246 seconds).
17:21:18 -!- FreeFull has joined.
17:27:01 -!- boily has joined.
17:31:19 -!- erkin has quit (Quit: Ouch! Got SIGABRT, dying...).
17:37:18 -!- copumpkin has quit (Ping timeout: 240 seconds).
17:38:18 <HackEgo> [wiki] [[Ans]] M https://esolangs.org/w/index.php?diff=52720&oldid=52418 * Zseri * (+1) fix 'dead link' note
18:03:56 -!- jaboja has quit (Ping timeout: 246 seconds).
18:26:18 -!- imode has joined.
18:31:37 -!- AnotherTest has joined.
18:54:19 -!- copumpkin has joined.
19:03:04 -!- moony has joined.
19:03:22 <moony> Just trying to look for a quick solution, how do you guys limit UMLbox's disk space on HackEgo?
19:17:02 -!- jaboja has joined.
19:28:28 <fizzie> I don't think we have limits on total disk space, though we do set ulimit -f 10240 (i.e., RLIMIT_FSIZE of 10 megs) to limit the maximum size of created files.
19:29:56 <fizzie> If you wanted a hard upper bound, Linux does have filesystem quotas, or you could just have the root on a filesystem of limited size. The failure mode of that might not be terribly great if exceeded, though.
19:34:11 <moony> fizzie, mk. im working with a box i cant change the kernel or software on, so ulimit will have to do for now
19:34:57 <moony> (well i can change software, root, but cant edit disk to make a new limited partition even if i wanted to)
19:37:24 <fizzie> You can make a file you loop-mount as a block device. Either inside or outside the UML.
19:37:52 <moony> i never thought of that
19:38:22 -!- Sgeo has quit (Ping timeout: 260 seconds).
19:38:27 <moony> But, as i dont need it to be permanant, i could probably use a tmpfs
19:40:27 -!- augur has joined.
19:45:47 -!- wob_jonas has joined.
19:47:24 <wob_jonas> Maybe other elements aren't patented because the guys who patented tungsten has also patented the method of patent trolling by patenting chemical elements and natural mineral resources, and they're lashing out on other patents of elements using that.
19:49:16 <moony> why even allow patenting something that is part of everyday life that we cant help? :V
19:49:31 <moony> because sooner or later someone is gonna patent air and make people pay fees to breath
19:51:13 <boily> @metar CYQB
19:51:13 <lambdabot> CYQB 121800Z 05006KT 040V110 25SM FEW010 FEW014 BKN031 BKN070 21/17 A2982 RMK SF1SC2SC4AC1 SF TR TCU EMBD SLP101 DENSITY ALT 1100FT
19:51:57 <wob_jonas> "<zzo38> Is there a faster way of dealing with sign-magnitude on a computer that doesn't use sign-magnitude?" => I'm not sure. There's probably not too much to gain over keeping the sign and magnitude separate if you do have to keep track of the sign of zeros. There might be some tricks, so you could check Hacker's Delight and Knuth vol 4 for ideas
19:51:58 <wob_jonas> .
19:53:21 <wob_jonas> zzo38: keeping the sign and magnitude separately definitely helps with at least MIX memory words, which are often accessed as partial fields
19:54:05 <zzo38> wob_jonas: Yes, and I have certainly thought of that
19:54:25 <zzo38> Which is one reason why I had decided to keep them separately
19:56:55 <wob_jonas> for some temporary values, you can use different formats of course, such as how you already do with addresses
19:59:26 <zzo38> Yes, MIXPC stores the address as a plain number instead of MIX bytes, but still keeps the sign separately. However, an implementation that supports only binary MIX could store all five fields in a single 30-bit value, for example if implementing MIX on MMIX.
20:01:47 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
20:01:50 <zzo38> Also, the MIXASM program included with MIXPC stores MIX word values internally as the sign and five fields in decimal, together with another number whose bits specify how the fields are divided; if a "BASE 100" command is omitted in the input file, it uses that data to output a deck that is independent of byte size.
20:10:50 -!- wob_jonas has joined.
20:12:07 -!- wob_jonas has quit (Client Quit).
20:12:41 -!- wob_jonas has joined.
20:12:57 <zzo38> Hello
20:13:23 <zzo38> I think I may have posted some message while you are not on temporarily
20:13:48 <zzo38> (But of course it is commonly what is happen on the IRC anyways, I think)
20:14:34 <wob_jonas> zzo38: in particular, you can't easily store mix words as doubles, because the IEEE 754 rules handle signed zeros differently than the MIX addition.
20:15:15 <wob_jonas> also extracting fields from such a representation would be very difficult
20:15:25 <zzo38> wob_jonas: Yes, I can see
20:22:21 -!- D33P-B00K has joined.
20:24:25 -!- D33P-B00K has left.
20:25:41 <zzo38> At least, on MMIX, it look like bitwise complement by the sign bit (if the number is a 32-bit number rather than a 64-bit number) by MXOR
20:26:00 <zzo38> (I don't know if it is help though, or what kinds of programs it might help with if at all anyways)
20:32:21 -!- oerjan has joined.
20:39:59 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
20:43:20 -!- wob_jonas has joined.
20:45:03 <moony> fizzie, just one last question: Which kernel do you use for umlbox?
20:53:25 <fizzie> moony: I don't really maintain the bot. The test installation I have locally uses linux-3.7.10.
20:53:46 <fizzie> The one on HackEgo seems to be 3.13.0.
20:54:54 <moony> mk
21:04:04 -!- doesthiswork has quit (Quit: Leaving.).
21:05:19 <zzo38> Do you know that the latest version of MIXPC also has a new I/O unit 36 which is the television (in addition to fixing several mistakes, and adding the feature to set a breakpoint)?
21:11:21 <wob_jonas> zzo38: can't the teletype output already be connected to a CRT?
21:11:33 <wob_jonas> I mean, the computer itself doesn't have to know the difference
21:12:53 <wob_jonas> nor do programs have to know the difference much, unless the CRT displays less than 70 characters per line
21:12:58 -!- Sgeo has joined.
21:14:06 <zzo38> Of course it can be already connected to a CRT, although unit 36 is for APA mode rather than text.
21:14:36 <wob_jonas> what is APA mode?
21:14:40 <zzo38> (You can physically display them on the same screen if you want to)
21:14:59 <zzo38> wob_jonas: All-points-addressable.
21:15:23 <zzo38> (Although output to unit 36 will replace the entire picture at once with the contents in memory starting at the specified address.)
21:15:59 <wob_jonas> what? do you mean a pixel-based full screen frame buffer? that would have more memory than a MIX computer, it's totally unrealistic for that era.
21:16:30 <zzo38> The resolution is very low; only 80x40
21:17:36 <wob_jonas> huh... that's not really APA mode, that's more like high-resolution text mode
21:17:40 <wob_jonas> but ok
21:18:17 <wob_jonas> I thought real graphics starts at over 128 pixels width
21:18:54 <zzo38> Yes, and it is actually implemented in MIXPC using text mode, although each pixel in the 80x40 area is limited to being either on or off (or even different intensities, up to the size of a MIX byte, although MIXPC only implements on/off)
21:19:00 <imode> real graphics?
21:19:47 <imode> ooooh. as in real pixel manipulations rather than textmode.
21:21:57 <wob_jonas> ok, I guess that's not really true. there is one cheap graphing calculator, the TI-80, that has only a 64x48 pixel display
21:22:46 -!- dingbat has joined.
21:23:08 <imode> yeah, there's a lot of small displays that allow per-pixel manipulation.
21:23:18 <wob_jonas> but that's unusually low even for an early graphic calculator
21:23:39 <imode> hell even an 8-column lcd has per-pixel manipulation.
21:25:23 <wob_jonas> Casio fx-6300G may be an even smaller example
21:25:35 <zzo38> EDSAC (which predates MIX) has a graphical display too, although with a lower resolution.
21:26:16 -!- Sgeo_ has joined.
21:27:03 -!- Sgeo has quit (Ping timeout: 258 seconds).
21:27:40 <wob_jonas> and sure, I have plotted functions on a programmable calculator with the 14x3 text characters, so you only see three values at a time and have to watch as the curve scrolls through and you need a VERY active imagination, but I don't call that "all pixels addressable" or anything close
21:29:04 <zzo38> OK, then
21:33:26 -!- PinealGlandOptic has quit (Quit: leaving).
21:35:45 <zzo38> The assembler I wrote for MIX is not quite the same as MIXAL, such as it has no compile-time multiplication/division, and omits a few other things too, but does have a few new commands such as FILL and PUNCH.
21:36:21 <zzo38> (PUNCH is used for appending additional data that will be loaded at runtime, rather than in the loader routine.)
21:37:56 <zzo38> wob_jonas: Do you like my way of fitting the loader program onto one card instead of needing two cards?
21:43:05 <zzo38> The same restriction to which characters can be punched still holds.
21:43:20 <zzo38> (I actually made two loader programs; one for specific byte sizes and one for programs independent of byte size.)
21:45:25 -!- Sgeo__ has joined.
21:45:27 <zzo38> For the one for specific byte sizes, the rest of the program still takes (approxmiately) the same number of cards, although the format of the cards is different; in order to handle negative numbers, the numbers are stored "biased"; the first five columns store the address and the last five columns must be blank; multiple words on one card are on addresses skipped by 2 instead of by 1; the transfer card is different (it overwrites the loading routin
21:47:14 -!- Sgeo_ has quit (Ping timeout: 246 seconds).
21:50:16 <zzo38> The assembler also tries to reduce the number of holes to be punched, so that it will use spaces instead of zeros where possible.
22:24:20 -!- ais523 has joined.
22:25:00 -!- zseri has quit (Ping timeout: 260 seconds).
22:25:29 <wob_jonas> zzo38: I don't much care if it's one card or two card. the loader format already isn't trying to compress the program much, so one extra card doesn't hurt anyone.
22:26:11 <zzo38> OK, although I still decided to do it with just one card anyways, mainly just because I want to do
22:26:23 <wob_jonas> sure
22:31:05 <zzo38> However, this one card program may be faster (although I have not actually tested the speed), and needs to use only 31 words of memory while loading.
22:31:59 <zzo38> (Or maybe it isn't faster; I don't know)
22:34:42 <int-e> home sweet home
22:36:34 <wob_jonas> zzo38: isn't the speed of loading mostly limited by the speed of the card reader though?
22:36:35 -!- augur has quit (Remote host closed the connection).
22:40:33 -!- Guest13399 has joined.
22:53:22 <zzo38> wob_jonas: Yes, I suppose so
22:54:04 -!- Guest13399 has quit (Quit: Leaving...).
22:54:26 -!- jaboja has quit (Ping timeout: 246 seconds).
22:58:02 <zzo38> I don't actually know how fast is the card reader anyways, although it may be implementation-dependent.
22:58:54 <wob_jonas> it is implementation-dependent
22:59:00 <wob_jonas> but slow enough in any case
22:59:35 <zzo38> Anyways my version does not need any special logic for the transfer card, and since I have returned the book to the library I cannot compare the method used for loading signed numbers
23:01:27 -!- ais523 has quit.
23:01:36 -!- ais523 has joined.
23:02:58 -!- doesthiswork has joined.
23:06:47 <zzo38> A more efficient encoding for the independent-byte-size loader could be made though; currently each number needs one card, which seem too much
23:07:44 <zzo38> The speific-byte-size loader though is already efficient.
23:13:30 -!- AnotherTest has quit (Ping timeout: 240 seconds).
23:19:26 <moony> You're saying umlbox doesnt provide init :v `Kernel panic - not syncing: No init found. Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.`
23:20:58 <fizzie> It does provide an init.
23:21:21 <fizzie> It's right there in the repository, init.c.
23:22:56 <fizzie> The Makefile should put it in the umlbox-initrd.gz, and the umlbox script gives that as an initrd argument to the UML kernel.
23:23:09 <zzo38> Support for "BASE 64" should also be added into this assembler; currently it only support 100 and independent.
23:25:05 <wob_jonas> zzo38: or make it support any base from 64 to 100 inclusive
23:25:26 <wob_jonas> for ternary or more unusual machines
23:25:29 <zzo38> Yes, it ought to, you are right.
23:25:48 <moony> huh, it does contain init... Why is it not executing it?
23:25:48 <wob_jonas> but yes, 64 and 100 cover most of the practical cases
23:25:55 <zzo38> (MIXPC already does, although MIXASM currently doesn't.)
23:26:55 <fizzie> moony: Maybe try passing -v to umlbox and see if all the paths in the command line it runs seem to be right.
23:27:27 <zzo38> In any case you could use the independent mode if you really need to, although it would be better to support any base from 64 to 100 anyways, in case you do not want to use the independent mode.
23:27:36 <moony> they all look good. here's the output of a test: https://hastebin.com/anobevubum.pas
23:29:39 -!- oerjan has quit (Quit: Nite).
23:29:53 <fizzie> moony: Odd. Does zcat /usr/bin/../lib/umlbox/umlbox-initrd.gz | cpio -t say "init"?
23:30:25 <moony> yup
23:34:15 <wob_jonas> zzo38: you could even have a base 256 machine. it's not quite standard according to the book, but the only change you really need is extending the CHAR instruction with an extended encoding format for large numbers and add a new NUME instruction that decodes that format
23:35:16 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
23:35:22 <moony> fizzie, i think its another case of the linux kernel being magic :V
23:35:32 -!- wob_jonas has joined.
23:35:37 <wob_jonas> it's still possible to encode a word into a word a word into ten punchable bytes easily
23:35:48 <zzo38> OK, it is another idea, although standard MIX programs may assume that the base is 64 to 100 and that it isn't larger than 100.
23:36:04 <wob_jonas> yes, they may assume that
23:36:22 <fizzie> moony: I don't have any good ideas, since it's not really saying much by the way of useful errors. Though I guess "Failed to execute /init" need not really mean it's missing, could be something else as well.
23:36:38 <moony> i wish the kernel would tell me why :V
23:36:51 <zzo38> So this new way is not really MIX, it is "nearly MIX", I suppose. (Still, it can be a possible variant anyways)
23:36:51 -!- augur has joined.
23:36:59 <wob_jonas> yes, it's a variant
23:37:46 -!- copumpkin has quit (Ping timeout: 258 seconds).
23:37:56 <fizzie> moony: Heh, well, looks like that error in a more current kernel (4.10) has changed to "Failed to execute %s (error %d)\n", so maybe someone else wished that as well.
23:38:56 -!- augur has quit (Remote host closed the connection).
23:39:37 <fizzie> https://github.com/torvalds/linux/commit/ba24762bd "make init failures more explicit"
23:40:27 <moony> hmm
23:40:38 <moony> i'll try(tm) to see if it'll work with a recent kernel
23:41:03 <fizzie> If I'm reading github right, that commit made it to 3.13, which is what we've got on HackEgo.
23:41:16 <fizzie> So that might be a reasonable version to try.
23:41:38 <fizzie> I remember running into problems when I tried a 4.x series one when trying to set up my local test environment.
23:42:33 -!- augur has joined.
23:43:13 <fizzie> You might also want to verify ("file init", "file umlbox-linux") your both executables are for the same architecture.
23:43:51 <fizzie> (Instead of, say, x86 and x86-64.)
23:47:01 <moony> fizzie, that was exactly the problem :V kernel 32bit init 64bit
23:47:03 <moony>
23:47:17 -!- augur has quit (Ping timeout: 246 seconds).
23:49:04 <fizzie> Maybe I should've said that first, then. :)
23:50:26 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
23:51:44 <imode> melted blue stilton on a burger is the best thing in the world.
23:55:29 <moony> fizzie does umlbox not work with 64-bit kernels for some reason, or is it just being silly and enforcing the kernel be 32bit?
23:55:57 <fizzie> It should work with 64-bit kernels just fine.
23:56:03 <fizzie> I use it with one.
23:56:20 <fizzie> init: ELF 64-bit LSB executable, x86-64 -- umlbox-linux: ELF 64-bit LSB executable, x86-64.
23:56:27 <fizzie> Just as long as you have both the same.
←2017-08-11 2017-08-12 2017-08-13→ ↑2017 ↑all