Permalink
Commits on Sep 22, 2016
Commits on Apr 19, 2016
  1. Merge pull request #119 from cmercur2/master

    Sytem clock skew
    committed Apr 19, 2016
Commits on Apr 12, 2016
  1. Merge pull request #1 from cmercur2/filesystem-time-corrections

    Correcting errors with filesystem time
    cmercur2 committed Apr 12, 2016
Commits on Apr 4, 2016
  1. Merge pull request #116 from gdm85/feature/canonical-url

    Always generate a canonical URL + relayURL in querystring
    committed Apr 4, 2016
Commits on Apr 3, 2016
Commits on Apr 2, 2016
  1. Allow specifying relayURL via querystring variable

    Always generate a proper URL
    gdm85 committed Mar 29, 2016
Commits on Mar 16, 2016
  1. Merge pull request #114 from cs-education/amd-friendly-worker

    Make Worker AMD (RequireJS) friendly
    committed Mar 16, 2016
  2. Browserify

    neelabhg committed Mar 16, 2016
Commits on Mar 15, 2016
  1. Send messages to Worker only after initialization

    JavaScript has a concurrency model based on an "event loop", and a
    given runtime processes messages from a message queue one by one (see
    https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop for
    more information). A web worker is a distinct runtime, separate from
    the "main thread", having its own message queue.
    
    Currently, the jor1k worker is written in a way that it is initialized
    completely in a single message (because of the synchronous
    CommonJS-style `require()` calls supported by Browserify). This means
    any messages sent from the master (including Init) are queued up for
    the worker, which are processed after initialization as expected.
    
    The project I'm working on, https://github.com/cs-education/sysbuild,
    uses RequireJS for module loading. Because RequireJS uses AMD-style
    modules, we use a CommonJS Loader Plugin
    (https://github.com/guybedford/cjs) to wrap the modules from Jor1k
    into AMD-style modules when loading. Because AMD-style requires are
    asynchronous (even after bundling with the r.js optimizer, where
    `setTimeouts` with zero delays are used), the jor1k worker is not
    initialized completely in single message, but instead the
    initialization process is split over several messages. This means that
    messages sent from the master are almost always queued up before the
    worker has registered listeners for them, and so the messages sent
    from master are lost. This leads to the Init message being ignored,
    causing the worker to not start up the VM.
    
    The changes in this commit ensure that the master sends the Init and
    other initial messages only after the worker has finished initializing
    and has registered the necessary listeners. This is implemented by
    waiting for the worker to send a "WorkerReady" message to the master.
    I believe performance should not be impacted due to this, as there is
    only one additional message being processed, and that too only during
    initialization.
    
    At this point, the worker is not only friendly to AMD loaders, but
    also does not make any assumptions about any initialization and
    module-loading being synchronous. The master is also most likely
    friendly to AMD loaders, as we have been successfully loading it using
    RequireJS + CJS plugin in our project for a while now.
    neelabhg committed Mar 15, 2016
Commits on Mar 14, 2016
  1. Accept instantiated Worker in jor1kGUI constructor

    This will remove the dependency on a hard-coded worker source URL,
    allowing a user to pull-in the jor1k worker code using a URL
    appropriate for their project structure.
    
    This could have been achieved by accepting a URL string directly,
    however, it wouldn't have been as flexible compared to directly
    accepting an instantiated Worker object. For example, it is possible
    to construct a Worker using a `Blob` object instead of a separate JS
    source file.
    neelabhg committed Mar 14, 2016
Commits on Feb 10, 2016
  1. Update submodule

    committed Feb 10, 2016
Commits on Dec 20, 2015
  1. update submodule

    committed Dec 20, 2015
Commits on Dec 9, 2015
  1. Merge pull request #111 from cs-education/revert-compile-script-changes

    Revert compile script changes, restore submodule
    committed Dec 9, 2015
  2. Revert compile script changes, restore submodule

    Some unintentional changes were introduced when #109 was merged (see
    #109 (comment)).
    
    This commit reverts commit cb30ffc
    ("Merge pull request cmercur2/jor1k#2 from jjang16/master"),
    reversing changes made to 45cedee
    ("adding rename to filesystem").
    
    In particular:
    * The compile script outputs into the demos folder again (instead of
      bin/)
    * The compile script does not create the "sys" symlink anymore
    * The "sys" submodule has been restored
    neelabhg committed Dec 9, 2015
  3. Merge pull request #110 from cs-education/require-path-no-extensions

    Remove ".js" from module paths in require calls
    committed Dec 9, 2015
  4. Remove ".js" from module paths in require calls

    This achieves consistency with the require calls used throughout the
    source code.
    
    This also makes it easier to use the modules with RequireJS.
    One way to use RequireJS with CommonJS-style modules is by wrapping
    them inside an AMD-style wrapper. The CommonJS Loader Plugin for
    RequireJS (https://github.com/guybedford/cjs) does this.
    
    However, RequireJS automatically appends ".js" to the module path,
    which means a call such as "require('../messagehandler.js')" makes
    RequireJS look for the file "../messagehandler.js.js", which is
    clearly invalid. The simplest solution is to avoid the ".js"
    altogether, which makes the path compatible with both Browserify and
    RequireJS. The CJS plugin takes care of the rest.
    
    neelabhg/sysbuild@8f1764c details the
    motivation for supporting RequireJS.
    neelabhg committed Dec 9, 2015
Commits on Nov 25, 2015
  1. Merge pull request #109 from cmercur2/master

    Exposing rename on file system
    committed Nov 25, 2015
  2. Merge pull request #2 from jjang16/master

    Merge with new jor1k version for sysbuild
    cmercur2 committed Nov 25, 2015
Commits on Nov 24, 2015
  1. adding rename to filesystem

    Colton Mercurio committed Nov 24, 2015
  2. Merge pull request #1 from s-macke/master

    merge to head
    cmercur2 committed Nov 24, 2015
Commits on Nov 17, 2015
  1. Merge pull request #108 from cmercur2/master

    Adding File System Functions
    committed Nov 17, 2015
  2. Adding FS functionalities

    Colton Mercurio committed Nov 17, 2015
Commits on Oct 25, 2015
  1. riscv: Several FPU fixes

    committed Oct 25, 2015
  2. riscv: Fix signed unsigned mul

    committed Oct 25, 2015
Commits on Oct 16, 2015
Commits on Oct 15, 2015
Commits on Oct 7, 2015
  1. Update README.md

    committed Oct 7, 2015