From R.Mascarell@REDACTED Mon Nov 1 17:26:42 1999 From: R.Mascarell@REDACTED (Rosa Mascarell Dauder) Date: Mon, 1 Nov 1999 17:26:42 +0100 Subject: ORBER Message-ID: Hello I have tried to use ORBER and I have not been able to install it. Have any of you installed ORBER in a PC - Windows 98 system? Have any of you found that the "install" function is not available? I have followed the user?s guide and it does not work to me. Thanks for your time. R. Mascarell From jhague@REDACTED Tue Nov 2 04:48:23 1999 From: jhague@REDACTED (James Hague) Date: Mon, 1 Nov 99 21:48:23 -0600 Subject: Garbage collection of atoms Message-ID: <199911020354.VAA06608@babba.advancenet.net> Has the garbage collection of atoms issue been resolved in newer versions of Erlang or is it still an outstanding issue? Sure would be nice to not have to worry about it :) James From etxuwig@REDACTED Tue Nov 2 08:49:40 1999 From: etxuwig@REDACTED (Ulf Wiger) Date: Tue, 2 Nov 1999 08:49:40 +0100 (MET) Subject: Garbage collection of atoms In-Reply-To: <199911020354.VAA06608@babba.advancenet.net> Message-ID: On Mon, 1 Nov 1999, James Hague wrote: jhague>Has the garbage collection of atoms issue been resolved in jhague>newer versions of Erlang or is it still an outstanding issue? jhague>Sure would be nice to not have to worry about it :) Still an outstanding issue. /Uffe Ulf Wiger, Chief Designer AXD 301 Ericsson Telecom AB tfn: +46 8 719 81 95 Varuv?gen 9, ?lvsj? mob: +46 70 519 81 95 S-126 25 Stockholm, Sweden fax: +46 8 719 43 44 From mike@REDACTED Tue Nov 2 09:07:43 1999 From: mike@REDACTED (Michael C Williams) Date: Tue, 2 Nov 1999 09:07:43 +0100 (MET) Subject: Garbage collection of atoms In-Reply-To: <199911020354.VAA06608@babba.advancenet.net> Message-ID: If you don't dynamically create atoms, you don't have to worry about it. And why should you dynamically create atoms? /Mike On Mon, 1 Nov 1999, James Hague wrote: > Has the garbage collection of atoms issue been resolved in newer versions > of Erlang or is it still an outstanding issue? Sure would be nice to not > have to worry about it :) > > James > From etxuwig@REDACTED Tue Nov 2 09:14:00 1999 From: etxuwig@REDACTED (Ulf Wiger) Date: Tue, 2 Nov 1999 09:14:00 +0100 (MET) Subject: Garbage collection of atoms In-Reply-To: Message-ID: On Tue, 2 Nov 1999, Michael C Williams wrote: mike>If you don't dynamically create atoms, you don't have to worry mike>about it. And why should you dynamically create atoms? Why, we do it. ;) For example, erlang allows only atoms as registered names of processes and ets tables. If you have a problem which calls for a derived table name (and why not?), you must create an atom in runtime. There are of course ways around dynamic atom creation in most cases, but why would you want to create workarounds in your code? ;) /Uffe mike> mike>/Mike mike> mike> mike>On Mon, 1 Nov 1999, James Hague wrote: mike> mike>> Has the garbage collection of atoms issue been resolved in newer versions mike>> of Erlang or is it still an outstanding issue? Sure would be nice to not mike>> have to worry about it :) mike>> mike>> James mike>> mike> mike> Ulf Wiger, Chief Designer AXD 301 Ericsson Telecom AB tfn: +46 8 719 81 95 Varuv?gen 9, ?lvsj? mob: +46 70 519 81 95 S-126 25 Stockholm, Sweden fax: +46 8 719 43 44 From joe@REDACTED Tue Nov 2 09:34:53 1999 From: joe@REDACTED (Joe Armstrong) Date: Tue, 2 Nov 1999 09:34:53 +0100 (CET) Subject: Garbage collection of atoms In-Reply-To: Message-ID: > If you don't dynamically create atoms, you don't have to worry > about it. And why should you dynamically create atoms? meta programming apply("mod", "func", ..) doesn't work /Joe > > /Mike > From mike@REDACTED Tue Nov 2 09:41:48 1999 From: mike@REDACTED (Michael C Williams) Date: Tue, 2 Nov 1999 09:41:48 +0100 (MET) Subject: Garbage collection of atoms In-Reply-To: Message-ID: On Tue, 2 Nov 1999, Joe Armstrong wrote: > meta programming > > apply("mod", "func", ..) > > doesn't work If mod and func are not previously defined you have a programming error. I.e. when you do list_to_atom("mod"), you are almost certainly not creating a new atom. So when do you want to dynamically create atoms except when loading code? /Mike From joe@REDACTED Tue Nov 2 09:51:26 1999 From: joe@REDACTED (Joe Armstrong) Date: Tue, 2 Nov 1999 09:51:26 +0100 (CET) Subject: Garbage collection of atoms In-Reply-To: Message-ID: > On Tue, 2 Nov 1999, Joe Armstrong wrote: > > > meta programming > > > > apply("mod", "func", ..) > > > > doesn't work > > If mod and func are not previously defined you have a programming > error. Well sort of, if you do apply(foo,bar, ...) and the module foo isn't loaded then this traps into the error handler which calls the code loader which ... which ... and the code then gets loaded. > I.e. when you do list_to_atom("mod"), you are almost > certainly not creating a new atom. So when do you want to > dynamically create atoms except when loading code? Convenience, speed etc. The problem is that while this is ok for a small program (one man hacks) where the programmer at least should be aware of how many atoms they create it doesn't scale. So I guess for big projects creating new ataoms should be a "no no" - or at least subject to review. > /Mike > > From seb@REDACTED Tue Nov 2 10:01:58 1999 From: seb@REDACTED (Sebastian Strollo) Date: 02 Nov 1999 10:01:58 +0100 Subject: Garbage collection of atoms In-Reply-To: Joe Armstrong's message of "Tue, 2 Nov 1999 09:51:26 +0100 (CET)" References: Message-ID: Joe Armstrong writes: > On Tue, 2 Nov 1999, Mike Williams wrote: > > > > If mod and func are not previously defined you have a programming > > error. > > Well sort of, if you do apply(foo,bar, ...) and the module foo isn't loaded > then this traps into the error handler which calls the code loader which ... > which ... and the code then gets loaded. At which point the atoms "foo" and "bar" are installed anyway. Which I think was Mike's original point... > > I.e. when you do list_to_atom("mod"), you are almost > > certainly not creating a new atom. So when do you want to > > dynamically create atoms except when loading code? > > Convenience, speed etc. > > The problem is that while this is ok for a small program (one man hacks) > where the programmer at least should be aware of how many atoms they create > it doesn't scale. So I guess for big projects creating new ataoms should be > a "no no" - or at least subject to review. It wouldn't be too hard to add a really stupid (i.e. inefficient) atom gc, this could provide input to the question if it is really needed. Sure it would be a nice feature, it really is one of those things which always has been discussed but never implemented. Could it be because the need for it hasn't been that great? -- Sebastian From klacke@REDACTED Tue Nov 2 10:35:38 1999 From: klacke@REDACTED (Klacke) Date: Tue, 2 Nov 1999 10:35:38 +0100 Subject: Third-party send to active and passive TCP sockets In-Reply-To: <199910271951.MAA05233@lefse.jetcafe.org>; from Jim Larson on Wed, Oct 27, 1999 at 12:51:44PM -0700 References: <199910261218.OAA27576@aalborg.du.uab.ericsson.se> <199910271951.MAA05233@lefse.jetcafe.org> Message-ID: <19991102103538.A46414@bluetail.com> On Wed, Oct 27, 1999 at 12:51:44PM -0700, Jim Larson wrote: > With passive sockets, we have the option of deferring further > recv()s in response to high load. > > For client-side sockets, we can acheive the same effect with active > sockets by delaying the send() of requests to limit the number of > outstanding requests at any one time. > > For server-side sockets, we may be overwhelmed by client request > messages. Any suggestions for what we can do here? This is a real problem indeed. We wrote some code here at bluetail which pretty much solved that problem. The idea was to have yet another option inet:sock_opts called {active, once}. This means that the socket is active, however a soon as a message is delivered on the socket, the socket is reset to passive mode. This way we can have the best of both worlds. We've posted that code to erlang-maintainers and hopefully it'll be properly released some day. > > Does the Erlang process scheduler look at the depth of message > queues in order to avoid overflows? > No, /klacke -- Claes Wikstr?m Tel: +46 (0)8 692 22 09 Bluetail AB Email: klacke@REDACTED Hantverkargatan 78 WWW: http://www.bluetail.com SE-112 38 Stockholm, SWEDEN From jhague@REDACTED Tue Nov 2 15:43:44 1999 From: jhague@REDACTED (James Hague) Date: Tue, 2 Nov 1999 08:43:44 -0600 (EST) Subject: Garbage collection of atoms In-Reply-To: Message-ID: On 2 Nov 1999, Sebastian Strollo wrote: > > It wouldn't be too hard to add a really stupid (i.e. inefficient) atom > gc, this could provide input to the question if it is really > needed. Sure it would be a nice feature, it really is one of those > things which always has been discussed but never implemented. Could it > be because the need for it hasn't been that great? I can see that lack of garbage collection for atoms wouldn't major problem for the types of applications that Erlang was originally intended for, but atoms are really handy for traditional AI programming. When doing something like natural language parsing or pattern matching, it's much nicer to deal with dense lists of atoms--[the, cat, jumped, over, the, dog]--as opposed to lists of characters. See Norvig's excellent _Paradigms of Artificial Intelligence Programming_ for many good examples of this style. With a high enough limit on the number of atoms, though, garbage collection would only rarely be necessary (I don't know what the current limit is). Even having to manually invoke atom collection would be a reasonable solution. James From patrickdlogan@REDACTED Tue Nov 2 16:55:19 1999 From: patrickdlogan@REDACTED (Patrick Logan) Date: Tue, 2 Nov 1999 07:55:19 -0800 (PST) Subject: Garbage collection of atoms In-Reply-To: References: Message-ID: <14367.2284.615526.655049@c837917-a.potlnd1.or.home.com> James Hague writes: > > With a high enough limit on the number of atoms, though, garbage > collection would only rarely be necessary (I don't know what the > current limit is). Even having to manually invoke atom collection > would be a reasonable solution. I remember some Lisp systems used to have a GCTWA function in order to explicitly "Garbage Collect Totally Worthless Atoms". -- Patrick Logan patrickdlogan@REDACTED From crd@REDACTED Tue Nov 2 16:33:50 1999 From: crd@REDACTED (Craig Dickson) Date: Tue, 2 Nov 1999 07:33:50 -0800 Subject: Syntax q's Message-ID: <003a01bf2547$ac0556c0$b102a8c0@int2.inversenet.com> A couple of things have been irritating me a little with Erlang's syntax. I was wondering if anyone else agreed with my views of these (quite limited) cases, and if so, what the best forum and format would be for proposing minor syntactical extensions. ***** First, in a function head, to bind a record argument to a variable, and also perform pattern-matching on its fields, you have to say: f(R) when ... R#rtype.field1 ..., ... R#rtype.field2 ... -> which isn't bad, except that it would be convenient to also bind those fields to variables at the same time. The first time I wanted to do this, it seemed intuitively obvious to me that the following should work, but it doesn't: f(R#rtype{field1 = Var1, field2 = Var2}) when ... Var1 ..., ... Var2 ... -> I guess, in essence, what I'm saying is that there are three things Erlang will let you do with a record argument in a function head: (1) bind it, as a whole, to a variable (R above), (2) pattern-match on its fields (the guards in the first example), and (3) bind its fields to variables (as in the second example). I would like to do all of these things simultaneously, but Erlang won't let me; it will only let me have any two of the three in any given function head. Does anyone else think that Erlang should allow all three at once? ***** My other complaint is that the standard libraries have functions that take module and function atoms (e.g. apply/3), but which cannot take funs. For example, I would like to be able to experiment with timer:tc/3 in the Erlang shell by just declaring a fun interactively and calling tc like this: F = fun(...) -> ... end. timer:tc(F, [args...]). But this isn't possible because tc doesn't take a fun. I suppose this is a historical artifact, since funs are a relatively recent addition to the language. Still, it would be nice to allow funs to be used more universally. I would even like apply/3 to be able to take a fun, like this: apply(F, Args) when function(F), list(Args) -> because this would provide for a sort of built-in uncurrying capability that would make it trivially easy to pass around a fun and its list of arguments in a tuple, and evaluate them in contexts that might not have any idea how many arguments the fun took. For example: apply_list(L) when list(L) -> lists:map(fun({F,A}) when function(F), list(A) -> F(A) end, L). Here L is a list of {Fun, ArgList} pairs, where the arity of each Fun corresponds to the length of its ArgList. Of course, the same effect can be achieved on an ad-hoc basis by wrapping each fun in another fun that takes a list of known length and breaks it up, e.g.: fun(F, [A,B,C]) -> F(A, B, C) end. But it seems to me that this shouldn't be necessary. Does anyone else agree? Craig From etxuwig@REDACTED Tue Nov 2 16:37:55 1999 From: etxuwig@REDACTED (Ulf Wiger) Date: Tue, 2 Nov 1999 16:37:55 +0100 (MET) Subject: Garbage collection of atoms In-Reply-To: Message-ID: On Tue, 2 Nov 1999, Joe Armstrong wrote: joe>So I guess for big projects creating new ataoms should be joe>a "no no" - or at least subject to review. One obvious problem with this is that it's not entirely obvious that atoms are not garbage-collected, when virtually everything else is. So explaining to programmers why they can't use list_to_atom/1 where convenient is a bit embarrassing. /Uffe Ulf Wiger, Chief Designer AXD 301 Ericsson Telecom AB tfn: +46 8 719 81 95 Varuv?gen 9, ?lvsj? mob: +46 70 519 81 95 S-126 25 Stockholm, Sweden fax: +46 8 719 43 44 From etxuwig@REDACTED Tue Nov 2 16:42:56 1999 From: etxuwig@REDACTED (Ulf Wiger) Date: Tue, 2 Nov 1999 16:42:56 +0100 (MET) Subject: Syntax q's In-Reply-To: <003a01bf2547$ac0556c0$b102a8c0@int2.inversenet.com> Message-ID: On Tue, 2 Nov 1999, Craig Dickson wrote: crd>First, in a function head, to bind a record argument to a variable, crd>and also perform pattern-matching on its fields, you have to say: crd> crd> f(R) crd> when ... R#rtype.field1 ..., ... R#rtype.field2 ... -> crd> crd>which isn't bad, except that it would be convenient to also bind crd>those fields to variables at the same time. The first time I wanted crd>to do this, it seemed intuitively obvious to me that the following crd>should work, but it doesn't: crd> crd> f(R#rtype{field1 = Var1, field2 = Var2}) crd> when ... Var1 ..., ... Var2 ... -> Since OTP R5B (the commercial release), and thus in the upcoming next release of OSE, you can write: f(R = #rtype{field1 = Var1, ...}) -> ... crd>My other complaint is that the standard libraries have functions crd>that take module and function atoms (e.g. apply/3), but which crd>cannot take funs. For example, I would like to be able to crd>experiment with timer:tc/3 in the Erlang shell by just declaring a crd>fun interactively and calling tc like this: crd> crd> F = fun(...) -> ... end. crd> timer:tc(F, [args...]). crd> crd>But this isn't possible because tc doesn't take a fun. I suppose crd>this is a historical artifact, since funs are a relatively recent crd>addition to the language. Still, it would be nice to allow funs to crd>be used more universally. I believe that in the next release of OSE, you'll be able to use funs in more places than today, e.g. in spawn/1. Perhaps not in timer:tc/1 or apply/1... yet. /Uffe Ulf Wiger, Chief Designer AXD 301 Ericsson Telecom AB tfn: +46 8 719 81 95 Varuv?gen 9, ?lvsj? mob: +46 70 519 81 95 S-126 25 Stockholm, Sweden fax: +46 8 719 43 44 From etxuwig@REDACTED Thu Nov 4 10:52:32 1999 From: etxuwig@REDACTED (Ulf Wiger) Date: Thu, 4 Nov 1999 10:52:32 +0100 (MET) Subject: erl2html Message-ID: I remember having seen source code listings in HTML, generated by a utility called erl2html.erl. Could someone tell me where it is, if available, post it as a user contribution, or simply mail it to the list? /Uffe Ulf Wiger, Chief Designer AXD 301 Ericsson Telecom AB tfn: +46 8 719 81 95 Varuv?gen 9, ?lvsj? mob: +46 70 519 81 95 S-126 25 Stockholm, Sweden fax: +46 8 719 43 44 From luke@REDACTED Thu Nov 4 13:01:05 1999 From: luke@REDACTED (Luke Gorrie) Date: 04 Nov 1999 22:01:05 +1000 Subject: Socket stream tokeniser? Message-ID: <87puxqtqim.fsf@baked.vegetable.org> Hi all, I'd really like some helper code for dealing with sockets, like a stream tokeniser. What I'm thinking of is a server that sits between a client and a socket and takes requests like read_until("\n") or read_until(FunctionThatSaysWhenToStop), and takes care of all the buffering. Has anyone got something like this they can send me? Or is there something I'm not appreciating about the by-hand approach taken in httpd/pico/epop/etc where the client does the buffering and input-searching itself? I'm a bit scared of doing it this way too often and suspect something higher level would be nicer. Cheers, Luke From Olivier.Lefevre@REDACTED Thu Nov 4 17:20:26 1999 From: Olivier.Lefevre@REDACTED (Olivier.Lefevre@REDACTED) Date: Thu, 4 Nov 1999 11:20:26 -0500 Subject: erl2html In-Reply-To: Message-ID: Assuming you have a pretty Erlang emacs mode, you could also use htmlize in emacs. -- O.L. This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. E-mail transmission cannot be guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender therefore does not accept liability for any errors or omissions in the contents of this message which arise as a result of e-mail transmission. If verification is required please request a hard-copy version. This message is provided for informational purposes and should not be construed as a solicitation or offer to buy or sell any securities or related financial instruments. From R.Mascarell@REDACTED Thu Nov 4 20:50:13 1999 From: R.Mascarell@REDACTED (Rosa Mascarell Dauder) Date: Thu, 4 Nov 1999 20:50:13 +0100 Subject: ORBER Message-ID: Hello I would like to check if ORBER is able to interwork with JAVAORB and MICO (two open source CORBA platforms for JAVA and C). I have installed OTP in my pc (Windows 98) and I have discovered that ORBER is not installed. Have any of you installed ORBER on top of Windows 98? How did you manage it? I am not able to run the make file associated with the distribution. Thanks / Rosa From R.Mascarell@REDACTED Fri Nov 5 19:14:09 1999 From: R.Mascarell@REDACTED (Rosa Mascarell Dauder) Date: Fri, 5 Nov 1999 19:14:09 +0100 Subject: ORBER References: Message-ID: Hello Niclas JAVAORB and MICO are CORBA 2.3 compliant. I guess they must be compatible between them. After my tries to install ORBER 2.0.2 I am affraid what is wrong is the package (no the software but the collection of files). In spide of being stored as a Windows set, it contains "make" files for UNIX. I think a correction for the ORBER is not needed. Maybe the next release of ORBER will be CORBA 2.3 complaint. Thanks and keeping touch / Rosa Niclas Eklund schrieb: > On Thu, 4 Nov 1999, Rosa Mascarell Dauder wrote: > > Hello > > > > I would like to check if ORBER is able to interwork with JAVAORB and > > MICO (two open source CORBA platforms for JAVA and C). > > As long as they follow the standard yes. Orber now supports most of > CORBA-2.2. Do check out the new release 3.0.1 (opensource any day, > "ordinary" release 27/10). > > > I have installed OTP in my pc (Windows 98) and I have discovered that > > ORBER is not installed. > > > > Have any of you installed ORBER on top of Windows 98? How did you manage > > it? I am not able to run the make file associated with the distribution. > > Sorry, do not use windows :-) > > /Nick > From nick@REDACTED Mon Nov 8 14:06:33 1999 From: nick@REDACTED (Niclas Eklund) Date: Mon, 8 Nov 1999 14:06:33 +0100 (MET) Subject: ORBER In-Reply-To: Message-ID: On Fri, 5 Nov 1999, Rosa Mascarell Dauder wrote: > JAVAORB and MICO are CORBA 2.3 compliant. I guess they must be > compatible between them. They should also be backward compatible, i.e., no problems communicating with Orber (unless you use, for example, new (CORBA 2.3) functions). > After my tries to install ORBER 2.0.2 I am affraid what is wrong is the > package (no the software but the collection of files). In spide of being stored > as a Windows set, it contains "make" files for UNIX. > > I think a correction for the ORBER is not needed. Maybe the next release > of ORBER will be CORBA 2.3 complaint. > Niclas Eklund schrieb: > > On Thu, 4 Nov 1999, Rosa Mascarell Dauder wrote: > > > Hello > > > > > > I would like to check if ORBER is able to interwork with JAVAORB and > > > MICO (two open source CORBA platforms for JAVA and C). > > > > As long as they follow the standard yes. Orber now supports most of > > CORBA-2.2. Do check out the new release 3.0.1 (opensource any day, > > "ordinary" release 27/10). > > > > > I have installed OTP in my pc (Windows 98) and I have discovered that > > > ORBER is not installed. > > > > > > Have any of you installed ORBER on top of Windows 98? How did you manage > > > it? I am not able to run the make file associated with the distribution. > > > > Sorry, do not use windows :-) CORRECTION: "Sorry, I do not use windows :-)" /Nick From bjarne@REDACTED Mon Nov 8 17:10:50 1999 From: bjarne@REDACTED (Bjarne =?iso-8859-1?Q?D=E4cker?=) Date: Mon, 08 Nov 1999 17:10:50 +0100 Subject: ICFP 2000 Message-ID: <3826F60A.E44CE43B@erix.ericsson.se> Hello, Please check out http://diwww.epfl.ch/~odersky/icfp2000/ International Conference on Functional Programming Montreal, Canada; 18-20 September 2000 Submission deadline Submission Deadline March 1, 2000 I think that we should strive for some Erlang related papers to this conference ! Best regards Bjarne D?cker From bjarne@REDACTED Mon Nov 8 19:15:23 1999 From: bjarne@REDACTED (Bjarne =?iso-8859-1?Q?D=E4cker?=) Date: Mon, 08 Nov 1999 19:15:23 +0100 Subject: Call for Papers - WPDRTS 2000 Message-ID: <3827133B.279BE0B0@erix.ericsson.se> Hello We wish to be present with Erlang related papers in the functional programming conferences but I think that we ought to appear in some of the realtime or embedded systems conferences as well. Best regards Bjarne ========================================================================== CALL FOR PAPERS Eighth International Workshop on Parallel and Distributed Real-Time Systems (WPDRTS 2000) May 1-2, 2000, Westin Regina Hotel - Cancun, Mexico (held in conjunction with IPDPS 2000) >>>>> SUBMISSION DEADLINE DECEMBER 1, 1999 <<<<< Authors are invited to submit manuscripts that demonstrate original unpublished research pertaining to real-time systems that have parallel and/or distributed architectures. Of interest are conceptual, experimental and implemented systems, their scientific and commercial applications, and theoretical foundations. Papers addressing multiple aspects of distributed and/or parallel real-time systems are of particular interest. The Workshop on Parallel and Distributed Real-Time Systems (WPDRTS) brings together researchers from different communities in order to fill a number of gaps. This is vital since it is becoming more and more evident that no single discipline or method can solve all the problems related to computer-based real-time applications. Parallel and distributed systems that are not real-time have many things in common with those that are, such as formal specification and design of concurrent aspects, communication and synchronization, exploitation of concurrency, and simulation. However, there are also considerable differences, such as the focus on maximal average performance for non-real-time concurrent systems and the focus on predictability and obeying the deadlines for concurrent real-time systems. Real-time systems frequently employ parallel and distributed computer platforms in order to meet timing constraints and to achieve fault-tolerance and availability. In order to come to a usable solution, the issues of concurrency and dependability must be considered simultaneously. However, it is often the case that researchers focus on problems relevant to concurrent processing while overlooking timeliness. Similarly, real-time computing research efforts are often focused on producing techniques that apply only to single-processor systems. Thus, WPDRTS covers many important research areas, while keeping in mind the common thread of parallel and distributed processing in real-time. All papers (not more than 10 pages) should be submitted to the appropriate program chair: Sang Hyuk Son (Chair for the Americas) (Email) son@REDACTED Maarten Boasson (Chair for Europe and Africa) (Email) boasson@REDACTED Yoshiaki Kakuda (Chair for Asia and Oceania) (Email) kakuda@REDACTED ================================================= WPDRTS 2000 Program Organization -------------------------------- General Chair ------------- Kenji Toda, Electrotechnical Laboratory, Japan Program Chairs -------------- Sang Hyuk Son, University of Virginia, USA Maarten Boasson, University of Amsterdam, The Netherlands Yoshiaki Kakuda, Hiroshima City University, Japan Publicity Chair --------------- Amy Apon, University of Arkansas, USA Program Committee ----------------- Tarek Abdelzaher, University of Virginia, USA Giorgio Buttazzo, Scuola Superiore, Italy Max Geerling, Chess IT, Haarlem, The Netherlands Jorgen Hansson, University of Skovde, Sweden Kenji Ishida, Hiroshima City University, Japan Michael B. Jones, Microsoft Research, USA Tei-Wei Kuo, National Chung Cheng University, Taiwan Insup Lee, University of Pennsylvania, USA Victor Lee, City University of Hong Kong, Hong Kong Jane Liu, University of Illinois, USA Doug Locke, Lockheed Martin, USA G. Manimaran, Iowa State University, USA Tim Martin, Compaq Computer Corporation, USA Sang Lyul Min, Seoul National University, Korea Al Mok, UT Austin, USA C. Siva Ram Murthy, IIT Madras, India Hidenori Nakazato, OKI, Japan Joseph Kee-Yin Ng, Hong Kong Baptist University, Hong Kong Isabelle Puaut, INSA/IRISA, France Ragunathan Rajkumar, Carnegie Mellon University, USA Franklin Reynolds, Nokia Research Center, USA Wilhelm Rossak, FSU Jena, Informatik, Germany Shiro Sakata, NEC, Japan Manas Saksena, University of Pittsburgh, USA Lui Sha, University of Illinois, USA Kang Shin, University of Michigan, USA Hiroaki Takada, Toyohashi University of Technology, Japan Nalini Venkatasubramanian, University of California at Irvine, USA Wei Zhao, Texas A&M University, USA Important Dates --------------- DECEMBER 1, 1999 Manuscripts Due JANUARY 1, 2000 Notification of Review Decision JANUARY 30, 2000 Camera Ready Version Due More information can be found at: http://csci.uark.edu/~aapon/wpdrts2000/ From Chandru.Mullaparthi@REDACTED Tue Nov 9 17:29:57 1999 From: Chandru.Mullaparthi@REDACTED (Chandrashekhar Mullaparthi) Date: Tue, 09 Nov 1999 16:29:57 +0000 Subject: String indices in SNMP Message-ID: <38284C05.7F24A1D6@eei.ericsson.se> Hi, Does the snmp agent in OTP support string indices?? The agent I'm running, (OTP R6B) crashes when my instrumentation function returns a string index for a get-next operation. Anyone seen this? I've seen the code and it looks like string indices are not supported. Can someone confirm this? tia, Chandru From miyakawa@REDACTED Wed Nov 10 03:29:20 1999 From: miyakawa@REDACTED (Shinya MIYAKAWA) Date: Wed, 10 Nov 1999 11:29:20 +0900 Subject: TCS2000 Message-ID: <19991110112920Y.miyakawa@ito.ecei.tohoku.ac.jp> Apologies if you receive multiple copies. -------- call for papers IFIP International Conference on Theoretical Computer Science IFIP TCS2000 --- Exploring New Frontiers of Theoretical Informatics --- August 17 - 19, 2000 Tohoku University, Sendai, Japan IFIP TCS2000 is the first International Conference on Theoretical Computer Science organized by the IFIP TC1 on Foundations of Computer Science. Major topics of the conference are follows: Track (1): Algorithms, Complexity and Models of Computation analysis and design of algorithms --- algorithm experimentation --- continuous algorithms and complexity --- computational complexity --- descriptional complexity --- cellular automata and machines, automata and formal languages --- hardware algorithms and parallel algorithms --- computational learning theory --- algorithmic aspects in discovery science --- cryptography --- combinatorics --- probabilistic and randomized algorithms --- molecular computing and algorithmic aspects of bioinformatics --- quantum computing --- neural network computing --- evolutionary and genetic algorithms --- computational geometry --- computational and mathematical finance --- bridging complexity and semantics. Track (2): Logic, Semantics, Specification and Verification logic and semantics for programs and languages --- foundations of system specification --- term rewriting systems --- proofs and specifications in computer science --- types and category theory in computer science --- theoretical aspects of specification and verification of hardware and software --- theoretical aspects of software concepts --- concurrency theory --- theory of parallel and distributed systems --- theory of internet languages and systems --- constructive and non-standard logics in computer science --- foundations of security --- theoretical foundations of data bases --- logic, specification and verification of hybrid and real-time systems --- theoretical foundations of open systems --- bridging semantics and complexity. Submissions on the above topics and related topics are invited. Submitted papers should preferably be typeset in LaTeX2e using the Springer document class llncs for the LNCS format, see http://www.springer.de/comp/lncs/authors.html (the command \pagestyle{plain} turns on page numbering), and no longer than 14 pages. They should be sent in Postscript by email to one of the following addresses by January 28 (Friday), 2000: for Track (1), tcs2000-track1@REDACTED; for Track (2), tcs2000-track2@REDACTED A submission should include the track name for the submission, the title of the paper, names and affiliations of authors, an abstract up to 300 words, and the contact author's name, address, phone number, fax number, and email address. The submission must be in English, and it should provide a summary of the main results and their details to allow the program committee to assess their merits and significance, including references and comparisons. The result of the paper must be unpublished and not submitted for publication elsewhere, including journals and the proceedings of other symposia or workshops. One author of each accepted paper should be able to present it at the conference. Important Dates: January 28, 2000: Deadline for submission of papers April 7, 2000: Notification of acceptance May 5, 2000: Final camera-ready text due See http://hagi.is.s.u-tokyo.ac.jp/tcs2000/ for further information about the submission procedure. The program will consist of: Plenary Invited Talks Mart\'in Abadi (Bell Labs, Lucent Technologies) Masami Hagiya (U. Tokyo) Madhu Sudan (MIT) Track (1) Invited Talks Ernst Mayr (TU Muenchen) Shu Tezuka (IBM Tokyo Research Lab) Mihalis Yannakakis (AT\&T Research) Track (2) Invited Talks Thomas Henzinger (UC Berkeley & MPI-Saarbrucken) Naoki Kobayashi (U. Tokyo) Gordon Plotkin (U. Edinburgh) Banquet Speech Michael O. Rabin (Harvard U.) as well as the selected contributed talks and a panel discussion. The Proceedings, published as a volume of Lecture Notes in Computer Science, Springer-Verlag, will be available at the conference. See http://tcs2000.ito.ecei.tohoku.ac.jp/tcs2000/ for general information about the IFIP TCS2000 Conference. Program Committee Co-Chairs Track (1): Algorithms, Complexity and Models of Computation Jan van Leeuwen (U. Utrecht) Osamu Watanabe (Tokyo Inst. of Technology) Track (2): Logic, Semantics, Specification, and Verification Masami Hagiya (U. Tokyo) Peter D. Mosses (U. Aarhus) Program Committee Track (1): Ricardo Baeza-Yates (U. Chile), Siu-Wing Cheng (Hong Kong UST), Felipe Cucker (City U. Hong Kong), Rosario Gennaro (IBM T.J. Watson Research), Alan Gibbons (U. Liverpool), Andrew V. Goldberg (InterTrust STAR Lab, USA), Ernst Mayr (TU Muenchen), Hiroshi Nagamochi (Kyoto U.), Kouichi Sakurai (Kyushu U.), Paul Vitanyi (CWI, Amsterdam), Jiri Wiedermann (Academy of Sciences, Prague), Takashi Yokomori (Waseda U.) Track (2): Samson Abramsky (U. Edinburgh), Egidio Astesiano (U. Genova), Luca Cardelli (Microsoft, Cambridge), Robert Constable (Cornell U.), Javier Esparza (TU Muenchen), Naoki Kobayashi (U. Tokyo), Jos\'e Meseguer (SRI, Menlo Park), Benjamin Pierce (U. Pennsylvania), Davide Sangiorgi (INRIA, Sophia Antipolis), John Staples (U. Queensland), Andrzej Tarlecki (Warsaw U.), P. S. Thiagarajan (Chennai Math. Inst., India), Kazunori Ueda (Waseda U.), Naoki Yonezaki (Tokyo Inst. Tech.) Conference Co-Chairs Giorgio Ausiello (IFIP TC1 Chair and U. Roma "La Sapienza") Takayasu Ito (Tohoku U.) Steering Committee Giorgio Ausiello (U. Roma) , Wilfried Brauer (TU Muenchen), Takayasu Ito (Tohoku U.), Michael O. Rabin (Harvard U.), John Staples (U. Queensland), Joseph Traub (Columbia U.) Organizing Committee Co-Chairs Setsuo Arikawa (Kyushu U.), Yasuyoshi Inagaki (Nagoya U.), Takayasu Ito (Tohoku U.) The IFIP TCS2000 conference is organized by the IFIP TC1 on Foundations of Computer Science in cooperation with Information Processing Society of Japan, Japan Society of Software Science and Technology, Institute of Electronics, Information and Communication Engineers in Japan*, European Association of Theoretical Computer Science, Association of Symbolic Logic, and Association for Computing Machinery-SIGACT. (* indicates "to be verified".) E-mail address for any inquiry: TCS2000@REDACTED From uwe@REDACTED Wed Nov 10 15:56:38 1999 From: uwe@REDACTED (Uwe Nestmann) Date: 10 Nov 1999 15:56:38 +0100 Subject: Consono Mobility Server Message-ID: Hej, in a talk about Erlang in general, I heard (although very little) about this Consono (correct spelling?). Does anybody know where I can find information on this subject/project? Some web link would be fine. == Uwe == From bjarne@REDACTED Wed Nov 10 16:19:25 1999 From: bjarne@REDACTED (Bjarne =?iso-8859-1?Q?D=E4cker?=) Date: Wed, 10 Nov 1999 16:19:25 +0100 Subject: Consono Mobility Server References: Message-ID: <38298CFD.1FC58141@erix.ericsson.se> Uwe Nestmann wrote: > > Hej, > > in a talk about Erlang in general, I heard (although very > little) about this Consono (correct spelling?). Try http://www.ericsson.com/Connexion/connexion1-97/consono.htm I have been surfing through the Ericsson product web pages and I get the impression that the brand name "Consono" is no longer being used. Bjarne From luke@REDACTED Wed Nov 10 19:45:05 1999 From: luke@REDACTED (Luke Gorrie) Date: 11 Nov 1999 04:45:05 +1000 Subject: emacs gift and question Message-ID: <87hfiuyymm.fsf@baked.vegetable.org> G'day all, I wrote a little bit of elisp for turning: foo(1) -> 1; foo(12) -> 12; foo(123) -> 123. into foo(1) -> 1; foo(12) -> 12; foo(123) -> 123. to cut down on hand alignment. I've attached the code incase it's useful to anyone, and I would be grateful if someone could tell me how to make it atomic with respect to undo -- currently, undoing an alignment moves the point. Or if there's already a better implementation, perhaps someone could tell me where to find it. Cheers, Luke ---------------------------------------- (setq arrow-regexp "\\(^.*\\)\\(\\)->") ; FIXME: don't match quoted arrows (setq match-upto-arrow 1) (setq match-at-arrow 2) (defun erlang-arrow-align-region () "Align all arrows beginning functions in region." (interactive) (save-excursion (if (> (point) (mark)) (exchange-point-and-mark)) (erlang-align-arrows) (erlang-indent-region (point) (mark)))) (defun erlang-align-arrows () "Align all arrows (->) in region" (save-excursion (indent-arrows (save-excursion (arrow-furthest-indent (mark) 0)) (mark)))) (defun arrow-furthest-indent (bound best) "Return the furthest-indented arrow between point and bound" (let ((idx (arrow-indent-idx bound))) (if idx (max idx (arrow-furthest-indent bound best)) best))) (defun arrow-indent-idx (bound) "Find how far the first arrow after point is indented" (if (search-forward-regexp arrow-regexp bound t) (- (match-end match-upto-arrow) (match-beginning match-upto-arrow)) nil)) (defun indent-arrows (align-idx bound) "Indent all arrows between point and bount to align-idx" (let ((arrow-idx (arrow-indent-idx bound))) (if (null arrow-idx) t (let ((pad (- align-idx arrow-idx))) (unless (= pad 0) (replace-match (make-string pad ? ) nil nil nil match-at-arrow)) (indent-arrows align-idx bound))))) From lkneler@REDACTED Thu Nov 11 00:25:18 1999 From: lkneler@REDACTED (Lenny) Date: Wed, 10 Nov 1999 15:25:18 -0800 Subject: Erlang prints (some) lists as strings Message-ID: <01E1F0FA698CD111949200A0C99DD2EE170BEE@atoll.esri.com> How do I tell Erlang not to print the first list as "ooo"? Eshell V47.4.1 (abort with ^G) 1> [111,111,111]. "ooo" 2> [-111,-111,-111]. [-111,-111,-111] Thanks, -Lenny- lkneler@REDACTED From crd@REDACTED Thu Nov 11 00:43:25 1999 From: crd@REDACTED (Craig Dickson) Date: Wed, 10 Nov 1999 15:43:25 -0800 Subject: Erlang prints (some) lists as strings References: <01E1F0FA698CD111949200A0C99DD2EE170BEE@atoll.esri.com> Message-ID: <00af01bf2bd5$635b00c0$b102a8c0@int2.inversenet.com> Well, you could write your own function to print it out however you like, and pass your list to it: format_list(L) when list(L) -> io:format("["), fnl(L), io:format("]"). fnl([H]) -> io:format("~p", [H]); fnl([H|T]) -> io:format("~p,", [H]), fnl(T); fnl([]) -> ok. That's about what it will take, since Erlang doesn't have a "character" data type, and the shell has to guess whether any given integer in a list is meant to be a number or text. I haven't tested the above code, by the way, but if it doesn't work as written, you get the idea, I'm sure... Craig ----- Original Message ----- From: Lenny To: Sent: Wednesday, 10 November 1999 03:25 pm Subject: Erlang prints (some) lists as strings > How do I tell Erlang not to print the first list as "ooo"? > > Eshell V47.4.1 (abort with ^G) > 1> [111,111,111]. > "ooo" > 2> [-111,-111,-111]. > [-111,-111,-111] > > Thanks, > -Lenny- > lkneler@REDACTED > From per@REDACTED Thu Nov 11 01:19:08 1999 From: per@REDACTED (Per Hedeland) Date: Thu, 11 Nov 1999 01:19:08 +0100 (MET) Subject: Erlang prints (some) lists as strings Message-ID: <199911110019.BAA28404@super.du.uab.ericsson.se> >That's about what it will take, since Erlang doesn't have a "character" data >type, and the shell has to guess whether any given integer in a list is >meant to be a number or text. Or more precisely, the shell uses the 'p' (or to be pedantic, 'P') control character(*), that asks for the guessing, when printing its output - you don't have to do that in your program: 1> L=[111,111,111]. "ooo" 2> io:format("~w~n",[L]). [111,111,111] ok 3> io:format("~p~n",[L]). "ooo" ok --Per Hedeland per@REDACTED (*): From the io(3) man page: w: Writes data with the standard syntax. This is used to output Erlang terms. Atoms are printed within quotes if they contain embedded non- printable characters, and floats are printed in the default g format. p: Writes the data with standard syntax in the same way as ~w, but breaks terms whose printed representation is longer than one line into many lines and indents each line sensibly. It also tries to detect lists of printable characters and to output these as strings. From etxuwig@REDACTED Thu Nov 11 09:53:16 1999 From: etxuwig@REDACTED (Ulf Wiger) Date: Thu, 11 Nov 1999 09:53:16 +0100 (MET) Subject: Erlang prints (some) lists as strings In-Reply-To: <199911110019.BAA28404@super.du.uab.ericsson.se> Message-ID: On Thu, 11 Nov 1999, Per Hedeland wrote: per>>That's about what it will take, since Erlang doesn't have a "character" data per>>type, and the shell has to guess whether any given integer in a list is per>>meant to be a number or text. per> per>Or more precisely, the shell uses the 'p' (or to be pedantic, 'P') per>control character(*), that asks for the guessing, when printing its per>output - you don't have to do that in your program: per> per>1> L=[111,111,111]. per>"ooo" per>2> io:format("~w~n",[L]). per>[111,111,111] per>ok per>3> io:format("~p~n",[L]). per>"ooo" per>ok per> per>--Per Hedeland per>per@REDACTED How about putting the following into c.erl? w(Term) -> io:format("~w~n", [Term]). which could then be used as: 4> w(L). [111,111,111] ok 5> w(v(1)). [111,111,111] ok /Uffe Ulf Wiger, Chief Designer AXD 301 Ericsson Telecom AB tfn: +46 8 719 81 95 Varuv?gen 9, ?lvsj? mob: +46 70 519 81 95 S-126 25 Stockholm, Sweden fax: +46 8 719 43 44 From mbj@REDACTED Thu Nov 11 11:29:24 1999 From: mbj@REDACTED (Martin Bjorklund) Date: Thu, 11 Nov 1999 11:29:24 +0100 Subject: String indices in SNMP In-Reply-To: Your message of "Tue, 09 Nov 1999 16:29:57 +0000" <38284C05.7F24A1D6@eei.ericsson.se> References: <38284C05.7F24A1D6@eei.ericsson.se> Message-ID: <19991111112924Y.mbj@bluetail.com> Chandrashekhar Mullaparthi wrote: > Hi, > > Does the snmp agent in OTP support string indices?? > The agent I'm running, (OTP R6B) crashes when my instrumentation > function returns a string index for a get-next operation. > Anyone seen this? I've seen the code and it looks like > string indices are not supported. Can someone confirm this? The OTP snmp agent does support string indicies. The get-next instrumentation function is supposed to return the next lexicographic OID; which in erlang is represented as a list of integers. A string in an SNMP index is just a list of integers too, so if the string index is "hello", (using IMPLIED) the corresponding OID is 104.101.108.108.11, and the return value from the erlang instrumentation function would be {"hello", ...} /martin -- Martin Bjorklund Bluetail AB, tel: +46 8 692 22 10 Hantverkargatan 78, fax: +46 8 654 70 71 SE-112 38 Stockholm, Sweden info: www.bluetail.com From bourdill@REDACTED Sat Nov 13 15:50:50 1999 From: bourdill@REDACTED (Pascal Bourdillon) Date: Sat, 13 Nov 1999 15:50:50 +0100 Subject: leex ? Message-ID: <001201bf2de6$7a6dafc0$3408c289@rezel.enst.fr> Hello, I'm a student trying to make a parser in Erlang. I want to use yecc and leex. As far as yecc is concerned, I have the source and some doc : It seems to be possible to understand how it works. BUT, I have not succeeded in finding the source for LEEX (I mean a useful source : I have found only a file named leex.erl.txt which does not work at all) Thanks in advance for your answers, Pascal. -------------- next part -------------- An HTML attachment was scrubbed... URL: From luke@REDACTED Sat Nov 13 20:01:47 1999 From: luke@REDACTED (Luke Gorrie) Date: 14 Nov 1999 05:01:47 +1000 Subject: leex ? In-Reply-To: "Pascal Bourdillon"'s message of "Sat, 13 Nov 1999 15:50:50 +0100" References: <001201bf2de6$7a6dafc0$3408c289@rezel.enst.fr> Message-ID: <873duaz04k.fsf@baked.vegetable.org> "Pascal Bourdillon" writes: > I'm a student trying to make a parser in Erlang. > I want to use yecc and leex. > As far as yecc is concerned, I have the source and some doc : It seems to be possible to understand how it works. > > BUT, I have not succeeded in finding the source for LEEX (I mean a useful source : I have found only a file named leex.erl.txt which does not work at all) I've put a copy that I got from Joe Armstrong at ftp://ftp.vegetable.org/pub/leex.erl - leex.hrl is in that directory too, though I think it comes with the parser tutorial at the user contributions page at www.erlang.org. Cheers, Luke From vladdu@REDACTED Wed Nov 17 13:49:50 1999 From: vladdu@REDACTED (Vlad Dumitrescu) Date: Wed, 17 Nov 1999 13:49:50 CET Subject: serial communications Message-ID: <19991117124951.95148.qmail@hotmail.com> Hi all! Could anyone give me a hint about which way it is best to implement serial communications in Erlang? A C program is necessary, but would it be better to write a link-in driver than to have an external port? I am thinking about whether there are any performance issues... [and since I send this mail anyway, I wonder why it is so quiet on the list... is everyone working on the delayed delivery of the new Erlang? :-) ] thanks. regards, /Vlad ______________________________________________________ Get Your Private, Free Email at http://www.hotmail.com From Matthias.Lang@REDACTED Wed Nov 17 14:32:46 1999 From: Matthias.Lang@REDACTED (Matthias.Lang@REDACTED) Date: Wed, 17 Nov 1999 14:32:46 +0100 (MET) Subject: serial communications In-Reply-To: <19991117124951.95148.qmail@hotmail.com> References: <19991117124951.95148.qmail@hotmail.com> Message-ID: <14386.43587.54416.657744@martell> Vlad Dumitrescu writes: > Could anyone give me a hint about which way it is best to implement serial > communications in Erlang? A C program is necessary, but would it be better David Brown (davidb@REDACTED) is/was working on a general driver; I haven't heard anything for a few months now. There is also a unix-only serial driver floating around Ericsson, but I'm not sure if it's freely releaseable. You might want to ask Johan Bevemyr about it, I think his address now is jb@REDACTED Matthias From erlang@REDACTED Wed Nov 17 17:38:07 1999 From: erlang@REDACTED (David Brown) Date: Wed, 17 Nov 1999 08:38:07 -0800 (PST) Subject: serial communications In-Reply-To: <14386.43587.54416.657744@martell> References: <19991117124951.95148.qmail@hotmail.com> <14386.43587.54416.657744@martell> Message-ID: <14386.55791.828535.586609@opus.davidb.org> Matthias.Lang@REDACTED writes: > Vlad Dumitrescu writes: > > > Could anyone give me a hint about which way it is best to implement serial > > communications in Erlang? A C program is necessary, but would it be better > > David Brown (davidb@REDACTED) is/was working on a general driver; > I haven't heard anything for a few months now. Best to use the address erlang@REDACTED for Erlang stuff. Especially in light of things soon to be happening at work... Right after I began working on this, some events happened at work that have kept me rather busy. I have built and used the code from Johan Bevemyr under Linux. The area I have a lack of experience is with the Windows side. I have been able to open a serial port under Windows, but I do not yet know how to do the equivalent of select. > There is also a unix-only serial driver floating around Ericsson, but > I'm not sure if it's freely releaseable. You might want to ask Johan > Bevemyr about it, I think his address now is jb@REDACTED I was sent the serial code you speak of, but the copyright in it doesn't give me permission to distribute it (I'm not sure it even gives me permission to use it). We might want to clear that up with Johan Bevemyr. Dave Brown From jb@REDACTED Thu Nov 18 09:25:31 1999 From: jb@REDACTED (Johan Bevemyr) Date: Thu, 18 Nov 1999 09:25:31 +0100 (CET) Subject: serial communications In-Reply-To: <14386.55791.828535.586609@opus.davidb.org> References: <19991117124951.95148.qmail@hotmail.com> <14386.43587.54416.657744@martell> <14386.55791.828535.586609@opus.davidb.org> Message-ID: <14387.47099.22843.415375@duva.bluetail.com> > I was sent the serial code you speak of, but the copyright in it > doesn't give me permission to distribute it (I'm not sure it even > gives me permission to use it). We might want to clear that up with > Johan Bevemyr. Sorry, the copyright has now been removed. I have submitted the non-copyrighted code to www.erlang.org /Johan From vladdu@REDACTED Thu Nov 18 11:15:19 1999 From: vladdu@REDACTED (Vlad Dumitrescu) Date: Thu, 18 Nov 1999 11:15:19 CET Subject: serial communications Message-ID: <19991118101520.57573.qmail@hotmail.com> Thanks for all the help. I will be looking at the code. It is under Windows that I am most interested to run it, so maybe I will be able to help David with that. (David: I will let you know if anything comes out of it) /Vlad ______________________________________________________ Get Your Private, Free Email at http://www.hotmail.com From nsilva@REDACTED Thu Nov 18 16:40:21 1999 From: nsilva@REDACTED (Nuno Silva) Date: Thu, 18 Nov 1999 15:40:21 -0000 Subject: Contacting with net_adm:ping/1 Message-ID: <01BF31DB.39A3D3E0@pcigb10.dei.isep.ipp.pt> Hi, Erlang version: 47.4.1 Problem 1: I'm having a problem contacting nodes in Linux hosts. Imagine I launch node_1@REDACTED, node_2@REDACTED and node_1@REDACTED, being host_2 and host_2 linux based hosts. When I try the net_adm:ping(node_2@REDACTED) in node_1@REDACTED the result is pong. Ok! Then I try net_adm:ping(node_1@REDACTED) in node_1@REDACTED and (most of the times) the result is pang. If the same experience is done using host_2 as a Windows 98 based host, the ping result is ALWAYS pang. Both experiences consider using: - Always the same hosts; - The same network configuration; - 'nocookie' in all the nodes; - Exclusive short node names or exclusive long nodes names (no short/long node names simultaneously). Why?... Problem 2: When I export a function named "query/1" I get compiler error: "syntax error before: '/'". If I export the function "queryy/1" (notice the 2 yy), no error is reported... Is it "query" a reserved word or something like that?... Even so, why does not the compiler report a simple " Warning: defining BIF query/1"?... Thanks for your concern, Sincerely, Nuno Silva _______________________________________________________ Nuno Silva DEI - ISEP - IPP (Polytecnic Institut of Porto) Rua Dr. Ant?nio Bernardino de Almeida 4200 - 072 Porto PORTUGAL Tel.: + 351 228340500 Fax: +351 228321159 mailto:Nuno.Silva@REDACTED http://www.dei.isep.ipp.pt/~nsilva From rv@REDACTED Thu Nov 18 17:03:49 1999 From: rv@REDACTED (Robert Virding) Date: Thu, 18 Nov 1999 17:03:49 +0100 Subject: Contacting with net_adm:ping/1 In-Reply-To: Your message of "Thu, 18 Nov 1999 15:40:21 GMT." <01BF31DB.39A3D3E0@pcigb10.dei.isep.ipp.pt> Message-ID: <199911181603.RAA06778@duva.bluetail.com> Nuno Silva writes: >Problem 2: > >When I export a function named "query/1" I get compiler error: "syntax error before: '/'". >If I export the function "queryy/1" (notice the 2 yy), no error is reported... >Is it "query" a reserved word or something like that?... Even so, why does not the compiler report a simple " Warning: defining BIF query/1"?... You are right, of course. "query" is a reserved word, like "case" or "if", and as such can only be in the context of defining a query and cannot be used as an atom or function name. A query is not a BIF so therefore you will never a compiler warning about redefining query. If you want to give a function the name "query" or use it as an atom then you have to quote it - 'query'. Robert -- Robert Virding Tel: +46 (0)8 692 22 12 Bluetail AB Email: rv@REDACTED Hantverkargatan 78 WWW: http://www.bluetail.com SE-112 38 Stockholm, SWEDEN "Folk s?ger att jag inte bryr mig om n?gonting, men det skiter jag i". From Chandru.Mullaparthi@REDACTED Thu Nov 18 17:12:40 1999 From: Chandru.Mullaparthi@REDACTED (Chandrashekhar Mullaparthi) Date: Thu, 18 Nov 1999 16:12:40 +0000 Subject: Contacting with net_adm:ping/1 References: <01BF31DB.39A3D3E0@pcigb10.dei.isep.ipp.pt> Message-ID: <38342577.75FDD60E@eei.ericsson.se> > I'm having a problem contacting nodes in Linux hosts. > Imagine I launch node_1@REDACTED, node_2@REDACTED and node_1@REDACTED, being host_2 and host_2 linux based hosts. > > When I try the net_adm:ping(node_2@REDACTED) in node_1@REDACTED the result is pong. Ok! > Then I try net_adm:ping(node_1@REDACTED) in node_1@REDACTED and (most of the times) the result is pang. > > If the same experience is done using host_2 as a Windows 98 based host, the ping result is ALWAYS pang. > > Both experiences consider using: > - Always the same hosts; > - The same network configuration; > - 'nocookie' in all the nodes; > - Exclusive short node names or exclusive long nodes names (no short/long node names simultaneously). > > Why?... For ping to work across machines, you have to use long node names for both your hosts. So, you will have to use: host1> erl -name host1 host2> erl -name host2 If it still doesn't work, use the normal ping and see if the machines are reachable from each other. hth Chandru From klacke@REDACTED Thu Nov 18 23:42:38 1999 From: klacke@REDACTED (Klacke) Date: Thu, 18 Nov 1999 23:42:38 +0100 Subject: Contacting with net_adm:ping/1 In-Reply-To: <38342577.75FDD60E@eei.ericsson.se> References: <01BF31DB.39A3D3E0@pcigb10.dei.isep.ipp.pt> <38342577.75FDD60E@eei.ericsson.se> Message-ID: <19991118234238.A18115@bluetail.com> > > I'm having a problem contacting nodes in Linux hosts. > > Imagine I launch node_1@REDACTED, node_2@REDACTED and node_1@REDACTED, being host_2 and host_2 linux based hosts. > > > > When I try the net_adm:ping(node_2@REDACTED) in node_1@REDACTED the result is pong. Ok! > > Then I try net_adm:ping(node_1@REDACTED) in node_1@REDACTED and (most of the times) the result is pang. > > Hmmm, this sounds strange, in particular the part about "sometimes" You may have some troubles with the setup of your network in general, I suppose you have checked that regular unix nameresolution et.al works ?? Check your /etc files and make sure they're all good > For ping to work across machines, you have to use long node names for both > your hosts. So, you will have to use: > > host1> erl -name host1 > host2> erl -name host2 > Ineed not, I haven't used the -name option for years, I always use the -sname option. Claes Wikstr?m Tel: +46 (0)8 692 22 09 Bluetail AB Email: klacke@REDACTED Hantverkargatan 78 WWW: http://www.bluetail.com SE-112 38 Stockholm, SWEDEN From vladdu@REDACTED Fri Nov 19 08:42:18 1999 From: vladdu@REDACTED (Vlad Dumitrescu) Date: Fri, 19 Nov 1999 08:42:18 CET Subject: new erlang? Message-ID: <19991119074218.75709.qmail@hotmail.com> Hi Now that there is some activity on the list, I will ask more openly my question :-) I haven't heard anything about the new Erlang/OTP... Is there any new date for the release? /Vlad ______________________________________________________ Get Your Private, Free Email at http://www.hotmail.com From nsilva@REDACTED Fri Nov 19 14:38:47 1999 From: nsilva@REDACTED (Nuno Silva) Date: Fri, 19 Nov 1999 13:38:47 -0000 Subject: net_adm:ping/1 in Linux Message-ID: <01BF3293.687D80E0@pcigb10.dei.isep.ipp.pt> Hi, I would like to add some information to my previous post, concerning the problems with net_adm:ping/1 There were a few replies to my post, suggesting that the to hosts were network unreacheble, but that is not true since I tested with the OS ping using both names (DNS) and IP address and it works fine. The cookie term is set to 'nocookie' in all the hosts. Then, I tried something new: I kiledl epmd deamon in the Linux host, and run it again with debug option set (epmd -d &). Once done, I run net_adm:ping/1 to the linux host with epmd running in debug mode. The result is the same (pang), but the epmd deamon reported: ***** Fri Nov 19 13:25:24 1999: opening connection on file descriptor 5 ***** Fri Nov 19 13:25:24 1999: ** Sent PORT2_RESP (ok) ***** Fri Nov 19 13:25:24 1999: closing connection on file descriptor 5 wich means (once again) that hosts are mutualy reacheble. I made the same experience (kill and recreate epmd) in two Windows hosts, the result of course is 'pong', but the epmd report is the same as above. I made the same experience in two Linux hosts the result is 'pong' and the epmd is the same. Any ideas?... Nuno Silva ____________________________________________ Nuno Silva DEI - ISEP - IPP (Polytecnic Institut of Porto) Rua Dr. Ant?nio Bernardino de Almeida 4200 - 072 Porto PORTUGAL Tel.: + 351 228340500 Fax: +351 228321159 mailto:Nuno.Silva@REDACTED http://www.dei.isep.ipp.pt/~nsilva -------------- next part -------------- An embedded message was scrubbed... From: Nuno Silva Subject: Contacting with net_adm:ping/1 Date: Thu, 18 Nov 1999 15:40:21 -0000 Size: 1750 URL: From vances@REDACTED Fri Nov 19 20:08:09 1999 From: vances@REDACTED (Vance Shipley) Date: Fri, 19 Nov 1999 14:08:09 -0500 Subject: net_adm:ping/1 in Linux In-Reply-To: <01BF3293.687D80E0@pcigb10.dei.isep.ipp.pt> Message-ID: Nuno, I had the same problem here with my Unixware v2.1.3 port of the Opensource release 47.4.1. I found that the responses from epmd were not being recognized by the Unixware client side. A WindowsNT based system could get names from the epmd on the Unixware system and the Unixware system could get names from the WindowsNT system. I was able to work around it with a strange kludge of a solution which involved putting a sleep in the code. I have no idea why this works. To try my extraordinarily kludgy patch to see if you have the same problem try putting a sleep into epmd_srv.c in the function do_read(): /* Do action and close up */ /* Skip header bytes */ do_request(g, s->fd, s, s->buf + 2, s->got - 2); /* vances ugly hack for unixware */ sleep(1); /* end vances hack */ if (!s->keep) epmd_conn_close(g,s); /* Normal close */ } Alternatively Magnus and I discussed this problem a while back and he mentioned having had a similiar problem on SUSE Linux. His patch is attached as well. -Vance -------------- next part -------------- An embedded message was scrubbed... From: "Vance Shipley" Subject: net_adm:names() failing Date: Thu, 30 Sep 1999 19:16:40 -0500 Size: 4516 URL: -------------- next part -------------- An embedded message was scrubbed... From: "Magnus Fr berg" Subject: Re: net_adm:names() failing Date: Fri, 1 Oct 1999 01:54:30 -0500 Size: 2278 URL: From klacke@REDACTED Wed Nov 24 21:55:09 1999 From: klacke@REDACTED (Klacke) Date: Wed, 24 Nov 1999 21:55:09 +0100 Subject: erlang otp r6b released Message-ID: <19991124215420.A9412@bluetail.com> Ok folks, finaly the OTP team made it with a source release through the door. I've just browsed trough the source and it looks just great. Absoulutely great. Thanks everybody for the amzing work !!! /klacke Claes Wikstrom Bluetail AB http://www.bluetail.com PS. I see in the README that you're using old Redhat systems and I've just compiled everything on RH 6.1 and we need to apply the following patch % patch lib/gs/c_src/lib/tcl7.6/generic/tclPosixStr.c diff_file % cat diff_file *** lib/gs/c_src/lib/tcl7.6/generic/tclPosixStr.c Wed Nov 24 20:25:37 1999 --- lib/gs/c_src/lib/tcl7.6/generic/tclPosixStr.c.new Wed Nov 24 20:26:47 1999 *************** *** 325,331 **** case ENOTSOCK: return "ENOTSOCK"; #endif #ifdef ENOTSUP ! case ENOTSUP: return "ENOTSUP"; #endif #ifdef ENOTTY case ENOTTY: return "ENOTTY"; --- 325,331 ---- case ENOTSOCK: return "ENOTSOCK"; #endif #ifdef ENOTSUP ! case ENOTSUP: return "ENOTSUP"; #endif #ifdef ENOTTY case ENOTTY: return "ENOTTY"; *************** *** 336,342 **** #ifdef ENXIO case ENXIO: return "ENXIO"; #endif ! #ifdef EOPNOTSUPP case EOPNOTSUPP: return "EOPNOTSUPP"; #endif #ifdef EPERM --- 336,342 ---- #ifdef ENXIO case ENXIO: return "ENXIO"; #endif ! #if defined(EOPNOTSUPP) && (!defined(ENOTSUP) || (ENOTSUP != EOPNOTSUPP)) case EOPNOTSUPP: return "EOPNOTSUPP"; #endif #ifdef EPERM *************** *** 783,789 **** #ifdef ENXIO case ENXIO: return "no such device or address"; #endif ! #ifdef EOPNOTSUPP case EOPNOTSUPP: return "operation not supported on socket"; #endif #ifdef EPERM --- 783,789 ---- #ifdef ENXIO case ENXIO: return "no such device or address"; #endif ! #if defined(EOPNOTSUPP) && (!defined(ENOTSUP) || (ENOTSUP != EOPNOTSUPP)) case EOPNOTSUPP: return "operation not supported on socket"; #endif #ifdef EPERM From hakan@REDACTED Thu Nov 25 09:56:10 1999 From: hakan@REDACTED (Hakan Mattsson) Date: Thu, 25 Nov 1999 09:56:10 +0100 (MET) Subject: Newer test suite of Mnesia available In-Reply-To: Message-ID: Now when Mnesia 3.8.2 has been released in Erlang/OTP R6B, it is time to release the its test suite: http://www.ericsson.se/cslab/~hakan/mnesia_test_3.8.2.tgz /H?kan PS. The tar-file for the previous test suite (3.8.1) has been removed. -------------------------------------+------------------------------------ H?kan Mattsson | Phone: +46 8 727 57 99 Computer Science Laboratory | E-mail: hakan@REDACTED Ericsson Network Core Products | http://www.ericsson.se/cslab/~hakan Box 1505, SE-126 25 Stockholm Sweden | From etxuwig@REDACTED Thu Nov 25 11:01:35 1999 From: etxuwig@REDACTED (Ulf Wiger) Date: Thu, 25 Nov 1999 11:01:35 +0100 (MET) Subject: erlang otp r6b released In-Reply-To: <19991124215420.A9412@bluetail.com> Message-ID: On Wed, 24 Nov 1999, Klacke wrote: klacke> klacke>Ok folks, finaly the OTP team made it with a source release through klacke>the door. I've just browsed trough the source and it looks klacke>just great. Absoulutely great. klacke> klacke>Thanks everybody for the amzing work !!! klacke> klacke> klacke>/klacke klacke> klacke>Claes Wikstrom klacke>Bluetail AB http://www.bluetail.com OK, this error came when I tried to compile r6b on Solaris 2.7: make[3]: *** No rule to make target `[...]/otp_src_R6B-0/erts/obj.beam/sparc-sun-solaris2.7/sys.o', needed by `[...]/otp_src_R6B-0/bin/sparc-sun-solaris2.7/beam'. Stop. make[3]: Leaving directory `[...]/otp_src_R6B-0/erts/emulator' make[2]: *** [opt] Error 2 (too pressed for time to try to figure this one out by myself, but if anyone has an idea...) /Uffe Ulf Wiger, Chief Designer AXD 301 Ericsson Telecom AB tfn: +46 8 719 81 95 Varuv?gen 9, ?lvsj? mob: +46 70 519 81 95 S-126 25 Stockholm, Sweden fax: +46 8 719 43 44 From sam@REDACTED Thu Nov 25 12:27:56 1999 From: sam@REDACTED (Samuel Tardieu) Date: 25 Nov 1999 12:27:56 +0100 Subject: Erlang build on Linux Message-ID: <1999-11-25-12-27-57+trackit+sam@inf.enst.fr> While building Erlang for Linux/ix86 (Debian), it looks like the beam compiler encounters an infinite loop while compiling bplus_tree.erl: make[2]: Entering directory `/home/sam/Debian/Erlang/erlang-49.1/lib' make[3]: Entering directory `/home/sam/Debian/Erlang/erlang-49.1/lib/stdlib' make[4]: Entering directory `/home/sam/Debian/Erlang/erlang-49.1/lib/stdlib/src' erlc -W -bbeam -I../include -I../../kernel/include -o../ebin bplus_tree.erl [...stopped after 45 minutes on a PII 400...] Is this a known problem? Sam -- Samuel Tardieu -- sam@REDACTED From sam@REDACTED Thu Nov 25 12:36:50 1999 From: sam@REDACTED (Samuel Tardieu) Date: 25 Nov 1999 12:36:50 +0100 Subject: Erlang build on Linux In-Reply-To: Samuel Tardieu's message of "25 Nov 1999 12:27:56 +0100" References: <1999-11-25-12-27-57+trackit+sam@inf.enst.fr> Message-ID: <1999-11-25-12-36-51+trackit+sam@inf.enst.fr> >>>>> "Sam" == Samuel Tardieu writes: Sam> While building Erlang for Linux/ix86 (Debian), it looks like the Sam> beam compiler encounters an infinite loop while compiling Sam> bplus_tree.erl: Ok, more precisions: this problem appears only when stdin is not connected. Example: % cd lib/stdlib/src % ../../../bootstrap/bin/erlc -W -bbeam -I../include -I../../kernel/include -o../ebin ets.erl [works fine] % ../../..//bootstrap/bin/erlc -W -bbeam -I../include -I../../kernel/include -o../ebin ets.erl < /dev/null [infinite loop] Sam -- Samuel Tardieu -- sam@REDACTED From luke@REDACTED Thu Nov 25 13:06:59 1999 From: luke@REDACTED (Luke Gorrie) Date: 25 Nov 1999 22:06:59 +1000 Subject: Erlang build on Linux In-Reply-To: Samuel Tardieu's message of "25 Nov 1999 12:27:56 +0100" References: <1999-11-25-12-27-57+trackit+sam@inf.enst.fr> Message-ID: <87k8n6lqqk.fsf@baked.vegetable.org> Samuel Tardieu writes: > While building Erlang for Linux/ix86 (Debian), it looks like the beam > compiler encounters an infinite loop while compiling bplus_tree.erl: > > make[2]: Entering directory `/home/sam/Debian/Erlang/erlang-49.1/lib' > make[3]: Entering directory `/home/sam/Debian/Erlang/erlang-49.1/lib/stdlib' > make[4]: Entering directory `/home/sam/Debian/Erlang/erlang-49.1/lib/stdlib/src' > erlc -W -bbeam -I../include -I../../kernel/include -o../ebin bplus_tree.erl > [...stopped after 45 minutes on a PII 400...] > > Is this a known problem? FYI, it built fine on my Debian 2.0 (slink) machine with gcc 2.7.2.3. Cheers, Luke From sam@REDACTED Thu Nov 25 13:18:14 1999 From: sam@REDACTED (Samuel Tardieu) Date: Thu, 25 Nov 1999 13:18:14 +0100 Subject: Erlang build on Linux In-Reply-To: <87k8n6lqqk.fsf@baked.vegetable.org>; from luke@vegetable.org on Thu, Nov 25, 1999 at 10:06:59PM +1000 References: <1999-11-25-12-27-57+trackit+sam@inf.enst.fr> <87k8n6lqqk.fsf@baked.vegetable.org> Message-ID: <1999-11-25-13-18-15+trackit+sam@inf.enst.fr> | FYI, it built fine on my Debian 2.0 (slink) machine with gcc 2.7.2.3. Yes, but you built it my hand, not as a Debian package (which gives the beam compiler a non-tty FD as input and a tty FD as output). The culprit seems to be in erts/emulator/sys/unix/sys.c. In start_cat(), the following piece of code loops unendlessly when connected to /dev/null: /* * Copy standard input to standard output. */ for (;;) { char sbuf[1024]; int n; int written; char *s; n = read(0, sbuf, sizeof(sbuf)); if (n == -1 && (errno == ERRNO_BLOCK || errno == EINTR)) { continue; } 0 is a descriptor in non-blocking mode. When there is nothing to read, read() returns -1 with errno equal to EAGAIN (== ERRNO_BLOCK), thus provoking a loop. I haven't read this code carefully, but I must admit that I am quite surprised at this time. From sam@REDACTED Thu Nov 25 13:43:49 1999 From: sam@REDACTED (Samuel Tardieu) Date: Thu, 25 Nov 1999 13:43:49 +0100 Subject: Erlang build on Linux In-Reply-To: <87k8n6lqqk.fsf@baked.vegetable.org>; from luke@vegetable.org on Thu, Nov 25, 1999 at 10:06:59PM +1000 References: <1999-11-25-12-27-57+trackit+sam@inf.enst.fr> <87k8n6lqqk.fsf@baked.vegetable.org> Message-ID: <1999-11-25-13-43-49+trackit+sam@inf.enst.fr> On 25/11, Luke Gorrie wrote: | FYI, it built fine on my Debian 2.0 (slink) machine with gcc 2.7.2.3. Btw Luke, what happens if you run Erlang in a terminal as: erlc file.erl < /dev/null ? Do you see the massive CPU hog caused by the beam process as well? From luke@REDACTED Thu Nov 25 13:49:37 1999 From: luke@REDACTED (Luke Gorrie) Date: 25 Nov 1999 22:49:37 +1000 Subject: Erlang build on Linux In-Reply-To: Samuel Tardieu's message of "Thu, 25 Nov 1999 13:43:49 +0100" References: <1999-11-25-12-27-57+trackit+sam@inf.enst.fr> <87k8n6lqqk.fsf@baked.vegetable.org> <1999-11-25-13-43-49+trackit+sam@inf.enst.fr> Message-ID: <87g0xulori.fsf@baked.vegetable.org> Samuel Tardieu writes: > Btw Luke, what happens if you run Erlang in a terminal as: > > erlc file.erl < /dev/null > > ? > > Do you see the massive CPU hog caused by the beam process as well? Yep. From sam@REDACTED Thu Nov 25 14:00:12 1999 From: sam@REDACTED (Samuel Tardieu) Date: Thu, 25 Nov 1999 14:00:12 +0100 Subject: [PATCH] Handling of stdin as non-tty and stdout as tty (R6B-0) Message-ID: <1999-11-25-14-00-12+trackit+sam@inf.enst.fr> The following patch fixes a huge CPU hog when the standard input of the Erlang process is not a tty while the standard output is. ERRNO_BLOCK is used to unblock the "cat" process; the code in the release would however continue to try to "cat" the data. Sam --- erts/emulator/sys/unix/sys.c.orig Thu Nov 25 13:37:04 1999 +++ erts/emulator/sys/unix/sys.c Thu Nov 25 13:56:36 1999 @@ -1096,7 +1096,7 @@ char *s; n = read(0, sbuf, sizeof(sbuf)); - if (n == -1 && (errno == ERRNO_BLOCK || errno == EINTR)) { + if (n == -1 && errno == EINTR) { continue; } else if (n <= 0) { exit(0); From cvrincea@REDACTED Fri Nov 26 04:27:41 1999 From: cvrincea@REDACTED (Costel Vrinceanu [4692]) Date: Thu, 25 Nov 1999 19:27:41 -0800 Subject: 4.9.1 questions/problems Message-ID: <199911260327.TAA13931@taurus.glenvan.glenayre.com> Hi. ------------------------------------------------------------------------------ In otp_src_R6B-0.tar.gz, in lib/Makefile, 'ssl' should probably be replaced with 'sasl' ? Same thing for otp_src_doc_html_R6B-0.tar.gz ? ------------------------------------------------------------------------------ If starting two nodes on the same host, n1@REDACTED, n2@REDACTED: net_adm:world_list([somehost]). returns => [] 'epmd -names' reports correctly: epmd: up and running on port 4369 with data: name n1 at port 40575 name n2 at port 40571 I tried to step through net_adm , erl_epmd , inet_tcp but the debugger will feed the macro definition of ?erlang_daemon_port (=4369) as the atom '4369' instead of the integer 4369, so inet_tcp:connect/3 will fail with badarg Is there another way to get to the bottom of this (other than sprinkling the code with printfs/error_logger)? (Trying the same thing on the 4.7.1 release on the same machine works correctly) ------------------------------------------------------------------------------ Thanks, costel From magnus@REDACTED Fri Nov 26 08:34:30 1999 From: magnus@REDACTED (Magnus =?iso-8859-1?Q?Fr=F6berg?=) Date: Fri, 26 Nov 1999 08:34:30 +0100 Subject: 4.9.1 questions/problems References: <199911260327.TAA13931@taurus.glenvan.glenayre.com> Message-ID: <383E3806.9D3580F9@bluetail.com> "Costel Vrinceanu [4692]" wrote: > > If starting two nodes on the same host, n1@REDACTED, n2@REDACTED: > > net_adm:world_list([somehost]). > > returns => [] > > 'epmd -names' reports correctly: > epmd: up and running on port 4369 with data: > name n1 at port 40575 > name n2 at port 40571 > > I tried to step through net_adm , erl_epmd , inet_tcp but the debugger will > feed the macro definition of ?erlang_daemon_port (=4369) as the atom '4369' > instead of the integer 4369, so inet_tcp:connect/3 will fail with badarg > > Is there another way to get to the bottom of this (other than sprinkling the > code with printfs/error_logger)? > > (Trying the same thing on the 4.7.1 release on the same machine works correctly) > Hi, it was a problem with usage of new syntax I guess ;-) Wow, I like it, realy missed this syntax before. change erl_epmd:parse_line/1 to: parse_line("name " ++ Buf0) -> case parse_name(Buf0, []) of {Name, Buf1} -> case Buf1 of "at port " ++ Buf2 -> case catch list_to_integer(Buf2) of {'EXIT', _} -> error; Port -> {ok, {Name, Port}} end; _ -> error end; error -> error end; parse_line(_) -> error. I changed: "name " ++ Buf0 was ["name " ++ Buf0] "at port " ++ Buf2 was ["at port " ++ Buf2] /Magnus -- Magnus Fr?berg Tel: +46 (0)8 692 22 06 Bluetail AB Email: magnus@REDACTED Hantverkargatan 78 WWW: http://www.bluetail.com SE-112 38 Stockholm, SWEDEN From kenneth@REDACTED Fri Nov 26 11:35:32 1999 From: kenneth@REDACTED (Kenneth Lundin) Date: Fri, 26 Nov 1999 11:35:32 +0100 Subject: NEW release of Open-source Erlang Message-ID: <383E6274.583584E0@erix.ericsson.se> The new version of Open-source Erlang is released ------------------------------------------------- We are proud to announce the long awaited new release of Open-source Erlang. It has been available at the Open-source Erlang web-site since 24 November 1999. The URL of the open-source Erlang web site is: http://www.erlang.org At the web-site you can get all information about the new version and can of course download your own copy of open-source Erlang. Erlang is a programming language designed at the Ericsson Computer Science Laboratory. Ericsson Utvecklings AB is now responsible for development and maintenance of both open-source Erlang and the commercial version Erlang/OTP. Open-source Erlang is being released to help encourage the spread of Erlang outside Ericsson. We are releasing the entire source code and documentation of the Erlang system free of charge (see Erlang Public License at the web-site). Some of the main components of the Erlang system are: - the Erlang runtime system and compiler. - Mnesia, a distributed Database Management System. - a Corba 2.2 compliant ORB. - an SNMP V3 agent. - an HTTP-server. - an ASN.1 compiler. - extensive libraries of code for building robust fault tolerant distributed applications. The above software is continually tested and used in numerous Ericsson products such as the new Ericsson ATM switch AXD 301. /The Erlang product development team From esanchez@REDACTED Fri Nov 26 18:48:16 1999 From: esanchez@REDACTED (Enrique Sanchez Vela) Date: Fri, 26 Nov 1999 11:48:16 -0600 Subject: installing erlang on aix 4.3.2 Message-ID: <383EC7E0.AB65DBF2@citi.com.mx> hi, I am trying to install erlang otp_src_R6B-0 on aix 4.3.2 with gcc and gnu make 3.77 when I run configure I get some error messages and I wonder if I made somethig wrong even I dont see were I did it. the error messages are.... ------------------------------------------------------------------------------------------------- creating /usr/lpp/ssp/otp_src_R6B-0/erts/../lib/ic/c_src/powerpc-ibm-aix4.3.2.0/Makefile creating /usr/lpp/ssp/otp_src_R6B-0/erts/../lib/os_mon/c_src/powerpc-ibm-aix4.3.2.0/Makefile mkdir: cannot access directory /usr/lpp/ssp/otp_src_R6B-0/erts/../lib/ssl/c_src. /usr/lpp/ssp/otp_src_R6B-0/erts/../lib/ssl/c_src: No such file or directory creating /usr/lpp/ssp/otp_src_R6B-0/erts/../lib/ssl/c_src/powerpc-ibm-aix4.3.2.0/Makefile sed: Cannot find or open file /usr/lpp/ssp/otp_src_R6B-0/erts/../lib/ssl/c_src/Makefile.in. No such file or directory /usr/lpp/ssp/otp_src_R6B-0/erts/autoconf/powerpc-ibm-aix4.3.2.0/config.status[217]: /usr/lpp/ssp/otp_src_R 6B-0/erts/../lib/ssl/c_src/powerpc-ibm-aix4.3.2.0/Makefile: cannot create creating /usr/lpp/ssp/otp_src_R6B-0/erts/../lib/crypto/c_src/powerpc-ibm-aix4.3.2.0/Makefile -------------------------------------------------------------------------------------------- and ..... ------------------------------------------------------------------------------------------------ checking for sys/ioctl.h... yes checking for sys/filio.h... no checking FIONBIO vs. O_NONBLOCK for nonblocking I/O... FIONBIO /usr/lpp/ssp/otp_src_R6B-0/lib/gs/c_src/lib/tcl7.6/unix/configure[4741]: elseif: not found updating cache ../../../../../.././config.cache creating ./config.status creating Makefile creating tclConfig.sh ---------------------------------------------------------------------------------------------------- I am trying solaris now, lets see what happens anyclues are appreciated. Enrique Sanchez Vela. esanchez@REDACTED From klacke@REDACTED Fri Nov 26 23:30:46 1999 From: klacke@REDACTED (Klacke) Date: Fri, 26 Nov 1999 23:30:46 +0100 Subject: installing erlang on aix 4.3.2 In-Reply-To: <383EC7E0.AB65DBF2@citi.com.mx> References: <383EC7E0.AB65DBF2@citi.com.mx> Message-ID: <19991126233046.A9072@bluetail.com> On Fri, Nov 26, 1999 at 11:48:16AM -0600, Enrique Sanchez Vela wrote: > hi, > > I am trying to install erlang otp_src_R6B-0 on aix 4.3.2 with gcc and > gnu make 3.77 > when I run configure I get some error messages and I wonder if I made > somethig wrong even I dont see were I did it. > > the error messages are.... > ------------------------------------------------------------------------------------------------- To my knowledge, you are the first one trying out Erlang on modern AIX's. I remember porting Erlang to aix some 7-8 years ago, but since then I don't think anybody has ever run Erlang on aix. Thus, a number of unknown troubles may oocur there, however .. > > creating > /usr/lpp/ssp/otp_src_R6B-0/erts/../lib/ic/c_src/powerpc-ibm-aix4.3.2.0/Makefile > > creating > /usr/lpp/ssp/otp_src_R6B-0/erts/../lib/os_mon/c_src/powerpc-ibm-aix4.3.2.0/Makefile > > mkdir: cannot access directory > /usr/lpp/ssp/otp_src_R6B-0/erts/../lib/ssl/c_src. > /usr/lpp/ssp/otp_src_R6B-0/erts/../lib/ssl/c_src: No such file or > directory > creating > /usr/lpp/ssp/otp_src_R6B-0/erts/../lib/ssl/c_src/powerpc-ibm-aix4.3.2.0/Makefile > > sed: Cannot find or open file > /usr/lpp/ssp/otp_src_R6B-0/erts/../lib/ssl/c_src/Makefile.in. > No such file or directory > /usr/lpp/ssp/otp_src_R6B-0/erts/autoconf/powerpc-ibm-aix4.3.2.0/config.status[217]: > /usr/lpp/ssp/otp_src_R > 6B-0/erts/../lib/ssl/c_src/powerpc-ibm-aix4.3.2.0/Makefile: cannot > create > creating > /usr/lpp/ssp/otp_src_R6B-0/erts/../lib/crypto/c_src/powerpc-ibm-aix4.3.2.0/Makefile > These arror messages are due to a lacking ssl application. Here's the story on ssl (as I know it) 1. The OTP team did an ssl implementation. 2. The implemenation is open source. 3. It cannot be exported out of Sweden without knowing which country it's going to. 4. Swedish law lists some 139 counties where it is ok to export. 5. www access goes to more than those 139 counties. So, in order to get the ssl application we need to get it some other way, like walking into the OTP office with or DAT tape or something, I dont know. Nevertheless, the above error can be safely ignored since they are just related to ssl. Weird thing though, I dont get the above error messages from configure on FreeBSD and Linux ?? /klacke Claes Wikstrom Bluetail AB http://www.bluetail.com From esanchez@REDACTED Fri Nov 26 23:55:51 1999 From: esanchez@REDACTED (Enrique Sanchez Vela) Date: Fri, 26 Nov 1999 16:55:51 -0600 Subject: installing erlang on aix 4.3.2 References: <383EC7E0.AB65DBF2@citi.com.mx> <19991126233046.A9072@bluetail.com> Message-ID: <383F0FF6.8D855C10@citi.com.mx> I've paid a little more attention to the error messages the one related to the ssl is ok a and the second one it is related to building tcl7.6 on aix. I had to manually change the Makefile in order to be able to get it to compile but it is now ok (tcl), regarding Erland I just started to get it going after changing a couple of fucntion types to adhere to their prototype definition in the *.h files, guess it will take a couple of source files but I am confident I will get it moving soon. I am just a little bit confused on the structures definition, acctually the pointers..i.e. typedef struct { int vsize; /* length of vectors */ int size; /* total size in bytes */ SysIOVec* iov; DriverBinary** binv; } ErlIOVec; seems unusual to me, but if it is the same as of.... typedef struct { int vsize; /* length of vectors */ int size; /* total size in bytes */ SysIOVec *iov; DriverBinary **binv; } ErlIOVec; I dont care as long as it works. thanks, Enrique. Klacke wrote: > On Fri, Nov 26, 1999 at 11:48:16AM -0600, Enrique Sanchez Vela wrote: > > hi, > > > > I am trying to install erlang otp_src_R6B-0 on aix 4.3.2 with gcc and > > gnu make 3.77 > > when I run configure I get some error messages and I wonder if I made > > somethig wrong even I dont see were I did it. > > > > the error messages are.... > > ------------------------------------------------------------------------------------------------- > > To my knowledge, you are the first one trying out Erlang on modern > AIX's. I remember porting Erlang to aix some 7-8 years ago, but since > then I don't think anybody has ever run Erlang on aix. > > Thus, a number of unknown troubles may oocur there, however .. > > > > > creating > > /usr/lpp/ssp/otp_src_R6B-0/erts/../lib/ic/c_src/powerpc-ibm-aix4.3.2.0/Makefile > > > > creating > > /usr/lpp/ssp/otp_src_R6B-0/erts/../lib/os_mon/c_src/powerpc-ibm-aix4.3.2.0/Makefile > > > > mkdir: cannot access directory > > /usr/lpp/ssp/otp_src_R6B-0/erts/../lib/ssl/c_src. > > /usr/lpp/ssp/otp_src_R6B-0/erts/../lib/ssl/c_src: No such file or > > directory > > creating > > /usr/lpp/ssp/otp_src_R6B-0/erts/../lib/ssl/c_src/powerpc-ibm-aix4.3.2.0/Makefile > > > > sed: Cannot find or open file > > /usr/lpp/ssp/otp_src_R6B-0/erts/../lib/ssl/c_src/Makefile.in. > > No such file or directory > > /usr/lpp/ssp/otp_src_R6B-0/erts/autoconf/powerpc-ibm-aix4.3.2.0/config.status[217]: > > /usr/lpp/ssp/otp_src_R > > 6B-0/erts/../lib/ssl/c_src/powerpc-ibm-aix4.3.2.0/Makefile: cannot > > create > > creating > > /usr/lpp/ssp/otp_src_R6B-0/erts/../lib/crypto/c_src/powerpc-ibm-aix4.3.2.0/Makefile > > > > These arror messages are due to a lacking ssl application. > > Here's the story on ssl (as I know it) > 1. The OTP team did an ssl implementation. > 2. The implemenation is open source. > 3. It cannot be exported out of Sweden without knowing which country it's > going to. > 4. Swedish law lists some 139 counties where it is ok to export. > 5. www access goes to more than those 139 counties. > > So, in order to get the ssl application we need to get it some other way, > like walking into the OTP office with or DAT tape or something, > I dont know. > > Nevertheless, the above error can be safely ignored since > they are just related to ssl. > > Weird thing though, I dont get the above error messages from > configure on FreeBSD and Linux ?? > > /klacke > > Claes Wikstrom > Bluetail AB http://www.bluetail.com From per@REDACTED Sat Nov 27 00:37:39 1999 From: per@REDACTED (Per Hedeland) Date: Sat, 27 Nov 1999 00:37:39 +0100 (MET) Subject: erlang otp r6b released Message-ID: <199911262337.AAA01306@super.du.uab.ericsson.se> Ulf Wiger wrote: >OK, this error came when I tried to compile r6b on Solaris 2.7: > >make[3]: *** No rule to make target >`[...]/otp_src_R6B-0/erts/obj.beam/sparc-sun-solaris2.7/sys.o', >needed by >`[...]/otp_src_R6B-0/bin/sparc-sun-solaris2.7/beam'. >Stop. >make[3]: Leaving directory >`[...]/otp_src_R6B-0/erts/emulator' >make[2]: *** [opt] Error 2 Weird... - it built fine for me on Solaris 7 (well it failed in orber, but that was due to an incomplete g++ installation). The rule it doesn't find should be in erts/emulator/sparc-sun-solaris2.7/Makefile, looking like this: $(OBJDIR)/%.o: sys/$(OSTYPE)/%.c $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@ - and OSTYPE should be set to 'unix' (of course) earlier in the file. What does 'make --version' say (it seems you have GNU make installed as 'make')? --Per Hedeland per@REDACTED From jhague@REDACTED Sat Nov 27 06:01:17 1999 From: jhague@REDACTED (James Hague) Date: Fri, 26 Nov 99 23:01:17 -0600 Subject: Why is Erlang so large? Message-ID: <199911270507.XAA30497@babba.advancenet.net> The tar.gz file for the latest Open Source Erlang release is close to 7 megabytes. Why so large? 7 MB of zipped source code is _huge_. This is more for curiosity's sake than a real complaint :) though it would be nice to have a smaller core download, with add-ons for mnesia and such. James From dsolaz@REDACTED Sat Nov 27 19:42:41 1999 From: dsolaz@REDACTED (Daniel Solaz) Date: Sat, 27 Nov 1999 19:42:41 +0100 Subject: Why is Erlang so large? References: <199911270507.XAA30497@babba.advancenet.net> Message-ID: <38402621.4772C44B@sistelcom.com> James Hague wrote: >This is more for curiosity's sake than a real complaint :) though it >would be nice to have a smaller core download, with add-ons for mnesia >and such. I agree. The previous base+OTP+graphics scheme was fine. I'm not interested in the graphics part, and 7 megabytes is a bit on the big side for us PPP users. However, IIRC Java 2 is over 20 megabytes and IMO it doesn't offer as much as Erlang/OTP does. -Daniel From per@REDACTED Sun Nov 28 14:59:36 1999 From: per@REDACTED (Per Hedeland) Date: Sun, 28 Nov 1999 14:59:36 +0100 (MET) Subject: [PATCH] Handling of stdin as non-tty and stdout as tty (R6B-0) Message-ID: <199911281359.OAA16175@super.du.uab.ericsson.se> Samuel Tardieu wrote: >The following patch fixes a huge CPU hog when the standard input of the >Erlang process is not a tty while the standard output is. > >ERRNO_BLOCK is used to unblock the "cat" process; the code in the release >would however continue to try to "cat" the data. Thanks a lot for tracking this down - there have been some reports about this "looping process", but the exact circumstances haven't been pinned down before - and it doesn't happen on Solaris or other Unices that have the "true" O_NDELAY semantics (a read() that would block returns 0 - pretty useless in the "normal" case). The real problem is of course the very existence of this "cat" process though - it can't be described as anything other than a kludge, and as you can see from the comments in the code it has had a history of problems, and I'm sure we haven't seen the last one. If someone could come up with a better way to solve the underlying problem, I think it would be very appreciated. --Per Hedeland per@REDACTED PS: The underlying problem, in case it isn't obvious, is that the Erlang runtime system wants to do all its I/O in non-blocking mode - otherwise the whole system could hang if e.g. a port program misbehaved - and that this doesn't work well when you interactively do something like: % some_program | erl In this case, it used to be that 'erl' set its stdout (i.e. the user's tty) in non-blocking mode - and this would apply also to 'some_program''s stdin (the same tty), which 'some_program' typically wasn't happy with (i.e. it would just see an error on read() and give up). The "solution" was to internally interpose the "cat" process, making the actual picture become: % some_program | erl | "cat" - in which case 'erl' can happily set its stdout (which is now a pipe) in non-blocking mode without affecting 'some_program' (and "cat"'s stdout would be in blocking mode, but that's OK). The primary alternative to using the "cat" process is to simply not set stdout in non-blocking mode in the "problematic" case(s) - this has the obvious disadvantage that the system could hang if it needed to send something to stdout and this wasn't possible for some reason (e.g. the user had hit ^S); also reliably detecting the "problematic" case(s) isn't entirely trivial. --Per From per@REDACTED Sun Nov 28 15:11:39 1999 From: per@REDACTED (Per Hedeland) Date: Sun, 28 Nov 1999 15:11:39 +0100 (MET) Subject: installing erlang on aix 4.3.2 Message-ID: <199911281411.PAA16393@super.du.uab.ericsson.se> Enrique Sanchez Vela wrote: >I had to manually change the Makefile in order to be able to get it to compile but it is now ok (tcl), >regarding Erland I just started to get it going after changing a couple of fucntion types to adhere to >their prototype definition in the *.h files, guess it will take a couple of source files but I am >confident I will get it moving soon. Great - please report what you had to change (to erlang-maintainers is probably sufficient) once you have it running. In particular it would be interesting to know if you get the distribution working, there are (or at least were in the old version of AIX that Klacke ported to) some issues with non-blocking mode on sockets in AIX... > I am just a little bit confused on the structures definition, acctually the pointers..i.e. >typedef struct { > int vsize; /* length of vectors */ > int size; /* total size in bytes */ > SysIOVec* iov; > DriverBinary** binv; >} ErlIOVec; > > seems unusual to me, but if it is the same as of.... >typedef struct { > int vsize; /* length of vectors */ > int size; /* total size in bytes */ > SysIOVec *iov; > DriverBinary **binv; >} ErlIOVec; > > I dont care as long as it works. They're equivalent, basically it's a matter of taste (my personal taste agrees with yours by the way:-). --Per Hedeland per@REDACTED From per@REDACTED Sun Nov 28 15:27:16 1999 From: per@REDACTED (Per Hedeland) Date: Sun, 28 Nov 1999 15:27:16 +0100 (MET) Subject: Why is Erlang so large? Message-ID: <199911281427.PAA16613@super.du.uab.ericsson.se> James Hague wrote: >The tar.gz file for the latest Open Source Erlang release is close to 7 >megabytes. Why so large? 7 MB of zipped source code is _huge_. Yeah, there's a lot of source code in there...:-) >This is more for curiosity's sake than a real complaint :) though it >would be nice to have a smaller core download, with add-ons for mnesia >and such. Well, there was some discussion of this before the release, and basically the consensus was that 7 MB wasn't too bad in this day and age (the current distribution of emacs is 14 MB, and gcc is 12 MB:-), and that it would be an acceptable way to avoid the hassle of dealing with multiple packages (at both ends - it may be confusing for users to figure out what they need too). But maybe the decision should be reconsidered... --Per Hedeland per@REDACTED From per@REDACTED Sun Nov 28 15:38:59 1999 From: per@REDACTED (Per Hedeland) Date: Sun, 28 Nov 1999 15:38:59 +0100 (MET) Subject: 4.9.1 questions/problems Message-ID: <199911281438.PAA16734@super.du.uab.ericsson.se> "Costel Vrinceanu [4692]" wrote: >In otp_src_R6B-0.tar.gz, in lib/Makefile, >'ssl' should probably be replaced with 'sasl' ? > >Same thing for otp_src_doc_html_R6B-0.tar.gz ? No, see Klacke's (basically accurate I believe) description of the situation with the 'ssl' application/module, and why it can't be included in the generally available distribution (it actually says so in the docs too...). --Per Hedeland per@REDACTED From jhague@REDACTED Sun Nov 28 21:07:43 1999 From: jhague@REDACTED (James Hague) Date: Sun, 28 Nov 1999 14:07:43 -0600 (EST) Subject: Why is Erlang so large? In-Reply-To: <199911281427.PAA16613@super.du.uab.ericsson.se> Message-ID: On Sun, 28 Nov 1999, Per Hedeland wrote: > > Well, there was some discussion of this before the release, and > basically the consensus was that 7 MB wasn't too bad in this day and age > (the current distribution of emacs is 14 MB, and gcc is 12 MB:-), and > that it would be an acceptable way to avoid the hassle of dealing with > multiple packages (at both ends - it may be confusing for users to > figure out what they need too). But maybe the decision should be > reconsidered... It's not just 7MB. It's 7MB for the core source, then ~3MB for the documentation. Or 13MB for the Windows version without sources. In general, I agree that 10MB isn't overly large in this day of 100MB patches for Visual C :) But Erlang is a relatively tiny system. It's text-based. There are hardly any audio-visual files included in the core 7MB. As such, I'm somewhat surprised that the latest Erlang system for Windows expands to 24 megabytes. I do think it would be useful to draw a line between the concurrent functional language Erlang and the OTP, and not just because the average user won't need megabytes of Mnesia related files. I think Erlang is a fantastic general purpose language, and I'd encourage people to give it a try for that reason alone. But such a person, upon downloading it, is going to be presented with something that looks like a system that can only be used for writing telecom applications. Trimming down the current distribution would be an interesting project, I think. James From marc@REDACTED Sun Nov 28 22:55:29 1999 From: marc@REDACTED (User &) Date: Sun, 28 Nov 1999 16:55:29 -0500 Subject: Why is Erlang so large? In-Reply-To: ; from jhague@dadgum.com on Sun, Nov 28, 1999 at 02:07:43PM -0600 References: <199911281427.PAA16613@super.du.uab.ericsson.se> Message-ID: <19991128165529.B36642@oscar.noc.cv.net> On Sun, Nov 28, 1999 at 02:07:43PM -0600, James Hague wrote: > On Sun, 28 Nov 1999, Per Hedeland wrote: > > > > Well, there was some discussion of this before the release, and > > basically the consensus was that 7 MB wasn't too bad in this day and age > > (the current distribution of emacs is 14 MB, and gcc is 12 MB:-), and > > that it would be an acceptable way to avoid the hassle of dealing with > > multiple packages (at both ends - it may be confusing for users to > > figure out what they need too). But maybe the decision should be > > reconsidered... > > It's not just 7MB. It's 7MB for the core source, then ~3MB for the > documentation. Or 13MB for the Windows version without sources. > > In general, I agree that 10MB isn't overly large in this day of 100MB > patches for Visual C :) But Erlang is a relatively tiny system. It's > text-based. There are hardly any audio-visual files included in the core > 7MB. As such, I'm somewhat surprised that the latest Erlang system for > Windows expands to 24 megabytes. > > I do think it would be useful to draw a line between the concurrent > functional language Erlang and the OTP, and not just because the average > user won't need megabytes of Mnesia related files. I think Erlang is a > fantastic general purpose language, and I'd encourage people to give it a > try for that reason alone. But such a person, upon downloading it, is > going to be presented with something that looks like a system that can > only be used for writing telecom applications. No I think that erlang and mensa/otp would be a great platform to build an openview clone/replacement. And/or an ITO, applacation/system watcher and responder, replacement. For example if var is over 95% delete/move all syslog files that are over 3 days old is the kind of thing you can do in ITO. Both of these use snmp to communicate, by polling and traps, and both need a database. And ITO is basicly a rule based expert system which would fit nice with erlang. With that said partitioning it might not be a bad idea, just to make life easier in the new people, like myself. A ports system like what is in freebsd might also apply or a cpan(perl thing) would be nice. For the uninitiated what both do is get and install things on your system in a recursive fashion. So if you wanted to install something that depended on 5 packages and one of those 5 packages needed 2 others here is what would happen: 1: get the package you want, erlang_openview for example(hint hint) 2: check for all packages that this one requires, if they exist then build the package 3: for each package that is not on the system do step 1 and 2 When it works it is fun to watch. And when something like this is in place it is great for reuse. marc > > Trimming down the current distribution would be an interesting project, I > think. > > James > From dne@REDACTED Mon Nov 29 02:04:02 1999 From: dne@REDACTED (Daniel Neri) Date: Mon, 29 Nov 1999 02:04:02 +0100 Subject: A couple of patches for OTP R6B Message-ID: <87vh6mrtvh.fsf@nowhere.mayonnaise.net> Hi, I'm attaching the results of my efforts to build the R6B release on OpenBSD 2.5. The dynamically loaded drivers contained in the Runtime Tools application would not link since the source files were not compiled with the generate-position-independent-code option to (g)cc. My patch fixes thing so they compile (on my platform), but it's not been tested. Also, maybe it should be noted somewhere in the README that some parts of OTP (i.e. etk) won't compile without pthreads (why?). Enjoy, /Daniel -------------- next part -------------- A non-text attachment was scrubbed... Name: otp-r6b.patch Type: text/x-patch Size: 3365 bytes Desc: OTP R6B patches URL: -------------- next part -------------- -- Daniel Neri dne@REDACTED From geoff@REDACTED Mon Nov 29 04:13:52 1999 From: geoff@REDACTED (Geoff Wong) Date: Mon, 29 Nov 1999 14:13:52 +1100 (EST) Subject: otp_src_R6B-0 install on Redhat 6.1 Message-ID: <199911290313.DAA04695@gecko.serc.rmit.edu.au> People have probably commented upon this (but I finally got around to subscribing to this list just now). Anyway I had lots of problems with the OTP R6B install on Redhat 6.1. Here's a partial list that may (or may not!) help others: 0. Multiple Erlangs on one machine causes the "Install" script to barf. Thoroughly nuke your 47.4.1 install or use a different prefix path. 1. There's a path problem with the Java builds (an extra space at the end of some directory). I didn't bother to fix this since I don't care about the Java stuff. Should be an easy fix. 2. Many .h and .a files didn't seem to be installed properly in /usr/local/lib/erlang/usr/include & /usr/local/lib/erlang/usr/lib respectively. 3. The most serious problem for me was the "beam" emulator wasn't linked with the "-rdynamic" meaning imported functions aren't exported to loadable ".so" files causing them to fail. Probably an autoconf/configure problem; It seems the DEXPORT variable wasn't properly set for RH6.1. (I manually patched it into the makefile just to get it up and running). As far as running the system - it appears to be reasonably happy with existing code. Although I'm getting a problem with mnemosyme queries failing in lists:keysearch() somewhere (stuff that working in 47.4.1 isn't working now). More on that problem when I investigate it more deeply. Geoff geoff@REDACTED From joe@REDACTED Mon Nov 29 14:07:27 1999 From: joe@REDACTED (Joe Armstrong) Date: Mon, 29 Nov 1999 14:07:27 +0100 (CET) Subject: Announce: Stand alone Erlang kit pre-release In-Reply-To: <19991128165529.B36642@oscar.noc.cv.net> Message-ID: In case you missed it, the last open source contained stuff to make "stand alone Erlang" - this was undocumented. I have used this stuff to make erlang "lite" The "lite" distribution has three files beam_evm 472988 bytes - erlang VM ecc_base 435991 bytes - erlang compiler elink 9250 bytes - erlang linker (tarred and zipped they are 420 KB) Using these we can compile hello.erl > ecc_base hello.erl To link: > elink -o hello -m hello -s hello main This makes a stand alone executable hello (494 bytes) Executing hello from the unix prompt is very fast (<0.01 secs round trip time) How to do this is documented in http://www.bluetail.com/~joe/sae/sae.html BTW - I'd be obliged if you did not spead this widely *yet* - before announcing this I'd like to get the stdin/out bug fixed. The program ecat.erl (in the sae.tgz tarball) doesn't work - I'd like a fix for this *before* announcing this outside this list. BTW - seems like Erlang is now in the perl, tcl, bash league - it might even be smaller and faster :-) /Joe -- Joe Armstrong, Bluetail AB, tel: +46 8 692 22 11 Hantverkargatan 78, fax: +46 8 654 70 71 SE-112 38 Stockholm, Sweden info: www.bluetail.com From per@REDACTED Mon Nov 29 18:38:38 1999 From: per@REDACTED (Per Hedeland) Date: Mon, 29 Nov 1999 18:38:38 +0100 (MET) Subject: Broken Windows version in R6B-0 Message-ID: <199911291738.SAA05448@aalborg.du.uab.ericsson.se> Hello, Unfortunately a pre-release build of the Windows version of R6B-0 was accidentally released initially - it had several problems, e.g. the documentation wasn't installed. The correct version is in place since Nov 29, 15:00 GMT - if you downloaded before that, please uninstall that version and get the new one instead. --Per Hedeland per@REDACTED From Neil.Matthew@REDACTED Mon Nov 29 19:07:11 1999 From: Neil.Matthew@REDACTED (Neil.Matthew@REDACTED) Date: Mon, 29 Nov 1999 18:07:11 -0000 Subject: Tracing broken in R6B-0? Message-ID: <59B3E9BF7253D31187EA0008C724033821DB3B@U607ST03> Hi, I am new to Erlang and trying out the R6B-0 on Linux and Windows. I have managed to build the Linux version (after a couple of tweaks, that I see the maintainers now have figured out - PosixStr.c). I tried to work through the Geeting Started part of the documentation and have been unable to see a simple function trace of the factorial example in either the Linux or Windows builds. Has tracing broken in R6B-0 or does it work differently to the documentation? I'd be grateful for a steer in the right direction. Neil From cklin@REDACTED Tue Nov 30 00:52:03 1999 From: cklin@REDACTED (Chuan-kai Lin) Date: Tue, 30 Nov 1999 07:52:03 +0800 Subject: Problems building R6B with Linux/glibc 2.1 Message-ID: <19991130075203.A30273@oink.cc.ntu.edu.tw> Hello, I have been unable to build Erlang R6B-0 under Linux with glibc 2.1 due to the following errors: make[4]: Entering directory `/home/cklin/build/otp_src_R6B-0/lib/etk/c_src' LD_LIBRARY_PATH=i686-pc-linux-gnu:/usr/X11R6/lib:; \ export LD_LIBRARY_PATH; \ gcc -shared -o /home/cklin/build/otp_src_R6B-0/lib/etk/priv/bin/i68 6-pc-linux-gnu/etk_drv.so i686-pc-linux-gnu/tclParseCmd..o i686-pc-linux-gn u/panic..o i686-pc-linux-gnu/regexp..o i686-pc-linux-gnu/tclAsync..o i686-p c-linux-gnu/tclBasic..o i686-pc-linux-gnu/tclCkalloc..o (etc. etc. skip.) tkTextBTree..o i686-pc-linux-gnu/tkTextDisp..o i686-pc-linux-gnu/tkTextInde x..o i686-pc-linux-gnu/tkTextMark..o i686-pc-linux-gnu/tkTextTag..o i686-pc -linux-gnu/tkTextWind..o i686-pc-linux-gnu/tkstr..o i686-pc-linux-gnu/etkMi sc..o i686-pc-linux-gnu/etk_drv..o \ -lpthread -L/usr/X11R6/lib -lX11 -ldl -lm -lc -lieee -lm -lc /usr/bin/ld: /home/cklin/build/otp_src_R6B-0/lib/etk/priv/bin/i686-pc-linux -gnu/etk_drv.so: undefined versioned symbol name _LIB_VERSION@@GLIBC_2.0 /usr/bin/ld: failed to set dynamic section sizes: Bad value collect2: ld returned 1 exit status The machine is an up-to-date Debian potato system. Any ideas? -- Chuan-kai Lin From marc@REDACTED Tue Nov 30 01:12:00 1999 From: marc@REDACTED (User &) Date: Mon, 29 Nov 1999 19:12:00 -0500 Subject: Problems building R6B with Linux/glibc 2.1 In-Reply-To: <19991130075203.A30273@oink.cc.ntu.edu.tw>; from cklin@oink.cc.ntu.edu.tw on Tue, Nov 30, 1999 at 07:52:03AM +0800 References: <19991130075203.A30273@oink.cc.ntu.edu.tw> Message-ID: <19991129191200.A38405@oscar.noc.cv.net> On Tue, Nov 30, 1999 at 07:52:03AM +0800, Chuan-kai Lin wrote: > Hello, > > I have been unable to build Erlang R6B-0 under Linux with glibc 2.1 > due to the following errors: > > make[4]: Entering directory `/home/cklin/build/otp_src_R6B-0/lib/etk/c_src' > LD_LIBRARY_PATH=i686-pc-linux-gnu:/usr/X11R6/lib:; \ > export LD_LIBRARY_PATH; \ > gcc -shared -o /home/cklin/build/otp_src_R6B-0/lib/etk/priv/bin/i68 > 6-pc-linux-gnu/etk_drv.so i686-pc-linux-gnu/tclParseCmd..o i686-pc-linux-gn > u/panic..o i686-pc-linux-gnu/regexp..o i686-pc-linux-gnu/tclAsync..o i686-p > c-linux-gnu/tclBasic..o i686-pc-linux-gnu/tclCkalloc..o (etc. etc. skip.) > tkTextBTree..o i686-pc-linux-gnu/tkTextDisp..o i686-pc-linux-gnu/tkTextInde > x..o i686-pc-linux-gnu/tkTextMark..o i686-pc-linux-gnu/tkTextTag..o i686-pc > -linux-gnu/tkTextWind..o i686-pc-linux-gnu/tkstr..o i686-pc-linux-gnu/etkMi > sc..o i686-pc-linux-gnu/etk_drv..o \ > -lpthread -L/usr/X11R6/lib -lX11 -ldl -lm -lc -lieee -lm -lc > /usr/bin/ld: /home/cklin/build/otp_src_R6B-0/lib/etk/priv/bin/i686-pc-linux > -gnu/etk_drv.so: undefined versioned symbol name _LIB_VERSION@@GLIBC_2.0 > /usr/bin/ld: failed to set dynamic section sizes: Bad value > collect2: ld returned 1 exit status > > The machine is an up-to-date Debian potato system. Any ideas? > > -- Chuan-kai Lin I had zero problems with freebsd 3.3-stable and the new release. Try freebsd? marc From geoff@REDACTED Tue Nov 30 06:12:22 1999 From: geoff@REDACTED (Geoff Wong) Date: Tue, 30 Nov 1999 16:12:22 +1100 (EST) Subject: otp R6.0B0 Message-ID: <199911300512.FAA31271@gecko.serc.rmit.edu.au> Hi, It seems some semantics have changed in the new open source release (apparently in the release notes; but too obscure for me to find and understand). I'm having problems with the following function (it causes runtime errors): not_started_servers(Ss) -> db:eval(query [T || T <- table(template), not S <- Ss, C=S.cluster, T.cluster=C#cluster.name, OriginT=S#server.template, T.node=OriginT#template.node] end). It worked fine under the previous release. Anyway, I tried the following (as suggested by Hakan Mattsson at CSlab): not_started_servers(Ss) -> db:eval(query [T || T <- table(template), not lists:member(S, Ss), C=3DS.cluster, T.cluster=3DC#cluster.name, OriginT=3DS#server.template, T.node=3DOriginT#template.node] end). This doesn't even compile. So I tried the following: not_started_servers(Ss) -> F=fun(X,Y)-> case lists:member(X,Y) of true -> false; false -> true end end, db:eval(query [T || T <- table(template), F(S, Ss), C=S.cluster, T.cluster=C#cluster.name, OriginT=S#server.template, T.node=OriginT#template.node] end). This also results in a runtime crash too (but I might've got the fun wrong). Anyway - does anyone have any better suggestions? Geoff From geoff@REDACTED Tue Nov 30 07:14:32 1999 From: geoff@REDACTED (Geoff Wong) Date: Tue, 30 Nov 1999 17:14:32 +1100 (EST) Subject: otp R6.0B0 In-Reply-To: <199911300512.FAA31271@gecko.serc.rmit.edu.au> from "Geoff Wong" at Nov 30, 1999 04:12:22 PM Message-ID: <199911300614.GAA02268@gecko.serc.rmit.edu.au> > So I tried the following: > > not_started_servers(Ss) -> > F=fun(X,Y)-> case lists:member(X,Y) of > true -> false; false -> true end end, > db:eval(query > [T || > T <- table(template), > F(S, Ss), > C=S.cluster, > T.cluster=C#cluster.name, > OriginT=S#server.template, > T.node=OriginT#template.node] > end). > > This also results in a runtime crash too (but I might've > got the fun wrong). > Anyway - does anyone have any better suggestions? Well - one more variation and it worked: ugly(X,Y)-> case lists:member(X,Y) of true -> false; false -> true end. not_started_servers(Ss) -> db:eval(query [T || T <- table(template), master_server:ugly(S, Ss), C=S.cluster, T.cluster=C#cluster.name, OriginT=S#server.template, T.node=OriginT#template.node] end). Looks like some work needs to be done in the mnemosyne preprocessor. Geoff From thomas@REDACTED Tue Nov 30 08:37:13 1999 From: thomas@REDACTED (Thomas Arts) Date: Tue, 30 Nov 1999 08:37:13 +0100 Subject: otp R6.0B0 References: <199911300614.GAA02268@gecko.serc.rmit.edu.au> Message-ID: <38437EA9.F2D86953@cslab.ericsson.se> Geoff Wong wrote: > > So I tried the following: > > > > not_started_servers(Ss) -> > > F=fun(X,Y)-> case lists:member(X,Y) of > > true -> false; false -> true end end, > ugly(X,Y)-> > case lists:member(X,Y) of > true -> false; > false -> true > end. IMHO a boolean operator should make the code more readable: ugly(X,Y)-> not(lists:member(X,Y)). Note that whenever you write something like true -> false, you should have used your logic. Best regards Thomas From Neil.Matthew@REDACTED Tue Nov 30 08:58:33 1999 From: Neil.Matthew@REDACTED (Neil.Matthew@REDACTED) Date: Tue, 30 Nov 1999 07:58:33 -0000 Subject: Problems building R6B with Linux/glibc 2.1 Message-ID: <59B3E9BF7253D31187EA0008C724033821DB3D@U607ST03> Try deleting -lieee from the libraries included in the link. I needed to do this on SuSE 6.2. I'm not sure why, but reading the error message I think it might be that the IEEE library thinks it's part of glibc2.0 or something. Neil -----Original Message----- From: Chuan-kai Lin [mailto:cklin@REDACTED] Sent: 29 November 1999 23:52 To: Subject: Problems building R6B with Linux/glibc 2.1 Hello, I have been unable to build Erlang R6B-0 under Linux with glibc 2.1 due to the following errors: make[4]: Entering directory `/home/cklin/build/otp_src_R6B-0/lib/etk/c_src' LD_LIBRARY_PATH=i686-pc-linux-gnu:/usr/X11R6/lib:; \ export LD_LIBRARY_PATH; \ gcc -shared -o /home/cklin/build/otp_src_R6B-0/lib/etk/priv/bin/i68 6-pc-linux-gnu/etk_drv.so i686-pc-linux-gnu/tclParseCmd..o i686-pc-linux-gn u/panic..o i686-pc-linux-gnu/regexp..o i686-pc-linux-gnu/tclAsync..o i686-p c-linux-gnu/tclBasic..o i686-pc-linux-gnu/tclCkalloc..o (etc. etc. skip.) tkTextBTree..o i686-pc-linux-gnu/tkTextDisp..o i686-pc-linux-gnu/tkTextInde x..o i686-pc-linux-gnu/tkTextMark..o i686-pc-linux-gnu/tkTextTag..o i686-pc -linux-gnu/tkTextWind..o i686-pc-linux-gnu/tkstr..o i686-pc-linux-gnu/etkMi sc..o i686-pc-linux-gnu/etk_drv..o \ -lpthread -L/usr/X11R6/lib -lX11 -ldl -lm -lc -lieee -lm -lc /usr/bin/ld: /home/cklin/build/otp_src_R6B-0/lib/etk/priv/bin/i686-pc-linux -gnu/etk_drv.so: undefined versioned symbol name _LIB_VERSION@@GLIBC_2.0 /usr/bin/ld: failed to set dynamic section sizes: Bad value collect2: ld returned 1 exit status The machine is an up-to-date Debian potato system. Any ideas? -- Chuan-kai Lin From klacke@REDACTED Tue Nov 30 10:25:06 1999 From: klacke@REDACTED (Klacke) Date: Tue, 30 Nov 1999 10:25:06 +0100 Subject: Problems building R6B with Linux/glibc 2.1 In-Reply-To: <59B3E9BF7253D31187EA0008C724033821DB3D@U607ST03>; from Neil.Matthew@gehis.co.uk on Tue, Nov 30, 1999 at 07:58:33AM -0000 References: <59B3E9BF7253D31187EA0008C724033821DB3D@U607ST03> Message-ID: <19991130102506.C78214@bluetail.com> On Tue, Nov 30, 1999 at 07:58:33AM -0000, Neil.Matthew@REDACTED wrote: > Try deleting -lieee from the libraries included in the > link. I needed to do this on SuSE 6.2. I'm not sure why, > but reading the error message I think it might be that the > IEEE library thinks it's part of glibc2.0 or something. > > /usr/bin/ld: /home/cklin/build/otp_src_R6B-0/lib/etk/priv/bin/i686-pc-linux > -gnu/etk_drv.so: undefined versioned symbol name _LIB_VERSION@@GLIBC_2.0 > /usr/bin/ld: failed to set dynamic section sizes: Bad value > collect2: ld returned 1 exit status > Thanks, I've seen this error printout before, but I've never had the energy to track it down. The code that's trying to link is the etk linked-in driver. etk can run in two modes, one with an external unix process interpreting the etk commands, and on with a linked-in driver running in a thread interpreting all the commands. If the linked-in driver doesn't exist (Which will be the case when the above link command fails), it's perfectly ok to run etk in an external unix process. This is also the default behavior when etk:start() is called. Cheers and thanks, /klacke Claes Wikstrom Bluetail AB http://www.bluetail.com From klacke@REDACTED Tue Nov 30 10:45:27 1999 From: klacke@REDACTED (Klacke) Date: Tue, 30 Nov 1999 10:45:27 +0100 Subject: Tracing broken in R6B-0? In-Reply-To: <59B3E9BF7253D31187EA0008C724033821DB3B@U607ST03>; from Neil.Matthew@gehis.co.uk on Mon, Nov 29, 1999 at 06:07:11PM -0000 References: <59B3E9BF7253D31187EA0008C724033821DB3B@U607ST03> Message-ID: <19991130104527.E78214@bluetail.com> On Mon, Nov 29, 1999 at 06:07:11PM -0000, Neil.Matthew@REDACTED wrote: > Hi, > > I am new to Erlang and trying out the R6B-0 on Linux and Windows. > I have managed to build the Linux version (after a couple of tweaks, > that I see the maintainers now have figured out - PosixStr.c). > > I tried to work through the Geeting Started part of the documentation > and have been unable to see a simple function trace of the factorial > example in either the Linux or Windows builds. > > Has tracing broken in R6B-0 or does it work differently to the > documentation? The OTP group has worked like beavers on the trace functionality in this release. It's propably the docs in the Getting Started Guide that's broken. Proper docs in the manpage for module 'dbg' as well as the man page for module 'erlang' which describes all BIFs. see the trace/3 BIF, trace_info/2, trace_pattern/2 BIF's Great stuff. /klacke -- Claes Wikstrom Bluetail AB http://www.bluetail.com From klacke@REDACTED Tue Nov 30 10:51:28 1999 From: klacke@REDACTED (Klacke) Date: Tue, 30 Nov 1999 10:51:28 +0100 Subject: Problems building R6B with Linux/glibc 2.1 In-Reply-To: <19991129191200.A38405@oscar.noc.cv.net>; from User & on Mon, Nov 29, 1999 at 07:12:00PM -0500 References: <19991130075203.A30273@oink.cc.ntu.edu.tw> <19991129191200.A38405@oscar.noc.cv.net> Message-ID: <19991130105128.F78214@bluetail.com> On Mon, Nov 29, 1999 at 07:12:00PM -0500, User & wrote: > I had zero problems with freebsd 3.3-stable and the new release. > Try freebsd? > > marc Now thats the spirit, tell a Linux user to swap OS. Let's have a little shoot-out over this, NOT. /klacke (Happy FreeBSD user) (btw, anybody feel like doing a /usr/ports port again, or maybe we should wait a couple of days until the otp_r6b patch flood stabilizes ?) /klacke Claes Wikstrom Bluetail AB http://www.bluetail.com From marc@REDACTED Tue Nov 30 11:25:39 1999 From: marc@REDACTED (User &) Date: Tue, 30 Nov 1999 05:25:39 -0500 Subject: Problems building R6B with Linux/glibc 2.1 In-Reply-To: <19991130105128.F78214@bluetail.com>; from klacke@bluetail.com on Tue, Nov 30, 1999 at 10:51:28AM +0100 References: <19991130075203.A30273@oink.cc.ntu.edu.tw> <19991129191200.A38405@oscar.noc.cv.net> <19991130105128.F78214@bluetail.com> Message-ID: <19991130052539.A39392@oscar.noc.cv.net> On Tue, Nov 30, 1999 at 10:51:28AM +0100, Klacke wrote: > On Mon, Nov 29, 1999 at 07:12:00PM -0500, User & wrote: > > I had zero problems with freebsd 3.3-stable and the new release. > > Try freebsd? > > > > marc > > > Now thats the spirit, tell a Linux user to swap OS. > Let's have a little shoot-out over this, NOT. > > > /klacke (Happy FreeBSD user) > > (btw, anybody feel like doing a /usr/ports port again, or maybe > we should wait a couple of days until the otp_r6b patch flood > stabilizes ?) I vote for doing it once, after 21 december I might even have time to figure it out and do it. It was just an idea. Did you know that newer versions of glibc apear to include an old version of Berkerly DB and this can cause problems if you install a newer version, symbols don't resolve at link time oh my. The solution to this is to start mucking around, er recompile with out the DB stuff and hope nothing bad happens, with glibc. Of the 3 dist.'s I have run I liked debian 2.0 the best. But I must say that FreeBSD or OpenBSD have been much easier to get work done on instead of work done to, glibc kernel version dance comes to mind to get a specfic app running. If you are happy with your linux distrubution then stick with it. I had a short email chat with the orignal poster and explained my reasons. They boil down to less work to keep the system running. So I have more time to spend doing productive work. I am not saying that this is the for everybody but just for me. Marc > > /klacke > > Claes Wikstrom > Bluetail AB http://www.bluetail.com > > From tony@REDACTED Tue Nov 30 10:29:44 1999 From: tony@REDACTED (Tony Rogvall) Date: Tue, 30 Nov 1999 10:29:44 +0100 Subject: erl_arith.c Message-ID: <38439908.F7264EA0@bluetail.com> Hi there! I have found a potential problem in erl_arith.c. I found it while working on a libbeam.so for building standalone apps. (I modified the sae stuff to link with a shared object, this makes it possible to write small "real" executable as well) The problem: in erl_arith.c the tmp_big_buff is declared as static Eterm tmp_big_buff[4]; and is used for temporary bignums, but on what address do you find tmp_big_buff???? this buffer MUST be safe_allocated! Solution: in erl_arith.c static Eterm* tmp_big_buff; void init_arith() { tmp_big_buff = (Eterm*) safe_alloc(sizeof(Eterm)*4); } in beam_emu (or some other place) void init_emulator() { .... init_arith(); .... } and some declaration in global.h I did not want to send a patch since this must be given some thought? /Tony From tony@REDACTED Tue Nov 30 12:44:30 1999 From: tony@REDACTED (Tony Rogvall) Date: Tue, 30 Nov 1999 12:44:30 +0100 Subject: Why is Erlang so large? References: <199911281427.PAA16613@super.du.uab.ericsson.se> Message-ID: <3843B89E.DDFEC9F3@bluetail.com> Per Hedeland wrote: > James Hague wrote: > >The tar.gz file for the latest Open Source Erlang release is close to 7 > >megabytes. Why so large? 7 MB of zipped source code is _huge_. > > Yeah, there's a lot of source code in there...:-) There is also alot of bootstrap binary code ... unpacked ~3M, I think one way to shrink the bootstarp is to use the standalone stuff. Prebuild a standalone compiler, I have a version that is only 239514 bytes, capable of compiling erlang code. It contains gzipped beam files. The bootstrap phase is then to create the bootstrap standalone executable (only 1 beam files needed ring0) .... /Tony From klacke@REDACTED Tue Nov 30 16:11:51 1999 From: klacke@REDACTED (Klacke) Date: Tue, 30 Nov 1999 16:11:51 +0100 Subject: magic Message-ID: <19991130161150.A95963@bluetail.com> Anybody's got a nice magic file that works with the new beam files for r6b. (That is, a magic file which makes the `file' command to return nice info about beam versions) ?? /klacke -- Claes Wikstrom Bluetail AB http://www.bluetail.com From sam@REDACTED Tue Nov 30 17:55:00 1999 From: sam@REDACTED (Samuel Tardieu) Date: 30 Nov 1999 17:55:00 +0100 Subject: Problems building R6B with Linux/glibc 2.1 In-Reply-To: Chuan-kai Lin's message of "Tue, 30 Nov 1999 07:52:03 +0800" References: <19991130075203.A30273@oink.cc.ntu.edu.tw> Message-ID: <1999-11-30-17-55-01+trackit+sam@inf.enst.fr> >>>>> "Chuan-kai" == Chuan-kai Lin writes: Chuan-kai> The machine is an up-to-date Debian potato system. Any Chuan-kai> ideas? Use the Debian package? :) Seriously, this bug is due to an incompatibility with -shared -lieee -lm See my bug report against the libc6-dev package at http://www.debian.org/Bugs/db/51/51267.html You can use the following patch in the meantime, which is the one I used for building the Debian package. -------------- next part -------------- A non-text attachment was scrubbed... Name: ieeelib.dpatch Type: text/x-patch Size: 2443 bytes Desc: Erlang patch for broken -shared -lieee -lm URL: -------------- next part -------------- Note that now that all popular Linux systems are using glibc 2.1+, the Erlang maintainers could remove the check for -lieee from configure.in, it would be much cleaner, even if the problem comes from the Debian libc6-dev package. Sam -- Samuel Tardieu -- sam@REDACTED From jhague@REDACTED Tue Nov 30 20:07:06 1999 From: jhague@REDACTED (James Hague) Date: Tue, 30 Nov 1999 13:07:06 -0600 (EST) Subject: Latest BEAM spec? Message-ID: I've been looking at the BEAM emulator source code and a BEAM specification document (the latter is from October 1997, version 1.2). It seems that only a subset of the BEAM instruction set is actually implemented in the current system. True? Were the other instructions simply not implemented or have they been removed from the BEAM spec? Is a more recent spec publicly available? James From bjorn@REDACTED Tue Nov 30 20:28:30 1999 From: bjorn@REDACTED (Bjorn Gustavsson) Date: 30 Nov 1999 20:28:30 +0100 Subject: magic In-Reply-To: Klacke's message of Tue, 30 Nov 1999 16:11:51 +0100 References: <19991130161150.A95963@bluetail.com> Message-ID: Try this: # OTP R3-R4 0 string \0177BEAM! Old Erlang BEAM file >6 short >0 - version %d # OTP R5 and onwards 0 string FOR1 >8 string BEAM Erlang BEAM file # 4.2 version may have a copyright notice!! 4 string Tue Jan 22 14:32:44 MET 1991 Erlang JAM file - version 4.2 79 string Tue Jan 22 14:32:44 MET 1991 Erlang JAM file - version 4.2 4 string 1.0 Fri Feb 3 09:55:56 MET 1995 Erlang JAM file - version 4.3 /Bj?rn Klacke writes: > > Anybody's got a nice magic file that works with the > new beam files for r6b. (That is, a magic file which > makes the `file' command to return nice info about > beam versions) > > ?? > > > /klacke > > > -- > Claes Wikstrom > Bluetail AB http://www.bluetail.com > > -- Bj?rn Gustavsson Ericsson Utvecklings AB bjorn@REDACTED ?T2/UAB/F/P BOX 1505 125 25 ?lvsj? From bjorn@REDACTED Tue Nov 30 21:21:14 1999 From: bjorn@REDACTED (Bjorn Gustavsson) Date: 30 Nov 1999 21:21:14 +0100 Subject: Latest BEAM spec? In-Reply-To: James Hague's message of Tue, 30 Nov 1999 13:07:06 -0600 (EST) References: Message-ID: James Hague writes: > > I've been looking at the BEAM emulator source code and a BEAM > specification document (the latter is from October 1997, version 1.2). It > seems that only a subset of the BEAM instruction set is actually > implemented in the current system. True? Were the other instructions > simply not implemented or have they been removed from the BEAM spec? Is a > more recent spec publicly available? The specification is very much out of date. I am rewriting the specification, but don't hold your breath waiting for it... :-) Here is some information about the instruction set and the loader: The compiler only emits GENERIC instructions. There are currently only 78 generic instructions. The generic instructions was chosen to be as simple and as few as possible. They take operands tagged by type. All generic instructions are listed in lib/compiler/src/genop.tab. The loader translates the generic instructions to SPECIFIC instructions. There are currently more than 300 specific instructions. Many specific instructions are specialised to operate on only certain operand types. For instance, there is one generic 'move' instructions but 12 (if I counted correctly) specific 'move' instructions in the emulator. The specific instructions are listed in erts/emulator/beam/ops.tab. The Perl script erts/emulator/utils/beam_makeops reads genop.tab and ops.tab and generates the following files needed by the loader: beam_hot.h beam_cold.h beam_opcodes.c beam_opcodes.h beam_pred_funcs.h beam_tr_funcs.h (They are placed into the architecture-dependent directory in erts/emulator.) You'll probably find most of your missing instructions in beam_hot.h and beam_cold.h. Using these files, the loader does some other tricks: 1. It can combine several consecutive instructions into one, or split one into several others. This is specified using patterns like this in ops.tab: move X1=x Y1=y | move X2=x Y2=y => move2 X1 Y1 X2 Y2 (combines two instructions moving from an x register to y register (stack frame) to one move2 instruction). 2. It can pack several operands for an instruction into one word to save space and time. Since the unpacking code is tricky, the beam_makops script generates the complete instruction. Given %macro:move Move -pack -gen_dest move x y the beam_makeops script generates (into beam_hot.h): OpCase(move_xy): { unsigned tmp_packed1; uint32* next; PreFetch(1, next); tmp_packed1 = Arg(0); Move(xb(tmp_packed1&0xFFF), yb((tmp_packed1>>16)), StoreSimpleDest); NextPF(1, next); } The Move C-prepreprocessor macro that does the real work is defined in beam_emu.c, as are the other macros. /Bj?rn -- Bj?rn Gustavsson Ericsson Utvecklings AB bjorn@REDACTED ?T2/UAB/F/P BOX 1505 125 25 ?lvsj?