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