←2009-11-29 2009-11-30 2009-12-01→ ↑2009 ↑all
00:00:29 <mycroftiv> overall though i think how rio handles the shell is certainly far more rational than the TTY emulation behavior we are used to in *nix
00:03:47 <pikhq> TTY emulation is by no means considered rational. It's just a historical artifact.
00:03:56 <mycroftiv> right, which is why plan9 ditches it
00:04:00 * pikhq nods
00:05:14 <mycroftiv> ehird: btw if you are interested in persistence, i have done some simple things towards the goal of better plan9 persistence, in particular a 9p fs that can be used for 'screen' like purposes and a version of rio modified to use it
00:35:42 -!- BeholdMyGlory has quit (Remote closed the connection).
00:40:30 <ehird> back
00:40:51 <ehird> tty emulation is the most retarded thing ever
00:41:01 <mycroftiv> yup
00:41:02 <ehird> mycroftiv: i saw that on 9gridchan i think
00:41:10 <ehird> mycroftiv: do not call it screen
00:41:19 <ehird> screen is for running multiple terminals in one
00:41:21 <ehird> and split screen
00:41:24 <ehird> detaching is a side feature
00:41:27 <ehird> i was confused when reading it
00:41:37 <ehird> say screen's detach feature or http://dtach.sourceforge.net/
00:41:39 <mycroftiv> it does multiple terminals in one fs also
00:41:44 <mycroftiv> but not 'terminals'
00:42:06 <mycroftiv> its shells, its actually buffering/multiplexing file descriptors is all really
00:42:45 <ehird> multiplexing is not something that belongs inside
00:42:49 <ehird> it is something that belongs outside
00:42:55 <mycroftiv> inside vs outside what?
00:43:37 <ehird> http://jtomaschke.blogspot.com/2009/02/plan9-ac97-driver-bug.html see in my os the process would just crash! :P
00:43:42 <ehird> mycroftiv: the detacher
00:43:56 <ehird> isn't detaching just >f <f anyway
00:44:31 <mycroftiv> as a matter of fact the detaching *IS* done from outside, because the structure is that the hubfs backend is just a file descriptor multiplexor, it doesnt even know what a shell is
00:44:49 <ehird> meh
00:44:51 <mycroftiv> then the hubshell client program is what understands how to make hubs as files and connect them to a shell and attach/detach
00:44:53 <ehird> i said multiplexing
00:44:54 <ehird> not detaching
00:45:26 <ehird> inferno is an rtos isn't it
00:45:36 <oerjan> multihatching
00:45:39 <mycroftiv> what hubfs itself does is just provide a capacity to make named pipes that can have multiple readers/writers and random access
00:47:50 * SimonRC goes
00:48:09 <mycroftiv> inferno? real time? i dont think so
00:48:15 <ehird> thought it was
00:48:23 <ehird> mycroftiv: how do you feel about stupid programs and traditional shells working badly with non-lowercase-without-spaces filenames? i think it's made naming more awkward for some things
00:48:56 <mycroftiv> sure filesystem name limitations (apart from certain sanity conventions) are always annoying
00:48:57 <ehird> btw i think my preferred rc scrolling behaviour would be that it'd up to the program, but i understand that's not feasible
00:49:11 <ehird> e.g. ls/lc if the directory is big would stop scrolling, man always would
00:49:14 <mycroftiv> well actually it is - the program can write to its own window to set that i believe
00:49:20 <ehird> like how mail sets the terminal into hold
00:50:30 <mycroftiv> call it 'the shell' not the terminal to get into the plan9 naming scheme
00:50:46 <mycroftiv> since the 'no tty' is pretty fundamental
00:56:27 <ehird> blah blah blah
00:56:34 <ehird> mycroftiv: rio is the terminal running the shell
00:56:38 <ehird> rc, the shell, can't do that
00:56:43 <ehird> rio has a window with rc in it
00:56:44 <oerjan> no tty is nutty
00:56:46 <ehird> therefore i deem it the terminal
00:57:04 <ehird> i could call it "window", but i'm being explicit that it's not like a window running acme, it's pure text
00:57:07 <ehird> so there
00:59:43 <mycroftiv> well, obviously everyone can define their "term"s how they choose
01:00:11 <ehird> give me a better, more appropriate name for a rio text window and I'll use it
01:00:21 <mycroftiv> rc window, shell window, rio window ?
01:00:31 -!- oerjan has quit ("leaving").
01:00:41 <ehird> rio windows can run graphical programs like sam and acme, and behave differently in that case
01:00:49 <ehird> it doesn't have to be rc, it can be any program
01:00:52 <ehird> ditto for shell window
01:01:03 <ehird> also, they're quite verbose.
01:01:41 <mycroftiv> i said you can define stuff how you want, the conventional plan9 usage is different, but im not one to argue such things, it doesnt bother me
01:02:04 <ehird> yes, but i want to use a more plan9 term if i can
01:03:36 <mycroftiv> well, in the exact context you used, since you were talking about running the mail program, 'rio window' or even just 'rio' would probably replace terminal in standard plan9-talk
01:05:37 <mycroftiv> the plan9 standard lexicon maps 'terminal' strongly onto 'the physical machine with the display and keyboard/mouse devices'
01:05:38 <ehird> i just realised that 90% of the difficulty of Snake is the horrible mobile buttons, not the actual difficulty of the game
01:05:39 <ehird> i am humbled
01:06:01 <ehird> 9% is really stupid slipups caused by not thinking for a second
01:06:05 <ehird> and 1% is actual hard situatinos
01:06:07 <ehird> *situations
01:06:42 <ehird> mycroftiv: so is a separate fileserver/cpuserver worthwhile nowadays?
01:06:54 <mycroftiv> i like the modular set up yes
01:07:03 <ehird> why?
01:07:28 <mycroftiv> several reasons - it facilitates abstraction away from the hardware is the most basic I guess
01:07:36 <mycroftiv> it makes some admin tasks much easier
01:07:54 <mycroftiv> enhances reliability if you have a well designed system
01:07:55 <ehird> how does it facilitate that? what admin tasks and how?
01:08:10 <ehird> i don't see plan 9 crashing much :P
01:08:44 <mycroftiv> i have good luck with uptime on physical hardware also, my qemu VMs are not really 'enterprise grade' in terms of uptime *cough*
01:09:04 <mycroftiv> thats qemu fault not plan9, but still something ive had to grapple with in design
01:09:30 <ehird> it seems to me like file servers made sense when hardware was slow
01:09:36 <ehird> since the file server would be doing a lot of work, etc
01:09:42 <ehird> in the 90s
01:09:44 <mycroftiv> i guess i will give you the most direct example - the gridtoolsplus linux toolkit that i host, which has a full modular setup set up as a venti-based clown car
01:09:52 <ehird> but with the much beefier, affordable hardware today, combining the file and cpu servers seems rational
01:10:00 <mycroftiv> you start the venti, and all the clowns (plan 9 vms) pop out of the car, and then ride around on the car
01:10:07 <ehird> mycroftiv: this metaphor is
01:10:08 <ehird> strained
01:10:39 <mycroftiv> and it distributes the functions between the linux host running venti in p9p, a qemu VM running fossil, a qemu VM running as cpu server, and a drawterm terminal in the host os - and you can then distribute those however you want
01:10:55 <mycroftiv> if you want to run venti on one machine, fossil on another, cpu on another, term on another, the same pieces work transparently across the network
01:11:14 <ehird> mycroftiv: i like how you spontaneously dropped the metaphor
01:11:47 <mycroftiv> you dont want a clown based extended metaphor of plan9 grids
01:12:10 <ehird> why clowns, exactly? just curious
01:12:39 <mycroftiv> because of the clown car thing - the gridtools are distributed as venti data and minimal p9p venti binaries and scripts to start venti, then extract the VM images, which boot and then use the venti as backing store
01:12:52 <mycroftiv> so the idea of packing objects as small as possible is relevant
01:12:59 <mycroftiv> because that works because of the way venti does deduplication
01:13:09 <ehird> i love how confusing you are.
01:13:30 <mycroftiv> you can fit a lot of clowns (vm images) inside a snapshot of venti data
01:13:37 <ehird> stop it it hurts :|
01:13:49 <mycroftiv> you were teh one who complained when the metaphor stopped before
01:14:12 <mycroftiv> ehird: ok serious answer
01:14:14 <ehird> i didn't complain
01:14:31 <mycroftiv> separating file and cpu server means that you can boot multiple cpu servers from the same file server
01:14:38 <mycroftiv> this does a huge amount of your clustering work 'for you'
01:15:05 <ehird> plan 9 system = {file server, cpu server+, terminal+}
01:15:05 <mycroftiv> because each independent cpu is going to see the same static file data namespace from the fossil (prior to whatever local customizations on that cpu bootup you make etc etc)
01:15:06 <ehird> correct?
01:15:25 <ehird> add cpu servers for MOAR SPEED, more terminals for uh... more people... i guess
01:15:26 <mycroftiv> add venti server for archival
01:15:35 <ehird> that's included in file server by my hand-waving powers.
01:15:37 <mycroftiv> but you can run fossil without venti so that set you gave is a possible subset
01:15:53 <ehird> plan 9 system = {file server, venti server?, cpu server+, terminal+}
01:16:06 <mycroftiv> you can use multiple file and venti servers also
01:16:11 <ehird> add a venti server for archival, add cpu servers for more power, add terminals for, well, lots of things
01:16:13 <ehird> mycroftiv: >_<
01:16:22 <mycroftiv> not needed, but its all modular
01:16:40 <mycroftiv> you can freely bind whatever resources wherever so any number of each component can be used 'sanely' pretty much
01:17:01 <mycroftiv> its true that you generally think you have one huge venti, maybe a couple file servers, then a bunch of cpus, and terms for each user
01:17:04 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
01:17:25 <mycroftiv> but i like using multiple ventis personally, thats actually part of what gives me ultra reliability
01:18:02 <Pthing> man, multiple ventis
01:18:02 <mycroftiv> you can boot the same fossil from multiple ventis if you have replicated the data blocks, which will be auto deduped so its basically penalty free
01:18:05 <Pthing> that is a lot of caffeine!!!!!
01:18:13 <Pthing> you must have the sh*ts a lot!!!!
01:18:34 <Pthing> oh wait
01:18:34 <ehird> Pthing is the weirdest person in here
01:18:38 <Pthing> i thought I was in #defocus
01:18:40 <Pthing> my apologies
01:18:51 <ehird> i think he has bipolar
01:22:18 <olsner> someone should make a pun on bipolar bears
01:22:46 <olsner> http://uncyclopedia.wikia.com/wiki/Bipolar_bear
01:23:57 <Pthing> that was quick
01:24:08 <ehird> quite
01:24:55 <mycroftiv> That disorder sucks, but not as bad as having paranoid schgrizzlyphrenia
01:25:06 -!- puzzlet has joined.
01:28:40 <ehird> mycroftiv: g r o a n
01:30:12 <ehird> i find it interesting how you can cat directories
01:30:22 <mycroftiv> i wish the format for dir files was plaintext
01:30:40 <mycroftiv> really cat of a dir should be about the same output as ls of a dir just not as nicely formatted
01:31:18 <ehird> ls of a dir isn't nicely formatted
01:31:21 <ehird> it's just a list of names :P
01:31:28 <ehird> so is that the actual directory structure?
01:31:32 <ehird> as in
01:31:37 <ehird> is it just a file along with the dir structure
01:31:43 <ehird> or is it actually the directory itself
01:32:16 <mycroftiv> unix and plan9 have always used files to represent the directory structure, its not 'the directory itself' as you mean it
01:32:38 <mycroftiv> see k & r c book for a nice simple traditional look at it
01:33:02 <ehird> what i'm trying to say is
01:33:03 <ehird> readdir and shit
01:33:05 <ehird> do they look at that
01:33:10 <ehird> or something else
01:34:14 <mycroftiv> dirstat fills a dir structure with information from the directory file
01:34:53 <ehird> could a simple yes/no be given
01:35:27 <mycroftiv> hmm, not when im not sure i fully understand the question, i generally try to give a solid related fact
01:35:46 <mycroftiv> some things, like ls, stat every file in a directory
01:37:01 <mycroftiv> dirread is like ls in that regard
01:37:14 <mycroftiv> well, it goes one at a time according to the manpage
01:37:44 <ehird> of course i know that
01:37:45 <ehird> what i mean is
01:38:00 <ehird> mycroftiv: some background — the actual directory itself is a list of files. yes?
01:38:03 <ehird> that is what a directory is
01:38:09 <ehird> thus, if you have a directory, this must be stored somewhere
01:38:20 <ehird> when you cat a directory, is that where this is actually stored, or is it just generated from it?
01:38:22 <ehird> i.e.
01:38:27 <ehird> the functions that look at directories
01:38:30 <ehird> do they get it from the directory file
01:38:31 <mycroftiv> that is the actual file that stores the information
01:38:34 <ehird> or some metadata in the filesystem?
01:38:45 <ehird> mycroftiv: ok. then my objection to making it more plaintext is that it'd be more inefficient to parse
01:38:58 <mycroftiv> yes, its obviously done the way it is for efficiency and space and optimization
01:39:55 <ehird> mycroftiv: i mean, as much as i talk about doing everything as a 9p server
01:39:58 <ehird> i'm really worried it'll be dog slow
01:40:49 <mycroftiv> well, for what kind of tasks?
01:41:19 <ehird> everything
01:42:04 <mycroftiv> i guess i was assuming this kind of design wouldnt be suitable for something like 3d gaming/multimedia focused use
01:42:25 <ehird> passing a struct pointer to a function and the like will always be faster than going through indirection to find the relevant server for that filename, composing a message, sending it, waiting for the server to compose a response, receiving it and parsing it.
01:42:33 <ehird> mycroftiv: well duh
01:43:41 <mycroftiv> sure, using 9p on top of plan 9 (and then obviously especially via a network0 means you have a lot of layering
01:43:54 <ehird> well just a local network
01:43:56 <ehird> as in sockets
01:44:06 <ehird> writing to a file's the same, pretty much
01:44:11 <ehird> or reading
01:44:13 <ehird> i mean
01:44:15 <ehird> thaht's the process i gave
01:44:17 <ehird> *that's
01:44:58 <ehird> reading from a 9p file: find the relevant server, compose a message, IPC it, wait for the 9p server, IPC back the response, parse it
01:45:06 <ehird> vs
01:45:07 <mycroftiv> 9p synthetic fses on lan are pretty fast tho really
01:45:16 <ehird> following a function pointer to the device's relevant function, like getchar
01:45:19 <ehird> calling it
01:45:29 <ehird> think it's obvious which will be faster by far
01:45:41 <ehird> (that is (*kb->getchar)())
01:46:03 <mycroftiv> i dont disagree with that but dont forget that in standard computer usage you wait for the disk drive etc, you dont waint for the function pointers to be referenced
01:46:11 <mycroftiv> s/waint/wait/
01:47:10 <ehird> ssd :P
01:47:13 <ehird> i agree, but
01:47:16 <ehird> this whole cluster stuff
01:47:22 <ehird> is mainly useful, I think, for large computations
01:47:25 <ehird> rather than little tasks
01:47:34 <ehird> you don't need a cluster for things that don't require mainly computation
01:47:59 <mycroftiv> i use it for redundancy and hardware independence, not much heavy duty computation
01:48:18 <ehird> have you ever ran into a failure where the cluster saved you
01:48:22 <mycroftiv> several times
01:48:43 <ehird> you being stupid or a genuine error
01:49:19 <mycroftiv> um, most common scenario is power failure i guess, i only have my servers on uninterruptible power supplies
01:49:36 <ehird> how would i detect if something is a directory in rc?
01:49:45 <ehird> power failure, how minor
01:49:47 <mycroftiv> its a flag to test
01:49:53 <ehird> the fix for a power failure is turning them back on again
01:49:58 <ehird> mycroftiv: ~ you mean?
01:50:02 <mycroftiv> well, power failure isnt 'minor' in terms of potential data loss and disruption
01:50:08 <ehird> omg, plan 9 has test, how ununixy :)
01:50:11 <ehird> i was expecting
01:50:13 <ehird> isdir(1)
01:50:14 <ehird> etc
01:50:54 <ehird> file $dir also works btw
01:51:18 <mycroftiv> a power failure that brings down a box is functionally equivalent to temporary 'complete destruction' and can also cause undesirable data or filesystem corruption
01:51:47 <mycroftiv> UPS are considered absolutely required for datacenters for a reason
01:52:07 <ehird> shrugg
01:52:11 <ehird> if(file / | awk '{exit(!$2=="directory")}')
01:52:18 <ehird> ↑ far more elegant than test yo :P
01:53:38 <ehird> so I just bound every directory in / to /
01:53:39 <ehird> mwahaha
01:53:41 <ehird> (as in bind -a)
01:53:50 <ehird> hey, there's .links
01:53:53 <ehird> dunno where it really is of course :P
01:54:04 <mycroftiv> thats quite a union
01:54:17 <ehird> mycroftiv: i'd have preferred to bind every directory in the system to /
01:54:21 <ehird> but hey, this works
01:54:30 <ehird> mycroftiv: wow, there can be multiple files with the same name in a directory with bind
01:54:34 <ehird> creepy
01:54:46 <ehird> ls | wc -l → 933
01:54:59 <mycroftiv> of course, and the -a vs -b flags to the binds determine which will actually be loooked up
01:55:26 <ehird> I did:
01:55:38 <ehird> for(x in `{ls /}) if(test -d $x) bind -a $x /
01:56:41 <mycroftiv> oh btw let me give you a really important tip
01:56:46 <mycroftiv> window -m is your friend
01:56:55 <mycroftiv> that pops up a new window in the identical namespace
01:57:12 <mycroftiv> so if you do a bunch of complicated binds you can clone the environment easily
01:57:17 -!- calamari has joined.
01:57:22 <mycroftiv> also of course then starting a sub rio means all the new windows in it will inherit them
01:57:26 <ehird> oh yeah, it's per process
01:57:30 <ehird> that's why everything didn't break.
01:58:45 <ehird> does anyone actually used the monospaced fonts to code in plan 9? it seems unnecessary
01:59:08 <mycroftiv> im sure some people do, acme default works ok for me though
02:00:53 * ehird looks at the fonts man -P gives again and sighs
02:00:56 <ehird> such wasted potential! :P
02:05:10 <ehird> "I saved a million-ish dollar new business pitch with the arcane knowledge that Apple's old ADB cables (of which I had oodles in my departments' storage closet) actually worked as SVideo cables."
02:05:10 <ehird> not so much worked as as werer...
02:05:11 <ehird> *were
02:09:43 -!- enikdu has joined.
02:10:05 -!- enikdu has left (?).
02:14:59 <ehird> short visitor
02:18:32 <mycroftiv> hey ehird hes an example i hope you like of network transparency and synthetic filesystems - by importing a namespace across the network my customized rio can open its new windows as remote persistent shells
02:18:51 <ehird> Hmm.
02:19:06 <ehird> That breaks usual rio semantics — New creates a new shell, Delete terminates it.
02:19:19 <mycroftiv> its additional menu options, i didnt change the behavior of New
02:20:34 <ehird> http://lambda.nirv.net/m/screenshots/20080807/montage.png ;; six fucking monitors?!
02:20:41 <ehird> mycroftiv: What are the additional options?
02:20:59 <ehird> Do the persistent windows have, say, a different background to mark that they're only a "view" onto the actual shell?
02:21:22 <mycroftiv> ehird: i put it on sources in my unreleased dir - no, i didnt mark them graphically
02:21:30 <mycroftiv> the prompt is usually the cue
02:21:44 <ehird> No, that's a cue for the machine, not the persistency; they have different semantics to normal rio windows.
02:21:51 <ehird> What are the extra menu items called?
02:21:58 <ehird> I think it's a cool idea, just with some possible pitfalls.
02:22:12 <mycroftiv> one is 'Hub' which connects to whatever is bound to /n/hubfs
02:22:33 <mycroftiv> the other is a command arg that you can actually set to whatever you want - its acme by default but i usually set mine to run hubshell on a different mounted hubfs
02:22:57 <mycroftiv> it doesnt change the windows, just what app is run in them really
02:22:59 <ehird> Ooh, better than changing the background would be changing the border colour. Is that possible?
02:23:01 <ehird> I'd make it purple.
02:23:06 <ehird> mycroftiv: Still.
02:23:20 <ehird> If I Delete a window, I expect it all to be gone, usually.
02:23:21 <mycroftiv> i actually did add in rio color theming options now that you mention it, but they arent correlated to the additional hubfs persistence stuff
02:23:25 <mycroftiv> the window is gone
02:23:33 <mycroftiv> but all the window was doing was connecting to a preexisting process
02:23:46 <mycroftiv> so its not any different than any background daemon or what have you
02:24:09 <ehird> Yeah, but I still think it'd catch me off guard.
02:24:23 <ehird> Start an intensive process, give up on it and so Delete it... and yet...
02:24:24 <mycroftiv> interesting that i got the idea from you pretty much ;)
02:24:32 <ehird> huh, really? xD
02:24:36 <ehird> howso
02:24:48 <mycroftiv> your general talk of how great persistence was and how it was central to your os design
02:24:55 <ehird> oh so not recent
02:24:56 <ehird> coolio
02:25:04 <ehird> yeah persistence is awesome
02:25:09 <mycroftiv> so to me the idea of making 'everything' persistent by default is appealing
02:25:22 <ehird> mycroftiv: i have a challenge for you
02:25:52 <mycroftiv> uhoh
02:25:55 <ehird> :-D
02:26:00 <ehird> i just like shoving my ideas onto other people
02:26:06 <ehird> who i believe are more knowledgable
02:26:41 <mycroftiv> it better be plan9 or music theory related or i dont fit that category
02:26:45 <ehird> plan 9
02:27:12 <ehird> write a program that takes a pid. it writes what we will call X to stdout or a specified file. Now, let's say we reboot the machine and the process is no longer running. We run the other program and give it X as input. The process tree is recreated and the processes continue from where they left off, with all their allocated and static memory intact.
02:27:23 <ehird> (BORING BABY WUSS VERSION: Make it work on only single processes without children)
02:27:30 <mycroftiv> oh yeah good idea
02:27:35 <ehird> caveat: this is probably quite hard
02:27:39 <mycroftiv> thats also equivalent to process migration between systems also
02:27:42 <ehird> yep
02:27:44 <mycroftiv> that comes for free with the other
02:27:52 <ehird> mycroftiv: don't bother making it architecture-independent, obviously
02:27:57 <mycroftiv> well let me outline my roadmap
02:27:58 <ehird> that'd be near-impossible
02:28:08 <ehird> mycroftiv: I would suggest that the first step is to find a way to get the kernel to stop running a process
02:28:13 <ehird> but keep it alive
02:28:15 <mycroftiv> ill only be doing anything like that *after* I finish a general plan9 GUI persistence layer than can multiplex and detach rio sessions
02:28:16 <ehird> so that you have a consistent state
02:29:26 <mycroftiv> you can already control a process pretty well and save a lot of state with the debugger
02:29:43 <ehird> right, but not to the same degree
02:30:05 <mycroftiv> yeah i know
02:30:10 <mycroftiv> but thats a good place to start
02:30:24 <mycroftiv> no need to reinvent the wheel on the basics of manipulating process state
02:30:34 <ehird> hmm, i've thought of one issue
02:30:50 <ehird> the next time it runs, the memory it uses may be in use
02:30:54 <ehird> and thus all the pointers would have to change
02:31:02 <mycroftiv> that is just one of a lot of issues
02:31:05 <ehird> and you can't tell between a pointer and an integer with the same value, obviously
02:32:18 <ehird> i think the basic steps in the process are: freeze the process, save the machine code, save the instruction pointer (make it relative to the start of the code to fix up later), save the registers, go through each allocated block of memory and save it, magic pointer munging, unfreeze the process
02:32:21 <mycroftiv> i actually got into a discussion of some similar concepts based around the idea of actually versioning everything, so you could rewind a process, even
02:32:30 <ehird> oh
02:32:36 <ehird> and dsome extra stubs for reopening files
02:32:38 <ehird> *some
02:32:47 <mycroftiv> version all the memory it touches and and record all its operations
02:32:57 <ehird> i.e., take note of all open files/sockets/what have you, and make the unthawer run that before restoring
02:33:02 <ehird> the cool thing is, if it doesn't destroy the process
02:33:07 <ehird> you can take snapshots of processes
02:33:11 <ehird> and indeed, like you said, rewind to a degree
02:33:28 <ehird> like, if you're playing a text adventure game without a save feature
02:33:37 <ehird> snapshot it to disk before making a game-changing decision
02:33:39 <ehird> you lose
02:33:40 <ehird> unsnapshot it
02:33:43 <ehird> in fact, mycroftiv
02:33:45 <ehird> you could clone processes
02:34:04 <ehird> 9term% freeze 348 | thaw
02:35:19 <mycroftiv> yeah actually another project prior to doing kernel level process manipulation is my grid/task system that exists further up the stack
02:35:27 <ehird> whoa, cloning processes would be so awesome
02:35:46 <ehird> i'd add a Clone action to rio :)
02:35:54 <ehird> oh wait, shit
02:36:03 <mycroftiv> its funny you say that, i have my standard 'hacked together equivalent' running right now
02:36:06 <ehird> you'd have to save the contents of /dev/cons and /dev/draw and even /dev/mouse to do that effectively
02:36:10 <ehird> to get a real clone
02:36:11 <ehird> argh :P
02:36:15 <mycroftiv> yes, im aware
02:36:16 <ehird> how about just save the entire namespace :D
02:36:24 <ehird> all files in it
02:36:30 <ehird> mycroftiv: how does your hacked up one work?
02:36:41 <ehird> btw is there a p9 binary that lets you point-'n-click a window and it prints its pid?
02:36:47 <mycroftiv> oh its pretty crude but its amusing, its still in the land of all my rc stuff
02:37:11 <mycroftiv> what i have is a hubfs as my persistent shell but its got shells on two different machines that are reading the same input file descriptor
02:37:29 <ehird> ah well of course my clone would make them separate
02:37:33 <mycroftiv> so the commands i type in my persistent shell are executed on two cpu server but they have a parallel environment
02:37:38 <ehird> sort of like a fork that keeps the past
02:38:01 <ehird> On operator precedence: "The proof that it's a bad idea is the fact that you can take any used copy of K&R, drop it on its spine, and it will open to page 53, with the precedence table."
02:38:46 <mycroftiv> hm, mine opens differently
02:39:05 <ehird> i didn't write that
02:39:07 <ehird> just thought it was funny
02:39:41 <mycroftiv> id say the 'greatest spine-break hits' are maybe the section on complicated declarations and dirdcl program
02:39:53 <mycroftiv> stuff on structures/unions/typedef
02:39:56 <ehird> see, my solution to complicated c declarations
02:39:59 <ehird> is to not write them in the first place
02:40:10 <mycroftiv> exactly
02:41:41 <ehird> A STUPID IDEA: Multiple, separate keyboard support!
02:41:48 <ehird> One rio window listens to one, another listens to another.
02:41:51 <ehird> NEVER THE TWAIN SHALL MEAT
02:41:57 <ehird> s/EA/EE/
02:42:17 <mycroftiv> you can already do that
02:42:27 <mycroftiv> just import the '#c' from a different machine
02:42:33 <ehird> but can you read from the two separately in one process?
02:42:39 <coppro> mm... MEAT
02:42:48 <ehird> you know, i make a lot of structs pointers unnecessarily just to avoid the hideous s.a syntax
02:42:53 <ehird> foo->bar vs foo.bar
02:42:58 <ehird> the former is much more C
02:43:14 <mycroftiv> well i guess id run two separate rios for that, not have one rio splitting kbs, i see what you mean
02:43:28 <mycroftiv> however no reason you cant change the local reference within a given window
02:43:54 <ehird> i wonder how un-clike it is to unify -> and .
02:44:10 <ehird> i.e. just make -> be the same as . now, except that a pointer-to-struct is automatically dereferenced if you try and access a member
02:44:34 <ehird> mycroftiv: can you have /dev/consa and /dev/consb each from a different machine?
02:44:38 <ehird> and access both in one process
02:45:09 <mycroftiv> erm, sort of, maybe not in exactly the way you want to
02:45:18 <ehird> as in
02:45:19 <mycroftiv> i mean, they are just files, you can obviously read the files
02:45:21 <ehird> right
02:45:24 <ehird> that's what i meant
02:45:26 <ehird> *i meant
02:45:33 <ehird> any opinions on that . -> unification?
02:46:05 <mycroftiv> uhm, well the problem is how does anything know if you want the value or the reference?
02:46:29 <ehird> i just realised i've been using ksh for weeks
02:46:32 <ehird> cool
02:46:37 <ehird> mycroftiv: explain
02:46:42 <ehird> i'll restate my new semantics
02:46:45 <ehird> ok, pretend -> doesn't exist
02:46:50 <ehird> pretend there's just . as it is now
02:46:51 <ehird> however
02:46:59 <ehird> . is renamed to ->
02:47:00 <ehird> and
02:47:14 <ehird> if the left operand of -> is a pointer to a struct, it is automatically dereferenced
02:47:41 <ehird> cool, plan 9 bc is written in yacc
02:48:22 <mycroftiv> i kind of agree, in practice i think you find most stuff ends up being written as -> anyway for fairly obvious reasons
02:48:42 <mycroftiv> in the sense of people choosing to organize their datastructures primarily via pointers
02:50:31 <Gracenotes> oh, grrr, I was trying to grep through a gzipped file, but I forgot the -c option to gunzip. Then I was wondering why my hard drive was 224MB more full, and the grep had no results :/
02:51:28 <ehird> mycroftiv: yah, but e.g. if you have a global structure
02:51:33 <ehird> it's bad to have it be a pointer
02:51:38 <ehird> but you do it anyway
02:51:42 <ehird> because otherwise it's so ugly
02:51:49 <ehird> however, automatic dereferencing seems un-Clike
02:51:56 <ehird> the only similar thing is automatic array→pointer conversion
02:52:09 <mycroftiv> you know plan9's access shortcut right?
02:52:13 <ehird> Gracenotes: gunzip is horrible how it does that
02:52:15 <ehird> mycroftiv: what is it?
02:52:17 <ehird> oh
02:52:21 <ehird> the unnamed structs/unions?
02:52:31 <mycroftiv> yeah
02:52:31 <ehird> that you can use for composition/pseudo-inheritance too?
02:52:32 <ehird> yeah, old hat.
02:52:38 <pikhq> ehird: It doesn't seem like *that* big of a deal, though, because anything other than automatic dereferencing would be... Wrong.
02:52:48 <Gracenotes> ehird: compression tools in general that assume that you want "in-place" in/deflation
02:52:53 <pikhq> (if you had but one operator)
02:53:03 <ehird> pikhq: well, yes, but the question is should you have one operator
02:53:11 <ehird> Gracenotes: anything that assumes you want in-place anything
02:53:46 -!- sunrider has joined.
02:53:46 <ehird> mycroftiv: does rc have any syntax to tie two programs together? that is, the first program writes to the second and also reads from it
02:53:52 <ehird> and vice-versa for the other
02:53:57 <ehird> if it does, you could do
02:54:14 <ehird> 9term% inplace foo.gz <|> ungzip
02:54:25 <ehird> so inplace would read foo.gz and feed it to ungzip
02:54:34 <ehird> then read what ungzip outputs, and write it to a temp file
02:54:39 <ehird> then move the temp file to foo.gz
02:54:49 <ehird> kinda pointless, but still fun
02:54:58 <mycroftiv> well rc can do nonlinear pipelining but im not sure that particular example is sane
02:55:08 <ehird> mm :P
02:55:13 <ehird> esp because of the .gz you get in result
02:55:30 <mycroftiv> if you want crazy pipelining use hubfs, thats what i wrote it for
02:55:42 <mycroftiv> it surpasses your wildest i/o fantasies, i guarantee it
02:55:53 <ehird> but does it require a... hub
02:55:59 <mycroftiv> the Final Boss of named pipes
02:57:31 <ehird> does plan 9 let you allocate memory beyond (ram+swap), and then go on a murderous rampage if you try to use it?
02:57:33 <ehird> thought not
02:57:35 <ehird> lollinux
02:57:58 <pikhq> *sigh* Such a stupid idea from Linux.
02:58:08 <mycroftiv> i dunno how plan9 deals with oom other than apps having error handling and usually quitting when they cant malloc, dunno what the kernel itself does
02:58:13 <pikhq> Is it so hard to make malloc just return NULL on OOM?
02:58:37 <ehird> pikhq: seriously, if you suggest that to them they go on about how it's not the process's fault
02:58:42 <ehird> as if it'll get offended or something
02:59:00 <pikhq> ehird: ... Murder.
02:59:08 <ehird> "BUT WHAT ABOUT IMPORTANT THINGS THAT SHOULDN'T EXIT" — yes, that common real-world situation of requiring shit to still run when you're out of memory.
02:59:13 <ehird> happens all the time on critical servers.
02:59:35 <pikhq> The things that really truly shouldn't exit will have OOM handlers that won't exit.
02:59:50 <pikhq> If malloc returns NULL, that is.
02:59:51 <coppro> it happens in real life too. People suffer from inconvenient assassinations sometimes
03:00:16 <ehird> coppro: no, seriously, no critical server is running properly on a system that's out of memory
03:00:19 <pikhq> Of course, with the OOM killer, things that really truly shouldn't exit MIGHT GET KILLED BECAUSE SOME OTHER PROCESS MALLOCED EVERYTHING.
03:00:23 <ehird> putting it out of its misery will not make the situation any worse
03:00:29 <ehird> and might make it easier to recover from
03:00:30 <ehird> due to, you know
03:00:32 <ehird> freeing up memory
03:00:38 <ehird> when it exits
03:01:14 <ehird> pikhq: I do think overcommitting is logical in one case though
03:01:15 <ehird> mmap
03:01:15 <pikhq> ehird: And maybe giving a useful error message when that happens.
03:01:24 <ehird> since it's irrelevant how big it is
03:01:24 <pikhq> Yes, overcommiting with mmap is logical.
03:01:28 <ehird> it's on disk
03:01:33 <ehird> however
03:01:35 <pikhq> That is, in fact, half the point of mmap.
03:01:39 <ehird> if you do mmap without a backing file, I'm not sure
03:01:46 <ehird> that mandates it'll be in memory
03:01:53 <ehird> so maybe returning NULL if there's no backing file is logical
03:02:00 <ehird> (and it's >(ram+swap))
03:02:34 <pikhq> Does any program actually depend on the Linux overcommiting behavior?
03:02:42 <ehird> for mmap to memory?
03:02:43 <ehird> sbcl
03:02:50 <pikhq> No, for malloc.
03:02:54 <ehird> it allocates a gigantic (multi-gig) heap with mmap
03:02:59 <ehird> pikhq: not that i know of
03:03:01 <ehird> that would be retarded
03:03:07 <pikhq> Yes, I know.
03:03:25 <ehird> you only need to do larger-than-memory allocations if you know they'll only be actually allocated when used
03:03:26 <ehird> i.e. mmap
03:03:39 * pikhq nods
03:03:54 <ehird> if you don't need to use sbcl you can disable overcommitting with one write to /sys
03:04:09 <ehird> mycroftiv: is it possible, with rio, to insert some graphical stuff next to some text in a shell window
03:04:12 <ehird> but keep it a text wiwndow
03:04:14 <ehird> *window
03:04:15 <pikhq> Amusingly, if I ran 32-bit, then >(ram+swap) allocations would be impossible.
03:04:17 <ehird> think little sparkline graphs
03:04:21 <pikhq> (not enough address space)
03:04:25 <ehird> inside mostly textual output
03:04:44 <ehird> i'm seriously considering just not supporting swap in my os
03:05:00 <ehird> even with my paltry 2.5 GiB of RAM (lol), eh
03:05:02 <mycroftiv> ehird: on a technical level, sure, drawing to the window is very simple and direct
03:05:09 <ehird> every time a system uses swap its gui goes down the shitter anyway
03:05:15 <ehird> mycroftiv: right, but cooperating with scrolling and stuff
03:05:32 <mycroftiv> hmm not as sure on that
03:05:39 <mycroftiv> i would suspect not
03:06:02 <mycroftiv> im pretty sure rio handles the rc window scrolling by moving around the view it maintains of a text buffer backscroll
03:06:40 <ehird> how about in acme?
03:06:53 <ehird> because it would be totally awesome to have intermingling graphics/text like that
03:07:03 <ehird> blurring the lines between a textual and graphical program
03:07:06 <mycroftiv> id look at how abaco does it
03:07:21 <mycroftiv> you cant do it naively but its not impossible to implement
03:07:49 <ehird> mm, i don't really like the "feel" of abaco though
03:08:10 <mycroftiv> well it has acme style windows and they display bitmap graphics so its very relevant to your question
03:08:15 <ehird> true
03:08:31 <mycroftiv> but fgb describes it as a hack i think
03:09:19 <ehird> mycroftiv: here's a really cool thing it could be used for:
03:09:19 <ehird> 9term% recentcommandswhatididexecute | rank
03:09:19 <ehird> ls 645 ==========================
03:09:20 <ehird> rm 100 =========
03:09:20 <ehird> etc
03:09:28 <ehird> where the lines are actually coloured rectangles
03:09:55 <ehird> the cool thing is that if you piped it to another program, the graph just wouldn't be there
03:10:01 <ehird> ok, ok, that's what the cat-v paper warned against
03:10:01 <ehird> but
03:10:08 <ehird> these graphical snippets wouldn't be accessible as text anyway
03:10:11 <ehird> so they're barely even "there"
03:10:14 <ehird> unlike ls columnating
03:10:54 <ehird> anyway, rank would just count the number of times each word appears in the input, sort by the top, and output the occurrences; then just an if(graphical) { magic inline graphics functions }
03:11:02 <ehird> would add a little spice to the command line
03:11:12 <ehird> also, I messed up my monospacing
03:11:14 <ehird> please excuse it
03:12:09 <mycroftiv> i agree graphical objects should be freely deployable
03:12:46 <ehird> i read a proposal to do that in linux by making a terminal that supported embedding X11 windows
03:12:52 <ehird> tiny little ones
03:12:59 <ehird> inline
03:13:22 <ehird> oh, and it'd mean you could view images without popping up a new window; that might be a bad usage though
03:13:28 <ehird> since piping would make no sense
03:14:51 <ehird> mycroftiv: if it weren't for sam and acme i'd be a skeptic of plan 9's graphics model to the max
03:15:09 <ehird> as opposed to something like acme that only shows rio terminals (so to speak), and having graphics inlined there
03:15:25 <ehird> ooh, i have an idea for the scrolling thing
03:15:45 <ehird> if you press shift+enter to send a command, scrolling is disabled until the next time you press enter
03:15:58 <ehird> i.e. enter = normal command, shift+enter = for man and long ls/lc listings and the like
03:16:46 <mycroftiv> you know escape for hold mode on off right?
03:16:56 <ehird> yeah
03:17:07 <ehird> but i find that scrolling only ever applies right before running a command with a lot of output
03:17:08 <ehird> erm
03:17:09 <ehird> no-scrolling
03:17:12 -!- augur has joined.
03:17:30 <ehird> ctrl+enter would probably be more plan 9, although keyboard shortcuts beyond ctrl+letter for text editing are un-plan9
03:17:34 <ehird> but i think this would be useful
03:18:09 <ehird> mycroftiv: food for thought: how does non-scrolling-inhibits-output interact with graphics? probably inhibits graphic display too
03:19:56 <ehird> heh, i started to have an idea then i realised i was going into ehirdos territory
03:20:57 <mycroftiv> hm - popping back to a previous question - looks like the bitmap issue is probably annoying in rc integration because of its use of libframe which seems to be text only in what it provides
03:21:11 <ehird> bollocks
03:21:31 <mycroftiv> this is just based on a very quick scan of the source code and glancing at a manpage though
03:22:11 <ehird> the idea, btw, was that if you started, say, games/catclock, and were on the prompt after (it still running, of course), you could drag the catclock (like dragging an acme drag handle) into a new space
03:22:38 <ehird> and it'd detach from the terminal, disappearing and leaving, like, an italic grey "moved to a (link: separate window)"
03:22:43 <ehird> clicking it would pointer-warp there
03:22:45 <ehird> i don't know
03:22:46 <ehird> i was just musing
03:23:17 <mycroftiv> back when i first heard about plan9 i assumed you could do cp /screen/1/window/1 /screen/2/window/2 and it would copy the window to the other screen
03:23:49 <mycroftiv> basically im hoping to hack that into place with rio multiplexing and persistence
03:23:50 <ehird> my brain immediately snapped back with the reasons why that doesn't work in plan 9's architecture, then i realised that was irrelevant to the idea that it should work
03:26:51 <ehird> the problem with ehirdos is that it's hard to define the boundaries
03:27:23 <ehird> i go all visionary, and then i realise "if i'm thinking this far i might as well just give up on ehirdos and wait for the singularity and its mind-control interfaces and near-infinite computing power"
03:27:24 <ehird> and then i backtrack
03:27:28 <ehird> and then i'm all grumble
03:27:30 <ehird> this is inferior grumble
03:27:31 <ehird> repeat
03:28:23 <mycroftiv> i know the feeling, which is why I have adopted the approach of small incremental work in Plan 9
03:29:47 <ehird> the problem is that doing any actual work on ehirdos feels wrong, because this design is meant to be perfect forever and ever
03:29:52 <ehird> so i just sit there designing how i'm going to design it
03:32:02 <mycroftiv> well remember any os at all is gonna be used to execute arbitrary code, so that means perfection is sort of irrelevant
03:32:18 <ehird> i read that statement and it is meaningless
03:32:25 <ehird> especially as there's no os/program distinction in ehirdos
03:32:27 <mycroftiv> no its not
03:32:31 <ehird> os is all the base software too
03:32:42 <ehird> besides, i have to create infrastructure
03:32:51 <ehird> infrastructure is like 70% of os design
03:33:06 <mycroftiv> because as soon as someone writes tetris for ehirdos, they are playing tetris, and tetris is tetris, and ehirdos isnt very relevant to that experience
03:33:37 <mycroftiv> whatever perfection/imperfection there is in tetris itself becomes predominant
03:34:03 <ehird> i don't base my os around tetris
03:34:13 <ehird> games are unique in that they don't really interact with other entities
03:35:29 <mycroftiv> i was just trying to point out that perfection isnt possible to deliver to the user because an OS is open-ended
03:36:35 <ehird> nothing is perfect except a single consciousness filling all existence constantly experiencing absolute bliss for eternity with nothing changing... and in fact that sounds like torture to me, so i can amend that to nothing is perfect.
03:36:48 <ehird> welcome to the world of hyperbole, where "perfect forever" doesn't actually mean that
03:37:55 <mycroftiv> well look at networking and network protocols - an os kind of has to deal with them, and they are obviously very far from perfect, so i think you have to focus on thinking pragmatically for some things
03:38:28 <ehird> am i supposed to say "ah, thanks, of course i'm an idiot and hadn't considered interaction with the outside world at all" now :)
03:39:13 <mycroftiv> i was really saying that because of the obvious segue to plan9 /net and stuff like ftpfs
03:39:55 <ehird> i know that the oberon os is basically acme os
03:40:20 <ehird> and the m.b.s guys were taking stuff from it
03:40:27 <ehird> maybe i should look into it
03:41:10 <ehird> technically acme is oberon os in a box
03:41:11 <ehird> but w/e
03:41:14 <ehird> (causality)
03:41:30 <ehird> The Oberon OS is available for several other hardware platforms, generally in no cost versions. It is typically extremely compact. Even with an Oberon compiler, assorted utilities including a web browser, TCP/IP networking, and a GUI, the entire package has been able to fit on a single 3.5" floppy disk. The version which runs on bare PC hardware is called Native Oberon.
03:41:35 <ehird> oh now that's just ridiculously compact
03:41:37 <ehird> stop showin goff
03:41:40 <ehird> *showing off
03:43:26 <mycroftiv> oberon is deceased isnt it?
03:43:42 <ehird> well the download is still available at least
03:43:43 <ehird> *at least
03:43:46 <ehird> http://www.oberon.ethz.ch/downloads/index
03:43:49 <ehird> you want the first native oberon one
03:44:00 <ehird> Current news on the current Oberon Releases at ETH are to be announced here:
03:44:01 <ehird> Dr. Felix Friedrich at ETH is currently writing the new Oberon Compiler which will be released in 2008.
03:44:01 <ehird> Ulla Glavitsch finished the work on the new A2 system garbage collection in July 2008.
03:44:01 <ehird> Sven Stauber has launched a new Oberon Forum (http://www.ocp.inf.ethz.ch/forum/).
03:44:02 <ehird> Information on the Oberon day 2009 will be announced here.
03:44:06 <ehird> doesn't sound too dead
03:44:09 <mycroftiv> huh
03:44:18 <ehird> i thought so too btw
03:48:09 <ehird> NIC: 3Com 3C509 Etherlink III or 3C905B FastEtherLink
03:48:09 <ehird> Dialup: Standard modem (not WinModem) with SLIP or PPP internet
03:48:09 <ehird> service provider
03:48:09 <ehird> Sound: Soundblaster
03:48:12 <ehird> Mouse: PS/2 or serial mouse (3-button recommended)
03:48:17 <ehird> Processor: 80386, Pentium or compatible
03:48:18 <ehird> Bus: ISA, EISA or PCI
03:48:18 <ehird> Memory: 4Mb
03:48:18 <ehird> Disk space: 3Mb
03:48:19 <ehird> this shit is oooooold
03:49:18 <mycroftiv> sounds like it
03:49:47 <ehird> i'm booted into oberon
03:49:50 <ehird> the text is tiny but i'm booted
03:53:14 <mycroftiv> i need to replenish my caffeine supply, i assume you are going to have an oberon<->losethos<-plan9->tunes protoype wired together in 10 minutes when i get back
03:54:00 <ehird> mycroftiv: more likely go to bed
03:54:07 <ehird> it's 4 am, i have to be up at ~9:40
03:54:51 <mycroftiv> in that case, write teh source code in dreams and sleep with a pencil between your toes to write it out via involuntary twitch signalling
03:55:10 <ehird> i like oberon already
03:55:18 <ehird> the installer is just a bunch of text files with executable commands
03:55:33 <ehird> it's like ... html shell scripts
03:57:21 <ehird> ok, it won't recognise my disk
03:57:34 <ehird> i'll pick this up tomorrow
03:57:43 <ehird> i think oberon has just totally changed my view of programming :P
03:57:47 <ehird> bye
03:57:55 -!- ehird has quit.
04:25:28 -!- puzzlet has quit (Read error: 60 (Operation timed out)).
04:26:50 -!- puzzlet has joined.
04:27:45 -!- calamari has quit ("Leaving").
04:31:40 -!- calamari has joined.
04:34:20 <Gracenotes> nyaaaaaaaa~
04:36:15 <pikhq> Gracenotes ha neko ni natta, ne...
04:37:00 <Gracenotes> nyaa nyaa pikhq nya nyaa nyaaa aru~
04:37:56 <pikhq> Anata no nihongo ha chotto neko rashii...
04:38:40 <Gracenotes> sou daro nyaaa~
04:39:41 <pikhq> Wan! Wan!
04:51:03 <Gregor> Dortse mon veitchuats?
04:53:39 <pikhq> Gregor: Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!
04:55:38 <Gregor> HAHAHAHAHAH
04:55:41 <Gregor> BAAAAHAHAHAHAH
04:55:42 <Gregor> *gack*
04:55:47 <pikhq> :)
04:56:38 <oklofok> i'm not sure i'm following the discussion
05:05:45 <pikhq> oklofok: Well, you see... Wenn ist das Nunstruck git und Slotermeyer? Ja! Beirherhund das Oder die Flipperwaldt gersput!
05:07:02 <oklofok> "nunstruck" sounds ominous
05:07:37 <pikhq> You should study German, so as to understand the World's Greatest Joke.
05:08:06 <oklofok> i know some german, that's not german
05:08:17 <oklofok> although it may be enough german to be a joke
05:08:29 <pikhq> On a more serious note, you should study the works of Python, Monty.
05:09:08 <Gregor> *zombie* Yesh.
05:14:39 -!- puzzlet has quit (Remote closed the connection).
05:14:41 -!- puzzlet has joined.
05:15:37 <oklofok> why am i interested in everything, couldn't some things just be inherently uninteresting to me
05:18:01 <Pthing> fly fishing
05:18:07 <Pthing> do you find fly fishing interesting
05:19:47 <uorygl> But being interested in everything is a blessing! >.>
05:20:14 <uorygl> Hey, that means you'll be interested in what I want you to be interested in! >.>
05:21:25 -!- Pthing has quit (Remote closed the connection).
05:21:28 <oklofok> yes pretty much
05:22:46 <oklofok> i don't know what fly fishing is really
05:23:02 <uorygl> Agda is a proof system. It's inspired by Haskell; therefore, it's awesome. As far as I know, nobody has ever successfully implemented ZFC, or anything similar, in Agda. Get to it.
05:23:24 <oklofok> i don't implement much these days
05:24:14 <uorygl> I made something I thought was an implementation of ZFC. It turned out to have a flaw that had no obvious fix. So I started implementing NBG, which is like ZFC, instead, and got bored halfway through.
05:26:39 <quantumEd> hahah "inspired by Haskell; therefore, it's awesome" this logic I do not follow
05:27:08 <oklofok> well it's NBG, less known
05:27:43 <oklofok> that's axiom 1
05:29:07 <uorygl> quantumEd: well, are you familiar with Haskell?
05:29:11 <quantumEd> yes
05:29:20 <uorygl> You are a strange man.
05:29:56 <oklofok> :)¨
05:29:59 <oklofok> *:)
05:30:23 <uorygl> You have something right... never mind, you got it.
05:30:44 <oklofok> höhö
05:52:33 <oklofok> i just realized youtube comments are pretty stupid
05:52:56 <quantumEd> really
05:53:00 <quantumEd> why are they stupid?
05:54:11 <oklofok> maarhoefe (1 month ago) Show Hide +3 Marked as spam Reply fuckin doorknockers wont convert me! the only jehovas i like are the female ones since i can violate them with my satanic lusts
05:54:33 <oklofok> i mean come on sure it's death metal but why be such a stereotype about it
05:54:49 <oklofok> I AM SATANIST I RAPE AND KILL EVERYTHING THAT BREATHES
05:55:48 <quantumEd> I AM A SANTAIST, I SPREAD CHEER AND GOODWILL ONCE A YEAR
05:55:50 <oklofok> also exam soon, should probably get to uni and start preparing mentally
05:56:36 <oklofok> oh my god this stuff is awesome http://www.youtube.com/watch?v=4dTrIVIWqFA&feature=related
05:56:45 <pikhq> I AM SANTA, I SPREAD FEAR AND ANNIHILATION ONCE A YEAR.
05:57:17 <oklofok> if a death metal band doesn't get a smile on your face, they're doing it wrong
05:59:45 <oklofok> yummy stuff
06:01:59 <oklofok> well okay seems that song was exceptionally good
06:03:18 <oklofok> ->
06:07:23 <Gregor> pikhq: Futurama is not good for you.
06:09:26 <coppro> lies
06:10:07 <coppro> bum bum BUMBUM bum bum BUMBUM bum bum BUMBUM bum BUUUM bum bumbumbumbum
06:10:35 <oklofok> futurama is the dazzle.
06:10:37 <oklofok> ->
06:10:46 <coppro> what's with the ->?
06:10:59 <oklofok> it means i'm leaving
06:11:08 <oklofok> it's an important part of me
06:11:13 <oklofok> ->
06:24:21 -!- sebbu2 has joined.
06:29:32 <quantumEd> ->
06:32:22 <pikhq> Gregor: Lies.
06:39:31 -!- sebbu has quit (Read error: 110 (Connection timed out)).
06:54:09 -!- calamari has quit ("Leaving").
07:56:18 -!- AnMaster has set topic: but tell me, hubert. http://tunes.org/~nef/logs/esoteric/?C=M;O=D | esoteric programming.
07:56:25 -!- AnMaster has set topic: but tell me, hubert. http://tunes.org/~nef/logs/esoteric/?C=M;O=D | esoteric programming languages.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:08:10 <Gracenotes> :x it is possible to do esoteric programming in non-esoteric languages
08:08:18 <puzzlet> which means?
08:08:36 <puzzlet> like obfuscated c?
08:08:39 <quantumEd> yes it is possible
08:08:52 <quantumEd> you can do non-esoteric programming in esoteric languages too
08:08:59 <Gracenotes> meaning AnMaster's topic change was... uh... well, I can't say it's any more or less apropos to what we talk about here, but it's more precise
08:09:56 <AnMaster> Gracenotes, hit newline too early by mistake
08:10:00 <AnMaster> thus the second change
08:10:20 <Gracenotes> ah. no deeper meaning, eh.
08:10:58 <AnMaster> bbl
08:11:02 <Gracenotes> see ya
08:19:57 <augur> Gracenotes!
08:20:06 <augur> my dear complingqueer! <3<3<#
08:20:10 <augur> or whatever
08:20:41 <Gracenotes> hello!!1!11!!!
08:20:59 <augur> where do you go to school again?
08:21:11 <Gracenotes> although I should mention I'm not too big a fan of computational linguistics. just compsci and linguistics.
08:21:17 <Gracenotes> Stony Brook O_O
08:21:20 <augur> oh right
08:21:29 <augur> you're a cunt, now i remember
08:21:31 <augur> so!
08:21:35 <augur> linguistics
08:21:36 <augur> man
08:21:43 <augur> how fucking awesome is linguistics, huh?
08:21:46 <Gracenotes> :o
08:21:51 <Gracenotes> omg you're so mean. *cries*
08:21:59 * augur smacks gracenotes
08:22:08 <Gracenotes> wha? yeah, linguistics. word word balls up.
08:22:16 <augur> balls <3
08:22:24 <augur> so like
08:22:29 <augur> i have to write a squib
08:22:41 <augur> for syntax
08:23:47 <Gracenotes> how come I've never heard of squibs before, eh :/
08:24:04 <Gracenotes> oh wait, I think I know.. I'm not a linguist :x
08:24:09 <augur> squibs are short little papers
08:24:22 <quantumEd> augur
08:24:27 <quantumEd> do you release these?
08:24:34 <augur> they often dont try to solve problems, just make note of them
08:24:36 <augur> or whatever
08:24:43 <augur> theyre minor papers
08:24:46 <augur> quantumEd: what?
08:24:57 <quantumEd> how is that not clear :(
08:25:08 <quantumEd> do you release these squibs (im assuming you've written more than one)
08:25:15 <Gracenotes> sounds like an interesting tradition. they're useful perhaps because linguistics has a tendency to be a static field?
08:26:00 <augur> quantumEd: yes, sometimes i release them into the wild, but they usually find their way back to the lab. squibs have amazing homing ability, you see.
08:26:17 <quantumEd> so link to them?
08:26:46 <augur> actually, its more than linguistic phenomena are so diverse, and because of the shear amount of linguistic data we produce on a daily basis as individuals, its easy to miss things
08:27:16 <augur> infact, some very obvious things went completely unnoticed for many many years, until someone or other said hey wait a second whats this now
08:27:36 <Gracenotes> augur: hm.. I kind of see what you're talking about. I've read way too many models of aspect that were based on a subset of language, rather than comprehensively trying to establish some universal terminology
08:27:53 <augur> its not even that, right
08:27:56 <augur> its more like
08:28:41 <augur> you know, look, if you werent ever told about the oddities of depictives, would you ever notice them?
08:29:03 <Gracenotes> still, as a result, you get so many combinations of linguists and languages where "perfective" means different things
08:29:13 <augur> or the peculiar fact that all D quantifiers are conservative?
08:29:37 <augur> oh, well, sure. real linguists dont have those problems :P
08:29:52 <augur> you're probably reading silly non-theoretical types!
08:29:53 <Gracenotes> ...is this formal theory you're talking about?
08:30:02 <augur> sure
08:30:25 <Gracenotes> how purely formal? independent of any spoken language?
08:30:31 <augur> no
08:30:36 <augur> this is just data stuff
08:30:43 <augur> observations of the data.
08:31:57 <Gracenotes> well, whatever works... linguistics is still a young field
08:32:09 <augur> it is rather
08:32:13 <augur> but these facts are cool
08:32:17 <augur> and intriguing
08:32:19 <augur> and confusing
08:34:14 <Gracenotes> though, in my experience, two linguistics professors arguing can produce some of the most humorous academic discussions ever. at least to someone less well-versed
08:34:25 <augur> :)
08:35:54 <Gracenotes> you not only hear them arguing over the propositions, but also over the very definitions they're using
08:36:41 <Gracenotes> possibly peppered with references to other linguists and personal interactions
08:38:33 <Gracenotes> to be fair, computer science has existed for a relatively short time too, but our field has a rather constructivist outlook, with hundreds of years of mathematical thoroughness behind us
08:39:10 <Gracenotes> linguistics is essentially anything but constructivist
08:39:28 <augur> wut
08:40:13 <Gracenotes> :o
08:41:31 <Gracenotes> okay, you have some formal models, insofar as they play nice with data. I hope I'm not coming off as anti-linguistics, by the way.. I love the field, just don't seem to have the time to spend
08:44:10 <augur> ok
08:45:56 -!- ais523 has joined.
08:46:33 <Gracenotes> in other news, I'm leaving for my college in 2 hours and still haven't fully packed
08:46:54 <quantumEd> in other news, hi ais523
08:47:11 <ais523> hi
08:47:23 * ais523 predicts that quantumEd = ehird simply from one sentence
08:47:29 <ais523> ah no, it's fax
08:47:32 <quantumEd> :(
08:47:38 <ais523> should have guessed ehird wouldn't have been awake this early
08:52:50 -!- kar8nga has joined.
09:01:18 <augur> oh man
09:01:21 <augur> i need seep now
09:01:23 <augur> night guys
09:01:58 <Asztal> don't seep here, I just cleaned the floor
09:02:15 <augur> :P
09:02:22 * augur seeps all over Asztal
09:02:32 <augur> good night, sirs!
09:05:08 <Gracenotes> night
09:05:22 <Gracenotes> ..gotta fall asleep soon.. wake up soon..
09:15:38 -!- quantumEd has quit ("Leaving").
09:41:35 -!- coppro has quit (Remote closed the connection).
09:42:04 -!- coppro has joined.
10:22:30 -!- sebbu has joined.
10:26:07 -!- Slereah_ has quit (Read error: 60 (Operation timed out)).
10:28:27 -!- Slereah has joined.
10:37:55 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
10:53:00 -!- Gracenotes has quit ("Leaving").
10:59:59 -!- puzzlet has quit (Read error: 54 (Connection reset by peer)).
11:03:38 -!- puzzlet has joined.
11:39:59 -!- sebbu2 has joined.
11:43:23 -!- sebbu has quit (Read error: 60 (Operation timed out)).
12:05:03 -!- Gregor has quit (Read error: 110 (Connection timed out)).
12:10:33 -!- kar8nga has quit (Remote closed the connection).
13:06:36 <ais523> ugh, what a confusing spam
13:07:01 <ais523> it wants me to call <phone number> and send my names, address, age, occupation, phone numbers to <email>
13:07:10 <ais523> either the phone number or the email, I could parse the sentence
13:07:18 <ais523> but both, I'm mystified
13:07:32 <ais523> looks like I won't be claiming the million pounds from the nokia lottery after all
13:08:45 <oklofok> and you were so close to happiness
13:11:38 <ais523> strangely enough, all the names in the scam were reversed, as in surname before first name
13:11:38 <ais523> even though it was a UK phone number (starting +44) and the spam specifically claimed to have been sent from the UK
13:12:41 <oklofok> in uk, you do first, last?
13:12:50 <oklofok> i wonder what we do in finland
13:13:03 <ais523> you mean, you aren't sure?
13:13:20 <oklofok> no idea, well, both are used
13:13:27 <oklofok> maybe that's the answer
13:14:03 <oklofok> i've always thought the first name should be first
13:14:29 <ais523> this conversation will get confusing if we use "first" for two different purposes
13:14:42 <ais523> "given name", "family name" are unambiguous; in the UK they're pretty much always in that order
13:15:46 <Asztal> I thought Hungary was the only European country to use FamilyName GivenName.
13:16:40 <oklofok> first name is unambiguous
13:16:51 <oklofok> but yes, perhaps confusing
13:17:57 <ais523> Asztal: yes, and it was pretty confusing when I was at a conference in Hungary
13:18:11 <ais523> because half of the people had reversed their names to simplify things for the British visitors
13:18:14 <ais523> and the other half hadn't
13:18:25 <oklofok> :)
13:18:46 <oklofok> the one that ends in cz is the surname
13:19:12 <ais523> Hungarian doesn't have a cz, IIRC
13:19:13 <oklofok> my cellphone died :<
13:19:23 <oklofok> wait am i thinking polish or something
13:19:27 <ais523> yes, probably
13:21:11 <Asztal> I like the idea of capital letters for the family name.
13:35:29 <AnMaster> hi ais523
13:41:25 <AnMaster> Asztal, camel case?
13:41:41 <AnMaster> (based on etymology)
13:44:13 <Asztal> AnMaster: e.g. ERDŐS Pál
13:44:40 <AnMaster> at least in Swedish that would work for many common names. Name combinations (translated) like this in shell syntax: {North,South,Leaf}{branch,stream,country} are pretty common
13:44:55 <AnMaster> modulo some tiny spelling changes to make it sound better
13:45:48 <AnMaster> (of course the list of words to combine is longer in reality, and not all combos are used)
13:45:53 -!- kar8nga has joined.
13:46:33 <AnMaster> Asztal, my family name is of that type for example. But with a bit unusual spelling
13:46:48 <AnMaster> anyway, the point is you could camelcase it
13:46:49 <AnMaster> like:
13:47:11 <AnMaster> SöderKvist (en:SouthTwig)
13:47:36 <AnMaster> (when you think about it, most such names doesn't make a lot of sense)
13:48:14 <fizzie> Given that my surname is also a compound word, I guess you "could" CamelCase it too into KallasJoki if you really really want.
13:48:22 <AnMaster> heh
13:48:28 <puzzlet> looks like most of Japanese surnames' etymology
13:49:23 <AnMaster> fizzie, what does it mean?
13:49:56 <AnMaster> puzzlet, oh? compound names are common there?
13:50:15 <fizzie> fi:joki translates to en:river, while fi:kallas is a bit trickier to translate... it's basically a bank (as in "bank of a river", the border of water and ground) though I think it carries a connotation of an especially steep bank, not just any sort of bank.
13:50:23 <puzzlet> "KuraMoto" literally means storage-basis for example
13:50:36 <AnMaster> heh
13:50:37 <fizzie> It's a bit archaic term, I don't think I've seen it anywhere else than names.
13:50:44 <AnMaster> puzzlet, storage-basis?
13:50:50 <AnMaster> heh
13:50:55 <puzzlet> it's just combination of chinese glyphs
13:51:02 <fizzie> Still, it's a lot better than our former family name.
13:51:05 <Asztal> Appparently my surname, Houghton, means "Settlement in a corner of land" but it's not really CamelCase-able :(
13:51:07 <AnMaster> fizzie, oh?
13:51:22 <puzzlet> it sometimes means something, like KoIzumi - small spring
13:51:59 <AnMaster> mine is a bit hard to actually camel case due to the "change around the spelling a bit" thingy
13:52:22 <AnMaster> I leave it as a exercise to any Swedish or Swedish-speaking readers
13:52:36 <AnMaster> (it isn't hard to track down *shrug*)
13:52:50 <fizzie> AnMaster: Yes, they changed a couple of generations ago from "Kakkinen"; now, I'm unsure whether it actually means something specific, but fi:kakka is a slang/informal term for human excrement, and the -nen is a bit like a (rare-ish) diminutive suffix, so I guess you could translate it as "little shit".
13:52:51 <puzzlet> here in Korea, almost all surnames are monosyllablic
13:53:08 <puzzlet> Kim, Lee, ... you know.
13:53:13 <AnMaster> fizzie, did it mean that back then? If it is slang these daus
13:53:15 <AnMaster> days*
13:53:44 <fizzie> AnMaster: Possibly not, but it would not exactly be a too nice name to have now.
13:54:27 <AnMaster> you could also camel case all those "-son" names in Swedish. Like Svensson/Svenson (spelling varies). Could be turned into SvensSon/SvenSon
13:54:42 <AnMaster> (I guess that is the archetypical "Swedish" name)
13:54:46 <fizzie> (There are, in fact, 207 currently living people in Finland with that surname; that's more than us, there's only ten people with Kallasjoki.)
13:54:49 <AnMaster> (or stereotypical rather)
13:55:01 <AnMaster> fizzie, heh
13:56:51 <fizzie> And from what I hear, before Kakkinen the (original; had none before *that*) surname used to be some sort of old-Swedish g-rich word that had the meaning of "a short, barrel-shaped man"; given to some ancestor in someone's army in some war. I don't remember the details well, and they might be incorrect anyway.
13:59:18 <AnMaster> fizzie, can't think of such a Swedish word, so I guess that word is no longer in use
14:01:17 -!- asciikierka has joined.
14:01:19 -!- asciikierka has changed nick to asiekierka.
14:01:20 <asiekierka> hi
14:18:20 -!- augur has quit (Read error: 110 (Connection timed out)).
14:45:11 -!- oerjan has joined.
14:53:54 -!- BeholdMyGlory has joined.
15:00:50 -!- puzzlet has quit (Remote closed the connection).
15:00:54 -!- puzzlet has joined.
15:02:00 <AnMaster> oerjan, iwc
15:02:10 <oerjan> indeed
15:02:25 <AnMaster> btw what is 1/INFINITY in double floating point?
15:02:44 <AnMaster> Assuming IEC 60559 conformance of course
15:03:01 * oerjan assumes that would be 0
15:03:14 <AnMaster> oerjan, yeah, that or some SMALLEST_DENORMAL_NUMBER
15:03:37 <oerjan> cannot say i've read the standard...
15:04:30 <AnMaster> can't say I have it, I only have C99 standard, witch refers to IEC 60559 for many details.
15:05:48 <AnMaster> hm
15:06:01 <AnMaster> IEEE 754 == IEC 60559
15:06:28 <fizzie> I would guess 0, too. MATLAB gives true to "(1/inf) == 0" and it counts with double precision by default, though it might need some strictness flags to be, well, strict.
15:08:10 <asiekierka> hm
15:08:17 <asiekierka> i should return to my C64 OS idea
15:08:18 <AnMaster> fizzie, well yes that seems to be what happens. But then there is another question: Is this specified? Or could it vary between implementations?
15:08:21 <asiekierka> but i need to look for
15:08:23 <asiekierka> *dundundun*
15:08:25 <asiekierka> RESOURCES
15:08:56 <fizzie> AnMaster: I am under the impression that IEEE 754 does not leave much wiggle-room for implementations, but that is also just a guess.
15:09:14 <AnMaster> well, since I don't own a copy of it :/
15:10:20 <fizzie> http://steve.hollasch.net/cgindex/coding/ieeefloat.html claims that n (where "n" seems to be any not-special number) divided by +inf or -inf would be well-defined as 0.
15:11:10 <AnMaster> mhm
15:11:45 <fizzie> Of course you'll then have to decide whether you choose to believe some random Steve.
15:13:09 <oklofok> 1/inf = 0
15:13:24 <oklofok> i swear on my mother's grave
15:13:59 <oklofok> that would probably sound more convincing if my mother was dead
15:14:36 <AnMaster> heh
15:14:55 <fizzie> oklofok: If she's not dead, it sounds -- to put it mildly -- a bit suspicious that you have already prepared a grave for her.
15:14:56 <asiekierka> well
15:15:04 <oklofok> true, true
15:15:06 <asiekierka> 1/inf == 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...............1
15:15:10 <asiekierka> i guess
15:15:14 <asiekierka> the dots represent infinite 0's
15:15:39 <oklofok> well that does make sense
15:15:39 <asiekierka> of course rounding it to any fixed-point or floating-point format gives us 0
15:16:18 <AnMaster> what is the range of numbers that are denormal for doubles? Again I'm unable to find that due to not owning spec.
15:16:25 <oerjan> fizzie: it's not _that_ unusual to reserve graves in advance...
15:16:32 <fizzie> It makes about as much sense as the "0.999... is not the same as 1" "proofs" you get; I've seen the hypothetical 0.000...1 number there.
15:17:10 <oklofok> yeah everyone knows the cauchy sequence 0.000...1 is in the same equivalence class as 0.000
15:17:11 <oklofok> ...
15:17:12 <AnMaster> fizzie, um... 0.9999.... *is* the same as 1. Given that the ... means "continue forever"
15:17:16 <AnMaster> I seen a proof for it
15:17:17 <fizzie> oerjan: Well, perhaps not; I imagined an already-dug open pit, just waiting for oklopol's mother, which might be a bit more uncommon.
15:17:19 <AnMaster> trying to remember it
15:17:23 <asiekierka> uh
15:17:26 <oerjan> fizzie: you'd think
15:17:32 <fizzie> AnMaster: Yes, but there are also a large number of "proofs" for the opposite.
15:17:42 <AnMaster> hm
15:17:42 <asiekierka> 0.999999999999.................. rounds to 1!
15:17:43 <oklofok> the proof is as follows: lim sum (9/10)^i = 1
15:17:44 <oerjan> asiekierka: there is no final 1 in the representation of any real number
15:17:54 <AnMaster> oklofok, for 0.999... ?
15:18:00 <oklofok> yes
15:18:35 <oklofok> its sum is 1/10 * 1/(1-9/10) = 1
15:18:40 <AnMaster> oklofok, I think the proof I saw was a bit different.
15:18:46 <asiekierka> 1/3 = 0.333...
15:18:52 <AnMaster> something about doubling it or such
15:18:55 <asiekierka> 0.333... * 3 = 0.999...
15:18:59 <oklofok> well you can write an uglier proof
15:19:03 <asiekierka> 1/3 * 3 = 0.333 * 3 = 0.999
15:19:06 <AnMaster> oh wait. no that was another one
15:19:09 <oklofok> it's not exactly hard
15:19:11 <asiekierka> 1/3 * 3 = 3/3 = 1
15:19:14 <asiekierka> 0.999 = 1
15:19:52 <oklofok> that just proves multiplication isn't the inverse operation of division!
15:19:53 <AnMaster> asiekierka, um?
15:20:06 <fizzie> 0.999 = 1 and 0.001 = 0; now I get it!
15:20:11 * oerjan swats oklofok -----###
15:20:11 <fizzie> Hey, the bus! I'm missing it. ->
15:20:39 <oerjan> food ->
15:20:55 <oklofok> ROUGH ANIMAL SEX
15:20:56 <oklofok> ->
15:21:14 <oklofok> (also reading this book.)
15:21:19 <AnMaster> oklofok, no it doesn't prove that. It just proves that asiekierka doesn't know how to handle numbers that aren't exactly in decimal.
15:21:57 <oklofok> well i have this, call it a hunch, thing, that asiekierka has absolutely no idea what real numbers are
15:22:05 <AnMaster> 0.33333... given that ... is "continue forever" is *exactly* 1/3. Multiplying it with 3 will *not* yield 0.999..., but exactly 1
15:22:10 <oklofok> no offense :D
15:22:14 <AnMaster> of course that assumes it is really infinite.
15:22:24 <AnMaster> oklofok, well yeah I think that too
15:22:27 <oklofok> i need to go buy that... umm
15:22:37 <oklofok> we call it "cucumber salad" here i think
15:22:59 <oklofok> okay some hits
15:28:22 <fizzie> You with your silly numbers, I almost missed the bus.
15:29:36 <oklofok> did you only have 0.000....01 seconds to spare
15:30:03 <fizzie> Yes, if not less!
15:30:13 <oklofok> err...
15:30:30 <oklofok> you mean 0.000...001 :P
15:30:54 <fizzie> Maybe 0.000...003 or so.
15:31:17 <oklofok> 0.000...00333333...
15:31:38 <oerjan> your obvious attempts to make me go mad with rage are failing, just so you know
15:31:53 <oklofok> :D
15:32:16 <oklofok> do you know how hard it is to ask an analysis prof about nonstandard analysis
15:32:25 <oerjan> no
15:32:27 <oklofok> took me like 20 minutes to get him to talk about hyperreals
15:32:57 <oklofok> (then turned out he used to do it in his crazy youth)
15:33:53 <fizzie> A skeleta-number in his closet.
15:34:37 -!- Pthing has joined.
15:35:02 <fizzie> Now I run out of electrons too, meh. ->
15:36:19 <oerjan> fizzie: are you positive?
15:37:11 <oerjan> maybe not the best time to ask
15:37:30 <AnMaster> hm will == always return 1 for true in C? After all, everything non-zero is counted as true
15:39:31 <AnMaster> issue: check if two int containing the result of a logic test are the same. Need C89 here.
15:39:49 <AnMaster> otherwise casting to (bool) should make it well defined
15:40:16 <oerjan> there is a bool type?
15:40:34 <AnMaster> in C99 yes
15:40:36 <AnMaster> in C89 no
15:40:57 <AnMaster> oerjan, bool is usually one byte. It can store the values 0 and 1 according to the standard
15:44:51 <oerjan> mhm
15:46:03 <AnMaster> oerjan, this is for a test suite. It would be a bit embarrassing if I had expected == actual and it turned into something like: 1 == 42.
15:46:46 <AnMaster> ooh I know
15:46:48 <AnMaster> I can do:
15:46:55 <AnMaster> expected = !!actual
15:47:03 <AnMaster> since return value of ! is speced to be 0 or 1
15:47:05 <AnMaster> :D
15:48:58 -!- Guest94377 has changed nick to Cerise.
15:49:28 -!- Cerise has changed nick to Guest43821.
15:57:36 -!- ais523_ has joined.
15:57:53 <ais523_> <strider24> To me Wave is an experiment by Google to see how long they can hold the attention of people with a product that makes no sense.
15:57:56 <ais523_> Discuss.
15:59:21 <asiekierka> Can we discuss it on Google Wave?
16:00:23 <oerjan> hey that would be discriminating against people who have never used it and don't know what it is really about
16:01:20 <fizzie> AnMaster: The relational operators (<, >, <=, >=, ==, !=) are also specced to yield either 0 or 1 always.
16:01:27 <ais523_> oerjan: in favour of people who have used it and don't know what it is really about?
16:01:57 <oerjan> exactly! maybe.
16:02:20 <AnMaster> fizzie, yeah, but since it is supposed to be a generic test suite for any function that is supposed to do the same thing basically, I can't know it isn't implemented using bitwise operators for example
16:02:56 <oerjan> bitstupid
16:02:57 <fizzie> Well, the !!x you mention is a reasonably common idiom too.
16:03:08 <fizzie> Bitsilly operators should exist.
16:03:15 <AnMaster> fizzie, what would they do?
16:03:30 <fizzie> I don't know, something silly. Being always so serious, silliness does not naturally come to me.
16:03:34 <oerjan> you'd think that would be obvious from the name...
16:03:57 * AnMaster thinks C are missing some useful operators: logical xor, bitwise and logical nor/nand. And what about nxor?
16:04:13 <oerjan> logical xor is !=
16:04:28 <AnMaster> oerjan, 2 != 4
16:04:30 <AnMaster> both are true
16:04:34 <AnMaster> so not really
16:04:47 <AnMaster> you need a !! there on either side
16:04:48 <oerjan> erm so you mean converting to bool first
16:05:01 <AnMaster> oerjan, hm?
16:05:07 <AnMaster> well you could do that or the !! thing
16:05:22 <fizzie> The nfoo operators aren't so popular; they're always so negative.
16:05:37 <oerjan> you can have just one ! on each side actually
16:05:56 <fizzie> And the hypothetical logical ^^ operator has the "can't be sensibly short-circuiting" problem.
16:06:13 <AnMaster> fizzie, oh good point
16:06:20 <fizzie> And also the "looks like one of those anime-style smileys" problem.
16:06:29 <asiekierka> FAIRY GODPA--- oh wait, wrong channel to put my obsesion in.
16:06:31 <AnMaster> oerjan, yeah for this one.
16:07:05 <oerjan> also for nor/nand via &&/||
16:07:14 <AnMaster> well yeah
16:07:19 <AnMaster> oerjan, what about nxor?
16:07:29 <AnMaster> oh also we forgot xand and nxand
16:07:30 <oerjan> ==
16:07:35 <AnMaster> not that those make sense
16:07:45 <oerjan> but with !s there too
16:07:52 <AnMaster> oerjan, well yes
16:08:04 <AnMaster> oerjan, but what about bitwise ones?
16:08:14 <AnMaster> would that be ~a == ~b?
16:08:19 <AnMaster> instead of !a == !b
16:08:25 <AnMaster> for nxor
16:08:29 <oerjan> no
16:08:34 <oerjan> ~(a ^ b)
16:08:43 <AnMaster> oh right
16:08:44 <AnMaster> good point
16:09:22 <AnMaster> oerjan, still, we need xand. First we need to figure out a meaning, because it currently has none.
16:09:32 <fizzie> Isn't that usually called XNOR? Well, I guess NXOR makes as much sense.
16:10:15 <asiekierka> yes it's called XNOR
16:11:38 <ais523_> I've seen NEXOR, but it was in a really old book
16:11:43 <ais523_> XNOR is much more common nowadays
16:11:48 <ais523_> or occasionally EQV
16:11:52 <fizzie> If you start on that road, you might as well provide all 16 bitwise ops, even the always-false and always-true ones.
16:12:01 <ais523_> MOV!
16:12:25 <asiekierka> NEXNANDORXOR
16:13:10 <asiekierka> fizzie: 14 is enough
16:13:11 <oerjan> xneither snow xnor rain xnor heat
16:14:11 <oerjan> 1 is enough
16:14:12 <asiekierka> xehird: if a variable relates to the existence of asiekierka, outputs 0
16:14:16 <asiekierka> if it doesn't, outputs 1
16:14:45 <oerjan> i'd have expected some more 0 cases
16:14:51 <asiekierka> well
16:14:54 <asiekierka> these are all i recall
16:15:07 <oklofok> was just about to say that, but couldn't figure out a funny way to do it.
16:15:10 <asiekierka> xehird: if a variable relates in any way to asiekierka, outputs 0
16:15:19 <asiekierka> if a variable relates to the topic, unchanged
16:15:22 <asiekierka> otherwise, 1
16:16:02 <oklofok> i'm not sure you got the joke
16:17:11 <oerjan> xoklofok on the other hand cannot possibly output just 0 or 1
16:17:32 <oerjan> although o is an option
16:21:05 <oerjan> *chirp*
16:21:22 <oklofok> well *you* do this integral
16:21:25 <asiekierka> xasiekierka always outputs either 1 higher than the max number possible (for binary it's 2) or UNDEFINED.
16:21:57 <oerjan> for an infinite range, output *WHOOSH*
16:22:14 <asiekierka> no
16:22:20 <asiekierka> for an infinite range outputs INFINITY+1
16:22:47 * oerjan wonders if this counts as a meta-*WHOOSH*
16:23:16 <oklofok> :D
16:23:20 <oklofok> i don't get it, but it's funny
16:23:28 <asiekierka> what about a range of 0 to *WHOOSH*
16:24:57 <asiekierka> IMO it'll be *WHOOOSH*
16:25:28 <oerjan> plausible
16:35:59 <ais523_> "xoklofok" is redundant, there's only one oklofok, so it makes no sense to make the operator exclusiv
16:36:03 <ais523_> *exclusive
16:36:11 <ais523_> (excuse my Finnish)
16:41:38 -!- ais523__ has joined.
16:41:53 <ais523_> wait, that makes no sense
16:41:58 <ais523_> that's my IP address, yet I didn't join
16:42:12 <ais523_> also, it knows my nickserv password
16:42:33 <ais523_> theory: my laptop disconnected from the internet and automatically reconnected
16:43:26 <ais523_> and if it's correct, ais523 will time out or reset within a few minutes
16:46:05 <oklofok> finnish?
16:46:48 <ais523_> oklofok: leaving off trailing Es is a common AnMaster typo
16:46:52 <ais523_> when they come after a v
16:47:08 <oklofok> right swedish = finnish
16:47:31 <oklofok> (we can't have v as a suffix)
16:47:33 <AnMaster> ais523_, hm? Where was it?
16:47:41 <ais523_> AnMaster: it's a typo I made
16:47:48 <ais523_> "exclusiv" for "exclusive"
16:47:51 <AnMaster> ah
16:47:57 <ais523_> and then I thought it was your style once I'd made it
16:48:02 <AnMaster> ais523_, I don't think I made that specific one?
16:48:08 <ais523_> probably not
16:48:12 <AnMaster> some yes, but that specific one seems very strange to me
16:48:25 <oklofok> god i hate this course, none of the integrals can ever be calculated
16:48:26 <AnMaster> ais523_, what about your laptop you said?
16:48:35 <oklofok> i mean seriously error function stuff
16:48:38 <ais523_> it's connected as ais523 or ais523__, possibly both
16:48:51 <oklofok> always some neat little trick you have to use
16:49:11 <AnMaster> ais523_, well automatically reconnecting is a common behaviour of irc clients and bouncers
16:49:14 <AnMaster> well,*
16:49:14 <ais523_> meanwhile, I'm waiting for students on this Java course to turn up
16:49:23 <ais523_> AnMaster: yes, but you'd expect them to disconnect the original
16:49:25 <AnMaster> (now that is another common typo, forgetting the , after "well")
16:49:54 <AnMaster> ais523_, well, it would possibly take a bit to timeout. Especially if your client isn't set up to automatically ghost it
16:50:10 <ais523_> autoghost would be insane from my point of view
16:50:21 <oerjan> public class JavaCourse
16:50:24 <ais523_> given that when one connection's being flaky, I often connect on another one
16:50:37 <ais523_> it wouldn't make sense for the flaky one to automatically boot off the consistent on
16:50:39 <ais523_> *one
16:50:58 <AnMaster> ais523_, good point
16:51:56 -!- ais523 has quit (Read error: 110 (Connection timed out)).
16:52:49 <ais523_> ah good, the world is sane
16:52:52 -!- ais523_ has changed nick to ais523.
16:53:42 <ais523> well, I don't mean that, that's an obviously incorrect statement
16:53:51 <ais523> I mean, it's slightly saner than I feared it would be
17:02:05 <oklofok> okay this time a potential function existed, so there was no reason to start integrating over the closed path
17:03:11 <oklofok> i guess you could think of it as leading in the right direction, because the wrong direction leads to an impossible integral.... it's just kinda annoying if you don't recognize it's an impossible one
17:05:14 <AnMaster> hm while it is possible in English to get two copies of the same word after each other ("that that" for example), is it possible to come up with one that has three copies of the same word after each other?
17:05:26 <oklofok> buffalo^n
17:05:41 <AnMaster> oh true.
17:05:53 <AnMaster> what about three "that" then?
17:06:26 <oklofok> who said that that that has been said, has been said
17:06:32 <oklofok> ...i'm not sure that's a very good one
17:06:47 <AnMaster> oklofok, could you put out () to show parsing order please XD
17:07:10 <ais523> oklofok: that's missing a pair of quotes
17:07:10 <AnMaster> meta-discussion about that (that that)?
17:07:18 <oklofok> ais523: no
17:07:39 <oklofok> "that that has been said" just isn't very good english.
17:07:43 <oklofok> that which
17:07:44 -!- ais523 has quit ("Page closed").
17:07:52 <AnMaster> hm right
17:07:56 -!- ais523__ has quit (No route to host).
17:08:01 <AnMaster> sigh
17:08:25 <AnMaster> oklofok, so it is "who said that (that that has been said), has been said"?
17:08:39 <oklofok> there's a german example with something like '...das, dass das "das, das", das das...'
17:08:48 <AnMaster> heh
17:08:54 <oklofok> i took that, and tried to remove quotes, because that's cheating
17:09:07 <oklofok> i mean 'eric said "that that that that that that that"'
17:09:28 <AnMaster> oklofok, what about: "using that that that construct outside contrived examples is really irritating"?
17:09:30 <oklofok> and yes, that's what i meant
17:10:03 <oklofok> that's kinda of quoted too
17:10:05 <oklofok> *kind
17:10:09 <AnMaster> oklofok, well yes
17:10:29 <AnMaster> but outside quoting/meta-discussion I can't think of any example
17:10:44 <AnMaster> even your first one was kind of quoting
17:11:54 <asiekierka> oh god oh man
17:11:58 <asiekierka> i just compiled DC for the C64
17:12:01 <asiekierka> after a lot of getopt removals
17:12:03 <asiekierka> it's 46kb
17:12:09 <asiekierka> seeing as the C64 has 64kb of memory
17:12:10 <asiekierka> this sucks
17:12:22 <AnMaster> DC?
17:12:27 -!- ais523__ has joined.
17:12:27 <asiekierka> Desk Calculator
17:12:28 <AnMaster> as in dc(1)?
17:12:31 -!- ais523__ has changed nick to ais523.
17:12:36 <asiekierka> yes i guess
17:12:45 <asiekierka> d(esk) c(alculator)
17:12:51 <asiekierka> the good thing is it at least COMPILED
17:12:55 <AnMaster> asiekierka, I never heard of dc(1) being called "desk calculator"
17:13:08 <asiekierka> i'm not sure if it's dc(1)
17:13:09 <oklofok> AnMaster: the that's are not at all quoted in mine, i don't refer to a that, except as a pronoun
17:13:25 <AnMaster> 3 3 + p
17:13:25 <AnMaster> 6
17:13:26 <asiekierka> http://en.wikipedia.org/wiki/Dc_(computer_program)
17:13:28 <AnMaster> asiekierka, that matches?
17:13:31 <asiekierka> yes
17:13:35 <AnMaster> right same then
17:13:38 <fizzie> "Dc is a reverse-polish desk calculator which ---" starts my man page.
17:13:52 <asiekierka> DC = Desk Calculator
17:13:59 <AnMaster> fizzie, same, except mine omits the word "desk"
17:13:59 <AnMaster> heh
17:14:43 <AnMaster> fizzie, actually mine as "dc" in lower case too
17:14:47 <AnMaster> even at start of sentence
17:15:03 <asiekierka> i'll attempt dc 1.03
17:15:24 <AnMaster> asiekierka, don't use GNU one
17:15:30 <AnMaster> use a BSD one
17:15:33 <AnMaster> it will definitely be smaller
17:15:38 <fizzie> What sort of calculator is GNU bc, then? Blobby? ("Basic", says the WP disamb page.)
17:15:40 <asiekierka> good idea
17:15:50 <asiekierka> bc = bloated calculator
17:16:09 <AnMaster> fizzie, bc is POSIX, while iirc dc isn't?
17:16:15 <AnMaster> I might misremember that though
17:16:23 <asiekierka> dc was in unix back in the 70's
17:16:26 <asiekierka> that was assembler tho
17:16:41 <Deewiant> At least bc has a POSIX man page but dc doesn't
17:17:05 <AnMaster> The bc utility is implemented historically as a front-end processor for dc; dc was not selected to be part of this volume of
17:17:05 <AnMaster> IEEE Std 1003.1-2001 because bc was thought to have a more intuitive programmatic interface. Current implementations that implement bc
17:17:05 <AnMaster> using dc are expected to be compliant.
17:17:10 <AnMaster> Deewiant, exactly
17:17:18 <AnMaster> and that was quote from said one
17:17:27 <AnMaster> I disagree however. dc is more intuitive
17:22:44 <pikhq> bc is just an awful bloody hack.
17:22:56 <pikhq> (seriously, compiling down to dc?)
17:23:21 <AnMaster> pikhq, GNU bc doesn't do that
17:23:55 <pikhq> Yeah, it compiles down to a different bytecode to execute.
17:24:29 <AnMaster> nothing wrong with compiling to bytecode before executing something
17:25:00 -!- kar8nga has quit (Remote closed the connection).
17:25:03 <AnMaster> (for a start: often it makes execution a lot simpler)
17:26:27 <pikhq> It's a dc-like bytecode.
17:26:54 <AnMaster> I have no idea what the internal bytecode of dc looks like
17:26:58 <pikhq> And decent chunks of the compilation logic are written in that.
17:27:06 <AnMaster> wait what?
17:27:19 <AnMaster> are parts of the compilation logic written directly in bytecode?
17:27:26 <pikhq> In bc, yes.
17:27:41 <AnMaster> why
17:27:47 <pikhq> No good reason.
17:27:53 <pikhq> Just are.
17:27:59 <AnMaster> what does the bytecode in question look like?
17:28:05 <pikhq> dc.
17:28:23 <pikhq> Except with random bits changed for no good reason.
17:28:25 <AnMaster> pikhq, not like asm-style bytecode then?
17:28:36 <pikhq> Nope, not asm-style bytecode at all.
17:28:47 <AnMaster> ... that wasn't what I meant
17:29:28 <AnMaster> I meant as in "bytecode which has a model similar to that of, say, python bytecode, or one more like the bytecode of PCRE"
17:30:05 <AnMaster> iirc the latter is not as "imperativeish" as the former
17:31:29 <AnMaster> pikhq, ^
17:42:00 -!- oerjan has quit ("Good night").
17:50:39 <asiekierka> back
17:51:10 <asiekierka> well, GNU dc uses bc's libraries
17:51:16 <asiekierka> and as bc is more advanced
17:51:20 <asiekierka> it adds in bc's bloat
17:52:02 <asiekierka> also
17:52:07 <asiekierka> where can i find any source code for BSD dc
17:53:44 <asiekierka> unix contained it since like the fourth/fifth unix edition
17:56:15 -!- Guest43821 has changed nick to Cerise.
17:57:14 -!- coppro has quit (Read error: 110 (Connection timed out)).
17:59:18 <asiekierka> an old unix DC is 35kb of PDP-11 assembler
17:59:34 <AnMaster> asiekierka, good luck porting that.
17:59:38 <asiekierka> no i won'
17:59:39 <asiekierka> t
17:59:43 <asiekierka> i am not touching assembler
17:59:50 <AnMaster> boring
17:59:53 <asiekierka> Just... no
18:00:29 <asiekierka> ATM: browsing the source for the 7th edition and seeing if it got any bette
18:00:31 <asiekierka> r
18:00:47 <asiekierka> YES
18:00:48 <asiekierka> YES
18:00:50 <AnMaster> asiekierka, write your own implementation?
18:00:52 <AnMaster> duh
18:00:53 <asiekierka> a 31 kb dc.c file
18:00:56 <asiekierka> also i love porting
18:00:58 <asiekierka> i hate coding
18:01:02 <AnMaster> *shrug*
18:01:19 <asiekierka> as an exercise i'll attempt porting that
18:01:20 <asiekierka> as i'm crazy
18:01:28 <asiekierka> oh wait
18:01:30 <asiekierka> i won't
18:01:37 <AnMaster> why not?
18:01:49 <asiekierka> it looks insane
18:02:01 <AnMaster> asiekierka, so?
18:03:04 <asiekierka> hah. "too many errors"
18:03:07 <asiekierka> and "obsolete feature"
18:03:13 <asiekierka> This'll take a WHILE...
18:04:48 * AnMaster looks at fpclassify() macro.
18:05:08 <AnMaster> Nasty, it evaluates the parameter several times in the glibc implementation
18:06:48 <asiekierka> one thing that had to be done is move "main" to the end
18:10:38 <ais523> happy australian mailman reminders day!
18:10:58 <AnMaster> ais523, hah
18:11:08 <ais523> it's a holiday that can't be missed
18:11:10 <AnMaster> ais523, fpclassify() is really nasty
18:11:35 <AnMaster> wait, it is 1 December already over there?
18:12:08 <AnMaster> oh yeah, in local time I'm 20 in... uh.. 24-(19+18/60) hours
18:12:45 <ais523> AnMaster: 1 December is your birthday?
18:12:48 <AnMaster> ais523, yes
18:13:31 <ais523> happy australian birthday, then
18:13:37 <AnMaster> hah :)
18:13:38 <AnMaster> thanks
18:14:37 <asiekierka> oh my
18:14:43 <asiekierka> that source code is a retarded mess
18:14:50 <ais523> this is your last day of being a teenager, ever
18:15:05 <AnMaster> ais523, I'm aware
18:15:08 <AnMaster> ais523, is that bad?
18:15:13 <ais523> probably irrelevant
18:15:29 <asiekierka> "Can you guess what this dc program is doing? (There should be an International Obfuscated DC Code Contest...)"
18:16:05 <asiekierka> i agree
18:16:07 <asiekierka> IODCC
18:17:11 <asiekierka> i'll upload the source code on my server
18:18:46 <asiekierka> there's even old sed code there
18:19:29 -!- ais523 has quit (Remote closed the connection).
18:19:32 <oklofok> AnMaster: big birthday party coming up huh?
18:19:45 <asiekierka> http://asiekierka.boot-land.net/dc-old.zip - that's for you, AnMaster, as a birthday present maybe
18:20:03 <oklofok> am i invited
18:20:03 <yiyus> asiekierka: if you want to port a light dc, maybe you have more luck with p9p version
18:20:07 <yiyus> http://code.swtch.com/plan9port/src/tip/src/cmd/dc.c
18:20:13 <yiyus> roughly 2300 lines, no asm
18:20:18 <asiekierka> hm
18:20:23 <AnMaster> oklofok, no, that was moved to last Sunday due to tomorrow being inconvenient. I would have been unable to attend at all for example
18:20:28 <yiyus> it uses some plan9 libs, but it should be easy to by-pass that
18:20:32 <asiekierka> thank you, yiyus
18:20:34 <AnMaster> and not a big party. Just a few relatives
18:20:37 <AnMaster> I hate big parties
18:20:44 <asiekierka> i think this one may roughly be related to the unix v7 one
18:21:02 <asiekierka> yup
18:21:16 <asiekierka> it is a port of (probably a bit newer) the version from unix v7
18:21:22 <asiekierka> so someone did what i was doing
18:21:24 <asiekierka> LOL
18:21:41 <oklofok> traditionally i've sat alone in my room during birthdays and avoided all human contact, but it's become slightly harder now that i live with a girl.
18:21:51 <yiyus> well, it is probably a port from the last research unix from bell labs
18:22:23 <asiekierka> hey
18:22:24 <AnMaster> oklofok, heh
18:22:26 <oklofok> but maybe i could get like a lock
18:22:26 <asiekierka> that compiles farbetter
18:22:44 <yiyus> in fact, plan9 dc was a port from unix, p9p dc is a port to unix from plan9 dc
18:22:48 <AnMaster> oklofok, oh?
18:22:50 <yiyus> it is an infinite loop
18:22:57 <AnMaster> oklofok, why that extreme?
18:23:02 <oklofok> :D
18:23:13 <oklofok> well kinda hard to be alone without a lock
18:23:13 <asiekierka> so it's a port of a port
18:23:16 <asiekierka> while i only attempted a port
18:23:38 <oklofok> girls are always like uhh big day let's cuddle
18:24:04 <AnMaster> oklofok, anything wrong with that?
18:24:49 <oklofok> well it's against the tradition.
18:25:12 <oklofok> but i lived with the chick when i had my last birthday too, so it's kinda too late.
18:25:44 <oklofok> also one before that was with a girl, but that was after midnight, so it doesn't count
18:26:21 <oklofok> but when i turned 18 it was awesome, i was alone all weekend, just coding up some random shit
18:27:12 <asiekierka> ok, so far changed errors and fixed them 'til line 766
18:29:49 <asiekierka> Blk*
18:29:49 <asiekierka> div(Blk *ddivd, Blk *ddivr)
18:29:52 <asiekierka> agh, what now
18:32:06 <asiekierka> Variable idetifier expected (a lot) and unidentified symbols for ddivd and ddivr
18:34:28 -!- adam_d has joined.
18:37:17 -!- quantumEd has joined.
18:48:35 <asiekierka> <asiekierka> line 814
18:48:35 <asiekierka> <asiekierka> Blk* div(Blk *ddivd, Blk *ddivr)
18:48:35 <asiekierka> <asiekierka> 3 "variable identifier expected"
18:48:35 <asiekierka> <asiekierka> and 2 "undefined symbol:" one for 'ddivd' and one for 'ddivr'
18:48:43 <asiekierka> my porting is currently stuck at thi
18:48:45 <asiekierka> s
18:51:31 <AnMaster> asiekierka, try another compiler that shows column too? Like clang?
18:51:33 <AnMaster> or icc
18:52:14 * AnMaster is busy with a report with deadline soon
18:53:32 <asiekierka> i can't
18:53:35 <asiekierka> it's for the 6502
18:53:36 <asiekierka> geez
18:53:38 <asiekierka> i can only use cc65
18:53:48 <asiekierka> OR i could port an old C compiler to the C64
18:53:52 <asiekierka> then use it to compile dcv
18:53:53 <asiekierka> dc*
18:57:38 <AnMaster> asiekierka, you could first make it compile with a modern one, then use that specific one?
18:57:46 <AnMaster> assuming it is reasonably modern
18:57:56 <asiekierka> i made it compile with a modern version of dc
18:57:58 <asiekierka> if that's what you mean
18:58:01 <AnMaster> asiekierka, no
18:58:01 <asiekierka> but as it's hellabloated
18:58:05 <AnMaster> as in modern compiler
18:58:08 <asiekierka> oh, a modern COMPILER thing
18:58:10 <asiekierka> maybe
18:58:15 <AnMaster> port it to current gcc. Then port it to that thing
18:58:27 <AnMaster> assuming cc65 isn't quite as messy
18:58:36 <AnMaster> also porting a C compiler to C64 would be more work
18:58:46 <AnMaster> since that isn't just "make C compiler itself compile"
18:58:59 <asiekierka> heh
18:59:00 <AnMaster> it is "rewrite parts of the C compiler to generate code for this system instead"
18:59:02 <asiekierka> i know
19:01:50 <asiekierka> well, cc65 works like this: turn C into ASM -> compile ASM :P
19:17:47 -!- Gracenotes has joined.
19:34:23 -!- ais523 has joined.
19:40:00 -!- asiekierka has quit (Read error: 110 (Connection timed out)).
19:50:05 -!- MigoMipo has joined.
20:06:56 -!- augur has joined.
20:14:29 <pikhq> AnMaster: Depends on the C compiler.
20:15:12 * pikhq says useless things
20:20:41 <AnMaster> pikhq, oh?
20:20:59 <AnMaster> pikhq, well, unless llvm has a backend for C64...
20:21:04 <pikhq> PCC and Small-C are easy to port, for example.
20:21:14 <pikhq> ... Oh, an LLVM-based compiler? That sounds painful.
20:21:20 <AnMaster> pikhq, what?
20:21:28 <AnMaster> pikhq, you mean like clang?
20:21:34 <pikhq> Yeah.
20:21:39 <pikhq> That'd be painful to retarget.
20:21:47 <AnMaster> just write a new backend for llvm, and some system specific header files and you are done
20:22:11 <AnMaster> system specific header files = stuff like updating limits.h and such
20:22:16 <AnMaster> well you might need a few more
20:22:27 <AnMaster> to actually tell the frontend of the sizes of those variables too
20:22:29 <AnMaster> still
20:22:40 <AnMaster> way easier than something like gcc I imagine
20:22:58 <pikhq> Small-C and PCC would be trivial to retarget.
20:23:08 <pikhq> Though Small-C only supports a subset of C.
20:23:40 <pikhq> (no structs or unions, and is K&R)
21:19:33 -!- kar8nga has joined.
21:36:18 -!- MigoMipo has quit.
22:16:56 -!- kar8nga has quit (Remote closed the connection).
22:19:13 -!- augur has quit (Read error: 110 (Connection timed out)).
22:29:54 <AnMaster> pikhq, llvm backend is not too hard to write I think
22:30:03 <AnMaster> considering there is a backend for PIC16
22:57:20 -!- MizardX has quit ("brb").
23:03:24 -!- MizardX has joined.
23:18:12 -!- coppro has joined.
23:30:08 -!- augur has joined.
23:59:07 -!- BeholdMyGlory has quit (Remote closed the connection).
←2009-11-29 2009-11-30 2009-12-01→ ↑2009 ↑all