00:03:56 <CakeProphet> Ima test the iterator thing to see if it works without the list.
00:08:46 <CakeProphet> {(Nil)[(iter),][(null?)1]} {(Con) [(c__)a2=b1=] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*(_fun)*?(_fun)*b(iter).?] } {M[m(_o)O! ! "H" "e" "l" "l" "o" " " "W" "o" "r" "l" "d" "!"(_a)(Con)! (_a)(Con)!(_a)(Con)!(_a)(Con)!(_a)(Con)!(_a)(Con) (_o)o.(_a)(iter).]}
00:09:00 <CakeProphet> !glass {(Con) [(c__)a2=b1=] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*(_fun)*?(_fun)*b(iter).?] } {M[m(_o)O! ! "H" "e" "l" "l" "o" " " "W" "o" "r" "l" "d" "!"(_a)(Con)! (_a)(Con)!(_a)(Con)!(_a)(Con)!(_a)(Con)!(_a)(Con) (_o)o.(_a)(iter).]}
00:13:05 <CakeProphet> !glass {(Con) [(c__)a2=b1=] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,(car)*?(_fun)*?(cdr)*?(iter)*?] } {M[m(_o)O! ! "H" "e" "l" "l" "o" " " "W" "o" "r" "l" "d" "!"(_a)(Con)! (_a)(Con)!(_a)(Con)!(_a)(Con)!(_a)(Con)!(_a)(Con) (_o)o.(_a)(iter).]}
00:37:30 -!- bsmnt_bot has quit (Read error: 110 (Connection timed out)).
00:38:35 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
00:41:46 <CakeProphet> !glass {(BFfeed) [(c__) (_i)I! (code)(_l)l.?= (pos)=<1>] [(next)(_s)S! (_a)!a (code)*(pos)*(_s)i.? (pos)(pos)*<1>(_a)a.=]} ((Array)(c__
00:43:33 <CakeProphet> I have no clue how to implement an array without using a linked list or something.
00:44:16 <CakeProphet> hmmm... I could use the stack as my array.
00:44:54 <oklopol> make an array class for numbers, easy! :D
00:45:08 <CakeProphet> hmmm... yeah that would be hard to handle if it were right on the stack.
00:45:26 <oklopol> you could make it a string
00:45:39 <oklopol> you can extract a char from a string
00:45:45 <oklopol> and convert it to a number
00:45:57 <oklopol> each character is a number
00:46:13 <CakeProphet> You would need some symbol to specify where one number begins and where the next ends.
00:46:41 <pikhq> CakeProphet: I thought Gregor had that as a glass example.
00:47:14 <pikhq> CakeProphet: Such as, like, realising that a string is an array of chars.
00:47:48 <CakeProphet> For some reason I was thinking it HAD to be in numbers.
00:47:58 <CakeProphet> the thought never occured to me that I could use the CHARACTERS.
00:48:15 <CakeProphet> hmmm... can Glass strings represent non-printing characters?
00:48:16 <oklopol> i tried to tell you but i was too tired :(
00:48:47 <pikhq> It's stored internally as a C++ string, which is stored internally in <string> as C strings with metadata.
00:49:28 <pikhq> oklopol: Part of the metadata in a C++ string is size.
00:49:43 <pikhq> Meaning that a string of 0's is perfectly acceptable.
00:49:45 <oklopol> oh i misunderstood you, sorry
01:00:54 <CakeProphet> in Glass... slicing is the equivalent to C slicing, no?
01:14:46 <oklopol> !glass {M[m"abc"1(_o)O!(_s)0S!s.?(_o)o.]}
01:15:03 <oklopol> !glass {M[m"abc"1(_o)O!0(_s)S!s.?(_o)o.]}
01:15:43 <oklopol> !glass {M[m"abc"1(_o)O!(_s)0S!d.?(_o)o.]}
01:16:04 <oklopol> !glass {M[m"abc"1(_o)O!(_s)0S!d.?(_o)o.?]}
01:16:15 <oklopol> !glass {M[m"abc"2(_o)O!(_s)0S!d.?(_o)o.?]}
01:16:18 <CakeProphet> {(BFfeed) [(c__) (_i)I! (code)(_l)l.?= (pos)=<1>] [(next)(_s)S! (_a)!a (code)*(pos)*(_s)i.? (pos)(pos)*<1>(_a)a.=]} {(StringSpam)[(lol)(_a)A!(_s)S!(str)2=(num)1=(outstr)""=/(num)(outstr)(outstr)*(str)*(_s)a.?(pos)(pos)*<1>(_a)a.?\(outstr)*]} ((Array)[(c__ ) (_mul)(StringSpam)!(_s)S! (array)<0>(_s)(ns)<15000>= (ptr)<0>=] [(set)(_s)S! (_ps)2= (_str)1(_s)(ns).?= (array)*(_ps)(_s)d.? (_be)1=...
01:16:20 <CakeProphet> ...(_af)1= (array)(_be)*(_str)*(_af)*(_s)a.?(_s)a.?=] [(move)(_a)A! (_inc)1= (ptr)(ptr)*1(_inc)(_a)a.?=] [(get) (_s)S! (_s)i.}
01:17:06 <oklopol> !glass {M[m"abc"<2>(_o)O!(_s)0S!d.?(_o)o.?]}
01:17:14 <oklopol> !glass {M[m"abc"<1>(_o)O!(_s)0S!d.?(_o)o.?]}
01:17:19 <oklopol> !glass {M[m"abc"<0>(_o)O!(_s)0S!d.?(_o)o.?]}
01:17:47 <oklopol> i don't read glass that fluently yet :)
01:18:00 <pikhq> Nobody really does.
01:18:22 -!- jix_ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
01:18:26 * pikhq doesn't do Brainfuck, either. . .
01:18:32 <pikhq> And I code in it nearly daily.
01:19:34 <CakeProphet> You sorta have to think of it as dumping shit onto a big pile.
01:19:41 <CakeProphet> and then when you see certain symbols... start moving it around.
01:20:01 <CakeProphet> usually you see the action before you see the subject... but not in postfix.
01:20:28 <oklopol> [(c__) (_i)I! (code)(_l)l.?= (pos)=<1>]
01:21:49 <CakeProphet> I was thinking Glass might have moved up the slice notation a notch.
01:22:29 <oklopol> k first func read and debugged :)
01:22:53 <CakeProphet> StringSpam is just a little thing for "string multiplication"
01:23:11 <CakeProphet> so I can fill up a string with 15000 void characters quickly.
01:23:26 <oklopol> [(next)(_s)S! (_a)!a (code)*(pos)*(_s)i.? (pos)(pos)*<1>(_a)a.=]
01:24:30 <oklopol> you should take advantage of oo!
01:24:50 <oklopol> don't use an int as the pointer, have a class with .(inc) and so on
01:25:22 <CakeProphet> It's prettier than going through the trouble of making a class.
01:25:25 <oklopol> tho everything is immutable
01:25:37 <oklopol> that's not the point, use OO! :D
01:25:51 <CakeProphet> ....there's only so much abstraction that's nessicary.
01:26:15 <CakeProphet> Glass is so terrible because it forces you to abstract fairly low-level operations.
01:26:40 <Sukoshi> Oh. You mean null characters.
01:27:44 <oklopol> BfFeed will be expanded later on with loopz right?
01:28:01 <Sukoshi> CakeProphet: Expand as you go along.
01:28:12 <Sukoshi> 30,000 bytes is a greedy amount of memory.
01:28:14 <oklopol> Sukoshi, can be done later
01:28:32 <Sukoshi> Hey, if I can make expanding arrays in INTERCAL.....
01:28:51 <oklopol> i wanna sleep, why can't i :(
01:29:13 <Sukoshi> I sleep out of mental neccessity.
01:29:22 <oklopol> true, but i have to wake up early
01:29:38 <Sukoshi> ...........................
01:29:54 <oklopol> i usually wake up 13.00 or 14.00
01:30:07 <oklopol> and i ALWAYS have an alarm clock on at 10.00
01:30:25 <oklopol> just never wakes me up... maybe i'm lucky tomorrow
01:30:57 <Sukoshi> I sleep at 3, wake up at 6:30, with one 30 min nap in the day.
01:31:51 <CakeProphet> {(BFfeed) [(c__) (_i)I! (code)(_i)i.?= (pos)=<0>] [(next)(_s)S! (_a)!A (code)*(pos)*(_s)i.? (pos)(pos)*<1>(_a)a.=]} {(StringSpam)[(lol)(_a)A!(_s)S!(str)2=(num)1=(outstr)""=/(num)(outstr)(outstr)*(str)*(_s)a.?(pos)(pos)*<1>(_a)a.?\(outstr)*]} ((Array)[(c__ ) (_mul)(StringSpam)!(_s)S! (array)<0>(_s)(ns).?<30000>(_mul)(lol).?= (ptr)<0>=] [(set)(_s)S! (_ps)2= (_str)1(_s)(ns).?= (array)*(_ps)(_s)d.
01:31:52 <CakeProphet> ? (_be)1= (_af)1= (array)(_be)*(_str)*(_af)*(_s)a.?(_s)a.?=] [(move)(_a)A! (_inc)1= (ptr)(ptr)*1(_inc)(_a)a.?=] [(get) (_s)S! (array)*(ptr)*(_s)i.]}
01:32:04 <CakeProphet> mmm... Glass looks deliciously nonsential.
01:32:54 <oklopol> why do i see them there then? :O
01:33:51 <CakeProphet> {(BFfeed) [(c__) (_i)I! (code)(_i)i.?= (pos)<0>=] [(next)(_s)S! (_a)A! (code)*(pos)*(_s)i.? (pos)(pos)*<1>(_a)a.=]} {(StringSpam)[(lol)(_a)A!(_s)S!(str)2=(num)1=(outstr)""=/(num)(outstr)(outstr)*(str)*(_s)a.?(pos)(pos)*<1>(_a)a.?\(outstr)*]} ((Array)[(c__ ) (_mul)(StringSpam)!(_s)S! (array)<0>(_s)(ns).?<30000>(_mul)(lol).?= (ptr)<0>=] [(set)(_s)S! (_ps)2= (_str)1(_s)(ns).?= (array)*(_ps)(_s)d.
01:33:53 <CakeProphet> ? (_be)1= (_af)1= (array)(_be)*(_str)*(_af)*(_s)a.?(_s)a.?=] [(move)(_a)A! (_inc)1= (ptr)(ptr)*1(_inc)(_a)a.?=] [(get) (_s)S! (array)*(ptr)*(_s)i.]}
01:34:33 <CakeProphet> I should start on that double-ended queue language.
01:35:10 <oklopol> /(num)(outstr)(outstr)*(str)*(_s)a.?(pos)(pos)*<1>(_a)a.?\
01:35:36 <oklopol> /(num)(outstr)(outstr)*(str)*(_s)a.?(num)(num)*<1>(_a)s.?\
01:35:58 <oklopol> i'm starting to be able to read that
01:40:22 <oklopol> i can't see the use of your splitting the array in (Array)
01:40:33 <CakeProphet> (pos) represents the number you're multiplying it by
01:41:12 <oklopol> and when will the loop end?
01:41:46 <CakeProphet> "Lolerskates" * 5 ----------- "Lolerskates" <5> (_ss)StringSpam!(_ss)?
01:42:07 <Sukoshi> Might I reccomend Pastebin?
01:42:53 <oklopol> {(StringSpam)[(lol)(_a)A!(_s)S!(str)2=(num)1=(outstr)""=/(num)(outstr)(outstr)*(str)*(_s)a.?(pos)(pos)*<1>(_a)a.?\(outstr)*]} << why would the loop end?
01:43:11 <oklopol> no operation is done to num
01:43:16 <CakeProphet> {(BFfeed) [(c__) (_i)I! (code)(_i)i.?= (pos)<0>=] [(next)(_s)S! (_a)A! (code)*(pos)*(_s)i.? (pos)(pos)*<1>(_a)a.=]} {(StringSpam)[(lol)(_a)A!(_s)S!(str)2=(num)1=(outstr)""=/(num)(outstr)(outstr)*(str)*(_s)a.?(num)(num)*<1>(_a)a.?\(outstr)*]} ((Array)[(c__ ) (_mul)(StringSpam)!(_s)S! (array)<0>(_s)(ns).?<30000>(_mul)(lol).?= (ptr)<0>=] [(set)(_s)S! (_ps)2= (_str)1(_s)(ns).?= (array)*(_ps)(_s)d.
01:43:18 <CakeProphet> ? (_be)1= (_af)1= (array)(_be)*(_str)*(_af)*(_s)a.?(_s)a.?=] [(move)(_a)A! (_inc)1= (ptr)(ptr)*1(_inc)(_a)a.?=] [(get) (_s)S! (array)*(ptr)*(_s)i.]}
01:43:40 <oklopol> /(num)(outstr)(outstr)*(str)*(_s)a.?(num)(num)*<1>(_a)a.?\ -> /(num)(outstr)(outstr)*(str)*(_s)a.?(num)(num)*<1>(_a)s.?\
01:43:44 <CakeProphet> (pos) is the position we're on in the input.
01:44:21 <CakeProphet> eh... everyone is an asshole is some point.
01:44:47 <oklopol> yeah, i'd really like to sleep but i can't :(
01:45:24 <Sukoshi> CakeProphet: Uh... please use Pastebin.
01:45:37 <Sukoshi> It's also easier to read for a lot of people.
01:46:51 <CakeProphet> oklopol, set sets (_ps) in (array) to (_str)
01:47:49 <oklopol> you do know _str is "1" and (_ps) is 2?
01:48:03 <oklopol> it sets 2 in (array) to "1"?
01:49:07 <oklopol> i mean, it takes those as params and doesn't set them in the function?
01:50:28 <CakeProphet> To set a value in the array... we have to split it at (_ps) and concatenate the first half with (_str) and then concatenate those two with the second half.
01:51:18 <oklopol> i just read code as a compiler with only a minor autodebug
01:52:04 <oklopol> so if you put test values in, i don't understand
01:53:13 <oklopol> (if you made a (Counter)-class, you'd get rid of TWO ugly additions!)
01:53:34 <oklopol> you have two functions whose main purpose is to inc a var :)
01:53:51 <oklopol> actually, the sole purpose of the other
01:54:38 <oklopol> why didn't you tell me i was wrong a while ago
01:55:00 <oklopol> maybe because i make no sence and mostly talk to myself :)
01:55:24 <oklopol> i'll now reread that one part keeping in mind 2 != <2> xD
01:55:26 <CakeProphet> and how is it conceptually possible to get rid of anything ugly with GLASS?
01:55:40 <oklopol> (_inc)1= (ptr)(ptr)*1(_inc)(_a)a.?=
01:56:14 <CakeProphet> A pointer class would just add to the overhead.
01:56:23 <oklopol> as i once again misparsed, 1 IS A FUCKING LIFT, not a number xD
01:57:59 <oklopol> (_af)1= in (set) should be (_af)0=
01:58:04 <CakeProphet> oklopol, Did you seem my implementation of a Lisp pair in Glass?
01:58:26 <CakeProphet> hmmm... I thought pushing something from the stack decrement the position of everything.
01:58:28 <oklopol> i did, but i didn't read it because i had this craaaaaazy idea of going to sleep
01:59:07 <oklopol> but (_bf)1= takes off what it puts in
01:59:37 <oklopol> 1 if the first part, 0 is the second part, so naturally (_bf)1= (_af)0=
01:59:43 <CakeProphet> The stack item is removed when its pushed back in?
02:00:01 <oklopol> actually i don't know whether = leaves anything on the stack
02:00:17 <oklopol> = pops the name and the value off
02:00:55 <oklopol> (i looked it up, but it's ONLY because i'm tired)
02:01:20 <CakeProphet> {(BFfeed) [(c__) (_i)I! (code)(_i)i.?= (pos)<0>=] [(next)(_s)S! (_a)A! (code)*(pos)*(_s)i.? (pos)(pos)*<1>(_a)a.=]} {(StringSpam)[(lol)(_a)A!(_s)S!(str)2=(num)1=(outstr)""=/(num)(outstr)(outstr)*(str)*(_s)a.?(pos)(pos)*<1>(_a)a.?\(outstr)*]} ((Array)[(c__ ) (_mul)(StringSpam)!(_s)S! (array)<0>(_s)(ns).?<30000>(_mul)(lol).?= (ptr)<0>=] [(set)(_s)S! (_ps)2= (_str)1= (array)*(_ps)(_s)d.?...
02:01:22 <CakeProphet> ...(_be)1= (_af)0= (array)(_be)*(_str)*(_af)*(_s)a.?(_s)a.?=] [(move)(_a)A! (_inc)1= (ptr)(ptr)*1(_inc)(_a)a.?=] [(get) (_s)S! (array)*(ptr)*(_s)i.]}
02:01:50 <oklopol> why the fuck (_this)$ leaves the object on the stack :D
02:02:07 <oklopol> makes no sence because no other var oper does
02:02:35 <CakeProphet> it could also just be there to confuse you.
02:02:46 <CakeProphet> so... help me think of how a double-ended queue language should work.
02:02:56 <oklopol> the this-pointer must always be both pushed and set into a var
02:03:09 <oklopol> you never need both, you must have both
02:03:34 <CakeProphet> and you could evaluate different things at different places... it would be kind of weird.
02:03:57 <CakeProphet> push1, pop1, push2, pop2, rotate (being a push2 of pop1)
02:03:57 <oklopol> but i'm not sure if i can take them out
02:04:28 <oklopol> k, that's basically a stack-based lang where you control pop's and pushes right?
02:05:30 <CakeProphet> it would just... kinda shift around as you code.
02:05:36 <oklopol> brainfuck goes too far! you can make sence into it by making only the queue part, not also the ridiculously hard inc&dec-only system
02:05:52 <CakeProphet> You might be able to swap which end of the cue the pushes and pops occur...
02:06:06 <oklopol> ah okay, you should then be able to make it go around in different places
02:06:37 <oklopol> very non-modular if there is just one queue with a rolling tape
02:06:45 <CakeProphet> Swapping which end you get values from would kind of reverse the evaluation order.
02:07:13 <oklopol> i misunderstood the whole queue thing :)
02:07:22 <CakeProphet> yeah... I'm not sure how it'll work either.
02:07:32 <oklopol> i thought like a circle where you can go around freely
02:07:45 <oklopol> but instead you meant a two-sided stacks?
02:08:18 <oklopol> yes, but i confuse consepts
02:08:41 <oklopol> i'll do some perusing on the subject now ->
02:08:52 <CakeProphet> [1,2,3,4,5,6,7,8,9] push1(0) [0,1,2,3,4,5,6,7,8,9] pop2() [0,1,2,3,4,5,6,7,8] push1(pop2()) [8,0,1,2,3,4,5,6,7]
02:09:37 <oklopol> anyway, functionality is that of a two-sided stack
02:10:21 <CakeProphet> a queue language might be more fun though.
02:10:28 <oklopol> i wish i had paper... got some unbelievably cool ideas :D
02:10:37 <CakeProphet> cause... let's face it... stacks are boring.
02:11:00 <oklopol> no 3d... like the one i'm gonna show you in a minute :)
02:11:03 <CakeProphet> with multidimensional arrays being pushed down them... and the data intersecting and crossing based on commands.
02:11:52 <CakeProphet> inputs and outputs criss-crossing and connecting... with the data getting tossed around.
02:15:10 <oklopol> dunno if it's unugly enough to give you the picture... i mean what i was thinking
02:15:33 <oklopol> it involves a circular tape that can be cut and rotated etc. :)
02:16:12 <oklopol> purely functional languages
02:16:13 <CakeProphet> Where "stuff" is sent through structures you've created for it... and somehow magically becomes data.
02:16:35 <oklopol> you don't need data when the structure is perfect!
02:16:59 <oklopol> a language with no data, no hello world, no factorials, just PERFECT structures :D
02:17:15 <oklopol> anyways, i wanna send you the ugly pic :(
02:18:21 <oklopol> it's nosence.bmp... i then realized there is a word nonsence
02:18:28 <oklopol> which would've made more sence
02:18:38 <oklopol> but then again, why should nonsence make sence?
02:19:01 <CakeProphet> maybe a non-determinstic language that doesn't... yanno... suck.
02:19:05 <oklopol> i can't send it, also, with this :)
02:19:31 <oklopol> can i send that another way?
02:20:51 <oklopol> lol it makes me laugh... fuck i'm tired
02:21:33 <oklopol> sound like a job for concurrency!
02:21:54 <oklopol> and a great support for tcp/ip
02:22:51 <oklopol> kinda like a cellular automaton
02:23:01 <oklopol> but you can code each node differently
02:23:15 <oklopol> (there is a macro lang for that, of course)
02:23:16 <CakeProphet> a language for constructing cellular automatons.
02:23:33 <CakeProphet> that fit specifically for what you need them to do.
02:23:57 * CakeProphet has a Automaton class in Python that can represent any cellular automaton with a universal rule for all cells.
02:25:32 <oklopol> has bad lambda support if you ask me
02:26:02 <oklopol> i mean, you have to twiddle to do even conditionals in a lambda
02:26:24 <oklopol> [(stuph) for i in [1] if (cond)]
02:26:47 <oklopol> god, now i have to sleep... really... <.smdfk ->
02:37:15 <CakeProphet> Most Python zealots don't consider lambda all that useful anyways...
02:45:59 <oklopol> i've actually been trying to sleep for 2.5 hours now
02:53:22 <CakeProphet> http://www.nyx.net/~gthompso/self_pyth.txt
02:56:15 <CakeProphet> a = ['print "a =", a', 'for s in a: print s']
03:25:18 <CakeProphet> A sequence of programs that each produce the source code of the next one in the sequence.
03:25:36 <CakeProphet> and I'm guessing the last one prints the source code of the first.
03:32:48 <tokigun> one-liner quine is achieved by this code: print (lambda x:x%x)('print (lambda x:x%%x)(%r)')
03:33:09 <tokigun> good example for repr() ;)
03:45:45 <CakeProphet> repr() would be a good way to reproduce source code.
03:57:02 <CakeProphet> I would be amazed if someone built a phyiscal object that can do the same thing as an iterating quine.
03:57:37 <CakeProphet> Like a machine that builds a machine that builds a machine that builds a machine that builds the original machine.
04:00:55 <CakeProphet> You could probably use iterating quines to do a computation of some sort.
04:01:14 <CakeProphet> maybe a language whose entire function is to shell out successive source codes... which eventually will produce the original.
04:01:38 <CakeProphet> but the side effects that each one produce create a successive shift... that eventually yields some sort of useful output
04:02:51 * pikhq defines a pointless language
04:04:10 <pikhq> "" outputs "Sorry, gotta work one more character for that."
04:05:10 <pikhq> Thus, the shortest quine is "a".
04:05:26 <pikhq> And the shortest iterating quine is "b", "c", or "d".
04:12:29 -!- ihope has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09").
04:12:48 <CakeProphet> tokigun, That's the coolest quine I've seen so far.
04:13:05 <CakeProphet> Plus it's in one line... which is pretty awesome.
04:13:09 -!- ivan`_ has joined.
04:31:38 -!- ivan` has quit (Read error: 110 (Connection timed out)).
04:32:28 -!- ivan`_ has changed nick to ivan`.
04:36:32 <CakeProphet> both made to produce outputs in the form of the other language...
04:36:53 -!- RW63Phi has joined.
04:36:56 <CakeProphet> A polyglottal iterative quine based language. :D
04:37:55 <RW63Phi> Could someone please repeat this command and cause it to be executed by another host?
04:38:50 <CakeProphet> Could someone please repeat this command and cause it to be executed by another host?
04:40:05 <RW63Phi> Everyone please execute a command which causes each of you to ignite and burn.
04:40:07 -!- Dangermouse has joined.
04:41:02 -!- RW63Phi has left (?).
04:41:05 <CakeProphet> Could someone please give someone a command to give someone a command to repeat this command?
04:47:18 -!- Dangermouse has left (?).
05:07:38 <pikhq> Could someone please give someone a command to repeat that command?
05:10:34 <pikhq> Pretty please with sugar on top?
05:13:10 -!- theblue has quit (Read error: 113 (No route to host)).
05:15:21 <pikhq> Could someone please give someone a command to give someone a command to repeat this command?
05:16:13 <pikhq> It's a UNIX signal for stopping exeuction.
05:30:22 -!- calamari has quit ("Leaving").
05:32:27 -!- pikhq has quit (Read error: 54 (Connection reset by peer)).
05:33:55 -!- pikhq has joined.
05:51:07 <fizzie> SIGTERM is for stopping execution; SIGKILL is if you're feeling antisocial.
05:52:43 <pikhq> SIGKILL stops execution *now*.
05:52:49 <pikhq> SIGTERM allows for cleanup.
05:55:44 <GregorR> SIGSTOP is for /stopping/ execution :)
05:55:51 <GregorR> SIGTERM is for /terminating/ execution :P
05:55:59 <GregorR> and SIGKILL is for /killing/ execution ;)
05:56:30 <fizzie> And, of course, SIGABRT is for /aborting/ execution. "Do we really need so many?"
05:57:18 <fizzie> SIGILL is for making the execution /ill/, in which case it barfs. "Dumps core", in Unix terminology.
05:58:31 <fizzie> Heh, and of course there's SIGINT for /interrupting/ execution, which kind-of fits in the original list.
05:59:22 <fizzie> And SIGQUIT for /quitting/ execution. Come to think of it, an inordinate amount of the signals seem to be about manhandling the execution somehow.
05:59:51 <fizzie> Why isn't there SIGTHANKS that you can send when a process has diligently worked and behaved in an exemplary manner?
06:25:29 <pikhq> SIGEMT sends a trained EMT for your process.
06:26:03 <pikhq> Needed after SIGSTOP, SIGTERM, SIGKILL, SIGABRT, SIGILL, SIGINT, or SIGQUIT.
06:37:14 <Sukoshi> Signals -- when you need that time-has-passed feeling.
06:51:52 -!- pikhq has quit (Read error: 110 (Connection timed out)).
06:57:20 -!- werdwerdus has joined.
07:24:32 -!- werdwerdus has quit (Read error: 110 (Connection timed out)).
07:49:33 -!- oerjan has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:01:22 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{(List)[(build)(_a)A!(_tmp)1=, (_list)(Nil)!/(_tmp)(_list)*(_list)(Con)!(_tmp)0*<1>(_a)s.?=\(_list)*] }{M[m(_o)O! (_l)(List)! "H" "e" "l" "l" "o" " " "W" "o" "r" "l" "d" "!"<12>(_l)(build).?(MyList)1=, (_o)o.(MyList)(iter).?]}
08:04:25 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{(List)[(build)(_a)A!(_tmp)1=, (_list)(Nil)!/(_tmp)(_list)*(_list)(Con)!(_tmp)0*<1>(_a)s.?=\(_list)*] }{M[m(_o)O! "H" (MyList)0(Nil)!(Con)! (_o)o.(MyList)(iter).?]}
08:08:28 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{M[m(_o)O! "H" (MyList)0(Nil)!*(MyList)(Con)! (_o)o.(MyList)(iter).?]}
08:10:03 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{M[m(_o)O! "H" (MyList)0(Nil)!*(MyList)(Con)! (_o)o.(MyList)(car).?1?]}
08:11:48 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{M[m(_o)O! "H" (MyList)0(Nil)!*(MyList)(Con)! (_o)o.(MyList)(cdr).?(_t)1=,(_t)(null?).?1?]}
08:11:59 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{M[m(_o)O! "H" (MyList)0(Nil)!*(MyList)(Con)! (_o)(on).(MyList)(cdr).?(_t)1=,(_t)(null?).?1?]}
08:13:16 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{M[m(_o)O! "H" (MyList)0(Nil)!*(MyList)(Con)! (_o)(o).(MyList)(cdr).?(_t)1=,(_t)(car).?1?]}
08:18:30 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{M[m(_o)O! "H" "i" (MyList)0(Nil)!*(MyList)(Con)!(MyList)*(MyList)(Con)! (_o)(o).(MyList)(cdr).?(_t)1=,(_t)(car).?1?]}
08:19:08 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{M[m(_o)O! "H" "i" (MyList)0(Nil)!*(MyList)(Con)!(MyList)*(MyList)(Con)! (_o)(on).(MyList)(cdr).?(_t)1=,(_t)(null?).?1?]}
08:29:48 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{(List)[(build)(_a)A!(_tmp)1=, (_list)(Nil)!/(_tmp)(_list)*(_list)(Con)!(_tmp)0*<1>(_a)s.?=\(_list)*] }{M[m(_o)O! (_l)(List)! "H" "i" <2> (_l)(build).?(MyList)1=, (_o)(o).(MyList)(cdr).?(_t)1=,(_t)(car).?1?]}
08:29:50 -!- Arrogant has joined.
08:31:43 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{(List)[(build)(_a)A!(_tmp)1=, (_list)(Nil)!/(_tmp)(_list)*(_list)(Con)!(_tmp)0*<1>(_a)s.?=\(_list)*] }{M[m(_o)O! (_l)(List)! "H" "i" <2> (_l)(build).?(MyList)1=, (_o)(o).(MyList)(car).?1?]}
08:33:37 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{(List)[(build)(_a)A!(_tmp)1=, (_list)(Nil)!/(_tmp)(_list)*(_list)(Con)!(_tmp)0*<1>(_a)s.?=\(_list)*] }{M[m(_o)O! (_l)(List)! "H" "i" <2> (_l)(build).?(MyList)1=, (_o)(o)."test"?1?]}
08:36:21 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{(List)[(build)(_o)O!(_a)A!(_tmp)1=, (_list)(Nil)!/(_tmp)(_list)*(_list)2(_o)o.?(Con)!(_tmp)0*<1>(_a)s.?=\(_list)*] }{M[m(_o)O! (_l)(List)! "H" "i" <2> (_l)(build).?(MyList)1=, (_o)(o).(MyList)(car).?1?]}
08:37:27 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{(List)[(build)(_o)O!(_a)A!(_tmp)1=, (_list)(Nil)!/(_tmp)(_list)*(_list)(_tmp)*(_o)(on).?(Con)!(_tmp)0*<1>(_a)s.?=\(_list)*] }{M[m(_o)O! (_l)(List)! "H" "i" <2> (_l)(build).?(MyList)1=, (_o)(o).(MyList)(car).?1?]}
08:38:05 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{(List)[(build)(_o)O!(_a)A!(_tmp)1=, (_list)(Nil)!/(_tmp)(_list)*(_list)(Con)!(_tmp)*(_o)(on).?(_tmp)0*<1>(_a)s.?=\(_list)*] }{M[m(_o)O! (_l)(List)! "H" "i" <2> (_l)(build).?(MyList)1=, (_o)(o).(MyList)(car).?1?]}
08:38:30 -!- Arrogant has quit ("Leaving").
08:38:58 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{(List)[(build)(_o)O!(_a)A!(_tmp)1=, (_list)(Nil)!/(_tmp)(_list)*(_list)(Con)!(_tmp)0*<1>(_a)s.?=(_tmp)*(_o)(on).?\(_list)*] }{M[m(_o)O! (_l)(List)! "H" "i" <2> (_l)(build).?(MyList)1=, (_o)(o).(MyList)(car).?1?]}
08:40:11 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{(List)[(build)(_o)O!(_a)A!(_tmp)1=, (_list)(Nil)!/(_tmp)(_list)*(_list)(Con)!(_tmp)0*<1>(_a)s.?(_tmp)*(_o)(on).?=\(_list)*] }{M[m(_o)O! (_l)(List)! "H" "i" <2> (_l)(build).?(MyList)1=, (_o)(o).(MyList)(car).?1?]}
08:40:46 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{(List)[(build)(_o)O!(_a)A!(_tmp)1=, (_list)(Nil)!/(_tmp)(_list)*(_list)(Con)!(_tmp)0*<1>(_a)s.(_tmp)*(_o)(on).??=\(_list)*] }{M[m(_o)O! (_l)(List)! "H" "i" <2> (_l)(build).?(MyList)1=, (_o)(o).(MyList)(car).?1?]}
08:41:27 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{(List)[(build)(_o)O!(_a)A!(_tmp)1=, (_list)(Nil)!/(_tmp)(_list)*(_list)(Con)!(_tmp)0*<1>(_tmp)*(_o)(on).?(_a)s.?=\(_list)*] }{M[m(_o)O! (_l)(List)! "H" "i" <2> (_l)(build).?(MyList)1=, (_o)(o).(MyList)(car).?1?]}
08:44:17 <oerjan> !glass {M[m(_a)A!(_o)O!<4><2>(_a)s.?(_o)(on).?]}
08:44:30 <oerjan> !glass {M[m(_a)A!(_o)O!<4><2>(_a)a.?(_o)(on).?]}
08:44:55 <oerjan> !glass {M[m(_a)A!(_o)O!<4><2>(_o)(on).0??]}
08:45:47 <oerjan> !glass {M[m(_a)A!(_o)O!<4><2>(_o)(on).?]}
08:46:07 <oerjan> !glass {M[m(_a)A!(_o)O!<4><2>(_a)a.,(_o)(on).?]}
08:46:56 <oerjan> something is broken with the A class...
08:47:49 <oerjan> !glass {M[m(_b)A!(_o)O!<4><2>(_b)a.,(_o)(on).?]}
08:48:02 <oerjan> !glass {M[m(_b)A!(_o)O!<4><2>(_b)m.,(_o)(on).?]}
08:48:19 <oerjan> !glass {M[m(_b)A!(_o)O!<4><2>(_o)(on).?]}
08:49:48 <oerjan> GregorR: The A class in Glass is broken.
09:00:33 <oerjan> !glass {F[f(_a)A!(_o)O!(_t)$(_n)1=,(_isle)(_n)*<2>(_a)(le).?=/(_isle)<1>^\(_n)*<1>(_a)s.?(_t)f.?(_n)*<2>(_a)s.?(_t)f.?(_a)a.?]}{M[m(_a)A!(_f)F!(_o)O!(_n)<1>=(_nlm)<1>=/(_nlm)(_n)*(_f)f.?(_o)(on).?" "(_o)o.?(_n)(_n)*<1>(_a)a.?=(_nlm)(_n)*<20>
09:00:59 <oerjan> !glass {F[f(_a)A!(_o)O!(_t)$(_n)1=,(_isle)(_n)*<2>(_a)(le).?=/(_isle)<1>^\(_n)*<1>(_a)s.?(_t)f.?(_n)*<2>(_a)s.?(_t)f.?(_a)a.?]}{M[m(_a)A!(_f)F!(_o)O!(_n)<1>=(_nlm)<1>=/(_nlm)(_n)*(_f)f.?(_o)(on).?" "(_o)o.?(_n)(_n)*<1>(_a)a.?=(_nlm)(_n)*<20>(_a)(le).?=\]}
09:01:29 <oerjan> yep, the Fibonacci program no longer works.
09:10:04 <oerjan> !glass {M[m(_o)O"Test"T$(_o)o.?]}
09:10:14 <oerjan> !glass {M[m(_o)O"Test"T$,(_o)o.?]}
09:10:30 <oerjan> !glass {M[m(_o)O!"Test"T$(_o)o.?]}
09:12:26 <oerjan> !glass {M[m(_o)O!"ho""Test"T$,(_o)o.?]}
09:13:44 <oerjan> oklopol: sorry about the $ specification, it was a documentation bug
09:41:50 <oerjan> although it would probably have been in the spirit of Glass if it wasn't.
10:03:42 -!- oerjan has quit ("Later").
12:40:30 -!- tgwizard has joined.
13:04:23 -!- pgimeno has quit ("kernel upgrade").
13:37:55 -!- pgimeno has joined.
13:39:26 -!- jix_ has joined.
16:40:44 -!- pikhq has joined.
16:43:36 * pikhq thinks about making BFM shorter
16:54:13 -!- oerjan has joined.
17:32:25 -!- pgimeno has quit (Remote closed the connection).
18:05:48 -!- ihope has joined.
18:44:51 -!- ihope_ has joined.
19:00:55 -!- pgimeno has joined.
19:01:54 -!- ihope has quit (Connection timed out).
19:59:11 -!- ivan`_ has joined.
20:06:53 -!- ivan` has quit (Read error: 60 (Operation timed out)).
20:06:54 -!- ivan`_ has changed nick to ivan`.
20:35:45 -!- ivan`_ has joined.
20:42:41 -!- ehird has joined.
20:43:09 -!- ehird has left (?).
20:43:23 -!- ivan` has quit (Read error: 145 (Connection timed out)).
20:43:26 -!- ivan`_ has changed nick to ivan`.
22:16:24 -!- Asztal has joined.
22:34:48 -!- oklopol has quit (Read error: 54 (Connection reset by peer)).
22:34:54 -!- okokoko has joined.
22:39:47 -!- Asztal has quit (Read error: 104 (Connection reset by peer)).
22:49:13 -!- ivan`_ has joined.
22:54:10 -!- oerjan has quit ("Good night.").
22:55:30 -!- ivan` has quit (Read error: 104 (Connection reset by peer)).
22:55:30 -!- ivan`_ has changed nick to ivan`.