skade has quit [Quit: Computer has gone to sleep.]
dinfuehr has quit [Remote host closed the connection]
cprice404 has joined #jruby
colinsurprenant has joined #jruby
subbu has quit [Ping timeout: 256 seconds]
subbu has joined #jruby
mcclurmc has joined #jruby
cremes has quit [Read error: Connection reset by peer]
cremes has joined #jruby
jimbaker has quit [Ping timeout: 256 seconds]
arturaz has quit [Ping timeout: 264 seconds]
shellac has quit [Quit: Computer has gone to sleep.]
jimbaker has joined #jruby
jimbaker has quit [Changing host]
jimbaker has joined #jruby
shellac has joined #jruby
mje113__ has joined #jruby
havenwood has joined #jruby
subbu is now known as subbu|away
KevinCorcoran has joined #jruby
mister_solo has joined #jruby
camlow325 has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] ggayan opened issue #2940: Crash with celluloid 0.15.2 and activesupport 4.2.1 on jruby 1.7.19 and 1.7.20. MRI 2.1.5 works. http://git.io/vU9Rj
JRubyGithub has left #jruby [#jruby]
KevinCorcoran has quit [Ping timeout: 256 seconds]
nirvdrum_ has quit [Ping timeout: 255 seconds]
subbu|away has quit [Ping timeout: 245 seconds]
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] bjfish pushed 1 new commit to master: http://git.io/vU9aq
<JRubyGithub>
jruby/master 6465d03 Brandon Fish: [Truffle] Implement some fo IO#reopen.
JRubyGithub has left #jruby [#jruby]
kafkaz_ has quit [Remote host closed the connection]
kafkaz_ has joined #jruby
kfpratt has joined #jruby
codefinger has joined #jruby
dinfuehr has joined #jruby
rcvalle has joined #jruby
x1337807x has joined #jruby
mkristian has joined #jruby
subbu|away has joined #jruby
subbu|away is now known as subbu
shellac has quit [Quit: Computer has gone to sleep.]
lanceball is now known as lance|afk
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] mkristian pushed 1 new commit to master: http://git.io/vU9Hn
<JRubyGithub>
jruby/master 8091cfe Christian Meier: [build] fix problem with parent pom in ./maven...
JRubyGithub has left #jruby [#jruby]
camlow32_ has joined #jruby
camlow3__ has joined #jruby
camlow325 has quit [Ping timeout: 255 seconds]
camlow32_ has quit [Read error: Connection reset by peer]
<lopex>
chrisseaton: you happen to consider perf regression CI or soemthing like that ?
<lopex>
or is it too early ?
<chrisseaton>
we have one, but it's not publicly accessible
<lopex>
I wonder it something like that could be automated based on specs
<lopex>
*if
<chrisseaton>
run each spec as a benchmark?
<lopex>
I guess selected ones
<lopex>
but at least they provide a data and an nev
<lopex>
*env
baroquebobcat has joined #jruby
<chrisseaton>
I don't think most of them would work well as benchmarks - they aren't designed to not optimise away, which is our most common problem
baroquebobcat has quit [Remote host closed the connection]
<lopex>
but for core methods they would be more appropriate
<lopex>
well, core methods that might end up a bottleneck
baroquebobcat has joined #jruby
<chrisseaton>
the problem is most of the core specs do something like create an array, add something, check it's still there - but that compiles to nothing
<lopex>
chrisseaton: I'm mostly talking about some String methods, which are kind of black boxes anyways
<lopex>
complex ones
KevinCorcoran has joined #jruby
<chrisseaton>
I see what you want to do, but I just don't think you could make useful, sound benchmarks from them - you might get something that looked like it was working, but with lots of potential problems you can't immediately see
<chrisseaton>
(I'm writing a PhD chapter on benchmark at the moment)
<lopex>
even if you specialize them, it's the sheer amount of code there anyways
<lopex>
well, yeah you always want a good sample from the code in the wild
<enebo>
chrisseaton: how long until the next round of benches finish running?
shellac has joined #jruby
<lopex>
I wonder, if a sample sinatra app profile diff might be useful then ?
<lopex>
as a perf regression
<chrisseaton>
We're working towards having more real applications in our CI
<lopex>
well, flattening the noise somehow
<chrisseaton>
We currently have kernels from real applicaitons
<enebo>
chrisseaton: lopex: some simple rails engine or middleware exerciser would be good. not for regressions on our side neccesarily so perhaps a stable version and a floating head version
<chrisseaton>
middleware like ActiveSupport?
<enebo>
it is unfortunate that real software changes over time
<enebo>
chrisseaton: something which routes through their routing logic and hits a controller and probably renders something back without network
<chrisseaton>
oh yeah we're working towards that for Truffle - mocked rack servers and then framework routing and things
<enebo>
chrisseaton: so remove network IO and db/backend IO and just exercise the middle
<enebo>
I think that to not be very real-world for a bench but it is something which if we see a drop in perf could indicate us not coping with a new pattern or uncovering a bottleneck
<enebo>
against a stable version over time we could catch regressions on our side
<lopex>
bottleneck undercover
<lopex>
aka dark matter
<enebo>
testing against living software kind sucks if you want to generate metrics over time since everything is moving but it is useful
<lopex>
enebo: remember a case when accessing non set ivar triggered an exception underneath ?
<lopex>
not caught for years
<lopex>
and now this Symbol#==
<enebo>
lopex: I was thinking of the one where ola build up a debug string in something really common but the debugging was not enabled
<enebo>
lopex: but it still prepped the arguments to the debug method
<lopex>
yeah
<lopex>
stay in the eager eval world
<enebo>
lopex: yeah we need to switch to scala right? :)
<lopex>
scala doesnt have true call by need semantics
<enebo>
lopex: no?
<lopex>
impossible on jvm
<lopex>
well, you might cheat via pass by name + lazy vars
<lopex>
*lazy vals
<enebo>
lopex: I thought it had a sigil for lazy eval
<lopex>
but it's not entirely a thunk like in haskell
<lopex>
and in scala lazy val is expensive
<lopex>
volatile read + extra bitmap afaik
<enebo>
lopex: well I guess it depends on what that is replacing htough :)
x1337807x has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<enebo>
lopex: if the lazy expr is calling a db then that is super cheap if you do not need to evaluate it ever
<enebo>
lopex: actually it is perfect for the debugging scenario in general
<lopex>
enebo: sure
<lopex>
but not cheap in general case
<enebo>
lopex: but I was not serious
<enebo>
lopex: yeah I think it is a hook to give an option with a price
<enebo>
lopex: sounds like all of Scala requires you to know the cost/benefit
<enebo>
lopex: which I suppose is true of most languages
<enebo>
heh fun generated code
mister_solo has quit [Ping timeout: 246 seconds]
<lopex>
oh, the decompiler ?
<enebo>
yeah
<enebo>
lopex: can scala detect pure functions?
<lopex>
lazy fields compile to extra volatile ones afaik
<lopex>
enebo: ultra rudimentatily
<lopex>
useless
<enebo>
lopex: for pure-uses all this synchronization could go away and even become static methods
<lopex>
you'd need an effect tracking system
<lopex>
either via IO monad or uniquness types
<enebo>
lopex: I have been thinking about this as I slowly read this haskell book I have :)
<enebo>
lopex: I have been reading a few pages here and there since last fall
<enebo>
lopex: tracking effects has a lot of interesting properies
mkristian has quit [Ping timeout: 245 seconds]
<lopex>
enebo: referential transparency let's you make optimizations you can dream of unlike in other languages
rsim has joined #jruby
<lopex>
haskell can do lots of stuff eagerly, because it know they wont side effect
<lopex>
*knows
<chrisseaton>
lopex: theoretically we should able to do that all dynamically as well - maybe not yet in practice though
<lopex>
chrisseaton: within boundaries I know
<lopex>
chrisseaton: but that's lots of special casing
<chrisseaton>
the benefit of doing it dynamically is that as you do more optimisations, more things before referentially transparent
camlow3__ has quit [Remote host closed the connection]
<chrisseaton>
eg + is not ref transparent in Ruby, as + could be redefined, but if we speculate on what + is, it does become ref transparent
bbrowning is now known as bbrowning_away
<lopex>
right
dinfuehr has quit [Remote host closed the connection]
<enebo>
chrisseaton: for me it is a matter or how long it takes to acculmulate that knowledge and at what price to gather it
<lopex>
again, persistent "IR" might help
<chrisseaton>
I was talking to someone on HN saying that JITs must be fast - if you run an app all day every day, who cares if it takes even 5 mins to achieve full speed
<chrisseaton>
HFTs start their JVMs an hour before trading and run simulated data through them to warm them up
<enebo>
our profiling experiments were very rudimentary but far from free…I guess the benefits may end up paying for it. At least I sure hope so :)
<chrisseaton>
(not saying Truffle takes anything like 5 mins to reach full speed)
shellac has quit [Quit: Computer has gone to sleep.]
x1337807x has joined #jruby
x1337807x has quit [Max SendQ exceeded]
djbkd has quit [Remote host closed the connection]
enebo has quit [Quit: enebo]
x1337807x has joined #jruby
subbu|lunch is now known as subbu
djbkd has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] dzjuck closed issue #2925: Object became nil http://git.io/vUc1b
JRubyGithub has left #jruby [#jruby]
cremes has quit [Remote host closed the connection]
x1337807x has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
cremes has joined #jruby
bbrowning is now known as bbrowning_away
JRubyGithub has joined #jruby
JRubyGithub has left #jruby [#jruby]
<JRubyGithub>
[jruby] azolotko opened pull request #2941: DateTime.iso8601 fails with an error if a second fraction is present (jruby-1_7...2883-iso8601-sec-fraction) http://git.io/vUQbQ
<JRubyGithub>
[jruby] chrisseaton pushed 1 new commit to truffle-head: http://git.io/vU7UM
<JRubyGithub>
jruby/truffle-head 2fe04df Chris Seaton: [Truffle] Add back the possibility of substituting a stream for stdout.
JRubyGithub has left #jruby [#jruby]
shellac has joined #jruby
codefinger has quit [Quit: Leaving...]
vikaton has joined #jruby
dinfuehr has quit [Remote host closed the connection]
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] eregon pushed 1 new commit to master: http://git.io/vU7mW
<JRubyGithub>
jruby/master 6dce068 Benoit Daloze: [Truffle] Define Rubinius::FFI::Pointer in CoreLibrary to set allocator.
JRubyGithub has left #jruby [#jruby]
dinfuehr has joined #jruby
pietr0 has joined #jruby
dinfuehr has quit [Ping timeout: 258 seconds]
cremes has quit [Quit: cremes]
skade has joined #jruby
blaines has joined #jruby
baroquebobcat has quit [Read error: Connection reset by peer]
baroquebobcat has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] nirvdrum pushed 1 new commit to master: http://git.io/vU7ur
<JRubyGithub>
jruby/master 649ec1b Kevin Menard: [Truffle] Don't try to require libraries at init from IR in Truffle mode.
JRubyGithub has left #jruby [#jruby]
<rtyler>
mkristian: ping
<mkristian>
hi
baroquebobcat_ has joined #jruby
<rtyler>
just seeing if you're here, you might be able to help blaines with an embedding question he's been asking me about
<rtyler>
he's slowly learning that I know nothing
<blaines>
Hah
<blaines>
Well I'm putting together some data real quick
<mkristian>
:)
<blaines>
@mkristian @headius I have a self-executing jar built with the jruby-gradle project, my load paths are all setup correctly, but Gem (rubygems) operations still are using system paths. Have a look at https://gist.github.com/blaines/738beab38b8dcf02df15
baroquebobcat has quit [Ping timeout: 264 seconds]
baroquebobcat_ is now known as baroquebobcat
<blaines>
Is that expected? I'd expect Gem.bindir to be the jar's bin dir
<lopex>
jeremyevans: would you mind any pr's adding opts for Model#db_schema so one can pass database schema there ?
<mkristian>
blaines, the LOAD_PATH shows me that all gems are found on the filesystem and not inside the jar. in this sense the Gem.bindir follows the same pattern
<lopex>
jeremyevans: more precisely to the part db.schema(dataset, :reload=>reload in get_db_schema
<blaines>
oh yeah I see that
<mkristian>
blaines, from the env part GEM_PATH and GEM_HOME point to the filesystem as well.
<blaines>
am I building my jar wrong here?
<mkristian>
blaines, may not but I do not know how the jruby-gradle-jar-plugin sets GEM_HOME/GEM_PATH - let me check
<blaines>
Okay. I'm rebuilding it and trying a few things myself
lanceball is now known as lance|afk
tcrawley is now known as tcrawley-away
<mkristian>
blaines, I do not think that the launcher of the jar sets any GEM_PATH or GEM_HOME - at least I can not find anything
<blaines>
Is that something that we should change?
<mkristian>
I am at the moment working on the version 0.2.0 of this plugin which will take care of this
<blaines>
oh okay that's good :)
Aethenelle has quit [Quit: Aethenelle]
<blaines>
Do me a favor and keep me posted, and let me know if you need any help, testing or otherwise
<mkristian>
blaines, will do.
<blaines>
:)
dfr|work has quit [Remote host closed the connection]
shellac has quit [Quit: Computer has gone to sleep.]
colinsurprenant has joined #jruby
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
mitchellhenke has quit [Quit: Computer has gone to sleep.]
elia has quit [Quit: Computer has gone to sleep.]
mitchellhenke has joined #jruby
mitchellhenke has quit [Client Quit]
shellac has joined #jruby
DomKM has joined #jruby
pietr0 has quit [Ping timeout: 245 seconds]
elia has joined #jruby
enebo has quit [Quit: enebo]
<jeremyevans>
lopex: What's the use case? db_schema is mutable, you can always just modify it to change things
<lopex>
jeremyevans: I claim that's a sequel inconsistency :) on one hand it obeys the current schema when looking for model meta but ignores that when the user asks for sb_schema
<lopex>
jeremyevans: it comes up on databases that need the schema to be set eplicitly always
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] chrisseaton pushed 1 new commit to truffle-head: http://git.io/vU7pt
<JRubyGithub>
jruby/truffle-head f60bfba Chris Seaton: Merge branch 'master' into truffle-head
JRubyGithub has left #jruby [#jruby]
<jeremyevans>
lopex: I'm not sure I follow, it should use the same code path in both cases. Are you explicitly setting the schema when creating the model classes?
<jeremyevans>
lopex: e.g. class Foo < Sequel::Model(:schema__table)
<lopex>
jeremyevans: no, because when I ask for some_model.db_schema I cant force that schema to be used
<lopex>
jeremyevans: well, that also comes on jdbc/as400 so the might be issues I'm not aware of
<jeremyevans>
lopex: But Sequel basically calls db_schema internally to get the metadata, so I'm not sure how it can give you two separate results. Can you paste a self contained example showing the issue that I can play with?
<lopex>
so I'm not 100% positive on that
<lopex>
ok db_schema calls get_db_schema right ?
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] eregon pushed 3 new commits to master: http://git.io/vU7h4
<JRubyGithub>
jruby/master f76b3fc Benoit Daloze: [Truffle] Set the logicalClass of class Class more cleanly....
<JRubyGithub>
jruby/master f9fd23c Benoit Daloze: [Truffle] Separate construction from initialization for RubyContext.
<JRubyGithub>
jruby/master 99bcc89 Benoit Daloze: [Truffle] Make a node to load required libraries with -r....
JRubyGithub has left #jruby [#jruby]
<lopex>
that in turn calls db.schema
<jeremyevans>
lopex: correct
<lopex>
db.schema expect te whole opts (including current schema)
<lopex>
and that's what I need
<jeremyevans>
lopex: Well, db.schema is called with the dataset, which should have the schema as part of the table name
<lopex>
get_db_schema does only db.schema(dataset, :reload=>reload)
<lopex>
jeremyevans: oh I know
<lopex>
jeremyevans: looks like my case is true only for jdbc
<lopex>
but still
<lopex>
jeremyevans: it boils down to def get_tables(type, opts) in jdbc.rb
<lopex>
the if schema = opts[:schema]
<jeremyevans>
lopex: That's for db.tables, not for db.schema though
<lopex>
jeremyevans: yes
<lopex>
jeremyevans: but that's related
<jeremyevans>
lopex: how? Are you automatically creating models based on the output of db.tables?
<lopex>
in general the problem is this: I can't specify a schema when calling Model#db_schema which in turn does that
<jeremyevans>
lopex: But you aren't supposed to need to. The model's table should be schema-qualified, and db.schema should pick the schema up from that.
<lopex>
jeremyevans: turnes out that as/400 consides default schema and schema qualification differently :)
<lopex>
the as400 part cold be modified if only you could pass the opts
<lopex>
*could
shellac has quit [Quit: Computer has gone to sleep.]
<lopex>
jeremyevans: anyways I can post a hack that works
<lopex>
where default_schema is a class accessor for database
<lopex>
so now I'm passing it globally
shellac has joined #jruby
<lopex>
the opts[:schema] is already lost since its not passed through
vikaton has quit []
skade has quit [Quit: Computer has gone to sleep.]
<lopex>
jeremyevans: keep in mind hte use case is Model#db_schema
skade has joined #jruby
<lopex>
I want db_schema for a specific schema
<lopex>
(schema being the current db schema)
<lopex>
doh, those are confusing
<lopex>
oh, look at current schema in db2 terms as of current database
<lopex>
jeremyevans: ^^
<lopex>
I know that;s fucked, but that's the way it is
<lopex>
similar to creator
<lopex>
I guess those are mostly ibm related inventions
skade has quit [Ping timeout: 245 seconds]
<jeremyevans>
lopex: reviewing now
<jeremyevans>
lopex: What version of Sequel are you running?
colinsurprenant has quit [Quit: colinsurprenant]
<lopex>
jeremyevans: newest
<jeremyevans>
lopex: Where is default_schema coming from?
<lopex>
jeremyevans: class Sequel::Database; attr_accessor :default_schema ...
<jeremyevans>
lopex: ah, something you are adding yourself
<lopex>
jeremyevans: yeah, consider it being global now
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] nirvdrum pushed 1 new commit to master: http://git.io/vU5Io
<JRubyGithub>
jruby/master 5ed91b4 Kevin Menard: Create more compact children lists for Nodes with a single child.
JRubyGithub has left #jruby [#jruby]
djbkd has quit [Read error: Connection reset by peer]
<jeremyevans>
lopex: def DB.schema(table, opts={}) super(table, opts.merge(:schema=>default_schema) end
<lopex>
jeremyevans: I need to do that from Model#db_schema
<jeremyevans>
lopex: I'm not sure it's worth changing the Model API to work around schema issues in rarely used databases, especially if there is a simple workaround
<lopex>
jeremyevans: yeah, I know, I realize my use case is a bit specific
<lopex>
jeremyevans: anyways if you want I can shed some light what I'm doing
<lopex>
jeremyevans: I'm scanning a dir for models
<jeremyevans>
lopex: sure, that would be helpful
subbu has quit [Ping timeout: 256 seconds]
<lopex>
jeremyevans: given a model I ask for a schema
<lopex>
jeremyevans: that model might containt an info on a schema it's in
<lopex>
and now I'm stuck
<lopex>
that's there the connection of Model#b_schema to db_schema current schema comes from
<jeremyevans>
Is there a reason the models can't just specify the schema they are in, instead of relying on some default schema?
<lopex>
jeremyevans: as sequel doc says when you inherit from Sequel::Model it's already too late - that's one thing
<lopex>
jeremyevans: second, I'd be really happy to be able to do that
<jeremyevans>
lopex: Not if you specify it when creating, ala class Foo < Sequel::Model(:schema__table)
djbkd has joined #jruby
<lopex>
jeremyevans: right that works
<lopex>
jeremyevans: but I dont want to scatter the code with :"#{schema}__name"
<lopex>
especially when it's the default
darrickw has joined #jruby
<jeremyevans>
lopex: If you are only dealing with a single schema, is there a reason that overriding DB.schema and calling super wouldn't work for you?
<lopex>
jeremyevans: right, I want the default schema mostly, back fallback in neccesarily
<lopex>
*when
<lopex>
jeremyevans: but in the middle I want to ask explicitly for models schema to process it
<lopex>
jeremyevans: too bad I cant post a good env for that
<jeremyevans>
lopex: Maybe adding a Model.db_schema_opts method that would currently return {:reload=>reload} may work, then you could just override that
<lopex>
jeremyevans: for now I need that hack and DB.default_schema = :somechema and DB << "SET SCHEMA = someschema" to work