←2008-03-18 2008-03-19 2008-03-20→ ↑2008 ↑all
00:00:01 <SimonRC> how closely is the Halting problem related to Incompleteness?
00:00:14 <lament> olsner: actually yeah
00:00:31 <ehird> SimonRC: not
00:00:31 <oerjan> well there is an implication at least one way i think
00:00:46 <SimonRC> I mean, it is possible to create a program that enumerates all possible proofs until it finds one that proves that its input program halts...
00:00:53 <oerjan> halting problem implies incompleteness
00:01:16 <SimonRC> that would proove that a program halts IFF it is possible with the given proof system
00:01:19 <oerjan> because a complete system could ask the question of whether a program halts
00:01:24 <oerjan> or wait
00:01:30 <oerjan> actually no
00:01:42 <oerjan> it could lie and say it halts even if it doesn't
00:02:01 <SimonRC> huh?
00:02:10 <oerjan> because the halting time could be a non-standard integer, which doesn't actually exist
00:02:25 * SimonRC hasn't hears of NISs
00:02:28 <SimonRC> *NSIs
00:04:24 <oerjan> every logical system with infinite models has even larger ones, and an element of an extension is called non-standard
00:04:59 <oerjan> there is non-standard analysis which uses this to add infinitesimal reals
00:06:09 <oerjan> but that may be overkill here. rather, if the halting problem for an algorithm is undecidable, then it is consistent to add the axiom that it _does_ halt, although it "really" cannot
00:06:54 <oerjan> and any model with that axiom must contain an element that is claimed to be the stopping time...
00:10:12 -!- timotiis has quit ("leaving").
00:10:57 <SimonRC> kewl: http://www.crabfu.com/steamtoys/r2s2/
00:14:23 -!- BMeph has joined.
00:14:27 <SimonRC> hi
00:14:29 <SimonRC> WRU?
00:14:47 <oerjan> GNPE
00:14:52 <SimonRC> oerjan: ??
00:15:35 <oerjan> i just like to say things i don't know what mean :D
00:28:07 <ehird> oerjan: me tooo
00:28:43 <SimonRC> WRU = "Who Are You?", from the teleprinter code
00:29:08 <SimonRC> some day someone who knows about teleprinters is just going to understand that one straight away
00:33:57 <oerjan> ic. now i just have to understand _why_ you would say "Who Are You?"
00:34:45 <oerjan> since i didn't see anyone unknown entering...
00:39:29 <olsner> SimonRC: the probability of that happening is probably getting lower by the minute :P
00:45:48 -!- olsner has quit ("Leaving").
00:48:30 -!- Corun has joined.
00:49:03 <SimonRC> 23:14:23 -!- BMeph [n=chatzill@adsl-76-212-192-106.dsl.sndg02.sbcglobal.net] has joined #esoteric
00:49:06 <SimonRC> 23:14:26 < SimonRC> hi
00:49:09 <SimonRC> 23:14:29 < SimonRC> WRU?
00:49:41 <oerjan> oh maybe BMeph hasn't been here before?
00:49:49 <oerjan> welcome to #esoteric :)
00:50:31 <BMeph> Hello - I channel hop a lot, so don''t mind me. :)
00:50:53 <oerjan> seen you in #haskell before
00:51:13 <oerjan> i don't - those are the only channels i'm in
00:51:37 <oerjan> and i can barely keep up with that sometimes :D
00:51:43 <ehird> BMeph has been here for yonks..
00:52:11 <ehird> i am generally in #esoteric, #ESO, and various channels for my lingua franca of the month
00:52:22 <BMeph> Yeah - as soon as I started fiddling w/ FALSE, I started popping up in #eso more. :)
00:52:24 <oerjan> of the month?
00:52:46 <oerjan> whence Volapk?
00:53:34 <ehird> oerjan: haha
00:53:46 <ehird> right now, it's Perl
00:58:18 <ehird> ais523: hi
00:59:02 -!- ais523 has quit ("Konversation terminated!").
01:01:00 <ehird> hah
01:23:37 -!- pikhq has joined.
01:54:44 -!- ehird has quit ("Konversation terminated!").
02:18:14 -!- dbc has quit (Client Quit).
02:39:09 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)).
02:42:27 -!- slereah_ has joined.
02:48:02 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
03:00:18 -!- Corun has quit ("This computer has gone to sleep").
03:17:29 <lament> we need a language with a good type system
03:17:36 <lament> do any esolangs have good type systems?
03:23:23 <Deformative> Explain good.
03:23:27 * oerjan considered something wicked with monads once. hardly got anywhere.
03:24:03 <oerjan> liMonadE = unlambda with monads
03:24:27 <Deformative> I think static typing is superior, so "good typing system" likely has a different meaning to me.
03:24:58 <lament> oerjan: monads are not good to have as a built-in feature of the type system
03:25:14 <lament> at least that part haskell got right :)
03:25:35 <lament> Deformative: turing-complete
03:25:51 <oerjan> ah but this was not a _sane_ monad system
03:26:39 <lament> is a type a boolean function on all possible values, or is it a way to generate new values?
03:27:30 <lament> i guess in haskell it's clearly the latter
03:28:57 <lament> to the programmer, it's the latter, but to the typechecker, it's more like the former...
03:32:24 <lament> we could have a value be represented by any sexpr, and have types be boolean functions on sexprs... sounds like XML validation
03:44:18 -!- shinku has joined.
03:52:54 <pikhq> lament: Define all types in terms of Lisp code. :p
04:13:54 -!- adu has joined.
04:36:29 <lament> pikhq: that's what i'm saying!
04:40:16 <pikhq> :)
04:40:22 <adu> :)
04:41:03 <oerjan> :[]
04:42:25 -!- adu has quit ("Computer went to sleep").
05:08:09 -!- adu has joined.
05:13:03 <lament> :heh
05:26:07 -!- shinku has quit.
05:45:51 <RodgerTheGreat> new panels: http://www.nonlogic.org/dump/images/1205901932-preview3.png
05:48:18 <RodgerTheGreat> pikhq: attention
05:49:02 <RodgerTheGreat> rather simple stuff today because I'm feeling really tired
05:54:10 -!- Sgeo has quit (Remote closed the connection).
05:56:41 <oerjan> heh, "All the prototypes had exploded at this point" :D
05:57:29 <RodgerTheGreat> :D
06:03:21 <RodgerTheGreat> incidentally, I think that last panel could make a nifty desktop: http://www.nonlogic.org/dump/images/1205902974-desk9.png
06:05:21 <oerjan> which reminds me, new xkcd and girl genius
06:05:41 <RodgerTheGreat> I, too, am a reader of GG.
06:05:47 <RodgerTheGreat> do you read Buck Godot?
06:06:00 <oerjan> no
06:06:18 <RodgerTheGreat> you really should- it's every bit as good as Phil's other work.
06:07:52 <pikhq> Brilliant.
06:07:57 <RodgerTheGreat> :)
06:15:15 <RodgerTheGreat> well, another day, another three panels. I'm out, folks
06:15:49 -!- RodgerTheGreat has quit.
06:24:30 -!- adu has quit (Remote closed the connection).
06:33:01 -!- BMeph has quit ("calls it a night").
07:49:26 -!- adu has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:08:04 -!- adu has quit (Read error: 104 (Connection reset by peer)).
09:10:31 -!- oerjan has quit ("leaving").
11:19:57 -!- oklofok has joined.
11:52:00 -!- Tritonio_ has joined.
12:48:53 -!- oklofok has quit (Read error: 113 (No route to host)).
13:13:33 -!- oklofok has joined.
13:24:33 -!- RodgerTheGreat has joined.
13:24:45 <RodgerTheGreat> howdy
13:34:40 <SimonRC> hi
13:36:35 <SimonRC> RodgerTheGreat: moar
13:37:06 <RodgerTheGreat> moar wut?
13:37:11 <SimonRC> comic
13:37:22 <RodgerTheGreat> moar dis? http://www.nonlogic.org/dump/images/1205901932-preview3.png
13:37:27 <SimonRC> and the hair colour in the second panel is still non-matching
13:39:30 <RodgerTheGreat> I suppose I could do a little moar this morning
13:39:45 <RodgerTheGreat> there will be at least 3 new panels by tonight, though
13:40:16 <AnMaster> has anyone written a brainfuck interpreter in befunge?
13:40:24 <AnMaster> assuming befunge98 of course
13:43:25 <Deewiant> http://www.geocities.com/nthern/esolangs/brainfuck.bf.txt, but befunge-93, and requires bignum-sized cells
13:45:19 <AnMaster> right, I guess BIGNUM would make befunge93 turing complete?
13:46:00 <RodgerTheGreat> unbounded storage in a sense... I'd presume so
13:46:15 <AnMaster> Deewiant, also wtf is "Befunge97"?
13:46:25 <Deewiant> it's befunge-97, what about it
13:46:34 <AnMaster> Deewiant, where is it's specs?
13:46:42 <Deewiant> nowhere
13:46:50 <AnMaster> oh?
13:46:58 <Deewiant> not sure if it ever had any
13:47:14 <AnMaster> so how did it differ from befunge98?
13:47:21 <Deewiant> the few references to it I can find are from the esolang mailing list
13:47:39 -!- oklofok has changed nick to oklopol.
13:48:02 <AnMaster> http://catseye.tc/projects/befunge93/eg/pi2.bf
13:48:12 <AnMaster> says it is written in befunge97 in the file
13:48:18 <Deewiant> it had some kind of header block
13:48:21 <AnMaster> it runs under cfunge though
13:48:39 <Deewiant> yeah, in terms of instructions it seems to be pretty similar to -98
13:49:06 <Deewiant> ah, here we go, "befunge-97 directives" - lines starting with =
13:49:16 <AnMaster> Deewiant, link?
13:49:22 <Deewiant> http://www.nntp.perl.org/group/perl.perl6.internals/2004/10/msg26541.html
13:49:44 <Deewiant> like said there's no spec, the best I can do is random googling
13:49:58 <Deewiant> there was also a befunge-96 by the way
13:50:08 <Deewiant> I know practically nothing about that
13:50:14 <AnMaster> ah
13:50:47 <AnMaster> Deewiant, why on a perl6 list of some kind I wonder...
13:51:01 <Deewiant> The original Befunge-93 language implementation was developed by a small but dedicated user base; the result was Befunge-96 (with concurrency), and then Befunge-97, which added a batch of new features. By 1998, a new language was born: Funge-98, which took Befunge out of two dimensions and into Hilbert space. Development of Befunge-100 (presumably the victim of an un-patched Y2K bug) allegedly continues.
13:51:18 <Deewiant> AnMaster: looks like interpreter development, beats me
13:51:45 <AnMaster> anyway I'm soon ready for a new release I think
13:52:00 <AnMaster> just trying to make make install work correctly, and maybe add a man page
13:52:08 <Deewiant> It could be worse; proposals for basing a Funge derivative on the surface of a Klein bottle or hex net have been mooted, but never implemented.
13:52:13 <Deewiant> AnMaster: how about that? ;-)
13:52:13 <AnMaster> oh and update README and such
13:52:35 <AnMaster> Deewiant, I know about those, mentioned in befunge98 specs, one of the latter apendixes
13:52:59 <AnMaster> later*
13:53:02 <AnMaster> "Other Topologies"
13:53:04 <Deewiant> yeah
13:53:04 <Deewiant> Other Funges, such as Honefunges (hex-net topology) and Kleinefunges (Klein-bottles) are certainly possible.
13:53:18 <Deewiant> so how about implementing one or both? ;-)
13:53:41 <AnMaster> Deewiant, nah, that's for CCBI ;P
13:54:12 <Deewiant> it'd probably run too slow, I think you should do it ;-)
13:54:51 <AnMaster> Deewiant, ever tried http://catseye.tc/projects/befunge93/eg/life.bf
13:54:56 <AnMaster> quite amazing
13:54:59 <AnMaster> in befunge93 even
13:55:01 <Deewiant> yeah, it's nice
13:55:16 <AnMaster> Deewiant, just with ccbi it is rather slow :P
13:55:20 * AnMaster runs
13:55:41 <Deewiant> I can't be bothered to go scouting around for hash table libraries and garbage collectors
13:55:51 <AnMaster> Deewiant, so that show IO isn't everything ;P
13:55:55 <AnMaster> shows*
13:56:05 <Deewiant> well, in a way it still is
13:56:08 <Deewiant> because it's memory-IO
13:56:21 <AnMaster> but indeed, I could probably speed mine up with a better hash library
13:56:59 <Deewiant> most of the time is probably spent in page faults and the like
13:57:34 <AnMaster> hm for ccbi or cfunge?
13:57:39 <Deewiant> both
13:58:11 <AnMaster> anyway I don't think it is, I mean cfunge + mycology fits into 12 MB RAM here when optimized, tested with ulimit -v
13:58:23 <Deewiant> that doesn't matter
13:58:26 <AnMaster> and since I got 1.5 GB I can't see why it would page fault a lot
13:58:31 <Deewiant> the fact is that the program doesn't fit in your L2 cache :-P
13:58:37 <AnMaster> it wouldn't be swapped out on disk
13:58:49 <AnMaster> Deewiant, but that isn't same as page fault still, right?
14:00:26 <Deewiant> it seems that CCBI generates 3854 page faults here
14:00:30 <AnMaster> Deewiant, does mycology wrap a lot? except when testing wrapping I mean
14:00:33 <Deewiant> or rather, generated as I just ran it.
14:00:44 <AnMaster> oh? how do you check how many page faults are generated?
14:00:47 <Deewiant> but of course that doesn't mean that it's swapped out to disk.
14:00:52 <Deewiant> process explorer, on windows.
14:00:55 <Deewiant> don't know about *nix.
14:01:09 <AnMaster> hah
14:01:53 <Deewiant> it looks like ps shows them
14:02:10 <AnMaster> yes but the program quits so fast when mycology ends.
14:02:23 <Deewiant> so pipe it into a file or something.
14:02:37 <AnMaster> hm, ps? or cfunge?
14:02:53 <Deewiant> what would you want with the cfunge output? :-P
14:03:21 <AnMaster> nothing, but point is, how do you check number of page faults at the point just before cfunge exits?
14:03:42 <Deewiant> ps's update frequency is too slow?
14:03:53 <AnMaster> ps is a one time command, and cfunge is too fast
14:04:03 <Deewiant> oh yeah, getting confused with 'top'.
14:04:17 <AnMaster> and even top updates once / second or so iirc
14:04:31 <AnMaster> cfunge finishes mycology in 0.078 seconds here
14:04:38 <Deewiant> one simple option: add getchar() just before your return from main.
14:05:05 <AnMaster> Deewiant, actually I don't return from main, I use exit() but I see what you mean
14:06:57 <Deewiant> or compile with profiling. :-P
14:07:45 <AnMaster> open("/home/arvid/local/emacs-cvs/lib/libcord.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
14:07:45 <AnMaster> open("/usr/lib64/libcord.so.1", O_RDONLY) = 3
14:07:47 <AnMaster> interesting
14:07:49 <AnMaster> from strace
14:09:31 <Deewiant> it goes through your LD_LIBRARY_PATH or whatever the envvar is
14:09:37 <AnMaster> not that I would gain a lot from unsetting LD_LIBRARY_PATH indeed
14:09:59 <AnMaster> Deewiant, I know that but I wonder, how much could one save in 0.0000000whatever seconds on unsetting it ;D
14:10:33 <Deewiant> you worry too much :-P
14:12:29 <AnMaster> you know, it was a joke
14:14:35 <Deewiant> yep, but even so, you do ;-)
14:20:58 <AnMaster> weird, weird, under valgrind I enter an infinite loop after DIRF test, but under gdb or "freestanding" it works
14:23:30 <AnMaster> ok... if I change a calloc to a malloc it works. weird
14:35:47 -!- Corun has joined.
15:05:54 -!- CakeProphet has joined.
15:11:55 <AnMaster> Deewiant, a question: is memory mapped IO faster than stream IO?
15:12:37 <Deewiant> I believe it depends, but I'm not sure on what.
15:13:19 -!- Corun has quit ("This computer has gone to sleep").
15:13:23 <AnMaster> hm
15:13:31 <CakeProphet> ....I wrong a poem in Python.
15:13:37 <CakeProphet> http://pastebin.org/24426
15:13:59 <CakeProphet> when you execute it... it outputs '("Love", "is", False)'
15:14:16 <AnMaster> CakeProphet, rewrite it in befunge?
15:14:52 <CakeProphet> ....you couldn't do that. Not with English... words.
15:15:03 <CakeProphet> unless you just use comments for everything... but that's gay.
15:16:04 -!- oklopol has quit (Connection timed out).
15:17:45 <Deewiant> CakeProphet: how about writing it in Shakespeare
15:18:11 <AnMaster> Deewiant, ever tried running the mycology readme in ccbi?
15:18:16 <AnMaster> quite interesting
15:18:19 <Deewiant> no? :-P
15:18:37 <AnMaster> Deewiant, at least in cfunge it prints a lot of "10"
15:18:44 <Deewiant> in general, running on plaintext isn't necessarily a smart idea :-P
15:18:52 <AnMaster> Deewiant, sand box mode of course
15:18:59 <AnMaster> so wouldn't do any harm
15:19:23 <Deewiant> if you still haven't implemented o I guess it's fine
15:19:43 <AnMaster> Deewiant, indeed I haven't yet
15:19:56 <AnMaster> Deewiant, and in sandbox mode it wouldn't be allowed
15:20:29 <Deewiant> unless you're very unlucky with something like "FRID" 4 (0'/R) but... how likely is that
15:20:36 <AnMaster> http://rafb.net/p/yZ3yEP70.html
15:20:40 <AnMaster> Deewiant, see?
15:20:42 <AnMaster> :P
15:20:56 <Deewiant> I meant, without sandbox mode and o
15:20:57 <AnMaster> Deewiant, well Frid is Swedish for peace so :D
15:21:13 <Deewiant> yeah, but...
15:21:15 <Deewiant> all caps
15:21:16 <Deewiant> in quotes
15:21:19 <Deewiant> followed immediately by a 4
15:21:21 <AnMaster> not likely
15:21:23 <Deewiant> followed immediately by a (
15:21:28 <Deewiant> exactly :-P
15:21:29 <AnMaster> indeed not likely
15:22:16 <AnMaster> Deewiant, by the way what should ( and ) do when the count parameter is invalid/silly, ie, say, -23 for fingerprint length
15:22:19 <AnMaster> or 184753
15:22:47 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
15:23:00 <AnMaster> currently mine checks it is reasonable range for what the interpreter support (1-8 items from the stack), otherwise reflects
15:23:06 <Deewiant> uh, that's crap
15:23:14 <Deewiant> maybe I should test that in Mycology :-P
15:23:22 <AnMaster> Deewiant, so what should it do?
15:23:29 <AnMaster> and what does CCBI do
15:23:30 <Deewiant> it should pop the requested number
15:23:40 <AnMaster> Deewiant, well you can't pop -2 items
15:23:47 <Deewiant> no, negative is messed up of course
15:23:55 <Deewiant> but anything > 0 is fine
15:24:03 <AnMaster> Deewiant, and above 8 wouldn't work considering how fingerprints are done
15:24:05 <AnMaster> afaik
15:24:07 <Deewiant> yes, it would.
15:24:18 <Deewiant> it's just a matter of wrapping the ints around correctly.
15:24:39 <AnMaster> Deewiant, yes right you mean when the cell overflows?
15:24:44 <Deewiant> yes.
15:24:45 <AnMaster> that would break for bignum
15:24:52 <AnMaster> which is valid
15:24:57 <AnMaster> so you can't test it
15:25:04 <Deewiant> sure, but what if it first checks with y that the cell size is exactly 4
15:25:07 <Deewiant> then, it is valid
15:25:17 <AnMaster> Deewiant, and if it isn't it can't test it ;P
15:25:26 <AnMaster> + such a check would take a lot of time
15:25:32 <Deewiant> I suppose it's possible to generate such strings
15:25:44 <Deewiant> no it wouldn't, just find a 16-character string and use that
15:26:10 <Deewiant> and if done correctly it could be easy to add more strings depending on y's value
15:26:21 <Deewiant> for 4, 8, 2, 1, etc.
15:26:28 <AnMaster> I added the range check because of a issue with unloading fingerprint, when I had not popped enough items from stack to get back to the original stuff ( pushed
15:26:31 <AnMaster> took some time to debug
15:28:46 -!- oklofok has joined.
15:29:21 <Deewiant> an easy way to test would be just something like 8aaa**k1aaa**;v(;# <;8wna"DOOG">:#,_
15:30:04 <AnMaster> Deewiant, what would that do?
15:30:16 <AnMaster> also, it could reflect
15:30:18 <Deewiant> just check if it popped 10000 values or not
15:30:28 <AnMaster> if it lacks the fingerprint
15:30:33 <AnMaster> Deewiant, ugh
15:31:28 <Deewiant> that was the point - make sure it doesn't converge to a valid fingerprint
15:31:42 <Deewiant> and then just check for the pops
15:31:47 <Deewiant> hence, "easy way".
15:32:16 <AnMaster> Deewiant, it could be a valid fingerprint
15:32:33 <AnMaster> someone could make one
15:32:37 <AnMaster> it all depends on cell size
15:32:47 <Deewiant> yes, it could
15:33:02 <AnMaster> so if you got bignums all fingerprint names are valid in length
15:33:08 <Deewiant> in which case, replace one of the constants in the value tried
15:33:17 <Deewiant> i.e. instead of aaa** use baa**
15:33:28 <AnMaster> Deewiant, so you could implement that one too ;P
15:33:31 <Deewiant> and say, "hmm, looks like you loaded this fingerprint, that wasn't supposed to happen"
15:33:55 <Deewiant> AnMaster: yes, but fortunately we have loops, so we can loop through 222->fff
15:34:26 <AnMaster> and theoretically an interpreter could implement them all
15:34:40 <AnMaster> btw now I made mine just warn about it (assuming warnings are turned on)
15:34:56 <Deewiant> in that case, na"UOY WERCS">:#,_ and move on
15:35:34 <AnMaster> hahah
15:36:07 <AnMaster> Deewiant, but what should happen at negative count I wonder
15:36:16 <Deewiant> reflect.
15:36:18 <Deewiant> undefined.
15:36:22 <Deewiant> tested in mycology.
15:36:30 <AnMaster> ah right yep
15:36:41 <AnMaster> Deewiant, however mycology fails to test the case of length == 0
15:36:50 <AnMaster> IMO that should reflect too
15:36:54 <AnMaster> mine didn't before it does now
15:37:12 <AnMaster> instead it entered a infinite loop due to while (i--) thing
15:37:19 <AnMaster> or not infinite
15:37:22 <AnMaster> just very very large
15:37:37 <AnMaster> as i was int64_t or something like that
15:37:43 <Deewiant> and testing for negatives didn't catch that?
15:38:09 <AnMaster> Deewiant, there is a subtle difference between: 1) i < 0 and 2) i<=0
15:38:10 <AnMaster> :P
15:38:24 <Deewiant> it's called your brain - learn it, use it, it's your friend :-P
15:38:28 <AnMaster> yep indeed
15:38:36 <AnMaster> but IMO mycology should test it
15:39:02 <Deewiant> seriously, if you have if (i < 0) followed immediately by while (--i) then I blame you :-P
15:39:20 <AnMaster> indeed it is what I'd call a bug
15:39:44 <AnMaster> anyway it was i-- not --i
15:39:48 <AnMaster> but that hardly matters
15:40:05 <Deewiant> and besides, ( with 0 /is/ tested.
15:40:14 <AnMaster> sure it is?
15:40:16 <Deewiant> i-- does matter.
15:40:22 <AnMaster> Deewiant, ah hm
15:40:27 <Deewiant> because while (i--) does nothing if i is zero.
15:40:49 <Deewiant> the original tests for ( and ) popping correctly are both done with a zero count.
15:43:45 <AnMaster> hm true
15:44:12 <AnMaster> but why did checking for 0 fix the bug in that other program then...
15:44:22 <Deewiant> I don't know...
15:46:52 -!- CakeProphet has quit ("haaaaaaaaaa").
15:53:03 <AnMaster> anyway while threading in mycology worked perfectly, my program managed to segfault on a simple threaded hello world before
15:53:19 <AnMaster> #vt"drwolH">:#,_ @
15:53:19 <AnMaster> >"lo le">:#,_a,@
15:53:59 <AnMaster> when the IP that eneded first ended, cfunge ended up accessing the IP array out of bounds, (now fixed)
15:58:44 -!- timotiis has joined.
16:11:58 -!- vixey has joined.
16:12:00 <vixey> Hi
16:12:12 <vixey> Are there any esolangs based on π-calculus?
16:12:34 <oklofok> not that i know of :\
16:12:56 <oklofok> there are real languages based on it, though
16:13:02 <Deewiant> http://www.esolangs.org/wiki/Pict
16:13:02 <oklofok> Joy, iirc
16:13:19 <oklofok> oh
16:13:28 <Deewiant> it says it's not 'intentionally esoteric', though :-P
16:14:48 <oklofok> hmm, it seems joy is functional, i must be confusing names again
16:15:29 <Deewiant> joy is a functional forth
16:25:14 <oklofok> yarrrr
16:44:24 -!- Tritonio_ has joined.
17:11:39 -!- jix has joined.
17:36:26 -!- Sgeo has joined.
18:07:20 <lament> factor is a functional forth
18:07:56 <lament> joy is "concatenative"
18:08:13 <Deewiant> forth is concatenative.
18:08:27 <Deewiant> as are factor and joy.
18:09:10 <lament> oh right, good point
18:09:19 <lament> i thought concatenative had something to do with lists
18:26:53 <AnMaster> Deewiant, there?
18:26:55 <AnMaster> size-of-stack-stack cells containing size of each stack, listed from TOSS to BOSS (ip)
18:27:06 <AnMaster> that one, should TOSS be at top or should BOSS?
18:27:20 <Deewiant> the way I read "from a to b" is that a is at the top
18:27:48 <AnMaster> hrrm
18:27:55 <Deewiant> but I don't know. :-P
18:29:45 <AnMaster> GOOD: y acts as pick instruction if given large enough argument
18:29:45 <AnMaster> GOOD: ] turns flying IP right
18:29:50 <AnMaster> wtf, I don't do flying ips?!
18:29:55 <AnMaster> I don't implement MODE
18:30:18 <Deewiant> uh?
18:30:25 <AnMaster> oh wait, flying isn't one from MODE
18:30:29 <AnMaster> hover is?
18:30:31 <Deewiant> an IP is flying if its delta isn't (1,0) (0,1) (-1,0) (0,-1)
18:30:48 <AnMaster> Deewiant, right, hard to keep flying and hovering and what not apart :P
18:31:33 <Deewiant> no it's not ;-P
18:52:05 <AnMaster> Deewiant, anyway I need some test case for y returing multiple stack sizes correctly :/ guess I code to code that myself
18:53:41 <Deewiant> n{aa y9k$2w00p01pn00g01g2w0w
18:53:57 <AnMaster> mhm
18:53:57 <Deewiant> replace 9 with the correct index of the stack sizes in y
18:54:01 <Deewiant> something like that
18:54:09 <Deewiant> that probably doesn't work but it's a start :-P
18:55:52 * AnMaster tries
19:05:50 <AnMaster> Deewiant, in any case, ccbi and cfunge give different results
19:06:17 <Deewiant> you have working test code?
19:06:19 <AnMaster> Deewiant, at the second w
19:06:22 <AnMaster> Deewiant, not sure
19:06:27 <AnMaster> probably not
19:06:29 <Deewiant> :-P
19:06:37 <AnMaster> as one goes up the other one down at the second w
19:06:50 <Deewiant> that shouldn't matter
19:06:54 <Deewiant> it should either be equal or not
19:06:57 <AnMaster> indeed
19:07:07 <AnMaster> as far as I can find out, we want cell 23, right?
19:07:08 <Deewiant> the point being, test whether the stack size is equal to the expected.
19:07:44 <AnMaster> Deewiant, yes and that is painful, and so is understanding your code, ie, what is all the p and g stuff in it for
19:08:05 <Deewiant> just write your own code if that was so hard :-P
19:08:11 <Deewiant> that was meant to help you, not confuse you >_<
19:08:14 <AnMaster> true
19:08:27 <Deewiant> AnMaster: the point was, get all the correct values with only one call to y.
19:08:34 <Deewiant> so, call y.
19:08:40 <Deewiant> pop the required number of cells to get to what we want.
19:08:46 <AnMaster> yep
19:08:53 <Deewiant> check that the stack stack size is correct, since it's first.
19:08:58 <Deewiant> (it /is/ first isn't it?)
19:09:07 <Deewiant> store the two stack sizes somewhere.
19:09:12 <Deewiant> clear the rest of the stack.
19:09:19 <Deewiant> make sure they're correct.
19:09:25 <Deewiant> that's probably not necessary now that I think about it >_<
19:09:35 <AnMaster> aha
19:09:54 <Deewiant> I was thinking something about how it pushes the old stack size versus the new and wrote something overcomplicated
19:10:03 <Deewiant> but yeah, the pg stuff is unnecessary.
19:10:09 <Deewiant> I'm fairly certain, anyway.
19:10:21 <AnMaster> <Deewiant> (it /is/ first isn't it?) <-- that I got no idea about
19:10:34 <Deewiant> AnMaster: it's in the spec
19:10:39 <AnMaster> In this document, short stacks are generally notated left to right to mean bottom to top. The leftmost values listed in the documentation are the bottommost and the first to be pushed onto the stack. Long stacks are notated top to bottom, to mean precisely that, top to bottom..
19:10:42 <AnMaster> hrm
19:11:00 <AnMaster> "size-of-stack-stack cells containing size of each stack, listed from TOSS to BOSS (ip)"
19:11:05 <AnMaster> that is a short one?
19:11:17 <AnMaster> that would mean TOSS at bottom then?
19:12:20 <Deewiant> shrug
19:13:04 <Deewiant> makes sense in a way, then you can do Xk$ where X is the index of the stack size you want
19:13:22 <AnMaster> Deewiant, looks to me like this is a... UNDEF ;)
19:13:31 <AnMaster> or "NOT VERY DEF" at least heh
19:14:00 -!- sebbu has joined.
19:14:01 <Deewiant> IMO, if every interpreter does it one way then that way is probably right
19:14:14 <Deewiant> so finish the test code already :-P
19:14:30 <AnMaster> anyway with a single stack it is the 23rd cell
19:15:44 <AnMaster> that means f7+k$ to leave it at top, hrrm
19:16:00 <AnMaster> the top one, whatever it is that is
19:17:55 <Deewiant> alright, so here
19:17:55 <Deewiant> 1230{aaa0y2a*k$....a,@
19:18:30 <Deewiant> since it uses 'k' it prints one extra value due to the way some interpreters implement 'k'
19:18:44 <AnMaster> Deewiant, err what?
19:19:13 <Deewiant> so it prints <ignore> <stack stack size> <stack size> <stack size> or <stack stack size> <stack size> <stack size> <ignore>
19:19:14 <AnMaster> as long as it works in cfunge and ccbi I'm happy, I just want a test case for my interpreter in fact
19:19:33 <Deewiant> CCBI prints 2 3 5 as does !Befunge
19:19:55 <AnMaster> $ ./cfunge tmp.b98
19:19:56 <AnMaster> 1184561 2 5 3
19:19:56 <AnMaster> heh?
19:20:27 <AnMaster> Deewiant, looks like k popped one to few?
19:20:37 * AnMaster looks
19:20:49 <Deewiant> AnMaster: no, it popped the correct amount
19:21:01 <Deewiant> if it popped the incorrect amount it'd be 2 5 3 <something>
19:21:04 <AnMaster> oh so why leave time value in there?
19:21:13 <Deewiant> because some interpreters pop the incorrect amount
19:21:19 <Deewiant> and then we'd only get the latter two values from them.
19:21:27 <AnMaster> oh god
19:21:36 <Deewiant> FBBI prints 2 3 5 97
19:21:45 <AnMaster> 97 from?
19:21:55 <Deewiant> first char of command line argument?
19:22:12 <AnMaster> ok
19:22:16 <Deewiant> like said, <ignore>
19:22:17 <Deewiant> :-P
19:23:37 <AnMaster> yeah
19:23:51 <AnMaster> Deewiant, well is the k of those other ones broken or not?
19:23:56 <AnMaster> or is it a UNDEF case?
19:24:04 <Deewiant> it's broken, of course
19:24:07 <AnMaster> ah
19:24:17 <Deewiant> since given 321 2k$ they return an empty stack
19:24:32 <AnMaster> Deewiant, well in the test case for my interpreter I don't need to care about that
19:24:35 <Deewiant> since they don't skip over the argument
19:24:39 <AnMaster> it passes mycology so :D
19:24:54 <Deewiant> AnMaster: whatever, I just wrote the generic code so I can quickly test it against all interpreters
19:25:01 <AnMaster> true
19:25:15 <Deewiant> and modifying it to be nongeneric is trivial so do whatever you want
19:25:41 -!- Corun has joined.
19:26:10 <AnMaster> Deewiant, well I plan to add unit testing
19:26:27 <AnMaster> ctest that comes with cmake look interesting
19:26:28 <Deewiant> go ahead
19:26:34 <Deewiant> I didn't bother, I just wrote mycology :-P
19:26:58 <Deewiant> there are a few unit tests in CCBI but nothing major
19:27:01 <AnMaster> Deewiant, true, but for those special cases that mycology doesn't notice, either becase bugs are unusual or it just for some reason didn't test it
19:27:12 <AnMaster> $ ls tests/
19:27:12 <AnMaster> jumpwrap.b98 ystack-size.b98
19:28:11 <AnMaster> Deewiant, actually you would need three stacks to test it correctly, hrm
19:28:23 <AnMaster> as I store top stack before I start pushing things in y
19:28:36 <Deewiant> why? do you expect 1 3 2 instead of 1 2 3 or 3 2 1? :-P
19:28:42 <AnMaster> so I push size of topstack before, then in a loop all but top stack
19:28:59 <AnMaster> StackPush(TOSSSize, pushStack);
19:28:59 <AnMaster> for (ssize_t i = ip->stackstack->current - 1; i >= 0; i--)
19:28:59 <AnMaster> StackPush(ip->stackstack->stacks[i]->top, pushStack);
19:28:59 <AnMaster> break;
19:29:04 * AnMaster wonders if that is correct
19:29:13 <Deewiant> ssize_t?
19:29:29 <AnMaster> Deewiant, or gcc complains that i will always be >= 0
19:29:33 -!- Corun has quit (Client Quit).
19:29:35 <AnMaster> ssize_t is signed size_t
19:29:37 <Deewiant> sigh
19:29:43 <Deewiant> GNU extension?
19:29:46 <AnMaster> Deewiant, nop
19:29:48 <AnMaster> see C99
19:29:48 <Deewiant> ptrdiff_t is the standard 'signed size_t'
19:30:04 <AnMaster> Deewiant, err, look at C99
19:30:19 <AnMaster> I think it comes from there
19:30:22 <Deewiant> and also, switching to signed is not the solution to that problem :-P
19:30:22 <AnMaster> or maybe POSIX
19:30:37 <Deewiant> sorry, ISO/IEC 9899:1999 doesn't contain ssize_t
19:30:39 <Deewiant> it's POSIX
19:30:42 <Deewiant> (probably)
19:30:48 <AnMaster> ah yes
19:30:51 <AnMaster> because freebsd got it
19:30:52 <Deewiant> AnMaster: your code isn't standard :-P
19:31:09 <AnMaster> Deewiant, It is POSIX probably
19:31:10 <Deewiant> but anyhoo, the way to write that loop is
19:31:18 <Deewiant> for (size_t i = ...; i-- > 0;)
19:32:09 <AnMaster> ssize_t exists in man 0p for sys/types.h
19:32:11 <AnMaster> so POSIX
19:32:12 <AnMaster> :D
19:32:42 <AnMaster> Deewiant, look someone said even windows was POSIX
19:32:44 <AnMaster> so...
19:33:03 <Deewiant> whatever, I'm not having this argument again :-P
19:33:13 <Deewiant> in any case, ssize_t or ptrdiff_t or whatever is not a solution
19:33:22 <AnMaster> Deewiant, I'm trying to avoid gnu extensions, I rely on C99 and POSIX 1003.1-2001
19:33:27 <AnMaster> Deewiant, probably indeed
19:34:15 <AnMaster> Deewiant, anyway would that loop push things in the correct order?
19:34:30 <Deewiant> I don't know, depends on how your stacks are laid out
19:34:32 <Deewiant> compile it and try
19:34:56 <AnMaster> Deewiant, well it looks correct but problem is, it does the top stack separatly
19:34:57 <AnMaster> :/
19:35:11 <Deewiant> why is that a problem?
19:35:13 <AnMaster> so I'd need 3 stacks to check *changes*
19:35:36 <Deewiant> it's trivial to make it 123 stacks if you want :-P
19:37:00 -!- tkr has joined.
19:37:21 <AnMaster> hrrm
19:37:28 <AnMaster> $ ./ccbi ~/src/cfunge08/tests/sysinfo-multi-stack-sizes.b98
19:37:28 <AnMaster> 3 3 4 5
19:37:29 <AnMaster> $ ./cfunge tests/sysinfo-multi-stack-sizes.b98
19:37:29 <AnMaster> 3 5 3 116
19:37:33 <AnMaster> indeed something breaks there
19:38:45 -!- oerjan has joined.
19:39:01 <AnMaster> $ ./ccbi ~/src/cfunge08/tests/sysinfo-multi-stack-sizes.b98
19:39:02 <AnMaster> 3 6 5 4
19:39:03 <AnMaster> hm ok
19:40:24 <AnMaster> $ ./cfunge tests/sysinfo-multi-stack-sizes.b98
19:40:24 <AnMaster> 3 5 4 6
19:40:28 <AnMaster> better but not perfect
19:40:29 <AnMaster> hehe
19:48:30 <AnMaster> Deewiant, btw I actually think TOSS should be at the bottom, opposite of how ccbi does it
19:48:39 <AnMaster> considering the standard
19:49:11 <AnMaster> Deewiant, so what do you think this should print: 120{1230{aaaaaa0y2a*1+k$....a,@
19:49:27 <AnMaster> assuming interpreter got k right
19:49:48 <AnMaster> 3 4 5 6 or 3 6 5 4
19:50:18 -!- Slereah has joined.
19:57:52 <AnMaster> gah
20:00:32 <AnMaster> Deewiant, no idea if you are still there, but if you figure out what version is correct of those two tell me, I got no clue
20:12:47 <Deewiant> AnMaster: I tried 3 random interpreters including FBBI and they all do it the way CCBI does it
20:13:33 <AnMaster> Deewiant, but what do you think the standard says about it?
20:13:55 <Deewiant> I think it can be interpreted either way, like many other things
20:14:23 <AnMaster> another undef sigh
20:14:35 <AnMaster> well I'll add both versions, in #ifdef
20:14:35 <Deewiant> the whole spec is an undef
20:14:43 <Deewiant> since it's not written formally
20:14:50 <AnMaster> Deewiant, oh?
20:15:04 <AnMaster> you mean not some IEEE standard, indeed
20:15:06 <Deewiant> it's written in english, and like all natural languages it's inherently ambiguous
20:15:20 <AnMaster> Deewiant, C99 standard is also in English
20:15:44 <Deewiant> there's no forth-like "$ (a b -- a)" notation or anything
20:15:53 <Deewiant> AnMaster: and it's also ambiguous in some cases :-P
20:16:05 <AnMaster> Deewiant, not as much as funge98 is
20:16:16 <AnMaster> and C99 standard is way larger
20:16:31 <Deewiant> not as much, because like most ISO/IEEE/ANSI/other standards it's written in as non-natural a manner as possible
20:16:50 <Deewiant> whereas the funge-98 spec reads like an essay or something
20:16:59 <AnMaster> indeed
20:17:12 <AnMaster> so funge08 should read more like a real standard
20:17:24 <AnMaster> or 09 considering much work it seems to be
20:43:59 -!- tkr has left (?).
21:29:29 -!- olsner has joined.
21:37:20 -!- jix has quit (Read error: 113 (No route to host)).
21:41:22 <AnMaster> http://rage.kuonet.org/~anmaster/cfunge/snapshots/cfunge_r107.tar.bz2 <-- new snapshot, if everything goes well I will make 0.2.0 release next
21:41:39 * AnMaster looks for ehird
21:43:54 <AnMaster> Deewiant, if you are there, tell me if things work for you using last revision
21:44:34 * Slereah is trying to do formal logic in iota
21:45:02 <AnMaster> Slereah, can't remember what one iota is
21:45:06 <Slereah> The excluded middle should be something like ```J`J`J`JJ```J`J`J`JJ`JJ```J`J`J`JJ```J`J`J`JJ`JJ``J`J`JJ`JJ``J`J`JJ`JJ``J`J`JJ`JJ, if I'm not mistaken
21:45:17 <Slereah> Iota is the compressed unlambda.
21:45:32 <Slereah> With only one combinator
21:45:45 <Slereah> Although it's *ii in actual iota
21:46:15 <AnMaster> ah
21:47:18 <Deewiant> AnMaster: appears to
21:48:14 <AnMaster> Deewiant, nice, with the binary from that snapshot?
21:48:22 <AnMaster> even though I use -march=pentium2 when building it, I think my 32-bit glibc may be built with -march=k8 -m32
21:48:24 <Deewiant> er, don't know about that
21:48:32 <AnMaster> so I got no idea if it will actually work on non-amd64 cpus
21:48:37 <Deewiant> I just did bzr pull, cmake, make
21:48:51 <AnMaster> Deewiant, right, but even then I wonder about binary on older systems too
21:49:16 <Deewiant> ideally don't use -march of any kind
21:49:25 <Deewiant> in binaries you distribute
21:49:47 <AnMaster> Deewiant, exactly
21:50:27 <AnMaster> Deewiant, and I built low-march (i686) for static boehm-gc, but well static glibc is harder
21:51:08 <Deewiant> you can just dynamically link :-P
21:51:19 <oerjan> Slereah: Iota looks expanded not compressed to me ;)
21:52:02 <AnMaster> Deewiant, that causes issues as you can understand, I link statically to avoid those issues
21:52:18 <AnMaster> but I guess some mix could work
21:52:30 <Deewiant> with something as commonplace as glibc it should be fine
21:52:55 <Deewiant> but yes, ideally static link everything
21:53:30 <AnMaster> hope libm is ok then too
21:55:51 <Slereah> oerjan: In size maybe!
22:01:00 <Slereah> Would a language without loops or conditional jumps but able to add code to itself be TC?
22:04:23 <Deewiant> you can't get far without conditionals...
22:04:27 <AnMaster> Deewiant, I made a script to build all possible 4 variants
22:04:33 <AnMaster> dynamic/static 32/64
22:05:52 <oerjan> Slereah: i think there is such a language on the wiki
22:07:23 <oerjan> http://esoteric.voxelperfect.net/wiki/SMITH
22:09:10 <AnMaster> www.esolangs.org == esoteric.voxelperfect.net
22:09:12 <AnMaster> oerjan, ?
22:09:28 <oerjan> ah yes
22:09:37 <oerjan> those are equivalent
22:40:25 -!- jix has joined.
23:13:38 <AnMaster> cfunge 0.2.0 released
23:16:46 <AnMaster> http://rage.kuonet.org/~anmaster/cfunge/
23:51:13 -!- BMeph has joined.
23:57:25 -!- jix has quit (Nick collision from services.).
23:57:33 -!- jix has joined.
←2008-03-18 2008-03-19 2008-03-20→ ↑2008 ↑all