Code Monkey home page Code Monkey logo

artemis's People

Contributors

rsdoiel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

artemis's Issues

Find/Decide on a portable path for Texts, Display, Fonts

Texts is used in most Oberon System Programs. There are two general use cases in a POSIX environment.

  1. Integrated into a graphical application
  2. Headless in an command line application

In a GUI target implementing Display on top of SDL2 makes allot of sense given the ability to wrap C code in a POSIX implementation of Oberon-07.

In a headless use case we could just use a dummy Display and Fonts. Which Display and Fonts included in a compiled program could be controlled via module include paths.

See if I can add support for OfrontPlus

Oleg-N-Cher would like Artemis to work with OfrontPlus. OfrontPlus is built in Component Pascal. I need to figure out to setup and run an environment that supports Component Pascal compilation so I can install OfrontPlus and include that in the compatibility modules and testing.

I need an Exec module for Oberon 07 programs running under Unix.

I would like to port some of my text processing code from Go to Oberon 07. One of them is a preprocessor for Pandoc. It needs to build up data structures, write them out as JSON documents in a tmp file and then run exec using Pandoc to process the final output.

In Go (like Python or even C) this is provided in a module. The go "os/exec" module has a nice interface and is not far from being Oberon-ish. Think about adding an Exec.Mod, ExecTest.Mod to Artemis project source. It could be implemented using C's exec. I will need to pay close attention to handling standard input, error and output.

Come up with a policy about use of the "art" Prefix in Artemis modules.

If I want to have Artemis folded easily into other Oberon project I need to using the prefix "art" so that Artemis modules can be easily adopted. There are three cases to consider about prefixing (all related to modules which are not canonical to Artemis).

  1. Artemis ports of modules from other projects, these should be prefixed
  2. Artemis implementations of Oberon System modules for POSIX, these should be prefixed
  3. Artemis implementations of Oakwood modules, these must be prefixed "art"

Q: Should Artemis' canonical modules be prefixed?

Need a policy around shared constant values

I've already run into the case where I had a MAXSET value in Obn2.Mod, Chars.Mod, DStrings.Mod. I think having the module Artemis.Mod only hold common constant values (currently two) is problematic because on small Oberon Systems there is a price to load one more module. Also I am not sure a common global modules improves modularety. I need to make a decision on this and document it.

Document how I am using a "C" sub-sub-directory to hold the C code for C implementation.

In my C extensions I've used a sub directory to hold the bodies of the C functions I've implemented. In this directory I've used the conventions of the module name, period, function name with an "inc" extension. I've also include example C programs where I though it useful to show the behavior of the libc or other C libraries I am wrapping for use in Oberon-07.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.