<_hs710>
jc00ke: sure, sorry, didn’t realize that was a thing
<_hs710>
is there a way to actually move the issue, or should I close and re-file it?
<headius>
refile
<_hs710>
headius: hi, thanks, doing that right now
<_hs710>
and done
<jc00ke>
thanks @)_hs710
<_hs710>
jc00ke: you’re welcome. and now I know why I couldn’t find any socket specs in the rbx source :-)
benlovell has joined #rubinius
benlovell has quit [Ping timeout: 245 seconds]
<jc00ke>
the BasicSocket#local_address issue brings up a pain point I've experienced before: how do you test changes to rubysl libs in Rubinius, while developing them?
<jc00ke>
Or, I guess another way to put it: what's the incantation for mspec to use Rubinius and pick up local (rubysl-socket, for example) changes?
<jc00ke>
`mspec -t path/to/rbx -I lib/`?
<headius>
-T-I I suppose?
<jc00ke>
-T? What is this target opt you speak of? :)
<jc00ke>
`mspec -t path/to/bin/rbx -I lib/ spec/basicsocket/local_address_spec.rb` worked
<headius>
-T passes options to the ruby it launches
<headius>
maybe -I is a shortcut for -T-I
pietr0 has joined #rubinius
<goyox86>
now reading data from StatsD-> InfluxDb -> Graphs :)
elia has quit [Quit: Computer has gone to sleep.]
sbryant has quit [Ping timeout: 258 seconds]
sbryant has joined #rubinius
meh` has joined #rubinius
<yorickpeterse>
jc00ke: Yeah, you set RUBYLIB
nirvdrum has quit [Ping timeout: 264 seconds]
nirvdrum has joined #rubinius
_hs710 has quit [Quit: _hs710]
_hs710 has joined #rubinius
goyox86 has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
arrubin has joined #rubinius
noop has quit [Ping timeout: 258 seconds]
goyox86 has joined #rubinius
slaught has joined #rubinius
s3m has joined #rubinius
s3m has joined #rubinius
diegoviola has quit [Remote host closed the connection]
diegoviola has joined #rubinius
goyox86 has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
pietr0 has quit [Quit: pietr0]
<yorickpeterse>
Hmmm...do I go with LL(1) or LALR(1)..tough choice
<yorickpeterse>
LALR would mean I could re-use my grammars without factoring out left recursion
<yorickpeterse>
it would however also mean dealing with all the shit LALR brings with it
<yorickpeterse>
LL on the other hand means easier error handling/reporting, easier code, but having to rework my grammars
<yorickpeterse>
Considering I don't fully understand LL just yet I'll have to first dig into that a bit more
<yxhuvud>
yorickpeterse: with lalr, instead right recursion is bad. unless I miss something.
<yorickpeterse>
oh yeah, but my grammars currently don't use tat
<yorickpeterse>
* that
<yorickpeterse>
instead they use left-recursion
<brixen>
jc00ke: re the bundler --jobs issue, could you look at my comment, fixed that bundler line, and gist your run so I can see what issue you're actually seeing?
<jc00ke>
Yessums
<brixen>
sweet, thanks
<brixen>
I've ran it a number of times on os x without being able to repro any issue on 2.4
<brixen>
see the link in that comment to the bundler code swallowing exceptions and raising a completely bogus on
<brixen>
which andre continues to defend as good UX
<brixen>
"telling a novice or inexperienced user a lie is the best way to treat them well"
<brixen>
no wonder people just throw their hands up at any error
<brixen>
it's all a bunch of lies
s3m has quit [Quit: Quitte]
<Rotonen>
and someone can expect people to just timewarp into the future over the dull bit and understand deep internals without doing all the shovelwork in-between?
<brixen>
Rotonen: there's a great deal that needs to be improved with error conditions
<brixen>
straight up lying isn't a good start in that direction
<brixen>
at least MRI finally added the exception chaining facility that rbx has had for half-dozen years
<brixen>
of course, very little code uses that
<yorickpeterse>
evan: what magic did you do to kpeg to make it so stupidly fast? Granted, I'm not building an AST just yet, just running the grammar
<evan>
:D
<yorickpeterse>
it's apparently 30x faster than racc
<jc00ke>
@brixen Fbomb I'm not getting the error anymore
<diegoviola>
brixen: where do I get LLVM 3.4, the prebuilt one
<brixen>
jc00ke: fuck
<yorickpeterse>
if kpeg could take input other than String it would be really interesting to see if I could use it as a replacement for my parsing needs, though I'd have to look into memory usage as well
<brixen>
yorickpeterse: it's often best to ignore good advice and do the most painful thing first
<brixen>
humans rarely seem to learn otherwise
<diegoviola>
brixen: HostId?
<yorickpeterse>
brixen: hehehe
<diegoviola>
sorry, I'm not familiar with this
<brixen>
diegoviola: do you have a clone of rbx?
<brixen>
or a source tree?
<yorickpeterse>
brixen: well in theory PEGs use more memory, which might be problematic in my case. I also avoided most parsers due to Ruby based lexers pooping themselves with my input
<diegoviola>
brixen: yup
<brixen>
diegoviola: run rakelib/config.guess and tell me what you get
<yorickpeterse>
The sole reason I used Ragel was 1) it's fast/memory efficient 2) I can stream input
<yorickpeterse>
and then later 3) it can emit C/Java
<brixen>
yorickpeterse: the packrat algo is worst case Cn where n is the length of input, iirc
<diegoviola>
brixen: ok sec
<jc00ke>
@brixen ugh, so it's not throwing the error on HEAD. I'll revert to a previous commit, build, and try again
<evan>
yorickpeterse: kpeg uses more mem that most
<evan>
because of the memoization
<brixen>
jc00ke: ok, well, perhaps the race is benign once we resolved the autoloads correctly
<jc00ke>
word
<yorickpeterse>
evan: if it's a few MB I'm fine with it, as long as it doesn't explode. Right now if I stream input my XML parser sits at...
<brixen>
jc00ke: there's definitely a race there and some sketchy code in rubygems and psych, but I didn't get super deep into it
<evan>
kpeg has extra rule types that allow you to ignore memoization too
<evan>
for tiny matches (a single character) it's faster to redo the match than use a memoziation
<evan>
so kpeg gives you an out
<yorickpeterse>
evan: ~25MB for the pull parser
<evan>
give it a shot!
<yorickpeterse>
Oh definitely, it's the only way to figure out if it's going to work
<brixen>
jc00ke: btw, not able to repro it on precise64 either
<evan>
yorickpeterse: also, you probably don't need all those captures
<evan>
for instance, in the json rule
<brixen>
jc00ke: I may just do a 2.4.1 and we can see if it reoccurs on travis
<evan>
and the key_values rule
<yorickpeterse>
evan: correct, I added them to see if kpeg would somehow cheat without them being present
<evan>
nope
<evan>
you just create more objects by using it
<evan>
it just tells kpeg to track the start and end positions and turn them into a string
<yorickpeterse>
hmpf, StringScanner indeed only works on String
<yorickpeterse>
Oh hm, apparently you _can_ append data to it using StringScanner#<<
<yorickpeterse>
oh, but according to StackOverflow it never actually frees up objects it already scanned
<yorickpeterse>
ugh
<yorickpeterse>
Yeah that just appends to the existing buffer
Papierkorb has joined #rubinius
<Papierkorb>
Evening guys. Wanted to ask if it's possible to use rubinius to generate LLVM IR code out of ruby code?
<brixen>
Papierkorb: yes, but perhaps not in a way that's usable to you at the moment
<brixen>
Papierkorb: if you run -Xjit.dump_code=1 you'll see the LLVM IR that's generated
<brixen>
Papierkorb: see -Xhelp
<brixen>
Papierkorb: the LLVM IR is quite closely tied to certain runtime structures
<brixen>
Papierkorb: what are you trying to do with LLVM?
Cody__ has joined #rubinius
<Papierkorb>
brixen: I'm toying around with LLVM and wanted to have another 'source' language to play with than C/C++
<brixen>
ok, for some value of learning, the LLVM IR from rbx JIT may be useful to you
<brixen>
Papierkorb: there's a bunch of languages that use it though
<brixen>
Papierkorb: consider Julia, Pure, Rust, for example
<Papierkorb>
brixen: Maybe it's the first step to world domination, or just another project no one knows about ;) But yeah, just seeing what could be done about inter-op between languages in a single project
<brixen>
ok, we'll see how long it take travis to re-enable --jobs for rbx
<jc00ke>
I think that's just their default. It's explicitly added to my test repo, so it should still work
<brixen>
diegoviola: any luck?
<Papierkorb>
brixen: thanks
<brixen>
Papierkorb: n/p let us know how it goes
<brixen>
Papierkorb: also, if you're interested in helping, I'm moving the JIT into Ruby soon
<brixen>
generating verbose LLVM IR with verbose C++ is enough to make my head explode
<Papierkorb>
I barely know ruby, though, it's the only language I consider using next to C++/Qt and Lua. (Yes, I know about Py, Rust, etc.)
<Papierkorb>
brixen: I recently ported the generator logic for a Clang based code generator from C++ to Lua. I know what you mean ..
<diegoviola>
brixen: sorry it's taking a while to clone the repo here
<diegoviola>
brixen: I'll test that asap
<brixen>
diegoviola: --depth=1 is your friend :)
<diegoviola>
right
<diegoviola>
ty
<diegoviola>
brixen: x86_64-unknown-linux-gnu
<Papierkorb>
brixen: Is there some kind of programmers manual for Rubinius like there is for LLVM? Asking cause once I found the one for LLVM a 3h problem turned into a 2minute one. *dling source*
<brixen>
diegoviola: ok sec
<brixen>
Papierkorb: no, but we're going to be working on that asap
<brixen>
The Rubinius Book
<brixen>
Papierkorb: if you know any good content editor types, pls send them my way
<brixen>
diegoviola: untar that, then in rbx clone, ./configure --llvm-config path/to/llvm/Release/bin/llvm-config
<brixen>
diegoviola: rake build
<diegoviola>
brixen: gcc 4.9.2
<brixen>
diegoviola: ok, try the one I listed
<diegoviola>
brixen: k
Cody__ has quit [Read error: Connection reset by peer]
Cody__ has joined #rubinius
Cody__ has quit [Ping timeout: 245 seconds]
<diegoviola>
brixen: it's building, thanks
<brixen>
diegoviola: sweet, thanks for going to all this trouble to check
<diegoviola>
not a problem at all
<diegoviola>
brixen: it looks like I'll have to build llvm manually
<diegoviola>
Checking for 'llvm-config': /home/diego/llvm/Release/bin/llvm-config: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory