< 1167523207 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It's easy to parse, being stack-based... and is pretty capable of doing things despite its erm... verbosity. < 1167523213 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Speed has never really been a concern of mine. < 1167523237 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sure, just the (System)-class to access memory management etc and it would be a nice language for the core < 1167523272 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!"wheee"(_o)o.?]} < 1167523275 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :wheee < 1167523280 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'd like to try some orthogonal persistency. < 1167523296 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :plus it looks cool when you do output... like a bunch of confused faces. < 1167523349 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It's definetely one of the more structure esoteric languages. < 1167523355 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :d < 1167523462 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)0O!"wheee"o.?]} < 1167523472 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :whoops :D < 1167523478 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)0O!"wheee"1o.?]} < 1167523481 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :wheee < 1167523501 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It seems kind of redundent to do it that way. < 1167523541 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :the ! operation itself saves the object to _o... no use retrieving it from the stack when you have it as a variable. < 1167523569 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it was smaller yay \o/ < 1167523700 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hehe... I'd do the kernel in Python myself. :D < 1167523705 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but that's not very esoteric. < 1167523747 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i still don't know what will be the goal for the OS < 1167523758 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :to be esoteric... and try out shit. < 1167523763 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :no real super-huge goal in mind. < 1167523773 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :to be written in esoteric langs, to run esoteric langs, or both < 1167523790 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :both would be nice. < 1167523792 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the middle one is the one i'd use :) < 1167523796 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and that < 1167523806 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Any computer can run esoteric langs. < 1167523816 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but we want our computer to consist of esolangs. :D < 1167523829 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's what i meant by that < 1167523887 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :we could try out some new OS design concepts... I like what uuu is doing currently. < 1167523921 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i read that, basically just realizing no need to separate files and variables < 1167523929 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*have < 1167523955 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I like the functional (and/or object oriented) approach to looking at it. < 1167523956 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :have i been hit in the head a few times recently? every goddamn sentence is incomplete... < 1167523982 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ye, on the other hand, i'd like this one to be the Bf-thing < 1167524008 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :If you treat programs as components that can all be used interchangeably with each other... you have quite a powerful library to work off of. < 1167524029 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a-ha? < 1167524047 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :the other goal is to make esolangs into something useful. :D < 1167524124 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'd like to have the Def-BF running OS on my computer < 1167524145 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, it exclusively < 1167524148 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this one sucks < 1167524152 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I dunno... I'm starting to reconsider Def-BF :/ < 1167524165 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1167524172 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It's definetely a useful estension to BF... but should it be the entire kernel? < 1167524213 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have an entire system in my mind already, i'd say no < 1167524226 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :entire kernel written on it or? < 1167524233 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :>.> I kinda don't like the idea of Def-BF using Absolute addresses. < 1167524235 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Why does it need to do that? < 1167524247 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :how else would you do functions? < 1167524259 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....names? < 1167524278 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that would be absolute addressing < 1167524286 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :give them symbolic names that lead to memory addresses. < 1167524296 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :== absolute addressing < 1167524319 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :my idea was the names < 1167524319 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...by "absolute addressing" I meant requiring the entire numeric memory address to call a function. < 1167524344 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :the names was the original concept... RodgerTheGreat surprised me with memory addresses. < 1167524352 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :huh? same thing < 1167524358 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :... < 1167524364 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It's very different. < 1167524370 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :except memory addressing keeps the bf < 1167524383 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :names, and it's only bf by algorithmic slowness < 1167524383 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :"add" is much easier to remember than "0344534" < 1167524403 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes, and i proposed an OS function to ease that up < 1167524429 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so now you have to remember the Os functions memory address... which changes each use. < 1167524434 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :what's the difference? < 1167524458 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can have names for OS functions < 1167524470 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :If the language requires memory addresses at some point... you will have to use memory addresses at some point. < 1167524476 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :which are just changed into right function numbers < 1167524504 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but, you cannot have names for other than OS functions with the same lookup method < 1167524506 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :How will you call the OS function from within the program without specifying its memory address? < 1167524559 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : can be changed to the address when compiling (compiling as in writing the final program to where it will be used at) < 1167524573 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :as OS functions can have static addresses < 1167524586 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :what will do this compiling? < 1167524599 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :programmer < 1167524614 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or the compiler if the programmer does a few macros < 1167524627 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and if you're going to augment the syntax to do that... why not augment the syntax entirely so that it accepts any symbol name. < 1167524635 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because < 1167524637 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :back < 1167524642 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's a totally different thing < 1167524649 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :what I'm saying is... why even bother with detouring around a maleable language spec? < 1167524661 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :when you can just change the language spec? < 1167524678 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :then why use bf? < 1167524694 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :We're not... we're using functional bf. < 1167524704 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :with callable functions... < 1167524761 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :don't see why add them, would take away the whole small-set-of-char-that-make-up-a-language idea of brainfuck < 1167524773 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :we want to use bf... but we want some modularity. Having to fiddle with absolute addresses is just more confusing than manuially copy and pasting the code... it doesn't extend the language to have modularity. < 1167524778 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :when you can easily simulate that with a few OS functions < 1167524821 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so... should i use a module at 15 from 189384, i should put 189369 <'s together? < 1167524849 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1167524854 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :memory jumps okay? < 1167524869 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :that makes it even harder... you have to write a program to spell out the functions string name...and then get the memory address of the OS, call it with those characters... and then call the resulting function... it would be easier to just add the contents of the function manually. < 1167524873 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :there's no point. < 1167524897 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :eh, now when executing the program < 1167524914 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :would there be "function insertion" in the codestring or smth? < 1167524940 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm? < 1167524960 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1167524963 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :forget that < 1167525004 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but, would the uuu's no files -system be used? < 1167525020 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :The entire point of the functional extension to BF was to make it easier to use for constructing something like an operating system. < 1167525031 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :when you require all the extra work to call a function... it's not really worth it. < 1167525044 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but, are you talking about function calls inside one program? < 1167525048 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :we wouldn't use the typical file system... it would be a different model. < 1167525065 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm just talking about function calls. < 1167525070 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1167525081 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a program being a normal function? < 1167525095 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Sure. < 1167525168 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but no absolute addresses? < 1167525178 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Why not just have symbolic names as an embedded functionality to the language... with the underlying compiler handling all the finding-the-absolute-memory-address? < 1167525192 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :there could be a registry of names to absolute addresses built-in to the OS. < 1167525227 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :or is that what you were saying we do? < 1167525251 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :to me it sounded like we should build it over the top of the base language like a weird abstraction... that would require quite a bit of work on the programmers behalf. < 1167525267 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :"to me it sounded like you said we should build..." < 1167525286 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(name to look up) <<< would be a sensible syntax for looking up the address of a function to exec < 1167525314 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i guess i'll see the point of making bf more functional at some point < 1167525330 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat_, oh... and hey. < 1167525342 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION waves < 1167525357 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :we were just busy being confused by each others explainations. < 1167525363 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1167525365 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ye < 1167525366 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hi, RodgerTheGreat_ < 1167525444 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :There should be no difference between a function and a program. < 1167525455 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :true < 1167525474 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :no need to stuff applications in huge directory paths. < 1167525501 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :just stuff them in a single os-level function (let's call them a blob for distinction) < 1167525521 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or, a dictionary :D < 1167525525 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :>.> < 1167525531 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :a dictionary is like a hash table. < 1167525537 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :doesn't describe a program too well. < 1167525544 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :isn't that what we want? < 1167525550 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1167525558 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :programs as hash tables? < 1167525561 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, isn't it basically a name to address? < 1167525565 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nje < 1167525572 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh... that's for name-to-address stuff... that's different. < 1167525573 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1167525588 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm talking about what we're going to do for our new "file system". < 1167525624 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :The name-to-address would just be an orthogonally persistent hash table. < 1167525631 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but, wouldn't that make everything use just global variables? < 1167525641 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the no-sub-thingies < 1167525654 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :And what language will you write all this in? < 1167525665 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Each program would have a scope. < 1167525669 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :(You'll excuse me if I'm dripping with scepticism) < 1167525673 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION waves the Def-BF flag < 1167525674 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1167525677 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Err, skepticism < 1167525680 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Get a towel! < 1167525696 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Possibly def-BF if we don't change our mind. < 1167525702 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :and I'm somehow unsurprised that gregor is being pessimistic about the project. < 1167525727 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it seems it's an OS written in Def-BF running only Def-BF < 1167525730 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat_, Do we have to use absolute memory address in def-bf? < 1167525747 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :It's going to be a really long haul if we actually want to produce a useable OS in the end < 1167525757 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I think we might want to reconsider the kernel language though... < 1167525768 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :as ok said... bf isn't terribly efficient. < 1167525776 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it can be if you do it right. < 1167525837 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: it's the best way to do it. In modern operating systems, executables contain absolute addresses which are patched to appropriate values based on where they're loaded as they're loaded into memory < 1167525897 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Can't we use symbolic names and map them through some kind of startup-generated hash table? < 1167525921 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :why not both? < 1167525989 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :that's really no different than a runtime patch. There's no need to store data in a clumsy way (strings) when we can do it in an efficient way (addresses). Absolute addresses are more complex to code with, but that's the *entire* point of having a compiler in the first place. < 1167525990 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :If all else fails and we decide BF isn't a good kernel language... we can just make a new more assembly-friendly esolang. :D < 1167525997 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1167526060 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I wanted the BF extension to be uncumbersome to use on its own instead of a super low-level language... maybe we should split it up into different languages? < 1167526147 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :that's the point of defining Def-BF as a series of high-level variants and a core low-level standard. < 1167526254 0 :jix_!unknown@unknown.invalid QUIT :"Bitte waehlen Sie eine Beerdigungnachricht" < 1167526293 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat_, But is def-BF doing to be an efficient core langauge? < 1167526316 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :it ultimately depends on the level of complexity we build into the compiler < 1167526343 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Maybe we should use an Esoteric Assembly Candy Wrapper Language < 1167526345 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but, my example from before, there is no way to even make the compiler understand a simple division < 1167526365 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and compile it into efficient machine code < 1167526398 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :I figured that at the very least, using Def-BF as a singular standard means we can work on optimizing the compiler together and all abstractions of the low-level language will benefit < 1167526479 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Glass could be an efficient base language. < 1167526482 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: it's true that a simple language like BF is more difficult to compile efficiently than a language with more symbols and keywords. It doesn't make it impossible to compile efficiently, it just requires that your compiler analyzes your code more deeply, resulting in a more complex compiler. It's harder, but possible. < 1167526534 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It has most of the high-level constructs needed to translate directly to machine code.. and it's easy to extend onto... < 1167526552 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, that's way out of my league, and at that point i naturally say it's impossible :) < 1167526587 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1167526596 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :" It has most of the high-level constructs needed to translate directly to machine code." i don't quite follow < 1167526600 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :just my suggestion- never claim something < 1167526608 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :is impossible on #Esoteric. :) < 1167526608 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1167526637 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :well it has a division operator... for example... which could translate directly to the DIV instruction. < 1167526650 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :few esolangs have a division operator. ;) < 1167526661 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :" Glass could be an efficient base language." missed this line < 1167526664 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sorry < 1167526696 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It seems just similar enough to assembly to make a nice translation... while still being freaky as crap. < 1167526701 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Not to mention it's easy to parse. < 1167526713 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Trivial to parse, even ;) < 1167526727 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I still don't know what the bork is with A.a X_X < 1167526758 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :how can it even get bugs without a rebuild? < 1167526770 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, worked fine before < 1167526771 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and the OO gives us a nice organizational structure to easily create higher-level stuff. < 1167526807 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It's probably the most useful esolang I know. :P < 1167526812 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Hah :P < 1167526826 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :the postfix is just a minor setback until you get used to it. < 1167526830 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :then it's strangely intuitive. < 1167526831 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, it's a miserable failure in that sense ;) < 1167526876 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :After a few hours or so I adapted to it. < 1167526912 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :so, we're veering towards a glass-based kernel, using Def-BF for less critical parts of the system? < 1167526929 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :that's where I'm veering... dunno if it's the consensus. < 1167526944 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :if we have problems with that... we can always just try something different. < 1167526947 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :If I knew what Def-BF was :P < 1167526958 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://nonlogic.org/dump/text/1167512946.html < 1167526962 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :fortunately we have no deadline to actually finish this thing. < 1167526976 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :If I got off my lazy bum and finished C2BF, that'd help ;) < 1167526984 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, To avoid cringing... you can ignore most of the high-level part... it's not important to the actual language. < 1167526998 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :pfft < 1167527017 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :everybody's hating on HLDFBF < 1167527017 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It's like CBrainfuck! :o < 1167527032 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :HLDFBF? < 1167527039 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :high-level variant of def-bf < 1167527043 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :High-Level Def-BF < 1167527058 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That's only a sensible shortform if it's High-Level DeF-BF < 1167527069 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :jeje < 1167527095 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :a 6-letter acronym isn't really a sensible shortform in *any* instance... < 1167527097 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Out of all the esolangs, Glass seems like one of the better choices for such a crucial role. < 1167527112 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Without the high-level stuff, it's sort of like BF + setjmp < 1167527130 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah... it's BF with subroutines. < 1167527187 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :esentially < 1167527193 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Plus I'm much much more capable in an OO language than in an impertivive semi-subroutine-al language like def-bf. < 1167527212 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :I thought it was the simplest addition I could make to BF that would allow functions without too much trouble < 1167527221 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :OO and (real) functional languages are my cup of tea. < 1167527230 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION hands CakeProphet Plof. < 1167527238 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1167527241 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :link? < 1167527249 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :http://www.codu.org/plof/ < 1167527259 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :hell, we could go with another famous gregor language and write the kernel in ORK. < 1167527271 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :There is such a thing as a kernel. < 1167527280 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :A kernel can execute a function. < 1167527285 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :A kernel can execute a syscall. < 1167527319 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1167527325 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hahahaha < 1167527326 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yes... ORK < 1167527339 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Glass is funkier though... and less tiring to type. :D < 1167527349 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Plof basically looks like... C. < 1167527352 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :if ORK can meet the I/O requirements, I'm all for using it to write the kernel. < 1167527359 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Plof isn't esoteric by nature :P < 1167527370 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :talk about self-documenting code. < 1167527379 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hahahaha < 1167527400 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Both maybe? < 1167527418 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Or do we need a kernel before we can do the inter-language data stuff? < 1167527449 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I think Ork classes and objects could translates almost trivially into Glass. :D < 1167527456 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... < 1167527478 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Glass' classes are a superset of ORK's classes I believe. < 1167527491 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hahaha... Glass was written in Ork? < 1167527496 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!<2><2>~A.a~(_o)o.?]} < 1167527510 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I just had a thought about why A.a isn't working ... < 1167527511 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :What's the ~ for? < 1167527519 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!<2><2>~A.s~(_o)o.?]} < 1167527523 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: It's the secret way of getting builtin functions :P < 1167527527 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: You're not supposed to use it X_X < 1167527529 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!<2><2>~A.a~(_o)(on).?]} < 1167527533 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :4 < 1167527535 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hah! < 1167527536 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :.... < 1167527537 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ZOMG < 1167527543 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION dies. < 1167527558 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, You didn't tell me there was a secret!!! < 1167527573 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....guess that's why it's a secret? < 1167527582 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ARGH < 1167527586 0 :CakeProphet!unknown@unknown.invalid NICK :SevenInchBread < 1167527589 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :My suspicion was right! < 1167527595 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION bangs his head into a wall < 1167527603 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Somebody overwrote the A class in EgoBot, and it cached the borken one :) < 1167527639 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :aha! < 1167527664 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :!glass {A[a~A.a~][s~A.s~][m~A.m~][d~A.d~][(mod)~A.mod~][f~A.f~][e~A.e~][(ne)~A.ne~][(lt)~A.lt~][(le)~A.le~][(gt)~A.gt~][(ge)~A.ge~]}{S[l~S.l~][i~S.i~][(si)~S.si~][a~S.a~][d~S.d~][e~S.e~][(ns)~S.ns~][(sn)~S.sn~]}{V[n~V.n~][d~V.d~]}{O[o~O.o~][(on)~O.on~]}{I[l~I.l~][c~I.c~][e~I.e~][n~I.n~]}{(Debug)[(cl)~Debug.cl~][(fl)~Debug.fl~][(fc)~Debug.fc~][s~Debug.s~]} < 1167527667 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1167527673 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :... < 1167527683 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!(_a)A!<2><2>(_a)a.?(_o)(on).?]} < 1167527687 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :4 < 1167527690 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION takes a bow. < 1167527715 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :The good thing about esolangs is that they're so simple... translating data from one language into another via some universal OS-centric importing mechanism is easy. < 1167527724 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i was that someone! :DDDD < 1167527731 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, sorry, very sorry < 1167527735 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION shakes his fist :P < 1167527752 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :In the future, if any of the builtin classes are broken, grab the standard definition out of builtins.cc (or from what I just pasted) < 1167527791 0 :tgwizard!unknown@unknown.invalid QUIT :Remote closed the connection < 1167527799 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :this is weird - you mean EgoBot has just one eternally running Glass interpreter? :) < 1167527806 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :errr.... it's a part of the language to be able to rewrite standard classes? :D < 1167527848 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: No, it reruns it, but the standard interpreter can cache classes if you'd like. < 1167527852 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Yes. < 1167527871 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean if i did !glass {A}{S}{M[m]}, my interpretor should no longer have them? < 1167527872 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ORK would be awesome... as well as Glass. :D < 1167527880 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Correct. < 1167527890 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: However, it would only /permanently/ remove them if you used a cache. < 1167527917 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what do you mean? < 1167527920 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :by cache < 1167527940 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Whenever EgoBot is given a Glass program, it saves all of the classes it was given and reuses them the next time. < 1167527953 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So I can use the BF class on EgoBot, since I entered it once a long long time ago. < 1167527961 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wow < 1167527964 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :show it < 1167527986 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :... the cache, the BF class, or the BF class in action? < 1167528013 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M{m(_b)(BF)!">+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.>>>++++++++[<++++>-]<.>>>++++++++++[<+++++++++>-]<---.<<<<.+++.------.--------.>>+."(_b)(bf).?]} < 1167528015 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1167528020 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M["+++."m(_bf)0BF!(run).?]} < 1167528021 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Errrm, that was borken a bit :) < 1167528025 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1167528030 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_b)(BF)!">+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.>>>++++++++[<++++>-]<.>>>++++++++++[<+++++++++>-]<---.<<<<.+++.------.--------.>>+."(_b)(bf).?]} < 1167528035 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hello World! < 1167528059 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wow cool < 1167528066 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :can i see the codE? < 1167528104 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :One sec. < 1167528159 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Hm :P < 1167528167 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Pastebin! :P < 1167528301 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, Do you have a list constructor? < 1167528304 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I was making one myself. < 1167528324 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :lemme see if egobot still has it. < 1167528328 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :http://pastebin.ca/297373 < 1167528341 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I have Arr, which is really a LLL despite being called an Arr[ay] :P < 1167528416 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :LLL? < 1167528442 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!(_c)(Con)! <2><3>(_c)(build).?(cdr).?(_o)o.?]} < 1167528449 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Linear Linked List < 1167528453 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1167528482 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I am apparently the only person on the planet that shortens it to LLL ;) < 1167528498 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :The syntax for a singleton class in ORK should be "There can be only one " < 1167528504 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :which would sound cool for building a kernal. < 1167528509 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :There can be only one kernal... < 1167528522 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ORK's compiler is OSS, have at it ;) < 1167528549 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :What's it written in? < 1167528574 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Either C or C++ I'm sure. < 1167528580 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Bleh. < 1167528581 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :(It's been a while since I wrote it ;) ) < 1167528587 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Glass is in C++ :P < 1167528591 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :EgoBF is in C ... < 1167528596 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :EgoBot is in C++ < 1167528599 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Glass would more readily translate to assembly, methinks. < 1167528607 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :as far as parsing... and some other things. < 1167528732 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :bbiab < 1167528740 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :lol k < 1167528747 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally, who the bork is SevenInchBread? < 1167528755 0 :SevenInchBread!unknown@unknown.invalid NICK :CakeProphet < 1167528759 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Ahhhhhhhhhhh < 1167528766 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :My true form is revealed. < 1167528768 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :You prophesized bread instead of cake then? < 1167528769 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I have countless nicknames. < 1167528776 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :no no... I'm just... bread. < 1167528781 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it's not meant to be taken literally. < 1167528785 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it's very surreal, you see. < 1167528789 0 :CakeProphet!unknown@unknown.invalid NICK :GrandmotherChaos < 1167528803 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I don't understand such nicks, given that mine is as uninteresting as they come. < 1167528805 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :The Mother of a Thousand Crumbs... < 1167528820 0 :GrandmotherChaos!unknown@unknown.invalid PRIVMSG #esoteric :SevenInchBread just sounded bizzare... < 1167528823 0 :GrandmotherChaos!unknown@unknown.invalid PRIVMSG #esoteric :it's my favorite. < 1167528832 0 :GrandmotherChaos!unknown@unknown.invalid PRIVMSG #esoteric :in fact... < 1167528836 0 :GrandmotherChaos!unknown@unknown.invalid NICK :SevenInchBread < 1167528839 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ah... there we go. < 1167528986 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, GREGOR < 1167528991 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :WILL YOU HELP US? < 1167528995 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :WILL YOU SAVE THE DAY? < 1167529031 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :?.? < 1167529056 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!bf >.< < 1167529080 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!ps < 1167529083 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :2 SevenInchBread: ps < 1167529092 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!bf >.< < 1167529096 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!bf >.< < 1167529101 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!bf >+.< < 1167529104 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric : < 1167529107 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Yay < 1167529134 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Wha? < 1167529138 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!bf +[.+] < 1167529142 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric : < 1167529157 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!kill 1 < 1167529159 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!ps < 1167529164 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :!bf +[>+] < 1167529168 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Process 1 killed. < 1167529170 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :1 SevenInchBread: ps < 1167529171 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :WEEEEEEEEEEEEEEEEEEEEEEH < 1167529171 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1167529172 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :realloc: Cannot allocate memory < 1167529193 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :We killed it? < 1167529200 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Nah < 1167529204 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That was just EgoBF dying ;) < 1167529216 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Ah... it's fault taulerant. :D < 1167529233 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Is it like... a bunch of subprocesses basically? < 1167529245 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It is like a bunch of subprocesses literally. < 1167529285 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Python has really nifty subprocess handling... < 1167529292 0 :cmeme!unknown@unknown.invalid QUIT :"Client terminated by server" < 1167529296 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :hip-hip hurray for OO and functional. < 1167529303 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1167529320 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :GREGORR < 1167529324 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :WILL YOU HELP US? < 1167529327 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :EgoBot is nothing more than a collection of different interpreters written in all sorts of different languages. < 1167529334 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Plus a runtime environment for them. < 1167529342 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :BUILD THE PERFECT OS? < 1167529342 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I might. < 1167529347 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'm just skeptical is all. < 1167529361 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Confidence goes a long way. :D < 1167529679 0 :Sukoshi!unknown@unknown.invalid PART #esoteric :? < 1167529689 0 :Sukoshi!n=user@user-11faadf.dsl.mindspring.com JOIN :#esoteric < 1167529963 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!glass {(Con) [(c__)a2=b1=] [(car)a*] [(cdr)b*]} {M[m(_o)O!(_er)(Con)!(_e)<1><2>(_er)(build).? (_e)(car).?(_o)o.?(_e)(cdr).?(_o)o.?]} < 1167530004 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!glass {(Con) [(c__)a2=b1=] [(car)a*] [(cdr)b*]} {M[m(_o)O!(_er)(Con)!(_e)<1><2>(_er)(build).?= (_e)(car).?(_o)o.?(_e)(cdr).?(_o)o.?]} < 1167530019 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(on) < 1167530063 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!glass {(Con) [(c__)a2=b1=] [(car)a*] [(cdr)b*]} {M[m(_o)O!(_er)(Con)!(_e)<1><2>(_er)(build).?= (_e)(car).?(_o)on.?(_e)(cdr).?(_o)on.?]} < 1167530077 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the parentheses are mandatory < 1167530081 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :... < 1167530085 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :forgot < 1167530097 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!glass {(Con) [(c__)a2=b1=] [(car)a*] [(cdr)b*]} {M[m(_o)O!(_er)(Con)!(_e)<1><2>(_er)(build).?= (_e)(car).?(_o)(on).?(_e)(cdr).?(_o)(on).?]} < 1167530166 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!glass {(Con) [(c__)a2=b1=] [(car)a*] [(cdr)b*]} {M[m(_o)O!<1><2>(_er)(Con)! (_e)(car).?(_o)(on).?(_e)(cdr).?(_o)(on).?]} < 1167530173 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :forgot Con didn't have the build method like List. < 1167530186 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!glass {(Con) [(c__)a2=b1=] [(car)a*] [(cdr)b*]} {M[m(_o)O!<1><2>(_e)(Con)! (_e)(car).?(_o)(on).?(_e)(cdr).?(_o)(on).?]} < 1167530190 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :12 < 1167530193 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :whooo < 1167530200 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :exciting. < 1167530231 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i still suggest you add ,, to the constructor. < 1167530243 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Where? < 1167530250 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :and why? < 1167530302 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!glass {(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*]} {M[m(_o)O!<1><2>(_e)(Con)! (_e)(car).?(_o)(on).?(_e)(cdr).?(_o)(on).?]} < 1167530303 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :just before the ], to remove the arguments. < 1167530306 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :12 < 1167530313 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :But it works the same doesn't it? < 1167530385 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :only if you don't need to use anything below it in the stack < 1167530429 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Hey GregorR < 1167530438 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :You should add some more special methods. :D < 1167530440 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :to Glass. < 1167530447 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Like maybe an output method. < 1167530469 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :So objects can have customized output with just one universal call. < 1167530499 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :like in... python? < 1167530504 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :off to sleep -> < 1167530509 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :well... it's a good idea. < 1167530526 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i ain't saying it ain't < 1167530527 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1167530535 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Technically speaking, you can implement a o and on method in any class and pass that in instead of an O class *shrugs* < 1167530571 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :but then you have to determine type. < 1167530588 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :like in the cons constructor... how would we know what type of elements we're dealing with? < 1167530596 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :if they all have different ways to be outputted. < 1167530621 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :OH < 1167530629 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Never mind, I didn't understand what you meant ;) < 1167530670 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm, that's true. it means the methods need to be added to numbers and strings as well. < 1167530679 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!glass {(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(ols)(_o)O! a*(_o)o.? b*(_o)o.?} {M[m(_o)O!"Hello " "World!"(_e)(Con)! (_e)(car).?(_o)(on).?(_e)(cdr).?(_o)(on).?]} < 1167530682 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :00 < 1167530689 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :the (ols) method I just added would only work for strings... < 1167530694 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :if... it wasn't bugged... < 1167530703 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :one moment. < 1167530729 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!glass {(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(ols)(_o)O! a*(_o)o.? b*(_o)o.?} {M[m(_o)O!"Hello " "World!"(_e)(Con)! (_e)(ols).?]} < 1167530762 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :of course you _can_ wrap them in classes. < 1167530802 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :How does that solve the problem of segmented outputting functions? < 1167530820 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :It's not really... a problem.. < 1167530828 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :just, would be nifty. :D < 1167530854 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :damn type-based operators. >.< < 1167530855 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it means you can wrap any object which doesn't have an o method in another object which does the translation. < 1167530894 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I'm not found of excess wrapping paper. :P < 1167530932 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... a wrapper paper language. < 1167530959 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :"Well... before you can output a string in WrapLang you have to wrap it in a string-output-wrapper class... and then call the subsequence output method" < 1167530970 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :to give it output functionality. < 1167531078 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Having a crapload of special methods is one of the coolest things about OO :D < 1167531106 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :we could define classes corresponding to each of the non-object datatypes, allowing methods to be defined for them. < 1167531161 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :sounds too complicated. < 1167531209 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i mean, so you could define your own methods that worked on every value, if you wanted. < 1167531332 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_lol)V! "whee"(_lol)n.? (_o)O! (whee)(_o)o.?]} < 1167531334 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :whee < 1167531354 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m (_o)O! (whee)(_o)o.?]} < 1167531356 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :whee < 1167531359 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m (_o)O! (whee)(_o)o.?]} < 1167531360 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :whee < 1167531363 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m (_o)O! (wheewwwwwwwwwwwwwwwwwwwwwww)(_o)o.?]} < 1167531366 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :wheewwwwwwwwwwwwwwwwwwwwwww < 1167531372 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m (_o)O! (wheewwwwwwwwwwwwwwwwwwwpeniswwww)(_o)o.?]} < 1167531374 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :wheewwwwwwwwwwwwwwwwwwwpeniswwww < 1167531389 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Yes, yes, Glass will let you treat variable references as strings X_X < 1167531397 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :BRILLIANT < 1167531399 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :... < 1167531420 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m (_o)O!(1)(_o)o.?]} < 1167531431 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Did Glass explode? < 1167531447 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m (_o)O! (_o)(_o)o.?]} < 1167531450 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :_o < 1167531465 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ah... yeah _o is just a reference name. < 1167531466 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hmm... < 1167531477 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m (_o)O! (_o)o.(_o)o.?]} < 1167531497 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m (_o)O! "Test" (_o) "o".?]} < 1167531513 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alas :) < 1167531537 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m (_o)O! (_o)o.?(_o)o.?]} < 1167531551 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m (_o)O!"lol" (_o)o.?(_o)o.?]} < 1167531552 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1167531571 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you have some serious stack underflow there. < 1167531607 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :stack underflow? < 1167531639 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :trying to get values from an empty stack < 1167531695 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm... < 1167531712 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!(_o)(on).]} < 1167531746 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m (_o)(BF)! "+[+.]"(_o)(bf).?]} < 1167531748 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric : < 1167531757 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!ps < 1167531760 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :1 SevenInchBread: glass < 1167531762 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :2 SevenInchBread: ps < 1167531763 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!kill 1 < 1167531764 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Process 1 killed. < 1167531803 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Well... if we use Glass for the core language... we already have the problem of implementing a bf interpreter solved. :D < 1167531820 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Just not a functional bf :D < 1167532149 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :For some reason, I find this error message infinitely hilarious: < 1167532151 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :/usr/lib/libc.a(init-first.o):(.data+0x0): multiple definition of `__libc_multiple_libcs' < 1167532273 0 :SevenInchBread!unknown@unknown.invalid NICK :CakeProphet < 1167532437 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1167532451 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is making a Vampire the Masquerade character. < 1167532464 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Designing an OS -and- playing tabletop.... I'm such a nerd. < 1167532547 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Oh noes, I'm going to have to start putting "2007" in the copyright lines soon 8-X < 1167532771 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_a)A!(_o)O!<1.2><3>(_a)m.?(_o)(on).]} < 1167532791 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_a)A!(_o)O!<1.2><3>(_a)m.?(_o)(on).?]} < 1167532795 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :3.6 < 1167532820 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_a)A!(_o)O!<4.0><3>(_a)d.?(_o)(on).?]} < 1167532823 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :1.33333 < 1167532827 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_a)A!(_o)O!<4><3>(_a)d.?(_o)(on).?]} < 1167532831 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :1.33333 < 1167532852 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_a)A!(_o)O!<4.0><3>(_a)a.?(_o)(on).?]} < 1167532855 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :7 < 1167532916 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Well, good night. < 1167532919 0 :oerjan!unknown@unknown.invalid QUIT :"Leaving" < 1167533062 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, I do public domain myself. < 1167533069 0 :ihope_!n=foo@cpe-071-075-186-016.carolina.res.rr.com JOIN :#esoteric < 1167533078 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Yay! My clumsily built BF interpreter works. < 1167533081 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: I have no clue what that's in response to. < 1167533087 0 :ihope_!unknown@unknown.invalid NICK :ihope < 1167533093 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, Changing copyrights. < 1167533106 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ihope, Wanna built an Esoteric Operating System? < 1167533123 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: I have no clue when I said anything regarding that :P < 1167533203 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :"> Oh noes, I'm going to have to start putting "2007" in the copyright lines soon 8-X" < 1167533256 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :OH < 1167533269 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Well, public domain is just plain bad, so *shrugs* < 1167533304 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Why's that? < 1167533311 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :http://deadbeefbabe.org/paste/3088 <--crappy BF interpreter. < 1167533328 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :With public domain, you can't add a warantee disclaimer. < 1167533353 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :However, you're still liable. < 1167533356 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but... if it's public domain... you don't "own" it. < 1167533362 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :But you're still liable. < 1167533370 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....well that's a crock of shit < 1167533370 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That's the f***'d-up-ness of copyright. < 1167533389 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I prefer MIT minus attributionl < 1167533391 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :-l < 1167533395 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: I'm sort of in the habit of immediately closing all server tabs and clicking on everything red, so I didn't notice your thing about an esoteric operating system. < 1167533403 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: where's it say that? < 1167533420 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ihope: ? < 1167533433 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... I do like that I had a chance to use a coroutine in my BF interpreter. < 1167533434 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :About the public domain. < 1167533437 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It's an interesting way to do. < 1167533455 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :So, as for the operating system... well, I'd rather build a less esoteric one. < 1167533463 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Just what is an esoteric operating system? < 1167533474 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :The goal is to eventually make it a useful OS. < 1167533479 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :fun, but still useful. < 1167533489 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it's an OS built from esolangs. :D < 1167533505 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ihope: IANAL, this is just what I've been told. < 1167533522 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hehe... "I anal" < 1167533646 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: yes, he is. < 1167533648 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1167533658 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::o < 1167533670 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :My knowledge of copyright law is probably built entirely from gists and FAQs. < 1167533688 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Mine is based on FAQs and Bart Massey. < 1167533692 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I always think I know more about things than I really do, maybe. < 1167533707 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I know exactly how exercise works, for example. < 1167533731 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And I know that starchy foods are best. < 1167533762 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ihope, At the moment... it looks like we're going to be using Glass to build the kernel... it'll have no filesystem, and all programs will work like "universal functions". < 1167533775 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :No filesystem? < 1167533779 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :nope. < 1167533784 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :What platform are we going to build this on, exactly? < 1167533785 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :universally continguous memory. < 1167533794 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :*shrugs* dunno. < 1167533801 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Not x86, I take it. < 1167533812 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I don't know a lot about the specifics. < 1167533820 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It would probably run /on/ x86 < 1167533825 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :But would not /run/ x86 code. < 1167533831 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Under emulation? < 1167533851 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Let's call the platform SOAP. < 1167533854 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Glass would be the closest thing to the assembly language. < 1167533861 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I like it. < 1167533863 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :the name. < 1167533865 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :For eSOAteric Platform. < 1167533882 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....questionable acroynmical roots. :P < 1167533889 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but... oh well. < 1167533896 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Misspellings always make wonderful acronyms. < 1167533909 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I mean, it's no worse than Get Rid Of Slimy girlS, is it? < 1167533943 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :So Glass is our platform? < 1167533948 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Apparently. < 1167533953 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I certainly agree with that :P < 1167533955 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Wonderful. < 1167533968 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :We just need a hardware interface. < 1167533986 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :If I'm not mistaken, hardware interfacing on the x86 is done with memory mapping. < 1167533997 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And I may well be mistaken. < 1167534021 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I don't even have the slightest bit of a clue. < 1167534066 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Must ... find ... something like OSKit ... but more up-to-date. < 1167534075 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :... < 1167534279 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, Glass doesn't exactly have reading and writing to specific addresses, does it? < 1167534289 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Objects have variables, though, right? < 1167534302 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :No and yes, respectively. < 1167534335 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :So you could say something of class 1000 has 1000 values in it, and if each one happens to contain a 1000, then you have 1000000 values? < 1167534360 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :(1000 isn't a valid class name, is it?) < 1167534376 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :No, it isn't ;) < 1167534568 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :We can change the implementation. < 1167534580 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :to allow memory addressses. ;) < 1167534599 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Sure < 1167534608 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So long as you call it chaning the /language/ < 1167534610 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it would be trivial... if we're going to be working so close to the machine code. < 1167534623 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :nah... just adding a new class. :D < 1167534638 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :same language... new builtin class. It's a "feature request" :P < 1167534640 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Oh < 1167534642 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1167534642 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :not cheating. < 1167534645 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hehehe < 1167534661 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Vote #1: < 1167534675 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Write the kernel entirely from scratch, or use something like OSKit? < 1167534685 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I dunno. Some wacko extension to BF might be better. < 1167534690 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... should update the OS page... < 1167534699 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ihope, we tried that. :D < 1167534711 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :(We|You) did? < 1167534715 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Def-BF.... a version of BF with memory addressing for subroutines. < 1167534720 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :(And which, for that matter?) < 1167534727 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Def-BF had what? < 1167534734 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :We (Me, Richard, et al) < 1167534749 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :you can call subroutines by absolute address. < 1167534754 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I take it I'm not part of the "we". < 1167534759 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Subroutines, pah. < 1167534760 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it's BF with a crude subroutine call. < 1167534797 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but.... Glass would be far better... plus it's not "cheating", and it'll be more efficient. < 1167534801 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :We need self-modifying BF with RAM instead of SAM. < 1167534821 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Glass is not an assembly-like thingy! We must be absolutely traditional! < 1167534825 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ihope, other ideas that were tossed around include othogonal persistency. < 1167534839 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1167534842 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Actually, self-modifying BF is a little hackish as well. < 1167534876 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I had an idea for such a BF in my head at one point. < 1167534877 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Well, such a BF thing might be cool. < 1167534888 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but... really... Glass works much much better than BF of any sort. < 1167534904 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION should name his self-modifying BF such-a-BF < 1167534906 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Let's make a new language that has a system mode and a user mode, and traps. < 1167534910 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :since that's what we're calling it. < 1167534913 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And nothing else. < 1167534970 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :We could have "enter user mode" be the only instruction... then again, that gives no control whatsoever. < 1167534980 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :.... < 1167534986 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I vote Glass... < 1167534988 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1167534993 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :"Enter user mode" and "fudge trap registers"? < 1167534995 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :fuck your userless usermode switching language. < 1167535003 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Bhm. < 1167535051 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :How, exactly, does one load a program and run it with Glass? < 1167535063 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm? < 1167535080 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :How does a Glass program load a program and run it? < 1167535084 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :A Glass kernel, rather. < 1167535094 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :We haven't really touched the specifics yet. < 1167535096 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so... dunno. < 1167535121 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It could have interpreters written in Glass (or as object files) < 1167535137 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Interpreters? < 1167535140 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :You mean emulation? < 1167535155 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :no... interpreters :P < 1167535164 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Portable Executable files contain x86 assembly, don't they? < 1167535178 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And whatever ELF stands for, too? < 1167535199 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Uh, yeah ... < 1167535215 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Glass could use some facelifting... < 1167535217 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Interpreters are a little slow, you know. < 1167535220 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :some nifty special methods. < 1167535225 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Especially when you're running the interpreter under emulation. < 1167535252 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it would make it easy to universalize data from different languages... to do the whole all-programs-can-call-each-other thing. < 1167535261 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :WE'RE TALKING ABOUT AN ESOTERIC OS < 1167535266 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :YES < 1167535266 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Slow is the last of our problems. < 1167535271 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1167535275 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :LOL < 1167535277 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :CAPS LOCK < 1167535278 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :NOOB < 1167535283 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :yAY, CAPS LOCK. < 1167535301 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :sO WE DON'T CARE ABOUT SPEED, THEN? < 1167535312 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Optimization can come later. < 1167535317 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Not that much, no. < 1167535324 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but... speed is still up there in the "to think about" list. < 1167535326 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I guess we can emulate, then. < 1167535331 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :just... less important than it normally would be. < 1167535356 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :The kernel should have interpreters (perhaps JIT) for Glass, BF, etc) < 1167535377 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :GTG, BBIAW < 1167535379 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION disappears. < 1167535427 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Be back in a while? < 1167535430 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :...Yeah, I guess. < 1167535445 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Anyway... Glass. How are we going to do the hardware interfacing? < 1167535497 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :how do you normally do hardware interfacing? < 1167535516 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Memory mapping or special commands. < 1167535530 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :As in I don't know which, not you can choose which. < 1167535549 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :well... we can just build it into the implementation of Glass. < 1167535550 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Though maybe both are commonly used. < 1167535553 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :as more classes :D < 1167535566 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I guess memory mapping would use special things anyway. < 1167535572 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :that map to whatever underlying interface is required. < 1167535594 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :So add a special Hardware class and whatever methods you need. < 1167535626 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Now, I'm about to rush upstairs, so anything you may hear from me may well be my little cousin. < 1167535697 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is on guard. < 1167535750 0 :Asztal!n=asztal@host81-158-88-90.range81-158.btcentralplus.com JOIN :#esoteric < 1167535839 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Asztal, rawr < 1167535911 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :why hello < 1167536095 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Asztal, Wanna build an esoteric OS? :D:D < 1167536197 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1167537056 0 :Asztal!unknown@unknown.invalid QUIT :Nick collision from services. < 1167537061 0 :Azstal!n=asztal@host81-158-88-90.range81-158.btcentralplus.com JOIN :#esoteric < 1167537063 0 :Azstal!unknown@unknown.invalid NICK :Asztal < 1167537122 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :HEY AZSTAL < 1167537129 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :WANNA BUILD AN ESOTERIC OS WITH US? < 1167537135 0 :CakeProphet!unknown@unknown.invalid NICK :SevenInchBread < 1167537206 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :sounds excellent < 1167537371 0 :SevenInchBread!unknown@unknown.invalid NICK :CakeProphet < 1167538140 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :HEY CAKEPROPHET, time to stop using capslock :P < 1167538156 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :LOL FUCK U < 1167538158 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :As per hardware interfacing, builtin classes is the obvious solution. < 1167538174 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :builtin classes seems to be the solution for most anything. < 1167538189 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :"How do we do that?" "Pop in another built-in class" < 1167538215 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :OR we could just make assembly a supported language. < 1167538288 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :lol. < 1167538294 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :That would be the noob way to do it. < 1167538307 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Everything must be in Glass. < 1167538323 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :"SOAP... made entirely of Glass" < 1167538334 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Um, at some level there has to be a glass interpreter. < 1167538335 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So no. < 1167538336 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I surely wouldn't want to bathe with glassy soap. < 1167538351 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, Yeah I know... I'm just playing. < 1167538366 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries to roll his own multiboot kernel. < 1167538371 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :We should mos def use Glass instead of boring Assembly language. < 1167538684 0 :ivan`!unknown@unknown.invalid QUIT :" Want to be different? HydraIRC -> http://www.hydrairc.com <-" < 1167538792 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :back < 1167538853 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :ihope: http://nonlogic.org/dump/text/1167538452.html < 1167538860 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :^ the Def-BF spec < 1167538968 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :looks like my poor little language has already fallen from vogue, based on the logs < 1167538974 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :sigh < 1167538982 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :such is the fate of most esolangs < 1167538996 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Specification minus implementation equals zero. < 1167539013 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :well, of course < 1167539013 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Under that logic... < 1167539019 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Specification = implementation < 1167539037 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :With esolangs, that's usually true :) < 1167539062 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :I wouldn't say a spec is nothing, but it's less than %10 of the work of creating an esolang. < 1167539072 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :If it's going to be esoteric, are you going to do away with unfashionable and outmoded concepts such as files and processes and invent more quirky ones? < 1167539078 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Specification - inplementation + inplemntation = 0 + inplementation < 1167539080 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1167539091 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Asztal, Pretty much. < 1167539098 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :Asztal: well, we've already decided to get rid of files. < 1167539108 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :not sure what we're doing about processes just yet < 1167539111 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :Good. I hated them anyway < 1167539118 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah.. < 1167539136 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :Living beings with hit points, armour ratings etc? < 1167539148 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm thinking we can hardwire most programs to be like OS-level functions that can be called with input and return an output... < 1167539155 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :and I think that even if we code the kernel in glass, Def-BF will be a powerful tool for writing utilities and applications < 1167539162 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :programs could communicate with the OS to call up other programs and retrieve their output. < 1167539179 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat_, Without the memory addressing thing. :P < 1167539190 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat_, But yeah... it's definetely a step up from BF/ < 1167539221 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :just because you fear pointers doesn't make them useful or useable, CakeProphet. ;) < 1167539236 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I know. < 1167539239 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :They're not. :P < 1167539264 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I never made claims to pointers being usable. < 1167539273 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1167539300 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't prove the inverse either < 1167539394 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :regardless, pikhq seemed interested in the language, so the two of us will likely build a development package for it in short order < 1167539430 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :once we get a codebase together, I reckon it'll look pretty attractive < 1167539634 0 :digital_me!n=william@209-234-165-2.static.twtelecom.net JOIN :#esoteric < 1167539644 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :howdy, digital_me < 1167539670 0 :digital_me!unknown@unknown.invalid PRIVMSG #esoteric :Hello < 1167540216 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :so the idea is to not only run esoteric languages on a platform written in almost entirely esoteric languages, but also to allow some sort of magic interop between them? or have I misread "The current plan is that programs should act like modular components that can be imported and called by other programs via underlying OS magic"? < 1167540291 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :That's about right. < 1167540322 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It sounds simple to do... just treat programs as input-output units (akin to a file... but not shoved into long-winded pathnames) < 1167540339 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :my original concept was that you'd have a basic kernel providing memory management, tasking, basic I/O, etc, and it could load esolang interpreters as "modules". You'd then use these interpreters to run all your utilities and applications that make up a useable system. < 1167540393 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :all you need is a good standardized I/O system that all the interpreters conform to, and you have yourself the ultimate esoteric OS < 1167540419 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :all programs deal with numbers in the end... that's the universal output stream. < 1167540428 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :ideally, the kernel and it's modules would also be coded as much in esolangs as possible < 1167540465 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but there will probably be some API to specify output as a string or something. < 1167540490 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It's up to the language to choose how to handle the data though. < 1167540496 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :so far, Glass and Def-BF appear extremely promising languages for the task, with glass likely better for a kernel (better I/O), and Def-BF well suited to building modular libraries and large applications < 1167540510 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :gotta go, 4:40am. I'll read the logs though :) < 1167540516 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1167540518 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :cya < 1167540518 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Glass is pretty well suited for that task too... being OO. < 1167540522 0 :Asztal!unknown@unknown.invalid QUIT :"Chatzilla 0.9.75 [IceWeasel 1.0.1b2] (kidding!)" < 1167540523 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alrighty < 1167540548 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :OO doesn't necessarily mean it's easy to make into machinecode. < 1167540577 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... but Glass is pretty machine-codish. < 1167540598 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but so if BF :D < 1167540605 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :BF just isn't quite as efficient. < 1167540614 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :it's powerful, but I don't think glass is much like machinecode < 1167540620 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so... something like a kernel... might not prove too effective. < 1167540642 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :BF is more machine-code-ish, but I can't realistically see people writing a kernel in it. < 1167540675 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :In the meantime, I'ma work on my self-modifying MUD codebase. :D < 1167540709 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :the main advantage I see with Def-BF is the fact that we can take advantage of all existing BF code and tools like pikhq's BFM- that's why I think it's a good way to provide some libraries for the OS < 1167540727 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Definetely. < 1167540752 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and since we plan on having all languages capable of communicating I/O to each other... that'll give us a nice backbone. < 1167540787 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure it can take the place of C as a primary coding language, but I think it'd make a nice equivalent of perl or TCL as a primary scripting and utility language < 1167540871 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so... Glass, ORK, Def-BF, Befunge... < 1167540877 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :it'd probably be possible to use it to build a kernel, but it ultimately depends on what has the support of the coding team < 1167540889 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Really you could use BF as a stand-alone... since programs are themselves functions of a sort. < 1167540899 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :I'm not really sure how Befunge will fit into the mix < 1167540933 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :Def-BF makes it easier to fit loose BF programs into a framework for controlling them as a group < 1167540951 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Righto. < 1167540969 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It'd be a mess to do in regular BF. < 1167540973 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1167540990 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :it wouldn't be impossible, but it'd make it a bitch to add and remove things < 1167541020 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Befunge is... hmmm... < 1167541030 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It's kind of a "wiring" language.. < 1167541032 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it's spatial. < 1167541054 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1167541070 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Ork and Glass have obvious uses with OO. < 1167541093 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :I think they'd both be useful for applications programming < 1167541113 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :The OS API for interchanging data might include a way to import individual objects and functions from the less basic esolangs. < 1167541121 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :can you think of any other esolangs with some fashion of usefulness to them? < 1167541141 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... there's plenty I'm sure. < 1167541160 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :We don't need just the useful ones... we can implement a ton just for the hell of it. :D < 1167541161 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :I'll probably build a SYNTHESYS port, but I'm not sure self-modifying code is all that important for OS work. < 1167541170 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :INTERCAL? < 1167541182 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :well, yeah, but we need a handful of useful ones to build the core OS with < 1167541204 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hehe... malboldge. < 1167541214 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :I don't like the idea of having my choices for writing a shell limited to BF, malbolge or turkeybomb. < 1167541245 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :can you think of any graphically-oriented languages that could be used for coding a window manager or something? < 1167541276 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... yeah I've been wondering how the GUI will look with no filesystem. < 1167541284 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :not to mention... how we'll do no filesystem. < 1167541350 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :I have a few good ideas for designing a new GUI paradigm- leave that to me. < 1167541360 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :all I need is a good language to build with < 1167541375 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :some form of OISC could be useful for something... < 1167541407 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :OISC is pretty weird, but has real-world applications < 1167541434 0 :digital_me!unknown@unknown.invalid QUIT :"holy lol!" < 1167541440 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :lol... fuck the real world. < 1167541445 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :We don't need it < 1167541459 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I think it would be cool to have like... a scrollable "plain". < 1167541493 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but... that's kind of weird. < 1167541497 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :for a GUI. < 1167541539 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Here's the problem with every EsoOS ever: Nobody can make up their F'ing mind on anything. < 1167541561 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :well, so far we've made a little progress. < 1167541574 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :deciding on a core language is the first step. < 1167541598 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :heh... there's no deadline. < 1167541608 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :we can take eternity goign back and forth if we want. < 1167541610 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :no rush. :D < 1167541614 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :now we need an elegant system for allowing the languages to collaborate < 1167541627 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: the only deadline is "before we all get bored and quit" < 1167541636 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Yup. < 1167541643 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :No, what we need is an actual design for a kernel. How the languages correspond is fluff. < 1167541667 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION cracks his knuckles. < 1167541683 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :sounds like I'm going to hammer out another specification < 1167541693 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::( Some more pessimistic and you're going to morph into a grumpy coder... < 1167541720 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :grumpy coders are absolutely the most annoying creature I've ever encountered... but I don't know why. < 1167541738 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :he already *is* a grumpy coder. His role in the project is grounding our overflowing enthusiasm with realism. < 1167541759 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :all in all, not necessarily a bad thing < 1167541773 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....fuck realism < 1167541778 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it's like the real world < 1167541781 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :we don't need it. < 1167541900 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :well.... I really have NO clue how to do a kernel. < 1167541904 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so.... you've got me there. < 1167541938 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I can write a kernel, but I don't know what anybody actually wants. < 1167541952 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :I have some ideas as to how to design one < 1167541956 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah... there's a lot of details you can specify in a kernel. < 1167541973 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :ok, so what are the most basic things we need in the kernel? < 1167542010 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :1) a memory manager that can take available RAM and disk space and address it as a contiguous region, handling swapping, etc, transparently < 1167542013 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I think the kernel proper should be an interpreter for a superset of some language (say, Glass) which will provide interface to the hardware. < 1167542022 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1167542033 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :disk control, hardware I/O (a superset of disk control), memory management. < 1167542045 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh... have the kernel be the Glass interpreter... brilliant. < 1167542055 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :that language will in turn be used to write the interpreters for other languages < 1167542059 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :sounds solid < 1167542061 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :With a good hardware layer, all of that can be hypothetically written in the language of choice. < 1167542070 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1167542072 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :That like... puts all the OO-ness of Glass directly atop the kernel... sounds good. < 1167542087 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It's fine if that's hypothetical, so long as we can actually write things like simple shells et cetera :P < 1167542156 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :so the task boils down essentially to extending the built-in library for Glass and getting an interpreter for it running on bare metal < 1167542175 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :How will we do disk writing? I mean... do we really want hard disk totally independent from virtual memory? < 1167542187 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It's kind of annoying to have to save everything to a file explicitly. < 1167542189 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :do we want the kernel to run a single language, or several "core" languages? < 1167542207 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hehe... glass on metal. < 1167542212 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1167542235 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :then we just need to call the API "plastic" < 1167542243 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1167542251 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :and the library "wood" < 1167542257 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hahahaha < 1167542269 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and the whole OS SOAP. < 1167542285 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :which has the added benefit of an infinite supply of "my kernel's got wood" jokes < 1167542298 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION DIES < 1167542298 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Actually, just one. < 1167542304 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Namely, "my kernel's got wood" < 1167542327 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :I'm sure I can think of another given time < 1167542369 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :mmm... the whole save-to-disk-explicitly thing seems kind of outdated. < 1167542374 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :surely we can do better than that? :D < 1167542556 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :just do it like Uuu- make EVERYTHING virtual memory. As things get paged to disk, they're "auto-saved" < 1167542581 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I think they do some other stuff too... for efficiency. < 1167542603 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and... sometimes you don't want everything on hard disk. :D < 1167542614 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :well, yeah. Everything is more complex in practice than in theory < 1167542624 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :*nods* < 1167542629 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :That's just the basic idea. < 1167542974 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, You've been involved in other esoos projects that failed? :D < 1167544072 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :good night- I'll return sometime tomorrow < 1167544092 0 :RodgerTheGreat_!unknown@unknown.invalid QUIT : < 1167545497 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: More like I've watched other such projects fail :P < 1167546944 0 :ivan`!n=ivan`@wikipedia/ivan JOIN :#esoteric < 1167547451 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :OK, somebody link me to the simplest C BF interpreter on earth :P < 1167547567 0 :ivan`!unknown@unknown.invalid QUIT :" HydraIRC -> http://www.hydrairc.com <- The future of IRC" < 1167548044 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :OK, well, I can write a BF interpreter as a kernel now :P < 1167548608 0 :ihope!unknown@unknown.invalid QUIT :Connection timed out < 1167551664 0 :Arrogant!n=Arrogatn@50.191.33.65.cfl.res.rr.com JOIN :#esoteric < 1167551939 0 :Arrogant!unknown@unknown.invalid QUIT :Client Quit < 1167551999 0 :clog!unknown@unknown.invalid QUIT :ended < 1167552000 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1167555657 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm? < 1167555679 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, chomp < 1167555764 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm doinh yo sleep. < 1167555772 0 :CakeProphet!unknown@unknown.invalid QUIT :"fuck you" < 1167558744 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1167560015 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :" OK, well, I can write a BF interpreter as a kernel now :P" << wow i'm beginning to think it's gonna happen :D < 1167560021 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the os i mean < 1167560659 0 :ivan`!n=ivan`@wikipedia/ivan JOIN :#esoteric < 1167562858 0 :tgwizard!n=tgwizard@c-9b3ee155.178-1-64736c10.cust.bredbandsbolaget.se JOIN :#esoteric < 1167564312 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!(_t)(_o)=/(_t)"test"(_o)o.?(_t)<0>=\" ho"(_o)o.?]} < 1167564314 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric : ho < 1167564360 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!(_t)(_o)*=/(_t)"test"(_o)o.?(_t)<0>=\" ho"(_o)o.?]} < 1167564363 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric : ho < 1167564374 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!(_t)(_o)o.=/(_t)"test"(_o)o.?(_t)<0>=\" ho"(_o)o.?]} < 1167564377 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric : ho < 1167564387 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!(_t)<1>=/(_t)"test"(_o)o.?(_t)<0>=\" ho"(_o)o.?]} < 1167564390 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :test ho < 1167564401 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!(_t)"hi"=/(_t)"test"(_o)o.?(_t)<0>=\" ho"(_o)o.?]} < 1167564403 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :test ho < 1167564469 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!(_t)O*=/(_t)"test"(_o)o.?(_t)<0>=\" ho"(_o)o.?]} < 1167564472 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric : ho < 1167564780 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!(_t)<-1>=/(_t)"test"(_o)o.?(_t)<0>=\" ho"(_o)o.?]} < 1167564783 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :test ho < 1167564809 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :{M[m(_o)O!<-1>(_o)(on).?]} < 1167564828 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :{M[m(_o)O!<-1>(_o)o.?]} < 1167564837 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :gah! < 1167564843 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!<-1>(_o)o.?]} < 1167564857 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!<-1>(_o)(on).?]} < 1167564859 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :-1 < 1167565269 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1167566660 0 :Sph1nx!n=sphinx@89-178-14-59.broadband.corbina.ru JOIN :#esoteric < 1167568236 0 :Sukoshi!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1167568490 0 :oerjan!unknown@unknown.invalid QUIT :"Later" < 1167573408 0 :ivan`!unknown@unknown.invalid QUIT :" HydraIRC -> http://www.hydrairc.com <- The future of IRC" < 1167573429 0 :Asztal!n=asztal@host81-158-88-90.range81-158.btcentralplus.com JOIN :#esoteric < 1167573476 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :"And remember: you can't spell manslaughter without laughter." < 1167574141 0 :Sph1nx!unknown@unknown.invalid QUIT :"До свидания всем!" < 1167574646 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION thinks a F98-based OS would be good. You could put everything in one 4gig * 4gig funge-space. It would have to be sparse of course, but wouldn't be too bad on the speed side, and would be a good way to do orthogonal persistance. F98 already has a module system too. < 1167574752 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :OST, why am I assuming Befunge-98? We could use Trefunge-98! < 1167574773 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Though Bef-98 allows addresses to fit nicely into a 64-bit word < 1167574786 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :I actually have a sparse trefunge-98 implementation here, but it needs more work. < 1167574921 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I am suddenly reminded that the only decent Tref98 editor isin fact written in Tref98 < 1167574952 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :actually, the i and o commands would need to be fiddled. < 1167574965 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :o would be great for "OS Call" < 1167574967 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :dunno about i < 1167575092 0 :ivan`!n=ivan`@wikipedia/ivan JOIN :#esoteric < 1167575096 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :yo < 1167575114 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :fingerprints? < 1167575114 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :now I come to think of it, there would need to be some form of 2D malloc. < 1167575122 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Fingerprints are a bit slow. < 1167575178 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :F98 is not afraid of having several ways to do something < 1167575714 0 :jix_!n=jix@L6371.l.strato-dslnet.de JOIN :#esoteric < 1167576924 0 :nooga!i=nooga@ip-127.net-11.rev.inter-c.pl JOIN :#esoteric < 1167576932 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :ehhehe helllo < 1167577615 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I don't suppose any of you where the Tertium Quid webcomic is, do you? < 1167580575 0 :nooga!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1167582930 0 :man-X!n=manix@195.252.118.31 JOIN :#esoteric < 1167583274 0 :Asztal!unknown@unknown.invalid QUIT :Read error: 54 (Connection reset by peer) < 1167583304 0 :man-X!unknown@unknown.invalid QUIT :Client Quit < 1167583916 0 :RodgerTheGreat!n=Rodger@c-68-42-107-2.hsd1.mi.comcast.net JOIN :#esoteric < 1167584662 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1167586611 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes < 1167586661 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ACTION comes < 1167587958 0 :jix_!unknown@unknown.invalid QUIT :"Bitte waehlen Sie eine Beerdigungnachricht" < 1167588160 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: RE: EsoOS. I think it should just be a PESOIX-compliant interpreter running on bare metal, with the ability to load language modules. < 1167588183 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(add a few PESOIX namespaces, so that one can access more than what bare PESOIX provides) < 1167588189 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :PESOIX? < 1167588212 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's an additional API for esolangs, which is talked to via stdio. < 1167589379 0 :CakeProphet!n=CakeProp@h152.243.213.151.ip.alltel.net JOIN :#esoteric < 1167590330 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :so, pikhq- what's your opinion on Def-BF vs Glass as a core language? < 1167590392 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The core PESOIX system should be in either ASM or C. . . < 1167590402 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Glass and Def-BF can coexist peacefully on top of this. ;) < 1167590475 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :there's no debate on either of their inclusion- they're both powerful languages. However, we were interested in trying to build the core of the system itself in an esoteric language < 1167590531 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The PESOIX system should be core. . . And it can't be written in Glass or Def-BF. < 1167590539 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :They just don't give us enough hardware access. < 1167590575 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :the idea behind using glass was to extend it's builtins to provide those capabilities < 1167590599 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Um. . . That'd be called "PESOIX". < 1167590625 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :and hardware access in Def-BF is rather implicit when you map all of a machine's memory to the tape. < 1167590670 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :If you *really* want to implement other languages in Def-BF or Glass, well, more power to you. < 1167590688 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ACTION shrugs < 1167592702 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :From what I've seen of glass... it wouldn't be too hard. < 1167592717 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :The great thing about abstraction is that... well... given enough block-building, you can do just about anything. < 1167592746 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Thus why I like BFM. . . < 1167592766 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(just one issue with BFM: I'm betting complex datastructures would take lots of Brainfuck code to do right) < 1167592821 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm I got a cons-like list constructor for Glass... and Gregor already has a full-blown list constructor (although he calls it "Arr" for array... it's actually like a linked list) < 1167592857 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I suppose the nest step after that would be hash tables. < 1167592897 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Nah. Standard template library. :p < 1167592908 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Wassat? < 1167592918 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The C++ STL. < 1167592959 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :That wouldn't be cool. :P < 1167592980 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You've got linked lists. . . < 1167592985 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That's one component. < 1167592993 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hash tables are another. < 1167593002 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I want to steal from C as little as possible. :D < 1167593048 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But the C++ STL is probably the only good thing from C-oids! < 1167593136 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Some other changes to Glass might include some more special methods... to make data structures a little less precarious to work with. < 1167593210 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Paticularly... a o__ and on__ method, which should "return" a string and a number respectively.... so we can output data structures via the universal O.o method. < 1167593242 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That'd be nice. < 1167593259 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It'd be a pain in the ass to call a unique output method for each class... < 1167593309 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And presumably, for lists and arrays, there'd be methods to output specific elements. < 1167593351 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :indexing, probably. < 1167593363 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :call the index method with an integer argument. < 1167593429 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :There will be an iterator to... it would work something like the map() function in other languages. < 1167593435 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :take a method and call it on each element. < 1167594186 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!0(_o)o.? (_he)<1>=0(_o)o.?]} < 1167594214 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O! (_he)<1>=0(_o)o.?]} < 1167594235 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O! (_he)<1>=(_o)o.?]} < 1167594246 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :aleifhrt. < 1167594256 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :variable assignments don't push to the stack, neato. < 1167594286 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Reading the spec could've told you that. . . < 1167594288 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :.... < 1167594300 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Yes well... specifcations are for nerds. < 1167594315 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Testing is the real man's measuring tape. < 1167594365 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m <1><2>(_o)O!0(_o)o.?0(_o)o.?]} < 1167594376 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m <1><2>(_o)O!0(_o)o.?1(_o)o.?]} < 1167594386 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!ps < 1167594390 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :1 CakeProphet: ps < 1167594394 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m <1><2>(_o)O!0(_o)o.?2(_o)o.?]} < 1167594411 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m <1><2>(_o)O!1(_o)o.?2(_o)o.?]} < 1167594422 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m <1><2>(_o)O!1(_o)o.?]} < 1167594427 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The spec is a description of how the real interpreter behaves. ;) < 1167594434 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m <1><2>(_o)O!0(_o)o.?]} < 1167594444 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :The real interpreter is a description of how the real interpreter behaves. :P < 1167594465 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :As it just so happens, the spec and the real interpreter are in perfect agreement. < 1167594474 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :lol ya rite. < 1167594490 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m<1>~O.o~.?]} < 1167594498 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m<1>~O.o~?]} < 1167594500 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :*ahems* < 1167594501 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m<1>(_o)O!(_o)(on).?]} < 1167594503 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1167594504 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :1 < 1167594516 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...damnit < 1167594519 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I always forget that one. < 1167594524 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m<32>(_o)O!(_o)(o).?]} < 1167594535 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m <1><2>(_o)O!0(_o)(on).?]} < 1167594538 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1167594546 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I don't think O.o outputs numbers. < 1167594568 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It doesn't (...reading the spec would have told you that...) < 1167594587 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m <1><2>(_o)O!0(_o)(on).?0(_o)(on).?]} < 1167594590 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :22 < 1167594594 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m <1><2>(_o)O!0(_o)(on).?1(_o)(on).?]} < 1167594596 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :21 < 1167594604 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Yay... stack behavior. < 1167594615 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m <1><2>(_o)O!1(_o)(on).?0(_o)(on).?]} < 1167594616 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Heheh. < 1167594618 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :12 < 1167594650 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :So... it seems that stack indexing doesn't append that value permanently to the stack. < 1167594684 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I think O.o pops it's argument off the stack. < 1167594691 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :or... the method calls are eating up... yeah < 1167594693 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :what you said. < 1167594706 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m <1><2>(_o)O!11(_o)(on).?0(_o)(on).?]} < 1167594710 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :21 < 1167594731 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m <1><2>(_o)O!(_o)(on).?(_o)(on).?]} < 1167594734 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :21 < 1167594749 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That clinches it. < 1167594754 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1167594884 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... < 1167594900 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm wondering how I should denote when the list constructor should stop. < 1167594942 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :"" wouldn't work... because you might want a "" in your list. < 1167594964 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :You could specify the length as a number... but that wouldn't work if you don't explicitly know the link. < 1167595204 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...the linked list was a grand idea. < 1167595231 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :The specification is now slightly more in sync with the interpreter. < 1167595267 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Never trust your specification.... but it does give some good advice now and then. :D < 1167595349 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hehe... if Glass had some kind of error handling... I could easily use the (Nil) class to specify when to stop. < 1167595368 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Feel free to extend glass as necessary :P < 1167595396 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :dodod < 1167595421 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION loves Python's exception handling. < 1167595436 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but then you couldn't have empty lists as elements of lists? < 1167595439 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what's special about it? < 1167595458 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Dunno enough about other languages exception handling to tell you what's unique about it. :) < 1167595474 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Fix Plof < 1167595481 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :'s fors yet? < 1167595532 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think possibly the only values that can be safely tested for are string "" and number 0. < 1167595537 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: The patch is in; he just needs to make a new tarball. < 1167595547 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...yeah. < 1167595559 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: Yeah ... in the darcs repo :P < 1167595573 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :"" makes more sense than 0 < 1167595594 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1167595602 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes < 1167595612 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :(vacation) < 1167595645 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because every inquisitive operation other than pure true/false testing probably gives an error on something. < 1167595668 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yup < 1167595673 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although... < 1167595684 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :unless you're using all objects that follow a universal protocol. < 1167595694 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :which... isn't the case with the base string and integer types. < 1167595729 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_a)A!(_o)O!<1>"hi"(_a)e.?(_o)(on).?]} < 1167595733 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1167595736 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah. < 1167595765 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_a)A!(_o)O!<1>(_o)(_a)e.?(_o)(on).?]} < 1167595769 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1167595797 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok i may be wrong, A.e seems not to crash when given non-numbers. < 1167595819 0 :Sukoshi!n=user@user-11faaaj.dsl.mindspring.com JOIN :#esoteric < 1167595825 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_a)S!(_o)O!<1>(_o)(_a)e.?(_o)(on).?]} < 1167595828 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1167595850 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :neither does S.e on non-strings. < 1167595859 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_a)S!(_o)O!(_o)(_o)(_a)e.?(_o)(on).?]} < 1167595862 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :1 < 1167595872 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_a)S!(_o)O!(_a)(_o)(_a)e.?(_o)(on).?]} < 1167595876 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1167595894 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_a)A!(_o)O!(_o)(_o)(_a)e.?(_o)(on).?]} < 1167595898 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :1 < 1167595932 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok you apparently _can_ check equality of pretty arbitrary things. < 1167595990 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {(Nil)[(iter),][(null?)1]} {(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,(car)*?(_fun)*?(cdr)*?(iter).?]} {(List)[(build)(_a)A!(_tmp)<1>= (_list)(Nil)!/(_tmp)(_list)*(_list)(Con)!,(_tmp)1""(_s)e.?=\(_list)] } {M[m(_o)O! (_l)(List)! """H" "e" "l" "l" "o" " " "W" "o" "r" "l" "d" "!"(_l)(build).?(MyList)0= (_o)o.(MyList)(iter).?]} < 1167596008 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_a)A!(_o)O!(_o)o.(_o)o.(_a)e.?(_o)(on).?]} < 1167596010 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :1 < 1167596023 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_a)A!(_o)O!(_o)o.(_o)(on).(_a)e.?(_o)(on).?]} < 1167596027 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :1 < 1167596036 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :whoops! < 1167596047 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O! < 1167596049 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :er... < 1167596049 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hi, Sukoshi < 1167596050 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1167596053 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_a)S!(_o)O!(_o)o.(_o)(on).(_a)e.?(_o)(on).?]} < 1167596056 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :1 < 1167596084 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok it doesn't work so well with functions, it seems. < 1167596104 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :OK, new Plof tarball available. < 1167596111 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O! (_o)(lolbug).?(_o)(on).?]} < 1167596133 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Was seeing the behavior for undefined methods. :D < 1167596162 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that undefined methods crash on lookup should be pretty clear from our recent A class problem. < 1167596192 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you don't even need the ? < 1167596230 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :The action when you try to use an undefined method is "undefined" :P < 1167596232 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Heya RodgerTheGreat. < 1167596273 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm.... a language without error handling gains more flexibility if it returns data on weird fuckups... whereas a language that has error handling benefits from having all sorts of "error trips" that can happen. < 1167596278 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: are we talking "crash" undefined, or DS9K undefined? < 1167596303 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Alternatively, you could have the best of both worlds by using error handlers, CakeProphet ;) < 1167596312 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: Depends on the implementation ... it's undefined ;) < 1167596324 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :mmm. Java-ey error handling. < 1167596335 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I like Lispy error handling. < 1167596352 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm pretty sure Python's error handling resembles Java's. < 1167596354 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :how does lisp do error handling? < 1167596356 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :(Heck, you can arbitrarily unwind the call stack with it. How is that not cool?) < 1167596363 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :OO-ish with some sort of try-except-else-finally statement? < 1167596363 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ooh, nice < 1167596381 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :No no. A *lot* more flexible than a try-except-else thinger. < 1167596410 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :You mean try-catch-finally? :P < 1167596417 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Whatever. < 1167596420 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :eh, probably. < 1167596426 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Errors in Lisp resemble calls to GOTO in many ways. < 1167596429 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I was wondering how Java did errors. < 1167596429 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ACTION throws Exception < 1167596435 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Without the code hell GOTO breeds. < 1167596459 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Java's exception system is a fairly standard try-catch-finally, and you can only throw Objects. < 1167596463 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :GOTOs only create horrible code in the hands of people who don't know what they're doing < 1167596463 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Of course, you could generalize it to things like try/catch/finally blocks or exception throwing or assertion. < 1167596486 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :s/generalize/specifize/ < 1167596489 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :How about exceptions in Brainfuck? < 1167596504 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :No such thing. < 1167596505 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :depends on the implementing language. < 1167596507 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Similar to exceptions in Forth. < 1167596511 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :None. < 1167596527 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :it's called a Try-Fail-OhShit error handling system < 1167596540 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :If BF does something weird... it either A. trips an exception in the implementing language or B. goes off on freaky undefined behavior or C. crashes < 1167596546 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :whatever the underlying language would do... < 1167596556 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Or D. goes into an infinite loop. < 1167596585 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :divvar, when it performs a divide by 0, does an infinite loop. . . < 1167596585 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :It's against the spirit of a compiler/interpreter to error-handle transparently to the underlying language. < 1167596594 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :you could pretty much just call all of it "undefined behavior" since it's.... not... defined. < 1167596606 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: have you been reading the logs about the esoteric OS discussion? < 1167596613 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: Nope. < 1167596622 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :My ISP decided to have its first downtime in a few months. < 1167596680 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :long story short, cakeprophet, gregor, pikhq and I have been thinking about writing an estoeric operating system built with glass and a modified form of BF that has pointers. < 1167596698 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Why no pointers? < 1167596703 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :How will we bootstrap it? < 1167596715 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :no, no, we *added* pointers to BF < 1167596719 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :In Def-BF. < 1167596723 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Oh, yeah, yeah. < 1167596735 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Which one of us is will be the ASM guinea pig? < 1167596736 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :does anyone still have the link to that spec I wrote? < 1167596745 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :not sure just yet. < 1167596752 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :we're still discussing kernel design < 1167596759 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :and what the API needs. < 1167596772 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Well, who is going to write the BF->ASM compiler? < 1167596786 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Probably -not- me. :D < 1167596803 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Already got one. . . Heard of awib? :p < 1167596804 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Since I'm not familiar with any assembly... or compiler design. < 1167596805 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I could try. My experience in ASM lies only in the realm of POSIX-based systems, though. < 1167596820 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: But it can't be dependant on any kernel, remember? < 1167596830 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Which means we'll be using interrupts and happy stuff like that. < 1167596849 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :We need to be able to wrap interrupts in BF too, and devices, and stuff. Suggestions would be nice :) < 1167596872 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : < 1167596886 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Happy null to you too. < 1167596915 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :in a nutshell, Def-BF adds the ability to push and pop code and data locations in the form of pointers. < 1167596932 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :four new commands, endless possibilities < 1167596939 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :What are the commands? < 1167596980 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :@- set the program counter to an absolute address, pushing the current location onto a stack < 1167596997 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric ::- pop the previous location off the stack, and return to it < 1167597014 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :#- set the pointer to an absolute address, pushing the current location onto a stack < 1167597034 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :;- pop the previous pointer location off the stack, and return to it < 1167597053 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Oooh. Now BF has a stack. < 1167597064 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yeah, I really like it < 1167597093 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :This is going to be hell to develop :P < 1167597094 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :and it's easy to see how you could abstract it a little to build a high-level language < 1167597113 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Heh. Forth in Def-BF. < 1167597122 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :that'd be fun < 1167597134 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Are we going to build Glass on top of BF? Ouch. < 1167597143 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Easy with C2BF ;) < 1167597144 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Other way around. < 1167597147 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I think. < 1167597147 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I think the consensus is to go the other way < 1167597163 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Since it's already done ;) < 1167597172 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Glass is a much better build-block language.... and yeah... < 1167597179 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it's already done... just without the new commands. < 1167597180 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I like Def-BF myself, but Glass is easier to extend to allow low-level hardware access < 1167597192 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :One request! < 1167597197 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Add in structs! < 1167597197 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :What!? < 1167597201 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Nope. < 1167597202 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1167597209 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Sounds too much like C... < 1167597215 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Seriously. How can you build data structures without structs? < 1167597217 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I don't know what they do... but... oh well. < 1167597222 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Glass has a classes. < 1167597223 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :can't glass simulate that already? < 1167597225 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :classes < 1167597228 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Yup. < 1167597234 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :But y'all are forgetting the very point of structs! < 1167597238 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I prefer exposing low-level stuff via PESOIX so that all the languages can get low-level stuff. :p < 1167597239 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :A struct is contiguous in memory! < 1167597253 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION points to his linked list constructor, and Gregor's array class. < 1167597271 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :But how can you name subsets of the arrays? < 1167597273 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, If Glass has all the low level stuff built-in... we can just use glass to give all of them that. < 1167597289 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi, Hmmm? < 1167597290 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: That'll work. < 1167597293 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I really don't want to have to set up methods per-class that simulate assignment to a subset. It's painful. < 1167597296 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Raar < 1167597304 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :Def-BF can effectively have structs, and you can compile a higher level language that incorporates them *into* Def-BF < 1167597325 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I was talking about Glass. < 1167597325 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You could even make C2BF support structs! < 1167597339 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I think what we're going to do is make the kernel an interpreter for Glass. :D < 1167597350 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: my thoughts exactly < 1167597352 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so Glass is... like... -the- kernel. < 1167597356 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :ACTION suddenly got a vision of a Lisp machine and drools. < 1167597366 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yeah, there we go < 1167597379 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oooh... lisp. < 1167597394 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Lisp would be a great starter language to do all this in. :D < 1167597412 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :There's already a similar project for CL --> Movitz. < 1167597433 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :it would only be esoteric if we used a minimal lisp implementation as the base < 1167597447 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I just think it would be more amazing that we actually built an operating system out of languages like Glass and modified-BFs :D < 1167597484 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Scheme is pretty minimal. < 1167597499 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Plof is pretty minimal (ha-HAH) < 1167597509 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :when I say minimal, I mean tarpit < 1167597512 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :NOT SCHEME. < 1167597527 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :LOL WHY? < 1167597529 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Scheme has almost *no* programmer metaphors for pointers. < 1167597541 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....damn pointers. < 1167597549 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :embrace pointers < 1167597559 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Why do you resist pointers? < 1167597568 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION immediately conjures up images of an evil C monster stabbing him with sharp pointers. < 1167597573 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :they're insanely useful when you're working at a low level < 1167597595 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Because of my lack of knowledge and irrational disdain for anything that reminds me of C? < 1167597599 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Crapp reason I know... < 1167597602 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION huggles C < 1167597603 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :pointers have nothing to do with C, C coders just overuse them for bizarre hacks < 1167597618 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :No, C coders overuse them because C doesn't give us much else ;) < 1167597634 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yeah, I guess that's true as well < 1167597642 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :If I knew more about them... and how to use them... I would probably like them more. < 1167597655 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Anybody want my BF-interpreting kernel? :) < 1167597659 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :How hard is it to imagine memory contents and a memory address? < 1167597671 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Like I said, who's the ASM guinea pig? < 1167597678 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: did you code it just now, or has this been sitting around? < 1167597692 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi, I know -what- they are... I just have no earthly idea why they'd be useful. < 1167597702 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :for < 1167597703 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I coded it yesterday - too lazy to get Glass working yet and I'm having problems with IRQs that need to be resolved first anyway :P < 1167597707 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ACTION suffers a small aneurism < 1167597713 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Aha! < 1167597726 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Intepreter or compiler? < 1167597732 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Interpreter. < 1167597732 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: How do you implement a linked list? < 1167597740 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: think you could add the Def-BF command set? < 1167597744 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Errr, interactive? < 1167597751 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: I think /you/ could add the Def-BF command set ;) < 1167597759 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi, with cons pairs? < 1167597762 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: Not yet, I don't have IRQs working (necessary for keyboard input) < 1167597772 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Does ASM magically give you cons pains? < 1167597783 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi, ...probably not. < 1167597801 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: I guess I could take a stab at it- can I see the code? < 1167597832 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi, I've never ventured into low level stuff. Abstraction -hides- this shit from me.... < 1167597848 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi, Do go on. :D < 1167597861 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Anybody have a SVN repo sittin' around for me to toss it in? :P < 1167597881 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, You made a.... kernel? < 1167597953 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Yeah - it's a multiboot kernel sans anything fancy with a BF interpreter bolted in :P < 1167597968 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It has no memory management, it has no IRQ support, it has no support for processes. < 1167598002 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :We can make it fancier later, I guess. < 1167598016 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and bolt a Glass interpreter in... what's it written in? < 1167598023 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :C, I bet. < 1167598053 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Of course it's written in C ya' bloody idjits :P < 1167598056 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh... correction: -You- can make it fancier later... < 1167598062 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :C is the only language to write kernels in. < 1167598082 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, Bullshit. :P < 1167598114 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Well, with a bit of work, C++ could work too. < 1167598117 0 :RodgerTheGreat_!n=Rodger@c-68-42-107-2.hsd1.mi.comcast.net JOIN :#esoteric < 1167598119 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :And ASM of course. < 1167598135 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :arrgh < 1167598137 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :friggin' wifi < 1167598140 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :But there you have the complete list of every language that any pseudo-mainstream kernel has ever been written in ;) < 1167598158 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, There are languages that don't exist yet... and those that people haven't tried. < 1167598208 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, A kernel written in the most common kernel-writing language ever isn't really a very positive claim for an esoteric operating system... but it'll do. :P < 1167598238 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :the main reason people write kernels in C is... wait for it... wait for it... because other people have written kernels in C before. < 1167598249 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :zomg < 1167598251 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::o < 1167598253 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't really have anything to do with the language < 1167598275 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It's like how people use qwerty because everyone knows qwerty and that's what they're taught to use. < 1167598275 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :No, the primary reason that people write kernels in C is that C is high-level enough to be sane to write in, but low-level enough that you can F*** around with the hardware. < 1167598281 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Unlike whatever language you were about to mention. < 1167598306 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :FORTH is equally valid a language for writing a kernel < 1167598324 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :and that's just what pops into my head < 1167598349 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hehe... so is Glass With Hardware Shit Bolted On. :D < 1167598350 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :in some senses, FORTH *is* a kernel < 1167598375 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION likes FORTH himself. < 1167598544 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Of course... we can always draft up a new esolang with lots and lots of hardware support that's just ALMOST sane to write in... and name it The Esoteric Language For Writing Kernels In.... it'll be like C. < 1167598567 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :If it grows in popularity... people will start using TELFWKI forpretty much everything. < 1167598574 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :if you recall, that's what Def-BF was originally supposed to be < 1167598604 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat But... Def-BF wouldn't work well for that... now that I think about it. < 1167598759 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I thought we weren't writing it in C. < 1167598770 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :But if it's in C, then we can bootstrap it pretty easily. < 1167598789 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :We weren't... and might not. < 1167598825 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :A flat memory model Forth is incredibly easy to work with to develop hardware. < 1167598871 0 :RodgerTheGreat!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1167598909 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I say we do it in true esolang fashion... make a new language for doing the job. (Def-BF would work... but not well.) < 1167599018 0 :RodgerTheGreat_!unknown@unknown.invalid NICK :RodgerTheGreat < 1167599187 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... FORTH does sound good though. It would work great for definiing new grammar (such as for writing an interpreter over the kernel) < 1167599205 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and it's reverse polish notation.... which makes it fun. :D < 1167599257 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :heh... implementing Glass over FORTH wouldn't even require much of a parser. < 1167599451 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Am I the only person who thinks it's irrelevent if the very core interpreter is written in C? :P < 1167599565 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I think it's very relevant. :o < 1167599569 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I don't see it as a huge issue, but I detest coding in C. If the kernel is C, I'm not writing it < 1167599582 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no. of course we will bootstrap a Glass compiler in Glass later. < 1167599589 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Yeah... that too. < 1167599615 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Why not Forth though? :D < 1167599618 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Hey, if you can compile Glass to metal plus have proper hardware abstraction in there, more power too ya'. < 1167599625 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :s/too /to / < 1167599675 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :FORTH is like Glass minus classes plus tons of low-level hardware support. < 1167599702 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...delimited by whitespace. :D < 1167599739 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Pffffffff < 1167599742 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Whitespace is for pansies. < 1167599748 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Except in the language Whitespace. < 1167599775 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hell, FORTH can fucking compile itself. :D < 1167599857 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... it's kind of weird that the class and function syntax of Glass is the only part that's not RPN < 1167599871 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Unless... } is the actual begin-class command. :D < 1167599941 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: You're not the only one who thinks that. < 1167600026 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Thank you X_X < 1167600124 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wants to see the core interpreter in C, with various interpreter modules. . . < 1167600161 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :forth forth forth!!! < 1167600163 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1167600176 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Yeah... whatever you wanna do. < 1167600179 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :svn co https://brainfuck.svn.sourceforge.net/svnroot/brainfuck/esokern/trunk < 1167600206 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm not the one doing the coding... plus it's a minor consideration. < 1167600228 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Except.. I can't read or code in C very well... so I can't do much with the kernel, not that I would normally want to muck with the kernel. < 1167600244 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION does C decently < 1167600249 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I do Tcl natively. . . < 1167600254 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1167600485 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Developers, developers everywhere, and not a drop of C X_X < 1167600505 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :woo < 1167601291 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Fuck C. < 1167601304 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::) (smileys make things sound nicer) < 1167601316 0 :RodgerTheGreat_!n=Rodger@c-68-42-107-2.hsd1.mi.comcast.net JOIN :#esoteric < 1167601332 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION waves. < 1167601340 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :hi again < 1167601351 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :curse this unreliable connection < 1167601570 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I've developed a liking to postfix notation. :) < 1167601684 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :RPN is great < 1167601717 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION strokes his Hp-12C lovingly < 1167601751 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'd like to do a confusing infix notation language. :D < 1167601753 0 :RodgerTheGreat!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1167602015 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wants an HP calc < 1167602032 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ACTION laughs reading the scrollback of you guys arguing < 1167602312 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is amused as she reads above. < 1167602318 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I'm fine coding in either C or Forth. < 1167602356 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Just, the nature of low-level code tends to favor Forth a bit more, IMO. < 1167602373 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :(Because it's easier to build up (much like Lisp)) < 1167602560 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ACTION sees "she" < 1167602565 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ACTION drools < 1167602587 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :The main plus is that Forth is interactive. < 1167602688 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1167602698 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: Hands off ya' blimey pervert! < 1167603900 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1167603908 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I keep getting disconnected < 1167606820 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Why, happy new year! < 1167607218 0 :RodgerTheGreat!n=Rodger@c-68-42-107-2.hsd1.mi.comcast.net JOIN :#esoteric < 1167607398 0 :RodgerTheGreat!unknown@unknown.invalid QUIT :Client Quit < 1167608246 0 :RodgerTheGreat_!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1167609361 0 :cmeme!unknown@unknown.invalid QUIT :Remote closed the connection < 1167609442 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric