<purr\Paws>
Paws.rs/master b523218 Devyn Cairns: Redesign reactor/machine stuff to use a generic Reactor trait (tests and parallelism currently broken)
<devyn>
that might be my largest commit to Paws.rs so far
Sgeo has quit [Read error: Connection reset by peer]
yorick has joined #elliottcable
Sorella has joined #elliottcable
prophile has joined #elliottcable
prophile has quit [Quit: The Game]
prophile has joined #elliottcable
<ELLIOTTCABLE>
hi, all
<ELLIOTTCABLE>
devyn: don't get rid of queue, yet. Other than little shit like semicolons and brackets, I want to stick to “the spec” until I change it.
<ELLIOTTCABLE>
devyn: we'll talk more about it a bit later
<ELLIOTTCABLE>
I'm at LambdaJam!
<ELLIOTTCABLE>
it's so weird, being at conferences *in my city*
<Cheery>
ELLIOTTCABLE: hi
<ELLIOTTCABLE>
o7, Cheery
<ELLIOTTCABLE>
can't really chat about things, paying attention to talks / taking notes
<Cheery>
this lrkit is feeling slightly insanity.
<ELLIOTTCABLE>
el oh el love Google Docs
<Cheery>
ok. :)
<ELLIOTTCABLE>
this what?
<Cheery>
made a library out of my parser generator
<joelteon>
neither of them accept -Wnewline-eof, which is a darwin-specific argument that was removed after 4.2
<joelteon>
however, the configure script doesn't actually check whether -Wnewline-eof is supported
<joelteon>
it says "ok, we're on darwin, that means we need to use this flag"
<joelteon>
the build breaks
<joelteon>
there's no option to disable that warning in the configure script
<joelteon>
so what you do is write a shell script that calls g++ with everything except -Wnewline-eof
<joelteon>
then use CXX=myscript ruby extconf.rb
<joelteon>
of course, extconf doesn't pay attention to CXX, so that fails too
<joelteon>
so the solution is to remove gcc/g++ from the PATH, refer to them explicitly in the shell script, rename the script to g++, add its parent to the PATH, and run extconf again
<joelteon>
bam
<joelteon>
fucking garbage
<katlogic>
compiling is ok, but trying to fix random crashes in RR is fucking impossible
* katlogic
suspects some java programmer designed the thing
<katlogic>
stuff which can be done in 1kloc done in 100kloc
<joelteon>
what's RR
<katlogic>
ruby racer
<joelteon>
oh ok
<joelteon>
therubyracer? the wrapper for libv8?
<katlogic>
to be fair, v8 sucks donkey balls too
<joelteon>
you mean the javascript engine or the bindings to it?
<katlogic>
not badly designed, but complete lacks of docs
<joelteon>
the engine itself is a really impressive piece of engineering
<joelteon>
boy i'm glad i never have to interop with it
<joelteon>
therubyracer, of course, is garbage
<katlogic>
as for jit engine, it has some + and -s too, but overall pretty top of the line.
<katlogic>
for example, doing memory intensive tasks on v8 is pretty delusional, simply because its not been engineered for it
<katlogic>
gc not sucky, but you dont need to gc more than 2mo objects in typical browser workloads
<joelteon>
2 mo?
<katlogic>
roughly the threshold when it slows down to crawl
<katlogic>
cpu runs out of cache
<katlogic>
and each gc steps takes 1000+ ms
<katlogic>
that comparison is a bit unfair though, java jit is actually designed for server workloads ...
<katlogic>
jit and moreso gc
<katlogic>
what really sucks in v8 is the overhead of c++/js boundary
<katlogic>
ie lua and java can beat it several magnitudes in there
<joelteon>
lua is a cool language
<katlogic>
its too wtf to go mainstream, same as with haskell
<joelteon>
it's not that, it's how small the stdlib is
<katlogic>
what?
<joelteon>
the lua stdlib is embarrassingly bare
<katlogic>
i'm not sure about that batteries included dilemma
<katlogic>
you know, js has no runtime of its own either
<joelteon>
it makes sense for an embeddable scripting language though
<katlogic>
well, even if it had something like that im not too sure it would be of any use
<joelteon>
in the browser, js has everything it needs (mostly)
<joelteon>
i've never used js outside the browser
<katlogic>
though orthogonally elegant, its not just as productive as hacking things together in python
<joelteon>
god i hate python
<katlogic>
most often i just port hacked python tools to lua later when i need that 100x+ speedup
prophile has quit [Quit: The Game]
prophile has joined #elliottcable
prophile has quit [Read error: Connection reset by peer]
prophile has joined #elliottcable
prophile has quit [Quit: The Game]
<ELLIOTTCABLE>
UGH HELP I AM BAD AT FUNCTIONAL
<ELLIOTTCABLE>
OR MATH OR WHATEVER
<ELLIOTTCABLE>
they're trying to teach me set theory I CAN'T I CAN'T D:
<katlogic>
p much
<katlogic>
fucking ableist math, all hail basic numerics
<Cheery>
hello a ->
<Cheery>
{a -> : ('hello', None)}
<Cheery>
{a -> : ('hello', 1)}
<Cheery>
hello 1 a ->
<Cheery>
hello a ->
<Cheery>
{a -> : ('hello', None)}
<Cheery>
hello 1 a ->
<Cheery>
{a -> : ('hello', 1)}
<Cheery>
woops.
<Cheery>
anyway. it works. ^
<Cheery>
parser generator that parses a language which feeds the parser generator
<Cheery>
ELLIOTTCABLE: I load the parser and attach it to the module where I load it from.
<Cheery>
as the result the module turns into an interpreter
<Cheery>
what do you think?
prophile has joined #elliottcable
eligrey has joined #elliottcable
<devyn>
ELLIOTTCABLE: well, I think I'm going to go ahead and not conform to the spec for parallel reactors, because parallel reactors are pretty much useless if you do
<devyn>
ELLIOTTCABLE: but I've set it up so I can now have multiple types of reactors
<devyn>
ELLIOTTCABLE: so now I have SerialReactor, which doesn't attempt any parallelism.
<devyn>
ELLIOTTCABLE: and that will follow the spec as it is now, because it's the most obvious thing to do without parallelism anyway
alexgordon has joined #elliottcable
devyn_ has joined #elliottcable
<devyn_>
I got disconnected
<joelteon>
RIP
devyn_ has joined #elliottcable
devyn_ has quit [Changing host]
devyn has quit [Disconnected by services]
devyn_ is now known as devyn
<devyn>
since I'm not sure which messages made it through,
<devyn>
14:39:06 <+devyn> ELLIOTTCABLE: well, I think I'm going to go ahead and not conform to the spec for parallel reactors, because parallel reactors are pretty much useless if you do
<devyn>
14:39:28 <+devyn> ELLIOTTCABLE: but I've set it up so I can now have multiple types of reactors
<devyn>
14:39:45 <+devyn> ELLIOTTCABLE: so now I have SerialReactor, which doesn't attempt any parallelism.
<devyn>
14:40:05 <+devyn> ELLIOTTCABLE: and that will follow the spec as it is now, because it's the most obvious thing to do without parallelism anyway
<devyn>
14:41:08 <+devyn> ELLIOTTCABLE: I'm going to add ParallelReactor/ReactorPool which won't follow the spec, but will allow me to do some experimentation to find out what the most efficient way to do this is