squawk
  1. squawk
  2. SQUAWK-1363

Support IO directly with posix APIS instead of depending on JVM

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: current
    • Fix Version/s: milestone 1
    • Component/s: vmcore-platform
    • Labels:
      None
    • Environment:

      Operating System: none
      Platform: All

    • Issuezilla Id:
      1,363

      Description

      Currently, on desktop our portability layer is the channel IO interface (cio) a
      JVM (such as HotSpot).

      There's no real reason for this, but ease of porting and implementation.

      But this makes Squawk on the desktop use much more memory than it needs to, and
      worse, means that we can't run Squawk on really small platforms that have an OS,
      but not a JVM. These include:

      • iMote2
      • iPhone
      • GumStix
      • Random tiny linux boxes (used for robotics and many more things)

      By directly implementing the channel IO capabilities for file io, sockets, etc.
      using std C interfaces (posix, etc), we can make it much easier to port things
      larger than "bare-metal" devices, but smaller than desktops.

        Issue Links

          Activity

          Hide
          derek_white added a comment -

          First cut fix checked into trunk in svn rev 240.

          Squawk supports a new foriegn function interface to call out to C code. As to
          not redesign the wheel, it is modeled after the JNA (Java Native Access) APIs -
          https://jna.dev.java.net/ , but is design for running on CLDC (eg no
          reflection), and performance does matter.

          The Squawk JNA APIs are still in transition, and will look MORE like JNA as time
          goes on.

          In this particular checkin, the posix port may or may not work.

          Compile with PLATFORM_TYPE=NATIVE

          Show
          derek_white added a comment - First cut fix checked into trunk in svn rev 240. Squawk supports a new foriegn function interface to call out to C code. As to not redesign the wheel, it is modeled after the JNA (Java Native Access) APIs - https://jna.dev.java.net/ , but is design for running on CLDC (eg no reflection), and performance does matter. The Squawk JNA APIs are still in transition, and will look MORE like JNA as time goes on. In this particular checkin, the posix port may or may not work. Compile with PLATFORM_TYPE=NATIVE

            People

            • Assignee:
              derek_white
              Reporter:
              derek_white
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated: