johnmuhl has quit [Quit: Connection closed for inactivity]
[spoiler] has quit [Remote host closed the connection]
[spoiler] has joined #rubinius
Thijsc has joined #rubinius
goyox86 has joined #rubinius
goyox86_ has joined #rubinius
goyox86_ has quit [Read error: Connection reset by peer]
goyox86_ has joined #rubinius
goyox86_ has quit [Read error: Connection reset by peer]
goyox86_ has joined #rubinius
goyox86_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
goyox86 has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
larstobi has quit [Ping timeout: 244 seconds]
larstobi has joined #rubinius
yxhuvud has quit [Ping timeout: 264 seconds]
<yopp>
mroning
<yopp>
•morning
yxhuvud has joined #rubinius
<yopp>
About mmap'ed files: is it possible to map memory directly to rbx primitives?
goyox86 has joined #rubinius
<yopp>
To avoid copying data from this page to rbx heap
goyox86 has quit [Read error: Connection reset by peer]
goyox86 has joined #rubinius
goyox86 has quit [Read error: Connection reset by peer]
goyox86 has joined #rubinius
goyox86 has quit [Client Quit]
goyox86 has joined #rubinius
goyox86 has quit [Read error: Connection reset by peer]
<cremes>
yopp: not yet. i am working on supporting that.
goyox86 has joined #rubinius
<cremes>
well, supporting mapping to ByteArrays (which are the backing storage for Strings). if you wanted to map data to a C-like structure that’s a different story.
goyox86 has quit [Read error: Connection reset by peer]
goyox86 has joined #rubinius
goyox86 has quit [Read error: Connection reset by peer]
<yopp>
cremes, so pretty much the same as in java NIO?
Bwild has quit [Quit: leaving]
<yopp>
cremes, and if want to map to C-like structure then it will much harder, right? To properly reflect it in ruby world?
<cremes>
yopp: i don’t know the difficulty. i have a bunch of IO to refactor before i can really tackle the mmap stuff. once i do i’ll understand the problem space a bit better.
<cremes>
as for java NIO, i don’t know anything about that so i can’t comment.
johnmuhl has joined #rubinius
<cremes>
why do we have File::Stat instead of IO::Stat? am i alone in thinking that doesn’t make any sense?
<yxhuvud>
because that is how MRI does it
Thijsc has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<cremes>
yxhuvud: sure, but does it make any sense? IMO, no.
<yopp>
cremes, in your impl, how you're see the use-case for ByteArray?
<cremes>
yopp: i’m not to the point where i’m ready to implement that code yet, but looking forward i can see mapping a portion of a file into a ByteArray without requiring any allocations (no malloc or free to worry about).
<cremes>
since ByteArray backs String, we could then offer a zero-copy String for File.
<yopp>
with binary encoding?
<cremes>
yes, by definition showing the raw bytes would imply “ASCII-8BIT” encoding
<cremes>
if you needed a different encoding, you can String#force_encode at will.
<yopp>
It will be possible to map files greater than memory?
<cremes>
as long as the OS #mmap can do so, then yes
<yopp>
yay!
<cremes>
i’m really only targeting 64-bit architectures, so if you are on 32-bit it may not work the same.
<yopp>
I don't care about 32-bit either :)
<cremes>
ha
<cremes>
i’m probably 2+ weeks away from having any mmap code done. i’m still struggling to yank out all of the C++ code that backs rbx’s current IO object and replacing it with Ruby + FFI.
<cremes>
i post pretty frequently here about it, so keep an eye on the status and help me test it when it is further along.
<yopp>
Sure. I'm playing with my db experiment, and mmap will help like a lot
<cremes>
yopp: there is already a mmap gem that you could play around with.
<cremes>
it’s a C extension and has been around for years.
GitHub106 has joined #rubinius
<GitHub106>
[rubinius] bneumeier opened pull request #3294: fix build failure when RUBYGEMS_GEMDEPS is set to - (master...prevent-gemdeps-breakage) http://git.io/IusXTg
GitHub106 has left #rubinius [#rubinius]
<yopp>
cremes, it fails to build on modern rubies
GitHub173 has joined #rubinius
<GitHub173>
[rubinius] brixen closed pull request #3294: fix build failure when RUBYGEMS_GEMDEPS is set to - (master...prevent-gemdeps-breakage) http://git.io/IusXTg
GitHub173 has left #rubinius [#rubinius]
GitHub136 has joined #rubinius
<GitHub136>
rubinius/master af7eb1b Brian Shirai: Merge pull request #3294 from bneumeier/prevent-gemdeps-breakage...
<GitHub136>
rubinius/master efd4478 Brett Neumeier: fix build failure when RUBYGEMS_GEMDEPS is set to -
<GitHub136>
[rubinius] brixen pushed 2 new commits to master: http://git.io/oPv4gA
GitHub136 has left #rubinius [#rubinius]
<yorickpeterse>
right, too much C for the day
<yorickpeterse>
Time to buy socks and then actually prepare my FOSDEM talk
<yorickpeterse>
18 funny slides is not nearly enough to make people weep in a corner
<brixen>
yorickpeterse: keep in mind that no one will think they are funny but you :p
<yorickpeterse>
there's that too
<yorickpeterse>
but surely a slide showing MRI test code is going to make people laugh out of joy
<brixen>
alternatively, anyone who does is probably someone to talk to about helping with rbx :)
<yorickpeterse>
or the slide showing where I broke Rails :P
<brixen>
yes, lots of joy there, I'm sure
<yorickpeterse>
or the one where grep shows 0 tests for absolute_path
<yorickpeterse>
or the Backtrace class in general
<brixen>
oh, there's a few
<yorickpeterse>
They don't test Backtrace itself, they test only #to_s
<yorickpeterse>
and they do it via caller_locations
<brixen>
heh
<brixen>
you don't have to convince me
<yorickpeterse>
:P
<brixen>
been there, done that, have the tshirt and scars :)
<brixen>
good luck with the slides and talk though
<yorickpeterse>
I have to add a few more (basically need a decent ending), then I need to start prep talking it
<brixen>
I'm gonna look at releasing with Travis, distributing rbx with Atom, and maybe kickstarting this Console thing
<yorickpeterse>
Atom as in the editor?
<brixen>
oh, and adding README.md :)
<yorickpeterse>
ooooooooh
<yorickpeterse>
wait
<yorickpeterse>
we're adding a markdown readme?
<yorickpeterse>
Are you ok?
<|jemc|>
lol
<brixen>
someone explained that github prefers the .md, but we can still include the README for non-githubbers
<brixen>
like all those packagers
<yorickpeterse>
well, you can use Markdown minus all the GH crap
<brixen>
so GitHub will display our pretty links and badges and people who need to actually read text will have it
<yorickpeterse>
Then it's basically just as readable as plain text
<yorickpeterse>
and meh badges
<yorickpeterse>
READMEs don't need to be geocities websites :P
<brixen>
indeed
<brixen>
in fact, if you're not on geocities, they *shouldn't* be geocities websites
<yopp>
geocities is dead bady, geocities is dead.
<brixen>
which is why I haven't been ok with *replacing* README with a .md
<brixen>
yopp: there's a pretty sweet replacement by kyle drake
<yorickpeterse>
But r distributing, do you mean the editor?
<yorickpeterse>
Or is there some service called Atom?
<brixen>
yopp: in HAMT, you get the index in the trie by a popcount on the bitmap for that trie
<brixen>
which is where the array-mapped-trie part comes from in hash-array-mapped-trie
<brixen>
yopp: like I mentioned, I hacked this in pretty quickly :p
<brixen>
yorickpeterse: when you have time, if you could make or doc a repo for looking at perf on ll, I'll do that
<brixen>
yorickpeterse: but I don't have patience to try to make this thing work
<brixen>
I suppose I should at least at a C macro for omitting the Array C-API caching for well-behaved C-exts
<brixen>
yopp: so tell me more about your use case for the pop count on a string
<brixen>
yopp: do you mean String per se or just that's all MRI has
<brixen>
yopp: IOW, if you could pop count an arbitrary vector of bytes, and that's available on ByteArray, is that sufficient?
<yopp>
my usecase it working with bitmaps as well
<brixen>
yopp: but you need to generalize to a sequences of bytes?
<yopp>
to address page from bitmap, I need to count the index of current bit in bitmap, to get and index of page address in a page map
<yopp>
brr, not and index in bitmap, but a number of a bit set before that bit
<brixen>
yopp: so is that a "yes" or "no"? :p
johnmuhl has quit [Quit: Connection closed for inactivity]
<yopp>
yes :)
<brixen>
ok
<brixen>
unix process creation, agonizingly terrible since forever
<yorickpeterse>
brixen: huh, how does it not work?
<brixen>
yorickpeterse: doesn't load ll
<yorickpeterse>
did you drop it in the root directory of the repository?
<brixen>
yep
<yorickpeterse>
what error do you get?
<brixen>
require_relative failed to load
JohnBat26 has joined #rubinius
<brixen>
if I changed it to adding path to $: and require, lexer fails to load
<yorickpeterse>
what the
<brixen>
I want to clone, bundle, run a command
<brixen>
if you can show me how to do that
<yorickpeterse>
The steps in 1_setup.txt should be enough :/
<yorickpeterse>
lemme try
<yorickpeterse>
argh
<yorickpeterse>
derp
<yorickpeterse>
brixen: run `rake generate clean compile`
<yorickpeterse>
I forgot the lexer is separate from the compilation process
<yorickpeterse>
errr
<yorickpeterse>
rake clean generate compile
<yorickpeterse>
actually just `rake clean generate` should be enough
<brixen>
what directory am I in to run 2_test.rb ?
<yorickpeterse>
root directory of the repo
larstobi has quit [Ping timeout: 272 seconds]
<yopp>
brixen, also, it will be nice to be able to do this without copying
<brixen>
yopp: copying what?
<yopp>
data from ByteArray
<yopp>
since cremes is working to providing access to mapped memory via ByteArray, it will be nice to do it like buffer.count_bits(offset, count)
larstobi has joined #rubinius
<yopp>
tr/count/length/
<brixen>
yopp: of course, you wouldn't copy to do that
<yopp>
niiice. :)
havenwood has joined #rubinius
<yopp>
btw, I can't get 2.5.0 with ruby-install: Could not find daedalus-core-0.2.0 in any of the sources (Bundler::GemNotFound)
<cremes>
brixen: does ffi2-generator support generating nested structs? do you recall offhand? i wrote some code with a nested struct but it doesn’t output correctly. curious if it’s my problem or just unsupported in ffi2-generator.
<brixen>
cremes: I don't know
<cremes>
ok, i’ll bang on it.
<brixen>
yopp: that gem is in the rubinius-2.5.0 release tarball, vendor/cache dir
<brixen>
yopp: so dunno
<brixen>
I think I cannot go another week without killing Ruby from our build deps
<brixen>
drives me absolutely fucking crazy
pchalupa has quit [Ping timeout: 240 seconds]
pchalupa has joined #rubinius
<cremes>
brixen: i have some updates for ffi2-generators. should i send a pull request to the ffi2-generators project or just commit to rubinius?
<brixen>
cremes: we use the gem, no?
<cremes>
brixen: i guess we do.
<cremes>
i’ll send a pull request later this weekend after i confirm that i have everything working. thanks for this cool tool.
<brixen>
cremes: you should have commit on that repo
Thijsc has joined #rubinius
<yorickpeterse>
ugh, finding a way to start your talk is hard
<yorickpeterse>
beyond the "Hi my name is Yorick and I complain a lot"
Thijsc has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
pchalupa has quit [Quit: Leaving]
<cremes>
brixen: ah yes, so i do. i’ll commit directly.
<cremes>
yorickpeterse: if you want to practice your talk with me over skype, i’ll be happy to heckle you and throw trout.