PKGS= embutils sharedobj sharedobjgen synloc synex metasyn obliqrt obliqparse obliqprint obliq obliqlibemb obliqlibm3 obliqlibui obliqlibanim obliqsrvstd obliqsrvui obliqbinmin obliqbinstd obliqbinui obliqbinanim obliqlib3D visualobliq vocgi voquery vorun EXTDEPS= m3core libm3 tcp netobj rdwr parseparams listfuncs events debug m3tk-misc m3tk sysutils m3middle m3quake X11R4 jvideo ui videovbt formsvbtpixmaps vbtkit web formsvbt mg mgkit opengl anim3D EXTDEPS-CORE= netobj rdwr listfuncs events debug m3tk-misc m3tk X11R4 jvideo ui videovbt formsvbtpixmaps vbtkit web formsvbt mg mgkit opengl anim3D COLLDEPS= core devlib gui anim CAUSES: core(m3core) devlib(netobj) gui(X11R4) anim(mg)
A "EmbProxiedObj.T" is a Modula-3 object for which we want to have proxy, an object that mirrors this object in some way. The prototypical use is to connect Modula-3 objects to their counterparts in some embedded interpreted language (e.g. Obliq).
Browse Sources OnlineThe shared object package is designed to complement Network objects. A network object allows an object to be shared by multiple processes, possibly on different machines, by creating surrogate objects in all processes except the one in which the object actually exists. From the point of view of the programmer and the executing program, the surrogate object behaves exactly like the original object. However, all method calls to the surrogates are synchronously sent to the original object where they are executed, with return values or exceptions propogated back to the calling process.
For many applications, this is sufficient and has many desirable properties: there are no sychronization issues, calls are synchronous so exceptions propogate across processes, global garbage collection is performed, etc. However, for some applicates, the paradigm is not appropriate. The sychronous nature method calls restricts the frequency and of checking the object for changes. More seriously, interested parties are restricted to polling an object if they are interested in changes. Finally, all operations on an object, no matter how trivial, require a remote procedure call, which takes a significant amount of time.
To address these problems, and others, the shared object package was created. The model is the opposite of the network object package and is intended to complement rather that replace it. Instead of the object being stored at one location and remote method calls being used to access the object, shared objects are fully replicated in all interested processes, with any updates to the object being applied to all copies.
Browse Sources OnlineThe stub generator for shared objects.
% shobjcodegen -help Keywords - '/f' boolean flag. '/l' space separated list of values. '/1' single value. '/r' means mandatory. '/p' means positional argument (keyword can be omitted). Capitalisation (and '=short') indicates alternative shortened form. shared: Generate code for shared objects -Outputname=o/1/r base file name for output -SharedObjects=so/l list of types -UseTypes=ut/l list of existing types -PerfMon=pm/f performance monitoring -Proxy=p/f generate proxy file -ObliqCode=oc/f generate obliq linkage code m3cfe: Modula-3 Compiler Front End -PathNames=pn/l/p list of files to be compiled -Modules=m/l list of modules to be compiled -Interfaces=i/l list of interfaces to be compiled -PrintUnits=pu/f print name of each unit compiled -CpuTime=ct/f time compiler phases m3pathtool: search path tool -D/l/x specify an explicit path to be used for file searching -T/l/x specify a file with an explicit map to be used for file searching -NOSTD/f suppress default scan of standard libraries m3cctarget: Target C compiler control -CCTarget=cct/1 one of ( mips )m3-comm/sharedobjgen/README
Syntax Location support for the Obliq language
Browse Sources OnlineScanner and parser generators for extensible grammars. Used by the Obliq implementation.
Browse Sources OnlineMeta parser package useq by Obliq.
Browse Sources OnlineRuntime for the Obliq language.
Browse Sources OnlineParser for the Obliq language.
Browse Sources OnlinePrint support for the Obliq language.
Browse Sources OnlineObliq - a lightweight language for network objects
An interactive interpreter for the Obliq language. Obliq is a small, statically scoped, untyped language. It is object-oriented, higher-order, and distributed. State is local to an address space, while computation can migrate over the network. The distributed computation mechanism is based on Modula-3 Network Objects.
Obliq requires copies of netobjd to be running on all appropriate machines, if network objects are to be used.
Browse Sources OnlineShared objects for Obliq
Browse Sources OnlineObliq standard library access (reader, writer, pickle, process, ...)
Browse Sources OnlineObliq GUI access
Browse Sources OnlineObliq animation access
Browse Sources OnlineObliq Server-std - start an Obliq server
An Obliq server linked with standard libraries. See "obliqsrv".
Browse Sources OnlineObliq Server-ui \- start an Obliq server
An Obliq server linked with user interface libraries. See "obliqsrv".
Browse Sources OnlineObliq-min - a lightweight language for network objects
Obliq linked with minimum libraries. See "obliq".
An interactive interpreter for the Obliq language. Obliq is a small, statically scoped, untyped language. It is object-oriented, higher- order, and distributed. State is local to an address space, while com- putation can migrate over the network. The distributed computation mechanism is based on Modula-3 Network Objects.
Obliq requires copies of netobjd to be running on all appropriate machines, if network objects are to be used.
Browse Sources OnlineObliq-bin - a lightweight language for network objects
Obliq linked with standard libraries. See "obliq".
An interactive interpreter for the Obliq language. Obliq is a small, statically scoped, untyped language. It is object-oriented, higher- order, and distributed. State is local to an address space, while com- putation can migrate over the network. The distributed computation mechanism is based on Modula-3 Network Objects.
Obliq requires copies of netobjd to be running on all appropriate machines, if network objects are to be used.
Browse Sources OnlineObliq-binui - a lightweight language for network objects
Obliq linked with user interface libraries. See "obliq".
An interactive interpreter for the Obliq language. Obliq is a small, statically scoped, untyped language. It is object-oriented, higher- order, and distributed. State is local to an address space, while com- putation can migrate over the network. The distributed computation mechanism is based on Modula-3 Network Objects.
Obliq requires copies of netobjd to be running on all appropriate machines, if network objects are to be used.
Browse Sources OnlineObliq-binanim - a lightweight language for network objects
Obliq linked with animation libraries. See "obliq".
An interactive interpreter for the Obliq language. Obliq is a small, statically scoped, untyped language. It is object-oriented, higher- order, and distributed. State is local to an address space, while com- putation can migrate over the network. The distributed computation mechanism is based on Modula-3 Network Objects.
Obliq requires copies of netobjd to be running on all appropriate machines, if network objects are to be used.
Browse Sources Online3D animation support for Obliq
Browse Sources Onlinevisobliq - Visual Obliq: programming environment for distributed applications
Visual Obliq is a programming environment for multi-user applications, expressed in the Obliq language.
In the Visual Obliq model, a distributed session is started by loading an application into an Obliq interpreter. This creates a session with a certain unique public name. Users running interpreters at other sites can connect to the session via the session-name. The act of joining a session causes the appropriate client code and user interface specification to migrate to the client's address-space and run there.
All the above activities can be supported and coordinated within the World-Wide Web framework. A Visual Obliq program may be regarded as a document with an appropriate MIME type. The text of an application is disseminated as a MIME-encapsulated document by a Visual Obliq gateway (vocgi).
Browse Sources Onlinevocgi - gateway for visual obliq.
This is responsible for a variety of operations that result in the creation of an html page on the fly to support distributed apps on the world-wide web.
Browse Sources OnlineSupport for User Query via FormsVBT.
Browse Sources OnlineRun Visual Obliq applications from the command line
Browse Sources Online