<purr\Paws>
Paws.js/Master 759acd1 elliottcable: (new module meta) Adding blessed / termcap for the executable
<purr\Paws>
Paws.js/Master d016264 elliottcable: (new exe incomplete) Setting up some basics for the CLI
<joelteon>
i need a neat prompt character
<joelteon>
who wants to recommend one
<devyn>
joelteon: -
<joelteon>
good idea
<devyn>
mine is
<devyn>
[devyn] ~ -
<joelteon>
yeah
<joelteon>
mine is
<joelteon>
path $
<devyn>
lol
<purr>
lol
<joelteon>
i had a bunch of shit in it
<joelteon>
but then i realized that reading my zshrc was taking almost a second
<joelteon>
and drawing the prompt took almost 0.5
<devyn>
I don't like complicated prompts anyway
<joelteon>
which is fucking crazy
<joelteon>
yeah
<joelteon>
not me anymore
<devyn>
the [devyn] isn't really necessary either, but I felt that just path - was too short
<devyn>
especially since I have a little project system, where I can set a "project directory" and if I'm inside that directory, paths are relative to it
<devyn>
i.e. if I `proj devyn/maru`, that's like `cd ~/Projects/devyn/maru` and then PBASE=$PWD
<devyn>
PBASE is the project base dir, and if it is set, and I am in that directory or a subdirectory, prompts now look like this:
<joelteon>
shorten every parent dir to one character
<devyn>
I even have `pd <proj>` = `proj devyn/<proj>`
<devyn>
so really I just `pd maru`
<joelteon>
also, now i load rbenv on demand
<joelteon>
rather than at startup
<joelteon>
using chpwd()
<devyn>
er, what's rbenv
<joelteon>
ruby version manager
<devyn>
oh rvm
<devyn>
yeah it's a bitch
<joelteon>
it's the jetski to rvm's aircraft carrier
<joelteon>
but they're both annoying
<joelteon>
helpful, but too much overhead
<devyn>
I only use rvm on OS X
<joelteon>
rbenv isn't rvm btw
<devyn>
on Arch I just use the builtin packages
<joelteon>
well yeah
<joelteon>
i would do that, but our projects at work use different ruby versions
<devyn>
I do most of my dev on Arch again - oh
<devyn>
I see
<joelteon>
i'm gonna implement a similar thing for hsvm soon
<joelteon>
once i can figure out how to make it pick up .ghc-version
<devyn>
lol, that's a thing?
<purr>
lol
<joelteon>
or something
<joelteon>
well
<joelteon>
i wrote it
<joelteon>
so yeah
<devyn>
heh
Sorella has quit [Quit: Ex-Chat]
<devyn>
so then is 2.0 compatible with some of your 1.8 code or something?
<devyn>
incompatible*
<joelteon>
lol
<joelteon>
yeah
<joelteon>
the whole app is 1.8
<joelteon>
i started the project to move it to 1.9
<joelteon>
it's a PAIN
<joelteon>
in my ASS
<devyn>
really? that bad? huh. well, they did clean up a lot of the threading stuff
<joelteon>
yeah, it's that bad
<joelteon>
it was written awhile ago
<joelteon>
and it's
<joelteon>
hang on
<joelteon>
lemme cloc
<joelteon>
64,000 lines of ruby, which isn't a lot
<joelteon>
but it's still annoying, plus dependency hell
<devyn>
that's kind of a lot of ruby
<devyn>
equivalent to 500 000+ lines of C...
<joelteon>
yeah
<joelteon>
GHC is 150,000 lines of haskell
<joelteon>
do I like d/H/joelteon or ~/d/H/joelteon
<devyn>
for a while I just did away with hierarchy altogether and only took the basename
<joelteon>
aaand, do i want to ls directories when i enter them, or not
<joelteon>
no
<devyn>
I don't, and here's why:
<joelteon>
that's annoying
<devyn>
I have a really, really bad habit of just 'ls'ing all the time anyway, when I'm idle
<devyn>
even if nothing has changed
<devyn>
and I think many other people do too
<devyn>
:p
<joelteon>
that's not a bad habit
<devyn>
well there isn't really a good reason to do it, so
<joelteon>
yeah
<joelteon>
but it's easier to context switch for your brain
<joelteon>
because you don't have to memorize the directory contents
<devyn>
erm, I'm talking about multiple 'ls' invocations all on screen at the same time, often sequentially
<joelteon>
oh
<devyn>
as in
<devyn>
$ ls
<devyn>
$ ls
<devyn>
$ ls
<devyn>
lol
<purr>
lol
<joelteon>
heh
<joelteon>
ok never mind
<joelteon>
wow, I FINALLY found the zle function for moving forward one word
<joelteon>
it's called
<joelteon>
"forward-word"
<devyn>
yeah well I discovered, much to my horror, that recent versions of Outlook still have OLE support
<joelteon>
what's that
<joelteon>
i should probably add hostname
<joelteon>
cause i use the same dotfiles on my VPS
<purr>
<sephr> it was my sexy name
eligrey has quit [Quit: Leaving]
cuttlebone has quit [Ping timeout: 240 seconds]
Sgeo has joined #elliottcable
Sgeo_ has joined #elliottcable
Sgeo has quit [Read error: Connection reset by peer]
cuttle has joined #elliottcable
sharkbot has quit [Remote host closed the connection]
sharkbot has joined #elliottcable
dskuza has quit [Ping timeout: 260 seconds]
<purr>
<alexgordon> also I didn't know "Chains" was an attire
jvulc has quit [Ping timeout: 248 seconds]
<purr>
<devyn> Nuck: …no, the IRC protocol doesn't support rewriting history.
gozala has quit [Ping timeout: 248 seconds]
gozala has joined #elliottcable
dskuza has joined #elliottcable
<purr>
<ellio> IT IS SO DELICIOUS I WANT TO HAVE SEX WITH ALL OF THESE TINY WINDOWS
jvulc has joined #elliottcable
<prophile>
:~)
<prophile>
:~~)
<prophile>
:~~~)
<prophile>
:~~~~)
cloudhead has joined #elliottcable
<purr>
<joelteon> you don't realize how much pressure there is for the cool kids to rub their faces in poop these days
<purr>
<alexgordon> only elliottcable could unwittingly name something after bloody anuses
<purr>
<elliottcable> hey dnyy come be a huge faggot with me
cloudhead has quit [Ping timeout: 248 seconds]
jdhartley has quit [Ping timeout: 256 seconds]
jvulc has quit [Ping timeout: 268 seconds]
alexgordon has joined #elliottcable
<alexgordon>
guys
<alexgordon>
?
<alexgordon>
GUYS!
<joelteon>
hi
<purr>
joelteon: hi!
<joelteon>
apparently nobody uses haskellmode-vim
<joelteon>
and thus by asking questions i am angering the gods
* alexgordon
is so tired
* alexgordon
works on furrow to relax
<alexgordon>
where did I get last time
<joelteon>
yes
<alexgordon>
oh yeah I was planning all the classes that make up the compiler
<alexgordon>
and I agreed with whitequark to ignore the module/build system stuff until later
<alexgordon>
sooooo
<alexgordon>
what is a compiler?
<alexgordon>
what classes do you need or one
<alexgordon>
*for
<alexgordon>
lexer
<alexgordon>
parser
<alexgordon>
diagnostics
<alexgordon>
parse tree
<alexgordon>
semantic analysis
<alexgordon>
maybe a more abstract tree representation
<alexgordon>
perhaps more semantic analysis
<alexgordon>
code generation
<alexgordon>
then imports are particularly painul
<alexgordon>
*painful
<whitequark>
wow so much terms so knowledgeable
<alexgordon>
lol
<purr>
lol
<alexgordon>
I'm planning!
<whitequark>
well, seriously, what I'm saying is
<whitequark>
what's *new* in your language?
<alexgordon>
nothing!
<alexgordon>
absolutely nothing
<whitequark>
then why the hell are you writing it?
<alexgordon>
I'm not making a novel language, I'm just making a *good* language
<whitequark>
good is not enough
<whitequark>
well, no, bad phrasing
<whitequark>
what do you want to achieve with a good language?
<alexgordon>
I want to stop having to worry about which language to use ;)
<whitequark>
I'm not sure you will achieve that
<whitequark>
unless you don't want, ever, to collaborate with anyone
<joelteon>
when did shibe become a thing
<whitequark>
if I were you though
<alexgordon>
whitequark: eh maybe, but languages HAVE taken off
<joelteon>
it's the dumbest, laziest form of humor
<whitequark>
I'd just look at LLVM and copy its infrastructure
<whitequark>
(which I did)
<alexgordon>
yeah
<whitequark>
alexgordon: then we're on entirely another level
<whitequark>
"what language needs to take off"
<whitequark>
and just "good" is clearly not enough
<whitequark>
*everything* in history proves that
<alexgordon>
tbh it's compatible with C++ so it doesn't really matter if I'm the only person using it
<alexgordon>
that's part of its appeal as an implementation
<whitequark>
what does it give you over C++?
eligrey has joined #elliottcable
<alexgordon>
nothing yet, it doesn't exist ;)
<whitequark>
in theory
<alexgordon>
but I'd like to use it to implement a very nice FP standard library
<alexgordon>
akin to haskell's
<alexgordon>
the point of furrow is to make a language I know won't be crap, then to innovate with everything else
<whitequark>
I don't think this works
<whitequark>
languages are densely interconnected (if it isn't lisp. and even if it is.)
<alexgordon>
it does for me. 100% of the time when I decide not to use a language its because it has shitty infrastructure
<whitequark>
no, the innovation part
<joelteon>
i'm starting to lose patience with people
<whitequark>
the rest will be slowing you down and dictating how you should write it
<alexgordon>
whitequark: well I control the whole system so
<whitequark>
rich infrastructure, even more so
<joelteon>
"here, look at this amazing vim plugin I wrote"
<joelteon>
"can it do this incredibly basic thing?"
<joelteon>
"no, but it looks neat"
<joelteon>
repeat ad infinitum
<joelteon>
go choke on a bucket of roosters
<alexgordon>
whitequark: I don't really see the problem. As long as furrow is rich enough to express a whole standard library, and the module system is well designed that I can make a good build system, then I can innovate in those parts
<alexgordon>
you're right that it's interconnected but that's what makes the idea work. I don't need to innovate in the language for the whole system to be innovative
<alexgordon>
hm, do I need to support compilation of multiple modules in one invocation of compiler process?
<alexgordon>
probably..... not
<purr>
<alexgordon> DIPSY IS HOT
<alexgordon>
did I say that?
<whitequark>
alexgordon: I don't think that language and its stdlib are separate
<whitequark>
imagine Ruby without its stdlib. imagine Ruby with an alternative stdlib. will it be significantly different? hell no
<whitequark>
for it to be significantly different, you need to be able to extend the language with libraries
<whitequark>
i.e. see the lisp passage above
<alexgordon>
so what are you saying
<whitequark>
you're doing something pointless, and most certainly you're doing a bug-ridden, incomplete and ad-hoc specified version of C++
<alexgordon>
LOL
<purr>
LOL
<alexgordon>
that's just not true. furrow is not like C++ at all
<whitequark>
you're aiming for C++ interop
<whitequark>
I dunno how much experience you have with that, but for C++ interop you need to be rather close to C++
<alexgordon>
depends
<whitequark>
semantically.
<alexgordon>
if you want make use of arbitrary C++ code you need that
<alexgordon>
but that's not what I mean
<whitequark>
you inherit C++ memory and execution model
<whitequark>
RAII, exceptions, inheritance, etc
<alexgordon>
C++ code can call furrow code (because it compiles to C++). And furrow code can call C++ code that has a simple enough interface
<whitequark>
well, you'll discover what I mean soon enough
<alexgordon>
lol, I'm not aiming for full compatibility
<alexgordon>
that would be horrific
<whitequark>
it's not really about full compatibility
<whitequark>
it's about mapping of semantics
<alexgordon>
well C++ has functions right?
<whitequark>
if it matches, all is cool. if it doesn't, it'll be awkward on C++ side and/or furrow side
<whitequark>
C++ has procedures
<whitequark>
and C++ sorta has closures
<alexgordon>
I'm not going to butcher the language for the sake of this feature
* whitequark
sighs
<whitequark>
I used to think like you
<whitequark>
except about C
<whitequark>
which is definitely much, much simpler than C++
<whitequark>
and nope, I still have to pay a significant cost for that
<alexgordon>
well I used to think like *you* ;)
<whitequark>
(in Foundry's case, it is partly UB and partly memory management; but the latter was at least expected.)
<alexgordon>
that a language has to be innovative to be useful and well received
<alexgordon>
but actually, that turns out to be most languages' downfall
<whitequark>
um, did you change the subject?
<alexgordon>
possibly, I'm not entirely sure what the subject is
<whitequark>
actually, whatever
<whitequark>
when you'll have an implementation, you'll see
<alexgordon>
and when I have an implementation, *you'll see*
<whitequark>
now I'm sorry, but I need to stop wasting time
whitequark has left #elliottcable ["bye"]
<alexgordon>
sooooo where was I
<alexgordon>
gah I feel like if I ignore import resolution bad things will happen further down the line
<alexgordon>
but it's completely irrelevant at the moment
yorick has joined #elliottcable
<alexgordon>
soooo at what point do you need import resolution
<alexgordon>
the parser doesn't
<alexgordon>
and you don't need them for simple semantic analysis
<alexgordon>
I guess you need imports iff you need scopes
<alexgordon>
or types
<alexgordon>
aha
<alexgordon>
so we can split the compilation into two halves based on that
<alexgordon>
the first stage is everything from parsing to primary semantic analysis
<alexgordon>
*then* you do import resolution
<alexgordon>
mold it into a more abstract program representation
<alexgordon>
then secondary semantic analysis
<alexgordon>
and codegen
<alexgordon>
the first half of the process having no dependence on anything but that one source file
eligrey has quit [Read error: Connection reset by peer]
<alexgordon>
source file at hand and any external context are completely separated
<alexgordon>
then I can do whatever in the future on the import cache without it causing problems
<alexgordon>
hm I wonder how to stream diagnostics to the driver .py script
<alexgordon>
eh not my concern right now
jvulc has joined #elliottcable
<joelteon>
jesus FINALLY
<joelteon>
found a vein of diamond
<alexgordon>
lol
<purr>
lol
<joelteon>
i've found more emerald than diamond
<joelteon>
but i do have 16 sheep, one of each color
<ELLIOTTCABLE>
Guys. Jesus.
* ELLIOTTCABLE
breathes
<ELLIOTTCABLE>
seventy-some hours, straight, of caregiving to a post-surgical girlfriend in immense pain and experiencing extreme nausea.
<ELLIOTTCABLE>
I am so short on sleep and sanity it's not even funny.
<ELLIOTTCABLE>
Just handed her off to her mother at said-mother's insistence, she said “go take care of *yourself*, jesus, Elliott”
<ELLIOTTCABLE>
so now I'm “taking care of myself” which means IRCing upstairs in the sunlight instead of sitting next to a puking girl on a bed in a dark cave of a room
<ELLIOTTCABLE>
(apparently)
<ELLIOTTCABLE>
need food don't know when I last ate >:
<alexgordon>
hi ELLIOTTCABLE
<purr>
<alexgordon> like a place for really religious salmon to go
<alexgordon>
yep
PragCypher has joined #elliottcable
<purr>
<eboy> no one older than 34's name is devin
cloudhead has joined #elliottcable
<joelteon>
so does she have cancer
<vil>
she got her wisdom teeth out
<alexgordon>
joelteon: I like the nonchalant way you put that, manages to be more insensitive than anything sephr has ever said
<joelteon>
wait
<joelteon>
she got her wisdom teeth out and that's what happened?
<vil>
alexgordon++
<purr>
Let it be known that vil loves alexgordon.
<joelteon>
what did I do
<joelteon>
i was just curious
<joelteon>
that sounds like a chemotherapy sort of thing
<vil>
some people have extremely adverse reactions to surgery
<vil>
only if I know it extremely well and it's somewhat repetative
<cuttle>
ok
<vil>
*repetitive
<vil>
I probably could get used to it if I gave it long enough
<vil>
the lyrics are often so terrible too though
<vil>
and I mean, it takes a lot to make me uncomfortable
<cuttle>
in hip hop?
<vil>
I listen to skrillex and such after all, where the only samples are often expletives
<cuttle>
well i mean there's a *huge* difference between say eminem and tyler the creator
<cuttle>
and
<vil>
right
<cuttle>
grieves and brother ali
<cuttle>
and stuff
<vil>
I can't stand tyler the creator, my sister listens to him
<vil>
but like, I LOVE Watsky
<cuttle>
idk i don't like watsky at all
<vil>
heh
<vil>
I can take Macklemore in small doses
<vil>
I like Can't Hold Us a lot
<cuttle>
older macklemore is the only stuff i like in the same way as the rest of hip hop
<cuttle>
i mean like the heist ain't *bad* as music, but
<cuttle>
feels like a lot of people who like watsky and macklemore like them because they're like "oh it's rap minus all the black people and violence"
<vil>
I just hate when people who obviously have talent still turn to stringing together swearing and sexism and etc
<cuttle>
well what's wrong with swaering
<cuttle>
yeah sexism is a problem
<vil>
nothing
<cuttle>
not everyone's bad though
<cuttle>
here's something interesting:
<vil>
it's mostly where the swearing is pointed that bothers me
<cuttle>
before I was into hip hop
<cuttle>
it was really hard for me to get past the surface level of it
<cuttle>
swearing and shit
<cuttle>
but now that that's like
<cuttle>
the canvas
<cuttle>
the white noise, so to speak, of the medium
<vil>
mmm
<cuttle>
then you can do so much interesting stuff on top of it
<cuttle>
like
<cuttle>
chance the rapper
<cuttle>
i would have been scared of in the past
<cuttle>
because of swearing etc.
<cuttle>
now he's like, adorable to me
<cuttle>
in a way
<alexgordon>
cuttle!!!!!
<cuttle>
alexgordon:
<alexgordon>
cuttle: whitequark called furrow worthless, then he quat!
<cuttle>
i saw
<vil>
whitequark is a whitequark and is not to be taken seriously
<alexgordon>
so I've been writing code
<alexgordon>
going hyper top down. wrote the entire mail function :P