←2013-11-22 2013-11-23 2013-11-24→ ↑2013 ↑all
00:00:04 <Bike> maybe it's naïve of me to think that analyers shouldn't have to infer things i meant in the original code
00:00:10 <Bike> analyzers
00:02:17 <int-e> ais523: I bet -Os is not the primary focus of the gcc developers :)
00:02:48 <ais523> int-e: it should be, it's often the fastest setting due to caching issues
00:03:01 <int-e> (Besides, when do you stop making the code smaller? There's a lot of things one can do when speed is of no importance.)
00:03:02 -!- yorick has quit (Remote host closed the connection).
00:03:17 <ais523> Bike: finite state machines are a very common design pattern
00:06:02 <Slereah> x86 could use more general registers
00:06:08 -!- Bike_ has joined.
00:06:09 <Slereah> 4 is a bit short to work with well
00:06:18 <int-e> you have 7
00:06:29 <int-e> si, di, bp are also available
00:07:03 <Bike_> ais523: of course, but it seems like it should be possible to just tell the tools "this is an FSM" instead of them having to analyze whatever encoding of an FSM you write and infer that that was an FSM before you encoded it
00:07:09 -!- Bike has quit (Disconnected by services).
00:07:10 <Slereah> Aren't they related to the stack and such?
00:07:11 -!- Bike_ has changed nick to Bike.
00:07:25 <Slereah> Don't I risk bothering the stack if I toy with them
00:07:47 <ais523> Bike: the entire practice of VHDL/Verilog appears to be deciding what you want, then writing it into VHDL/Verilog in such a way that the compiler will infer it back
00:07:49 <Slereah> Also what about ES FS and GS
00:07:54 <Slereah> Can I fuck with them
00:08:06 <ais523> Slereah: SI and DI are not related to the stack, they're used as postincrement operators by some commands
00:08:14 <ais523> and tend not to be efficient unless you use them like pointers
00:08:17 <Bike> ais523: so, is it naive of me to think that that's fucking stupid, or am i missing something?
00:08:24 <Slereah> Okay
00:08:33 <ais523> BP is related to the stack but it's mostly useful for debugging
00:08:52 <int-e> bp is used in some programming languages as a "frame pointer", but you don't have to worry about that in your small test programs. DOS doesn't care about bp.
00:08:57 <Bike> like, for god's sake, the actual FPGA is a bunch of LUTs and shit, and aren't there ALUs or adders or something at least
00:08:59 <kmc> an interview question I like is "Explain how inlining could make code faster, or slower, or bigger, or smaller"
00:09:05 <ais523> Bike: I guess it saves the language needing to evolve to adopt whatever basic structures the FPGA manufacturers add to their FPGAs
00:09:13 <ais523> but apart from that I can't see any advantages
00:09:17 <Slereah> Oh wait
00:09:28 <Bike> i think there should be a better way. i'll think about it, and then never do it
00:09:29 <Slereah> I need it to be 4 bits in my program to work
00:09:30 <Slereah> Dang
00:09:31 <Bike> kmc: nice.
00:09:34 <Slereah> I guess I'll go with cl
00:09:44 <fizzie> Postdecrement too!
00:09:46 <ais523> Bike: an actual FPGA is mostly LUTs and RAM (and wires), sometimes it'll have a few fast multipliers on or something like that
00:09:53 <kmc> Slereah: yes, one of the big improvements in x86-64 is adding 8 more general purpose regs
00:10:08 <Bike> fpga design seems super interesting really, i honestly like the idea of designing my own
00:10:08 <int-e> Slereah: you mean 8 bits, hopefully?
00:10:13 <Slereah> Nope
00:10:14 -!- muskrat has joined.
00:10:14 <Slereah> 4
00:10:17 <Bike> and putting an HDL on top of it <_>
00:10:20 <ais523> CL is 8 bits
00:10:24 <ais523> there aren't any 4-bit registers
00:10:28 <Slereah> Oh
00:10:37 <ais523> it's the bottom half of CX, which is 16
00:10:41 <Slereah> I guess I do mean 8
00:10:53 <Bike> maybe i should look at your charity thingie
00:11:10 <fizzie> CLL and CLH and CHL and CHH should clearly exist.
00:11:18 <Bike> er, was it charity
00:11:19 <Bike> verity?
00:11:23 <int-e> ais523: anyway, I'm not opposed to writing assembly code, but there should be a good reason :)
00:11:41 <Slereah> Well I do have a good reason
00:11:45 <int-e> fizzie: well, they don't :)
00:11:47 <Slereah> Ferrets are nesting in my brain
00:11:50 <Bike> ais523: what's that hdlish thingie you work on.
00:12:13 <ais523> Bike: Verity, http://veritygos.org
00:12:22 <ais523> although the person currently in charge of it does not fill me with confidence
00:12:25 <int-e> (learning how stuff works is among the possible good reasons, btw)
00:12:48 <Bike> oh no?
00:12:52 <ais523> I got an email complaining that the compiler was emitting wires with no declarations, which is a reasonable complaint
00:13:14 <ais523> then when I explain that it's generating incorrect code due to an error in the original program that it failed to notice (which is a bug)
00:13:24 <ais523> their solution is to add declarations and then complain it still doesn't work
00:13:40 <Bike> can't help but notice the "language" page is comparing to programming languages, not HDLs
00:14:24 <ais523> Bike: it's pretty high level for an HDL, that's the entire point
00:14:35 <Bike> mrm
00:14:36 <ais523> actually it's a dialect of Algol 60
00:14:45 <ais523> but you can't really say that nowadays without people laughing at you
00:15:18 <Bike> nah, i like algol.
00:15:34 <Bike> http://en.wikipedia.org/wiki/ELLA_(programming_language) it seems the standards for HDLs are not that high.
00:16:01 <Bike> also there are a billion "C-like languages", why has god forsaken me
00:16:11 <Bike> "C++ extended with HDL style threading and communication for task-parallel programming"
00:17:04 <Slereah> Woo, I did an addition
00:17:55 <Slereah> Let's try doing an iterative one
00:20:41 <Bike> i just realized. is this what it's like to be sgeo
00:22:41 <Sgeo> What are you referring to? Am I associated with complaining about uncreative languages?
00:22:53 <fizzie> Bike: Next you'll get involved in some virtual world stuff.
00:22:56 <Sgeo> Or am I associated with something else that is similar to what you said?
00:22:58 -!- CADD has joined.
00:23:06 <Bike> looking for 'the perfect HDL'
00:23:11 <Bike> fizzie: god forbid.
00:23:21 <Sgeo> Ah :)
00:23:38 <Sgeo> Why am I writing smiley faces this is unircsgeolike
00:23:54 <oerjan> maybe your personalities are swapping
00:24:08 <fizzie> Bike: Just you wait, you'll be converting your savings account to Linden-dollars any moment now.
00:24:20 <Bike> nooooo
00:25:47 <oerjan> `pastelogs bike> .*:)
00:25:55 <HackEgo> grep: unmatched parentheses \ http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.9987
00:26:01 <oerjan> fancy
00:26:02 <Bike> so VGA controllers are CRT only right
00:26:06 <oerjan> `pastelogs bike> .*:[)]
00:26:18 <Bike> or... vga is i mean
00:26:47 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.16433
00:26:51 <Bike> "For example, the Microsoft Windows splash screen, in versions prior to Windows Vista, appears while the machine is still operating in VGA mode, which is the reason that this screen always appears in reduced resolution and color depth." oh, that's neat.
00:27:30 <oerjan> hm Bike isn't precisely a heavy :) user
00:29:03 <Slereah> Yay I did a square function
00:29:13 <Slereah> From a sum
00:29:15 <Bike> so this is like 50% haskell, 40% other people, 9% me being nice to newbies, and 1% me being a dick to elliott
00:29:17 <int-e> `pastelogs int-e> .*:[)]
00:29:28 <Bike> percentages are not to scale
00:29:31 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.27098
00:29:44 <Bike> Slereah: say, you don't happen to have The Art of Computer Programming do ya
00:29:51 <Slereah> Nope
00:29:55 <Bike> might be interesting to follow along, translating the code from MIX to x86
00:29:56 <Slereah> I don't even have SICP
00:30:05 <Slereah> I'm not even sure I have any computer related book
00:30:09 <Slereah> Except for like
00:30:12 <Slereah> Turing machines and shit
00:30:37 <Slereah> Hm, let's try a recursion maybe
00:30:41 <Slereah> Some factorial
00:31:28 <oerjan> int-e: now repeat after me, "My name is int-e and I am a :)holic"
00:32:09 <int-e> nice 7 year hiatus.
00:32:40 <int-e> oerjan: that's just a trick to get me to use yet another smiley, isn't it?
00:33:34 <int-e> I won't even grep for semicolon-closing parenthesis, because I'm afraid the result will be even longer.
00:33:36 <Bike> Slereah: are you a university student
00:34:10 <Slereah> I was, and I am once again!
00:34:14 <Slereah> Damn job market
00:35:12 <oerjan> int-e: oops
00:35:14 <Bike> well, check the library, then
00:35:32 <oerjan> the :A movement is not starting well
00:35:37 -!- KingOfKarlsruhe has joined.
00:36:13 <fizzie> oerjan: Oh no! Z:
00:37:20 <oerjan> fizzie: it's like having the word for alcohol containing a phoneme that can only be produced by drinking it
00:37:53 <oerjan> those poor airholics are also in trouble, i fear
00:39:14 -!- Taneb has joined.
00:39:28 <oerjan> `ello Taneb
00:39:30 <HackEgo> Hello, Taneb !
00:40:10 <Taneb> Yo
00:40:11 <Taneb> Yoerjan
00:40:15 <oerjan> surely that should be Tanellob
00:40:36 <Sgeo> The SCP-2000 contest is open
00:41:11 <oerjan> SCP 2000 is a contest that you cannot escape. hth
00:41:13 <int-e> oerjan:whatdoyousayaboutallthosespaceholics?
00:41:52 <Bike> what, are they already planning on the third scp series?
00:42:47 <oerjan> int-e : i don ' t see any problem
00:43:36 -!- carado has quit (Ping timeout: 252 seconds).
00:45:28 -!- carado has joined.
00:45:42 <Slereah> I guess I need to make one memory space per recursion if I want to do a recursive thing
00:45:51 <Slereah> hm
00:46:08 <Slereah> I will see about that tomorrow
00:46:10 <Bike> stack!
00:46:10 <Slereah> It is my bedtime
00:46:15 <Slereah> Staaaack
00:46:31 <int-e> a recursive "call" just works
00:46:53 <Slereah> But call doesn't send arguments
00:46:53 <int-e> you may have to save registers with "push" and restore them with "pop" afterwards
00:46:59 <Slereah> So I do need to stack shit
00:47:05 <int-e> call preserves registers
00:47:20 <Slereah> Just like in the doodoo olympics
00:47:22 <int-e> you can use those for arguments, no trouble.
00:47:53 <Slereah> Yeah, but it's a factorial
00:48:08 <Slereah> There has to be a whole bunch of calls!
00:48:14 <Slereah> I guess n-1
00:48:22 <fizzie> Why is it always a factorial?
00:48:44 <Slereah> Because the factorial is an old and time tested recursive function!
00:48:55 <Slereah> You can also do Fibonacci, but Fibo needs two conditions
00:48:57 <Bike> there are way better implementations though.
00:49:12 <Bike> many of which involve far more fun things than recursion.
00:49:20 <Bike> imo do tak or ackermann
00:49:39 -!- CADD has quit (Ping timeout: 246 seconds).
00:50:47 <oerjan> i am not sure ackermann with bounded size ints has quite the intended effect.
00:53:19 <Slereah> Well I'm limited to 255
00:53:21 <Bike> what everrrr
00:53:22 <Slereah> So ackerman is a bad idea
00:53:41 <int-e> damn. "09:27:05 <int-e> I'll remember that, GregorR-W." -- I completely forgot.
00:53:58 -!- CADD has joined.
00:54:02 <Bike> factorial will fail too after, what, 14?
00:54:24 <Gregor> wut
00:55:35 <int-e> Gregor: http://int-e.eu/~bf3/tmp/remembering
00:55:48 <int-e> (Oh and that was in july 2005.)
00:55:50 <Bike> 12, on 32 bits
00:56:30 <Bike> for 16 bits it goes up to 8. imo whoopdie fucking do
00:56:42 -!- Phantom__Hoover has joined.
00:56:46 -!- carado has quit (Remote host closed the connection).
00:56:53 <Gregor> A lot has changed since July 2005.
00:57:01 <Gregor> For instance, I no longer specify my read/write status.
00:57:04 -!- carado has joined.
00:57:34 <oerjan> i remember that.
00:58:04 -!- oerjan has quit (Quit: Also. Good night.).
00:58:33 -!- Phantom_Hoover has quit (Ping timeout: 252 seconds).
01:00:02 <int-e> !daemon
01:03:52 <Sgeo> Gregor: is the Sonivox soundfont even sold anymore?
01:21:19 <Gregor> Sgeo: A quick look would appear to suggest "no"
01:21:58 <Sgeo> :(
01:22:37 -!- Phantom__Hoover has quit (Remote host closed the connection).
01:34:39 -!- Taneb has quit (Quit: Leaving).
01:37:03 -!- Bike has quit (Ping timeout: 252 seconds).
01:42:09 -!- Bike has joined.
01:46:11 -!- carado has quit (Remote host closed the connection).
01:49:54 -!- Oj742 has joined.
01:51:12 -!- sergio2 has joined.
01:55:19 -!- sergio2 has quit (Ping timeout: 246 seconds).
01:57:46 -!- sergio1 has joined.
02:01:40 -!- Sprocklem has quit (Ping timeout: 245 seconds).
02:03:47 -!- sergio1 has quit (Ping timeout: 265 seconds).
02:27:19 -!- Sprocklem has joined.
02:30:50 -!- typeclassy has joined.
02:43:03 -!- Sprocklem has quit (Ping timeout: 245 seconds).
02:50:02 -!- typeclassy has quit (Remote host closed the connection).
03:10:33 -!- Oj742 has quit (Ping timeout: 245 seconds).
03:15:07 -!- adu has joined.
03:25:23 -!- shachaf has joined.
03:27:22 -!- adu has quit (Quit: adu).
03:58:46 -!- zzo38 has joined.
04:06:49 -!- adu has joined.
04:38:40 -!- adu has quit (Quit: adu).
05:09:02 -!- adu has joined.
05:09:13 -!- adu has quit (Client Quit).
05:27:42 -!- adu has joined.
05:29:09 -!- adu has quit (Client Quit).
05:44:20 -!- Sprocklem has joined.
05:49:52 <quintopia> anyone know how to write the kronecker delta as a non-piecewise composition of principal branches of elementary functions?
05:50:32 <Bike> er, can you get a non-function out of function composition?
05:51:43 <quintopia> kronecker delta is a function
05:51:46 <quintopia> think man think
05:52:12 <Bike> oh, i was thinking dirac :V
05:52:30 <zzo38> I am not sure what "principal branches" are, but perhaps 0^((x-y)^2) is a definition?
05:52:45 <Bike> can you just take a hump function and compose it with itself infinitely many times
05:54:17 <zzo38> Bike: I didn't find a Wikipedia article about "hump function"
05:54:32 <quintopia> zzo38: 0^0 is indeterminate
05:55:02 <shachaf> 0^0 is 1.
05:55:17 <Bike> zzo38: a function with a hump at the origin (f(0) = 1) that decays to zero at infinities
05:55:32 <quintopia> shachaf: according to python it is zero
05:55:49 <shachaf> ^ is xor in Python.
05:55:50 <zzo38> quintopia: I think that is wrong then; 0^0=1 clearly (to me at least).
05:55:51 <shachaf> ** is exponentiation.
05:56:05 <quintopia> oh
05:56:06 <zzo38> O, yes, then in Python you need 0**0; what does it make?
05:56:07 <quintopia> my bad
05:56:12 <zzo38> Does it make anything?
05:56:13 <quintopia> yeah that'll work :D
05:56:15 -!- adu has joined.
05:56:25 * Bike grumbles
05:57:11 <zzo38> Bike: Then with such function unless f(1) = 1 also, then composing infinite numbers of times becomes an unknown response?
05:57:17 <zzo38> ?messages-loud
05:57:17 <quintopia> i don't understand why 0^0 is 1, since lim_{x->0+} 0^x is 0...
05:57:17 <lambdabot> boily said 9h 36m 19s ago: you are the weirdest.
05:57:22 <Bike> yeah, it would be zero, i don't know what i was thinking.
05:58:17 <zzo38> OK, it is unclear the intended context (if any) of boily's message.
05:58:21 <shachaf> 0^0 is the number of functions from the empty set to itself.
06:00:08 <Bike> i guess i'm thinking of the limit of successively steeper functions, like you do for dirac
06:00:11 <zzo38> shachaf: Yes, there is that, and several other reasons too, why zero to power of zero should make one.
06:00:28 <Bike> so there's one function from empty to empty but zero from {empty} to empty?
06:00:40 <shachaf> Yes.
06:01:05 <Bike> well thank god math makes intuitive sense.
06:01:30 <shachaf> i can't tell if that was meant seriously or the opposite of seriously
06:10:03 <elliott> Bike: a function from {{}} to {} is a set of pairs (x,y) where x is in {{}} and y is in {}, such that for every x in {{}} there is y such that (x,y) is in the function
06:10:10 <elliott> (and also no duplicates)
06:10:15 <Bike> yeah i already got this explained
06:10:21 <Bike> thanks anyway
06:10:30 <elliott> a function from {} to {} is a set of pairs (x,y) where x is in {} and y is in {} (no such pair exists, of course), such that for every x in {} -- and then you're done because vacuous
06:10:35 <elliott> sorry :P
06:10:52 <elliott> basically with a function from the empty set, you trivially satisfy the requirement of covering all values in your domain.
06:10:55 <Bike> set theory is so tedious
06:11:02 <elliott> from the singleton set, you have to have at least one element of the codomain.
06:11:13 <elliott> it's easier in type theory!!
06:11:17 <elliott> (arguably?)
06:11:43 <Bike> it's even easier in i'm asleep theory
06:12:56 <Bike> what does infinite composition of logarithms give you
06:14:46 <Bike> gallavanting about the plane.
06:35:40 -!- nisstyre has quit (Quit: Leaving).
07:06:52 <zzo38> Bike: I noticed you were writing stuff about FPGA and HDL; if you are able to design your own and make the actual one, then if it is open-source (or at least open-specification enough to know exactly how all the timing, connection, etc works, and the bitstream format) then I would buy it.
07:07:12 <Bike> do you have four thousand friends who would also buy it, though
07:07:32 <kmc> Bike gets down to brass tacks
07:07:50 <zzo38> Perhaps there may be a lot of HDL because a lot of people don't like the existing ones (including me), but I don't think there is the "perfect HDL". I designed HWPL to do the kind of things I think is good idea, but not necessarily everyone in agreement.
07:08:09 <Bike> there aren't that many HDL, really
07:08:26 <zzo38> Bike: No, but you can find a lot of messages on various forums and stuff in internet, it seem like about four thousand might be interested
07:08:43 <zzo38> And then more people would learn and might use it too
07:08:45 <Bike> well i'll keep that in mind for the kickstarter.
07:09:20 <Bike> a few days ago i found out some neuro people i like sell an FPGA board (with just a boring lockedout FPGA but) for brainstuff, which is cool
07:09:26 <Bike> clearly needs more neuromorphism imo
07:10:40 <zzo38> Since there are several advantages to a open-source FPGA (even if the company that makes the FPGA sells no open-source design software for it)
07:11:13 <Bike> i guess i don't know what most people who buy fpgas actually use them for
07:11:27 <Bike> there's a niche in education, and then prototyping?
07:12:09 <kmc> a lot of finished products use them too
07:12:12 <zzo38> I don't really know either, but yes those may be some uses; there are several others too.
07:13:01 <kmc> if you're planning to sell fewer than n thousand units, it's cheaper to ship programmed FPGAs than to design and fab your own chip
07:13:13 <Bike> makes sense.
07:13:23 <Bike> not sure how much open hardware would help there
07:13:31 <kmc> also then you can field-upgrade the "hardware" which is nice
07:13:32 <kmc> http://nsa.unaligned.org/ is a really cool project repurposing a bunch of HD video transform boards with FPGAs on them
07:13:43 <zzo38> However, with open-source FPGAs, many more uses would be enabled, such as reconfigurable computing, more accurate designs, and if you are making an ASIC it is guaranteed not to be slower than the FPGA.
07:14:00 <Bike> 240 W :o
07:14:28 <Bike> really wish i knew more electrics
07:15:13 <Bike> and yeah, good point about reconfiguring
07:16:04 <Bike> gotta grab information and opportunities in the subfield of electrobrains where i can, i guess
07:19:12 <zzo38> I also don't like various things about Verilog, VHDL, and other HDLs that I also decided to make up a new one; what features are you looking for in a HDL anyways? One thing I like to have is a lot of macros.
07:21:39 <Bike> i'd like good macros, good parametrized modules, and some sort of way to annotate things like FSMs for optimization
07:22:47 <zzo38> How do you want to annotate things like FSMs for optimization? Maybe it might help a bit, if you can specify some examples of how this would work.
07:23:23 <Bike> not sure. i'd like the macros and modules to be involved enough that i could write out a state transition diagram, really
07:24:01 <Bike> i don't see the point in compiling things "down" to gates if the toolset's just going to analyze it as an fsm anyway
07:24:45 <zzo38> Are the macros and parametrized modules in HWPL (my design) good enough for this? If not, I would like to improve it if it help! (HWPL does have the MODELS keyword, which can be used for optimization, but I don't know if this is sufficient for the purpose you are describing.)
07:26:20 <zzo38> I would like an example of what you mean, though, if you can do that.
07:28:28 <Bike> ok, do you know how a serial adder works?
07:29:11 <zzo38> OK, yes I looked up in Wikipedia, and yes I found it is something I am familiar with.
07:30:11 <Bike> it's pretty easily conceptualized as an FSM. you have four states, one for each combination of outputs, and each clock you transition to another state based on the inputs
07:31:00 <zzo38> Ah, OK, I understand.
07:31:20 <Bike> in verilog you could write this as an always block on the clock edge, where the logic is a very tedious case on the state and the inputs
07:32:33 <Bike> and if you write it out the synthesizer is going to compile it into whatever IR and /then/ analyze it to be an FSM
07:36:31 <Sgeo> Dear Microsoft: It's fairly obvious that your process for generating the IE compatibility mode list involves monkeys at typewriters. Please stop. Love, Sgeo.
07:38:55 <zzo38> A serial adder only has one bit of state being the carry flag though, isn't it?
07:47:49 <Bike> you need to keep the sum out stable through the clock
07:50:53 <Bike> but yeah, the carry is the only one you need to worry about between transitions
07:54:35 <Bike> i guess that's a distinction between state of the FSM and state of the circuit.
08:02:15 <shachaf> What explains this behavior: As long as Chrome (ium) is loading any page, even in another tab, it doesn't show title text when hovering the cursor over something.
08:06:07 <kmc> is the hover thingy an OS-level GUI element?
08:06:37 <kmc> maybe it's because there's a single compositor thread in charge of all talking to the OS graphics system, and it's busy doing something else?
08:08:16 <kmc> you should find out whether servo has the same limitation, first you'll have to contribute code to show title text, also to have tabs
08:09:10 -!- yiyus has joined.
08:26:29 <Bike> oh, i've onwdered about that too
08:27:35 <kmc> I think Chrome actually serializes OpenGL calls and sends them to a single process
08:27:51 <kmc> we will probably have to do something like that eventually, for WebGL
08:28:12 -!- CADD has quit (Quit: leaving).
08:28:17 <kmc> but for now our approach is, separate GL context for each thread/process, sending textures between them using OS-level features for doing so (the same ones compositing WMs use)
08:28:29 <kmc> e.g. sending GLXPixmaps on Linux
08:28:29 -!- CADD has joined.
08:28:34 -!- CADD has quit (Client Quit).
08:31:51 -!- carado has joined.
08:33:56 <shachaf> kmc: Hmm, I don't know.
08:53:11 <fizzie> I think that assessment of Chrome doing all GL stuff in a single process is correct, because on my system it used to go all "GPU thread has crashed" and disable hardware acceleration whenever I tried to go to a WebGL page.
08:53:20 -!- Sprocklem has quit (Ping timeout: 245 seconds).
08:59:48 -!- adu has quit (Quit: adu).
09:23:08 -!- Taneb has joined.
09:38:41 <zzo38> I would think a serial adder in HWPL might be something like: TRIGGER .CLOCK SET {.OUT,.CARRY} TO MUX({.CARRY,.X,.Y},$96,$E8); and something like that may be usable in other hardware programming languages too; would that work?
09:45:13 <zzo38> In fact it looks like a direct implementation of the state machine as well as being directly translatable to FPGA muxes.
10:00:24 -!- ais523 has quit.
10:08:27 -!- nooodl has joined.
10:11:19 -!- yiyus has quit (Read error: Connection reset by peer).
10:31:47 <FreeFull> fizzie: I was never able to get webgl to work properly in chromium
10:32:07 <FreeFull> It tends to just stop working for no reason
10:32:11 <FreeFull> While in Firefox it just works
10:33:26 -!- zzo38 has quit (Remote host closed the connection).
10:52:55 <fizzie> FreeFull: It used to work with my old graphics card, then it stopped working when I upgraded hardware, then it again started to work after upgrading the browser. (Though this last is a bit tentative, I haven't used it much.)
10:55:23 -!- muskrat has left ("Leaving").
11:01:40 <Slereah> So I be trying to do the factorial recursively
11:01:41 <Slereah> But
11:01:46 <Slereah> It doesn't seem to stop at 0
11:01:54 <Slereah> What might the dealio be
11:02:25 <Slereah> The program being http://pastebin.com/e5bNNSf1
11:02:41 <Slereah> Oh wait
11:02:45 <Slereah> I think I know now
11:02:51 <Slereah> The jump isn't well placed
11:02:57 <Slereah> NEVERMIND
11:09:16 <Slereah> factorial: pop ax, pop ax, dec cx, jcxz zero, mul cl, push ax, call factorial, zero: jmp prog
11:09:18 <Slereah> There we go
11:09:26 <Slereah> I should do a version with a jump instead of a call
11:09:35 <Slereah> That will avoid me the double popping
11:15:29 <fizzie> Typically you'd access any parameters on stack with something like mov ax, [sp+2] instead of popping off the return address.
11:16:36 <Slereah> Wouldn't that fill the stack if I don't pop it in this case?
11:17:09 <Fiora> you can adjust sp manually without popping, like 'add esp, 8'
11:17:14 <fizzie> Normally the caller pops the arguments off the stack after the call.
11:17:33 <Slereah> Yeah but because of reasons I had to drop it
11:17:40 <Slereah> Also it's a jump now:
11:17:41 <fizzie> Fiora: sp, in this case.
11:17:41 <Slereah> factorial: pop ax
11:17:41 <Slereah> dec cx
11:17:41 <Slereah> jcxz zero
11:17:41 <Slereah> mul cl
11:17:41 <Slereah> push ax
11:17:42 <Slereah> jmp factorial
11:17:42 <Slereah> zero: jmp prog
11:17:56 <Fiora> er, right, sp.
11:18:11 <Slereah> Wait
11:18:17 <Slereah> Why do I have jmp prog
11:18:24 <Slereah> I can do directly jcxz prog
11:18:24 <fizzie> It's not really a function call any more if you never ret.
11:18:46 <Slereah> factorial: pop ax
11:18:46 <Fiora> is there some reason ax gets pushed, and then like, popped right back off?
11:18:46 <Slereah> dec cx
11:18:46 <Slereah> jcxz prog
11:18:46 <Slereah> mul cl
11:18:46 <Slereah> push ax
11:18:47 <Slereah> jmp factorial
11:18:49 <Slereah> Much better
11:18:58 <Slereah> To keep the result?
11:19:07 <Slereah> Basically if I do 5!
11:19:10 <Fiora> but isn't pushing and then popping a no-op...?
11:19:17 <Slereah> First I put 5 in cx
11:19:25 <Slereah> I push it
11:19:29 <Slereah> And I jump to the function
11:19:40 <Slereah> It pops the stack to ax
11:19:43 <Slereah> decrements cx
11:19:50 <Slereah> So ax = 5, cx = 4
11:19:54 <Slereah> And multiplies them
11:20:04 <Slereah> And sends the result to the stack
11:20:13 <Slereah> So ax = 20, cx = 3
11:20:37 <fizzie> It's not really a recursive function as written. And the use of stack is indeed unnecessary.
11:20:42 <Slereah> Wait, I don't need it if ax stays the same
11:21:36 <Slereah> factorial: dec cx
11:21:36 <Slereah> jcxz prog
11:21:36 <Slereah> mul cl
11:21:36 <Slereah> jmp factorial
11:21:37 <Slereah> Much better
11:21:51 <Slereah> I guess it is more of a loop yeah
11:22:44 <fizzie> Also not a function; you can't call it from two places, because it always returns to the same place.
11:22:52 <Slereah> yeah
11:23:16 <Slereah> I tried doing it as a function, but
11:23:33 <Slereah> I did jcxz zero
11:23:35 <Slereah> zero : ret
11:23:43 <Slereah> But that didn't seem to work
11:23:53 <Slereah> Like the ret didn't returl to the proper place?
11:24:18 <fizzie> If you popped the return address off, no wonder.
11:24:55 <Slereah> I don't think I did when that was there
11:24:59 <Slereah> Well, let's try redoing it
11:25:12 <fizzie> If you don't mind calling conventions, you can just pass parameters (and return values) in registers, in which case it's very simple.
11:25:41 <Slereah> factorial: dec cx
11:25:41 <Slereah> jcxz zero
11:25:41 <Slereah> mul cl
11:25:41 <Slereah> jmp factorial
11:25:41 <Slereah> zero: ret
11:25:43 <Slereah> Seems to work!
11:26:16 <fizzie> It might be more generic if you had the proper initialization of al (to 1) inside the function.
11:26:36 <Slereah> al is actually initialized at cl
11:26:58 <Slereah> Hm
11:27:03 <fizzie> Oh, I guess that works too, since you decrement before the first multiplication.
11:27:07 <Slereah> I guess I need one more label if I want to do the initialization
11:27:21 <fizzie> You can use a label local to the function for the loop, if you like.
11:27:53 <fizzie> (With syntax depending on assembler, but starting with a period is common.)
11:28:50 <Slereah> factorial: mov ax, cx
11:28:50 <Slereah> doshit: dec cx
11:28:50 <Slereah> jcxz zero
11:28:50 <Slereah> mul cl
11:28:50 <Slereah> jmp doshit
11:28:50 <Slereah> zero: ret
11:28:52 <Slereah> There we ho
11:28:53 <Slereah> go
11:30:48 <Slereah> What would the recursive version look like?
11:33:25 <Slereah> Hm
11:33:41 <Slereah> I guess at each passage in the loop, it would push the stack with the address
11:33:45 <Slereah> And go back to that point
11:34:18 <fizzie> In half-pseudo, possibly something like factorial: if ax == 0 { mov ax, 1; ret } else { push ax; sub ax, 1; call factorial; pop cx; multiply ax by cx; ret }
11:35:17 <fizzie> That's the "direct" translation of factorial(a) { return factorial(a-1) * a; }
11:35:45 <fizzie> (With the convention of passing the input argument in ax, and the return value in ax too.)
11:36:02 <fizzie> Er, the latter is missing the termination condition, but anyway.
11:36:19 <Slereah> facrec: mov ax, cx
11:36:19 <Slereah> dec cx
11:36:19 <Slereah> jcxz zerec
11:36:19 <Slereah> call facrec
11:36:19 <Slereah> mul cx
11:36:19 <Slereah> zerec: ret
11:36:23 <Slereah> Let's try something like this
11:37:30 <Slereah> Hm, 0
11:37:35 <Slereah> Let's see
11:37:51 -!- Taneb has quit (Quit: Leaving).
11:38:05 <fizzie> Well, you decrement cx all the way to 0, and then return from the deepest "call facrec" right into the mul cx.
11:38:18 <Slereah> oh right
11:38:27 <Slereah> If it's 0 I need to return cx = 1
11:39:19 <Slereah> Still no work, damn
11:39:34 <Slereah> Let's see
11:39:45 <fizzie> All your "mul cx"s will use the same cx value.
11:40:01 <Slereah> If cx = 2, then ax = 2
11:40:19 <Slereah> Once decremented, cx = 1, ax = 2
11:40:55 <Slereah> Ah yes, it totally forgets the value of 2 on the second call
11:41:00 <Slereah> I need to stack
11:41:09 <fizzie> You can expand the control flow out what it executes: {mov ax, cx; dec cx;}*n, then {mul cx}*n.
11:43:12 <fizzie> You can do the recursive-with-an-accumulator variant -- factorial(x, acc) { if (x == 1) return acc; else return factorial(x-1, acc*x); } -- without using any stack except for the call/ret. (And then convert that to a tail call, after which you've ended back in the original solution.)
11:44:54 <Slereah> What's a good ASM debugger?
11:45:45 <fizzie> debug.com would be in keeping with your DOSBox style, but it might not fit the attribute "good" that well.
11:46:04 <Slereah> What about "functional"
11:47:01 <fizzie> There's a gdb stub built in DOSbox, if I remember right, but gdb can be p. iffy for 16-bit code, and I don't have any idea how easy that would be to get going on Windows. Of course the old 16-bit programming environments (Turbo C and such) come with debuggers too.
11:53:07 -!- Phantom_Hoover has joined.
11:55:05 <Slereah> Man dosbox is so slow
12:11:55 <nooodl> ctrl f12 a bit?
12:13:30 <Slereah> I think now is time for food buying, actually
12:20:17 <Phantom_Hoover> you know what's infuriating
12:20:42 <Phantom_Hoover> when you've downloaded 0.2% of a torrent and you're already uploading twice as fast as you're downloading
12:27:31 <nooodl> hahaha http://i.imgur.com/0vRuu.png
12:29:54 <myname> interesting
12:32:24 <Phantom_Hoover> don't want to leave out the general complex case
12:33:39 -!- oerjan has joined.
12:34:28 <Phantom_Hoover> also: http://www.wolframalpha.com/input/?i=what+is+the+planck+length
12:35:20 <myname> i am missing beardseconds as unit
12:37:23 <nooodl> Phantom_Hoover: amazing
12:39:07 <fizzie> "Comparison as length: ≈ 0.2 x length of a putative string in M-theory"
12:44:07 <oerjan> i didn't think string theory had fixed length strings
12:44:31 <oerjan> i suppose some might
12:48:23 <fizzie> I guess they use strncpy with them then aha ah ha. Haa.
12:50:57 <oerjan> _ _ _ _ _ _
12:50:57 <oerjan> _| || |_ _| || |_ _| || |_
12:50:57 <oerjan> _____ _____ _____ _____ _____|_ .. _|_ .. _|_ .. _|
12:50:57 <oerjan> |_____|_____|_____|_____|_____|_ _|_ _|_ _| |_||_| |_||_| |_||_|
12:51:09 <oerjan> wat
12:51:55 <oerjan> pasting ascii art doesn't mix well with irssi's line joining.
12:52:35 <nooodl> pasting ascii art rarely mixes well with irc
12:52:57 <oerjan> NONSENSE
13:07:04 -!- Slereahphone has joined.
13:09:08 <quintopia> good morning. how are the rabbits
13:09:44 <Slereahphone> LET ME TELL YOU ABOUT THE RABBITS
13:14:05 <quintopia> __ __ ___ ___ ___ ___
13:14:06 <quintopia> | |_| | | \/ | | \/ |
13:14:06 <quintopia> | _ | | \ / | | \ / | __ __ __
13:14:06 <quintopia> |__| |__| |___\/___| |___\/___| |__| |__| |__|
13:15:30 <FireFly> Oh no, who gave oerjan the really big swatter?
13:15:32 <FireFly> I'm scared.
13:16:44 <quintopia> is that what that was
13:43:56 -!- Slereahphone has quit (Quit: Colloquy for iPhone - http://colloquy.mobi).
13:44:35 <oerjan> i just used a temporary magnification ray.
13:46:31 <Slereah> And back
13:46:35 <Slereah> Time to cook de meat
13:49:24 -!- yorick has joined.
13:50:03 <oerjan> <quintopia> i don't understand why 0^0 is 1, since lim_{x->0+} 0^x is 0... <-- switch 0 and x in that... x^y does not have a limit at (0,0) and you can get several values by approaching along different paths.
13:51:38 <oerjan> so limits are useless for choosing a value.
13:56:03 <Slereah> 0^0 is undefined
13:56:11 <Slereah> It is set at 1 by convention
13:58:39 <Phantom_Hoover> hmm
13:59:47 <Phantom_Hoover> Slereah, well no, it's just that 0^0 doesn't have a single 'nice' extension of the exponential function
14:00:22 <Phantom_Hoover> you're going to break useful properties, most importantly continuity, no matter how you define it
14:01:40 <Slereah> yes, hence why it is not defined from the definition of the exponential!
14:01:41 <Phantom_Hoover> it's normally taken to be 1 because that still preserves things like the number of functions from {} to {}
14:02:00 <Phantom_Hoover> Slereah, well neither is x^y for x and y not positive integers
14:02:17 <Slereah> Well yes, it is!
14:02:28 <Slereah> x^y = e^(y ln(x))
14:02:58 <Phantom_Hoover> right but originally it was 'x multiplied by itself y times'
14:03:07 <Slereah> Sure, back in the 16th century
14:03:58 <Phantom_Hoover> 'well what if y is negative' 'make it reciprocal, that preserves the additivity'
14:04:24 <kmc> 'Charlie Stross @cstross: This morning got email from a “technical sourcer” at Google, wondering if I wanted a job interview. Told ’em to look me up on wikipedia …'
14:04:32 <kmc> nobody is safe
14:04:39 <Phantom_Hoover> 'what if y is fractional' 'well make it a root, that preserves multiplicity'
14:04:46 <Phantom_Hoover> etc.
14:05:15 <Slereah> But what if y is transcendant? :o
14:05:38 <Phantom_Hoover> then you set it to the limit, because obviously you want continuity
14:06:03 <Slereah> What if y is a matrix
14:07:02 <int-e> Phantom_Hoover: fortunately, by that point, 0^0 is already 1 :-)
14:07:37 <Phantom_Hoover> but it's not, because you really want continuity from R^2 -> R
14:07:53 <int-e> Slereah: then it better be diagonalizable, and we can then apply ^y to each diagonal entry.
14:08:04 <int-e> Phantom_Hoover: I don't.
14:08:45 <int-e> I'm happy with the state of affairs where that only works for positive x :)
14:08:56 <Slereah> With the exponential definition it is much easier~
14:09:10 <Slereah> e^M = 1 + M + MM/2 + ...
14:09:19 <int-e> Slereah: 2^2 = exp(ln(2)*2)? good luck ;-)
14:09:21 <Phantom_Hoover> easier to define, not so easy to calculate
14:09:32 <Slereah> int-e : Yep
14:09:38 <Slereah> Pretty easy!
14:09:46 <Slereah> ln(1+2) = 1 + x + x² + ...
14:09:56 <Slereah> +x*
14:10:09 <Phantom_Hoover> p. sure that expansion doesn't actually work for x outside of a certain range
14:10:24 <Slereah> It will work for ln(2)
14:10:31 <int-e> Slereah: no.
14:10:31 <Phantom_Hoover> http://en.wikipedia.org/wiki/File:LogTay.svg
14:10:56 <int-e> Slereah: it's ln(1+x) = x - x^2/2 + x^3/3 - x^4/4 + - ...
14:11:03 <Slereah> Maybe
14:11:07 <Slereah> I don't remember it off hand
14:11:17 <int-e> Slereah: well I wasn't the one who claimed this was the easy way :-P
14:11:21 <Phantom_Hoover> it does actually work for ln(2), just
14:11:51 <Slereah> I think it basically works for C*
14:12:12 <int-e> but now you're talking about holomorphic functions
14:12:21 <Slereah> They are the holomorphest
14:12:46 <Phantom_Hoover> it doesn't work very well for C* because you can't pick a canonical choice of root
14:13:34 <Slereah> But well
14:13:36 <Slereah> Anyway
14:13:48 <Slereah> x^y is pretty much defined for most things with it
14:14:00 <int-e> and how do you exclude ln(1) = 2pi*i ... if you go via the complex numbers?
14:14:19 <Slereah> Do you mean ln(-1)
14:14:22 <int-e> no.
14:14:29 <Slereah> ln(1) = 0
14:14:32 <Phantom_Hoover> no
14:14:37 <Slereah> (yes)
14:14:39 <int-e> e^(2pi*i) = 1.
14:14:42 <Phantom_Hoover> ln(1) = 2npi*i
14:14:48 <Phantom_Hoover> for all integers n
14:15:06 <Slereah> Except not.
14:15:11 <Slereah> Because ln is a function
14:15:16 <Slereah> So it can only have one image
14:15:42 <int-e> Slereah: from the positive reals to reals, yes. fine. we never argued about x^y for y>0 anyway.
14:15:50 <int-e> or x>0, sorry.
14:15:55 <Phantom_Hoover> yes, but the choice of branch cuts you use to obtain that unique image is as arbitrary as 0^0=1
14:16:14 <Slereah> Well you can define it with a parameter, I guess
14:16:25 <Slereah> ln(1,n) = 2npi*i
14:17:23 <int-e> no.
14:17:41 <Slereah> Why not
14:18:12 <int-e> the point is that if you want ln() to be continuous, and ln(1) = 0, then by taking the logarith of ln(e^(ix)) for x=0 to 2pi, you end up with ln(1) = 2pi*i.
14:21:21 -!- oerjan has quit (Quit: Use the Riemann surface).
14:25:07 <int-e> (the principal branch of ln() that people usually use is discontinuous for negative reals)
14:32:33 -!- copumpkin has quit (Ping timeout: 252 seconds).
14:56:08 <kmc> another thing I saw in Akihabara was an adapter which accepts an IEC 60320-C13 (i.e. computer power supply) cable and provides a universal AC outlet (NEMA 5-15 / BS 1363 / Europlug + various grounds)
14:56:30 <kmc> i don't know what the use case for that adapter is, but it's an interesting one
15:05:12 <fizzie> One thing I found in my closet was a cable where the other end was an IEC 60320-C13 female, while the right end was the ungrounded europlug.
15:05:28 <fizzie> I don't know where that came from, and what the grounding pin of the power-supply-connector side is connected to.
15:05:31 <fizzie> Probably nothing.
15:06:41 <fizzie> (But, I mean, ground, right? Who needs that sort of stuff.)
15:08:35 <kmc> not japan, that's for sure
15:09:16 <kmc> (except for certain large appliances, which have a separate grounding wire that screws to a thingy)
15:17:10 <kmc> whatever, things are made of plastic now, and we have GFCIs, and yolo
15:17:23 <kmc> i don't get why some thinkpad bricks have ground lines and not others
15:20:03 -!- copumpkin has joined.
15:21:19 <kmc> (I think "C13 female" is redundant; the inlet is called C14)
15:21:47 <kmc> (but this is 100% from reading wikipedia just now to sound knowledgable, as is my custom)
15:26:23 <kmc> hell is a torrent stalled at 99.9%
15:42:04 -!- MindlessDrone has joined.
15:42:57 <Bike> kmc: i was amused to learn that stross used to work for SCO
15:57:45 <kmc> fixed it by turning it off and then on again
16:23:35 -!- evalj has joined.
16:29:29 <fizzie> kmc: Since you're thereabouts, how about popping down to Kyoto and checking it out? We was thinking of visiting next summer.
16:31:26 <kmc> i'm flying home tomorrow but I was in Kyoto the other day
16:31:42 <kmc> it has a bunch of temples and shrines and such
16:31:45 <kmc> if you're into that
16:33:03 <kmc> cool castle
16:33:29 <kmc> it's a short train ride from Nara and from Osaka, both of which are also worthwhile
16:34:21 <fizzie> We've visited some kind of Japanese-garden-style of a place pretty much everywhere else we've ever been (when possible), thought it might make sense to go straight to the source, so to speak.
16:35:12 <kmc> :)
16:35:13 <kmc> my itinerary for this trip was Suwon, Seoul, Osaka, Nara, Kyoto, Hiroshima, Itsukushima aka Miyajima, Tokyo
16:36:33 <kmc> all were fantastic :)
16:36:58 <kmc> in Nara i just kinda showed up at the train station and wandered around, but that doesn't work in Kyoto, the cool stuff is too spread out
16:37:14 <kmc> i should have planned more in advance
16:39:09 <fizzie> We tend to have our trips planned in advance down to the very last detail, though not exactly by my choice. (Admittedly there's a slightly lower risk of "what, I was like right next to this cool thing and didn't even realize", afterwards.)
16:39:15 <kmc> (well, ok, I'm not sure Suwon was "fantastic"; I was mostly there for work although there was half a day's worth of stuff to see at least)
16:39:33 <kmc> yeah when i travel alone i tend to plan just in time
16:39:43 <kmc> look on wikivoyage the night before i go out in some city
16:40:05 <kmc> on this trip I spent a lot of time looking for free wifi because I wanted to talk to my friends because i was lonely :/
16:40:17 <kmc> and there's a small window in which the time zones coöperate
16:41:22 <fizzie> It's... seven hours ahead of Finland, I think.
16:45:02 <kmc> speaking of Finland, http://i.imgur.com/zfsNaUl.jpg
16:45:32 <kmc> that's Finland-themed Japanese fabric softener
16:45:36 <kmc> they had Russia-themed as well
16:46:53 <fizzie> I can see the flag, but nothing else in that picture is exactly screaming "Finnish!" at me.
16:51:07 <kmc> Skip & Hop!
17:00:38 <kmc> this business of coin lockers at train stations &c is fantastically convenient
17:00:54 <kmc> they exist lots of places but mostly not the US or the UK, because terrorism
17:04:21 <kmc> got to sleep now
17:04:24 <kmc> good night!
17:07:25 <b_jonas> they don't exist in the UK? that's crazy
17:07:42 <kmc> i may have wrong information
17:08:07 <kmc> i thought the train stations got rid of coin lockers and trash cans both, thanks to the IRA
17:08:14 <kmc> now you have to get on a train to throw something away
17:09:05 <b_jonas> I know some banks don't have a user-accessible trashcan here
17:09:18 * Bike feels it's convenient that east asia and the UK are both eight hours away from his time zone.
17:09:31 <b_jonas> but there people can just use a nearby trashcan in the street
17:10:18 <b_jonas> but no trashcan in a railway station would be downright stupid, it would just lead to excessive littering
17:26:48 -!- sebbu has quit (Ping timeout: 245 seconds).
17:38:37 -!- Bike has quit (Quit: home).
17:46:53 -!- FireFly has quit (Ping timeout: 272 seconds).
17:52:06 -!- adu has joined.
17:56:55 -!- drlemon has joined.
18:03:09 -!- Oj742 has joined.
18:10:42 <mroman_> Oh
18:11:05 <mroman_> Are you guys talking about the lovely idea of removing public trash cans in order to prevent littering?
18:11:39 <Slereah> Even worse
18:11:43 <Slereah> Paying public toilets
18:11:46 <mroman_> I can't imagine to whom this sounds as a good idea but I'm no psychology genius.
18:11:48 <Slereah> What do you do with that
18:11:55 <Slereah> What if you don't have some coins
18:12:10 <Slereah> I'm pretty sure it's illegal to shit in the street
18:12:17 <mroman_> That's kinda the standard in switzerland @pay toilets
18:12:21 <Slereah> IT IS A FLAW IN THE SYSTEM
18:12:25 <mroman_> Unless you're a real men
18:12:39 <mroman_> *man
18:12:51 <Slereah> The Swiss always have money on them though
18:13:09 <mroman_> Yes
18:13:16 <mroman_> but that doesn't mean you have the right coin available
18:13:17 -!- sebbu has joined.
18:13:24 <mroman_> they don't take 10 CHF Bills .
18:13:53 <fizzie> https://dl.dropboxusercontent.com/u/113389132/Misc/20131123-smoking.png I'm sure there's some good, entirely logical reason why it's like this.
18:14:41 <Slereah> Well what do each character mean in both languages
18:20:48 <Phantom_Hoover> 'forbidden' and 'smoke'
18:20:50 <Phantom_Hoover> in both
18:20:58 <Phantom_Hoover> the chinese one is presumably wrong
18:21:55 <nooodl> alternative translations for the chinese include "no smoking"
18:22:11 <Slereah> Maybe it is so delicious because it is forbidden
18:26:15 <Slereah> http://cs.wellesley.edu/~cs342/handouts/more-assembly.pdf
18:26:16 <Slereah> Oh boy
18:26:18 <Slereah> There's one
18:26:19 <Slereah> Let's see
18:26:21 <fizzie> The "rfk86" account at zem.fi just got the following email: "Johnny Clunker was an awkward and shy kid who kept mostly to himself. But when the school day ended he became Johnny B. Fast, a super spy Utilizing super technology so advanced that it seems like magic, Johnny and his friends battle the United Order, a ruthless organization trying to acquire the Super Chip - a computer processor so ...
18:26:27 <fizzie> ... powerful it can virtually hold the world's technology hostage. But when one of his fellow classmates, Nancy Korrins, is also revealed to be a spy kid who was trained by the world's most deadly and advanced agent, Johnny has his hands full trying to figure out if he can trust her to help him capture the Super Chip, or if he has to fight her as his greatest rival."
18:27:43 -!- Taneb has joined.
18:28:30 <fizzie> fungot: Are you running on a Super Chip?
18:28:31 <fungot> fizzie: great work lonely island afterall. but you dont post shit like that
18:36:08 <Slereah> What does the instruction pointer refer to, exactly?
18:36:14 <Slereah> Is it a memory space in the ram?
18:36:26 <Slereah> And if so, how do you deal with big programs on the hard drive
18:36:33 <Slereah> Do you transfer it little by little?
18:37:02 <Slereah> And does that imply restrictions on programs
18:37:32 <fizzie> Quite rarely do you load code on-demand. Program code doesn't tend to be as large as data.
18:37:46 <fizzie> Some DOS programs did use "overlays", including (IIRC) NetHack, though.
18:37:58 <Slereah> Sure, but I'm talking theoretically
18:38:36 <Slereah> Let's say you have a 10 GB program
18:38:39 <Slereah> (Pretty big!)
18:39:15 <Slereah> Does it mean that you could not do jumps from one end to the other
18:39:25 <Slereah> Or at least not without complications
18:39:45 <fizzie> I'm not sure if you want answers related to actual systems or what, if it's supposed to be entirely theoretical.
18:39:49 <int-e> The IP refers to a memory address. That address may be mapped to RAM by the OS, or absent; if it's absent, then the OS gets notified and gets a chance to load the code from disk, for example.
18:40:02 <Slereah> Ah, I see
18:40:22 <fizzie> int-e: That doesn't sound like a theoretical answer.
18:40:22 <Slereah> I guess it goes to the RAM directly in the absence of an OS
18:40:33 <fizzie> Anyhow, in x86-32, you can't fit 10 gigabytes in the address space.
18:40:34 <int-e> You really don't have to worry about it unless you write an operating system, or there is no OS to speak of (as was the case under DOS, hence the Overlays that fizzie mentioned.)
18:40:38 <int-e> fizzie: it wasn't
18:40:51 <fizzie> (And in x86-16, even less so.)
18:41:02 <int-e> I yet have to see a program with 10 GB of code :)
18:41:04 <fizzie> So indeed a ten-gigabyte program would involve complications.
18:41:18 <Slereah> It would be a pretty sweet program man
18:41:39 <Slereah> You could program the universe
18:42:00 -!- adu has quit (Quit: adu).
18:42:21 <int-e> You can still load code at runtime if you absolutely have to. (The necessary technology is present in just-in-time compilers, albeit for a different purpose)
18:42:24 <Taneb> This afternoon I had my first session of D&D
18:42:37 <Slereah> Were you a wizard
18:42:39 <Slereah> Perhaps a
18:42:41 <Slereah> Computer wizard
18:42:44 <Taneb> I was a cleric
18:42:55 <int-e> did you heal any undead?
18:42:57 <Taneb> We had a wizard/rogue in the party, though
18:42:59 <fizzie> A computer cleric?
18:43:07 <Taneb> int-e, I had the opportunity, I cannot recall if I did or not
18:43:14 <Slereah> Stallman is a computer cleric
18:44:37 <Slereah> http://lemonodor.com/images/sicp-lecture-wizard-s.jpg
18:44:44 <Slereah> Sussman is a computer wizard, though
18:45:15 <Slereah> Who would be the computer barbarian?
18:45:34 <fizzie> Schneier looks like one, I think.
18:45:57 <Slereah> I would talk about computer thief, but that might get controversial!
18:46:32 <int-e> Snowden?
18:46:52 <Slereah> He is the computer spy
18:47:34 <Taneb> Computer rogue?
18:47:42 <Slereah> Perhaps
18:47:43 <Taneb> Computer paladin?
18:47:51 <Slereah> Knuth is the king of computers, I suppose
19:05:16 <Taneb> First output from a markov-chain thingy I'm making: "Just the place for a season of woe- But the Snark, with a Snark."
19:05:19 <Taneb> (with quotes)
19:27:42 <mroman_> Snarky.
19:29:53 -!- nisstyre has joined.
19:31:19 <Taneb> I need to figure out a way to make it parse punctuation as separate tokens
19:40:38 -!- AnotherTest has joined.
19:45:45 -!- Taneb has quit (Quit: Leaving).
19:49:21 -!- MindlessDrone has quit (Quit: MindlessDrone).
19:49:27 <impomatic> Sorry, but McCarthy = king of computers. :-)
19:49:42 -!- FireFly has joined.
19:50:26 <Slereah> Damn that man and his anticommunist policies!
19:53:45 -!- Oj742 has quit (Ping timeout: 252 seconds).
19:54:36 <Slereah> "if your grave doesnt say "rest in peace" on it you are automatically drafted into the skeleton war"
19:54:40 <Slereah> True fact.
20:04:45 -!- coppro has changed nick to coppro|nospoiler.
20:08:10 <Jafet> `run python -c 'l = [[0]]*2; l[0][0] = 1; print l'
20:08:16 <HackEgo> ​[[1], [1]]
20:08:59 <Jafet> `?
20:09:01 <HackEgo> ​? ¯\(°_o)/¯
20:09:01 <myndzi> |
20:09:02 <myndzi> o/`¯º
20:09:44 <int-e> ? _/..\
20:17:48 -!- oerjan has joined.
20:27:01 <fizzie> kmc: Regarding the use case for your adapter, perhaps the idea was that you're going to have a large piles of those computer power supply cables (with wall-plugs proper to your walls) anyway, so they can sell their universal outlet to a wide audience without having to worry about the "input side".
20:27:41 <fizzie> A large piles, yes.
20:30:15 <quintopia> oerjan: i am aware of the fact x^y has no limit as 0^0. what i don't understand is why CAS implementers picked 1
20:34:32 <Phantom_Hoover> because amongst other things x^y is the number of functions from a set of cardinality y to one of cardinality x, and there's 1 function from the empty set to itself
20:34:55 <Phantom_Hoover> 0^0=1 also cleanly extends some combinatorial identities, afaik
21:02:56 -!- muskrat has joined.
21:04:14 -!- zzo38 has joined.
21:04:21 <oerjan> quintopia: intuitively, consider the fact that polynomials and power series are among the most important objects in mathematics, and the sum_{i=0}^n a_i x^i formulation only works if x^0 = 1 without exception.
21:08:32 -!- Taneb has joined.
21:27:06 <Phantom_Hoover> oerjan, btw, does the axiom of regularity require that it's impossible to do an 'infinite descent' through a set?
21:27:20 <oerjan> yes, that's equivalent.
21:27:52 <oerjan> and was iirc von neumann's original formulation.
21:28:03 <Phantom_Hoover> oh, it says exactly that in the fourth line of the wp article
21:28:21 <oerjan> which is about where i last read it.
21:28:34 <oerjan> although not the first time, i think.
21:30:55 <zzo38> What is an "infinite descent" through a set?
21:31:30 <oerjan> zzo38: an infinite sequence such that x_0 is in the set and x_{i+1} is an element of x_i.
21:31:45 <oerjan> or well, x_0 might just be the set.
21:32:16 <oerjan> hm or maybe von neumann's original formulation was the thing about ordinal rank.
21:33:41 -!- augur_ has quit (Remote host closed the connection).
21:35:11 <oerjan> hm wikipedia's history section disagrees, maybe.
21:35:11 <zzo38> oerjan: O, that's what it is.
21:35:44 <b_jonas> I've heared of that infinite descent thing but that's so ugly complicated that it shouldn't be an axiom.
21:35:55 <b_jonas> the current formulation fo the axiom of regularity is much better
21:36:07 <b_jonas> and the set ranks should be the theorem
21:36:41 <oerjan> it seems von neumann had a simple formulation.
21:37:07 <oerjan> however, the entire _point_ of the axiom is to rule out the infinite descent stuff.
21:37:35 <oerjan> and get the ranks.
21:37:51 <b_jonas> yes. and?
21:38:00 <b_jonas> the simple formulation still should be the axiom
21:38:08 <b_jonas> it's easier to work from there
21:38:32 <b_jonas> (not that you really need regularity for anything)
21:38:32 <oerjan> i'm saying it shouldn't be given alone since it obscures the purpose.
21:40:07 <b_jonas> maybe
21:40:43 <elliott> people care about the elegance of ZFC axioms? :/
21:41:26 <Slereah> Eleven herbs and axioms
21:44:25 -!- typeclassy has joined.
21:47:07 -!- zzo38 has quit (Quit: zzo38).
21:47:13 -!- gigimoi has joined.
21:49:19 * oerjan smells a haskeller
21:49:53 <oerjan> `WeLcOmE typeclassy
21:49:56 <HackEgo> TyPeClAsSy: WeLcOmE To tHe iNtErNaTiOnAl hUb fOr eSoTeRiC PrOgRaMmInG LaNgUaGe dEsIgN AnD DePlOyMeNt! FoR MoRe iNfOrMaTiOn, ChEcK OuT OuR WiKi: <hTtP://EsOlAnGs.oRg/wIkI/MaIn_pAgE>. (fOr tHe oThEr kInD Of eSoTeRiCa, TrY #eSoTeRiC On iRc.dAl.nEt.)
21:50:13 <oerjan> `WELCOME gigimoi
21:50:15 <HackEgo> GIGIMOI: WELCOME TO THE INTERNATIONAL HUB FOR ESOTERIC PROGRAMMING LANGUAGE DESIGN AND DEPLOYMENT! FOR MORE INFORMATION, CHECK OUT OUR WIKI: <HTTP://ESOLANGS.ORG/WIKI/MAIN_PAGE>. (FOR THE OTHER KIND OF ESOTERICA, TRY #ESOTERIC ON IRC.DAL.NET.)
21:50:33 <gigimoi> hola
21:50:39 <oerjan> oh.
21:50:48 <oerjan> `bienvenido gigimoi
21:50:50 <HackEgo> gigimoi: ¡Bienvenido al centro internacional para el diseño y despliegue de lenguajes de programación esotéricos! Por desgracia, la mayoría de nosotros no hablamos español. Para obtener más información, echa un vistazo a nuestro wiki: http://esolangs.org/wiki/Main_Page. (Para el otro tipo de esoterismo, prueba #esoteric en irc.dal.net.)
21:51:03 <gigimoi> I'm not spanish : )
21:51:19 <oerjan> ARE YOU SURE
21:51:38 <gigimoi> Not 100%, but pretty sure.
21:52:05 <oerjan> we have a regular inflow of spanish people getting here and getting confused. we think it's because the channel name starts with es.
21:52:26 <gigimoi> Lol.
21:52:26 <oerjan> well, sometime regular. it's been a while since the last one.
21:53:42 <b_jonas> hehe
21:54:22 <oerjan> strictly speaking, not spanish, i think an unusual number are venezuelan.
21:54:54 <oerjan> but suffice to say that i now have a reflex action on newbies saying "hola".
21:54:59 <oerjan> *+it
21:55:55 <int-e> oh that's news to me. ""
21:55:55 <int-e> Javascript is required to use IRC.
21:56:28 <oerjan> at least to past quotes properly inside quotes.
21:56:31 <oerjan> *paste
21:56:38 <oerjan> lso to spel corectly
21:57:21 <int-e> oerjan: I did place the cursor between "" and then I pasted ... but a newline defeated my perfect plan.
21:57:29 <oerjan> i suspected.
21:58:10 <oerjan> someone is being secretive.
21:58:21 <int-e> it's irssi. :P
21:58:42 <oerjan> i suspected that, since i have it too and pasting is a regular annoyance.
22:02:36 -!- augur has joined.
22:05:55 <int-e> oerjan: I'm actually wondering why firefox put a newline there, all I did was triple click on the first line of https://webchat.freenode.net/ (without javascript enabled, obviously).
22:06:23 <int-e> But I guess it boils down to stupid software being stupid.
22:16:56 -!- nisstyre has quit (Read error: Connection reset by peer).
22:20:09 -!- augur has quit (Read error: Connection reset by peer).
22:20:26 -!- augur has joined.
22:28:45 -!- augur has quit (Ping timeout: 245 seconds).
22:29:57 -!- AnotherTest has quit (Ping timeout: 252 seconds).
22:30:28 -!- augur has joined.
22:33:41 -!- typeclassy has quit (Ping timeout: 248 seconds).
22:39:14 -!- adu has joined.
22:40:17 -!- evalj has quit (Remote host closed the connection).
22:52:37 <quintopia> hey
22:52:40 <quintopia> hey people
22:52:57 <nooodl> `ello quintopia
22:52:59 <HackEgo> quintellopia
22:53:11 <quintopia> http://mathoverflow.net/questions/149620/easy-way-to-prove-that-this-algorithm-eventually-terminates solve this thing!
22:53:21 -!- Kevin has joined.
22:53:46 -!- Kevin has changed nick to Guest6589.
22:56:45 -!- Guest6589 has quit (Client Quit).
23:10:11 -!- adu has quit (Quit: adu).
23:12:59 -!- adu has joined.
23:29:06 -!- typeclassy has joined.
23:36:37 -!- augur has quit (Quit: Leaving...).
23:45:58 -!- typeclassy has quit (Ping timeout: 245 seconds).
23:46:38 <shachaf> copumpkin: hi did you ever read that thing
←2013-11-22 2013-11-23 2013-11-24→ ↑2013 ↑all