←2014-12-03 2014-12-04 2014-12-05→ ↑2014 ↑all
00:08:20 -!- Bicyclid1ne has quit (Ping timeout: 250 seconds).
00:16:59 -!- Bicyclidine has joined.
00:40:50 -!- Bicyclidine has quit (Ping timeout: 250 seconds).
00:45:40 -!- mihow has quit (Quit: mihow).
00:46:59 -!- mihow has joined.
00:53:02 <Taneb> Hmm, what is valid C but invalid/differently semanticated(?) C++?
00:53:25 <shachaf> char *p = malloc(n);
00:53:47 <Taneb> shachaf, elaborate?
00:54:33 <callforjudgement> Taneb: foo *x = allocateFoo(); if (!x) goto cleanup_foo; bar *y = allocateBar(); if (!y) goto cleanup_bar; /* ... */ deallocateBar(); cleanup_bar: deallocateFoo(); cleanup_foo: ;
00:54:43 <callforjudgement> I like that example because this is 100% idiomatic in C
00:55:07 <callforjudgement> in C++, you can't goto into the scope of a declaration
00:56:00 <callforjudgement> both my and shachaf's examples are pretty non-contrived, but shachaf's is easier to fix
00:56:08 <callforjudgement> Taneb: there are no implicit casts from void* in C++
00:56:17 <Taneb> Right
00:56:22 <Taneb> I can use this
00:56:28 <Taneb> I probably won't, but I can...
00:56:40 <callforjudgement> so you'd need to write "char *p = reinterpret_cast<char *>(malloc(n));"
00:56:42 -!- callforjudgement has quit.
00:56:51 -!- callforjudgement has joined.
00:56:54 <callforjudgement> [00:53] <callforjudgement> Taneb: foo *x = allocateFoo(); if (!x) goto cleanup_foo; bar *y = allocateBar(); if (!y) goto cleanup_bar; /* ... */ deallocateBar(); cleanup_bar: deallocateFoo(); cleanup_foo: ;
00:56:56 <callforjudgement> [00:53] <callforjudgement> I like that example because this is 100% idiomatic in C
00:56:57 <callforjudgement> [00:54] <callforjudgement> in C++, you can't goto into the scope of a declaration
00:56:59 <callforjudgement> [00:55] <callforjudgement> both my and shachaf's examples are pretty non-contrived, but shachaf's is easier to fix
00:57:00 <callforjudgement> [00:55] <callforjudgement> Taneb: there are no implicit casts from void* in C++
00:57:02 <callforjudgement> [00:55] <callforjudgement> so you'd need to write "char *p = reinterpret_cast<char *>(malloc(n));"
00:57:02 <Bike> got all of those
00:57:03 -!- callforjudgement has changed nick to ais523.
00:57:14 <Taneb> <Taneb> Right
00:57:15 <Taneb> <Taneb> I can use this
00:57:15 <Taneb> <Taneb> I probably won't, but I can...
00:57:17 <ais523> oh, well I didn't get any reply you may have made
00:57:38 <ais523> anyway, in both cases (mine and shachaf's), the C code is normally considered the correct way to write the program in C, by C experts
01:01:42 <elliott> isn't static_cast enough
01:02:35 -!- Bicyclidine has joined.
01:12:28 <oren> yeah but then what do you even do in c++ if you want to goto cleanup code?
01:12:55 <oren> i guess each declaration has to be in its own {} pair?
01:12:57 <elliott> raii
01:13:48 <Bike> more like raii bother, amirite folks
01:13:52 <oren> what if the object is a database transaction or something where the cleanup code may itself need to handle an error?
01:14:20 <oren> also raii doesn't mean what it stands for
01:15:55 <oren> it actually means allocate in constructor, deallocate in destructot
01:16:42 <oren> it has nothing to do with initializing members per se
01:16:55 <shachaf> good thing it's not called raimi
01:19:08 <elliott> it's not about allocation
01:19:11 <elliott> allocation is a special case.
01:20:12 <oren> allocation, acquireing locks, etc...
01:20:45 <elliott> "initialisation" doesn't mean initialisation of members.
01:20:48 <oren> point is, you take resources in constructor and release in dtor
01:20:51 <elliott> it means the initialisation that happens when a constructor is called.
01:21:15 <oren> initialization means copying a bunch of data into member vars.
01:21:29 <oren> that is not what raii is about...
01:21:46 <elliott> "In RAII, holding a resource is tied to object lifetime: resource allocation (acquisition) is done during object creation (specifically initialization), by the constructor"
01:21:57 <elliott> your interpretation is wrong
01:22:32 <elliott> should I copy paste every line I say correcting you multiple times? it seems like you just repeat your claim the first few times
01:22:41 <oren> constructor does more than initialization. constructor is arbitrary code, which may do whatever?
01:23:10 <elliott> "In RAII, holding a resource is tied to object lifetime: resource allocation (acquisition) is done during object creation (specifically initialization), by the constructor"
01:23:33 <oren> and your point. they are using word initialization loosely
01:23:42 <oren> to mean calling the constructor
01:24:12 <elliott> it's not "loosely".
01:24:15 <elliott> it's just "differently from you".
01:24:19 <oren> struct foo x= {221,345,635}; that is initialization
01:24:43 <oren> constructor can do whatever it wants, up to and including creaign files, etc
01:24:49 <elliott> I should really just put you on /ignore...
01:24:50 -!- Tesla43 has joined.
01:25:02 <Jafet> `` exec $(echo bin/*elcome* | shuf | head -n 1) elliott
01:25:06 <HackEgo> ova/erypbzr: Jrypbzr gb gur vagreangvbany uho sbe rfbgrevp cebtenzzvat ynathntr qrfvta naq qrcyblzrag! Sbe zber vasbezngvba, purpx bhg bhe jvxv: <uggc://rfbynatf.bet/>. (Sbe gur bgure xvaq bs rfbgrevpn, gel #rfbgrevp ba vep.qny.arg.)
01:25:15 <elliott> ty
01:25:16 <oren> well then is there a technical term for the initialization that i mean?
01:26:07 -!- Tesla43 has quit (Client Quit).
01:26:16 <oren> consider what is typically done in c++ initialiazation lists, for example.
01:26:37 <Bike> good news, there's a .bet tld
01:26:52 <oren> .bet? like gambling?
01:26:53 <elliott> I would say "initialisation of member fields" or "initialisation" when the context makes it obvious.
01:26:55 <Bike> Betting, when practiced responsibly, can be extremely enjoyable. It can also excite the passions, and command phenomenal attention and interest. Knowing this, we aim to unite these feelings under one electronic roof within this generic TLD (Top Level Domain) .Bet. Online betting has increasingly become part of everyday life for hundreds of millions of people, and nowadays online markets exist for betting on
01:27:00 <elliott> there's probably a technical term in the C++ standard
01:27:01 <Bike> just about anything.
01:27:16 <elliott> it may even be "initialisation" but that doesn't change the fact that RAII is just invoking the less specific meaning of initialisation
01:27:32 <Bike> An intuitive generic Top Level Domain (TLD) name makes .bet distinguishable from the broad bet-related content found across the Internet, and there are clear benefits to all those in the betting affinity group.
01:27:37 <elliott> "Other names for this idiom include Constructor Acquires, Destructor Releases (CADRe) [6]" my other car is a CADRe
01:28:00 <oren> Cadre is better.
01:28:06 <oren> I like that thanks
01:28:09 <Bike> my other car is a junta
01:29:20 <elliott> nobody knows what CADRe means. also it doesn't generalise as well to non-C++ languages
01:30:10 <oren> wll most every other language has automatic memory management so it isn't such a huge thing
01:30:24 <Taneb> elliott, Scheme has caddadr but I think that is different
01:30:25 <oren> (every other OO lanfgage i mean)
01:30:48 <elliott> RAII applies in non-OO contexts too
01:31:07 <elliott> depending on your definition of OO, anyway
01:32:08 <oren> i only have an informal one: a language in which setting a variable is not equivalent to a memcpy.
01:32:30 <oren> eg. it may do arbitrary things
01:33:33 -!- Bicyclidine has quit (Ping timeout: 255 seconds).
01:33:54 <Bike> register x equals zero
01:34:14 <elliott> that's your definition of OO??
01:34:22 <elliott> in Java every assignment is a memcpy.
01:35:13 <oren> there is no hidden behaviourof any non-function call construct?
01:35:14 <ais523> elliott: my understanding of the situation generally is that RAII is a good idea in general, but C++ makes it very difficult to use alternatives
01:35:35 <elliott> in java, x = y never does anything more complex than evaluating y and copying the result into x
01:35:40 <elliott> usually the result is a pointer
01:35:51 <elliott> (if Java has added = overloading recently I'm going to look so foolish)
01:36:11 <oren> good point.
01:36:13 <Bike> how will you ever live it down
01:36:14 <ais523> Java doesn't allow overloading of anything that doesn't look like a function call, AFAIK
01:36:19 <elliott> anyway, categorising high-level language attributes like object-orientation based on non-universal implementation details is pretty silly...
01:36:32 <ais523> function/method
01:36:39 <oren> but then why isn't C OO if I use FILE*?
01:37:03 <ais523> C is using encapsulation correctly if you use FILE*
01:37:11 <ais523> since C11, at least
01:37:17 <ais523> C89 and C99, FILE has to be a concrete struct
01:37:22 <ais523> or, well, concrete type generally
01:37:41 <oren> so with struct declarations, C is OO? that doesn't make sense.
01:38:12 <oren> e.g. declare struct foo; in header, define in .c file.
01:38:34 <elliott> you can use OO techniques in C.
01:38:34 <elliott> of course.
01:38:35 <ais523> oren: what is confusing you is that OO does not have a monopoly on good data hiding and encapsulation principles
01:38:37 <elliott> it's pretty popular.
01:38:46 <Bike> i was so excited to get to talk about reading frames last night. what a fool i was
01:38:55 <elliott> "OO language" is an ill-defined and vague term, anyway
01:39:00 <elliott> doesn't mean it's not useful
01:39:01 <ais523> just like dynamically typed languages do not have a monopoly on good testsuites
01:39:05 <elliott> but it does mean trying to lawyer your way around it is pointless
01:39:30 <oren> that is why I define it in terms of hidden behaviour of simple constructs?
01:39:42 <ais523> oren: would you consider :≠ object-oriented?
01:40:01 <elliott> god, I hate this channel so much
01:40:23 <Bike> this is like when someone was trying to talk about an equality operator in a very non C language as being "pointer equality", "like C", because C doesn't put things in registers ever
01:40:30 <Bike> i wonder if there's a ##biology
01:40:35 <elliott> I am a concentrated block of bitterness
01:40:38 <Bike> nope
01:40:41 <ais523> Bike: I define reference equality as "changing one of these things changes the other"
01:40:50 <Bike> oh, there is #biology
01:40:53 <Bike> ais523: much more sensible, yes
01:40:58 <oren> copy on write
01:41:01 <ais523> this is a pretty good definition of reference equality regardless of language, except when you have pointer arithmetic and pointers to subobjects
01:41:14 -!- Bike has left ("never").
01:41:18 <oren> what if copy on write?
01:41:24 <ais523> oren: in the case of reference equality, I'd say that a COW copy is not reference-equal
01:41:38 <ais523> COW is an optimization of copying the value
01:41:56 <oren> i guess that makes sense, but the pointers could be equal before you write
01:41:57 <ais523> which should be an implementation detail
01:42:16 <ais523> they still conceptually reference different objects
01:42:19 <oren> so reference equality isn't pointer equality
01:42:39 <ais523> pointer equality is hard to define
01:42:52 <ais523> there was a recent ongoing argument on comp.lang.c about that that lasted like a month
01:43:35 <ais523> basically, the argument was, if you have two arrays int x[2], int y[2], then is a compiler allowed to be inconsistent about whether x+2 == y?
01:43:37 <oren> pointer equality is easy to define on sane architectures
01:43:48 <oren> where a pointer is an integer
01:43:57 <ais523> gcc and clang can both return inconsistent results for this given suitable programs
01:44:06 <ais523> although this is probably technically a bug
01:44:37 <oren> it is allowed, but it breaks C's assemblerness to do so.
01:44:50 <elliott> C has very little "assemblerness" left.
01:44:57 <ais523> oren: what if a pointer is just an integer, but the compiler does optimizations?
01:45:12 <ais523> oren: anyway, I think you have quite a naive interpretation about what a computer is
01:45:21 <oren> like how?
01:45:31 <ais523> actually, the bigger misconception is that asm is somehow close to the hardware
01:45:48 <ais523> modern asms are basically just compression schemes for executables
01:45:50 <oren> asm isn't. microcode is.
01:45:52 <ais523> because memory bandwidth is so important
01:46:11 <oren> asm is calling subroutines in rom inside the CPU
01:46:13 <ais523> oren: well, what's the point of C being close to asm if asm isn't close to anything?
01:46:20 <ais523> and no, the CPU does optimization too
01:46:23 -!- S1 has quit (Quit: S1).
01:46:38 <ais523> when there's a bug in the CPU's optimizer, it can cause all sorts of pain
01:46:50 <ais523> normally the compilers are just taught to generate code that doesn't expose the bugs
01:47:02 <oren> asm is calling methods of the CPU object
01:47:12 <Taneb> I messed up 24-hour clocks again :(
01:47:18 <Taneb> Booked a train two hours early
01:47:30 <ais523> oren: CPUs are not very object-oriented
01:48:25 <elliott> oren: are you just trolling now
01:48:43 <oren> well no, but as a first approximation to how they work, they interpret their instruction set as a minimal esolang
01:48:59 <oren> using code written in a even more minimal esolang
01:49:11 <ais523> most asms aren't really that eso
01:49:15 <ais523> they typically all work in much the same way
01:49:21 <oren> but machine code it
01:49:23 <oren> is
01:49:39 -!- Phantom_Hoover has joined.
01:49:55 <oren> for example consider how inconsistent x86 is compared to 6502
01:50:07 <ais523> being inconsistent isn't normally enough by itself to make a language eso
01:50:10 <ais523> or PHP would be an esolang
01:50:22 -!- Bicyclidine has joined.
01:50:36 -!- Bicyclidine has quit (Client Quit).
01:50:40 <ais523> incidentally, my working definition of an esolang is "a language for which there's no point in writing an extensive standard library"
01:51:05 <ais523> pretty much all asms fail this test, unless they're for nonexistent processors
01:51:09 <ais523> e.g. redcode is probably an esolang
01:51:23 <elliott> imo all languages are esoteric, and words mean nothing, and ada isn't object-oriented because you run it on a VAX, and skateboarding is NOT a crime
01:51:35 <elliott> and I am president of the united states
01:51:49 <oren> I know nothingabout ada or vaxes
01:52:02 <oren> so for all i know you are right
01:52:20 <elliott> thank you. im glad this place is being reasoanble again
01:52:36 <oren> and how do i know that you are not Obama?
01:52:41 <ais523> it's easy to confuse the opinions of one person with the opinions of the whole channel
01:53:07 <oren> do VAXes have problems with OO?
01:53:25 <ais523> hmm, is it the VAX whose native function call mechanism can't do recursion?
01:53:28 <elliott> the US government outlawed object oriented programming when designing their `Vax' architecture
01:53:46 <ais523> that'd break encapsulation because you can't tell if a call is going to potentially recurse or not if you can't see its definition
01:53:46 <elliott> it's not secure enough.
01:55:16 <oren> hmm, compilers would have to make up their own call sequence
01:55:34 <oren> like saving stuff to a stack before recursing
01:55:40 <ais523> right
01:57:04 <elliott> ais523: isn't it varargs it can't do or something
01:57:08 <elliott> no wait
01:57:13 <elliott> VAX has an instruction to call a function with an argument list, right
01:57:18 <ais523> not sure
01:57:18 <elliott> that works for varargs
01:57:24 <elliott> CISC architectures are wild
01:57:28 <ais523> the convention I'm thinking of overwrites the first two bytes of the called function with the return address
01:57:31 <ais523> and doesn't have a stack at all
01:57:35 <elliott> by , right I mean I'm sure it's true, up to my memory functioning
01:57:37 <ais523> might not be vax though
01:57:56 <elliott> ais523: it should overwrite the target of an immediate jump instruction instead
01:57:57 <ais523> I'm pretty sure the convention exists; however, I'm not certain I've got the arch right
01:58:03 <elliott> at the end of the function
01:58:13 <ais523> elliott: then how would it know where the end of the function was?
01:58:30 -!- boily has joined.
01:58:42 <elliott> ais523: hmm
01:58:50 <elliott> there are several options, not sure which one is most amusing
01:59:19 <oren> this sounds like a terrible plan. i like it
01:59:37 <elliott> ais523: one is to have a pointer to the start of the function after that jmp
02:00:43 <oren> is there any reason why the assembler has to keep track of onlyone address for each function?
02:00:57 <ais523> memory bandwidth
02:01:07 <ais523> you want the encodings of your commands to be as short as possible
02:01:10 <oren> oh yeah that was low back then.
02:01:21 <ais523> actually, it's lower nowadays than it was back then, relative to CPU speeds
02:01:23 <elliott> ais523: OK, how about this: the jmp instruction is actually at the start of the function
02:01:30 <elliott> ais523: the CPU can run both forwards and backwards
02:01:32 <ais523> on old computers, the RAM could normally keep up with a CPU running at top speed
02:01:35 <elliott> jumping makes it run forwards
02:01:44 <ais523> on modern computers, there's no chance
02:01:50 <oren> now we use caches for that right?
02:01:53 <elliott> ais523: so to return, you do something like, when running forwards
02:02:01 <elliott> uhhh
02:02:07 <elliott> actually I had a good idea but now it seems not good
02:02:08 <elliott> never mind
02:02:11 <ais523> oren: caches are an attempt to work around the problem
02:02:17 <ais523> but they can only partially help
02:02:30 <ais523> because physical limits affect how much data you can store in them at a time
02:03:07 <oren> hey... question: can a cpu operate using only its cache as memory?
02:03:16 <oren> with no RAM external?
02:04:16 <oren> like we have cpus with MB of cache. way back when, 10MB was a lot.
02:04:31 <ais523> CPUs have multiple layers of cache
02:04:37 <elliott> oren: CPUs do operate that way when they boot up
02:04:39 <elliott> the RAM has to be initialised
02:04:42 <ais523> arguably the lowest level is the registers, and you can certainly do useful programs with just those
02:04:49 <ais523> but you're very limited in storage
02:05:32 <oren> so then i think it may be possible to run DOS entirely in cache.
02:05:52 <oren> look ma, no mmu or ram?
02:09:17 <ais523> oren: there are multiple caches
02:09:22 <ais523> you probably couldn't fit DOS into L1
02:09:33 <ais523> but L3 is very likely possible on the CPUs that have it, not sure about L2
02:10:09 -!- G33kDude has joined.
02:10:21 <oren> hmm... i'm gonna take all the ram out of my test box and try to boot it...
02:10:57 <oren> ehat even happens during startup if there is not ram?
02:13:40 <ais523> presumably, the RAM test fails
02:13:59 <ais523> most likely, you'll get a diagnostic produced the best way the computer's ROM knows how
02:13:59 -!- Froox has joined.
02:14:13 <ais523> if you're lucky, that'll be a message on the screen, but more likely it'll be a sequence of beeps
02:14:24 -!- Frooxius has quit (Read error: Connection reset by peer).
02:15:38 <oren> yup. despite having as mmuch memory inside CPU as the C64 even had, no graphics or text.
02:16:01 <Sgeo> I kind of want to try the Implicit Association Test at some point, but really scared to
02:19:27 <oren> what is that test in?
02:19:44 <oren> what field that is?
02:19:54 <ais523> oren: most likely, the problem is that the GPU uses memory mapping to know what it's supposed to say
02:19:58 <ais523> and with no RAM, there's no memory to map in
02:20:03 <ais523> not like the GPU can access the CPU cache
02:20:05 <oren> dang
02:20:20 <Sgeo> oren: tries to uncover subconscious biases
02:20:29 <Sgeo> iiuc
02:21:00 <oren> i guess we'll have to wait for system-on-a-chip
02:23:41 <oren> yeah i can see why that would be scary...
02:26:23 -!- ais523 has quit.
02:27:05 -!- G33kDude has changed nick to GeekDude.
02:42:03 -!- shikhout has joined.
02:45:21 -!- shikhin has quit (Ping timeout: 264 seconds).
02:54:23 <oren> so my dad dug up a msdos floppy... lo and behold it still works
02:54:40 <oren> A:\>
02:55:33 <oren> really nintendo has nothing on intel when it comes to backward compatibility
02:56:30 <boily> ah, the days of B:...
03:00:28 -!- boily has quit (Quit: OCCLUSAL CHICKEN).
03:12:04 <paul2520> oren: that's awesome. I have a floppy drive connected to my pi, and really enjoyed digging up some old floppies to see what was on them
03:12:21 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
03:50:01 -!- shikhout has quit (Ping timeout: 240 seconds).
03:51:19 -!- Frooxius has joined.
03:51:36 -!- Froox has quit (Read error: Connection reset by peer).
04:08:37 <oren> I am now learning QBASIC
04:28:48 -!- bb010g has joined.
04:29:19 <oren> About how much work would it be to get DOOM working?
04:31:17 <shachaf> whoa
04:31:25 <shachaf> archive.org has old versions of sourcereal.com
04:31:53 <shachaf> "Many spices are found in sour cereal. There is cumin, which has a cumin flavor, and adds a cumin flavor to the cereal. There is also fenugreek which actually lends a sour flavor to the cereal. Also, in sourcereal, can be found oregano seeds. Sourcereal has cilantro as well. Cilantro can be added to the sour cereal after it has finished cooking. Cilantro is almost always found in sour cereal."
04:31:59 <shachaf> and ads
04:32:01 <shachaf> all sorts of things
04:43:12 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
04:50:37 -!- Lymia has quit (Remote host closed the connection).
05:05:31 -!- yorick has quit (Ping timeout: 258 seconds).
05:05:34 -!- yorick_ has joined.
05:10:32 -!- oren_ has joined.
05:10:59 -!- oren has quit (Ping timeout: 258 seconds).
05:11:00 -!- paul2520 has quit (Ping timeout: 258 seconds).
05:11:07 -!- oren_ has changed nick to Oren.
05:11:51 -!- paul2520 has joined.
05:46:43 -!- AndoDaan_ has joined.
05:49:22 -!- AndoDaan has quit (Ping timeout: 245 seconds).
05:56:44 -!- AndoDaan_ has quit (Ping timeout: 250 seconds).
06:00:56 -!- AndoDaan has joined.
07:11:18 -!- CakeMeat has joined.
07:11:34 <CakeMeat> Replace every vowel in your name with oob
07:17:37 <fizzie> Why would we want to do that, CoobkoobMooboobt?
07:25:55 <CakeMeat> >_<
07:26:13 <CakeMeat> Why not foobzzooboob
07:27:14 -!- ZombieAlive has quit (Remote host closed the connection).
07:32:31 <fizzie> Because it would look: silly.
07:32:34 <Oren> oobroobn
07:32:53 -!- Oren has changed nick to oobroobn.
07:33:00 <oobroobn> there
07:34:15 <oobroobn> btw QBASIC is awesome. i am gaining a great respect for Microsoft.
07:37:52 -!- Patashu has joined.
07:39:19 * int-e wonders how close to 13 years old CakeMeat is.
07:40:51 <oobroobn> qbasic is a better ide than most modern ones - for example it dynamically formats your code to be readable, as you type it.
07:47:05 * CakeMeat slaps int-e
07:47:27 <CakeMeat> Dont be rude i was just trying to lighten the mood in here
07:47:36 -!- oobroobn has changed nick to arbrarbn.
07:48:41 <CakeMeat> QBASIC is probably the only thing i appreciate in terms of Microsoft
07:50:10 <arbrarbn> i still can't quite fathom that a disk my dad copied in 1994 works in a 2009 computer
07:51:01 <CakeMeat> ?? magic
07:51:01 <lambdabot> magic
07:51:29 <CakeMeat> Lambdabot agrees
07:51:43 <arbrarbn> the magic of intel making every processor an extention of previous processors i gusss
07:53:11 <int-e> > reverse "mood"
07:53:13 <lambdabot> "doom"
07:53:40 <arbrarbn> i want to get doom working now
07:54:09 <CakeMeat> Why would you change your name to arbarbn
07:54:21 <CakeMeat> Also im in the mood for doom
07:54:41 -!- arbrarbn has changed nick to yaaryaan.
07:55:40 <yaaryaan> if i can find the original game for DOS that would be epic
07:58:11 <elliott> int-e: didn't you hear? CakeMeat is 25, and married with three kids and one more on the way, with his broken CPU core :p
07:59:21 <int-e> elliott: I'll take your word for it. I'm too lazy to check the logs.
08:00:04 <CakeMeat> :I
08:00:32 <CakeMeat> I enjoy your company elliott
08:00:43 <CakeMeat> Its a treat
08:02:20 <elliott> same
08:15:13 -!- Phantom_Hoover has joined.
08:16:37 <int-e> aww, codu no longer does rsync?
08:17:29 <elliott> doesn't it?
08:17:31 <elliott> !logs
08:17:37 <elliott> 08:16:46 [freenode] -glogbot(dlopen@libdl.so)- Logs: http://codu.org/logs/_esoteric/ . Also available via rsync: rsync --size-only -avz rsync://codu.org/logs/_esoteric/ logs/
08:23:06 <int-e> Yes, that's what I have: rsync --size-only -avz rsync://codu.org/logs/_esoteric/ .
08:23:15 <int-e> rsync: failed to connect to codu.org (64.62.173.65): Connection refused (111)
08:23:18 <int-e> and that's what I get.
08:24:12 <elliott> ah, hm.
08:24:14 <elliott> it worked for me recently.
08:24:18 <int-e> Oh well, wget -c does the trick as well.
08:24:39 <elliott> I could give you a compressed copy of the #esoteric logs if you'd like.
08:25:02 <int-e> I'm good.
08:26:04 <int-e> rsync worked before, I'm just grabbing a coupe of recent logs.
08:28:29 <yaaryaan> why not a sedan of recent logs?
08:29:07 <int-e> argh.
08:34:37 <int-e> elliott: aww, I think you made up everything you just said about CakeMeat. I'm so dreadfully disappointed.
08:35:02 <elliott> int-e: no, CakeMeat made it up
08:35:07 <elliott> you may also know him as Dulnes
08:36:07 <int-e> oh
08:45:03 <int-e> Oh James Stirling seems to have had an interesting life... "Fearing assassination on account of having discovered a trade secret of the glassmakers of Venice, he returned with Newton's help to London about the year 1725."
09:05:15 -!- HackEgo has quit (Ping timeout: 250 seconds).
09:07:54 -!- HackEgo has joined.
09:30:42 -!- oerjan has joined.
09:41:22 -!- mroman has changed nick to mroobmoobn.
09:42:07 <mroobmoobn> !blsq "b~"{"oobs"}f~
09:42:08 <blsqbot> | "boobs"
09:42:43 <oerjan> `relcome mroobmoobn
09:42:45 <HackEgo> mroobmoobn: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/>. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
09:43:21 <oerjan> you look so nooby today so you get a `relcome
09:43:37 <shachaf> 23:10 <CakeMeat> Replace every vowel in your name with oob
09:43:50 <oerjan> fiendish
09:44:50 <mroobmoobn> ORLY?
09:45:47 <oerjan> YRLY
09:46:32 <shachaf> ørjanly? yaaryaanly
09:46:47 <mroobmoobn> oobrly
09:46:52 <mroobmoobn> yoobrly
09:46:53 <oerjan> shoochoof
09:50:41 <shachaf> It would sure be nice if English had a clear way to write long and short vowels of all varieties.
09:50:54 <shachaf> If you want a short "ee" you can try "i" but you're usually out of luck.
09:51:16 <shachaf> And s/"ee"/"oo"/ s/"i"/"u"/
09:56:19 <oerjan> english spelling is so ghotie
09:57:40 <shachaf> that's such a terrible example :'(
10:00:21 <oerjan> it was meant to be terrible hth
10:04:29 <shachaf> those things come up in contexts not on their own
10:04:49 <shachaf> of all the ways you could make fun of english spelling why would you choose a terrible one
10:05:36 <oerjan> phyandish
10:08:05 -!- AndoDaan has quit (Ping timeout: 256 seconds).
10:26:52 -!- mitchs_ has joined.
10:30:21 -!- mitchs has quit (Ping timeout: 264 seconds).
10:41:42 -!- drdanmaku has quit (Quit: Connection closed for inactivity).
11:03:53 -!- S1 has joined.
11:05:30 -!- Phantom_Hoover has quit (Remote host closed the connection).
11:05:47 -!- Phantom_Hoover has joined.
11:08:34 -!- mihow has quit (Read error: Connection reset by peer).
11:09:52 -!- mihow has joined.
11:13:45 -!- boily has joined.
11:14:47 -!- CakeMeat has quit (Quit: Connection closed for inactivity).
11:17:31 -!- sebbu2 has joined.
11:18:10 -!- sebbu2 has quit (Changing host).
11:18:10 -!- sebbu2 has joined.
11:18:42 -!- sebbu has quit (Ping timeout: 240 seconds).
11:34:22 -!- FreeFull has quit (Ping timeout: 245 seconds).
11:35:07 -!- FreeFull has joined.
11:40:27 -!- S1 has changed nick to S0.
11:51:55 <quintopia> pretty impressed with this brainfuck-in-rust's-type-system thing
11:55:07 -!- Patashu has quit (Ping timeout: 250 seconds).
12:03:17 -!- S0 has changed nick to |S}.
12:05:32 -!- |S} has changed nick to S0.
12:06:38 -!- S0 has changed nick to |S}.
12:26:33 -!- boily has quit (Quit: INFIX CHICKEN).
12:31:11 <Jafet> The poem "The Chaos" has ample examples, though "Foeffer" is doubtful.
12:32:21 -!- |S} has changed nick to S1.
12:34:07 <J_Arcane> I love reading the Haskell sources.
12:52:08 -!- S1 has changed nick to S0.
12:56:39 -!- S0 has changed nick to S1.
13:07:07 -!- FreeFull has quit (Ping timeout: 258 seconds).
13:08:24 -!- FreeFull has joined.
13:08:31 -!- ZombieAlive has joined.
13:23:26 -!- yorick_ has changed nick to yorick.
13:24:28 -!- S1 has changed nick to S0.
13:48:06 <HackEgo> [wiki] [[Dimensions]] http://esolangs.org/w/index.php?diff=41327&oldid=41260 * TomPN * (-3) /* Hello World! */
14:01:33 <HackEgo> [wiki] [[Dimensions]] http://esolangs.org/w/index.php?diff=41328&oldid=41327 * TomPN * (+3) /* Hello World! */
14:04:04 -!- GeekDude has joined.
14:06:25 -!- cluid has joined.
14:10:27 -!- J_Arcane has quit (Quit: ChatZilla 0.9.91-rdmsoft [XULRunner 32.0.3/20140923175406]).
14:13:17 -!- S0 has changed nick to S1.
14:20:59 -!- J_Arcane has joined.
14:27:50 -!- drdanmaku has joined.
14:54:47 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
15:01:39 -!- `^_^v has joined.
15:05:48 -!- oerjan has quit (Quit: Later).
15:07:56 <HackEgo> [wiki] [[Mmmm()]] http://esolangs.org/w/index.php?diff=41329&oldid=41318 * SuperJedi224 * (+1785)
15:10:07 <HackEgo> [wiki] [[Mmmm()]] http://esolangs.org/w/index.php?diff=41330&oldid=41329 * SuperJedi224 * (-38)
15:14:11 -!- GeekDude has joined.
15:31:56 -!- ZombieAlive has quit (Remote host closed the connection).
15:32:55 -!- ZombieAlive has joined.
15:40:50 -!- Sprocklem has joined.
15:47:58 -!- sebbu2 has changed nick to sebbu.
15:54:46 -!- adu has joined.
16:04:02 -!- olsner has quit (Ping timeout: 240 seconds).
16:04:32 -!- olsner has joined.
16:06:06 <HackEgo> [wiki] [[Musical notes]] http://esolangs.org/w/index.php?diff=41331&oldid=41089 * TomPN * (+109) /* Example programs */
16:06:24 <HackEgo> [wiki] [[Musical notes]] http://esolangs.org/w/index.php?diff=41332&oldid=41331 * TomPN * (+0) /* Hello World! */
16:06:40 <HackEgo> [wiki] [[Musical notes]] http://esolangs.org/w/index.php?diff=41333&oldid=41332 * TomPN * (-109) /* Example programs */
16:07:37 <HackEgo> [wiki] [[Musical notes]] http://esolangs.org/w/index.php?diff=41334&oldid=41333 * TomPN * (+95) /* Example programs */
16:07:54 <HackEgo> [wiki] [[Musical notes]] http://esolangs.org/w/index.php?diff=41335&oldid=41334 * TomPN * (-3) /* Example programs */
16:08:04 <HackEgo> [wiki] [[Musical notes]] http://esolangs.org/w/index.php?diff=41336&oldid=41335 * TomPN * (-187) /* Example programs */
16:08:16 <int-e> @metar LOWI
16:08:17 <lambdabot> LOWI 041550Z VRB02KT 9999 FEW060 SCT090 BKN300 06/04 Q1012 NOSIG
16:13:05 <S1> what was the prefix for HackEgo again?
16:18:41 -!- nyuszika7h_ has joined.
16:18:57 -!- nortti_ has joined.
16:18:58 <int-e> `help
16:18:58 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
16:19:14 <S1> meh I thought it was '
16:19:28 <int-e> 'help
16:19:37 <S1> I tried it already (duh)
16:19:42 -!- KingOfKarlsruhe has quit (Ping timeout: 265 seconds).
16:19:45 -!- nyuszika7h has quit (Ping timeout: 265 seconds).
16:19:45 -!- fizzie has quit (Ping timeout: 265 seconds).
16:19:45 -!- nortti has quit (Ping timeout: 265 seconds).
16:19:56 * int-e says: help
16:20:00 -!- KingOfKarlsruhe has joined.
16:20:27 -!- nortti_ has changed nick to nortti.
16:21:06 <int-e> `unidecode ;;
16:21:09 <HackEgo> ​[U+037E GREEK QUESTION MARK] [U+003B SEMICOLON]
16:26:47 -!- fizzie has joined.
16:30:30 -!- adu has quit (Quit: adu).
16:33:59 -!- ZombieAlive has quit (Remote host closed the connection).
16:35:04 <int-e> > 1
16:35:05 <lambdabot> 1
16:35:26 -!- lambdabot has quit (Remote host closed the connection).
16:36:44 <int-e> (The provider just announced a reboot, so that's happening right now... they really need to improve their stability or I'll have to look for another one...)
16:39:41 -!- adu has joined.
16:48:21 -!- S1 has quit (Quit: S1).
16:51:38 <int-e> okay, it's coming back.
16:52:44 -!- GeekDude has quit (Read error: Connection reset by peer).
16:52:58 -!- GeekDude has joined.
16:55:02 -!- lambdabot has joined.
16:55:25 <int-e> @bot
16:55:33 <lambdabot> :)
17:02:47 -!- Sprocklem has quit (Ping timeout: 250 seconds).
17:03:54 <int-e> hehe, 26303 elo rating, quite impressive. http://2700chess.com/
17:05:22 <int-e> aww, it's fixed.
17:06:26 -!- zzo38 has joined.
17:16:28 -!- yaaryaan has quit (Quit: Lost terminal).
17:20:05 <FireFly> int-e: that's a good bot prefix ("^AACTION is", that is)
17:20:21 <FireFly> er, s/is/says: /2
17:20:25 <b_jonas> FireFly: I propsed color codes as a bot prefix
17:20:39 <FireFly> Also a good idea
17:20:53 <J_Arcane> µ
17:20:54 <FireFly> ^O would be discrete
17:21:06 <FireFly> er, discreet maybe
17:21:15 <FireFly> subtle is probably a better word choice
17:22:14 -!- adu has quit (Quit: adu).
17:25:14 -!- nyuszika7h_ has changed nick to nyuszika7h.
17:27:57 -!- bb010g has quit (Quit: Connection closed for inactivity).
17:33:53 -!- Sprocklem has joined.
17:36:16 -!- adu has joined.
17:36:56 <cluid> does anyone use zarfs IF viewer
17:37:43 <cluid> http://www.eblong.com/zarf/xzip.html
17:37:48 <cluid> i wanted to run it, but it wont work/
17:40:45 <zzo38> I have written a Z-machine implementation, too, called ZORKMID
17:41:04 <zzo38> Which uses plain C so shouldn't need X or anything like that
17:41:16 -!- ZombieAlive has joined.
17:41:36 <cluid> I was mostly interested in how he made a GUI in X, i want to make a GUI
17:41:57 <zzo38> Well, I don't know much about making anything in X
17:42:09 <cluid> I also wondered how to compile inform to zcode, but it looks quite a lot of work so I probably wont look into that
17:42:48 <cluid> zzo38, what about making an IRC channel through which people can play zork? (as a group)
17:44:13 <zzo38> I think ifMUD has something like that?
17:45:59 <zzo38> Note "ZORKMID" is short for "Zork Machine Interpreter and Debugger"
17:47:55 <zzo38> You can also learn how a Z-machine implementation is working by looking at its source-codes and you can do other thing if you want with it since it is in the public domain.
17:48:46 <b_jonas> oh, so that's what zorkmid stands for! I knew it had to do with zork.
17:49:24 <zzo38> Well, this is only what my own program called "ZORKMID" stands for anyways.
17:49:33 <b_jonas> oh...
17:49:34 <b_jonas> um
17:49:49 <cluid> zorkmid also means zork currency??
17:49:56 <zzo38> Currently it is only an implementation of ZIP. Later I can make implementation of EZIP and called it EZORKMID.
17:50:36 <zzo38> cluid: Yes it is also that
17:51:43 <cluid> do you have any tips if i find IF games very hard?
17:53:04 <zzo38> No, I don't have any myself, although you could look it up
18:15:58 -!- adu has quit (Quit: adu).
18:36:11 <FreeFull> You should have named it GRUE
18:36:37 <FreeFull> Well, ZORKMID is a good name too
18:37:02 -!- Sprocklem has quit (Ping timeout: 240 seconds).
18:39:42 <zzo38> Why do you want to call it GRUE?
18:41:47 <zzo38> Does it stand for anything?
18:41:56 <int-e> it's just a creature
18:42:11 -!- oren has joined.
18:42:43 <zzo38> Yes I know
18:43:06 <zzo38> But I wanted to make the name short for "Zork Machine Interpreter and Debugger", that's why I didn't call it GRUE
18:43:55 <int-e> a weak attempt: Game RUntime Environment
18:44:59 -!- MoALTz has joined.
18:45:03 <cluid> my code isnt working :(
18:45:12 <oren> what code is it?
18:45:23 <int-e> missile launch code?
18:46:04 <cluid> its emitting c code, but it got interpreted wrong so the output is wrong
18:46:23 <oren> if(attack=TRUE)sub.launch("ICBM");
18:47:13 <int-e> Wrong, hmm. Did you rely on unspecified or undefined behaviour?
18:47:29 <zzo38> cluid: What code is that?
18:47:45 <cluid> its my lisp code
18:47:54 <cluid> i have been writing it a long time and its bad
18:48:03 <oren> lisp emitting C? cool!
18:48:40 <int-e> (I wonder how C code can be interepreted wrong rather than being wrong in the first place. Okay, it could be a compiler bug...)
18:49:08 <oren> probaby he means the code the lisp is reading is being interpreted wrong.
18:49:23 <int-e> Oh, the many meanings of "it". You could be right.
18:49:51 <oren> are you also probaby?
18:50:10 <int-e> I read that as "probably"
18:50:26 <oren> i know, its what i meant originally
18:50:38 <int-e> I mean, I didn't even see the typo.
18:51:01 <int-e> Anyway, I'm neutral about babies.
18:55:13 <oren> well anyway i think languages should be designed so they are easy to parse. Lisp is a very good example.
18:55:59 <oren> so if you can't get a parser working, it's probably the language designer's fault
18:56:27 <oren> (assuming you are a competent programmer for most things)
18:56:42 <int-e> I don't like Lisp's (lack of) syntax at all.
18:56:59 <oren> How about J? (also easy to parse)
18:57:50 <oren> what languages are your favorites?
18:58:53 <Melvar> oren: I disagree, a language should be easy for a human to parse. That generally means whitespace-sensitive.
18:59:07 <Melvar> Indentation-sensitive specifically.
18:59:33 <oren> if a language is indentation sensitive it should disallow the tab character
19:00:08 <oren> that would make it much easier to parse
19:00:12 <Melvar> That would actually be fine with me.
19:01:14 <oren> because if the only indent char is space, then it reduces to a simple count.
19:01:29 <Melvar> > filter isSpace [minBound .. maxBound]
19:01:30 <lambdabot> "\t\n\v\f\r \160\5760\6158\8192\8193\8194\8195\8196\8197\8198\8199\8200\8201...
19:02:13 <oren> ok just disallow any whitespace other than \n and space
19:02:54 <oren> that would also allow code editor to use tab-completion
19:03:42 <oren> how do you even type a vertical tab or a form feed?
19:03:44 <myname> just make it like makefiles, only allow tabs
19:04:20 <oren> noo. tabs only in non-whitespace-sensitive languages!
19:04:47 <oren> when i see python first thing i do is change the tabs to spaces.
19:05:39 <Melvar> > isSpace ' '
19:05:40 <oren> in C i change spaces to tabs
19:05:41 <lambdabot> True
19:06:02 <oren> is that weird?
19:06:12 <fizzie> > length $ filter isSpace [minBound .. maxBound]
19:06:14 <lambdabot> 23
19:08:16 <Melvar> Hm, I wonder how GHC reacts to double-wide characters in places they would influence indentation …
19:08:39 -!- Frooxius has quit (Quit: *bubbles away*).
19:09:50 <oren> what like an ideographic space?
19:10:31 <oren> should disallow them but what do i know?
19:10:38 <Melvar> No, an ideographic identifier before a case or where or something.
19:10:44 <oren> oh....
19:11:21 <oren> should be treated as 2 chars wide, that is standard in those languages.
19:12:05 <int-e> oren: I happen to be quite attached to parsing numerical expressions with their usual precedences and evaluation order.
19:13:25 <int-e> But at least it looks like J wouldn't make me (or my editor) count parentheses all the time.
19:14:42 <oren> i think if you need proper algebra it should be a sub-language in the same way as regexes
19:16:11 <oren> that way it does not overcomplicate the parser for the rest of the language. algebraic expressions can be treated as black boxes be the parser.
19:16:53 <oren> becuase most code is not overly mathematical
19:17:06 <Melvar> It appears GHC treats double-wide chars the same as single-wide chars. Meaning the indentation looks weird in the case I contrived.
19:21:18 <int-e> oren: So I have two objections, I think. One is, now I have to rely on some third part (not the compiler, and not me) to give me useful syntax errors. That's the smaller concern. The bigger concern is that there will be a proliferation of slightly incompatible algebraic notations in the wild. How do you avoid that?
19:21:29 <int-e> In any case you've merely shifted complexity.
19:24:31 <oren> programming languages already have a proliferation of incompatible algebraic notations.
19:24:45 <oren> that is what the algolsphere is
19:25:00 <int-e> (I happen to be a fan of Haskell, a language that is quite difficult to parse. For the most part I actually like all the syntactic sugar.)
19:25:31 <int-e> Melvar: I'm only using ASCII though ;-)
19:27:52 <cluid> oren, i LIke simple syntax language like lisp and forth, infix operators are good to save on brackets though
19:28:01 <oren> consider 3^5. it is 6 under C derivatives, and 243 in other languages
19:28:33 <int-e> oren: I know. I was talking about this kind of thing happening inside a single programming language.
19:28:48 <zzo38> I also am only using ASCII and as far as I am concerned non-ASCII characters should only be allowed inside of string literals and comments.
19:29:08 <oren> oh. yeah what you do is standardize it for each language, like PERL has its standard regexes
19:29:48 <oren> but the point is there would be a delimiter enclodsing "algebraic mode" from the rest of the language.
19:30:15 <cluid> oren, Yes
19:30:19 <Melvar> I have a bunch of times used greek letters when the most fitting latin letters were already taken.
19:32:20 <oren> i think all letters that look different from others should be allowed. so τ would be allowed but not Ε.
19:33:22 <oren> or the program could be reduced to a "lookalike normal form" before being parsed
19:33:28 <Melvar> That’s probably harder to do than parse indentation-sensitive language.
19:33:46 <HackEgo> [wiki] [[GridScript]] http://esolangs.org/w/index.php?diff=41337&oldid=41291 * SuperJedi224 * (+0) /* Command Summary */
19:33:54 <oren> yeah best to just select which chars look different enough
19:33:55 <cluid> I finally got my code to work
19:34:02 <cluid> it was a really horrible experience
19:34:28 <Melvar> I meant, selecting and enumerating which letters are allowed or not is harder than etc.
19:36:15 <oren> why? you only do it once, and then just keep a list and use the unicode equivalent of strpbrk
19:36:52 <Melvar> wcspbrk?
19:37:02 <oren> and that would happen in the lexer not the parser anyway
19:37:16 <cluid> oren, how is scrip7 going
19:37:39 <oren> i am still creating a better notation for hexes.
19:37:43 <cluid> cool
19:37:48 <Melvar> oren: Also, the doing it once was the thing I meant.
19:39:11 <oren> oh, i think it is that hard, so long as you are limiting to chars used in math
19:40:17 <oren> just the latin greek and hebrew alphabets
19:40:31 -!- Sprocklem has joined.
19:41:27 <oren> i also have to work on school stuff still so i don't expect to be done for a while
19:43:12 <Melvar> Obfuscation exercise: use unicode bidi to write a program that looks like it does something different.
19:44:48 <oren> i guess if you can reverse division...
19:45:13 <Melvar> > let foo = א"ב" where א = id; ב = id in foo
19:45:15 <lambdabot> "\1489"
19:45:29 <Melvar> > var $ let foo = א"ב" where א = id; ב = id in foo
19:45:30 <lambdabot> ב
19:45:40 <olsner> spec obfuscation exercise: extend the bidi algorithm to be turing complete without anyone noticing
19:46:44 <Melvar> If bidi is working, the the א"ב will be shown RTL, so it looks like the א is inside the quotes.
19:47:21 <oren> my font shows hebrew in data order
19:47:59 <oren> or maybe it's the terminal's fault
19:48:03 <Melvar> It’s independent of your font, only dependent on the program doing the text rendering.
19:48:20 <oren> i am using irssi in xfce4-terminal
19:48:31 <Melvar> Not many terminals do this, the only one I’ve heard of is iTerm I think.
19:48:58 <Melvar> Certainly my terminals show them in data order.
19:50:01 <oren> php has a function for converting hebrew
19:50:25 <oren> because it was invented in israel
19:51:12 <Melvar> “converting”?
19:51:39 <oren> hebrev : converts logical heberw text to visual
19:51:57 <Melvar> … that’s horrible.
19:52:23 <cluid> is there a way to tel the c compiler to figure out function prototypes instead of assuming everything is returning int?
19:52:31 <oren> no.
19:52:46 <oren> you need to declare everything
19:53:04 <oren> at the top of the page
19:53:11 <oren> like a book report
19:53:34 <cluid> the problem is i cant be bothered adding code to do it
19:54:52 <oren> if you use my style you can simply copy the first line of the definition, with { changed to ;
19:55:10 <oren> to the top of the file
19:55:59 <cluid> i have code that does this
19:56:15 <cluid> i just hoped i could get it without having to add a flag to run with that option
19:56:41 <oren> huh???
19:58:28 <cluid> im lazy
19:58:50 <oren> why would you need a flag? it should always declare all functions
19:59:56 <cluid> good idea
20:00:27 <oren> declare allthethings.jpg
20:02:09 -!- Phantom_Hoover has quit (Ping timeout: 272 seconds).
20:05:12 -!- Patashu has joined.
20:10:17 <FreeFull> Intercal suggests comefrom could be used for concurrency, but that's true for goto as well
20:10:24 <FreeFull> There is a 1 to 1 mapping between comefrom and goto
20:11:04 <zzo38> Yes, although with computed comefrom it becomes a bit different
20:11:09 <oren> i have used gcc's computed gotos for coroutines before
20:11:33 <FreeFull> Computed comefrom would be interesting
20:16:12 <zzo38> Some implementations of INTERCAL have it.
20:16:30 <oren> hmm you could generalize to a TOFROM statement that links two arbitrary lines
20:16:53 <oren> 50 TOFROM 170 456
20:17:14 <oren> makes program code go from 170 to line 456
20:17:47 <cluid> 51 TOFROM 170 123
20:17:56 <cluid> should it choose randomly?
20:18:06 <oren> or maybe hey overwrite
20:18:23 <Melvar> Fork.
20:18:31 <oren> YES
20:18:59 -!- MoALTz has quit (Quit: Leaving).
20:19:15 -!- Sprocklem has quit (Ping timeout: 272 seconds).
20:20:44 -!- cluid has quit (Quit: Leaving).
20:20:59 <oren> computed TOFROM
20:22:55 <b_jonas> oh, nice
20:23:13 <b_jonas> cluid: it should fork, like that intercal extension
20:24:59 <oren> for thorough unreadability combine with COBOL copybook like things
20:25:18 <myname> omg why didn't i know the flip-flop operator in ruby?
20:27:35 <oren> because it isn't in any other languge afaik
20:27:52 -!- Patashu has quit (Ping timeout: 252 seconds).
20:28:14 <fizzie> Perl's got a flip-flop operator.
20:28:21 <fizzie> I don't know/remember how similar it is with Ruby's.
20:28:22 <myname> http://juliansimioni.com/blog/2014/12/03/deconstructing-fizz-buzz-with-flip-flops-in-ruby/
20:28:31 <myname> not sure if genius or crazy
20:29:40 <oren> oh it is in PERL. i hve never used it though
20:31:05 <oren> I like putting langugae names in all caps. i am writing a thing for school in MATLAB and PYTHON
20:31:18 <myname> i like J
20:31:28 <oren> like i'm shouting the name of the language
20:31:31 <myname> or APL or INTERCAL
20:32:32 <oren> or RUBY or PHP or OBJECTIVE C
20:32:43 <oren> C PLUS PLUS!!!!!
20:35:21 <Taneb> Is there any esolang that actually has procedure calls?
20:36:20 <FireFly> What defines a procedure call?
20:37:31 <oren> s7 can have them if you code it directly. you can jump anywhere
20:38:04 <zzo38> INTERCAL has NEXT which can be used for procedure calls; some implementations also have lectures which is another kind of procedure calls
20:38:08 <oren> by assigning to the program counter
20:38:51 <fizzie> Rail is very procedural, at least for some definitions of.
20:39:09 <Taneb> Like, with parameters and stuff
20:39:45 <zzo38> INTERCAL can also use stashed variables so that you can do something like local variables, and also enslaving variables.
20:40:28 <oren> procedures are a very traditional, un esoteric thing.
20:41:05 <Taneb> I think abstractions in general are a very traditional, un-esoteric thing
20:41:05 <fizzie> Well, Rail doesn't do "parameters and stuff" very explicitly, since it's stack-based, but still.
20:41:12 <oren> exaclty
20:41:21 <fizzie> Glass has methods and all.
20:41:37 <Taneb> (I have to write an essay on the difference between call-by-value and call-by-reference and one of my friends dared me to work an esolang in)
20:41:54 <FireFly> Taneb: maybe object disoriented
20:42:41 <oren> maybe MUMPS?
20:44:23 -!- dario_ has joined.
20:44:33 -!- dario_ has left.
20:46:03 -!- S1 has joined.
20:46:12 <FireFly> I'm not sure if that counts as an esolang
20:47:49 -!- nys has joined.
20:51:56 <fizzie> Funciton has functions that are... hm. I think they're maybe call-by-value, more or less. Maybe it's not the clearest example. I'm not so clear on the evaluation rules of it.
20:53:35 <fizzie> It's not like you could "assign" anything, you just connect the wires.
21:03:27 <fizzie> LOLCODE is call-by-value, and often considered an esolang, but it's quite boring, and you probably shouldn't promote it.
21:03:40 <myname> indeed
21:03:49 <myname> it's fun to read a feature or two
21:04:00 <myname> after that it becomes quite boring
21:05:32 <oren> ruby vs C
21:05:39 <oren> which is more confusing
21:05:49 <myname> C
21:06:05 <oren> using ^ for xor or using .. as a conditional
21:06:25 <myname> what's the deal of using ^ for xor?
21:07:21 <oren> yeah that is one part where scrip7 differs from C. i hate that operator... i used \ but i may change it to something else
21:08:34 <myname> \ doesn't sound anything more logical than ^ to me
21:09:13 <oren> well \ was only in ascii so you could make logical operators by doing /\ and \/
21:09:17 -!- adu has joined.
21:10:02 <oren> hmm maybe xor should be x
21:11:33 -!- adu has quit (Client Quit).
21:11:52 <oren> what is the best notation for xor?
21:13:48 <oren> oh what about (+)?
21:14:14 <shachaf> juxtaposition
21:14:17 <oren> like I(+)0xf0f0
21:14:37 <myname> horrible idea if you use () somewhere else
21:14:49 <myname> (a + b)(+)(c + d)
21:14:53 <shachaf> If you mean ⊕ you should say ⊕.
21:15:00 <shachaf> (+) looks like non-infix +
21:15:07 <FireFly> J just has -: inequality act as xor
21:15:15 <FireFly> er
21:15:17 <FireFly> ~: I mean
21:15:37 <oren> there is no parse tree in this language. all statements are of the form var operator (var or literal)
21:15:49 <oren> and there are exactly 8 vars
21:16:03 <fizzie> If you actually do have \/ and /\ as operators, clearly the only choice is to use _\/_ then.
21:16:42 <oren> I don't and anyway \ is a yen sign in my font.
21:17:19 <oren> i am using c operators except ^ which is pow
21:18:02 <oren> so i need a different symbol for xor
21:19:13 <oren> hmm " ' \ ? @ ` and many letters are not taken
21:19:31 <FireFly> 'x'?
21:19:46 <oren> yeah that sounds good, i'll use x
21:19:59 <oren> so, ixi zeroes i
21:20:31 <FireFly> What are those eight variables called?
21:20:49 <oren> their notation differs according to type.
21:22:15 <oren> there is a table in the article. essentially, when variable 0 points to a char it is a, short A, int i, int64 I, pointer p, float u, double U and the variable's address is P
21:23:22 <oren> and this continues for six letters, and then the instuction pointer is g/G and the return pointer is h/H
21:25:14 <oren> so if P points to a struct{double x,y;int type;} then you can write its members like this: U:4.5 U:3.5 i:3
21:25:59 <oren> the : operator writes the current object and moves to the next
21:27:49 <myname> oren: variables can't be named ixi then?
21:28:18 <oren> there are 8 variables each with 8 or 2 names, each name 1 char
21:28:28 <myname> okay
21:29:22 <oren> ixi unabigiously means *(int32_t*)(var[0])^=*(int32_t*)(var[0]);
21:31:27 -!- AnotherTest has joined.
21:31:37 <oren> when i am finished the new version, all shall be made clear
22:01:34 -!- AnotherTest has quit (Remote host closed the connection).
22:20:30 <oren> yes... i will make everyhting biguous.
22:22:08 <oren> are base 64 literals a good idea
22:22:10 <oren> ?
22:23:39 <oren> for binary data strings that is
22:27:18 -!- oren has quit (Quit: leaving).
22:44:35 -!- dianne has quit (Quit: byeannes).
22:45:33 -!- dianne has joined.
23:06:15 <Sgeo> My screen sometimes gets this bad: http://i.imgur.com/Pumu3c2.png
23:06:21 <Sgeo> Depends on how it's tilted
23:06:21 -!- augur has quit (Quit: Leaving...).
23:10:08 <HackEgo> [wiki] [[Tag]] http://esolangs.org/w/index.php?diff=41338&oldid=41326 * BCompton * (+428) /* Sample programs */
23:10:32 -!- FreeFull has quit (Ping timeout: 244 seconds).
23:16:00 -!- Phantom_Hoover has joined.
23:17:07 -!- oren has joined.
23:18:44 <oren> how does a screen get that bad?
23:18:55 -!- dts|pokeball has quit (Ping timeout: 258 seconds).
23:27:42 <oren> what the heck is up with MATLAB's keyborad shortcuts?
23:27:47 -!- FreeFull has joined.
23:28:35 <oren> why does MATLAB use all these crazy letters instead of CTRL-C and CTRL-V?
23:52:42 -!- `^_^v has quit (Ping timeout: 244 seconds).
23:57:44 -!- adu has joined.
23:59:50 <Sgeo> oren: I don't know
←2014-12-03 2014-12-04 2014-12-05→ ↑2014 ↑all