alexgordon has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
purr has quit [Remote host closed the connection]
<ELLIOTTCABLE>
okay no more annoyingpurr
<ELLIOTTCABLE>
for now, anyway
purr has joined #elliottcable
<alva>
Swift seems to be on a 1 year per major version streak
<ELLIOTTCABLE>
-what
<purr>
<cuttle> ELLIOTTCABLE: oh shit you're listening to because the internet?
<ELLIOTTCABLE>
sigfig: hi, you know things
<sigfig>
hi thanks
<ELLIOTTCABLE>
do you have any interesting papers or posts or w/e on 1. optimizing continuations or 2. generic high-level info on optimizing “languages w/o procedures?”
<sigfig>
"optimizing continuations"?
<ELLIOTTCABLE>
I know very little about optimizing compilation, but everything I *have* learned centers around the Function™ slash procedure
<ELLIOTTCABLE>
and … my language work has no functions or procedures, so like, it's been slow work to find anything relevant to what I do /=
<ELLIOTTCABLE>
or similar flow-control constructs.
<sigfig>
are you working on a language? the things you mentioned are two very different very broad categories so it might be easier for me to point you towards something concretely relevant
<ELLIOTTCABLE>
Hm.
<sigfig>
it may also help to describe what you mean by undelimited continuations
<ELLIOTTCABLE>
Ugh, if there's nothing that immediately jumps to mind, then it's probably a huge waste of your time to attempt to explain enough that you can help me.
* ELLIOTTCABLE
sighs
<ELLIOTTCABLE>
This is the kind of shit I used to bend whitequark to :P
<sigfig>
i can probably point you towards papers but idk what "undelimited continuation" means to you
<ELLIOTTCABLE>
sigfig: My language has very unrestricted flow-control: there's no shaped-off unit of instructions, like a procedure, to use as a unit-of-optimization (lots of the optimization things I've read focus on preforming progressively-more-and-more analysis on such a unit as it becomes used more and more often);
<sigfig>
what do you use for control flow then?
<ELLIOTTCABLE>
and many of those same systems treat (undelimited) continuations as a Very Edge Case, and opt to basically not optimize them at all: escape out to the interpreter, even, when such a optimizable-unit uses call/cc or something
<ELLIOTTCABLE>
‘what undelimited continuation means to me’ am I completely mis-using the term? :x
<sigfig>
i think that is a term lisp people use but i am not a lisp
* ELLIOTTCABLE
nods
* ELLIOTTCABLE
pokes around google for a succinct explanation
<sigfig>
brb dog
<ELLIOTTCABLE>
for control-flow I'm using something like every-single-call-is-a-continuation: in a made-up syntax, `a[b][c]` would be resuming a continuation stored in `a` with `b`, and pausing execution of the the current/containing code … then, when the current code is resumed with a value (say, `blah`), it would then resume `blah` with `c`.
<ELLIOTTCABLE>
really half-arsed explanation, but I'm neither sure precisely how much you need to know to drop some references; and I don't want to dump a Complete Explanation of my Language Work on you :P
<sigfig>
im sorry im not getting anything out of that explanation
<sigfig>
oh ok i understand the distinction
<sigfig>
so your control flow is implemented using alternating continuations?
<ELLIOTTCABLE>
hm. alternating. sure, I think?
<ELLIOTTCABLE>
except it's also *not* continuations. I was hoping that'd spawn some useful associations for you, but I've got a different control-flow primitive I'm calling an ‘execution.’
<ELLIOTTCABLE>
it's basically a first-class representation of a single evaluation of a block of code; think first-class program-counter?
<sigfig>
a trace?
<ELLIOTTCABLE>
never heard the term: link?
<ELLIOTTCABLE>
distinction against continuation being continuation wraps up a stack, context, all this extranea; and every time you invoke a particular continuation, all of that will be restored. whereas invoking an ‘execution’ moves it forward every time you do so, so invoking the same execution twice will do two different things.
<ELLIOTTCABLE>
oh, you don't mean as a data-type, but as a concept. yah!
<sigfig>
a trace is a representation of one contextful execution thats just implicit yeah
<ELLIOTTCABLE>
trace == representation of an evaluation == execution
<ELLIOTTCABLE>
in my work the question of context doesn't really come into play (the other Big Aspect of this is that *all* data is present in one giant, homogenous data-graph; and that is the *only* repository of state. no local variables, no call-stack or anything like it, so on and so forth …)
<ELLIOTTCABLE>
oh, here, this is interesting
<sigfig>
so you have, semantics that shuffle around traces in one monolithic scope?
<ELLIOTTCABLE>
hm. ‘Jump between’ traces, perhaps, but yep
<ELLIOTTCABLE>
I wish Pinboard would suggest similar tags -_-
<ELLIOTTCABLE>
it's in coffeescript, run screaming ¯\_(ツ)_/¯,
<ELLIOTTCABLE>
and a now-fairly-ancient specification that's out of date in the particulars: http://ell.io/spec
<ELLIOTTCABLE>
there's also … idk-something-like-six-years of annotations / miscellany / deprecated forays / other peoples' half-arsed implementations around the idea.
<sigfig>
google docs has voice commands what the shit
<ELLIOTTCABLE>
what
<ELLIOTTCABLE>
where
<ELLIOTTCABLE>
what
<ELLIOTTCABLE>
like, really though, maybe just don't dive in. This is my little corner of unstable-unhealthy-crazy. I didn't mean to drag you in.
<sigfig>
tools > voice typing
<sigfig>
i like looking at other ppls languages!
<ELLIOTTCABLE>
If you didn't have any useful Suggestions For People Building Non-Traditional Languages right off the bat, it's unlikely you can help me without getting buried face-first in Paws lore. >,>
<ELLIOTTCABLE>
well, lawl
<sigfig>
so like, the thing with optimizing nontraditional languages is that you have to formalize against something more traditional
<sigfig>
so far i have literally no idea what this language is or what direction you should go
<ELLIOTTCABLE>
see: that's what I meant
<sigfig>
if you were treating these continuations traditionally you'd just use the standard set of cps optimizations
<ELLIOTTCABLE>
in terms of ‘formalize against something more traditional’, well, the only formalizations with which I am familiar are, like, CPS/SSM, for stuff like JavaScript or Ruby or Lisp.
<sigfig>
but if your control flow is implemented entirely within the continuation passing (?) then you have a more difficult challenge
<ELLIOTTCABLE>
I have *no idea* how things like concatenative or declarative languages are implemented/optimized.
<ELLIOTTCABLE>
yah it doesn't map cleanly to CPS, otherwise A Lot™ of andy wingo's work would be applicable to me
<ELLIOTTCABLE>
(that's mostly where I got interested in optimization; I *love* reading about what he's doing to guile)
<sigfig>
i imagine what you have is something more like a combinatorial language
<ELLIOTTCABLE>
A bit: it inherits from smalltalk in terms of the fundamental operation being effectively message-passing
<ELLIOTTCABLE>
we call it ‘combination’ but it's like whatever same diff
<ELLIOTTCABLE>
sigfig: incoming privmsg
<ELLIOTTCABLE>
sigfig: (reply here)
<sigfig>
oki
<ELLIOTTCABLE>
delimited continuations as I understand them are just composable stacks instead of wholesale-replacement ones
<ELLIOTTCABLE>
(been reading up)
<sigfig>
or, more like a coroutine than a closure
<sigfig>
as i understand it the distinction is just, one has (not necessarily statically) quantifiable subcomputation
<ELLIOTTCABLE>
mmhmm!
<ELLIOTTCABLE>
delimited continuations give you a lot of the sylistic niceties / flexibility of a continuation, with the, uh, reasonableness(?) of a coroutine, is how I see it.
<ELLIOTTCABLE>
there's also, errrr, ‘ECs’, I forget what it stands for
<ELLIOTTCABLE>
yeah, looks like Racket has a bunch of really neat stuff w.r.t. this.
<sigfig>
in your spec you've described your combination in a umm
<sigfig>
suspiciously monadic way
<ELLIOTTCABLE>
haven't read that spec in a year
* ELLIOTTCABLE
reviews
<sigfig>
so you have a parallel abstract machine and a queue of computations to run on them
<ELLIOTTCABLE>
hell I don't even fucking understand monads, so idk don't ask me
<sigfig>
have you actually considered monadic analysis? it's the step below process calculi here
<sigfig>
o ok
<ELLIOTTCABLE>
yeah, that queue is gone
<sigfig>
has the spec changed a lot recently\
<ELLIOTTCABLE>
that was my effort for the past, like, year of my life: somebody (very saliently) pointed out that … how the fuck are you trying to build a massively-parallel language with a single centralized data-structure
<ELLIOTTCABLE>
order-of-operations is now entirely unspecified and dependant on something vaguely akin to locking
<sigfig>
that sounds like something that can really only be formalized against a process calculus
<ELLIOTTCABLE>
Yeah, that specific part has changed Very Fundamentally, but everything else has only changed superficially. some re-naming of things here, some re-implementation with a slightly different API there.
<sigfig>
if you want to find prior art for optimization
<ELLIOTTCABLE>
/cc incomprehensibly devyn, and maybe Sorella?
<ELLIOTTCABLE>
brb
<sigfig>
i do not fully understand the semantics you want but if the entire program is supposed to be composed from message channels and locking you'll want to read up on those
<ELLIOTTCABLE>
this looks Exceedingly Relevant, yiss, yiss
alexgordon has joined #elliottcable
<ELLIOTTCABLE>
hm
<ELLIOTTCABLE>
alexgordon: process calculus?
<alexgordon>
?
<alexgordon>
ELLIOTTCABLE: new people?
<ELLIOTTCABLE>
oh lord () as grouping in addition to input-prefixing is so confusing
<ELLIOTTCABLE>
alexgordon: new singular person, sigfig
<ELLIOTTCABLE>
alexgordon: ever heard of process calculi? she's put me on to the π-calculus as an analog to the λ-calculus for describing parallel computation
<alexgordon>
yeah I have
<alexgordon>
I never looked into it deeply though
<sigfig>
cham is the best one
<alexgordon>
ELLIOTTCABLE: what are you up to these days?
<ELLIOTTCABLE>
school and paws. /=
<ELLIOTTCABLE>
sigfig: best what?
<ELLIOTTCABLE>
alexgordon: school is kicking my ass.
<sigfig>
process calculus
<sigfig>
cham encodes entropy into the semantics
<ELLIOTTCABLE>
I always looked back on my previous school experience as ‘Awh, cute! depressed unmotivated elliott was such a Youth Thing.’
<alexgordon>
ELLIOTTCABLE: hire someone in china to do your homework for you
<ELLIOTTCABLE>
because ever since dropping out I've been *very* consistently happy and motivated and fulfilled
<ELLIOTTCABLE>
and I always just assumed if I went *back* to school, I'd do fine, because those problems were gone
<ELLIOTTCABLE>
but LOLNOPE, at 26 goddamn years old, I'm having exactly the same “I can't make myself do homework” problems I had at 16. -_-
<purr>
lol.
<ELLIOTTCABLE>
stfu purr
<sigfig>
rude bot
<ELLIOTTCABLE>
-stop
<ELLIOTTCABLE>
-dick
<purr>
ELLIOTTCABLE: I'll be a dick in 23 hours, 59 minutes, 58 seconds, 391 milliseconds (999mſ 981µſ); please wait patiently.
<ELLIOTTCABLE>
it's so weird: I thought I'd conquered my motivational issues, because I have *such* strong motivation, such effective time-allocation, since then … but that's in working on things I *want* to be working on.
<ELLIOTTCABLE>
turns out, as soon as I have a task to preform that I can't easily and directly link to a personal goal, no fucking force in this universe can drive me to attack that task /=
<sigfig>
academic motivation is very different from professional motivation
<sigfig>
i have the inverse problem
<sigfig>
i thought making money would be a significant enough motivator for me to do normal work but that hasn't really worked out
<ELLIOTTCABLE>
>:
<ELLIOTTCABLE>
it's far from the Root of the Problem, but observation:
<ELLIOTTCABLE>
I love solving problems without … clear end-goals? And academic problems always feel constructed, pointless, … shaped
<alexgordon>
ELLIOTTCABLE: just stick at it, it either works out or it doesn't, but you won't ever know unless you put all your energy into it
<ELLIOTTCABLE>
like how calculus problems are reverse-engineered to have easy steps and come out with sane, simple solutions
<sigfig>
what ki
<ELLIOTTCABLE>
but then you get into an engineering field and it's all imaginary components and the cube root of 1.687823924375
<sigfig>
what are you doing in school?
<ELLIOTTCABLE>
lol cs right now, but on the cusp of transferring to applied mathematics
<sigfig>
like what field
<sigfig>
o
<alexgordon>
applied mathematics? lol
<sigfig>
grad?
<ELLIOTTCABLE>
lmao no
<ELLIOTTCABLE>
returned to undergraduate
<alexgordon>
have you concoured your calculus demons ELLIOTTCABLE?
<ELLIOTTCABLE>
I *wish* a school would just let me jump into a graduate program without an undergraduate degree
<alexgordon>
I think there's a q in concoured somewhere
<sigfig>
yeah cs undergrad just sucks sorry friend
* ELLIOTTCABLE
shrugs
<ELLIOTTCABLE>
I'm actually pretty happy with it, so far.
<sigfig>
if you can power through it the grad experience is better
<ELLIOTTCABLE>
the material is Fucking Trivial, and the instructors are all really cool / really understanding
<sigfig>
especially wrt motivation
<ELLIOTTCABLE>
happy to sit around outside class and wax eloquent on graph theory or something, you know?
<sigfig>
thats an undegrad professors real job
<ELLIOTTCABLE>
alexgordon: yeah, Calc is easy as fuck this time around. thank god.
<ELLIOTTCABLE>
mostly because I am Goddamned Determined.
<ELLIOTTCABLE>
sigfig: it's hilarious because *university professors* who know what a fourier transform are, are coming to *me* for advice on programming as a field -_-
<ELLIOTTCABLE>
Like I know nothing about anything, yo
<alexgordon>
ELLIOTTCABLE: I think you should take whatever comes most naturally to you. If CS seems easy, stick with CS
<ELLIOTTCABLE>
alexgordon: fuck that
<alexgordon>
you can always read books...
<ELLIOTTCABLE>
it's easy because I already *know* it, it's just stupid programming shit.
<alexgordon>
yeah but that's not the point
<ELLIOTTCABLE>
programming isn't hard. I want *computer science*, that's why I'm spending N-dozen-thousands of dollars to return to school.
<ELLIOTTCABLE>
and I'm realizing that a discrete mathematics focus is going to cover *the same shit*, just three years sooner.
<alexgordon>
you don't need to go to university to learn shit, you can do that at home
<ELLIOTTCABLE>
(tentatively: co-terminal AM bachelor's CS master's; my Very Helpful Advisor seems to think it's a good plan)
<alexgordon>
you go to university to learn shit with other people, and do projects
<ELLIOTTCABLE>
alexgordon: not this shit. I've tried.
<ELLIOTTCABLE>
I'm *lost*, completely *lost*, when I try to crack a mathematics book.
<ELLIOTTCABLE>
and google is worse.
<incomprehensibly>
hi
<alexgordon>
maybe you just need better mathematics books
<ELLIOTTCABLE>
Learning Boring Programming Drudgery outside of school? fuck yeah
<ELLIOTTCABLE>
learning advanced mathematics without an instructor to bug with my confusion? fuckno.
<alexgordon>
if you do CS you can build operating systems and compilers!
<alexgordon>
sup micah
<ELLIOTTCABLE>
alexgordon: again: they're equivalent. DM just does all the same shit without teaching you two and a half years of Java, C++, and data-structure sfirst.
<ELLIOTTCABLE>
Like, not speaking abstractly: very specifically, the curriculum of required and available courses at my school match up *nearly perfectly*; the AM program is just *more so*, because it leapfrogs all the “how 2 progruhm” stuff at the start of the CS undergrad.
<ELLIOTTCABLE>
this makes sense, because IIT's CS department is surprisingly young: it was just a branch of the mathematics department until relatively recently
<ELLIOTTCABLE>
the '80s or '90s I think?
<alexgordon>
ELLIOTTCABLE: ok put it this way. If you can't teach yourself stuff _yourself_ then you'll be hopelessly lost
<ELLIOTTCABLE>
incomprehensibly: hi!
<ELLIOTTCABLE>
alexgordon: meh, disagree. I'm pretty happy with my instructors so far; as long as I can go to them personally and help-vampire for hours, I do really well.
<ELLIOTTCABLE>
(and I can. privileged white male ~YEY~)
<alexgordon>
man you are _the_ priviledged white male
<incomprehensibly>
<3 irccloud's turning clock hand as you rewind
<ELLIOTTCABLE>
incomprehensibly: yesss
<ELLIOTTCABLE>
alexgordon: yah
<ELLIOTTCABLE>
alexgordon: poster-child for privilege
<alexgordon>
ELLIOTTCABLE: well, I think you're solving the wrong problem. If you can't open a mathematics book and learn stuff from it without sucking off instructors (erm) then this whole college thing will be a dead end
<ELLIOTTCABLE>
literally, theres a poster
<ELLIOTTCABLE>
you will never find it
<ELLIOTTCABLE>
but.
<ELLIOTTCABLE>
alexgordon: why do you say that? that's literally *the point* of college.
<alexgordon>
because, you shouldn't look at it as a menu of courses that you'll go there and learn
<alexgordon>
but rather expanding your ability _to_ learn
<ELLIOTTCABLE>
like, I had this discussion with an graduate mathematics instructor who wanted advice and help on his plan to possibly leave academia and try to become a programmer
<ELLIOTTCABLE>
and it's like: the learning-avenues that cost you money are great and all, *once* you've exhausted the free self-education avenues
<alexgordon>
no applied mathematics course covers everything you'll need to learn about applied mathematics. you will always have to read books
<incomprehensibly>
ELLIOTTCABLE: from the amount that my computer vision professor casually mentions real world applications in eg like analyzing microsopic biology pictures to do science
<incomprehensibly>
ELLIOTTCABLE: i suspect Youre Wrong
<incomprehensibly>
;o
<ELLIOTTCABLE>
incomprehensibly: huh?
<incomprehensibly>
about cv being useless
<ELLIOTTCABLE>
incomprehensibly: oh lord that's an old one
* ELLIOTTCABLE
ignores for now
<incomprehensibly>
lol ya
<incomprehensibly>
ELLIOTTCABLE: i'm just still mad about it
<alexgordon>
incomprehensibly: diff eqs is just mathematica :D
<incomprehensibly>
alexgordon: ahaha
<incomprehensibly>
alexgordon: i have been matlabbing lately for my computer vision class
<incomprehensibly>
do you have experience
<alexgordon>
nope. just mathematica and scipy/numpy
<ELLIOTTCABLE>
matlabbing, why
<incomprehensibly>
required for class
<ELLIOTTCABLE>
what are the reasons to matlab instead of mathematica
<ELLIOTTCABLE>
oh
<incomprehensibly>
ELLIOTTCABLE: they're totally different
<ELLIOTTCABLE>
er
<incomprehensibly>
mathematica is symbolic shit
<incomprehensibly>
matlab is good for numeric matrix chugging
<ELLIOTTCABLE>
idk I just spent like two hours having a mathematics professor tell me matlab is really dumb and how he wishes engineers would give mathematica more of a chance instead
<incomprehensibly>
not that there isn't overlap
<alexgordon>
mathematica is pretty slow too
<sigfig>
mathematica is really not useful when you need, a loop,
<incomprehensibly>
sigfig: ahahah
<incomprehensibly>
no yeah matlab actively cares about efficiency
<incomprehensibly>
and i'm sure that's why engineers use it instead of mathematica
<alexgordon>
pretty sure python is kicking ass these days
<alexgordon>
you see djb uses sage for everything?
<alexgordon>
I've never used sage, but it has the seal of approval from god
<ELLIOTTCABLE>
mathematica does loops, but you're supposedly Doing it Wrong if you need one
<alexgordon>
I've been using mathematica ever since I did my A level homework :P
<sigfig>
supposedly wolfram's new lang is better at numerical performance but supposedly it is also hard ai
<ELLIOTTCABLE>
lmao
<alexgordon>
ELLIOTTCABLE: there's a great bit in the mathematica documentation that explains how steven wolfram invented loops
<incomprehensibly>
steven wolfram invented loops in the graph theory/topological sense too
<ELLIOTTCABLE>
lol yes we all know he's full of himself :P
<alexgordon>
when I first used mathematica I used For[], but then I found out about /@ :P
<incomprehensibly>
alexgordon: what's /@
<incomprehensibly>
seems hard to google
<alexgordon>
map
<alexgordon>
maybe it's @/
<alexgordon>
I can never remember
<alexgordon>
actually when autothreading works, it's majestic
<alexgordon>
like you can do f[Range[100]]
<incomprehensibly>
gdi i've taken an analysis midterm and done a 3 hour embedded systems lab
<incomprehensibly>
now i have to do computer vision homework
<incomprehensibly>
;_;
<alexgordon>
my biggest problem with it though is that the data structures are soooo 90s
<alexgordon>
like I think they might just have added dictionaries
<alexgordon>
sometimes functions return {{a1, a2}, {b1, b2}} other times it's {a1 -> a2, b1 -> b2 }... these problems would be solved with dictionaries
<ELLIOTTCABLE>
Think I've wrapped my head around π-calc re: channels
<incomprehensibly>
ELLIOTTCABLE: have you seen go channels or rust channels
<sigfig>
eww csp
<alexgordon>
+1 on eww csp
<alexgordon>
or at least, eww whatever the hell go uses
<alva>
Eww, Go
<sigfig>
csp but without two of its core rules
<alexgordon>
GCD forever <3
<ELLIOTTCABLE>
incomprehensibly: yes a bit
<ELLIOTTCABLE>
CSP?
<ELLIOTTCABLE>
incomprehensibly: not a fan of goroutines or whatever.
<ELLIOTTCABLE>
does Rust do them better? haven't seen that, no.
<ELLIOTTCABLE>
I want to love Rust, really hard, from everything I've heard
<alexgordon>
I think rust just has native threads now ?
<ELLIOTTCABLE>
but people I respect keep ragging on it, which has unfortunately managed to deter me from really looking into it.
<sigfig>
it is worth a look
<alexgordon>
I thought they got rid of all the runtime stuff from the language and said "go use a library"
<sigfig>
im sad that monads are so hard in rust
<sigfig>
if they had real hkt id be all over it
<ELLIOTTCABLE>
sigfig: monads: go
<ELLIOTTCABLE>
:P
<sigfig>
>>= me
<purr>
sigfig: SyntaxError: irc:1
<ELLIOTTCABLE>
:: does this even work
<ELLIOTTCABLE>
:: infrastructure
<ELLIOTTCABLE>
lmao
<alexgordon>
what about monads?
<ELLIOTTCABLE>
alexgordon: six years in a channel populated primarily by functionalists and I still don't really get them.
<alexgordon>
ELLIOTTCABLE: you know, lots of these mathematical words are just formalisms for everyday concepts
<ELLIOTTCABLE>
like, my intuition from a half-dozen attempts to explain them is “This is a useless trick to get around pointless constraints imposed by strict type systems, that you could just as easily get around by not having a freaking strict type system.”
<sigfig>
monads, are like rockets,
<ELLIOTTCABLE>
and I'm pretty sure that intuition is off-base
<ELLIOTTCABLE>
so I'm super-lost as to what else they could be.
<alexgordon>
ELLIOTTCABLE: I think that's why people don't get it, because they're expecting it to be something big and fantastic, but really it's rather mundane
<ELLIOTTCABLE>
I have that problem with proofs.
<ELLIOTTCABLE>
dropped my introductory-proofs class because I was *struggling* with the requirements; they simultaneously seemed incomprehensibly simple *and* incomprehensibly complex.
<alexgordon>
a "monad" is a term from category theory that groups some things together that programmers might not usually group together
<alva>
I wish the cool stuff in Rust was something I needed. I don't write many web browsers or similarly complex programs. It just made me spend a lot of time on things that aren't typically issues.
<sigfig>
it is, really not suited for the things c is suited for
<alexgordon>
alva: yeah rust has a bright future for like... aerospace, security software, etc
<alexgordon>
if you're making a dipshit web app you don't need all the safety shit it forces on you
<alexgordon>
facebook is written in PHP :P
<sigfig>
it too big for aerospace
<sigfig>
gotta get that binary bloat down if you want to run it rad hardened
<alexgordon>
eh the rust people will figure that out
<alexgordon>
I think you can just link in core or whatever it is iirc?
<alexgordon>
without the whole stdlib
<sigfig>
yeah when they get their lib situation sorted it will be a lot smaller
<sigfig>
still not quite small enough for lots of embedded platforms but some good optimization can get it there
<sigfig>
i'd love to see aerospace switch away from ada/c
<sigfig>
space probes, with type systems, my dream,
<alexgordon>
yeah
<alexgordon>
thing is, without templates rust is never going to catch up with C++
<sigfig>
that wouldnt be as much of a problem if monads were workable but that is basically what stopped me from committing to it for the tulip compiler
<sigfig>
abstraction too hard
<alexgordon>
e.g. I was writing a chess engine in rust, then I figured out that you can't do stuff like template<bool Color> without using macros and ehhhh
<alexgordon>
so that was a pretty short lived chess engine
<alexgordon>
come to think of it, I wouldn't like to do audio programming in rust either
<sigfig>
it _could_ be good at realtime work but its not there yet
<sigfig>
i dont think the mozilla people have any concern for that
<alexgordon>
nope. their message is "we're going to replace C++!" but they are being too choosy about which features they implement
<alexgordon>
to replace C++ they have to put in the dirty features too!
<alexgordon>
so it will end up being a safer and faster Java competitor
<alva>
alexgordon: I seem to be doing audio and GBA recently and I don't see how Rist helps me att all there
<alexgordon>
game boy advance? :P
<alva>
All the examples are all `unsafe { everything }`
<alva>
Yeah
<alexgordon>
oh you were serious lol
<alexgordon>
I was joking
<alva>
:]
<alexgordon>
I have done stuff with coreaudio
<alexgordon>
it was really frightening :P
<alva>
I used that for an FM synth on iOS
<sigfig>
i had to debug coreaudio once when it introduced a 2s delay on all sounds
<sigfig>
i never want to work for apple
<alva>
All in fixed point because the iPhone of the time was not bery good at floating point
<sigfig>
awww
<sigfig>
fixed point synth
<sigfig>
thats so cute
<alva>
It's on github but all commits are under deadname :p
<sigfig>
i still have yet to successfully port ghc to ios9 so i can do more
<alva>
What's missing? Does it have ARM support?
<sigfig>
yeah, ghc uses llvm for cross
<sigfig>
the biggest problem is actually autoconf
<sigfig>
m4 is bad and the ghc build system wasn't propagating target options right last time i tried
<alva>
GHC scares me
<sigfig>
its a neat compiler
<sigfig>
kinda spooky on the inside
<alva>
Porting my gf:s lil stack VM to GBA
<alexgordon>
ELLIOTTCABLE: btw, check out Tom Leinster -- Basic Category Theory. http://www.maths.ed.ac.uk/~tl/bct/ it's creative commons, but you have to get it from libgen until he uploads it :P
<alva>
Yeah theinsides I mean
<alva>
Using it is nice
<sigfig>
it is one of very few haskell projects ive seen that actually uses unsafeIO
<sigfig>
next dev cycle has a goal to stop that nonsense
<alva>
Seen that in many libs
<sigfig>
binding libs use it often but its really not that useful in most things