<!-- MHonArc v2.4.4 --> <!--X-Subject: [MUD-Dev] IMatix Tools: Libero and SMT --> <!--X-From-R13: X Q Znjerapr <pynjNhaqre.rate.ftv.pbz> --> <!--X-Date: Mon, 6 Jul 1998 13:39:56 -0700 --> <!--X-Message-Id: 199807062039.NAA00101#under,engr.sgi.com --> <!--X-Content-Type: text/plain --> <!--X-Head-End--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>MUD-Dev message, [MUD-Dev] IMatix Tools: Libero and SMT</title> <!-- meta name="robots" content="noindex,nofollow" --> <link rev="made" href="mailto:claw#under,engr.sgi.com"> </head> <body background="/backgrounds/paperback.gif" bgcolor="#ffffff" text="#000000" link="#0000FF" alink="#FF0000" vlink="#006000"> <font size="+4" color="#804040"> <strong><em>MUD-Dev<br>mailing list archive</em></strong> </font> <br> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] <br clear=all><hr> <!--X-Body-Begin--> <!--X-User-Header--> <!--X-User-Header-End--> <!--X-TopPNI--> Date: [ <a href="msg00049.html">Previous</a> | <a href="msg00051.html">Next</a> ] Thread: [ <a href="msg00453.html">Previous</a> | <a href="msg00048.html">Next</a> ] Index: [ <A HREF="author.html#00050">Author</A> | <A HREF="#00050">Date</A> | <A HREF="thread.html#00050">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>[MUD-Dev] IMatix Tools: Libero and SMT</H1> <HR> <!--X-Subject-Header-End--> <!--X-Head-of-Message--> <UL> <LI><em>To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI> <LI><em>Subject</em>: [MUD-Dev] IMatix Tools: Libero and SMT</LI> <LI><em>From</em>: J C Lawrence <<A HREF="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</A>></LI> <LI><em>Date</em>: Mon, 06 Jul 1998 13:39:36 -0700</LI> <LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI> </UL> <!--X-Head-of-Message-End--> <!--X-Head-Body-Sep-Begin--> <HR> <!--X-Head-Body-Sep-End--> <!--X-Body-of-Message--> <PRE> URL:<A HREF="http://www.imatix.com/">http://www.imatix.com/</A> Has a number of tools that would be useful for a server effort. Libero is a peculiar form of CASE tool, that I could easily see doing the kernel of a MUD server with: URL:<A HREF="http://www.imatix.com/html/libero/index.htm">http://www.imatix.com/html/libero/index.htm</A> --<cut>-- How do I use Libero? 1.Design your program visually as a state diagram; 2.Choose your programming language; 3.Generate a framework for your program; 4.Fill-in the framework to get from rapid prototype to working program; 5.Repeat until your program is perfect. What Languages can I use? C Java C++ Perl Awk UNIX shells - Korn shell, BASH, Bourne shell, C shell Rexx MS Visual Basic MS Test Basic COBOL MS 80x86 Assembler ... with open-ended support for other languages. Libero uses a programmable code generator engine. To generate code in a specific language, you write a new schema. A schema is like a script or program, written using Libero's schema language. --<cut>-- SMT is a bolt-on for Libero that allows Libero-generated apps to be internally threaded (pseudo-threads also Cold/MOO/etc). The locking model (see the docs off the web page, is cute: URL:<A HREF="http://www.imatix.com/html/smt/index.htm">http://www.imatix.com/html/smt/index.htm</A> --<cut>-- The SMT (Simple Multi-Threading kernel) from iMatix is an add-on for the Libero programming tool that lets you write portable high-performance multithreaded programs based on Libero's finite-state machine (FSM) design method. ... You can use the SMT kernel for: Internet programming: where each connection is handled by one thread. Real-time programming: where multilevel finite-state machines work cooperatively. GUI development: where events are collected from the GUI and passed to threads for processing. The SMT kernel's main features are: 100% portability. Strong object orientation. Support for multiple FSM programs within one application. Support for multiple threads within one FSM program. Support for Internet protocols (TCP/IP, UDP/IP). Based on Libero program development method. Standard agents: http, file transfer, authorization, logging, console, timing, socket i/o. Unrestricted number of threads, queue sizes, etc. The SMT kernel currently supports C/C++, and is written in portable ANSI C. It uses the iMatix SFL (standard function library) as a technical platform, and the Libero tool as development method. ... The main differences between SMT and 'classic' multithreading are: Multithreading works at the user level, not the kernel level. This is sometimes called 'internal multithreading' or 'pseudo-multithreading'. User-level multithreading is transparent to the operating system, and can be 100% portable (as it is in SMT). SMT cannot make direct use of multiple CPUs, since threads are not visible to the operating system. Threads communicate with events as well as with semaphores. This is a clean abstraction that lets you design an object-oriented application. SMT is simpler to use. SMT is portable to (almost) any operating system and programming language, although the primary implementation is in ANSI C. We note some other points of interest: Thread switching occurs only between dialog action modules. A single dialog module will always run to completion. Thus, threads can share resources (data, files,...) without locking, critical sections, or other special safeguards. SMT provides a high-level framework for constructing real applications. This is useful even without the multithreading aspects. SMT uses asynchronous or non-blocking i/o as far as possible - for Internet sockets and file access. This results in efficient applications that can handle large numbers of connections with a low overhead per connection. --<cut>-- -- J C Lawrence Internet: claw#null,net (Contractor) Internet: coder#ibm,net ---------(*) Internet: claw#under,engr.sgi.com ...Honourary Member of Clan McFud -- Teamer's Avenging Monolith... </PRE> <!--X-Body-of-Message-End--> <!--X-MsgBody-End--> <!--X-Follow-Ups--> <HR> <!--X-Follow-Ups-End--> <!--X-References--> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg00049.html">[MUD-Dev] Re: WIRED: Kilers have more fun</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg00051.html">[MUD-Dev] Affordances and social method (Was: Re: Wired Magazine...)</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg00453.html">[MUD-Dev] Re: Affordances and social method (Was: Re: Wired</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg00048.html">[MUD-Dev] Ubiquity Scope & Requirements</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#00050"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#00050"><STRONG>Thread</STRONG></A></LI> </UL> </LI> </UL> <!--X-BotPNI-End--> <!--X-User-Footer--> <!--X-User-Footer-End--> <ul><li>Thread context: <BLOCKQUOTE><UL> <LI><STRONG>[MUD-Dev] Re: Affordances and social method (Was: Re: Wired Magazine...)</STRONG>, <EM>(continued)</EM> <ul compact> <ul compact> <ul compact> <ul compact> <LI><strong><A NAME="00439" HREF="msg00439.html">[MUD-Dev] Re: Affordances and social method (Was: Re: Wired Magazine...)</A></strong>, J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Fri 31 Jul 1998, 23:01 GMT <UL> <LI><strong><A NAME="00448" HREF="msg00448.html">[MUD-Dev] Re: Affordances and social method (Was: Re: Wired Magazine...)</A></strong>, Marian Griffith <a href="mailto:gryphon#iaehv,nl">gryphon#iaehv,nl</a>, Sat 01 Aug 1998, 21:57 GMT <UL> <LI><strong><A NAME="00451" HREF="msg00451.html">[MUD-Dev] Re: Affordances and social method (Was: Re: Wired Magazine...)</A></strong>, Robert Woods <a href="mailto:rwoods#nebula,honors.unr.edu">rwoods#nebula,honors.unr.edu</a>, Sun 02 Aug 1998, 01:11 GMT </LI> <LI><strong><A NAME="00453" HREF="msg00453.html">[MUD-Dev] Re: Affordances and social method (Was: Re: Wired</A></strong>, Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Sun 02 Aug 1998, 05:37 GMT </LI> </UL> </LI> </UL> </LI> </ul> </ul> </ul> </ul> </LI> <LI><strong><A NAME="00050" HREF="msg00050.html">[MUD-Dev] IMatix Tools: Libero and SMT</A></strong>, J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Mon 06 Jul 1998, 20:39 GMT <LI><strong><A NAME="00048" HREF="msg00048.html">[MUD-Dev] Ubiquity Scope & Requirements</A></strong>, Greg Munt <a href="mailto:greg#uni-corn,demon.co.uk">greg#uni-corn,demon.co.uk</a>, Sun 05 Jul 1998, 19:54 GMT <UL> <LI><strong><A NAME="00056" HREF="msg00056.html">[MUD-Dev] Re: Ubiquity Scope & Requirements</A></strong>, Vadim Tkachenko <a href="mailto:vt#freehold,crocodile.org">vt#freehold,crocodile.org</a>, Tue 07 Jul 1998, 02:51 GMT </LI> </UL> </LI> <LI><strong><A NAME="00043" HREF="msg00043.html">[MUD-Dev] Meta (Are code release announcement appreciated?)</A></strong>, Ben Greear <a href="mailto:greear#cyberhighway,net">greear#cyberhighway,net</a>, Fri 03 Jul 1998, 02:13 GMT <UL> <LI><strong><A NAME="00044" HREF="msg00044.html">[MUD-Dev] Re: Meta (Are code release announcement appreciated?)</A></strong>, Nathan F Yospe <a href="mailto:yospe#hawaii,edu">yospe#hawaii,edu</a>, Fri 03 Jul 1998, 02:20 GMT </LI> </UL> </LI> </UL></BLOCKQUOTE> </ul> <hr> <center> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] </center> <hr> </body> </html>