Skip to content
Permalink
Branch: master
Commits on Jan 30, 2019
  1. Align thread stacks on 16 byte boundaries.

    foxostro committed Jan 27, 2019
    Let's align thread stacks on 16 byte boundaries so they will work fine
    with SSE in the future.
Commits on Jan 27, 2019
  1. pthread_mutex_lock() uses atomic cmpxchg and calls yield.

    foxostro committed Jan 27, 2019
    This makes it a real mutex which cooperates with the scheduler.
  2. Flesh out the pthread stubs for {get,set}specific().

    foxostro committed Jan 27, 2019
    Do this via the new class, ThreadSpecificDataStore.
  3. ElfLoaderFactory uses exceptions to report errors, not Expected<T>.

    foxostro committed Jan 27, 2019
    Frankly, Expected<T> just doesn't produce nearly as readable code as that
    which uses standard exceptions. Also, I never could get move-only types to
    work correctly with Expected<T> which ruled out use of UniquePointer.
  4. Extract try_run() from run() since exception handling is one thing.

    foxostro committed Jan 27, 2019
    According to Clean Code's take on SRP, handling an exception is one thing.
    So, let's extract the code in the try-block in Kernel::run() to its own
    method.
  5. Wrap implementation of Kernel::run() in try/catch block.

    foxostro committed Jan 27, 2019
    Exceptions which might be thrown while the kernel is running will be
    caught in Kernel::run() or sooner. Exceptions which manage to propagate
    past this point will reach the end of the stack and terminate the kernel
    with an uninformative message.
  6. Mark some methods of Kernel noexcept because control flow is odd.

    foxostro committed Jan 27, 2019
    Some methods of Kernel, such as vanish(), have odd control flow. Let's
    mark these methods "noexcept" to prevent exceptions from being thrown
    across these bounaries.
Commits on Jan 26, 2019
  1. Include libcxxrt in Flapjack OS to handle C++ runtime support.

    foxostro committed Jan 26, 2019
    BUG: Multithreaded exception handling is probably going to be broken until
    those pthread stubs in the libcxxrt/ directory are fleshed out.
  2. Move abort() to stdlib.

    foxostro committed Jan 26, 2019
Commits on Jan 25, 2019
  1. Still need a parallel build.

    foxostro committed Jan 25, 2019
  2. Added fprintf() stub.

    foxostro committed Jan 25, 2019
    This always printf to the debug log.
  3. Add asprintf()

    foxostro committed Jan 25, 2019
  4. Add strstr()

    foxostro committed Jan 25, 2019
  5. Add stub strtol()

    foxostro committed Jan 25, 2019
  6. Add isdigit()

    foxostro committed Jan 25, 2019
  7. Added memcmp()

    foxostro committed Jan 25, 2019
  8. Added strcmp().

    foxostro committed Jan 25, 2019
  9. Add printf()

    foxostro committed Jan 25, 2019
    This prints to the debug log, not the display.
  10. Add calloc()

    foxostro committed Jan 25, 2019
  11. Add strdup()

    foxostro committed Jan 25, 2019
Older
You can’t perform that action at this time.