Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jan 31 2019 20:29
    jbayardo edited #2018
  • Jan 31 2019 20:21
    jbayardo opened #2018
  • Jan 31 2019 20:16
    jbayardo commented #1352
  • Jan 31 2019 20:07
    SunderB synchronize #2017
  • Jan 31 2019 19:58
    SunderB synchronize #2017
  • Jan 31 2019 15:32
    JackUnthank starred samaaron/sonic-pi
  • Jan 31 2019 09:17
    oyd11 starred samaaron/sonic-pi
  • Jan 31 2019 06:27
    hidaris starred samaaron/sonic-pi
  • Jan 31 2019 05:23
  • Jan 30 2019 22:05
    lexmortis commented #1956
  • Jan 30 2019 21:54
    lexmortis commented #2012
  • Jan 30 2019 19:23
    lexmortis commented #2013
  • Jan 30 2019 19:00
    SunderB commented #1506
  • Jan 30 2019 18:10

    weblate on master

    Translated using Weblate (Russi… (compare)

  • Jan 30 2019 17:52
    SunderB commented #218
  • Jan 30 2019 17:46
    rdwebdesign commented #1506
  • Jan 30 2019 16:22
    JackEvans24 starred samaaron/sonic-pi
  • Jan 30 2019 06:25
    bob-the-dyer starred samaaron/sonic-pi
  • Jan 30 2019 03:21
    soasme starred samaaron/sonic-pi
  • Jan 30 2019 03:07
    luikore starred samaaron/sonic-pi
Sam Aaron
@samaaron
@bawNg you should also be able to stop live_loops by inserting a call to stop inside them and redefining them
@ethancrawford what code you run to see those messages?
bawNg
@bawNg
There are a lot of things that need to be fixed, I'm surprised it worked so well with the initial changes, but I'll do further testing and continue working on it in between other things
Sam Aaron
@samaaron
:-)
bawNg
@bawNg
55.32 [Job 123] SonicPi::Stop while running job: SonicPi::Stop
That's another thing that needs to be handled
Better to use throw/catch instead of exceptions for anything that isn't an actual error, since the backtrace of exceptions have a lot of overhead and make them very slow
ethancrawford
@ethancrawford
@samaaron it appears to be when running code where a live loop has stop written inside it
Sam Aaron
@samaaron
ah yes, I see it now - thanks!
@ethancrawford fixed - thanks for pointing it out :-)
ethancrawford
@ethancrawford
:+1:
Sam Aaron
@samaaron
what did you think of the new windows installer?
btw, are you a windows user?
or are you just testing in a vm?
ethancrawford
@ethancrawford
I have a computer running windows 10 natively and also a macbook pro.
Sam Aaron
@samaaron
righto
a foot in both camps :-)
ethancrawford
@ethancrawford
indeed!
Sam Aaron
@samaaron
did you notice the installer had changed?
ethancrawford
@ethancrawford
the windows installer is great, though to be honest I hadn't updated the packaged version of Sonic Pi on windows for a while, so I can't quite remember what it was like last time :)
Sam Aaron
@samaaron
there were pictures of generic CD-ROMs in the installer ;-)
it also took ages for the installer to appear in some cases
ethancrawford
@ethancrawford
ah :) Yes, the logo does look nice
Sam Aaron
@samaaron
so people had clicked it 10 times or so and then they all appeared in unison
ethancrawford
@ethancrawford
oh right
Sam Aaron
@samaaron
and I now display the license
and auto boot the app on completion
ethancrawford
@ethancrawford
yes, saw that too, handy
Sam Aaron
@samaaron
I think we're pretty close to launch now though
things feel solid
just some minor design tweaks and changelogs to write
bawNg
@bawNg
So I just took another look at it and fixed one more thing, now I can't seem to break it
Perhaps there isn't too much broken after all, I'll need to figure out what parts of things need to be tested well since I'm not all that familiar with Sonic Pi's features
I'm testing with the NES Mario Theme which seems to work perfectly
Sam Aaron
@samaaron
What I do is to constantly redefine a live look which contains nested with fx blocks and for memory leaks and whether the thread count stays level
bawNg
@bawNg
I've got a bunch of debug logging which makes it real easy for me to see when all the jobs start and end, so I'm pretty sure things more or less work fine now
I'm currently adding some basic fiber-aware profiling support so that there can be time warnings for things that take too long in the reactor thread
I've just been sampling jitter every 10ms up until now, and the scheduler I implemented in C has warnings for timers which fire late too
ruby-prof should be a viable to use for profiling the full application on linux, but since I'm developing on windows right now, I can't use it to do CPU time profiling, so time warnings are a lot better than nothing
bawNg
@bawNg
Now that I've gone through more of the source, I'm really confident that performance can be boosted a huge amount. Some things will require some effort to rewrite and simplify, but there is also loads of low hanging fruit where just a few chars need to be swapped out
Sam Aaron
@samaaron
Ace!
Thanks again for your efforts with this
bawNg
@bawNg
I'm trying my best to not do low hanging fruit optimizations as part of the threading related changes, even though it's really hard to resist the urge haha
I'm hoping that if I do those as separate commits, it'll make it easy for you guys to see what is faster and avoids allocations when working with common things
There are a lot of things that aren't very intuitive when it comes to ruby performance, and no one has time to profile every line of code they write
Sam Aaron
@samaaron
:)
Also, if you could separate the fiber stuff into standard ruby and special c extension patches that would also be very helpful
bawNg
@bawNg
Implementing a scheduler in pure ruby will have a lot of overhead, which is they the very simple reactor is C and C++
Native calls are also needed to get a precise time on windows
Sam Aaron
@samaaron
Ok, I’m just a little weary of taking on code I might not be able to maintain