←2014-12-13 2014-12-14 2014-12-15→ ↑2014 ↑all
00:02:20 -!- glguy has joined.
00:08:44 -!- shachaf has joined.
00:27:15 <boily> shachaf: it may htph
00:27:29 -!- adu has joined.
00:28:25 -!- CrazyM4n has quit (Remote host closed the connection).
00:47:43 * Sgeo wants a lossy compression algorithm for MIDIs that makes artifacts that sound like humans messing up sheet music
00:49:17 <olsner> maybe gzip plus a random seed that controls the messing up part
00:51:13 <zzo38> I wanted a lossless compression algorithm for MIDIs that results in better compression ratios for music without a lot of dissonant chords and stuff
00:54:52 <Jafet> You could use a corpus of midi fragments, then lost sounds get filled in using the ones in the corpus
01:08:02 <zzo38> Do you think one use of Magic: the Gathering cards "One With Nothing" might be you can play madness card even during opponent's turn? It probably can have other uses too
01:12:20 -!- Patashu_ has joined.
01:12:20 -!- Patashu has quit (Disconnected by services).
01:21:06 -!- adu has quit (Quit: adu).
01:39:11 -!- glguy has quit (Quit: Part).
01:45:05 -!- Daniel has joined.
01:45:30 -!- Daniel has changed nick to Guest48264.
01:47:32 -!- adu has joined.
02:10:29 <Guest48264> anybody talk?
02:10:58 <shachaf> `welcome Guest48264
02:10:59 <HackEgo> Guest48264: 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.)
02:12:21 -!- Guest48264 has quit (Quit: irc2go).
02:18:49 -!- Patashu has joined.
02:20:57 -!- Patashu_ has quit (Ping timeout: 244 seconds).
02:31:34 -!- madbr has joined.
02:32:20 <madbr> Q:
02:32:20 <madbr> is there a scripting language (as in, easy to load up and interpret from C++) that has few dynamic structures, no garbage collection and does little dynamic allocation?
02:32:30 <madbr> lua for instance is easy to load and interpret (the library is nice) but it's all dynamic typed and garbage collector and you have no guarantees that it won't do a whole bunch of calls to malloc
02:35:25 <madbr> basically it has to run <0.5ms 100% of the time (it will typically run a callback every 2ms or so, and this absolutely has to be over before the next callback)
02:35:34 <madbr> on windows and OSX
02:35:50 <boily> some Scheme variant, perhaps?
02:36:08 <madbr> it cannot block for 10ms every 5 minutes while the garbage collector runs
02:36:28 <madbr> that is actually not acceptable for my application (pro audio)
02:38:23 <madbr> boily : I'm not familiar with scheme but isn't that all dynamic typed?
02:38:47 <madbr> also it's functional which will confuse the users
02:40:44 <boily> well, scheme's dynamically typed, but then as syntax goes it's very, very simple.
02:41:29 <boily> there's also Forth, but it may confuse users too but in an entirely new way.
02:41:46 <madbr> If I wanted dynamic typed, that I'd go for lua
02:42:47 <madbr> forth is actually closer... it's crazy but it's also all static and you know you're not going to allocate memory by doing, say, an addition
02:43:10 <boily> yeah. I mentioned Forth because memory allocation is quite straightforward.
02:43:35 <boily> off the top of my head, I can't remember any statically typed scripting languages...
02:44:00 <boily> (well, there's Beanshell, but it's a heavyweight abomination on top of the JVM.)
02:44:01 <madbr> the one that I know of is Jesusonic
02:44:02 <madbr> http://www.cockos.com/jesusonic/
02:44:11 <madbr> no jvm
02:45:08 -!- oren has joined.
02:45:20 <madbr> like, it probably doesn't even have to have MAPS
02:45:23 <madbr> or booleans
02:45:35 <madbr> or integers
02:46:08 -!- adu has quit (Quit: adu).
02:46:52 <madbr> or even functions actually
02:48:56 <boily> is the effort of whipping out a custom DSL too much?
02:49:51 <madbr> what's a "DSL"?
02:50:07 <oren> with scrip7 you can allocate all your memory once
02:50:08 <boily> Domain Specific Language.
02:50:20 <madbr> hmm
02:50:23 <oren> but that isn't stable yet
02:50:33 <madbr> well, I'm already thinking of that yeah
02:50:53 <oren> (then again you could just customize the interpreter yourself...)
02:51:04 <madbr> but normally you don't do that (you just use lua)
02:51:20 -!- madbr has quit (Quit: Pics or it didn't happen).
02:51:49 <oren> Pix | it dint hpn
02:52:00 -!- madbr has joined.
02:52:05 <madbr> wops
02:52:42 <boily> IMO, I don't like lua. too much hassle.
02:52:52 <Jafet> I think opencl technically fits those requirements
02:53:00 <oren> that is true!
02:53:11 <oren> technically....
02:53:52 <madbr> jafet: hmm
02:54:16 <madbr> would have to be run on a 1x1 pixel load :D
02:58:56 <madbr> boily : the kind of end users I have are 10x more likely to learn lua than scheme
03:01:28 <boily> so it goes.
03:02:03 <boily> 'night all!
03:02:08 -!- boily has quit (Quit: AUTOMORPHIC CHICKEN).
03:02:14 <Jafet> A subset of scheme that never allocates memory
03:04:54 <madbr> a lot of successful language for sound generation are data-flow languages and are graphical
03:06:48 <zzo38> madbr: I read above and it looks like a Forth-based system can do without garbage collector and all various stuff
03:07:56 <madbr> yes¸
03:09:10 <madbr> the problem is of course that you have to spend a few days jungling in your head with the concept of a stack and how it works, how to use it etc
03:09:51 <zzo38> It look to me not too difficult really.
03:10:17 <oerjan> alas i hear higher-order functions are really hard to do without GC
03:10:57 <madbr> higher-order functions don't really help with the doman specific applications
03:11:24 -!- Azazel_ has joined.
03:11:40 <oerjan> i mean that the scheme subset would not be a very functional one
03:11:43 <madbr> like, it pretty much ok if this only has floats, arrays of floats, and nothing else
03:12:35 <Azazel_> Hi
03:12:51 <oerjan> `welcome Azazel_
03:12:51 <HackEgo> Azazel_: 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.)
03:16:49 <zzo38> Are you sure, float and array of float are all that you should need?
03:17:33 <madbr> possibly string eventually
03:17:43 <Jafet> Lower-order functions
03:18:34 <madbr> maybe array of string, objects, maps if it really has to expand and go there
03:20:00 <madbr> maybe integers if it has to be more performant (for non-interpolated lookup table lookups)
03:20:27 <zzo38> I know for audio stuff I happen to like Csound, although I have never used it for realtime stuff; on a fast computer it would probably work though. Csound doesn't have an integer type; it does have floats, arrays of floats, and strings.
03:21:02 <zzo38> Although Csound isn't am embeddable scripting language very well.
03:21:24 <madbr> right
03:21:34 <madbr> which is why I mentionned jesusonic
03:21:55 <madbr> which is similar (C-based) but is more embeddable
03:25:09 -!- Azazel_ has quit (Quit: Page closed).
03:25:35 <zzo38> Then see if Jesusonic is good for what you are making
03:26:12 <oren> AHA!!! I have figured out how to make the loops in scrip7 fast.
03:27:32 <oren> I will use normal pranthesis matching the FIRST iteration, but CACHE the results in two HASH TABLES using the address of the start and end as keys!
03:27:56 -!- CrazyM4n has joined.
03:28:06 <madbr> :o :P
03:28:15 <oerjan> prana thesis, the esoteric bracketing system
03:28:44 <oren> it is actually esoteric considering in scrip7 { matches with )
03:28:49 <oren> or }
03:29:17 <oerjan> it's however no match for pantheists
03:29:49 -!- oren has changed nick to |{oren}|.
03:30:41 <madbr> { match to ) disurbs me :3
03:30:48 <oerjan> øæorenåø
03:30:49 <|{oren}|> this idea of caheing the result of paren matching can also be used in brainfuck interpreters
03:30:55 <madbr> it's like some OCD part in me goes NO
03:30:57 <zzo38> It is strange for sure, but maybe it can help sometimes?
03:31:37 <|{oren}|> well essentially scrip7 treats all brackets identically
03:31:49 <oerjan> madbr: calm down and go learn some fueue
03:31:51 <|{oren}|> {[(}])
03:32:04 <|{oren}|> [[[)})
03:32:31 <oerjan> madbr: what do you think of half-open intervals hth
03:32:59 <zzo38> If it does a different thing at the beginning and at the end, then maybe it can use different brackets, in case it is also possible to mean same thing with same brackets.
03:33:14 <madbr> a range from 0 to 4 contains 0,1,2,3 and NOT 4
03:33:16 <zzo38> It might be sensible in such. Half-open intervals may be one case I suppose.
03:33:42 <|{oren}|> actually i might change that.
03:33:55 <oerjan> madbr: but does it contain pi hth
03:33:58 <madbr> which i guess is traditionally notated [0, 4[
03:34:10 <|{oren}|> Oh i have it: [ and ] are brackets that only match, but never jump
03:34:26 <oerjan> [ ?
03:34:45 <oerjan> real mathematicians use [0, 4) hth
03:34:56 <madbr> oh
03:34:57 -!- azazel_ has joined.
03:35:05 <zzo38> |{oren}|: Yes, that is the idea like how I have suggestion actually; [ ] can be match and not jump, and then { } can be jump, and ( ) have another meaning (such as a different condition jump), etc, maybe is one way?
03:35:16 <madbr> but then real matematicians use indexes 1..N in indexes etc
03:35:33 <oerjan> madbr: that actually depends on mathematics branch
03:36:09 <azazel_> Hi
03:36:09 <|{oren}|> () are stupid anyway being all round. i will simply ignore them for now
03:36:49 <azazel_> Oh I see it works now I wonder if I switch phones my name will change
03:36:56 <azazel_> Bbl
03:36:56 <|{oren}|> hi azazel
03:37:14 <CrazyM4n> oren, what's up with the symbols
03:37:37 <|{oren}|> in my font | is a heart
03:38:00 <|{oren}|> for hysterical rwasons |\{}[] are allowed in names
03:38:07 -!- kcm1700 has joined.
03:38:41 -!- |{oren}| has changed nick to |oren\.
03:38:52 <|oren\> here now i have a yen sign in my name
03:39:13 -!- kcm1700_ has quit (Remote host closed the connection).
03:39:13 -!- Froox has joined.
03:39:14 <madbr> oerjan : ah
03:39:14 <madbr> tbh I'm not that familiar with academia etc
03:39:14 <madbr> moved on to other things a couple years ago ;)
03:39:42 <zzo38> OK fine
03:39:42 <zzo38> Isn't it like, a range, or it is indexed it is a bit of a different use?
03:40:30 <zzo38> Well, it will be a yen sign in a Japanese encoding anyways
03:41:02 -!- Frooxius has quit (Ping timeout: 244 seconds).
03:41:03 -!- Sgeo has quit (Ping timeout: 244 seconds).
03:41:09 <zzo38> Not in a standard ASCII encoding, but, the keyboard of Famicom is using the yen sign in place of backslash too
03:41:18 -!- Sgeo has joined.
03:41:29 <|oren\> zzo38: even japanese unicode fonts have a yen sign
03:41:44 <zzo38> Do you like stuff I have in my userspace in All The Tropes? If I wrote lies in there then please to fix it
03:42:32 <zzo38> |oren\: Yes, although it won't be the proper Unicode encoding; the proper Unicode number for yen sign is different from the backslash number (so it is in many encodings, but in ISO 646 it is the same encoding as the backslash and yen sign)
03:43:33 <|oren\> i think japanese people got used to separating their file paths with yen signs...
03:44:04 <|oren\> C:\Documents\Untitled.doc
03:44:05 <zzo38> Well, on Windows anyways; on UNIX you don't need to do that.
03:44:27 <|oren\> but on unix you escape your characters with yen signs...
03:44:43 <zzo38> Yes, it has that purpose instead then on UNIX.
03:45:28 -!- Tod-Autojoined has joined.
03:46:38 <|oren\> in the anime serial experiments lain, you see C code on the board in school. it has yensign-n as newline.
03:46:49 -!- Froo has joined.
03:47:44 <zzo38> I didn't see that one.
03:47:48 <zzo38> OK, though
03:48:29 <zzo38> But I just think that it shouldn't lie about the character encoding
03:48:44 -!- lambdabot has quit (Ping timeout: 240 seconds).
03:48:44 -!- olsner has quit (Ping timeout: 240 seconds).
03:48:44 -!- Lymia has quit (Ping timeout: 240 seconds).
03:48:44 -!- TodPunk has quit (Ping timeout: 240 seconds).
03:48:44 -!- aloril_ has quit (Ping timeout: 240 seconds).
03:48:53 -!- oerjan has quit (Quit: leaving).
03:48:55 -!- Froox has quit (Ping timeout: 240 seconds).
03:48:56 -!- yiyus has quit (Ping timeout: 240 seconds).
03:50:12 <|oren\> http://ctrlv.in/473620
03:50:16 -!- KingOfKarlsruhe has quit (Ping timeout: 240 seconds).
03:50:16 -!- Gregor has quit (Ping timeout: 240 seconds).
03:52:26 <|oren\> there, screenshot. so i think japanese programmers aure used to yensign as escape char, as we are used to backslash
03:54:25 -!- lambdabot has joined.
03:54:35 -!- olsner has joined.
03:54:40 <madbr> still better than ebcdic
03:55:17 -!- KingOfKarlsruhe has joined.
03:55:37 -!- Gregor has joined.
04:01:46 -!- Lymia has joined.
04:02:59 -!- aloril_ has joined.
04:04:48 -!- yiyus has joined.
04:25:51 -!- Sgeo has changed nick to wtf8.
04:25:58 * wtf8 best encoding
04:26:26 <wtf8> I.. uh.. wat... https://www.npmjs.com/package/wtf8
04:27:24 <CrazyM4n> Why does that have to exist
04:27:31 <CrazyM4n> Why does node.js have to exist
04:27:44 <madbr> because the real world is complicated
04:28:22 <wtf8> http://simonsapin.github.io/wtf-8/ is the WTF-8 I intended to reference with this nick
04:29:29 <CrazyM4n> Do people actually use node.js in production environments?
04:29:42 <wtf8> TagPro is built on node.js
04:29:50 <wtf8> And I am a tagpro addict, even though I suck at it
04:31:30 <CrazyM4n> really?
04:31:38 <CrazyM4n> But isn't it distributed across a bunch of servers
04:36:27 -!- CrazyM4n has quit (Quit: Leaving).
04:37:12 <|oren\> Node.js exists because some sick personwanted to write MORE Javascript.
04:38:01 -!- nys has quit (Quit: quit).
04:49:19 <wtf8> https://blog.nelhage.com/2012/03/why-node-js-is-cool/
04:54:20 <|oren\> a pity such a nice idea was wasted by using Javascript as its basis, as opposed to something with a good syntax.
04:54:51 <shachaf> http://slbkbs.org/serp.html now supports backspace
04:56:19 <|oren\> still buggy. i deleted the whole searh and it retained the first character
04:56:29 <wtf8> shachaf: what's that?
04:56:31 <shachaf> Yes, there's no way to detect that.
04:56:41 <wtf8> I get a blank screen
04:56:43 <shachaf> But if you start typing something new it'll detect it.
04:56:50 <shachaf> Ctrl-F and search for something.
04:56:55 <|oren\> if you ctrl f it writes whate you search for
04:57:00 <wtf8> Woah
05:01:36 <zzo38> I found that in Haskell it is possible to use unsafeCoerce to interpret the bits making up a Float into Int32 and vice-versa, so this could be used to store floating point numbers into a file, for example.
05:02:37 <wtf8> That conversion doesn't need to be done to do so, unless you only ever print displayed representations to file
05:02:49 <zzo38> |oren\: JavaScript is mostly not bad, really. It does have a few problems; one is implicit semicolons and another is having to write the word "function" rather than be able to use a shortcut such as "@(x)(x)" rather than "function(x)(x)" for example.
05:03:02 <wtf8> But it's fun to add one to the bit representation to get the next float. The float standard was specifically designed to allow for that
05:03:42 <wtf8> shachaf: in-browser SEO!
05:04:24 <zzo38> wtf8: How is that conversion doesn't need to be done?
05:05:00 <wtf8> You could just write the bytes to file. That's allowed
05:05:20 <wtf8> Oh, not really thinking in HAskell terms ltely
05:05:23 <wtf8> lately
05:05:24 <zzo38> Does Haskell have a command to do that?
05:05:35 * wtf8 blames Rust
05:08:13 <zzo38> I also suppose it will not work if the processor doesn't use 32-bit IEEE floating point, or if it doesn't use the same endianness for floating point as integers.
05:12:30 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
05:18:35 <|oren\> so tldr, Haskell allows *(*int)&x ?
05:19:28 <|oren\> that is extremely unusual for such an abstract language
05:24:19 -!- mihow_ has joined.
05:26:36 -!- Patashu has quit (Disconnected by services).
05:26:36 -!- Patashu_ has joined.
05:27:42 <azazel_> Hi
05:28:11 <azazel_> I wish it wasnt this name sigh
05:28:40 <azazel_> You guys talking about haskell?!
05:28:49 <|oren\> yep
05:29:29 <azazel_> Yay im new to haskell so ill just watch.
05:29:52 <shachaf> haskell more like hascow
05:30:23 <|oren\> shachaf: has cow or ha scow
05:31:40 <|oren\> what is a scow anyway? i seem to recall it is a word...
05:32:41 -!- yonkie_ has joined.
05:32:52 -!- diginet_ has joined.
05:33:12 -!- lambdabot has quit (*.net *.split).
05:33:12 -!- wtf8 has quit (*.net *.split).
05:33:12 -!- yonkie has quit (*.net *.split).
05:33:12 -!- mihow has quit (*.net *.split).
05:33:13 -!- diginet has quit (*.net *.split).
05:33:13 -!- paul2520 has quit (*.net *.split).
05:33:13 -!- Jafet has quit (*.net *.split).
05:33:13 -!- mroman has quit (*.net *.split).
05:33:16 -!- FireFly has quit (*.net *.split).
05:33:16 -!- qlkzy has quit (*.net *.split).
05:33:16 -!- digitalcold has quit (*.net *.split).
05:33:16 -!- clog has quit (*.net *.split).
05:33:16 -!- aloril_ has quit (*.net *.split).
05:33:16 -!- drdanmaku has quit (*.net *.split).
05:33:16 -!- zzo38 has quit (*.net *.split).
05:33:16 -!- coppro has quit (*.net *.split).
05:33:16 -!- dts|pokeball has quit (*.net *.split).
05:33:16 -!- J_Arcane_ has quit (*.net *.split).
05:33:16 -!- hjulle has quit (*.net *.split).
05:33:16 -!- trn has quit (*.net *.split).
05:33:16 -!- skarn has quit (*.net *.split).
05:33:16 -!- pikhq has quit (*.net *.split).
05:33:16 -!- incomprehensibly has quit (*.net *.split).
05:33:16 -!- newsham has quit (*.net *.split).
05:33:16 -!- Froo has quit (*.net *.split).
05:33:16 -!- madbr has quit (*.net *.split).
05:33:16 -!- atehwa has quit (*.net *.split).
05:33:17 -!- Vorpal has quit (*.net *.split).
05:33:17 -!- relrod has quit (*.net *.split).
05:33:17 -!- jameseb has quit (*.net *.split).
05:33:17 -!- variable has quit (*.net *.split).
05:33:17 -!- myndzi has quit (*.net *.split).
05:33:18 -!- mtve has quit (*.net *.split).
05:33:18 -!- mihow_ has changed nick to mihow.
05:33:39 -!- diginet_ has quit (Excess Flood).
05:34:02 -!- diginet has joined.
05:34:22 -!- diginet has quit (Remote host closed the connection).
05:34:27 -!- mroman has joined.
05:34:58 -!- diginet has joined.
05:35:53 -!- CrazyM4n has joined.
05:38:43 -!- lambdabot has joined.
05:40:17 -!- digitalc1ld has joined.
05:40:18 -!- Froo has joined.
05:40:18 -!- madbr has joined.
05:40:18 -!- atehwa has joined.
05:40:18 -!- Vorpal has joined.
05:40:18 -!- relrod has joined.
05:40:18 -!- myndzi has joined.
05:40:18 -!- jameseb has joined.
05:40:18 -!- variable has joined.
05:40:18 -!- mtve has joined.
05:41:52 <|oren\> o_O suddenly eight people join in one minute?
05:43:14 -!- FireFly has joined.
05:49:32 -!- aloril_ has joined.
05:49:34 -!- drdanmaku has joined.
05:49:34 -!- zzo38 has joined.
05:49:34 -!- coppro has joined.
05:49:34 -!- dts|pokeball has joined.
05:49:34 -!- J_Arcane_ has joined.
05:49:34 -!- hjulle has joined.
05:49:34 -!- trn has joined.
05:49:34 -!- skarn has joined.
05:49:34 -!- pikhq has joined.
05:49:34 -!- incomprehensibly has joined.
05:49:34 -!- newsham has joined.
05:49:47 -!- glguy has joined.
05:50:14 -!- skarn has quit (Max SendQ exceeded).
05:51:07 -!- skarn has joined.
05:52:04 <|oren\> codu is down
05:53:33 -!- Jafet has joined.
05:53:34 -!- qlkzy has joined.
05:53:58 -!- qlkzy_ has joined.
05:54:23 -!- Sgeo has joined.
05:54:26 -!- Patashu_ has quit (Ping timeout: 272 seconds).
05:56:40 -!- qlkzy has quit (Ping timeout: 244 seconds).
05:58:47 -!- paul2520 has joined.
06:00:27 -!- paul2520 has quit (*.net *.split).
06:00:29 -!- Sgeo has quit (*.net *.split).
06:00:29 -!- skarn has quit (*.net *.split).
06:00:30 -!- aloril_ has quit (*.net *.split).
06:00:30 -!- drdanmaku has quit (*.net *.split).
06:00:30 -!- zzo38 has quit (*.net *.split).
06:00:30 -!- coppro has quit (*.net *.split).
06:00:30 -!- dts|pokeball has quit (*.net *.split).
06:00:30 -!- J_Arcane_ has quit (*.net *.split).
06:00:30 -!- hjulle has quit (*.net *.split).
06:00:30 -!- trn has quit (*.net *.split).
06:00:30 -!- pikhq has quit (*.net *.split).
06:00:30 -!- incomprehensibly has quit (*.net *.split).
06:00:30 -!- newsham has quit (*.net *.split).
06:01:33 -!- |oren\ has quit (Quit: leaving).
06:01:51 -!- paul2520 has joined.
06:01:51 -!- Sgeo has joined.
06:01:51 -!- skarn has joined.
06:01:51 -!- aloril_ has joined.
06:01:51 -!- drdanmaku has joined.
06:01:51 -!- zzo38 has joined.
06:01:51 -!- coppro has joined.
06:01:51 -!- dts|pokeball has joined.
06:01:51 -!- J_Arcane_ has joined.
06:01:51 -!- hjulle has joined.
06:01:51 -!- trn has joined.
06:01:51 -!- pikhq has joined.
06:01:51 -!- incomprehensibly has joined.
06:01:51 -!- newsham has joined.
06:01:59 -!- oren has joined.
06:02:29 -!- skarn has quit (Max SendQ exceeded).
06:02:35 -!- Sgeo has quit (Max SendQ exceeded).
06:02:59 -!- Sgeo has joined.
06:03:08 -!- skarn has joined.
06:03:40 <CrazyM4n> Oh, freenode
06:04:29 <oren> i just quit and reconnected but the problems are still happening...
06:05:49 <CrazyM4n> Problems?
06:06:19 <oren> people quitting and joining en masse
06:07:30 <oren> hm.. i guess it has quieted down
06:09:34 -!- adu has joined.
06:11:15 -!- Tefaj has joined.
06:12:02 <CrazyM4n> Hm
06:12:10 <CrazyM4n> Freenode does this occasionally
06:12:29 <adu> does what?
06:12:37 <oren> meanwhile i'm trying to figure out why gcc doesn't complain about my code
06:12:53 <adu> oren: do you have -Wall ?
06:13:03 <oren> -Wall -Wextra
06:13:13 <adu> what code?
06:13:41 <CrazyM4n> Disconnects and reconnects people en masse
06:13:49 <oren> http://ctrlv.in/473644 this code
06:14:26 <oren> oh crap, look in the lower left for the code
06:14:31 <CrazyM4n> dat font
06:14:53 <adu> oren: can you you use a pastebin that supports text please?
06:15:55 <oren> http://pastebin.com/CnNbnMvv
06:15:57 <CrazyM4n> Try clang?
06:16:34 -!- Jafet has quit (*.net *.split).
06:16:57 <adu> oren: I don't see any issues with that code
06:17:19 <oren> the pointer casting is supposed to be unsafe or something
06:19:28 <oren> its supposed to "break strict-aliasing"
06:19:55 <adu> oren: I think you're confusing 3 things
06:20:30 <oren> ok what are they?
06:20:35 <adu> (1) unsafe (2) undefined behaviour (3) compiler warnings
06:21:27 <oren> ok... so is what i'm doing undefined or not?
06:21:39 <adu> I think your code probably uses UB, but it looks like dt gives a size bound for dp
06:22:58 <adu> lots of casting involves UB, any time you store data with one type and load it as a different type, that's UB
06:23:58 <adu> on the other hand, GCC usually gives lots of warnings if you don't cast, and if you do cast, then it doesn't give warnings
06:25:12 <oren> AHA: http://stackoverflow.com/questions/23848188/strict-aliasing-rule-and-char-pointers
06:25:29 <oren> char pointers are apparently special... that is handy.
06:25:55 <oren> (i guess they have to be, otherwise memcpy could not be defined behaviour)
06:26:13 <adu> void pointers are also special
06:26:27 -!- glguy has quit (Quit: Part).
06:26:41 <oren> but you can't do arithmetic on them...
06:29:05 <madbr> basically people use char * way to often to manipulate other data types
06:29:14 <madbr> that and file loading, memset, memcpy etc
06:29:24 <madbr> so it has to work
06:29:58 <madbr> incidentally I think llvm uses a different memory anti-aliasing scheme so it doesn't really care
06:29:59 -!- Tefaj has left.
06:30:20 <Sgeo> `qntmradate
06:30:20 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: qntmradate: not found
06:30:27 <madbr> note: I might well be wrong on this please do not write nuclear power plant code based on what I just said :o
06:30:28 <Sgeo> Finale!!
06:31:11 <oren> it aint nuclear power code, it's just an interpreter for scrip7, whihc i invented for videogame scripting
06:31:23 <oren> and debugging
06:31:35 <madbr> also I'm not sure how much anti-aliasing gains you on x86 anyways
06:32:29 <madbr> oh wait
06:32:41 <madbr> this is also different in c99 vs c++
06:35:11 -!- SopaXT has joined.
06:35:49 <elliott> llvm does do type-based alias analysis
06:35:54 <elliott> not sure whether gcc or clang are more aggressive
06:36:11 <CrazyM4n> So my random bf generator generated a program that produced this http://i.imgur.com/llJgd4M.png
06:36:16 <CrazyM4n> :?
06:36:57 <oren> every second ascii char?
06:37:10 <CrazyM4n> Yeah, seems like it
06:37:12 <oren> starting at 11
06:37:14 <CrazyM4n> Didn't realize at first
06:37:28 <CrazyM4n> But there's the weird stuff like || and [007f]~[007f]
06:37:51 <adu> "unsafe" generally means different things depending on whether you're talking about C/C++ or something else
06:38:03 <CrazyM4n> (character [007f] is what beef defaults to when you output a negative)
06:38:08 <CrazyM4n> it loops around
06:38:23 <madbr> adu : I thought it meant that the optimizer might do things that break it?
06:38:25 <CrazyM4n> A negative one, that is
06:38:59 <adu> in other languages the word "unsafe" is a synonym for C-pointers, in C the word "unsafe" means something a little more specific
06:39:03 <oren> madbr: yah that is what i am worried about, but apparently char* is special...
06:39:31 <SopaXT> Does something like FunctionFuck or ObjectFuck exist?
06:39:50 <adu> madbr: that's generally only in the context of multi-threaded code
06:39:52 <madbr> there aren't very many object oriented tarpits
06:39:57 <Taneb> SopaXT, have you seen Pure BF?
06:40:04 <madbr> though there are lots of functionnal ones
06:40:13 <SopaXT> yeah lol
06:40:19 <madbr> adu : multithreaded is a different issue
06:40:30 <SopaXT> still attempting to understand it!
06:41:02 <CrazyM4n> It's called brainfuck for a reason :P
06:41:16 <SopaXT> :D
06:41:17 <madbr> once multithreading comes into play a lot of stuff ends up with some crazy catches
06:41:38 <madbr> for instance, writing to a misaligned int is not atomic
06:41:45 <SopaXT> but i've liked to do something like syscalls in bf
06:41:58 <SopaXT> using stdlib-like
06:42:11 <CrazyM4n> Make your own bf interpreter?
06:42:39 <oren> and then just add functionality until you've made your own bf derivative
06:42:40 <SopaXT> alreadly done
06:42:52 <SopaXT> SopasFuck lol
06:42:59 <SopaXT> has functions
06:43:11 <SopaXT> and weird syntax
06:43:50 <CrazyM4n> http://esolangs.org/w/index.php?title=Sopasfuck&action=edit&redlink=1
06:43:54 <CrazyM4n> ?
06:44:15 <SopaXT> I don't want to officially create it
06:44:28 <SopaXT> there are a lot of them
06:44:40 <madbr> kinda wonder, if you made bf multi threaded, how many other things you could take out of it
06:44:44 <madbr> anyhow, sleep
06:44:46 -!- madbr has quit (Quit: Pics or it didn't happen).
06:46:00 <CrazyM4n> Are you making an interpreter alongside writing the specs SopaXT?
06:46:19 <SopaXT> it's alreadly done
06:46:32 <SopaXT> but I didn't publish it
06:46:47 <SopaXT> for example:
06:46:57 <SopaXT> {.,} # define a function
06:47:16 <SopaXT> +? # call it
06:47:27 <adu> isn't there a multithreaded variant of Befunge?
06:47:39 <SopaXT> functions are given numbers 1-.....
06:47:42 <CrazyM4n> brb making simplefunge multithreaded
06:47:46 <CrazyM4n> one thread per instruction ;)
06:48:15 <adu> lol
06:48:21 <SopaXT> lol
06:48:24 <adu> oh no what have I done?
06:48:36 <SopaXT> ?
06:49:00 <adu> I was always a big fan of Funge-98
06:49:04 <zzo38> I have some C program, for some reason if I specify the -d option without -i in a batch file, it crashes, but it works if I include -d and -i or if I run it directly from the command prompt.
06:49:26 <CrazyM4n> I wish I was good enough at befunge to say that I love it
06:49:30 <adu> zzo38: what's a batch file?
06:49:34 <CrazyM4n> It's uh... cool
06:49:35 <CrazyM4n> :P
06:50:01 <HackEgo> [wiki] [[StaPLe]] N http://esolangs.org/w/index.php?oldid=41463 * BCompton * (+5740) Created page with "'''StaPLe''' (''Sta''ck ''P''rocessing ''L''anguag''e'') is a stack-based programming language created by [[User:BCompton]] in 2014 influenced by Lisp and Joy, among others. ..."
06:50:11 <SopaXT> maybe named functions are better?
06:50:21 <zzo38> Well, actually it is a "Windows NT Command Script" and is not really a DOS batch file.
06:50:52 <CrazyM4n> Ooo, StaPLe is pretty cool
06:51:08 <HackEgo> [wiki] [[Language list]] http://esolangs.org/w/index.php?diff=41464&oldid=41426 * BCompton * (+13) /* S */
06:51:31 <zzo38> Trying to execute it in the debugger doesn't reveal the problem.
06:51:46 <zzo38> Also, it does the same regardless what optimization settings I put.
06:51:46 <SopaXT> show us your program?!
06:52:16 <zzo38> This is the program http://sprunge.us/HIaL
06:53:17 <J_Arcane_> wow. http://imgur.com/gallery/hRf2trV
06:53:47 <CrazyM4n> I wish I knew enough to do that
06:54:01 <J_Arcane_> I was actually working on some similar stuff as a kid.
06:54:38 <SopaXT> what is that abbreviature btw, in source code?
06:55:12 -!- Jafet has joined.
06:55:44 <zzo38> Does anyone know why my program is doing what it is doing?
06:56:33 <HackEgo> [wiki] [[Deadfish]] http://esolangs.org/w/index.php?diff=41465&oldid=40751 * BCompton * (+330) StaPLe
06:56:37 <elliott> SopaXT: what is what?
06:56:48 <adu> zzo38: I don't know anything about Windows, I only know UNIX
06:57:34 <CrazyM4n> I only know my own operating system
06:57:37 <adu> zzo38: the last time I used Windows was in 1990
06:57:40 <CrazyM4n> /s
06:57:59 <adu> UNIX is so much better
06:58:07 <zzo38> Yes, UNIX is better
06:58:19 <oren> windows has a better API though
06:58:20 <zzo38> However I intend this program working both Windows and UNIX systems.
06:59:04 <adu> oren: you mean all those undocumented APIs that everybody uses even when they're not supposed to, then stupid users complain about everything not working when they upgrade
06:59:33 -!- SopaXT has quit (Read error: Connection reset by peer).
06:59:51 <oren> no, i mean HWND instead of stupid QT and TK.
07:00:28 <oren> opening a window on windows is as easy as opening a file
07:00:38 -!- SopaXT has joined.
07:00:43 <SopaXT> ARRR
07:01:35 <oren> on linux it is much harder, mostly because there are so many ways to do it and most of them don't work on all distros
07:01:36 <adu> oren: I have no idea what HWND is
07:01:56 <adu> oren: but I think that was one of the reasons why so many people have contributed to Wine
07:02:24 <CrazyM4n> arrr
07:02:37 <adu> Argh
07:02:56 <SopaXT> damn freaking irc client
07:02:59 <adu> oren: http://www.joelonsoftware.com/articles/APIWar.html
07:03:21 <SopaXT> so, what to do with my new functional bf
07:03:42 <SopaXT> and I see some problems in numbered functions
07:04:02 <CrazyM4n> hmm
07:04:15 <CrazyM4n> Write a BF interpreter in it
07:04:19 <adu> oren: I personally think the best API ever designed was the BeOS API
07:04:28 <SopaXT> logic!
07:04:55 <zzo38> I don't make a lot of GUI programs though, because non-GUI programs are generally better
07:05:04 <oren> http://en.wikibooks.org/wiki/Windows_Programming/Window_Creation#Creating_Windows <-- to create a window is one function call on windows. it is so easy!
07:05:47 <oren> most of those params can be nulled as well
07:05:50 <elliott> Tk is about as easy
07:05:57 <elliott> easier really
07:06:22 <oren> but Tk is only one of many windowing libraries
07:06:37 <oren> the Root windowing library is X and X sucks.
07:07:25 <adu> oren: there are plenty of alternatives to X
07:07:36 <elliott> X isn't really a toolkit...
07:08:07 <oren> having a plurality of windowing toolkits hinders development
07:08:24 <oren> thye should have made the X api better
07:08:35 <adu> GGI, DirectFB, SDL, Wayland, Fresco, etc.
07:08:55 <adu> oren: if you hate X so much, just use one of those
07:09:05 <zzo38> Do you like Athena widget kit? It should need more keyboard control probably other than that is good I think
07:09:10 <elliott> you could use Wayland. which leaves even more up to the toolkit.
07:09:38 <oren> i use SDL mostly except for games where i use Allegro 5.
07:10:04 <CrazyM4n> Windows is easy! I made a program to kill csrss.exe in like 15 lines and sent it to my friend
07:10:14 <CrazyM4n> Good times
07:10:14 <oren> although SDL is kind of sparse
07:10:26 <SopaXT> what is csrss.exe? #cantgoogle
07:10:33 <elliott> incidentally doesn't windows just stuff most of the gui crap into kernel-space
07:10:43 <elliott> kind of a design of questionable elegance
07:10:48 <CrazyM4n> I don't know
07:10:52 <zzo38> SDL 1.x isn't too bad
07:10:55 <oren> exactly that is what made it fast in old days
07:10:57 <CrazyM4n> Kinda like init
07:11:35 <elliott> oren: well, I mean, NT used to have it in user-space, I think, but then they moved it back in.
07:11:35 <oren> while X used to be slow as crap (or so says my dad who lived thru that time)
07:11:40 <elliott> I bet dave cutler wasn't happy about that.
07:12:37 <oren> X uses a client-server model which makes gui networking much easier tho.
07:12:56 <oren> ssh -XC and so on
07:13:09 <oren> so that is a plus
07:15:02 <oren> basically the UX of linux has only recently surpassed Windows (and arguably the UX of windows has actively declined recently)
07:16:30 -!- SopaXT has quit (Ping timeout: 258 seconds).
07:27:58 <zzo38> Do you have an idea about what could be causing the problem in my program?
07:30:55 -!- clog has joined.
07:31:10 <oren> does the code do anything clever to the console?
07:31:31 <zzo38> Can't you see the program? The only thing it does is change the file mode.
07:31:42 -!- SopaXT has joined.
07:31:46 <zzo38> That is the only Windows-specific code in the program.
07:31:48 <J_Arcane_> Awesome. Thanks to a clever contributor, Heresy now has an immutable object system.
07:33:19 <zzo38> I don't know if there is some buffer overflow or something like that
07:35:01 <oren> hmmmm
07:35:16 <oren> i don't see anything obviously wrong
07:36:55 <zzo38> Neither do I
07:39:36 <oren> what do the options in question supposed to do?
07:43:10 <oren> 'd' sets the mode of stdout to text, but it doesn't ever put it back to binary. should it?
07:45:01 <zzo38> It shouldn't since it is supposed to use a different output format entirely
07:45:11 -!- adu has left.
07:51:29 <oren> why exit on line 618?
07:52:53 -!- drdanmaku has quit (Quit: Connection closed for inactivity).
07:53:01 <oren> do_lumps is never reached if 'd' is specified
07:53:12 <zzo38> It isn't supposed to be
07:53:30 <zzo38> It is supposed to omit do_lumps if 'd' is specified.
07:53:54 <oren> ok then the only candidate i see for a buffer ovflow is line 612
07:55:41 <zzo38> What could cause it there?
07:55:41 -!- CrazyM4n has quit (Quit: sleep).
07:57:26 <zzo38> Could there be any problems other than buffer overflows elsewhere in the program?
07:57:33 <oren> hmmm in do-lumps the data ppears to start at j=controls[12]
07:58:03 <oren> while in the 'd' code, you started at 0
07:59:00 <oren> what was the nature of the crash? did it segfault or just silently close?
07:59:24 <zzo38> It did segfault.
07:59:55 <zzo38> And only when called from the batch file with -d and not -i (so it can't be in do_lumps, isn't it?); calling the same directly from the command-line doesn't crash.
08:00:03 <oren> then the most likely cause is a buffer overflow or a bad pointer
08:00:28 <oren> huh???
08:01:17 <oren> that is really weird... what else is in the bath file?
08:02:03 <oren> could the input differ?
08:02:12 <zzo38> Deleting the other commands from the batch file doesn't change it; making it to redirect input/output or not doing that also doesn't change it.
08:02:57 <zzo38> Also, it gets stuck (doesn't close or do anything) when the batch file has no options and only the input filename. It doesn't do this on the command-line!
08:06:11 -!- Tod-Autojoined has changed nick to TodPunk.
08:07:21 <oren> hmm try adding test code to analyze the actual input params
08:08:10 <oren> they could be different due to subtle differences in the shell
08:09:36 <oren> e.g. for(i=0;i<argc;i++)fputs(argv[i],stderr);
08:11:11 <zzo38> I just did that, and I can see it didn't change it.
08:12:08 <zzo38> (I actually did it a bit differently; I used fprintf(stderr,"<%s>",argv[i]) instead so that I can see if there are spaces that don't belong.)
08:12:58 <zzo38> But I found out something now. Even from the command-line, if it is the first command entered in a new window it crashes the same as the batch file; trying again it works every time subsequently.
08:16:02 <oren> what output comes before the crash?
08:16:52 <zzo38> Only -d and the filename.
08:19:58 <oren> so it is crashing while executing code, not while outputting results
08:20:41 <zzo38> Yes, it looks like that
08:23:02 <oren> see if you can figure out a small code file that causes it to crash.
08:23:27 <oren> does it crash if the code file is empty for example?
08:24:14 <oren> does your code file have blank lines?
08:29:47 <oren> OH! in your macro code, you put the return of reallocing names[].macro into p, but never assign it to names[].macro. that could cause a segfault from accessing freed memory
08:30:24 <oren> lines 424-428
08:31:06 -!- azazel_ has quit (Quit: Connection closed for inactivity).
08:32:19 <oren> because realloc does not have to resize memory, it can also allocate a new larger buffer, copy data in, and return the new buffer, after freeing the old one
08:37:20 <zzo38> O, you are right
08:37:27 <zzo38> Now I can fix it thank you
08:38:10 <zzo38> I don't know why I put "p" there instead of assigning it to names[].macro
08:40:06 <oren> the problem is code like this can still work perfectly until some random thing causes it to fail... one of the worst things about C
08:40:36 <elliott> that's what happens when you rely on UB ;P
08:41:30 <zzo38> What would help then is to make the C *interpreter* which can check these errors
08:41:56 <oren> tcc has an interpreter mode
08:42:00 <zzo38> And then it can be compiled afterward
08:42:22 <oren> i dunno what it does tho
08:43:18 <elliott> it would be cool to have a C static analyser/interpreter that does lots of pedantic UB analysis yeah
08:43:27 <elliott> clang has UBsan
08:43:33 <elliott> but I think you could do a lot more with a specialised tool
08:43:41 <elliott> basically by trying to make everything as symbolic as possible
08:43:56 <elliott> https://code.google.com/p/c-semantics/ there is this which is really cool
08:45:05 <elliott> sorry, that should be https://github.com/kframework/c-semantics
08:45:13 <elliott> though the google code page explains it better
08:45:37 <elliott> maybe it actually can detect all UB
08:45:38 <oren> ooh that does look cool. especially that i will have yet another *cc command available
08:45:40 <elliott> actually I guess it can't
08:45:45 <elliott> since some of it is impossible to detect I think
08:45:53 <elliott> well I guess you can mayb edetect all UB triggered on a given run of a program
08:46:05 <elliott> "Running SEARCH=1 ./a.out will exhaustively search the state space resulting from considering all possible expression sequencings (as allowed by the standard) and generate a .pdf and .ps of the space (if Graphviz is installed). This is the only way to check all possible evaluation orders of a program to find undefined behavior." this is really cool :)
08:46:17 <elliott> so you can tell when you have a branch that can do UB
08:55:22 -!- Froo has changed nick to Frooxius.
09:04:58 -!- Patashu has joined.
09:07:03 <J_Arcane_> zzo38: There's also CINT: http://root.cern.ch/drupal/content/cint
09:07:36 <oren> come undefined behaviour is less defined than other
09:07:40 <oren> *some
09:08:45 <oren> *(int*)NULL = 2 is pretty much defined as "segfault immediately" for example
09:10:50 <oren> (and sometimes that is what you WANT)
09:10:55 <zzo38> Well, on computers that have segfaults anyways
09:11:08 <zzo38> Some computers don't have segfaults
09:11:21 <oren> right. i guess on NES there is no invalid address
09:11:26 <elliott> that doesn't necessarily segfault in kernel code
09:11:44 <elliott> I'm not sure it even does in userspace (like, did windows 3.11 map the zero page that way?)
09:11:52 <elliott> *"always" does
09:12:37 <oren> hmmm.... i dunno. i've only ever used C on winNT+ and linux.
09:13:09 <Taneb> :) I like ice cream
09:13:22 <shachaf> There have been all sorts of ways to map the bottom few pages on Linux, even with a positive mmap_min_addr.
09:13:29 <zzo38> NES is using 6502, so if NULL is defined as zero then that points to the zero page, which happens to be RAM. Some addresses are meaningless, but that doesn't make them invalid (it just won't do anything if you write to there).
09:13:51 <shachaf> E.g. I've heard of making an ELF file that fills up most of the rest of address space so the VDSO goes in the zero page.
09:14:13 <oren> the zero page contains the stack on 6502 doesn;t it?
09:14:47 <zzo38> No; the stack is at $0100-$01FF
09:14:52 <zzo38> The zero page is at $0000-$00FF
09:15:32 <oren> oh right. i vaguely remeber reading about this
09:15:34 <zzo38> They may be mapped to the same RAM (such as on Atari), but on Nintendo they are separate parts of the RAM.
09:18:01 <oren> shachaf: dang... i have been doing it wrong then. i thought writing to a null pointer would be a reliable way to get a core dump of the current program state.
09:18:21 <shachaf> It's undefined behavior.
09:18:31 <shachaf> So it's not reliable anything.
09:18:34 <oren> but how undefined is it?
09:18:47 <shachaf> Fully.
09:19:07 <shachaf> Why not asm("int3"); or something?
09:19:14 <shachaf> (Does SIGTRAP dump core?)
09:19:29 <shachaf> (Maybe I'm mixing it up with something else.)
09:19:37 <zzo38> shachaf: Well, asm("int3"); is only define for the specific computer too
09:19:47 <shachaf> Yes, but it's reliable.
09:20:11 <shachaf> Writing to NULL is probably also reliable, but who knows. The compiler could optimize it away or what not.
09:20:16 <zzo38> Yes I suppose it is, but then you should use #ifdef
09:20:45 <shachaf> I don't know what you should use.
09:21:34 <shachaf> kill(getpid(), SIGSEGV);
09:21:43 <oren> meh, i guess for debugging a computer-specific thing is ok
09:21:44 <shachaf> obviously
09:22:56 <elliott> does abort() core dump
09:23:35 <shachaf> Oh. Probably.
09:24:09 <oren> oh that would apparently work!
09:25:22 <elliott> kind of the point of the call, I think :p
09:25:45 <oren> i thought the point was that atexit isn't called?
09:26:04 <elliott> DESCRIPTION The abort() function causes abnormal program termination to occur, unless the signal SIGABRT is being caught and the signal handler does not return.
09:26:07 <elliott> Any open streams are flushed and closed.
09:26:16 <shachaf> That's the point of _exit
09:26:24 <elliott> http://pubs.opengroup.org/onlinepubs/9699919799/functions/abort.html
09:29:19 <zzo38> I have did something make a program to segfault in order to break into the debugger, without having to define the breakpoint every time. But, what might help better is to have a #breakpoint command that causes the debugger to predefine a breakpoint on that line; in such a case the breakpoint is ignored if not in a debugger.
09:30:03 <zzo38> (And, it isn't compiled in either, except in the debug info block.)
09:34:37 -!- Frooxius has quit (Quit: *bubbles away*).
10:00:01 <oren> i am making a test script for scrip7 interpreter, in order to start stabilizing the spec
10:01:44 -!- Deewiant has quit (Quit: Viivan loppu.).
10:03:35 -!- Deewiant has joined.
10:04:07 -!- Deewiant has quit (Client Quit).
10:04:14 -!- Deewiant has joined.
11:11:12 <HackEgo> [wiki] [[Scrip7]] http://esolangs.org/w/index.php?diff=41466&oldid=41434 * Orenwatson * (+10) fraction literals
11:25:25 <oren> http://xkcd.com/297/ "these are your father's curly brackets and semicolons. inelegant weapons... for a brutalistic, uncaring universe."
11:27:44 <J_Arcane_> I really need to start nailing down some documentation for Heresy.
11:42:22 <oren> documentation? ha! i'm only just starting to write unit tests!
11:42:47 <oren> it'll be a long way until i have detailed documentation.
12:01:41 -!- Patashu has quit (Ping timeout: 245 seconds).
12:04:10 <HackEgo> [wiki] [[Scrip7]] http://esolangs.org/w/index.php?diff=41467&oldid=41466 * Orenwatson * (+49) brackets and curly brackets.
12:09:41 <J_Arcane_> oren: My previous projects have largely been documentation-driven; ie. writing the spec and even full docs and then implementing, altering where needed. But Heresy didn't really go that way.
12:10:36 <oren> ah i see... i tend to write code first and think later
12:11:08 <oren> i end up with abominations often though
12:11:24 -!- SopaXT has quit (Ping timeout: 250 seconds).
12:12:07 <oren> abominations which work, but i can't tell why the next day
12:15:31 <oren> or sometimes they only work on the day i wrote them
12:21:50 <HackEgo> [wiki] [[Scrip7]] http://esolangs.org/w/index.php?diff=41468&oldid=41467 * Orenwatson * (-369) updated some examples, removed ones i'll update later.
12:24:49 <HackEgo> [wiki] [[Scrip7]] M http://esolangs.org/w/index.php?diff=41469&oldid=41468 * Orenwatson * (-2) e notation for floats is not supported. i will come up with a different notation...
12:38:14 <b_jonas> I'll have to test if this crazy stuff works
12:41:32 <HackEgo> [wiki] [[Scrip7]] M http://esolangs.org/w/index.php?diff=41470&oldid=41469 * Orenwatson * (+0) fixed example
12:47:29 -!- MoALTz has joined.
13:05:00 -!- ZombieAlive has joined.
13:07:36 <oren> the best thing about transparent terminals is watching youtube videos through them
13:20:04 <oren> How does 3.4^7 sound as float exponent notation?
13:22:50 <FireFly> what's wrong with 3.4e7?
13:23:02 <oren> e is a variable name
13:23:18 -!- Frooxius has joined.
13:23:25 <FireFly> I guess 3.4^7 works, then
13:24:04 <int-e> > 3.4^7
13:24:07 <lambdabot> 5252.335014399998
13:24:10 <FireFly> Kind-of funny, J's literals are the other way around: all symbols are reserved for separate tokens so number literals use infix letters for things instead
13:24:13 -!- cluid has joined.
13:24:30 <FireFly> [ 2p3 3j4 1e5 16b100
13:24:41 <FireFly> ] 2p3 3j4 1e5 16b100
13:25:02 <FireFly> I guess the bots are all dead, or I don't remember their prefixes
13:25:37 <oren> there was a big disconnection storm earlier today
13:27:10 <oren> re infix letters, hex notation uses letters, so scrip7 requires a space at the end of all hex literals
13:27:30 <int-e> `echo Hi!
13:27:42 <HackEgo> Hi!
13:27:44 <cluid> hi
13:27:59 <int-e> @metar LOWI
13:27:59 <oren> hi
13:27:59 <lambdabot> LOWI 141320Z 26005KT 230V300 9999 FEW060 BKN170 BKN300 08/01 Q1018 R08/19//95 NOSIG
13:39:46 <Melvar> oren: 3.4⏨7
13:40:59 <oren> blah i'd rather not tie to a particular encoding, aside from insisting ascii-compatibility
13:41:20 <Melvar> Apparently in ALGOL 68 one could also use \ for this purpose.
13:41:33 <Melvar> I.e. 3.4\7
13:42:15 <Jafet> Just allow syntax definitions, so you can defer these exceedingly difficult decisions.
13:42:51 <oren> Jafet: e.g. the lisp solution. nahhhhh
13:45:13 <oren> ok, super unstable release 2014-12-14 9:00 is ready for release!
13:46:43 <Melvar> Apparently in Simula it’s 3.4&7 for single and 3.4&&7 for double.
13:48:24 <oren> done the pastbin now updated to the newest super unstable verion
13:51:41 <oren> maybe i'll switch it to github...
13:52:08 <oren> nahhhh
14:00:38 <HackEgo> [wiki] [[Scrip7]] http://esolangs.org/w/index.php?diff=41471&oldid=41470 * Orenwatson * (+22) float exponents, and forgot the all-important atan2 operator
14:02:17 <J_Arcane_> Hmm. CoCo community is running a compo to write something in 4K Color Basic 1.0.
14:02:53 -!- Frooxius has quit (Quit: *bubbles away*).
14:19:35 -!- nys has joined.
14:24:08 <oren> so i am going to put in the undivide operator but i need a notation for it
14:24:33 <cluid> \
14:24:44 <oren> that is a yen sign
14:25:18 -!- Frooxius has joined.
14:25:55 <oren> anyway the undivide operator takes one real number as input and produces two integers which when one is dived by the other it produces that real.
14:29:13 <oren> hmm maybe y?
14:30:24 <oren> \ is taken by xor, but perhapsi can cange it to x?
14:31:17 <cluid> why not use ^ for xor
14:31:20 <cluid> thhats what C does
14:31:43 <oren> because ^ is exponentiation, and C is kinda stupid
14:32:53 <oren> how about \ for undivide and X for xor?
14:33:14 <myname> undivide?
14:33:19 <myname> what the hell
14:33:35 <oren> scroll up for definition.
14:34:36 <myname> oh
14:34:46 <myname> how is that any useful?
14:35:11 <oren> it could be useful if you want fractions?
14:35:16 <myname> okay
14:35:26 <nyuszika7h> how about ~
14:36:05 <oren> unfortunately ~ is taken by the equality test
14:37:04 <oren> hmmm... i think i'll just use u for undivide
14:37:07 <myname> does it have to be on a normal keyboard layout?
14:38:02 <oren> not technically, but it does have to be one byte which basically means yes
14:38:29 <myname> × for xor? :p
14:38:42 <oren> X for xor?
14:39:08 <myname> no, ×
14:39:12 <myname> as in \times
14:39:28 <oren> tab-imes?
14:41:10 <oren> anyway good idea. move xor to X, put undivide on \.
14:41:45 -!- oerjan has joined.
14:43:25 <oerjan> and codu is down again...
14:43:45 <oren> we were discussing the undivide operator.
14:45:10 <oerjan> i'm just saying, tunes is still working...
14:55:37 -!- copumpkin has joined.
15:01:35 <oerjan> eek clog had a breakdown
15:01:58 <oerjan> I WILL NEVER KNOW WHAT HAPPENED. wait i could check when codu comes back up.
15:02:12 <oerjan> very OCP?D
15:03:50 <oerjan> a bit over 2 hours missing
15:13:02 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
15:25:07 -!- copumpkin has joined.
15:26:14 <oerjan> now xkcd has no pictures loading...
15:27:06 <int-e> no http://imgs.xkcd.com/comics/documents.png ?
15:28:40 <int-e> (works for me™)
15:30:43 <oerjan> nope it doesn't work you're clearly talking crazy hth
15:31:20 <int-e> hmm. imgs.xkcd.com is an alias for cds.d6y9y4w5.hwcdn.net
15:31:35 <oerjan> fancy4w5
15:31:53 <int-e> Highwinds Technologies, never heard of them.
15:32:14 <int-e> Must be a cloud reference.
15:32:46 <oerjan> well the cdn part is pretty obvious
15:33:08 <int-e> `unidecode 📣
15:33:12 <HackEgo> U+1F4E3 CHEERING MEGAPHONE \ UTF-8: f0 9f 93 a3 UTF-16BE: d83ddce3 Decimal: &#128227; \ 📣 \ Category: So (Symbol, Other) \ Bidi: ON (Other Neutrals)
15:33:42 <oerjan> how do they know it's cheering
15:34:07 <oerjan> it could be chastising
15:34:18 <int-e> oerjan: content denial network, in your case?
15:34:27 <oerjan> yep
15:36:04 <int-e> ☎☏✆℡📞📱📱📲📴📵🕻🕽🕾🕿🖁 <-- I don't have a font that can display all those :-(
15:36:40 <int-e> But it seems that phones are still kind of important.
15:36:46 <Melvar> I seem to be missing the last five.
15:37:00 <int-e> I only see hte first four
15:37:39 <Melvar> Only the first four show up in curses-based things, because the libs don’t have width-definitions for the rest yet, looks like.
15:38:13 <int-e> I'm checking in a browser, and in gucharmap (which is where this selection came from in the first place)
15:38:47 <int-e> (The "CHEERING MEGAPHONE" was an accidental finding; I was looking for "phone".)
15:38:59 <oerjan> also missing last five
15:39:33 <b_jonas> hehe, "namespace_protected" is a fun way to say a C library prefixes its functions with a fixed two-letter prefix. there are thousands of libraries doing that.
15:40:02 <int-e> so how many collisions have you encountered?
15:40:10 <b_jonas> not too many
15:40:24 <b_jonas> there's remove and clog of course,
15:40:31 <b_jonas> but those aren't prefixed
15:40:56 <b_jonas> then there was some clash between gmp and libtommath, the latter of which should really know better than to use the same prefxi
15:41:44 <int-e> are they using the "drop in replacement" excuse?
15:41:48 <b_jonas> no
15:41:53 <b_jonas> completely different interface
15:42:02 <int-e> then, ewww.
15:42:37 <int-e> But to clarify my question, I meant collisions of the two-letter prefixes.
15:42:41 <b_jonas> then of course I've hunted down clashes from stupid coders at work, but those too are exactly because they're not namespace-protected
15:42:54 <b_jonas> int-e: between gmp and libtommath I think it's a three-letter prefix that crashes
15:42:57 <b_jonas> let me check exactly
15:43:06 <b_jonas> and some functions using those prefixes are the same
15:43:13 <b_jonas> um
15:43:15 <b_jonas> have the same name
15:43:38 <int-e> ah, the base prefix here is "mp", that *is* kind of generic.
15:43:53 <olsner> I guess they parsed gmp's prefixes as hungarian coding of types/categories, rather than prefixes reserved for gmp
15:46:18 <b_jonas> int-e: the clash is with libtomfloat actually, which uses the "mpf_" prefix, the same as the bigfloat part of gmp
15:46:37 <b_jonas> int-e: so both have an mpf_add function
15:46:44 -!- dts|pokeball has quit (Ping timeout: 258 seconds).
15:47:03 <int-e> nice.
15:47:19 <int-e> b_jonas: any 'xmalloc' clashes?
15:47:58 <int-e> I think I've seen that particular name for error-checking malloc wrappers several times.
15:48:45 <b_jonas> int-e: dunno, I hope that's usually a macro for foo_xmalloc in all library foo
15:49:49 <Melvar> int-e: What *were* the last five chars, btw?
15:50:13 <b_jonas> and the author certainly knew about GMP when he wrote this, he refers to it in the docs multiple timse
15:50:14 <int-e> `unidecode 🕻🕽🕾🕿🖁
15:50:15 <HackEgo> U+1F57B - No such unicode character name in database \ UTF-8: f0 9f 95 bb UTF-16BE: d83ddd7b Decimal: &#128379; \ 🕻 (🕻) \ Uppercase: U+1F57B \ Category: Cn (Other, Not Assigned) \ \ U+1F57D - No such unicode character name in database \ UTF-8: f0 9f 95 bd UTF-16BE: d83ddd7d Decimal: &#128381; \ 🕽 (🕽) \ Uppercase: U+1F57D \ Catego
15:50:33 <int-e> interesting.
15:51:03 <int-e> http://www.fileformat.info/info/unicode/char/1F57B/index.htm is the first one
15:51:20 -!- dts|pokeball has joined.
15:51:55 <Melvar> Ah, they don’t show up in my gucharmap, probably my unicode isn’t updated yet or something.
15:52:03 <b_jonas> and of course I passionately hate libcurses for its stupid choice of global function names
15:52:32 <b_jonas> I know it's all for a historical reasons, but still
15:52:38 <int-e> Melvar: apparently they were added in June
15:52:58 <Melvar> int-e: Yes, Unicode 7.0 .
15:53:03 <b_jonas> the nethack source has some crazy identifier names and macros too
15:53:15 <int-e> (I'm running Debian unstable)
15:53:16 <b_jonas> that at least was never intended as a reusable library, but still
15:54:01 <Melvar> “GNOME Character Map↵3.10.1↵Based on the Unicode Character Database 6.3.0”
15:54:14 <Melvar> Yup.
15:54:39 * Melvar is running Fedora 20 still.
15:55:09 <int-e> GNOME Character Map 3.14.1 Based on the Unicode Character Database 7.0.0
15:55:20 <int-e> 3.14.1 is kind of nice.
16:02:23 <Melvar> In any particular way?
16:02:37 <int-e> just a nice round number
16:03:51 <Melvar> Oh.
16:06:53 -!- dts|pokeball has quit (Ping timeout: 272 seconds).
16:12:12 <int-e> oerjan: Base 37 survived the henkma attack.)
16:14:16 <oerjan> yay
16:14:48 <int-e> My Collatz parity didn't, but thst's not too surprising.
16:14:53 <oerjan> irregular webcomic is finally starting to fit its name
16:15:13 <int-e> the reruns are running late?
16:15:17 <oerjan> (well, the irregular part, it stopped fitting the webcomic part)
16:15:25 <oerjan> no, the sunday annotations
16:16:26 <cluid> whats the point of writing programs short?
16:16:39 <int-e> intellectual challenge
16:17:03 <cluid> I guess its fun if you have a chance of winning
16:19:01 <int-e> wow, 10 spaces... that's a lot of auxilliary functions?
16:19:51 <int-e> err. 8. still a lot, but not frightening.
16:24:10 -!- mihow has quit (Ping timeout: 264 seconds).
16:25:26 <b_jonas> yep, second time the annotation is late
16:25:47 <b_jonas> http://www.irregularwebcomic.net/3360.html was the previous one
16:25:55 <b_jonas> no wait
16:25:58 <b_jonas> I think that one wasn't late
16:26:09 <b_jonas> maybe first time then
16:26:14 <b_jonas> at least we get a filler
16:33:40 <b_jonas> this code can't work…
16:35:55 <b_jonas> it's also stupid
16:36:06 <b_jonas> I'll have to find some otehr code.
16:42:17 -!- GeekDude has joined.
16:56:32 -!- oerjan has quit (Quit: leaving).
16:57:58 -!- MoALTz_ has joined.
17:01:00 -!- MoALTz has quit (Ping timeout: 256 seconds).
17:20:35 -!- drdanmaku has joined.
17:24:08 -!- Phantom_Hoover has joined.
17:38:31 -!- augur has quit (Remote host closed the connection).
18:01:46 -!- glguy_ has joined.
18:01:59 -!- glguy_ has changed nick to glguy.
18:29:53 <HackEgo> [wiki] [[Truth-machine]] http://esolangs.org/w/index.php?diff=41472&oldid=41383 * BCompton * (+84) StaPLe
19:09:10 -!- augur has joined.
19:11:30 <J_Arcane_> NYTimes hides a job ad in a Javascript console message.
19:11:55 <b_jonas> nice
19:14:18 -!- boily has joined.
19:15:00 <J_Arcane_> http://imgur.com/mPmZJ04
19:15:11 <cluid> so does imgur
19:17:40 <b_jonas> is there also a message hidden in the javascript comments saying that their boss made them put that conole message but he would like to warn you against working there?
19:30:25 -!- oren has quit (Quit: Lost terminal).
19:36:48 -!- oren has joined.
19:45:35 -!- atslash has joined.
19:46:05 -!- augur has quit (Remote host closed the connection).
19:49:10 -!- dts|pokeball has joined.
19:56:25 -!- qlkzy_ has changed nick to qlkzy.
20:02:49 -!- Patashu has joined.
20:18:48 -!- dts|pokeball has quit (Read error: Connection reset by peer).
20:19:50 -!- dts|pokeball has joined.
20:25:34 -!- Patashu has quit (Ping timeout: 256 seconds).
21:16:14 -!- dts|pokeball has quit (Ping timeout: 245 seconds).
21:33:23 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
21:43:21 -!- bb010g has joined.
21:49:22 <HackEgo> [wiki] [[Special:Log/newusers]] create * Sergio0694 * New user account
21:49:33 -!- cluid has quit (Quit: Leaving).
21:55:41 -!- augur has joined.
21:56:12 -!- augur has quit (Read error: Connection reset by peer).
21:56:47 -!- augur has joined.
22:01:26 -!- dts|pokeball has joined.
22:02:55 -!- zzo38 has quit (Remote host closed the connection).
22:12:06 -!- dts|pokeball has quit (Ping timeout: 250 seconds).
22:13:51 <HackEgo> [wiki] [[Scrip7]] http://esolangs.org/w/index.php?diff=41473&oldid=41471 * Orenwatson * (+119) upadted: xor is X, undivide is \, special output format is x
22:19:13 -!- dts|pokeball has joined.
22:21:21 -!- MoALTz_ has quit (Quit: Leaving).
22:38:27 -!- Sprocklem has joined.
22:39:25 -!- GeekDude has changed nick to GeekAfk.
22:39:45 -!- oerjan has joined.
22:45:03 -!- glguy has quit (Quit: Part).
22:59:01 -!- boily has quit (Quit: ORTHONORMAL CHICKEN).
23:01:20 <int-e> "Although Diet Coke and Cyanide have similar properties, ..."
23:11:03 <oren> I prefer Real Coke
23:11:16 <oren> with actual sugar
23:11:37 <myname> i prefer cola that's not from coca cola
23:11:59 <oren> well among all soft drinks my favorite is Brio.
23:12:15 <nys> yesss
23:12:15 <myname> never heard of that
23:12:34 <nys> brio's a canadian brand of chinotto
23:12:45 <oren> it is a Chinotto-flavored, caffienated soft drink which is awsome
23:12:52 <myname> well ... okay
23:14:26 <oren> chinotto is like sour, bitter and sweet all in one
23:14:52 <myname> i never seen that at al
23:14:59 <myname> i will have an ooen eye
23:15:16 <myname> open
23:15:31 -!- copumpkin has joined.
23:18:47 -!- oren has changed nick to |oren\.
23:20:11 -!- tromp has quit (Read error: Connection reset by peer).
23:20:45 -!- tromp has joined.
23:25:19 -!- glguy has joined.
23:26:34 -!- vanila has joined.
23:26:38 <vanila> can i run underload ?
23:26:54 -!- dts|pokeball has quit (Quit: Leaving).
23:27:00 <elliott> in the channel?
23:27:01 <elliott> ^ul (sure)S
23:27:07 <elliott> it has some harsh limits though
23:27:11 <elliott> oh, fungot isn't here...
23:27:13 -!- dts|pokeball has joined.
23:27:16 <elliott> `! underload (test)S
23:27:18 <HackEgo> test
23:27:42 <fizzie> Oh, right.
23:27:50 <vanila> thanks
23:27:52 <fizzie> We had that thing where the electricity stops for a while.
23:28:04 <vanila> : dup
23:28:09 <vanila> S pop
23:28:09 <elliott> flatlining?
23:28:21 <elliott> vanila: ! is pop, S is print
23:28:27 <vanila> ^ul :(S:S)
23:28:44 <|oren\> a blackout?
23:28:48 <vanila> `! underload :(S:S)
23:28:49 <HackEgo> Error: Stack underflow in :
23:28:51 <elliott> that crashes because of trying to duplicate the top of the empty stack
23:28:53 <vanila> :(
23:28:56 <vanila> `! underload (S:S):
23:28:57 <HackEgo> No output.
23:28:57 <elliott> if it didn't crash it'd then push S:S
23:29:05 <vanila> i have done it wrong :(
23:29:10 <elliott> that program results in the stack [S:S , S:S]
23:29:16 <vanila> i dont know underload
23:29:20 <elliott> `! underload ((hello)S)^
23:29:20 <HackEgo> hello
23:29:29 <elliott> `! underload (S):^
23:29:30 <HackEgo> S
23:29:34 <elliott> ^ = eval
23:29:37 <vanila> OK!
23:29:53 -!- fungot has joined.
23:30:19 <|oren\> ooh fungot is back, and supreme as ever.
23:30:20 <fungot> |oren\: anton, i'm objecting to being unable to do that, and then
23:31:26 <fizzie> A blackout was what I was looking for, or at least that's the hypothesis.
23:31:57 * elliott pets fungot
23:31:58 <fungot> elliott: 08:32 sjamaan that's very cool. ( definitely a recent release. let me rewrite the last couple of days ago
23:31:58 <elliott> poor thing
23:32:26 <vanila> i dont understand underload
23:33:03 <vanila> I get it
23:33:45 <elliott> it's like forth with eval
23:34:06 <|oren\> and mostly one symbol per action
23:35:35 <elliott> vanila: here's a good underload program to try andu nderstand
23:35:41 <elliott> ^ul (:aSS):aSS
23:35:42 <fungot> (:aSS):aSS
23:36:42 <elliott> you can use http://esoteric.voxelperfect.net/files/underload/underload.html to single-step through it
23:43:51 <vanila> :aSS<>
23:43:53 <vanila> what is <>
23:44:08 <vanila> oh
23:44:12 <vanila> stack is a stack of lists
23:44:17 <vanila> not a stack of things
23:44:44 <elliott> vanila: it's just the separator
23:44:54 <elliott> the stack foo<>bar<>baz<> is ["foo","bar","baz"]
23:44:57 <elliott> where foo is on top
23:45:05 <elliott> so (foo) prepends foo<> basically
23:45:22 <elliott> (foo)(bar): -> foo<> then bar<>foo<> then bar<>bar<>foo<>
23:45:51 <elliott> there's also an elegant way to think of underload in terms of term rewriting that makes the stack implicit
23:46:10 <vanila> :D
23:46:11 <vanila> thanks
23:49:45 <vanila> ^ul (:::aSS):::aSS
23:49:46 <fungot> (:::aSS):::aSS
23:51:28 <vanila> ^ul (:::aS:S):::aS:S
23:51:28 <fungot> (:::aS:S):::aS:S
23:52:47 <oerjan> a new kind of quining
23:55:19 <vanila> hahah how did you know!
23:55:36 <oerjan> know what?
23:55:48 <vanila> that in generating them with a program
23:56:28 * oerjan is confused
23:57:43 <int-e> > let x x=x++show x in x"let x x=x++show x in x"
23:57:44 <lambdabot> "let x x=x++show x in x\"let x x=x++show x in x\""
23:58:10 <int-e> > let x x=text$x++show x in x"let x x=text$x++show x in x"
23:58:11 <lambdabot> let x x=text$x++show x in x"let x x=text$x++show x in x"
23:58:25 <int-e> > let x x=text$x++show x in x"> let x x=text$x++show x in x"
23:58:26 <lambdabot> > let x x=text$x++show x in x"> let x x=text$x++show x in x"
23:59:58 <oerjan> :t (?)
23:59:59 <lambdabot> Not in scope: ‘?’
←2014-12-13 2014-12-14 2014-12-15→ ↑2014 ↑all