{"push_id":2326562090,"size":21,"distinct_size":21,"ref":"refs/heads/master","head":"dc772689094b93397b3029d310fcabb776f61be1","before":"ba973db39c3882fca7e07ff73093b69b5cbc05d6","commits":[{"sha":"cc3e40ce1d4c5a488638a48b25eda620324d15d4","author":{"name":"Drew Thoreson","email":"d6f5ae2d9818ae98f6f8cfa50a044a805d7af5a1@alumni.ubc.ca"},"message":"Build: support statically-linked modules\n\nSupport building source files containing module definitions.\n\ne.g.\n    my-module.scm:\n    --------------\n    (declare (unit my-module))\n    (module my-module (hello)\n      (import scheme)\n      (define (hello)\n        (display \"Hello, world!\")))\n\n    my-main.scm:\n    ------------\n    (declare (uses my-module))\n    (import my-module)\n    (hello)\n\n    Makefile:\n    ---------\n    my-module.o: my-module.scm\n            $(call cmd,msc)\n    my-main.o: my-module.o\n\nThis is the first step towards cleaning up the mess that is the global\nnamespace in scmus.  Eventually the whole program (aside from main.scm)\nshould be organized into modules.\n\nAs a proof of concept, getopt.scm now defines the GETOPT module.\n\n(Also, I've snuck the beginnings of a plugin system into this commit.\nThis isn't really usable at present, since the internal API is not\nstable and there are lots of issues surrounding namespace pollution and\ncollisions.  The module system should solve these problems.)","distinct":true,"url":"https://api.github.com/repos/drewt/scmus/commits/cc3e40ce1d4c5a488638a48b25eda620324d15d4"},{"sha":"4498344f753511f62775f6bb5fb5adde42e43974","author":{"name":"Drew Thoreson","email":"d6f5ae2d9818ae98f6f8cfa50a044a805d7af5a1@alumni.ubc.ca"},"message":"module: ncurses\n\nConvert the ncurses unit to a module.","distinct":true,"url":"https://api.github.com/repos/drewt/scmus/commits/4498344f753511f62775f6bb5fb5adde42e43974"},{"sha":"8cdf9736a4dc23956d1422417425cdd442688dbd","author":{"name":"Drew Thoreson","email":"d6f5ae2d9818ae98f6f8cfa50a044a805d7af5a1@alumni.ubc.ca"},"message":"Module: config\n\nConvert the config unit to a module.","distinct":true,"url":"https://api.github.com/repos/drewt/scmus/commits/8cdf9736a4dc23956d1422417425cdd442688dbd"},{"sha":"f6fe9c20904e4ec904e6fd64c422e5eca689ad7c","author":{"name":"Drew Thoreson","email":"d6f5ae2d9818ae98f6f8cfa50a044a805d7af5a1@alumni.ubc.ca"},"message":"Modules: many\n\nConverted/added modules:\n    * command-line\n    * editable\n    * event\n    * input\n    * iter\n    * scmus-base (lib)\n    * scmus-error (new)\n\nSome refactoring was required to accomplish this:\n    * command-line has a function COMMAND-LINE-GET-STRING which is used\n      to enter eval-mode/search mode.  This avoids a dependency on\n      eval-mode.\n    * ERROR-SET! is renamed to SCMUS-ERROR-SET! and moved to its own\n      module.  This is to prevent scmus-base from having dependencies on\n      command-line and event.\n\nAlso included in this commit is a partially-complete refactoring of the\nuser scripting API into its own file.  This is not yet a module, or even\na unit (it's included by eval-mode), but will be eventually (when\neval-mode is a unit).\n\nAlso, the copyright year has been bumped, and the GPL has been removed\nfrom mpd-client.scm for compatibility with the upstream source.","distinct":true,"url":"https://api.github.com/repos/drewt/scmus/commits/f6fe9c20904e4ec904e6fd64c422e5eca689ad7c"},{"sha":"b2cac2959895f7dfd85a5003f149329591844bb6","author":{"name":"Drew Thoreson","email":"d6f5ae2d9818ae98f6f8cfa50a044a805d7af5a1@alumni.ubc.ca"},"message":"Modules: mpd-client, track\n\n\"track\" is a new module which contains track accessors previously\ndefined in scmus-client.scm.  This refactoring is required to make\nformat.scm a module, so that it doesn't depend on scmus-client\n(scmus-client depends on option, which depends on format).","distinct":true,"url":"https://api.github.com/repos/drewt/scmus/commits/b2cac2959895f7dfd85a5003f149329591844bb6"},{"sha":"30384a5d80c0848f0de0840fa02688b20d91c9b1","author":{"name":"Drew Thoreson","email":"d6f5ae2d9818ae98f6f8cfa50a044a805d7af5a1@alumni.ubc.ca"},"message":"Build: use macro to specify dependencies\n\nreplace:\n\n    unit.o: dep1.o dep2.o\n\nwith:\n\n    unit_deps = dep1 dep2\n\nThe new system also uses @OBJEXT@ instead of hardcoding \".o\".","distinct":true,"url":"https://api.github.com/repos/drewt/scmus/commits/30384a5d80c0848f0de0840fa02688b20d91c9b1"},{"sha":"844080df3d20b2dcba049ae4c1620029be709936","author":{"name":"Drew Thoreson","email":"d6f5ae2d9818ae98f6f8cfa50a044a805d7af5a1@alumni.ubc.ca"},"message":"Module: status\n\nRefactor code from scmus-client into own module.  Needed for the format\nmodule.","distinct":true,"url":"https://api.github.com/repos/drewt/scmus/commits/844080df3d20b2dcba049ae4c1620029be709936"},{"sha":"8ade63489e82efba17bbc619ec52f5b58a9157aa","author":{"name":"Drew Thoreson","email":"d6f5ae2d9818ae98f6f8cfa50a044a805d7af5a1@alumni.ubc.ca"},"message":"Modules: eval-mode, format, option, window","distinct":true,"url":"https://api.github.com/repos/drewt/scmus/commits/8ade63489e82efba17bbc619ec52f5b58a9157aa"},{"sha":"4e6b1ad953d425571414c96e043a729adaba6e3f","author":{"name":"Drew Thoreson","email":"d6f5ae2d9818ae98f6f8cfa50a044a805d7af5a1@alumni.ubc.ca"},"message":"Module: keys\n\nIn order to accomplish this, ENTER-EVAL-MODE and ENTER-SEARCH-MODE are\ndefined as user-callable procedures, bound by default to \":\" and \"/\"\nrespectively.\n\nFor consistency, an EXIT procedure is defined and bound to \"q\" by\ndefault.  This eliminates all of the keys which previously received\nspecial handling by scmus.","distinct":true,"url":"https://api.github.com/repos/drewt/scmus/commits/4e6b1ad953d425571414c96e043a729adaba6e3f"},{"sha":"41956796b3d8c475f10574f166eaf61850e2c991","author":{"name":"Drew Thoreson","email":"d6f5ae2d9818ae98f6f8cfa50a044a805d7af5a1@alumni.ubc.ca"},"message":"Prefix modules names with \"scmus.\"\n\nDifferentiate internal scmus modules from external libraries.  iter,\nmpd-client and ncurses are considered to be external libraries, despite\nbeing part of the source tree, so they are not prefixed.\n\nIn theory, these modules could be impored by code using the r7rs egg\nwith names such as (scmus options), etc.","distinct":true,"url":"https://api.github.com/repos/drewt/scmus/commits/41956796b3d8c475f10574f166eaf61850e2c991"},{"sha":"421e4c3fa30c4e53a18f5972fcff297fe75c432c","author":{"name":"Drew Thoreson","email":"d6f5ae2d9818ae98f6f8cfa50a044a805d7af5a1@alumni.ubc.ca"},"message":"Module: client\n\nAlso, properly clean import libraries.","distinct":true,"url":"https://api.github.com/repos/drewt/scmus/commits/421e4c3fa30c4e53a18f5972fcff297fe75c432c"},{"sha":"0fd6571d725911f914d07fd90131f09671420ecb","author":{"name":"Drew Thoreson","email":"d6f5ae2d9818ae98f6f8cfa50a044a805d7af5a1@alumni.ubc.ca"},"message":"Command interpreter\n\nAdd a simple command language interpreter for controlling scmus.  The\nlanguage syntax is similar to POSIX shell.\n\nBy default, ':' puts scmus into command mode, in which commands may be\nentered.  Eval mode is now entered using '$'.","distinct":true,"url":"https://api.github.com/repos/drewt/scmus/commits/0fd6571d725911f914d07fd90131f09671420ecb"},{"sha":"5422fc49e394aaea5894d90d8cb3f737339c1461","author":{"name":"Drew Thoreson","email":"d6f5ae2d9818ae98f6f8cfa50a044a805d7af5a1@alumni.ubc.ca"},"message":"Update copyright year.","distinct":true,"url":"https://api.github.com/repos/drewt/scmus/commits/5422fc49e394aaea5894d90d8cb3f737339c1461"},{"sha":"7d510245607bbbfb4aca4651d473214c7afb2601","author":{"name":"Drew Thoreson","email":"d6f5ae2d9818ae98f6f8cfa50a044a805d7af5a1@alumni.ubc.ca"},"message":"Use timer to update elapsed\n\nUse 0.5 second interval timer to update the elapsed time independetly of\nthe status update interval.\n\nThis allows using a longer status update interval without causing the\nelapsed timer to lag behind.  As such, the default interval is increased\nto 1.5s.","distinct":true,"url":"https://api.github.com/repos/drewt/scmus/commits/7d510245607bbbfb4aca4651d473214c7afb2601"},{"sha":"ac520da9ba5693ccb87bb07de315fb73c50fe66c","author":{"name":"Drew Thoreson","email":"d6f5ae2d9818ae98f6f8cfa50a044a805d7af5a1@alumni.ubc.ca"},"message":"eval-mode: don't print #<unspecified>\n\nDon't print #<unspecified> after evaluating an expression in eval-mode\nthat returns an unspecified result.","distinct":true,"url":"https://api.github.com/repos/drewt/scmus/commits/ac520da9ba5693ccb87bb07de315fb73c50fe66c"},{"sha":"336a79e4bedb8df49ca20e3f190fe8531ca41f46","author":{"name":"Drew Thoreson","email":"d6f5ae2d9818ae98f6f8cfa50a044a805d7af5a1@alumni.ubc.ca"},"message":"window: implement <window-stack> as a <container>\n\nImplement <window-stack> as a container instead of a <window>.  The\nstack is stored in the CHILDREN slot.\n\nSome bugs in the (previously unused) container code are fixed in order\nto get this working.","distinct":true,"url":"https://api.github.com/repos/drewt/scmus/commits/336a79e4bedb8df49ca20e3f190fe8531ca41f46"},{"sha":"bae358c1a010f303934eceef9a92c80836ab998b","author":{"name":"Drew Thoreson","email":"d6f5ae2d9818ae98f6f8cfa50a044a805d7af5a1@alumni.ubc.ca"},"message":"window: remove DATA-THUNK\n\nThe 'data-thunk' feature complicates migrating windows to using the\n'iter' data structure, so it is removed.","distinct":true,"url":"https://api.github.com/repos/drewt/scmus/commits/bae358c1a010f303934eceef9a92c80836ab998b"},{"sha":"2e7674ee73706f57465a57fbe896b467f9d379b4","author":{"name":"Drew Thoreson","email":"d6f5ae2d9818ae98f6f8cfa50a044a805d7af5a1@alumni.ubc.ca"},"message":"Don't use WINDOW-NR-LINES outside of window.scm\n\nPRINT-WIDGET! method already knows the geometry of the window it's\nprinting; no need to peek into internal state.","distinct":true,"url":"https://api.github.com/repos/drewt/scmus/commits/2e7674ee73706f57465a57fbe896b467f9d379b4"},{"sha":"4d702f7a0ef04c81cd666413a6fd70a1929ef221","author":{"name":"Drew Thoreson","email":"d6f5ae2d9818ae98f6f8cfa50a044a805d7af5a1@alumni.ubc.ca"},"message":"Rename 'ncurses' module to 'drewt.ncurses'\n\nCHICKEN wants to load the ncurses egg if it's installed, rather than\nloading our own module (@#$%!) so rename it.\n\nAs far as I can tell there is no way to tell CHICKEN to prefer importing\nour own modules, which are compiled into the executable.  So I guess\ngoing forward every module has to be prefixed to avoid conflict with\nsome random extension someone might decide to write with the same name.","distinct":true,"url":"https://api.github.com/repos/drewt/scmus/commits/4d702f7a0ef04c81cd666413a6fd70a1929ef221"},{"sha":"17540a89fdca09609dde75637674725ced0b7be0","author":{"name":"Drew Thoreson","email":"d6f5ae2d9818ae98f6f8cfa50a044a805d7af5a1@alumni.ubc.ca"},"message":"Rename 'mpd-client' module to 'drewt.mpd-client'\n\nSame rationale as for 'ncurses' module.","distinct":true,"url":"https://api.github.com/repos/drewt/scmus/commits/17540a89fdca09609dde75637674725ced0b7be0"}]}
{"actor":{"display_login":"drewt"}}