From nick@REDACTED Fri Mar 1 10:44:04 2002 From: nick@REDACTED (Niclas Eklund) Date: Fri, 1 Mar 2002 10:44:04 +0100 (MET) Subject: jinterface, applet In-Reply-To: <001601c1c06e$53214770$5864a8c0@softerra.int> Message-ID: Hello! One option is to use CORBA. Since the JDK contains an ORB (JavaIDL) you don't have to download a Java ORB. An extra bonus is that as long as your API (i.e. IDL-specification) don't need to be changed, you can use the same API to access other applications independent of plattform/language etc. /Nick P.S. I cannot recommend you to use JavaIDL if it's going to act as server-side ORB. Try JacORB instead. D.S. > Ladies and Gentlemen, > > Is there any "light" jinterface implementation (or something like this) > that we'll be usable in java applets? > > -- > Best regards, > Yurii (http://yar.com.ua/) From yrashk@REDACTED Fri Mar 1 10:52:21 2002 From: yrashk@REDACTED (Yurii A. Rashkovskii) Date: Fri, 1 Mar 2002 11:52:21 +0200 Subject: jinterface, applet In-Reply-To: Message-ID: <000301c1c106$c8866520$5864a8c0@softerra.int> > One option is to use CORBA. Since the JDK contains an ORB (JavaIDL) you > don't have to download a Java ORB. An extra bonus is that as long as your > API (i.e. IDL-specification) don't need to be changed, you can use the > same API to access other applications independent of plattform/language > etc. Thanks. Should I use com.ericsson.otp.ic in applet? From nick@REDACTED Fri Mar 1 11:59:50 2002 From: nick@REDACTED (Niclas Eklund) Date: Fri, 1 Mar 2002 11:59:50 +0100 (MET) Subject: jinterface, applet In-Reply-To: <000301c1c106$c8866520$5864a8c0@softerra.int> Message-ID: On Fri, 1 Mar 2002, Yurii A. Rashkovskii wrote: > > One option is to use CORBA. Since the JDK contains an ORB (JavaIDL) > you > > don't have to download a Java ORB. An extra bonus is that as long as > your > > API (i.e. IDL-specification) don't need to be changed, you can use the > > same API to access other applications independent of > plattform/language > > etc. > > Thanks. > > Should I use com.ericsson.otp.ic in applet? Do you mean as Java-package? No, IMHO, that's not the best solution. You can use: #pragma javaPackage "telcos.net.ua" But since some ORB's IDL-compiler, at least older versions, do not handle unknown pragma's correctly a better option is: #pragma prefix "telcos.net.ua" For example, all OMG specifications use the "omg.org" prefix, which results in (NamingContext): "IDL:omg.org/CosNaming/NamingContextExt:1.0" The generated files is then created as: org/omg/CosNaming/ Use the IC 'erl_corba' backend (default) and our ORB Orber. /Nick From bjarne@REDACTED Fri Mar 1 15:42:00 2002 From: bjarne@REDACTED (Bjarne =?iso-8859-1?Q?D=E4cker?=) Date: Fri, 01 Mar 2002 15:42:00 +0100 Subject: ACM SIGPLAN Erlang Workshop Call-for-papers References: Message-ID: <3C7F9338.1484B553@erix.ericsson.se> Hello, ACM SIGPLAN Erlang Workshop Call for papers http://www.erlang.se/workshop/2002/ All Erlang/OTP developers and application designers are invited to participate in the ACM SIGPLAN Erlang Workshop which will take place at Carnegie Mellon University, Pittsburgh, PA, USA, on October 7, 2002. This is the first major Erlang event on the West side of the Atlantic and is a satellite event of the PLI2002 conference. http://pli2002.cs.brown.edu/ We are looking forward to a very interesting workshop with some good presentations and lively discussions ! Best wishes, Bjarne D?cker From jmj@REDACTED Mon Mar 4 14:36:37 2002 From: jmj@REDACTED (Jean-Marie JACQUET) Date: Mon, 4 Mar 2002 14:36:37 +0100 (MET) Subject: Flocasa: 1st Call for Paper Message-ID: <200203041336.g24Dabq03968@backus.info.fundp.ac.be> [ Our apologies for multiple copies. ] ====================================================================== 1st International Workshop on Foundations of Coordination Languages and Software Architectures (Foclasa 2002) August 24, 2002, Brno, Czech Republic Workshop affiliated to CONCUR'2002, 20 - 23 August 2002. http://www.fi.muni.cz/concur2002/Foclasa ====================================================================== SCOPE AND TOPICS Modern information systems rely more and more on combining concurrent, distributed, mobile and heterogenous components. This move from old systems, typically conceived in isolation, induces the need for new languages and software architectures. In particular, coordination languages have been proposed to cleanly separate computational aspects and communication. On the other hand, software architects face the problem of specifying and reasoning on non-functional requirements. All these issues are widely perceived as fundamental to improve software productivity, enhance maintainability, advocate modularity, promote reusability, and lead to systems more tractable and more amenable to verification and global analysis. The aim of the workshop is to bring together researchers working on the foundations of component-based computing, coordination, and software architectures. Topics of interest include (but are not limited to): o Theoretical models for coordination (component composition, concurrency, dynamic aspects of coordination, semantics, expressiveness); o Specification, refinement, and analysis of software archi- tectures (patterns and styles, verification of functional and non-functional properties); o Coordination, architectural, and interface definition languages (implementation, interoperability, heterogeneity); o Agent-oriented languages (formal models for interacting agents); o Dynamic software architectures (mobile agents, configuration, reconfiguration); o Modeling of information systems (groupware, internet and the web, workflow management, CSCW and multimedia applications) o Coordination patterns (mobile computing, internet computing); o Tools and environments for the development of coordinated applications SUBMISSION GUIDELINES Papers describing original work are solicited as contributions to Foclasa. Submitted papers should be limited to 6 000 words, preferrably formatted according to the Fundamenta Informaticae style (available at http://fi.mimuw.edu.pl/submissions.html). They should be emailed as PostScript (PS) or Portable Document Format (PDF) files to jmj@REDACTED PROCEEDINGS The proceedings will be published as a technical report of the Institute of Informatics at the University of Namur, and will be available at the workshop. Selected papers will be published in a special issue of the Funda- menta Informaticae journal, with February 2003 as expected publi- cation time. IMPORTANT DATES: o May 25, 2002: Submission deadline. o June 30, 2002: Notification of acceptance. o August 1, 2002: Final version. o August 24, 2002: Meeting Date. LOCATION The workshop will be held in Brno in August 2002. It is a satellite workshop of CONCUR 2002. For venue and registration see the CONCUR web page at http://www.fi.muni.cz/concur2002/ WORKSHOP ORGANIZERS o Antonio Brogi (University of Pisa, Italy) o Jean-Marie Jacquet (University of Namur, Belgium) PROGRAMME COMITTEE: o Antonio Brogi (University of Pisa, Italy) - Co-chair o Rocco De Nicola (University of Firenze, Italy) o Jos Luiz Fiadeiro (University of Lisbon, Portugal) o Roberto Gorrieri (Univerity of Bologna, Italy) o Paola Inverardi (Univerity L'Aquila, Italy) o Jean-Marie Jacquet (University of Namur, Belgium) - Co-chair o Joost Kok (University of Leiden, The Netherlands) o Antonio Porto (New University of Lisbon, Portugal) From jmj@REDACTED Mon Mar 4 14:39:14 2002 From: jmj@REDACTED (Jean-Marie JACQUET) Date: Mon, 4 Mar 2002 14:39:14 +0100 (MET) Subject: Flocasa: 1st Call for Paper Message-ID: <200203041339.g24DdEW06705@backus.info.fundp.ac.be> [ Our apologies for multiple copies. ] ====================================================================== 1st International Workshop on Foundations of Coordination Languages and Software Architectures (Foclasa 2002) August 24, 2002, Brno, Czech Republic Workshop affiliated to CONCUR'2002, 20 - 23 August 2002. http://www.fi.muni.cz/concur2002/Foclasa ====================================================================== SCOPE AND TOPICS Modern information systems rely more and more on combining concurrent, distributed, mobile and heterogenous components. This move from old systems, typically conceived in isolation, induces the need for new languages and software architectures. In particular, coordination languages have been proposed to cleanly separate computational aspects and communication. On the other hand, software architects face the problem of specifying and reasoning on non-functional requirements. All these issues are widely perceived as fundamental to improve software productivity, enhance maintainability, advocate modularity, promote reusability, and lead to systems more tractable and more amenable to verification and global analysis. The aim of the workshop is to bring together researchers working on the foundations of component-based computing, coordination, and software architectures. Topics of interest include (but are not limited to): o Theoretical models for coordination (component composition, concurrency, dynamic aspects of coordination, semantics, expressiveness); o Specification, refinement, and analysis of software archi- tectures (patterns and styles, verification of functional and non-functional properties); o Coordination, architectural, and interface definition languages (implementation, interoperability, heterogeneity); o Agent-oriented languages (formal models for interacting agents); o Dynamic software architectures (mobile agents, configuration, reconfiguration); o Modeling of information systems (groupware, internet and the web, workflow management, CSCW and multimedia applications) o Coordination patterns (mobile computing, internet computing); o Tools and environments for the development of coordinated applications SUBMISSION GUIDELINES Papers describing original work are solicited as contributions to Foclasa. Submitted papers should be limited to 6 000 words, preferrably formatted according to the Fundamenta Informaticae style (available at http://fi.mimuw.edu.pl/submissions.html). They should be emailed as PostScript (PS) or Portable Document Format (PDF) files to jmj@REDACTED PROCEEDINGS The proceedings will be published as a technical report of the Institute of Informatics at the University of Namur, and will be available at the workshop. Selected papers will be published in a special issue of the Funda- menta Informaticae journal, with February 2003 as expected publi- cation time. IMPORTANT DATES: o May 25, 2002: Submission deadline. o June 30, 2002: Notification of acceptance. o August 1, 2002: Final version. o August 24, 2002: Meeting Date. LOCATION The workshop will be held in Brno in August 2002. It is a satellite workshop of CONCUR 2002. For venue and registration see the CONCUR web page at http://www.fi.muni.cz/concur2002/ WORKSHOP ORGANIZERS o Antonio Brogi (University of Pisa, Italy) o Jean-Marie Jacquet (University of Namur, Belgium) PROGRAMME COMITTEE: o Antonio Brogi (University of Pisa, Italy) - Co-chair o Rocco De Nicola (University of Firenze, Italy) o Jos Luiz Fiadeiro (University of Lisbon, Portugal) o Roberto Gorrieri (Univerity of Bologna, Italy) o Paola Inverardi (Univerity L'Aquila, Italy) o Jean-Marie Jacquet (University of Namur, Belgium) - Co-chair o Joost Kok (University of Leiden, The Netherlands) o Antonio Porto (New University of Lisbon, Portugal) From klacke@REDACTED Mon Mar 4 23:02:26 2002 From: klacke@REDACTED (Claes Wikstrom) Date: Mon, 4 Mar 2002 23:02:26 +0100 Subject: yaws Message-ID: <20020304230225.A308@hyber.org> Folks, I've had some time again to hack the yaws www server. New release 0.30 at http://yaws.hyber.org - Better docs - ~/public_html support - better error printouts with buggy yaws code - more examples cookies etc.. It's scary to run a webserver at home, script kiddies + infected IIS servers keep on bombarding the thing. http://yaws.hyber.org/stats.yaws is dyn page that displays statistics. Horrible. /klacke -- Claes Wikstrom -- Caps lock is nowhere and http://www.hyber.org -- everything is under control From cpressey@REDACTED Tue Mar 5 03:08:53 2002 From: cpressey@REDACTED (Chris Pressey) Date: Mon, 04 Mar 2002 20:08:53 -0600 Subject: Operator overloading semantics Message-ID: <20020304200853.108ab2f6.cpressey@catseye.mb.ca> Hi, I've written a module (a behaviour) which allows the programmer to change the operator overloading semantics of Erlang. As overloaded operators are a double-edged sword, my question is, do you think it would be wise to release this publicly? The biggest 'con' is that the overuse and/or misuse of overloading makes programs more difficult to reason about, maintain, and debug. This is offset, though, by the facts that Erlang, like almost all high-level programming languages, already has some overloaded operators (e.g. + and - on floats and integers); and that this behaviour is a parse transform; no one is required to use it, and when it is used, it should be clear from the source (as with any parse transform.) Also, appropriate use of overloading can make source code easier to read, especially in the case of constructed numeric data types for which + - * / have commonly understood meanings. This is something for which I have a need, but I don't imagine many other Erlang programmers really require it. What do you think? Should I upload this to the User Contributions area, or is the Erlang world better off without it? :) Chris From art@REDACTED Tue Mar 5 10:57:35 2002 From: art@REDACTED (Artur Grabowski) Date: 05 Mar 2002 10:57:35 +0100 Subject: R8B-0 devpoll patch In-Reply-To: Per Bergqvist's message of "Thu, 28 Feb 2002 22:03:22 +0100" References: <200202282103.g1SL3P306075@raven.levonline.com> Message-ID: <87pu2j1gmo.fsf@kaka.blahonga.org> Sorry for the long delay. I had to catch a few deadlines. Per Bergqvist writes: > > Yes, you can select(2)/poll(2) on kqueue descriptors. You can also > > register kqueue descriptors on another kqueue just to add to the > > orthogonality. > > > > Great. > A few other questions: > > 1) What is the best way to check if the fd should use poll or kqueue ? > (in the Linux I do a fstat and test the mode) Try to register a kevent and see if it fails? I haven't really thought about it. > 2) Do you have to register EVFILT_READ and WRITE as separate event > filters or can you simply OR them in one event ? separate events. Anything else wouldn't allow the kqueue to live up to what it promises (all events will be delivered if registering succeeds, resources allocated on registration and not delivery). //art From luke@REDACTED Tue Mar 5 13:06:45 2002 From: luke@REDACTED (Luke Gorrie) Date: 05 Mar 2002 13:06:45 +0100 Subject: Operator overloading semantics In-Reply-To: <20020304200853.108ab2f6.cpressey@catseye.mb.ca> References: <20020304200853.108ab2f6.cpressey@catseye.mb.ca> Message-ID: Chris Pressey writes: > What do you think? Should I upload this to the User Contributions area, > or is the Erlang world better off without it? :) Go ahead! If people get carried away with the program, they'll just have multiply it by /dev/null. ;-) Cheers, Luke From thomas@REDACTED Tue Mar 5 13:25:32 2002 From: thomas@REDACTED (Thomas Arts) Date: Tue, 05 Mar 2002 13:25:32 +0100 Subject: Operator overloading semantics References: <20020304200853.108ab2f6.cpressey@catseye.mb.ca> Message-ID: <3C84B93C.141A76CB@cslab.ericsson.se> Chris Pressey wrote: > I've written a module (a behaviour) which allows the programmer to change > the operator overloading semantics of Erlang. > > As overloaded operators are a double-edged sword, my question is, do you > think it would be wise to release this publicly? I think it would be a nice user contribution. Since it is not standard in the language, only people that really feel the need for it will use this feature of operator overloading. I assume Erlang programs clever enough to know whether they can use something or not. Cheers Thomas --- Thomas Arts Ericsson Computer Science Laboratory From yrashk@REDACTED Tue Mar 5 15:04:43 2002 From: yrashk@REDACTED (Yurii A. Rashkovskii) Date: Tue, 5 Mar 2002 16:04:43 +0200 Subject: io_lib:write/1 question Message-ID: <009801c1c44e$b2e1f310$5864a8c0@softerra.int> Hi! I use io_lib:write/1 to convert Erlang term to string (list). But if inside of term I have a string (list) it returns me it as [x,x1,x2,.]. How can I make it possible to output all lists inside as a string (well, is there any STANDARD wayto do it)? -- Best regards, Yurii (http://yar.com.ua/) From yrashk@REDACTED Tue Mar 5 15:36:04 2002 From: yrashk@REDACTED (Yurii A. Rashkovskii) Date: Tue, 5 Mar 2002 16:36:04 +0200 Subject: io_lib:write/1 question In-Reply-To: Message-ID: <009901c1c453$148d51a0$5864a8c0@softerra.int> > In your example, you probably need to use lists:flatten/1 > on the list returned by io_lib:write/1. > > (Such a non-flat list is often called an "io_list" or "io_list()", > by the way, since many io-functions can take them as arguments.) It works if term is a list (string). But if term contains a list (for example, {error, errorreason, Reason}, where Reason is list)? What can you advise? From yrashk@REDACTED Tue Mar 5 16:27:30 2002 From: yrashk@REDACTED (Yurii A. Rashkovskii) Date: Tue, 5 Mar 2002 17:27:30 +0200 Subject: io_lib:write/1 question In-Reply-To: <009901c1c453$148d51a0$5864a8c0@softerra.int> Message-ID: <009d01c1c45a$43f27b30$5864a8c0@softerra.int> I found a way to solve it, thank you. -- Best regards, Yurii (http://yar.com.ua/) > -----Original Message----- > From: owner-erlang-questions@REDACTED [mailto:owner-erlang- > questions@REDACTED] On Behalf Of Yurii A. Rashkovskii > Sent: Tuesday, March 05, 2002 4:36 PM > To: 'Thomas Lindgren' > Cc: erlang-questions@REDACTED > Subject: RE: io_lib:write/1 question > > > In your example, you probably need to use lists:flatten/1 > > on the list returned by io_lib:write/1. > > > > (Such a non-flat list is often called an "io_list" or "io_list()", > > by the way, since many io-functions can take them as arguments.) > > It works if term is a list (string). But if term contains a list (for > example, {error, errorreason, Reason}, where Reason is list)? What can > you advise? From per@REDACTED Tue Mar 5 17:14:59 2002 From: per@REDACTED (Per Bergqvist) Date: Tue, 05 Mar 2002 17:14:59 +0100 Subject: R8B-0 ets match bug Message-ID: <200203051615.g25GF8517391@vargen.levonline.com> Hi, the attached piece of code expose a rather serious bug in R8B-0. (core dump). /Per ========================================================= Per Bergqvist Synapse Systems AB Phone: +46 709 686 685 Email: per@REDACTED -------------- next part -------------- A non-text attachment was scrubbed... Name: match_bug.erl Type: application/octet-stream Size: 380 bytes Desc: not available URL: From per@REDACTED Tue Mar 5 21:28:50 2002 From: per@REDACTED (Per Bergqvist) Date: Tue, 05 Mar 2002 21:28:50 +0100 Subject: R8B-0 ets match bug In-Reply-To: <200203051615.g25GF8517391@vargen.levonline.com> Message-ID: <200203052028.g25KSoM29670@sork.levonline.com> And here is the patch to fix it ... /Per > Hi, > > the attached piece of code expose a rather serious bug in R8B-0. (core > dump). > > /Per > > ========================================================= > Per Bergqvist > Synapse Systems AB > Phone: +46 709 686 685 > Email: per@REDACTED ========================================================= Per Bergqvist Synapse Systems AB Phone: +46 709 686 685 Email: per@REDACTED -------------- next part -------------- A non-text attachment was scrubbed... Name: erl_db_util_patch Type: application/octet-stream Size: 332 bytes Desc: not available URL: From bjorn@REDACTED Wed Mar 6 11:39:35 2002 From: bjorn@REDACTED (Bjorn Gustavsson) Date: 06 Mar 2002 11:39:35 +0100 Subject: R8B-0 ets match bug In-Reply-To: Per Bergqvist's message of "Tue, 05 Mar 2002 21:28:50 +0100" References: <200203052028.g25KSoM29670@sork.levonline.com> Message-ID: Thanks for the bug report and patch. Note that there are similar problems for other boxed data types, such as bignums, which your patch doesn't address. We include corrections for this problem in the next patch release of R8B. /Bjorn Per Bergqvist writes: > And here is the patch to fix it ... > > /Per > > > Hi, > > > > > > the attached piece of code expose a rather serious bug in R8B-0. > (core > > dump). > -- Bj?rn Gustavsson Ericsson Utvecklings AB bjorn@REDACTED ?T2/UAB/F/P BOX 1505 +46 8 727 56 87 125 25 ?lvsj? From per@REDACTED Wed Mar 6 12:37:03 2002 From: per@REDACTED (Per Bergqvist) Date: Wed, 06 Mar 2002 12:37:03 +0100 Subject: R8B-0 ets match bug In-Reply-To: Message-ID: <200203061137.g26Bb4b06261@sork.levonline.com> Hmm, suspected that but was unsure. Thanks for pointing it out. Is this version of the patch better ? Is there be a new patch release of R8B scheduled ? /Per > Thanks for the bug report and patch. > > Note that there are similar problems for other boxed data types, such as bignums, > which your patch doesn't address. > > We include corrections for this problem in the next patch release > of R8B. > > /Bjorn > > Per Bergqvist writes: > > > And here is the patch to fix it ... > > > > /Per > > > > > Hi, > > > > > > > > > > the attached piece of code expose a rather serious bug in R8B-0. > > (core > > > dump). > > > > -- > Bj?rn Gustavsson Ericsson Utvecklings AB > bjorn@REDACTED ?T2/UAB/F/P > BOX 1505 > +46 8 727 56 87 125 25 ?lvsj? > ========================================================= Per Bergqvist Synapse Systems AB Phone: +46 709 686 685 Email: per@REDACTED -------------- next part -------------- A non-text attachment was scrubbed... Name: erl_db_util_patch_better Type: application/octet-stream Size: 767 bytes Desc: not available URL: From salcaraz@REDACTED Thu Mar 7 17:04:31 2002 From: salcaraz@REDACTED (Salvador Alcaraz Carrasco) Date: Thu, 7 Mar 2002 17:04:31 +0100 (CET) Subject: Problems with debugger Message-ID: Hy friends, I have problem. In older versions of Erlang, I used a debugger module and the q function, debugger:q(module,function,parameters) For example: the module and the start function example.erl s() I could debug it using: debugger:q(example, s,[]) NOW, With last version, I have problem. You can see the error. I am going to do step-by-step: The code of prueba.erl is: -module(prueba). -export ([s/1]). s(A)-> erlang:display(A), s(A+1). 1. START ERLANG + COMPILE + DEBUGGER bash-2.05a$ erl Erlang (BEAM) emulator version 5.1 [source] Eshell V5.1 (abort with ^G) 1> c(prueba). {ok,prueba} 2> debugger:q(prueba,s,[]). =ERROR REPORT==== 7-Mar-2002::17:00:55 === Error in process <0.36.0> with exit value: {badarg,[{erlang,binary_to_term,[<<0 bytes>>]},{dbg_iload,abstr,1},{dbg_iload,store_module,3},{dbg_iload,load_mod1,3} ]} ** exited: {undef,[{prueba,s,[]}, {erl_eval,expr,3}, {erl_eval,exprs,4}, {shell,eval_loop,2}]} ** 3> ?Can you help me? ?Where is the error? Thank you in advance Salva __________________________________________________________________________ Salvador Alcaraz Carrasco http://www.umh.es Arquitectura y Tecnologia de Computadores http://obelix.umh.es Dpto. Fisica y Arquitectura de Computadores salcaraz@REDACTED Universidad Miguel Hernandez salcaraz@REDACTED Avda. del ferrocarril, s/n Telf. +34 96 665 8495 Elche, Alicante (Spain) __________________________________________________________________________ From kent@REDACTED Thu Mar 7 17:22:43 2002 From: kent@REDACTED (Kent Boortz) Date: 07 Mar 2002 17:22:43 +0100 Subject: R8B-0 ets match bug In-Reply-To: Per Bergqvist's message of "Wed, 06 Mar 2002 12:37:03 +0100" References: <200203061137.g26Bb4b06261@sork.levonline.com> Message-ID: Per Bergqvist writes: > Is there be a new patch release of R8B scheduled ? If nothing seriour turns up we plan to release R8B-1 within two weeks, kent From johan.blom@REDACTED Thu Mar 7 17:37:33 2002 From: johan.blom@REDACTED (Johan Blom) Date: 07 Mar 2002 17:37:33 +0100 Subject: News at http://sowap.sourceforge.net Message-ID: <1015519074.1266.220.camel@localhost.localdomain> Hi, lately there have been 2 new releases at http://sowap.sourceforge.net xmerl: Version 0.17 Adds improved HTML and text export, new option {line, L} to specify starting line for scanning, option {space, (preserve|normalize)} to control behaviour when scanning whitespace and of course bugfixes. Specifically, note that the xmerl_scan functions string/1, string/2, file/1 and file/2 now all return a tuple {Result,Tail} if scanned successfully. inets: Version 3.0JB-b Fixes a few bugs... Regards Johan Blom Mobile Arts From jonas.aman@REDACTED Thu Mar 7 17:44:20 2002 From: jonas.aman@REDACTED (=?iso-8859-1?Q?Jonas_=C5man?=) Date: Thu, 07 Mar 2002 17:44:20 +0100 Subject: SV: Problems with debugger In-Reply-To: Message-ID: Hi! I'd guess that it's because your function s in the prueba-module needs an argument, but you try to start the debugger specifying no arguments, i.e it should be debugger:q(prueba,s,[argument]) instead of debugger:q(prueba,s,[]). I hope it solves the problem. /Jonas -----Ursprungligt meddelande----- Fr?n: owner-erlang-questions@REDACTED [mailto:owner-erlang-questions@REDACTED]F?r Salvador Alcaraz Carrasco Skickat: den 7 mars 2002 17:05 Till: erlang-questions@REDACTED ?mne: Problems with debugger Hy friends, I have problem. In older versions of Erlang, I used a debugger module and the q function, debugger:q(module,function,parameters) For example: the module and the start function example.erl s() I could debug it using: debugger:q(example, s,[]) NOW, With last version, I have problem. You can see the error. I am going to do step-by-step: The code of prueba.erl is: -module(prueba). -export ([s/1]). s(A)-> erlang:display(A), s(A+1). 1. START ERLANG + COMPILE + DEBUGGER bash-2.05a$ erl Erlang (BEAM) emulator version 5.1 [source] Eshell V5.1 (abort with ^G) 1> c(prueba). {ok,prueba} 2> debugger:q(prueba,s,[]). =ERROR REPORT==== 7-Mar-2002::17:00:55 === Error in process <0.36.0> with exit value: {badarg,[{erlang,binary_to_term,[<<0 bytes>>]},{dbg_iload,abstr,1},{dbg_iload,store_module,3},{dbg_iload,load_mod 1,3} ]} ** exited: {undef,[{prueba,s,[]}, {erl_eval,expr,3}, {erl_eval,exprs,4}, {shell,eval_loop,2}]} ** 3> ?Can you help me? ?Where is the error? Thank you in advance Salva __________________________________________________________________________ Salvador Alcaraz Carrasco http://www.umh.es Arquitectura y Tecnologia de Computadores http://obelix.umh.es Dpto. Fisica y Arquitectura de Computadores salcaraz@REDACTED Universidad Miguel Hernandez salcaraz@REDACTED Avda. del ferrocarril, s/n Telf. +34 96 665 8495 Elche, Alicante (Spain) __________________________________________________________________________ From salcaraz@REDACTED Thu Mar 7 17:54:33 2002 From: salcaraz@REDACTED (Salvador Alcaraz Carrasco) Date: Thu, 7 Mar 2002 17:54:33 +0100 (CET) Subject: SV: Problems with debugger In-Reply-To: Message-ID: Sorry, I have forgotten the parameter, but its the same, as you can see: The module and function: -module(prueba). -export ([s/1]). s(A)-> erlang:display(A), s(A+1). and the compilation and running: bash-2.05a$ erl Erlang (BEAM) emulator version 5.1 [source] Eshell V5.1 (abort with ^G) 1> c(prueba). {ok,prueba} 2> debugger:q(prueba,s,[1]). =ERROR REPORT==== 7-Mar-2002::17:51:12 === Error in process <0.36.0> with exit value: {badarg,[{erlang,binary_to_term,[<<0 bytes>>]},{dbg_i load,abstr,1},{dbg_iload,store_module,3},{dbg_iload,load_mod1,3}]} ** exited: {badarg,[{ets,match_object,[not_found,{{prueba,s,1,'_'},'_'}]}, {dbg_ets,match_object,2}, {dbg_imeta,function,4}, {dbg_ieval,eval_function,10}, {dbg_ieval,eval_function,4}, {dbg_imeta,eval_mfa,5}, {dbg_imeta,int,4}]} ** 3> =ERROR REPORT==== 7-Mar-2002::17:51:16 === Error in process <0.39.0> with exit value: {badarith,[{dbg_ui_trace_win,configure,3},{dbg_ui_aux ,gs_cmd,2},{dbg_ui_trace,loop,1}]} after that, Erlang open debugger window, but without data and file ?where is the problem? thank you in advance /Salva __________________________________________________________________________ Salvador Alcaraz Carrasco http://www.umh.es Arquitectura y Tecnologia de Computadores http://obelix.umh.es Dpto. Fisica y Arquitectura de Computadores salcaraz@REDACTED Universidad Miguel Hernandez salcaraz@REDACTED Avda. del ferrocarril, s/n Telf. +34 96 665 8495 Elche, Alicante (Spain) __________________________________________________________________________ On Thu, 7 Mar 2002, Jonas ?man wrote: > Hi! > > I'd guess that it's because your function s > in the prueba-module needs an argument, but > you try to start the debugger specifying no > arguments, i.e it should be > > debugger:q(prueba,s,[argument]) instead of > debugger:q(prueba,s,[]). > > I hope it solves the problem. > > /Jonas > > -----Ursprungligt meddelande----- > Fr?n: owner-erlang-questions@REDACTED > [mailto:owner-erlang-questions@REDACTED]F?r Salvador Alcaraz Carrasco > Skickat: den 7 mars 2002 17:05 > Till: erlang-questions@REDACTED > ?mne: Problems with debugger > > > > Hy friends, I have problem. > > In older versions of Erlang, I used a debugger module and the q function, > > debugger:q(module,function,parameters) > > For example: > > the module and the start function > > example.erl > s() > > > I could debug it using: > > debugger:q(example, s,[]) > > > > > > NOW, With last version, I have problem. You can see the error. > > I am going to do step-by-step: > > The code of prueba.erl is: > > -module(prueba). > -export ([s/1]). > s(A)-> > erlang:display(A), > s(A+1). > > > > > 1. START ERLANG + COMPILE + DEBUGGER > > bash-2.05a$ erl > Erlang (BEAM) emulator version 5.1 [source] > > Eshell V5.1 (abort with ^G) > 1> c(prueba). > {ok,prueba} > 2> debugger:q(prueba,s,[]). > > =ERROR REPORT==== 7-Mar-2002::17:00:55 === > Error in process <0.36.0> with exit value: > {badarg,[{erlang,binary_to_term,[<<0 > bytes>>]},{dbg_iload,abstr,1},{dbg_iload,store_module,3},{dbg_iload,load_mod > 1,3} > ]} > ** exited: {undef,[{prueba,s,[]}, > {erl_eval,expr,3}, > {erl_eval,exprs,4}, > {shell,eval_loop,2}]} ** > 3> > > > > > > ?Can you help me? > > ?Where is the error? > > Thank you in advance > > Salva > > > __________________________________________________________________________ > Salvador Alcaraz Carrasco http://www.umh.es > Arquitectura y Tecnologia de Computadores http://obelix.umh.es > Dpto. Fisica y Arquitectura de Computadores salcaraz@REDACTED > Universidad Miguel Hernandez salcaraz@REDACTED > Avda. del ferrocarril, s/n Telf. +34 96 665 8495 > Elche, Alicante (Spain) > __________________________________________________________________________ > From eklajoh@REDACTED Fri Mar 8 08:40:41 2002 From: eklajoh@REDACTED (Klas Johansson) Date: Fri, 08 Mar 2002 08:40:41 +0100 Subject: SV: Problems with debugger References: Message-ID: <3C886AF9.37AE60C6@lmera.ericsson.se> Hi! Perhaps this thread will help you: http://www.erlang.org/ml-archive/erlang-questions/200202/msg00121.html /Klas Salvador Alcaraz Carrasco wrote: > > Sorry, I have forgotten the parameter, but its the same, as you can see: > > The module and function: > > -module(prueba). > -export ([s/1]). > s(A)-> > erlang:display(A), > s(A+1). > > and the compilation and running: > > bash-2.05a$ erl > Erlang (BEAM) emulator version 5.1 [source] > > Eshell V5.1 (abort with ^G) > 1> c(prueba). > {ok,prueba} > 2> debugger:q(prueba,s,[1]). > > =ERROR REPORT==== 7-Mar-2002::17:51:12 === > Error in process <0.36.0> with exit value: > {badarg,[{erlang,binary_to_term,[<<0 bytes>>]},{dbg_i > load,abstr,1},{dbg_iload,store_module,3},{dbg_iload,load_mod1,3}]} > ** exited: {badarg,[{ets,match_object,[not_found,{{prueba,s,1,'_'},'_'}]}, > {dbg_ets,match_object,2}, > {dbg_imeta,function,4}, > {dbg_ieval,eval_function,10}, > {dbg_ieval,eval_function,4}, > {dbg_imeta,eval_mfa,5}, > {dbg_imeta,int,4}]} ** > 3> > =ERROR REPORT==== 7-Mar-2002::17:51:16 === > Error in process <0.39.0> with exit value: > {badarith,[{dbg_ui_trace_win,configure,3},{dbg_ui_aux > ,gs_cmd,2},{dbg_ui_trace,loop,1}]} > > after that, Erlang open debugger window, but without data and file > > ?where is the problem? > > thank you in advance > > /Salva > > __________________________________________________________________________ > Salvador Alcaraz Carrasco http://www.umh.es > Arquitectura y Tecnologia de Computadores http://obelix.umh.es > Dpto. Fisica y Arquitectura de Computadores salcaraz@REDACTED > Universidad Miguel Hernandez salcaraz@REDACTED > Avda. del ferrocarril, s/n Telf. +34 96 665 8495 > Elche, Alicante (Spain) > __________________________________________________________________________ > > On Thu, 7 Mar 2002, Jonas ?man wrote: > > > Hi! > > > > I'd guess that it's because your function s > > in the prueba-module needs an argument, but > > you try to start the debugger specifying no > > arguments, i.e it should be > > > > debugger:q(prueba,s,[argument]) instead of > > debugger:q(prueba,s,[]). > > > > I hope it solves the problem. > > > > /Jonas > > > > -----Ursprungligt meddelande----- > > Fr?n: owner-erlang-questions@REDACTED > > [mailto:owner-erlang-questions@REDACTED]F?r Salvador Alcaraz Carrasco > > Skickat: den 7 mars 2002 17:05 > > Till: erlang-questions@REDACTED > > ?mne: Problems with debugger > > > > > > > > Hy friends, I have problem. > > > > In older versions of Erlang, I used a debugger module and the q function, > > > > debugger:q(module,function,parameters) > > > > For example: > > > > the module and the start function > > > > example.erl > > s() > > > > > > I could debug it using: > > > > debugger:q(example, s,[]) > > > > > > > > > > > > NOW, With last version, I have problem. You can see the error. > > > > I am going to do step-by-step: > > > > The code of prueba.erl is: > > > > -module(prueba). > > -export ([s/1]). > > s(A)-> > > erlang:display(A), > > s(A+1). > > > > > > > > > > 1. START ERLANG + COMPILE + DEBUGGER > > > > bash-2.05a$ erl > > Erlang (BEAM) emulator version 5.1 [source] > > > > Eshell V5.1 (abort with ^G) > > 1> c(prueba). > > {ok,prueba} > > 2> debugger:q(prueba,s,[]). > > > > =ERROR REPORT==== 7-Mar-2002::17:00:55 === > > Error in process <0.36.0> with exit value: > > {badarg,[{erlang,binary_to_term,[<<0 > > bytes>>]},{dbg_iload,abstr,1},{dbg_iload,store_module,3},{dbg_iload,load_mod > > 1,3} > > ]} > > ** exited: {undef,[{prueba,s,[]}, > > {erl_eval,expr,3}, > > {erl_eval,exprs,4}, > > {shell,eval_loop,2}]} ** > > 3> > > > > > > > > > > > > ?Can you help me? > > > > ?Where is the error? > > > > Thank you in advance > > > > Salva > > > > > > __________________________________________________________________________ > > Salvador Alcaraz Carrasco http://www.umh.es > > Arquitectura y Tecnologia de Computadores http://obelix.umh.es > > Dpto. Fisica y Arquitectura de Computadores salcaraz@REDACTED > > Universidad Miguel Hernandez salcaraz@REDACTED > > Avda. del ferrocarril, s/n Telf. +34 96 665 8495 > > Elche, Alicante (Spain) > > __________________________________________________________________________ > > From salcaraz@REDACTED Fri Mar 8 14:46:23 2002 From: salcaraz@REDACTED (Salvador Alcaraz Carrasco) Date: Fri, 8 Mar 2002 14:46:23 +0100 (CET) Subject: SV: Problems with debugger In-Reply-To: <3C886AF9.37AE60C6@lmera.ericsson.se> Message-ID: ok, problem solved Thank you very much Salva On Fri, 8 Mar 2002, Klas Johansson wrote: > Hi! > > Perhaps this thread will help you: > http://www.erlang.org/ml-archive/erlang-questions/200202/msg00121.html > > /Klas > > Salvador Alcaraz Carrasco wrote: > > > > Sorry, I have forgotten the parameter, but its the same, as you can see: > > > > The module and function: > > > > -module(prueba). > > -export ([s/1]). > > s(A)-> > > erlang:display(A), > > s(A+1). > > > > and the compilation and running: > > > > bash-2.05a$ erl > > Erlang (BEAM) emulator version 5.1 [source] > > > > Eshell V5.1 (abort with ^G) > > 1> c(prueba). > > {ok,prueba} > > 2> debugger:q(prueba,s,[1]). > > > > =ERROR REPORT==== 7-Mar-2002::17:51:12 === > > Error in process <0.36.0> with exit value: > > {badarg,[{erlang,binary_to_term,[<<0 bytes>>]},{dbg_i > > load,abstr,1},{dbg_iload,store_module,3},{dbg_iload,load_mod1,3}]} > > ** exited: {badarg,[{ets,match_object,[not_found,{{prueba,s,1,'_'},'_'}]}, > > {dbg_ets,match_object,2}, > > {dbg_imeta,function,4}, > > {dbg_ieval,eval_function,10}, > > {dbg_ieval,eval_function,4}, > > {dbg_imeta,eval_mfa,5}, > > {dbg_imeta,int,4}]} ** > > 3> > > =ERROR REPORT==== 7-Mar-2002::17:51:16 === > > Error in process <0.39.0> with exit value: > > {badarith,[{dbg_ui_trace_win,configure,3},{dbg_ui_aux > > ,gs_cmd,2},{dbg_ui_trace,loop,1}]} > > > > after that, Erlang open debugger window, but without data and file > > > > ?where is the problem? > > > > thank you in advance > > > > /Salva > > > > __________________________________________________________________________ > > Salvador Alcaraz Carrasco http://www.umh.es > > Arquitectura y Tecnologia de Computadores http://obelix.umh.es > > Dpto. Fisica y Arquitectura de Computadores salcaraz@REDACTED > > Universidad Miguel Hernandez salcaraz@REDACTED > > Avda. del ferrocarril, s/n Telf. +34 96 665 8495 > > Elche, Alicante (Spain) > > __________________________________________________________________________ > > > > On Thu, 7 Mar 2002, Jonas ?man wrote: > > > > > Hi! > > > > > > I'd guess that it's because your function s > > > in the prueba-module needs an argument, but > > > you try to start the debugger specifying no > > > arguments, i.e it should be > > > > > > debugger:q(prueba,s,[argument]) instead of > > > debugger:q(prueba,s,[]). > > > > > > I hope it solves the problem. > > > > > > /Jonas > > > > > > -----Ursprungligt meddelande----- > > > Fr?n: owner-erlang-questions@REDACTED > > > [mailto:owner-erlang-questions@REDACTED]F?r Salvador Alcaraz Carrasco > > > Skickat: den 7 mars 2002 17:05 > > > Till: erlang-questions@REDACTED > > > ?mne: Problems with debugger > > > > > > > > > > > > Hy friends, I have problem. > > > > > > In older versions of Erlang, I used a debugger module and the q function, > > > > > > debugger:q(module,function,parameters) > > > > > > For example: > > > > > > the module and the start function > > > > > > example.erl > > > s() > > > > > > > > > I could debug it using: > > > > > > debugger:q(example, s,[]) > > > > > > > > > > > > > > > > > > NOW, With last version, I have problem. You can see the error. > > > > > > I am going to do step-by-step: > > > > > > The code of prueba.erl is: > > > > > > -module(prueba). > > > -export ([s/1]). > > > s(A)-> > > > erlang:display(A), > > > s(A+1). > > > > > > > > > > > > > > > 1. START ERLANG + COMPILE + DEBUGGER > > > > > > bash-2.05a$ erl > > > Erlang (BEAM) emulator version 5.1 [source] > > > > > > Eshell V5.1 (abort with ^G) > > > 1> c(prueba). > > > {ok,prueba} > > > 2> debugger:q(prueba,s,[]). > > > > > > =ERROR REPORT==== 7-Mar-2002::17:00:55 === > > > Error in process <0.36.0> with exit value: > > > {badarg,[{erlang,binary_to_term,[<<0 > > > bytes>>]},{dbg_iload,abstr,1},{dbg_iload,store_module,3},{dbg_iload,load_mod > > > 1,3} > > > ]} > > > ** exited: {undef,[{prueba,s,[]}, > > > {erl_eval,expr,3}, > > > {erl_eval,exprs,4}, > > > {shell,eval_loop,2}]} ** > > > 3> > > > > > > > > > > > > > > > > > > ?Can you help me? > > > > > > ?Where is the error? > > > > > > Thank you in advance > > > > > > Salva > > > > > > > > > __________________________________________________________________________ > > > Salvador Alcaraz Carrasco http://www.umh.es > > > Arquitectura y Tecnologia de Computadores http://obelix.umh.es > > > Dpto. Fisica y Arquitectura de Computadores salcaraz@REDACTED > > > Universidad Miguel Hernandez salcaraz@REDACTED > > > Avda. del ferrocarril, s/n Telf. +34 96 665 8495 > > > Elche, Alicante (Spain) > > > __________________________________________________________________________ > > > > From marco.comini@REDACTED Fri Mar 8 16:18:53 2002 From: marco.comini@REDACTED (Marco Comini) Date: Fri, 8 Mar 2002 16:18:53 +0100 Subject: [E-CFP] WFLP2002 - deadline is approaching Message-ID: Dear Colleague I would like to remind you that the WFLP 2002 paper submission deadline is approaching. WFLP 2002 is the 11th international workshop on functional and (constraint) logic programming. WFLP 2002 aims to bring together researchers interested in functional programming, (constraint) logic programming, as well as their integration. For further details about the workshop please visit the web site http://www.dimi.uniud.it/~wflp2002/ Papers are due by March 20, 2002 You can sumbit papers following the electronic sumbission process at: http://www.dimi.uniud.it/~wflp2002/submit/ We hope that this "Call For Papers" will be useful for your work. Please forward the following to anybody who you think may be interested. Our apologies if you received multiple copy of this. -- Marco. -------------- next part -------------- An HTML attachment was scrubbed... URL: From info@REDACTED Fri Mar 8 19:57:03 2002 From: info@REDACTED (www.it-report.co.uk) Date: Fri, 8 Mar 2002 19:57:03 +0100 Subject: A MUST for all IT-Executives! Message-ID: <200203081857.g28Iv3407576@p10051239.pureserver.de> A MUST for all IT-Executives! In March 2002 the new, free it-REPORT has started for IT Executives with TOP-news, highlights and interesting topics from the sectors of eCommerce, Internet, Computer, Telecommunications etc (and so on). It will be sent to over 150.000 IT-Executives, free of charge, every week. Everyone, who orders this free-of-charge subscription by 25 March 2002 under www.it-report.co.uk will automatically be included in a draw for a handheld COMPAQ iPAQ Pocket PC. Yours it-REPORT editorial staff (editorship@REDACTED) From hal@REDACTED Mon Mar 11 05:28:25 2002 From: hal@REDACTED (Hal Snyder) Date: 10 Mar 2002 22:28:25 -0600 Subject: inets-3.0JB-b In-Reply-To: <1015519074.1266.220.camel@localhost.localdomain> (Johan Blom's message of "07 Mar 2002 17:37:33 +0100") References: <1015519074.1266.220.camel@localhost.localdomain> Message-ID: <87elir4tjq.fsf@gamera.vail> Johan Blom writes: > inets: Version 3.0JB-b > Fixes a few bugs... Thanks so much for the ongoing work on inets. The biggest difference we saw between 2.6.0 and 3.0.0 was elimination of 1-second delay between delivery of html to the client and closing of the http socket. We are not getting readable ASCII transfer and error disk logs with 3.0 versions of inets, even with explicit DiskLogFormat external in the httpd.conf file. Are we doing something wrong? Here's our workaround. After applying the patch, logs are readable with less, grep, usw. - if it's really a fix, then write_to_log could be eliminated: --- mod_disk_log.erl.orig Thu Feb 21 09:43:42 2002 +++ mod_disk_log.erl Sun Mar 10 22:17:23 2002 @@ -173,9 +173,9 @@ %%---------------------------------------------------------------------- %% Actually writes the entry to the disk_log. If the log is an %% Internal disk_log write it with log otherwise with blog. -%5---------------------------------------------------------------------- +%%---------------------------------------------------------------------- write_to_log(Log,Entry,external)-> - disk_log:blog(Log,term_to_binary(Entry)); + disk_log:blog(Log,Entry); write_to_log(Log,Entry,internal) -> disk_log:log(Log,Entry). From hal@REDACTED Mon Mar 11 05:36:27 2002 From: hal@REDACTED (Hal Snyder) Date: 10 Mar 2002 22:36:27 -0600 Subject: inets-3.0JB-b In-Reply-To: <87elir4tjq.fsf@gamera.vail> (Hal Snyder's message of "10 Mar 2002 22:28:25 -0600") References: <1015519074.1266.220.camel@localhost.localdomain> <87elir4tjq.fsf@gamera.vail> Message-ID: <87adtf4t6c.fsf@gamera.vail> Hal Snyder writes: > if it's really a fix, then write_to_log could be eliminated: Ignore that; fingers faster than brain. blog =/= log. From per@REDACTED Mon Mar 11 07:21:40 2002 From: per@REDACTED (Per Bergqvist) Date: Mon, 11 Mar 2002 07:21:40 +0100 Subject: R8B-0 patches In-Reply-To: <200203102100.g2AL06L06305@vargen.levonline.com> Message-ID: <200203110621.g2B6Lfj13975@vargen.levonline.com> Hi, attached are two patches to avoid unnecessary compiler warnings. /Per ========================================================= Per Bergqvist Synapse Systems AB Phone: +46 709 686 685 Email: per@REDACTED -------------- next part -------------- A non-text attachment was scrubbed... Name: beam_emu_patch Type: application/octet-stream Size: 812 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: erl_bits_patch Type: application/octet-stream Size: 317 bytes Desc: not available URL: From Claude.Kirchner@REDACTED Mon Mar 11 12:12:38 2002 From: Claude.Kirchner@REDACTED (Claude Kirchner) Date: Mon, 11 Mar 2002 12:12:38 +0100 (MET) Subject: PPDP 2002 - Last call for papers --> March 21 Message-ID: <15500.37158.135931.845369@apach.loria.fr> PPDP 2002 - Call for papers March 21, 2002 submission deadline http://ppdp2002.cs.brown.edu Fourth International Conference on Principles and Practice of Declarative Programming 6-8 October, Pittsburgh, USA as part of PLI 2002 (http://pli2002.cs.brown.edu) *** The electronic submission system is open at *** http://ppdp-2002.loria.fr/ Invited speakers: Neil Jones (University of Copenhagen) Catuscia Palamidessi (The Pennsylvania State University) Janos Sztipanovits (Vanderbilt University ) Important dates March 21, 2002 submission FIRM deadline May 30, 2002 acceptance decisions June 30, 2002 Camera-ready copies October 6-8, 2002 Conference Submission web site: http://ppdp-2002.loria.fr Conference Chair: Frank Pfenning, CMU, USA Program Chair: Claude Kirchner, LORIA and INRIA 615, rue du Jardin Botanique, BP 101 54602 Villers-l?s-Nancy, France Claude.Kirchner@REDACTED Program Committee: Hassan Ait Kaci: ILOG, France Olivier Danvy: BRICS, University of Aarhus, Denmark Mariangiola Dezani: Universita di Torino, Italy Francois Fages: INRIA, France Fergus Henderson: The University of Melbourne, Australia Manuel Hermenegildo: University of Madrid, Spain Andrew Gordon: Microsoft Research, UK Amy Felty: University of Ottawa, Canada Claude Kirchner: LORIA & INRIA, France Paul Klint: CWI, The Netherlands Michael Maher: Griffith University, Australia and Loyola University Chicago, USA Dale Miller: The Pennsylvania State University, USA Roberto Nieuwenhuis: University of Barcelona, Spain Frank Pfenning: CMU, USA Francesca Rossi: University of Padova, Italy Scope of the Conference PPDP aims to stimulate research on the use of declarative methods in programming and on the design, implementation and application of programming languages that support such methods. Topics of interest include any aspect related to understanding, integrating and extending programming paradigms such as those for logic, functional, constraint, probabilistic, rule and object-oriented programming; concurrent extensions and mobile computing; type theory; support for modularity; use of logical methods in the design of program development tools; program analysis and verification; abstract interpretation; development of implementation methods; application of the relevant paradigms and associated methods in industry and education. This list is not exhaustive: submissions related to new and interesting ideas relating broadly to declarative programming are encouraged. The technical program of the conference will combine presentations of the accepted papers and system descriptions with invited talks and advanced tutorials. Previous PPDP meetings were held in Paris (1999), Montreal (2000), Firenze (2001). Topics of Interest Logic and Constraint Programming; Rule Programming; Object-Oriented Programming; Concurrent Programming; Mobile Computing; Specification Languages and Methods; Type and Module Systems; Program Logics and Verification; Program Analysis and Transformation; Abstract Machines and Compilation Methods; Parallel and Distributed Implementations; Programming Environments; Applications of Declarative Programming; Implementation Techniques; Logical and Semantical Aspects of Declarative Programming; Declarative and probabilistic programming. Paper Submissions Submissions must be received on or before March 21, 2002 (this is a HARD deadline) and must describe original, previously unpublished work that has not been simultaneously submitted for publication elsewhere. They must be written in English and, in case the work is accepted for presentation and publication, one of the author must attend the conference to present it. Submissions must contain a clearly delineated part intended for the proceedings not exceeding 12 pages and 9 pt (for a full description see the ACM conference format at http://www.acm.org/sigplan/conferences/author-info) and must have a cover page with an abstract of up to 200 words, keywords, postal and electronic mailing addresses, and phone and fax numbers of the corresponding author. Additional material for possible consideration by reviewers may be included in the form of appendices. Submitted papers can be either: Regular papers that will be judged in particular on originality, correctness and significance, or System descriptions that will be judged in particular on usefulness and design, originality of system design, implementation or application. They must contain a link to a working system. All submissions are to be electronic unless specifically approved by the Program Chair. Submissions in PostScript or PDF formats should be submitted via the conference management system as described on the web site. Authors will be notified of acceptance decisions by May 30, 2002 Camera-ready copies of the accepted papers must be received by June 30, 2002. Proceedings will be published by ACM Press. Authors of accepted papers will be required to sign the ACM copyright form, which will be made accessible from this site. Conference Venue and Related Events PPDP 2002 is part of a federation of colloquia known as Principles, Logics and Implementations of high-level programming languages (PLI 2002) which includes the ACM SIGPLAN International Conference on Functional Programming (ICFP 2002) and the first ACM SIGPLAN Conference on Generators and Components (GCSE/SAIG'02) . The colloquia and affiliated workshops will run from October 4 to October 8, 2002 and will be held in Pittsburgh, USA. Details about the affiliated conferences and workshops will appear at the URL http://pli2002.cs.brown.edu/. Sponsorship PPDP 2002 is sponsored by ACM SIGPLAN. ---------------------------------------------------------------- From luke@REDACTED Mon Mar 11 14:51:50 2002 From: luke@REDACTED (Luke Gorrie) Date: 11 Mar 2002 14:51:50 +0100 Subject: R8B-0 patches In-Reply-To: <200203110621.g2B6Lfj13975@vargen.levonline.com> References: <200203110621.g2B6Lfj13975@vargen.levonline.com> Message-ID: Per Bergqvist writes: > attached are two patches to avoid unnecessary compiler warnings. And here's a patch to avoid a segfault (dereference uninitialised pointer) when you get a bad message in the distribution protocol. (Not sure if anyone got this on contrib@REDACTED) -------------- next part -------------- A non-text attachment was scrubbed... Name: dist.patch Type: text/x-patch Size: 541 bytes Desc: not available URL: From matthias@REDACTED Mon Mar 11 23:55:51 2002 From: matthias@REDACTED (Matthias Lang) Date: Mon, 11 Mar 2002 23:55:51 +0100 Subject: zlib vulnerability affects erlang Message-ID: <15501.13815.548661.923874@antilipe.corelatus.se> Hi, I swiped this from the debian security mailing list. It appears to affect Erlang, since Erlang includes the vulnerable version of zlib, certainly open source R8B-0 does. See also http://www.gzip.org/zlib/advisory-2002-03-11.txt Seems pretty far-fetched that someone could come up with an exploit for this, though, there are fatter fish to fry. Matthias -------------------------------------------------------------------------- Debian Security Advisory DSA 122-1 security@REDACTED http://www.debian.org/security/ Michael Stone March 11th, 2002 -------------------------------------------------------------------------- Package : zlib, various Vulnerability : malloc error (double free) Problem-Type : potential remote root Debian-specific: no The compression library zlib has a flaw in which it attempts to free memory more than once under certain conditions. This can possibly be exploited to run arbitrary code in a program that includes zlib. If a network application running as root is linked to zlib, this could potentially lead to a remote root compromise. No exploits are known at this time. This vulnerability is assigned the CVE candidate name of CAN-2002-0059. From cpressey@REDACTED Tue Mar 12 23:30:19 2002 From: cpressey@REDACTED (Chris Pressey) Date: Tue, 12 Mar 2002 16:30:19 -0600 Subject: mysterious GS 1.4.0 problems Message-ID: <000b01c1ca15$7e6114a0$9064a8c0@PRESSEY> Hi all. I have encountered a problem using R8 and GS 1.4.0. Strangely, it only shows up on one of the three nodes R8 is installed on here (it's running WinNT, but so is one of the other nodes.) Upon doing a simple gs:config on a listbox, I get an error like so: =ERROR REPORT==== 12-Mar-2002::15:34:49 === Error in process <0.112.0> on node 'foo@REDACTED' with exit value: {{case_clause,48},[{gstk_port_handler,input_during_call,2}, {gstk_port_handler,handle_input,3},{gstk_port_handler,wait_reply,2}]} gs error: user backend died reason {{case_clause,48},[{gstk_port_handler,input_during_call,2}, {gstk_port_handler,handle_input,3},{gstk_port_handler,wait_reply,2}]} I have worked around this error by grabbing GS 1.3.8 from R7B2 and using it instead. It seems to work fine (in haste I just renamed the gs-1.3.8 directory to gs-1.4.0, it would probably be more prudent to actually change the registry entries so they point to wish.exe et al.) Hope this might help anyone who is having similar problems. I thought there wasn't much changed between GS 1.3.8 and 1.4.0, but it looks like something might have been accidentally disturbed... Chris From etxuwig@REDACTED Mon Mar 11 14:39:50 2002 From: etxuwig@REDACTED (Ulf Wiger) Date: Mon, 11 Mar 2002 14:39:50 +0100 (MET) Subject: how does timer: deal with real-time clock changes? In-Reply-To: <16342.57590.292461.513559@antilipe.corelatus.se> Message-ID: The following code in timer.erl seems to define this behaviour: timer_timeout([{Time, BRef, {repeat, Interv, To}, MFA} | Ts], SysTime) -> do_apply(MFA), Ts0 = insert_sort({Time + Interv, BRef, %% <<==== here! {repeat, Interv, To}, MFA}, Ts), timer_timeout(Ts0, SysTime). Since it adds Interv (in your case, 1000 ms) to the calculated trigger time, instead of the actual trigger time, you will end up with an interval timer that acts like you describe.... ...assuming that erlang:now() jumps around when the system clock is altered! I thought that erlang:now() had been adjusted on all platforms to adjust smoothly to changes to the system clock. This is the case on Solaris, at least. I do not see how the described behaviour could happen given a well-behaved erlang:now(). The method used to guarantee continuous operation in erlang:now() is that it samples the system clock and adjusts the clock speed up to +/- 1% if drift has occurred. Since timer.erl uses erlang:now(), this should guarantee that the timers fire fairly regularly. In that case, it's perfectly fine to bump the timeout interval the way timer.erl does (adding to the calculated time instead of the actual time.) This will prevent drift due to scheduling and calculation delays. /Uffe On Wed, 10 Dec 2003 matthias@REDACTED wrote: >Hi, > >On R7B-3 on PPC-linux, I just noticed that if I evaluate > > timer:apply_interval(1000, io, fwrite, ["."]). > >and then wind back the system time by a large amount (two months), the >timer seems to stop/freeze/die. Winding the time forward by two months >causes the timer to execute io:fwrite as fast as it can, i.e. without >a pause, forever (well, at least as long as I watched). > >Doing the same thing on R8A on my desktop seems to cause the timer to >stop/freeze in both cases. > >It seems reasonable for the timer to mess up one interval when the >time is changed, but it doesn't seem reasonable for it to freeze or go >wild. Anyone know what's going on? Workaround? > >Matthias > > From per@REDACTED Tue Mar 12 16:06:36 2002 From: per@REDACTED (Per Bergqvist) Date: Tue, 12 Mar 2002 16:06:36 +0100 Subject: Kernel poll R8B-0 patch (was: Re: R8B-0 devpoll patch) In-Reply-To: <87pu2j1gmo.fsf@kaka.blahonga.org> Message-ID: <200203121506.g2CF6eE01015@raven.levonline.com> Attached is an updated patch for kernel poll support. The support now includes Solaris /dev/poll, linux eventpoll (/dev/epoll) and Free BSD kqueue. (Are there any other variants ?) If you want to disable the support set the environment variable ERL_NO_KERNEL_POLL before starting the emulator. In addition to the patch there are new copies of config.h.in and configure to go in the otp_src_R8B-0/erts for those of you who lack autoheader and autoconf. Has anybody else tried out the previous patch ? Experiences ? /Per -------------- next part -------------- A non-text attachment was scrubbed... Name: devpoll_new_patch Type: application/octet-stream Size: 25013 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: config.h.in Type: application/octet-stream Size: 9404 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: configure Type: application/octet-stream Size: 166752 bytes Desc: not available URL: From info_isam@REDACTED Thu Mar 14 03:51:45 2002 From: info_isam@REDACTED (ISAM / Monteazul) Date: Thu, 14 Mar 2002 03:51:45 +0100 (CET) Subject: ISAM - Instituto do Som, Audiovisual e Multimédia Message-ID: <200203140251.g2E2pi081981@hades.cslab.ericsson.net> An HTML attachment was scrubbed... URL: From mvelev@REDACTED Thu Mar 14 09:33:40 2002 From: mvelev@REDACTED (mvelev@REDACTED) Date: Thu, 14 Mar 2002 03:33:40 -0500 (EST) Subject: Final CFP: MTV'02 deadline on March 25 Message-ID: <200203140833.g2E8XeWE010732@yamsrv3.ece.gatech.edu> Call for Papers ===================================================================== Microprocessor Test and Verification (MTV'02) June 6-7, 2002, Austin, Texas, USA http://ece.tamu.edu/MTV/ ===================================================================== Submission deadline: March 25, 2002 Sponsored by: IEEE Computer Society Test Technology Technical Council General Chair: Magdy S. Abadir (abadir@REDACTED), Motorola Program Chair: Li-C. Wang (licwang@REDACTED), UCSB Areas of Interest: -Validation of microprocessors -Experiences on test and verification of high performance processors -Test/verification of multimedia processors -Performance testing -High-level test generation for functional verification -Emulation techniques -Silicon debugging -Formal techniques and their applications -Verification coverage -Test generation at the transistor level -Equivalence checking of custom circuits at the transistor level -Circuit level verification -Switch-level circuit modeling -Timing verification techniques -Path analysis for verification or test -Design error models -Design error diagnosis -Design for testability or verifiability -Optimizing SAT procedures for application to testing and formal verification From matthias@REDACTED Thu Mar 14 14:15:30 2002 From: matthias@REDACTED (Matthias Lang) Date: Thu, 14 Mar 2002 14:15:30 +0100 Subject: how does timer: deal with real-time clock changes? In-Reply-To: References: <16342.57590.292461.513559@antilipe.corelatus.se> Message-ID: <15504.41586.537460.762376@antilipe.corelatus.se> Ulf Wiger writes: > The following code in timer.erl seems to define this behaviour: > timer_timeout([{Time, BRef, {repeat, Interv, To}, MFA} | Ts], > SysTime) -> > do_apply(MFA), > Ts0 = insert_sort({Time + Interv, BRef, %% <<==== here! > {repeat, Interv, To}, MFA}, Ts), > timer_timeout(Ts0, SysTime). > > Since it adds Interv (in your case, 1000 ms) to the calculated > trigger time, instead of the actual trigger time, you will end up > with an interval timer that acts like you describe.... > > ...assuming that erlang:now() jumps around when the system clock > is altered! > > I thought that erlang:now() had been adjusted on all platforms to > adjust smoothly to changes to the system clock. This is the case > on Solaris, at least. I do not see how the described behaviour > could happen given a well-behaved erlang:now(). Your description of what's going on is perfect. The problem is with the code which smoothes out time changes. There are two versions in erl_time_sup.c, and the one used for Linux systems starts like this static void get_tolerant_timeofday(SysTimeval *tvp) { clock_t current_ct; SysTimeval current_tv; Milli ct_diff; Milli tv_diff; Milli current_correction; long act_correction; /* Never more than a long (?) */ Milli max_adjust; Milli is a typedef for a 64-bit integer. The comment points to the root of the problem. In my case, huge adjustments (say, 2 months) caused timers to fail, and smaller ones did not. And indeed, 2 months of milliseconds (5184000000) does not fit in a 32 bit integer. Changing act_correction's type to Milli fixes the problem. Any reason why this shouldn't be put in to R8B-1? Aside: it is fundamentally wrong to combine wall time with the base used for time interval measurements if you cannot guarantee that wall time is continuous. No system that allows manual time adjustment can guarantee that. Smoothing out now() is a hack which we're probably stuck with because of existing code which relies on now() being continuous, including the timer() module. A quick look at time.c suggests that the BIF timers (e.g. erlang:send_after) are not related to now(). Does anyone know if 'receive' timeouts are? Matthias From etxuwig@REDACTED Thu Mar 14 14:56:39 2002 From: etxuwig@REDACTED (Ulf Wiger) Date: Thu, 14 Mar 2002 14:56:39 +0100 (MET) Subject: how does timer: deal with real-time clock changes? In-Reply-To: <15504.41586.537460.762376@antilipe.corelatus.se> Message-ID: On Thu, 14 Mar 2002, Matthias Lang wrote: >Aside: it is fundamentally wrong to combine wall time with the > base used for time interval measurements if you cannot > guarantee that wall time is continuous. No system that allows > manual time adjustment can guarantee that. Smoothing out now() > is a hack which we're probably stuck with because of existing > code which relies on now() being continuous, including the > timer() module. I think the erlang:now() time (properly adjusted) can be considered to relate to actual system time much like UTC time relates to Daylight Savings Time. It's much easier to write time-dependent programs if you can safely assume that time will not start arbitrarily jumping back and forth. The AXD 301 approach is to always keep the operating system in UTC Time, and set the TZ environment variable for the Erlang VM, so that we can support local time in logs and other presentation formats. We dismissed the Solaris approach of patching the OS everytime the rules for Daylight Savings Time change (which they constantly do.) Instead we let the operator enter the appropriate rules for local time through a web interface. We also keep track of any discrepancy between erlang:now() and the system clock. Since erlang:now() will adjust with +/- 1%, small discrepancies will resolve themselves, but large ones will take too long. Thus, we generate an alarm if the difference is too great, asking the operator to restart each CPU, one by one. The "floating" erlang:now() will ensure that the system doesn't freeze or simply die, but we don't know how to hide the discrepancy from the operator. All this will basically only happen if the operator has messed with things he/she should have left alone. The system clock is set first with rdate (against a known time reference) at system startup, and then fine-tuned with NTP. We still have to deal with the fact that operators want to schedule operations in local time, which means that the scheduled time could potentially be skipped completely (e.g. if local time jumps from 2am to 3am, and an operation is scheduled for 2.30). One can of course warn the operator if the scheduled operation falls inside such an interval, but then the operator could of course schedule the operation first, and then change the rules for DST! It would surely be wonderful if someone could invent a simple and elegant solution for all this. /Uffe From per@REDACTED Fri Mar 15 23:53:24 2002 From: per@REDACTED (Per Bergqvist) Date: Fri, 15 Mar 2002 23:53:24 +0100 Subject: R8B-0 inet drv patch In-Reply-To: <15506.3461.390118.368638@antilipe.corelatus.se> Message-ID: <200203152253.g2FMrO001885@hunden.levonline.com> Hi, attached is a patch to fix the problem with prebound sockets not being deselected in inet_drv. (The SIOCGIFCONF bug fix is also included in this patch). /Per ========================================================= Per Bergqvist Synapse Systems AB Phone: +46 709 686 685 Email: per@REDACTED -------------- next part -------------- A non-text attachment was scrubbed... Name: inet_drv_patch_020315 Type: application/octet-stream Size: 2129 bytes Desc: not available URL: From ugoh_benjamin@REDACTED Sat Mar 16 01:06:38 2002 From: ugoh_benjamin@REDACTED (ugoh benjamin) Date: Fri, 15 Mar 2002 16:06:38 -0800 (PST) Subject: URGENT REPLY Message-ID: <20020316000638.91952.qmail@web20204.mail.yahoo.com> ENGR. UGOH BENJAMIN Ph.D (UNN), MNIM, MICA Financial Controller & Contract Award Committee Chairman (NEPA) TEL : 234-80-33010230 FAX : 234-1-7590822 Dear Sir, REQUEST FOR URGENT/CONFIDENTIAL BUSINESS RELATIONSHIP. I am Engr. Taiwo Folahan the Financial Controller and Contract AwardCommittee Chairman in the National Electric Power Authority in Lagos, Nigeria. My colleagues have assigned me to seek for assistance of areliable foreigner through whom we can transfer the sum of US$38,600,000.00(Thirty-eight Million, Six Hundred Thousand U.S. Dollars) which arose fromthe deliberate over-inflated contract value for the General expansion of theKanji Dam Termal Station on behalf of National Electric Power Authority(NEPA) for increased energy generation to Nigeria and some other WestAfrican countries. The contract was awarded in 1998 during the General Sani Abacha regime to an expatriate firm with the consideration of 10% commission agreement on the total contract value of US$386,000,000. The contract has been completed and the contractor has long been paid, we are now left with this US$38,600,000 representing the 10% our own share as agreed presently in the Federal Government account. The Current favourable political/economic climate in this country now presented an opportunity for this money to be transferred out of the country. A friend who was formally residing in your country gave me your contact address. He told me that you are trustworthy though he did not know my intention. This assurance gave me courage to link you up for this particular transaction, and I hope it will be of mutual benefit to all of us. Our contact in the Federal Ministry of Finance have given us a go ahead advice to begin the process of the remittance, hence we have set in motion the machinery for the take off of this transaction and further action will commence immediately we hear from you. We have agreed that after the transfer of the money into your account, you shall be entitled to 30% of the total amount transferred, while the remaining 70% will be for us. We decided to give you this percentage in order to motivate you and also to let you feel satisfied at the end of this transaction. The nature of your business is not particularly relevant for the success of this transaction. All we require is your willingness to co-operate and assurance that our own share will be given to us when this money is transferred into your account. All necessary precautions have been taken to ensure a no risk situation on the sides of both parties and it is believed that the conclusion of this transaction will not last more than 12 working days, However, we are going to retrieve the whole documents that will relate to this transaction and destroy them after the transfer of the money into your account to avoid any trace of the money. Since we have no knowledge of business, our plan is to invest this money into Real Estate, Stocks and we can also invest in some other profitable business in your country based on your advice because many of our years has been spent as civil servant, and we may likely resign from government service to private business after this money is transferred into your account. Please note that this business is strictly confidential and must not be disclosed to a third party. This is necessary to avoid disclosure that may jeopardise the transaction. If this proposal is acceptable to you, or if you have any questions, feel free to contact me on the above Telephone or Fax numbers or email , I will oblige you with further information and please I need your private telephone/facsimile number, for easy and confidential communication. Best Regards, ENGR. UGOH BENJAMIN --------------------------------- Do You Yahoo!? Yahoo! Sports - live college hoops coverage -------------- next part -------------- An HTML attachment was scrubbed... URL: From olgeni@REDACTED Sat Mar 16 21:08:54 2002 From: olgeni@REDACTED (Jimmy Olgeni) Date: Sat, 16 Mar 2002 21:08:54 +0100 (CET) Subject: erlang and freebsd [large] Message-ID: <20020316192107.C30167-100000@olgeni.olgeni> Hello everybody. I made some patches to update the Erlang port in the FreeBSD ports collection to R8B. Some of them may be useful outside FreeBSD too, or maybe they can be integrated in the official release to avoid having lots of small patches to update at every release. Lots of these patches where already in the Erlang port. If I remember correctly, FreeBSD support for os_mon came from Samuel Tardieu. Some other stuff came from previous maintainers :o) The following patches add support for INSTALL_SCRIPT, to be used for installing scripts. INSTALL_PROGRAM causes install to "strip" the script like an executable, and fail. I don't know if this applies to other OSs too. === patch-ab === --- lib/inets/priv/Makefile.orig Tue Nov 28 20:38:31 2000 +++ lib/inets/priv/Makefile Tue Nov 28 20:38:38 2000 @@ -57,7 +57,7 @@ release_spec: opt $(INSTALL_DIR) $(RELSYSDIR)/priv/bin - $(INSTALL_PROGRAM) $(EXECUTABLES) $(RELSYSDIR)/priv/bin + $(INSTALL_SCRIPT) $(EXECUTABLES) $(RELSYSDIR)/priv/bin release_docs_spec: # End === patch-ac === --- erts/etc/common/Makefile.in.orig Tue Nov 28 20:41:14 2000 +++ erts/etc/common/Makefile.in Tue Nov 28 20:46:05 2000 @@ -65,6 +65,7 @@ INSTALL = @INSTALL@ INSTALL_DIR = $(INSTALL) -d INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_DATA = @INSTALL_DATA@ ifeq ($(findstring solaris,$(TARGET)),solaris) @@ -238,13 +239,13 @@ endif $(INSTALL_DIR) $(RELEASE_PATH)/erts-$(VSN)/bin ifneq ($(findstring vxworks,$(TARGET)), vxworks) - $(INSTALL_PROGRAM) erl.src $(RELEASE_PATH)/erts-$(VSN)/bin + $(INSTALL_SCRIPT) erl.src $(RELEASE_PATH)/erts-$(VSN)/bin endif $(INSTALL_PROGRAM) $(INSTALL_PROGS) $(RELEASE_PATH)/erts-$(VSN)/bin - $(INSTALL_PROGRAM) $(INSTALL_TOP) $(RELEASE_PATH) + $(INSTALL_SCRIPT) $(INSTALL_TOP) $(RELEASE_PATH) ifneq ($(INSTALL_MISC),) $(INSTALL_DIR) $(RELEASE_PATH)/misc - $(INSTALL_PROGRAM) $(INSTALL_MISC) $(RELEASE_PATH)/misc + $(INSTALL_SCRIPT) $(INSTALL_MISC) $(RELEASE_PATH)/misc endif ifneq ($(INSTALL_SRC),) $(INSTALL_DIR) $(RELEASE_PATH)/erts-$(VSN)/src === patch-ak === --- lib/inets/examples/Makefile.orig Tue Nov 28 20:35:48 2000 +++ lib/inets/examples/Makefile Tue Nov 28 20:36:24 2000 @@ -176,7 +176,7 @@ $(INSTALL_DIR) $(RELSYSDIR)/examples/server_root/auth $(INSTALL_DATA) $(AUTH_FILES) $(RELSYSDIR)/examples/server_root/auth $(INSTALL_DIR) $(RELSYSDIR)/examples/server_root/cgi-bin - $(INSTALL_PROGRAM) $(CGI_FILES) $(RELSYSDIR)/examples/server_root/cgi-bin + $(INSTALL_SCRIPT) $(CGI_FILES) $(RELSYSDIR)/examples/server_root/cgi-bin $(INSTALL_DIR) $(RELSYSDIR)/examples/server_root/conf $(INSTALL_DATA) $(CONF_FILES) $(RELSYSDIR)/examples/server_root/conf $(INSTALL_DIR) $(RELSYSDIR)/examples/server_root/htdocs/open === patch-am === --- lib/mnesia/examples/Makefile.orig Sun Dec 2 19:00:59 2001 +++ lib/mnesia/examples/Makefile Sun Dec 2 19:01:32 2001 @@ -95,7 +95,7 @@ bench.config6 \ bench.config7 \ $(RELSYSDIR)/examples/bench) - (cd bench; $(INSTALL_PROGRAM) bench.sh $(RELSYSDIR)/examples/bench) + (cd bench; $(INSTALL_SCRIPT) bench.sh $(RELSYSDIR)/examples/bench) release_docs_spec: === patch-ao === --- make/otp.mk.in.orig Fri Dec 7 17:59:22 2001 +++ make/otp.mk.in Fri Dec 7 17:59:32 2001 @@ -41,6 +41,7 @@ INSTALL = @INSTALL@ INSTALL_DIR = @INSTALL_DIR@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_DATA = @INSTALL_DATA@ CC = @CC@ These patches add FreeBSD support to os_mon. === patch-af === --- lib/os_mon/c_src/Makefile.in.orig Tue Nov 23 16:14:47 1999 +++ lib/os_mon/c_src/Makefile.in Sat Dec 2 22:35:09 2000 @@ -53,6 +53,7 @@ PROGRAMS = \ memsup @os_mon_programs@ C_FILES= $(PROGRAMS:%=%.c) +LKSTAT= @os_mon_kstat@ endif TARGET_FILES= $(PROGRAMS:%=$(BINDIR)/%) @@ -97,7 +98,7 @@ $(LD) $(LDFLAGS) -o $@ $< $(BINDIR)/cpu_sup: $(OBJDIR)/cpu_sup.o - $(LD) $(LDFLAGS) -o $@ $< -lkstat + $(LD) $(LDFLAGS) -o $@ $< $(LKSTAT) $(OBJDIR)/%.o: %.c $(CC) -c -o $@ $(ALL_CFLAGS) $< === patch-ag === --- lib/os_mon/c_src/memsup.c.orig Mon Sep 20 23:05:24 1999 +++ lib/os_mon/c_src/memsup.c Sat Dec 2 22:23:25 2000 @@ -89,6 +89,12 @@ #include #include #endif +#ifdef __FreeBSD__ +#include +#include +#include +#include +#endif /* commands */ #include "memsup.h" @@ -172,6 +178,16 @@ load_statistics(); *tot = (latest.numBytesFree + latest.numBytesAlloc) >> shiftleft; *used = latest.numBytesAlloc >> shiftleft; +#elif defined(__FreeBSD__) + int mib[2]; + size_t len; + struct vmtotal memory; + mib[0] = CTL_VM; + mib[1] = VM_METER; + len = sizeof memory; + sysctl(mib, 2, &memory, &len, NULL, 0); + *tot = memory.t_vm >> shiftleft; + *used = memory.t_avm >> shiftleft; #elif defined(_SC_AVPHYS_PAGES) /* Does this exist on others than Solaris2? */ unsigned long avPhys, phys, pgSz; # End === patch-ah === --- lib/os_mon/c_src/cpu_sup.c.orig Sat Dec 2 22:12:38 2000 +++ lib/os_mon/c_src/cpu_sup.c Sat Dec 2 22:47:11 2000 @@ -26,7 +26,14 @@ */ #include +#ifdef __FreeBSD__ +#include +#include +#include +#include +#else #include +#endif #define FD_IN 0 #define FD_OUT 1 @@ -45,20 +52,23 @@ static void send(unsigned int data); static void error(char* err_msg); +#ifndef __FreeBSD__ static kstat_ctl_t *kc; static kstat_t *ks; +#endif int main(int argc, char** argv) { - kid_t kid; char cmd; int rc; +#ifndef __FreeBSD__ + kid_t kid; kc = kstat_open(); if(!kc) error("Can't open header kstat"); ks = kstat_lookup(kc,"unix",0,"system_misc"); if(!ks) error("Can't open system_misc kstat"); - +#endif while(1) { rc = read(FD_IN, &cmd, sizeof(cmd)); @@ -79,6 +89,32 @@ } static unsigned int measure(char* name) { +#ifdef __FreeBSD__ + size_t len; + int mib[3]; + if (!strcmp (name, "nproc")) { + mib[0] = CTL_KERN; + mib[1] = KERN_PROC; + mib[2] = KERN_PROC_ALL; + sysctl(mib, 3, NULL, &len, NULL, 0); + return len/sizeof(struct kinfo_proc); + } else { + struct loadavg load; + mib[0] = CTL_VM; + mib[1] = VM_LOADAVG; + len = sizeof load; + sysctl(mib, 2, &load, &len, NULL, 0); + if (!strcmp (name, "avenrun_1min")) { + return load.ldavg[0] * 256 / load.fscale; + } else if (!strcmp (name, "avenrun_5min")) { + return load.ldavg[1] * 256 / load.fscale; + } else if (!strcmp (name, "avenrun_15min")) { + return load.ldavg[2] * 256 / load.fscale; + } else { + return -1; + } + } +#else kstat_named_t* entry; kstat_read(kc,ks,NULL); @@ -90,6 +126,7 @@ return -1; return entry->value.ul; +#endif } static void send(unsigned int data) { === patch-ai === --- lib/os_mon/c_src/ferrule.c.orig Sat Dec 2 22:13:49 2000 +++ lib/os_mon/c_src/ferrule.c Sat Dec 2 22:14:03 2000 @@ -17,7 +17,9 @@ */ #include #include +#ifndef __FreeBSD__ #include +#endif #include #include #include This will also detect strerror_r, which is now present in FreeBSD and must not be defined. === patch-an === --- erts/configure.in.orig Mon Oct 8 10:36:08 2001 +++ erts/configure.in Sun Jan 20 16:06:23 2002 @@ -436,7 +436,7 @@ dnl ---------------------------------------------------------------------- AC_CHECK_FUNCS([ieee_handler fpsetmask finite res_gethostbyname dlopen \ - poll pread pwrite writev memmove strerror strncasecmp \ + poll pread pwrite writev memmove strerror strerror_r strncasecmp \ gethrtime localtime_r gmtime_r mremap memcpy mallopt]) AC_FUNC_SETVBUF_REVERSED AC_FUNC_VFORK @@ -886,10 +886,13 @@ # Os mon stuff. #-------------------------------------------------------------------- AC_SUBST(os_mon_programs) -AC_CHECK_LIB(kstat, kstat_open, [os_mon_programs="$os_mon_programs cpu_sup"]) +AC_SUBST(os_mon_kstat) +AC_CHECK_LIB(kstat, kstat_open, [os_mon_kstat="-lkstat", os_mon_programs="$os_mon_programs cpu_sup"]) case $host_os in solaris2*) os_mon_programs="$os_mon_programs ferrule mod_syslog" ;; + freebsd*) + os_mon_programs="$os_mon_programs cpu_sup ferrule mod_syslog" ;; esac This fixes a bug in the configuration script. Due to a ./configure recursion bug, Erlang tries to install using INSTALL=../../../../../..., which will fail :o) This used to be a bug in older autoconf releases (at least google said so). === post-patch-configure === --- configure.orig Fri Dec 7 16:13:39 2001 +++ configure Fri Dec 7 16:19:33 2001 @@ -1081,6 +1081,7 @@ *) # Relative path. ac_sub_cache_file="$ac_dots$cache_file" ;; esac + ac_given_INSTALL="$INSTALL" case "$ac_given_INSTALL" in [/$]*) INSTALL="$ac_given_INSTALL" ;; *) INSTALL="$ac_dots$ac_given_INSTALL" ;; This one fixes a syntax error when there's more than one lib/sasl* directory. === patch-aj === --- ./erts/etc/unix/Install.src.orig Wed Jan 17 17:18:57 2001 +++ ./erts/etc/unix/Install.src Wed Jan 17 17:35:40 2001 @@ -97,7 +97,8 @@ chmod 755 start_erl fi -if [ -d $ERL_ROOT/lib/sasl* ] +set $ERL_ROOT/lib/sasl* +if [ -d $1 ] then (cd $ERL_ROOT/releases echo %I_VSN% %I_SYSTEM_VSN% > start_erl.data) @@ -171,4 +172,4 @@ ./misc/format_man_pages $ERL_ROOT fi - +exit 0 If you have any questions just drop me a note, I don't have a clue but I'll try to help :o) -- jimmy From hal@REDACTED Sun Mar 17 20:54:49 2002 From: hal@REDACTED (Hal Snyder) Date: 17 Mar 2002 13:54:49 -0600 Subject: erlang and freebsd [large] In-Reply-To: <20020316192107.C30167-100000@olgeni.olgeni> (Jimmy Olgeni's message of "Sat, 16 Mar 2002 21:08:54 +0100 (CET)") References: <20020316192107.C30167-100000@olgeni.olgeni> Message-ID: <87sn6zynp2.fsf@gamera.vail> Jimmy Olgeni writes: > The following patches add support for INSTALL_SCRIPT, to be used for > installing scripts. INSTALL_PROGRAM causes install to "strip" the > script like an executable, and fail. I don't know if this applies to > other OSs too. Nice! BTW, the INSTALL_SCRIPT patches *are* needed for building on NetBSD as well. From VISUAL@REDACTED Sun Mar 17 21:36:47 2002 From: VISUAL@REDACTED (DISTRIBUIDORA INFORMATICA) Date: Sun, 17 Mar 2002 21:36:47 Subject: IMPERDIVEL NAO PERCA !!! Message-ID: <200203180033.g2I0X4002506@hades.cslab.ericsson.net> SHOPPING VIRTUAL ? AQUI WWW.VISUALMICRO.COM.BR Aproveite, tudo na ?rea de inform?tica, equipamentos, suprimentos, Cds, Processadores, Gravadoras, Mem?rias, consulte nossa loja, ou fa?a uma cota??o on-line. CD VIRGEM DR. HANK FOSCO/AZUL - 80MIN/700MB R$ 56,77 TUBO COM 100 UNIDADES GRAVADOR CD LG 32X10X40 R$ 328,68 IDE - OEM Se por ventura n?o quiser mais receber nossas propagandas, favor retornar o email com a titulo REMOVER! From mbj@REDACTED Mon Mar 18 09:48:02 2002 From: mbj@REDACTED (Martin Bjorklund) Date: Mon, 18 Mar 2002 09:48:02 +0100 (CET) Subject: emulator bug Message-ID: <20020318.094802.26963263.mbj@bluetail.com> There's a bug in the emu, r8 (and maybe r7; at least in the patched r7 we use): if you've had more than 1024 ports, and a driver calls driver_exit, the link to the port in the connected process is not removed. This means that some bytes are leaked. Attached is a program to reproduce the bug, and a patch to io.c for r8 which fixes the bug. /martin -------------- next part -------------- -module(d). -compile(export_all). d() -> d(1050). d(N) -> spawn(?MODULE, dd, [N]). dd(N) -> ddd(N), Links = length(element(2, erlang:process_info(self(), links))), io:format("BUG: ~p (~p links, ~p ports)\n", [Links /= 0, Links, length(erlang:ports())]). ddd(0) -> ok; ddd(N) -> erl_epmd:port_please("foo", "localhost"), ddd(N-1). -------------- next part -------------- *** otp_src_R8B-0.orig/erts/emulator/beam/io.c Mon Mar 18 09:13:09 2002 --- otp_src_R8B-0/erts/emulator/beam/io.c Mon Mar 18 09:10:08 2002 *************** *** 2602,2609 **** /* unlink port from connected */ if ((rp = pid2proc(prt->connected)) != NULL) ! del_link(find_link(&rp->links, LNK_LINK, prt->id, ! make_port2(THIS_NODE, ix), NIL)); if (err == 0) return driver_failure_term(ix, am_normal, 0); --- 2602,2608 ---- /* unlink port from connected */ if ((rp = pid2proc(prt->connected)) != NULL) ! del_link(find_link(&rp->links, LNK_LINK, prt->id, NIL)); if (err == 0) return driver_failure_term(ix, am_normal, 0); From kostis@REDACTED Mon Mar 18 15:52:25 2002 From: kostis@REDACTED (Kostis Sagonas) Date: Mon, 18 Mar 2002 15:52:25 +0100 (MET) Subject: Buglet in reader/shell?? Message-ID: <200203181452.PAA14235@harpo.it.uu.se> On the SPARC, I get: ------------------------------------------------------------ Erlang (BEAM) emulator version 2002.03.10 [source] [hipe] Eshell V2002.03.10 (abort with ^G) 1> 3.14e+400. ** 1: illegal float ** ------------------------------------------------------------ as it should be. On an x86 running Linux, reading the same float appears to result in some sort of an infinite loop. Kostis. PS. I am only running HiPE-enabled systems these days, but I do not see where this might influence the behaviour of the reader or the Erlang shell. From enano@REDACTED Mon Mar 18 17:22:31 2002 From: enano@REDACTED (Miguel Barreiro Paz) Date: Mon, 18 Mar 2002 17:22:31 +0100 (CET) Subject: Buglet in reader/shell?? In-Reply-To: <200203181452.PAA14235@harpo.it.uu.se> Message-ID: > PS. I am only running HiPE-enabled systems these days, but I do > not see where this might influence the behaviour of the reader > or the Erlang shell. Same bug with BEAM on Linux. Regards, Miguel From daniel.neri@REDACTED Mon Mar 18 18:01:05 2002 From: daniel.neri@REDACTED (Daniel =?iso-8859-1?q?N=E9ri?=) Date: 18 Mar 2002 18:01:05 +0100 Subject: Buglet in reader/shell?? In-Reply-To: <200203181452.PAA14235@harpo.it.uu.se> References: <200203181452.PAA14235@harpo.it.uu.se> Message-ID: <87hendzu7i.fsf@ebbot.local.sigicom.com> Kostis Sagonas writes: > On an x86 running Linux, reading the same float appears to result in > some sort of an infinite loop. I'm not sure if you were complaining about snapshots, but R8B works fine for me here: $ uname -srm NetBSD 1.5.3_ALPHA i386 $ erl Erlang (BEAM) emulator version 5.1 [source] Eshell V5.1 (abort with ^G) 1> 3.14e+400. ** 1: illegal float ** Regards, --Daniel From olgeni@REDACTED Mon Mar 18 21:35:32 2002 From: olgeni@REDACTED (Jimmy Olgeni) Date: Mon, 18 Mar 2002 21:35:32 +0100 (CET) Subject: Buglet in reader/shell?? In-Reply-To: Message-ID: <20020318213418.D85485-100000@olgeni.olgeni> On Mon, 18 Mar 2002, Miguel Barreiro Paz wrote: > Same bug with BEAM on Linux. FreeBSD x86, BEAM 5.1 (R8B)... same bug here! -- jimmy From hakan.stenholm@REDACTED Mon Mar 18 21:51:28 2002 From: hakan.stenholm@REDACTED (=?ISO-8859-1?Q?H=E5kan_Stenholm?=) Date: Mon, 18 Mar 2002 21:51:28 +0100 Subject: Buglet in reader/shell?? Message-ID: MacOsX works as expected: [c213-100-94-181:~] hokan% erl Erlang (BEAM) emulator version 5.1 [source] Eshell V5.1 (abort with ^G) 1> 3.14e+400. ** 1: illegal float ** 1> From fredrik.linder@REDACTED Tue Mar 19 08:37:31 2002 From: fredrik.linder@REDACTED (Fredrik Linder) Date: Tue, 19 Mar 2002 08:37:31 +0100 Subject: Buglet in reader/shell?? References: Message-ID: <001301c1cf18$f2a74de0$c3b7f2d5@frelin> On windows: Erlang (BEAM) emulator version 5.1 [threads:0] Eshell V5.1 (abort with ^G) 1> 3.14e+400. 1.00000e+0 2> Regards /Fredrik ----- Original Message ----- From: "Miguel Barreiro Paz" To: "Kostis Sagonas" Cc: Sent: Monday, March 18, 2002 5:22 PM Subject: Re: Buglet in reader/shell?? > > > PS. I am only running HiPE-enabled systems these days, but I do > > not see where this might influence the behaviour of the reader > > or the Erlang shell. > > Same bug with BEAM on Linux. > > Regards, > > Miguel > > > From bjorn@REDACTED Tue Mar 19 09:38:29 2002 From: bjorn@REDACTED (Bjorn Gustavsson) Date: 19 Mar 2002 09:38:29 +0100 Subject: Buglet in reader/shell?? In-Reply-To: Kostis Sagonas's message of "Mon, 18 Mar 2002 15:52:25 +0100 (MET)" References: <200203181452.PAA14235@harpo.it.uu.se> Message-ID: It is actually not the Erlang emulator that is hanging, but the shell process that has died. By pressing Ctrl+G, you can start up a new shell. Investigating further, the problem seems to be in the list_to_float/1 BIF. list_to_float/1 calls atof(), which in this case returns the special value "inf". This can be seen if you immediately pass the return value to erlang:display/1 (which basically just calls printf()): 3> erlang:display(list_to_float("1.0e400")). inf true 4> What apparently happened, is that the "inf" value caused a floating point exception in a later operation in the shell process, when the shell process did not expect any problem and didn't protect the operation by a catch. The cure to the problem is probably to use strtod() instead of atof(). strtod() has better error reporting. /Bjorn Kostis Sagonas writes: > On the SPARC, I get: > > ------------------------------------------------------------ > Erlang (BEAM) emulator version 2002.03.10 [source] [hipe] > > Eshell V2002.03.10 (abort with ^G) > 1> 3.14e+400. > ** 1: illegal float ** > ------------------------------------------------------------ > > as it should be. On an x86 running Linux, reading the same > float appears to result in some sort of an infinite loop. > > Kostis. > > PS. I am only running HiPE-enabled systems these days, but I do > not see where this might influence the behaviour of the reader > or the Erlang shell. > -- Bj?rn Gustavsson Ericsson Utvecklings AB bjorn@REDACTED ?T2/UAB/F/P BOX 1505 +46 8 727 56 87 125 25 ?lvsj? From mbj@REDACTED Tue Mar 19 11:58:07 2002 From: mbj@REDACTED (Martin Bjorklund) Date: Tue, 19 Mar 2002 11:58:07 +0100 (CET) Subject: emulator bug In-Reply-To: <20020318.094802.26963263.mbj@bluetail.com> References: <20020318.094802.26963263.mbj@bluetail.com> Message-ID: <20020319.115807.69060861.mbj@bluetail.com> I apparently messed up the patch file :( Sorry about that. Here's a new one. /martin -------------- next part -------------- *** otp_src_R8B-0.orig/erts/emulator/beam/io.c Mon Mar 18 09:13:09 2002 --- otp_src_R8B-0/erts/emulator/beam/io.c Mon Mar 18 09:10:08 2002 *************** *** 2602,2609 **** /* unlink port from connected */ if ((rp = pid2proc(prt->connected)) != NULL) ! del_link(find_link(&rp->links, LNK_LINK, ! make_port2(THIS_NODE, ix), NIL)); if (err == 0) return driver_failure_term(ix, am_normal, 0); --- 2602,2608 ---- /* unlink port from connected */ if ((rp = pid2proc(prt->connected)) != NULL) ! del_link(find_link(&rp->links, LNK_LINK, prt->id, NIL)); if (err == 0) return driver_failure_term(ix, am_normal, 0); From mh@REDACTED Tue Mar 19 08:38:08 2002 From: mh@REDACTED (Michael Hanus) Date: Tue, 19 Mar 2002 08:38:08 +0100 Subject: Functional and Declarative Programming in Education (FDPE02) Message-ID: <200203190738.IAA10895@petrus.informatik.uni-kiel.de> Functional and Declarative Programming in Education (FDPE02) A one day workshop at PLI'02 Monday 7 October 2002, Pittsburgh, PA, USA CALL FOR SUBMISSIONS Functional and declarative programming plays an increasingly important role in computing education at all levels. The aim of this workshop is to bring together educators and others who are interested in exchanging ideas on how to use a functional or declarative programming style in the classroom. Submissions are sought in a variety of forms, including: - Standard presentations (30 minutes) - Short talks or "tricks of the trade" presentations (10 minutes) The organisers would also welcome other sorts of submissions, such as software demos, panels, very short talks and so on. Michael Hanus, University of Kiel, Germany Shriram Krishnamurthi, Brown University, RI, USA Simon Thompson, University of Kent, UK More details at the FPDE02 website: FDPE02: http://www.cs.ukc.ac.uk/people/staff/sjt/fdpe02/description.html PLI'02: http://pli2002.cs.brown.edu/ From svg@REDACTED Wed Mar 20 01:37:02 2002 From: svg@REDACTED (Vladimir Sekissov) Date: Wed, 20 Mar 2002 05:37:02 +0500 (YEKT) Subject: Partitioned network solving Message-ID: <20020320.053702.113451387.svg@surnet.ru> Good day, I'm bother on partitioned network solving in my distributed application. It seems that for global names conflict resolving later registered processes are unregistered. So I register global process in my application and use modified version of Ulf Wiger nodemon.erl (# Message-Id: <200003091440.PAA02811@REDACTED>) and code below on all application nodes, but I'm not sure that this solution fully correct. Can somebody point me to possible troubles. Another question - I don't use dist_auto_connect = once in config file but when I have suspended one node with Ctrl-G from shell they don't try to connect after and I need to ping one of them explicitly. %% %% nodemon_handler(FromNode, State) -> {Action, NewState} %% called by nodemon when network partitioning detected %% FromNode - node detected as partitioned %% State - handler state %% Action - stop | restart | reboot | nothing %% NewState - new handler state %% nodemon_handler(FromNode, State) -> %% tac_master - application globally registered process case global:whereis_name(tac_master) of undefined -> ?LOG_ERROR("Partitioned network (~p,~p), no tac_master", [node(), FromNode]), {nothing, State}; _ -> MasterNode = wait_name_resolve(FromNode), if MasterNode == node() -> %% we are master in low %% global has already unregistered process on backup node {nothing, State}; %% we are syncing with master only MasterNode == FromNode -> mnesia:set_master_nodes([MasterNode]), {restart, State}; %is not a master skip it true -> {nothing, State} end end. wait_name_resolve(RemNode) -> OurVsn = node(global:whereis_name(tac_master)), RemVsn = case rpc:call(RemNode, global, whereis_name, [tac_master]) of {badrpc, _} -> OurVsn; RemPid -> rpc:call(RemNode, erlang, node, [RemPid]) end, if OurVsn == RemVsn -> OurVsn; true -> wait_name_resolve(RemNode) end. --- Best Regards, Vladimir Sekissov From etxuwig@REDACTED Wed Mar 20 09:07:43 2002 From: etxuwig@REDACTED (Ulf Wiger) Date: Wed, 20 Mar 2002 09:07:43 +0100 (MET) Subject: Partitioned network solving In-Reply-To: <20020320.053702.113451387.svg@surnet.ru> Message-ID: On Wed, 20 Mar 2002, Vladimir Sekissov wrote: >Good day, > >I'm bother on partitioned network solving in my distributed >application. It seems that for global names conflict resolving >later registered processes are unregistered. So I register >global process in my application and use modified version of Ulf >Wiger nodemon.erl (# Message-Id: ><200003091440.PAA02811@REDACTED>) and code below on all >application nodes, but I'm not sure that this solution fully >correct. Can somebody point me to possible troubles. >Another question - I don't use dist_auto_connect = once in config file >but when I have suspended one node with Ctrl-G from shell they don't >try to connect after and I need to ping one of them explicitly. Your nodes will reconnect in wait_name_resolve/1, if not before. The auto connect feature in Erlang works in the way that two nodes will try to connect as soon as some process tries to send a message from on node to the other. In my experience (and the reason why dist_auto_connect = once was invented), it can be dangerous to reconnect once the nodes have been partitioned. If nothing else, name clashes in global have to be dealt with, and the risk of permanent inconsistency in the database increases. You can either restart one of the nodes, based on the best information you've got, and then try to set master nodes in mnesia afterwards (this requires some information to survive the restart -- possibly of both nodes at the same time), or you could open a gen_tcp dialogue between the nodes (basically a home-brewn rpc) and negotiate what should be done through a "back door". /Uffe > >%% >%% nodemon_handler(FromNode, State) -> {Action, NewState} >%% called by nodemon when network partitioning detected >%% FromNode - node detected as partitioned >%% State - handler state >%% Action - stop | restart | reboot | nothing >%% NewState - new handler state >%% >nodemon_handler(FromNode, State) -> > %% tac_master - application globally registered process > case global:whereis_name(tac_master) of > undefined -> > ?LOG_ERROR("Partitioned network (~p,~p), no tac_master", > [node(), FromNode]), > {nothing, State}; > _ -> > > MasterNode = wait_name_resolve(FromNode), > if MasterNode == node() -> > %% we are master in low > %% global has already unregistered process on backup node > {nothing, State}; > %% we are syncing with master only > MasterNode == FromNode -> > mnesia:set_master_nodes([MasterNode]), > {restart, State}; > %is not a master skip it > true -> > {nothing, State} > end > end. > >wait_name_resolve(RemNode) -> > OurVsn = node(global:whereis_name(tac_master)), > RemVsn = > case rpc:call(RemNode, global, whereis_name, [tac_master]) of > {badrpc, _} -> > OurVsn; > RemPid -> > rpc:call(RemNode, erlang, node, [RemPid]) > end, > if OurVsn == RemVsn -> OurVsn; > true -> wait_name_resolve(RemNode) > end. > > >--- >Best Regards, > >Vladimir Sekissov > From per@REDACTED Wed Mar 20 10:14:02 2002 From: per@REDACTED (Per Bergqvist) Date: Wed, 20 Mar 2002 10:14:02 +0100 Subject: R8B-0 ets match bug In-Reply-To: Message-ID: <200203200914.g2K9E3J00554@vargen.levonline.com> FYI, If you have planned to include the kernel poll support in R8B-1 there will be a new release from me within a few days. I am waiting for a new linux device number to be allocated before the release. (I guess that the kernel poll support is not included. If so I am just looking forward to the release.) BR /Per > > Per Bergqvist writes: > > Is there be a new patch release of R8B scheduled ? > > If nothing seriour turns up we plan to release R8B-1 within two weeks, > > kent > ========================================================= Per Bergqvist Synapse Systems AB Phone: +46 709 686 685 Email: per@REDACTED From joe.armstrong@REDACTED Wed Mar 20 14:29:31 2002 From: joe.armstrong@REDACTED (joe armstrong) Date: Wed, 20 Mar 2002 14:29:31 +0100 Subject: COFF manipulation Message-ID: <3C988EBB.80409@telia.com> Has anybody got any Erlang code for manipulating (Microsoft) COFF files? /Joe From vlad_dumitrescu@REDACTED Thu Mar 21 09:11:53 2002 From: vlad_dumitrescu@REDACTED (Vlad Dumitrescu) Date: Thu, 21 Mar 2002 09:11:53 +0100 Subject: not quite a bug, but... Message-ID: Hi all, I have found a bug in our code that wasn't easy to spot, and I wonder if the compiler shouldn't issue a warning... The faulty code was: case NewTime = 0 of true -> ... false -> end, When one has to scan heaps of code, it isn't easy to see that there should be a "==" instead. The compiler however might realize that this construct will never do anything useful. While it is correct Erlang, it is against good coding style and in this case plain wrong. My question is, wouldn't it be nice to be able to catch that kind of errors when compiling? Since the right hand side of the "=" is a constant, as are the case discriminators, it is easy to check if they are compatible. Or maybe as a wild idea, erl_lint could get an open API where one could add one's own modules? (Not a job for the weak of heart to write such a module, but maybe useful) Of course, one can scan the files separately, but it would be better to integrate this in the build process. best regards, Vlad _________________________________________________________________ Chatta med v?nner online, prova MSN Messenger: http://messenger.msn.se From Sean.Hinde@REDACTED Thu Mar 21 10:16:16 2002 From: Sean.Hinde@REDACTED (Sean Hinde) Date: Thu, 21 Mar 2002 09:16:16 -0000 Subject: not quite a bug, but... Message-ID: <402DD461F109D411977E0008C791C312039F6935@imp02mbx.one2one.co.uk> > I have found a bug in our code that wasn't easy to spot, and > I wonder if the > compiler shouldn't issue a warning... > > The faulty code was: > case NewTime = 0 of > true -> ... > false -> > end, Some people recommend getting into the habit of putting the constant first so: case 0 = NewTime of true -> ... false -> end, won't compile. Maybe someone else might comment on your suggestions though.. Sean NOTICE AND DISCLAIMER: This email (including attachments) is confidential. If you have received this email in error please notify the sender immediately and delete this email from your system without copying or disseminating it or placing any reliance upon its contents. We cannot accept liability for any breaches of confidence arising through use of email. Any opinions expressed in this email (including attachments) are those of the author and do not necessarily reflect our opinions. We will not accept responsibility for any commitments made by our employees outside the scope of our business. We do not warrant the accuracy or completeness of such information. From vlad_dumitrescu@REDACTED Thu Mar 21 10:55:24 2002 From: vlad_dumitrescu@REDACTED (Vlad Dumitrescu) Date: Thu, 21 Mar 2002 10:55:24 +0100 Subject: not quite a bug, but... Message-ID: >From: Sean Hinde > > The faulty code was: > > case NewTime = 0 of > > true -> ... > > false -> > > end, >Some people recommend getting into the habit of putting the constant first >so: > case 0 = NewTime of > true -> ... > false -> > end, That is a good suggestion, I used it in C but it was a loooong time ago so I did forgot about it. :-) However, I am only debugging old code, so it's not very useful then. And also using a match as a case expression is not wise in any case, and I think erl_lint should be able to warn about that, the way C-lint does. regards, Vlad _________________________________________________________________ H?mta MSN Explorer kostnadsfritt p? http://explorer.msn.se/intl.asp From yrashk@REDACTED Fri Mar 22 11:04:29 2002 From: yrashk@REDACTED (Yurii A. Rashkovskii) Date: Fri, 22 Mar 2002 12:04:29 +0200 Subject: gen_server Message-ID: <001701c1d188$f488ad80$5864a8c0@softerra.int> Ladies and Gentlemen, I have a question concerning gen_server and related things. I have supervised gen_server running and usual process that listens socket, receives messages, parses them, pass to that gen_server and then returns replies back. Also I have another client application that sends messages to gen_server directly w/ gen_server:call, do not using that TCP wrapper. Then, if only of these clients is working with gen_server, all is ok. But if there both of these clients, behaviour significantly changes - for example, application that connects directly by gen_server:call fails w/ {'EXIT', { timeout, . What can be the problem of two (and probably more) clients working w/ gen_server simultaneously? I understand that question looks very indefinably, so I need any advices :-) Thank you in advance. -- Best regards, Yurii (http://yar.com.ua/) From francesco@REDACTED Fri Mar 22 11:57:43 2002 From: francesco@REDACTED (Francesco Cesarini) Date: Fri, 22 Mar 2002 10:57:43 +0000 Subject: gen_server References: <001701c1d188$f488ad80$5864a8c0@softerra.int> Message-ID: <3C9B0E27.2020707@erlang-consulting.com> Hi Yurii, When your client makes a call to the server, it times out as your server is busy listening to the socket in passive mode (It sounds like you specified {active, false} and are retrieving your messages using recv). The gen_server:call function has a default timeout of 5 seconds, after which it crashes with the reason {timeout, {gen_server,....}} A solution to your problem is to have your socket run in active mode specifying {active, true}. This will result in all the incoming packages to be send to the server in the format {tcp, Socket, Data}. You would have to handle them in your handle_info call back function. Another (and more common solution) is to have one process listen to the socket, parse the messages, and forward them to the server which handles the requests from the client. In this case, the server should be able to handle many simultaneous clients. Hope this helps. Regards, Francesco -- http://www.erlang-consulting.com Yurii A. Rashkovskii wrote: >Ladies and Gentlemen, > >I have a question concerning gen_server and related things. > > >I have supervised gen_server running and usual process that listens >socket, receives messages, parses them, pass to that gen_server and then >returns replies back. Also I have another client application that sends >messages to gen_server directly w/ gen_server:call, do not using that >TCP wrapper. Then, if only of these clients is working with gen_server, >all is ok. But if there both of these clients, behaviour significantly >changes - for example, application that connects directly by >gen_server:call fails w/ {'EXIT', { timeout, . > >What can be the problem of two (and probably more) clients working w/ >gen_server simultaneously? > >I understand that question looks very indefinably, so I need any advices >:-) > >Thank you in advance. > From yrashk@REDACTED Fri Mar 22 12:08:05 2002 From: yrashk@REDACTED (Yurii A. Rashkovskii) Date: Fri, 22 Mar 2002 13:08:05 +0200 Subject: gen_server In-Reply-To: <3C9B0E27.2020707@erlang-consulting.com> Message-ID: <001901c1d191$d7c1f400$5864a8c0@softerra.int> Francesco, > Another (and more common solution) is to have one process listen to the > socket, parse the messages, and forward them to the server which handles > the requests from the client. In this case, the server should be able to > handle many simultaneous clients. That is how it is going here (I've separate process that listens TCP in active mode and forwards messages to server) Another addition to conditions - gen_server uses ODBC executeStmt function calls. From daniel.neri@REDACTED Fri Mar 22 12:56:43 2002 From: daniel.neri@REDACTED (Daniel =?iso-8859-1?q?N=E9ri?=) Date: 22 Mar 2002 11:56:43 +0000 Subject: odbc.erl problem (was: Re: gen_server) In-Reply-To: <001901c1d191$d7c1f400$5864a8c0@softerra.int> References: <001901c1d191$d7c1f400$5864a8c0@softerra.int> Message-ID: "Yurii A. Rashkovskii" writes: > Another addition to conditions - gen_server uses ODBC executeStmt > function calls. I don't know if it concerns you, but since I got bitten by it earlier this week: wait_result/2 called by odbc:erl_executeStmt/3 contains a rather unforgiving receive clause which catches any message sent to the calling process. Attached below is a quick fix. I think this code needs some rethinking but my dead-line didn't allow that... Regards, --Daniel -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/x-patch Size: 300 bytes Desc: not available URL: -------------- next part -------------- -- Daniel N?ri Sigicom AB, Sweden From richardc@REDACTED Sat Mar 23 20:15:05 2002 From: richardc@REDACTED (Richard Carlsson) Date: Sat, 23 Mar 2002 20:15:05 +0100 (MET) Subject: EDoc 0.1 Message-ID: Announcing EDoc, version 0.1! This is a tool for generating HTML documentation directly from Erlang source code comments, using tags similar to Javadoc. Download from www.erlang.org (user contributions section). Enjoy! /Richard Richard Carlsson (richardc@REDACTED) (This space intentionally left blank.) E-mail: Richard.Carlsson@REDACTED WWW: http://www.csd.uu.se/~richardc/ "Having users is like optimization: the wise course is to delay it." -- Paul Graham From luis.gonzalezpascual@REDACTED Mon Mar 25 12:37:02 2002 From: luis.gonzalezpascual@REDACTED (luis.gonzalezpascual@REDACTED) Date: Mon, 25 Mar 2002 12:37:02 +0100 Subject: Using >megaco_simple_mg:start_tcp_txt() by ip address. Message-ID: I'm very new to Erlang. I've installed win32 binary version of erlang R8B-0 on win95. I want to run erlang media gateway over a tcp/ip lan without DNS server. If I execute >megaco_simple_mgc:start(). >megaco_simple_mg:start(). in the same machine Ok, but I need run (for example) >megaco_simple_mg:start_tcp_txt( "10.16.109.16",[]). in order to connect to a MGC in other machine using its ip address. Do I need a translation ip_address-host_name file and use >megaco_simple_mg:start_tcp_txt( "host_name",[]).? Thanks a lot. ___________________________________________________________________________ Este mensaje se dirige exclusivamente a su destinatario y puede contener informaci?n privilegiada o confidencial. Si no es vd. el destinatario indicado, queda notificado de que la utilizaci?n, divulgaci?n y/o copia sin autorizaci?n est? prohibida en virtud de la legislaci?n vigente. Si ha recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente por esta misma v?a y proceda a su destrucci?n. This message is intended exclusively for its addressee and may contain information that is CONFIDENTIAL and protected by professional privilege. If you are not the intended recipient you are hereby notified that any dissemination, copy or disclosure of this communication is strictly prohibited by law. If this message has been received in error, please immediately notify us via e-mail and delete it. ___________________________________________________________________________ From pvdung@REDACTED Mon Mar 25 11:51:14 2002 From: pvdung@REDACTED (viet dung) Date: Mon, 25 Mar 2002 17:51:14 +0700 Subject: help me! Message-ID: <00cf01c1d3ea$fc27a870$1c20040a@vasc> I downloaded tcl/tk 8.4 and am trying to compile on sun solaris ,then i install TCL no problem,but install TK , I get these errors. Please let me know. errors in TK: Assembler: tkCanvPs.c "", line 4884 : Illegal mnemonic "", line 4884 : Syntax error "", line 4889 : Illegal mnemonic "", line 4889 : Syntax error "", line 4894 : Illegal mnemonic "", line 4894 : Syntax error "", line 5001 : Illegal mnemonic "", line 5001 : Syntax error "", line 5006 : Illegal mnemonic "", line 5006 : Syntax error "", line 5011 : Illegal mnemonic "", line 5011 : Syntax error "", line 5165 : Illegal mnemonic "", line 5165 : Syntax error "", line 5169 : Illegal mnemonic "", line 5169 : Syntax error "", line 5173 : Illegal mnemonic "", line 5173 : Syntax error make: *** [tkCanvPs.o] Error 1 help me,please! thank you very much. -------------- next part -------------- An HTML attachment was scrubbed... URL: From etxuwig@REDACTED Mon Mar 25 13:16:40 2002 From: etxuwig@REDACTED (Ulf Wiger) Date: Mon, 25 Mar 2002 13:16:40 +0100 (MET) Subject: safe catch Message-ID: I recently ran across a (user) bug involving catch. The bug was such that one could sometimes mistake a deliberate {'EXIT', Reason} return value from for a real crash, with unexpected results. As the code was found in a generic library function, it had to be fixed. I decided to put in the following construct: case catch {ok, f()} of {'EXIT', Reason} -> handle_EXIT(Reason); {ok, Result} -> Result end. If all one cares about is handling the case where the caught function really exits, I don't really see a reason *not* to consistently use the above pattern. Of course (sigh), the caught function could still mess things up by calling throw({ok, {'EXIT', Reason}}), but there should perhaps be a limit to the level of stupidity one needs expect from the average programmer. Here's a paranoid (but more expensive) version: Ref = make_ref(), case catch {Ref, f()} of {'EXIT', Reason} -> handle_EXIT(Reason); {Ref, Result} -> Result end. Does anyone have a suggestion for a fool proof and "free" way to do this? (Not that I personally couldn't live with the first alternative.) /Uffe From richardc@REDACTED Mon Mar 25 13:41:49 2002 From: richardc@REDACTED (Richard Carlsson) Date: Mon, 25 Mar 2002 13:41:49 +0100 (MET) Subject: safe catch In-Reply-To: Message-ID: On Mon, 25 Mar 2002, Ulf Wiger wrote: > I decided to put in the following construct: > > case catch {ok, f()} of > {'EXIT', Reason} -> > handle_EXIT(Reason); > {ok, Result} -> > Result > end. > > If all one cares about is handling the case where the caught > function really exits, I don't really see a reason *not* to > consistently use the above pattern. > > Does anyone have a suggestion for a fool proof and "free" way to > do this? Well, TANSTAAFL, I'm afraid. I always use the {ok, Expr} idiom, and although it is a bother, it works well and does not really classify as "expensive". > Of course (sigh), the caught function could still mess things up by > calling throw({ok, {'EXIT', Reason}}), but there should perhaps be a > limit to the level of stupidity one needs expect from the average > programmer. Here's a paranoid (but more expensive) version: > > Ref = make_ref(), > case catch {Ref, f()} of Yes, that's the way to do it if you *really* want to make sure nobody can fool your code. But (although I don't think there are any such limits as you mention) I don't think there is any call for it in normal code. And it's certainly more expensive, if you put it it a tight(ish) loop. More exact error handling will be possible in future versions of Erlang, when we get the "try ... catch ..." stuff implemented. Real Soon Now. /Richard Richard Carlsson (richardc@REDACTED) (This space intentionally left blank.) E-mail: Richard.Carlsson@REDACTED WWW: http://www.csd.uu.se/~richardc/ "Having users is like optimization: the wise course is to delay it." -- Paul Graham From hakan@REDACTED Mon Mar 25 16:43:07 2002 From: hakan@REDACTED (Hakan Mattsson) Date: Mon, 25 Mar 2002 16:43:07 +0100 (MET) Subject: Using >megaco_simple_mg:start_tcp_txt() by ip address. In-Reply-To: Message-ID: On Mon, 25 Mar 2002 luis.gonzalezpascual@REDACTED wrote: Luis> I'm very new to Erlang. I've installed win32 binary version of erlang R8B-0 Luis> on win95. Luis> I want to run erlang media gateway over a tcp/ip lan without DNS server. Luis> Luis> If I execute Luis> >megaco_simple_mgc:start(). Luis> >megaco_simple_mg:start(). Luis> Luis> in the same machine Ok, but I need run (for example) Luis> Luis> >megaco_simple_mg:start_tcp_txt( "10.16.109.16",[]). Besides the misspelled function name, this should work. Does it work for you? Luis> in order to connect to a MGC in other machine using its ip address. Luis> Do I need a translation ip_address-host_name file and use >megaco_simple_mg:start_tcp_txt( "host_name",[]).? No, the IP-address should be enough. /H?kan --- H?kan Mattsson Ericsson Computer Science Laboratory http://www.ericsson.com/cslab/~hakan/ From willem@REDACTED Mon Mar 25 23:57:28 2002 From: willem@REDACTED (Willem Broekema) Date: Mon, 25 Mar 2002 23:57:28 +0100 Subject: regexp bug (literal dot) Message-ID: <3C9FAB58.7090305@pastelhorn.com> Hi all, From what I understand, in regexps, "." means 'any char' and "\." means a literal dot. So, the following is a bug: 170> regexp:match("a", "."). {match,1,1} 171> regexp:match("a", "\."). {match,1,1} % shouldn't match! - Willem From svg@REDACTED Tue Mar 26 00:30:59 2002 From: svg@REDACTED (Vladimir Sekissov) Date: Tue, 26 Mar 2002 04:30:59 +0500 (YEKT) Subject: regexp bug (literal dot) In-Reply-To: <3C9FAB58.7090305@pastelhorn.com> References: <3C9FAB58.7090305@pastelhorn.com> Message-ID: <20020326.043059.111483138.svg@surnet.ru> Good day, willem> From what I understand, in regexps, "." means 'any char' and "\." means a willem> literal dot. willem> willem> So, the following is a bug: willem> willem> 170> regexp:match("a", "."). willem> {match,1,1} willem> willem> 171> regexp:match("a", "\."). willem> {match,1,1} % shouldn't match! But (test1@REDACTED)31> regexp:match(".", "\\."). {match,1,1} willem> willem> willem> - Willem willem> - Vladimir From cpressey@REDACTED Tue Mar 26 00:31:44 2002 From: cpressey@REDACTED (Chris Pressey) Date: Mon, 25 Mar 2002 17:31:44 -0600 Subject: regexp bug (literal dot) In-Reply-To: <3C9FAB58.7090305@pastelhorn.com> References: <3C9FAB58.7090305@pastelhorn.com> Message-ID: <20020325173144.70eb7229.cpressey@catseye.mb.ca> On Mon, 25 Mar 2002 23:57:28 +0100 Willem Broekema wrote: > Hi all, > > From what I understand, in regexps, "." means 'any char' and "\." means > a literal dot. > > So, the following is a bug: > > 170> regexp:match("a", "."). > {match,1,1} > > 171> regexp:match("a", "\."). > {match,1,1} % shouldn't match! > > > - Willem Erlang strings are quoted as well as regexps, so you probably want regexp:match("a", "\\."). Chris From anders@REDACTED Tue Mar 26 00:48:28 2002 From: anders@REDACTED (Anders Ramsell) Date: Tue, 26 Mar 2002 00:48:28 +0100 Subject: regexp bug (literal dot) References: <3C9FAB58.7090305@pastelhorn.com> Message-ID: <3C9FB74C.3030108@theheartofgold.org> Willem Broekema wrote: > Hi all, > > From what I understand, in regexps, "." means 'any char' and "\." means > a literal dot. > > So, the following is a bug: > > 170> regexp:match("a", "."). > {match,1,1} > > 171> regexp:match("a", "\."). > {match,1,1} % shouldn't match! > I don't think your problem is a bug in regexp. The problem is a mistake in using backslash-quoting in string literals. The string literal "\." is actually the same as the string literal ".". To get a string literal representing a string with a backslash and a dot you need to write "\\.". This is illustrated by the following tests: > string:len("."). 1 > string:len("\."). 1 > string:len("\\."). 2 As you can see the first two string literals represent strings of length one and the third represents a string of length two. /Anders From cpressey@REDACTED Tue Mar 26 01:23:07 2002 From: cpressey@REDACTED (Chris Pressey) Date: Mon, 25 Mar 2002 18:23:07 -0600 Subject: mysterious GS 1.4.0 problems In-Reply-To: <000b01c1ca15$7e6114a0$9064a8c0@PRESSEY> References: <000b01c1ca15$7e6114a0$9064a8c0@PRESSEY> Message-ID: <20020325182307.7d76075d.cpressey@catseye.mb.ca> Follow-up on this: the version of GS is apparently not the problem. I am having the same problems now with the older version of GS. The problem is with the backend (gs-1.4.0/priv/tcl/bin/tclsh76.exe and gs-1.4.0/priv/tcl/bin/wish42.exe). The exact same version of Erlang and the exact same version of the GS backend is installed on two computers running the exact same version of Windows NT. However on one computer, all calls to gs:read(ListBox, items) fail due to the backend returning an integer which is way out of range for what the (Erlang) backend wants (it wants 0-4 or so, the port program returns numbers like 48 or 56 for no fathomable reason.) It might be a problem with DLL's used by tclsh76.exe and wish42.exe. If I have time to dig into this further I'll post my findings here. In the meantime I've worked around it by replacing calls to gs:read(ListBox, items) with calls to an iterative function like read_items(ListBox) -> read_items(ListBox, gs:read(ListBox, size)). read_items(ListBox, 0) -> []; read_items(ListBox, I) -> [gs:read(ListBox, {get, I}) | read_items(ListBox, I-1)]. This is of course much less efficient, but at least it works. Chris On Tue, 12 Mar 2002 16:30:19 -0600 "Chris Pressey" wrote: > Hi all. > > I have encountered a problem using R8 and GS 1.4.0. Strangely, it only > shows up on one of the three nodes R8 is installed on here (it's running > WinNT, but so is one of the other nodes.) Upon doing a simple gs:config > on a listbox, I get an error like so: > > =ERROR REPORT==== 12-Mar-2002::15:34:49 === > Error in process <0.112.0> on node 'foo@REDACTED' with exit value: > {{case_clause,48},[{gstk_port_handler,input_during_call,2}, > {gstk_port_handler,handle_input,3},{gstk_port_handler,wait_reply,2}]} > gs error: user backend died reason > {{case_clause,48},[{gstk_port_handler,input_during_call,2}, > {gstk_port_handler,handle_input,3},{gstk_port_handler,wait_reply,2}]} > > I have worked around this error by grabbing GS 1.3.8 from R7B2 and using > it instead. It seems to work fine (in haste I just renamed the gs-1.3.8 > directory to gs-1.4.0, it would probably be more prudent to actually > change the registry entries so they point to wish.exe et al.) > > Hope this might help anyone who is having similar problems. I thought > there wasn't much changed between GS 1.3.8 and 1.4.0, but it looks like > something might have been accidentally disturbed... > > Chris > > > -- Bishop Squarepeg Roundhole, BSR DICK c1d4-2 s:(*) a1973 Comp3d6+1$>? P(robot_sex_slavery) E#=$ F* R? tv1d2+1 b1d2-1 e! h+ r% y-> !OM !DC http://www.catseye.mb.ca/gwadfc/ From luke@REDACTED Tue Mar 26 10:14:31 2002 From: luke@REDACTED (Luke Gorrie) Date: 26 Mar 2002 10:14:31 +0100 Subject: regexp bug (literal dot) In-Reply-To: <20020325173144.70eb7229.cpressey@catseye.mb.ca> References: <3C9FAB58.7090305@pastelhorn.com> <20020325173144.70eb7229.cpressey@catseye.mb.ca> Message-ID: Chris Pressey writes: > On Mon, 25 Mar 2002 23:57:28 +0100 > Willem Broekema wrote: > > > Hi all, > > > > From what I understand, in regexps, "." means 'any char' and "\." means > > a literal dot. > > > > So, the following is a bug: > > > > 170> regexp:match("a", "."). > > {match,1,1} > > > > 171> regexp:match("a", "\."). > > {match,1,1} % shouldn't match! > > > > > > - Willem > > Erlang strings are quoted as well as regexps, so you probably want > > regexp:match("a", "\\."). Another bug candidate: regexp:match("foo", ".**"). Which doesn't terminate, because it tries to match 0x zero chars, then 1x zero chars, then 2x zero chars, etc. Maybe useful the next time you need to do a denial-of-service attack on an Erlang program :-) since this will make the emulator keep allocating until the OS runs out of virtual memory. Cheers, Luke From lmp@REDACTED Tue Mar 26 19:00:02 2002 From: lmp@REDACTED (Luis Moniz Pereira) Date: Tue, 26 Mar 2002 18:00:02 +0000 Subject: Postdoc positions at CENTRIA Message-ID: <3CA0B722.3C22958B@di.fct.unl.pt> Please post The Research Center for Artificial Intelligence (CENTRIA) at the Universidade Nova de Lisboa (UNL) offers as of now several post-doctoral research positions, in the areas of: Machine Learning. Neural Networks. Data Mining. Text Mining. each for nine months to a year (yearly extensions possible), starting immediately or within the next few months. Candidates must hold a doctoral degree and may apply by sending us their CV and other relevant information, namely regarding availability date and duration of stay AS SOON AS POSSIBLE. Salaries are negotiable, starting at 1,500 Euros net per month, up to 2,000 Euros. Further information at: http://centria.di.fct.unl.pt/~nmm/PostDoc/ -- Professor Luis Moniz Pereira http://centria.di.fct.unl.pt/~lmp/ Director AI Centre CENTRIA http://centria.fct.unl.pt/ Departamento de Informatica Ph (+351) 21 294 8533 Fax 21 294 8541 Universidade Nova de Lisboa Secretary: (+351) 21 294 8536 2829-516 Caparica, Portugal Email: lmp@REDACTED From cyberlync@REDACTED Wed Mar 27 06:04:45 2002 From: cyberlync@REDACTED (Eric Merritt) Date: Tue, 26 Mar 2002 21:04:45 -0800 (PST) Subject: Client Nodes (ie gui). In-Reply-To: <3C9FB74C.3030108@theheartofgold.org> Message-ID: <20020327050445.27739.qmail@web13002.mail.yahoo.com> Hello all, I hope this is the right location to post this query. If it is not please point me to the correct forum. I should first say that I am somewhat new to Erlang. I have been offered an client/server application that is naturally concurrent, distributed and requires significant fault tolerance. It also requires web access to certain parts of the system. Not to mention the need of a cross platform client. Of course, Erlang popped into my head immediatly as the ideal implementation language. In fact, the difficulty of doing it another language is rather daunting. Along that vien, My first thought was to simply have each client act as a node of the system that interacts with the system-kernel through an authenticated api. I thought this would be the easiest and quickest way to get the job done. Unfortuanatly when I went to look for graphics libraries I found that no acceptable implementations exist that operate on the two target platforms (windows and linux). The current implementation of the gs module supports an 'old' version of tk that really is not sufficient for this task. The only other gui option at all seems to be Erlang/Gtk. Unfortuantly this is only available on the linux platform. Java would be an option and one I would be comfortable with if it werent for the resource usage and slow speed of the swing api. In any case, my question is simple. Are there other GUI options? Should I simply implement the client in another language and use the more traditional client server method with custom protocol? Thank you Eric __________________________________________________ Do You Yahoo!? Yahoo! Movies - coverage of the 74th Academy Awards? http://movies.yahoo.com/ From kent@REDACTED Wed Mar 27 08:35:20 2002 From: kent@REDACTED (Kent Boortz) Date: 27 Mar 2002 08:35:20 +0100 Subject: Client Nodes (ie gui). In-Reply-To: Eric Merritt's message of "Tue, 26 Mar 2002 21:04:45 -0800 (PST)" References: <20020327050445.27739.qmail@web13002.mail.yahoo.com> Message-ID: > The current implementation of the gs module supports an 'old' > version of tk that really is not sufficient for this task. May not solve your problem but we are experimenting with using Tcl/Tk 8 and expect to integrate it into GS soon. kent From robert.virding@REDACTED Wed Mar 27 09:19:04 2002 From: robert.virding@REDACTED (Robert Virding) Date: Wed, 27 Mar 2002 09:19:04 +0100 Subject: SV: not quite a bug, but... References: Message-ID: <006501c1d568$11d0dba0$8000a8c0@bonet> ----- Ursprungligt meddelande ----- Fr?n: "Vlad Dumitrescu" Till: Skickat: den 21 mars 2002 10:55 ?mne: RE: not quite a bug, but... > >From: Sean Hinde > > > The faulty code was: > > > case NewTime = 0 of > > > true -> ... > > > false -> > > > end, > >Some people recommend getting into the habit of putting the constant first > >so: > > case 0 = NewTime of > > true -> ... > > false -> > > end, > > That is a good suggestion, I used it in C but it was a loooong time ago so I > did forgot about it. :-) > > However, I am only debugging old code, so it's not very useful then. > > And also using a match as a case expression is not wise in any case, and I > think erl_lint should be able to warn about that, the way C-lint does. I don't want to be difficult here (:-), but it is useful. You may actually want to keep the value of the expression for later use and not just within the case where you can use aliases. It is, alas, a property of Erlang's variable scoping that you can bind a variable anywhere. Robert From robert.virding@REDACTED Wed Mar 27 09:25:43 2002 From: robert.virding@REDACTED (Robert Virding) Date: Wed, 27 Mar 2002 09:25:43 +0100 Subject: New format/fwrite options Message-ID: <006d01c1d568$ffc1f1a0$8000a8c0@bonet> By popular (:-) request I am adding two new options to format/fwrite for outputing integers in binary and hex, ~b and ~x. There is a small problem though with negative numbers. For how long do you extend the representation with '1'? Seeing we have bignums there is no concept of a word size. One suggestion is to extend in blocks of 32 bits until we have enough digits to show that it is a negative. If you explicitly give a precision then that will be used. This seems a bit hacky, why 32 and not 8 or 16? Any better suggestions? Robert From etxuwig@REDACTED Wed Mar 27 09:26:46 2002 From: etxuwig@REDACTED (Ulf Wiger) Date: Wed, 27 Mar 2002 09:26:46 +0100 (MET) Subject: big mnesia database Message-ID: Don't know if there's an official record, but the mnesia database of AXD 301's CCviewer installation now has the following dimensions: - 4,753,747 records (in disc_copies - i.e. RAM and disk) - roughly 765 MBytes of data in ETS tables This is a bit too much, since I only (!) have 1 GB of RAM on my machine, and BEAM currently scores 1.5 GB... I'd throw much of the data into disc_only_copies if there were such a thing as ordered_set dets tables. Apart from using up too much RAM on my machine, I can report that it works really well. Even so, I will need to do some restructuring of my data model in order to cram even more stuff into the database. ;) /Uffe From eleberg@REDACTED Wed Mar 27 10:06:21 2002 From: eleberg@REDACTED (Bengt Kleberg) Date: Wed, 27 Mar 2002 10:06:21 +0100 (MET) Subject: New format/fwrite options Message-ID: <200203270906.g2R96LU22130@cbe.ericsson.se> > From: "Robert Virding" > By popular (:-) request I am adding two new options to format/fwrite for outputing integers > in binary and hex, ~b and ~x. There is a small problem though with negative numbers. > For how long do you extend the representation with '1'? Seeing we have bignums there > is no concept of a word size. what is wrong with '-'? ie, io:format( "~b", -3 ) => -11 bengt From happi@REDACTED Wed Mar 27 10:31:42 2002 From: happi@REDACTED (Happi) Date: Wed, 27 Mar 2002 10:31:42 +0100 Subject: New format/fwrite options References: <006d01c1d568$ffc1f1a0$8000a8c0@bonet> Message-ID: <008601c1d572$34d273c0$c90b0a0a@LISA> Robert Virding wrote: > By popular (:-) request I am adding two new options to format/fwrite for outputing integers > in binary and hex, ~b and ~x. There is a small problem though with negative numbers. > For how long do you extend the representation with '1'? Seeing we have bignums there > is no concept of a word size. Yippie, finaly! To go one step further, I would like to see output in any base (~#) in this case negative numbers would be handled wit a prefix minus. (Then you can just copy and paste printed numbers in any base.) Still beeing able to print hex and binary in a speciall way would be nice and then one could requier the user to give the wordsize for binary numbers. Attached is an implementation of this. e.g. 1> io:format("~#\n",[-42,4]). -4#222 ok 2> io:format("~b\n",[-42,4]). 101010 ok 3> io:format("~b\n",[-42,32]). 11111111111111111111111111101010 4> io:format("~x\n",[-42]). -0x2a ok --- In the attached file the base is limited to be betwen 2 and 16, since the scanner limits the base of # to 16, but the base could be extended. -------------------------------------- I'm Happi, you should be happy. Praeterea censeo "0xCA" scribere Erlang posse. -------------- next part -------------- A non-text attachment was scrubbed... Name: io_lib_format.erl Type: application/octet-stream Size: 15156 bytes Desc: not available URL: From klacke@REDACTED Wed Mar 27 12:08:07 2002 From: klacke@REDACTED (Klacke) Date: Wed, 27 Mar 2002 12:08:07 +0100 Subject: yaws web server Message-ID: <20020327120807.A3059@bluetail.com> New release 0.32 at http://yaws.hyber.org Fixes: Fixed a bug where chunked encodings were missing a CRNL which made all yaws pages not render in IE Fixed a bug with empty initial lines in yaws files. Made access log files per virt host. Made the access log as well as the info/err log a wrap log, wraps at 50k. buxfix in cache + added -T flag to yaws, which is http protocol trace in log file The chunked encodings bug made all yaws page completely blank in IE. This is actually the first case ever where I find IE do the right thing, which is to bail out on error, instead of guessing and trying the best. (I finally installed vmware so that I could check the behaviour of IE) The odd thing is that all the other browsers rendered the pages perfectly although it was a grave protocol error in my chunked encodings. Interesting. /klacke -- Claes Wikstrom -- Caps lock is nowhere and Alteon WebSystems -- everything is under control http://www.bluetail.com/~klacke cellphone: +46 70 2097763 From luke@REDACTED Wed Mar 27 12:10:57 2002 From: luke@REDACTED (Luke Gorrie) Date: 27 Mar 2002 12:10:57 +0100 Subject: Client Nodes (ie gui). In-Reply-To: <20020327050445.27739.qmail@web13002.mail.yahoo.com> References: <20020327050445.27739.qmail@web13002.mail.yahoo.com> Message-ID: Eric Merritt writes: > In any case, my question is simple. Are there other GUI options? If you want portability, you can't beat the One True Toolkit - Emacs. There's an Emacs Lisp package called "distel" which gets you Erlang-style processes and message passing, and connects them to regular erlang nodes via the distribution protocol. In other words it's an Elisp version of erl_interface and jive. You can download it from http://www.bluetail.com/~luke/misc/distel-0.1.tar.gz Here's a distel program that takes a callback function, and node/module/fun/args, then does the RPC to the standard erlang RPC server, and passes the result to the callback: (defun erl-rpc (k kargs node m f a) "Call {M,F,A} on NODE and deliver the result to the function K, as (apply K (cons rpc-result KARGS))." (erl-spawn-go (erl-send (tuple 'rex node) ; Normal erlang-style {RegName, Node} ;; {Who, {M, F, A, GroupLeader}} (tuple erl-self (tuple 'call m f a erl-group-leader))) ;; Tell the scheduler that our next function is `erl-rpc-receive', ;; for when the reply arrives. (erl-yield #'erl-rpc-receive k kargs))) (defun erl-rpc-receive (k kargs) "This is essentially the receive clause of `erl-rpc'." (let ((msg (pop erl-mailbox))) ;; Message should be [tuple rex REPLY], i.e. {rex, Reply} (assert (and (tuplep msg) (eq 'rex (elt msg 1)))) (apply k (cons (elt msg 2) kargs)))) And here's a high-level interface that you can bind to a key or call from M-x: (defun erpc (node m f a) "Make an RPC to an erlang node." (interactive "SNode: \nSModule: \nSFunction: \nXArguments (expression): ") (erl-rpc (lambda (result) (message "RPC result: %S" result)) nil node m f a)) Just what you were looking for, right? ;-) There's also a very small pman-clone included in the distribution. This is quite new and only tested on GNU Emacs 20 and 21 on Linux sofar, and doesn't have some stuff like pattern-matching receive, process links, etc just yet. Cheers, Luke From zist@REDACTED Wed Mar 27 12:05:05 2002 From: zist@REDACTED (. zist) Date: Wed, 27 Mar 2002 11:05:05 +0000 Subject: Communication with existing non-Erlang processes ? Message-ID: An HTML attachment was scrubbed... URL: From vlad_dumitrescu@REDACTED Wed Mar 27 14:46:55 2002 From: vlad_dumitrescu@REDACTED (Vlad Dumitrescu) Date: Wed, 27 Mar 2002 14:46:55 +0100 Subject: SV: not quite a bug, but... Message-ID: > > > > The faulty code was: > > > > case NewTime = 0 of > > > > true -> ... > > > > false -> > > > > end, >I don't want to be difficult here (:-), but it is useful. You may actually >want to keep >the value of the expression for later use and not just within the case >where >you can use aliases. It is, alas, a property of Erlang's variable scoping >that you >can bind a variable anywhere. Well, since one can always write NewTime = value(), case NewTime of ... which is much better style, I thought it might deserve a warning :-) regards, Vlad _________________________________________________________________ Kom med i v?rldens st?rsta e-posttj?nst; MSN Hotmail. http://www.hotmail.com/sv From Jouni.Ryno@REDACTED Wed Mar 27 15:46:40 2002 From: Jouni.Ryno@REDACTED (Jouni =?ISO-8859-1?Q?Ryn=F6?=) Date: 27 Mar 2002 16:46:40 +0200 Subject: New format/fwrite options In-Reply-To: <006d01c1d568$ffc1f1a0$8000a8c0@bonet> References: <006d01c1d568$ffc1f1a0$8000a8c0@bonet> Message-ID: <1017240400.22751.13.camel@adic> On Wed, 2002-03-27 at 10:25, Robert Virding wrote: > By popular (:-) request I am adding two new options to format/fwrite for outputing integers > in binary and hex, ~b and ~x. Thank you very much. I would not mind using precision always. and ~X for uppercase hex-numbers ? (0xAB versus 0xab) and ~B for IO ? (= 10) :-) -- Jouni Ryn? mailto://Jouni.Ryno@REDACTED/ http://www.geo.fmi.fi/~ryno/ Finnish Meteorological Institute http://www.fmi.fi/ Geophysical Research http://www.geo.fmi.fi/ P.O.BOX 503 Tel (+358)-9-19294656 FIN-00101 Helsinki FAX (+358)-9-19294603 Finland priv-GSM (+358)-50-5302903 "It's just zeros and ones, it cannot be hard" From richardc@REDACTED Wed Mar 27 16:16:54 2002 From: richardc@REDACTED (Richard Carlsson) Date: Wed, 27 Mar 2002 16:16:54 +0100 (MET) Subject: New format/fwrite options In-Reply-To: <1017240400.22751.13.camel@adic> Message-ID: On 27 Mar 2002, Jouni Ryn? wrote: > and ~B for IO ? (= 10) :-) Seriously, how about ~B for signed binary and ~b for precision-width 2-complement binary (default precision 32?) fwrite("~B", [-5]) => -101 fwrite("~.8b", [-5]) => 11111011 fwrite("~.*b", [-5, 8]) => 11111011 /Richard Richard Carlsson (richardc@REDACTED) (This space intentionally left blank.) E-mail: Richard.Carlsson@REDACTED WWW: http://www.csd.uu.se/~richardc/ "Having users is like optimization: the wise course is to delay it." -- Paul Graham From happi@REDACTED Wed Mar 27 18:08:33 2002 From: happi@REDACTED (Happi) Date: Wed, 27 Mar 2002 18:08:33 +0100 Subject: New format/fwrite options References: Message-ID: <011e01c1d5b2$07a9d470$c90b0a0a@LISA> Richard Carlsson wrote: > Seriously, how about ~B for signed binary and ~b for precision-width > 2-complement binary (default precision 32?) > > fwrite("~B", [-5]) => -101 > fwrite("~.8b", [-5]) => 11111011 > fwrite("~.*b", [-5, 8]) => 11111011 Yes, that is what I want. (I included an implementation given io_lib_format from my last mail. (For local Hipers: the patch is checked in.)) If we now just could allow 0x in inputs... ;) -------------------------------------- I'm Happi, you should be happy. Praeterea censeo "0xCA" scribere Erlang posse. diff -r1.3 io_lib_format.erl 104c104,105 < collect_cc([$B|Fmt], [A,Base|Args]) -> {$B,[A,Base],Fmt,Args}; --- > collect_cc([$B|Fmt], [A|Args]) -> {$B,[A],Fmt,Args}; > collect_cc([$b|Fmt], [A|Args]) -> {$b,[A],Fmt,Args}; 164a167,176 > control($B, [A], F, Adj, P, Pad, I) -> > string( > if A < 0 -> [$- | int_to_base(-A, [], 2)]; > true -> int_to_base(A, [], 2) > end, > F, Adj, P, Pad); > control($b, [A], F, Adj, none, Pad, I) -> > string(int_to_binary(A, 32), F, Adj, none, Pad); > control($b, [A], F, Adj, P, Pad, I) -> > string(int_to_binary(A, P), F, Adj, P, Pad); 421a434,450 > > int_to_binary(N, Wordsize) -> > if N < 0 -> > Bits = int_to_base(-N, [],2), > pad(length(Bits),Bits,Wordsize,$1); > true -> > Bits = int_to_base(N, [], 2), > pad(length(Bits),Bits,Wordsize,$0) > end. > > pad(N,Bits,Wordsize, Pad) -> > if N < Wordsize -> > pad(N+1,[Pad|Bits],Wordsize,Pad); > true -> > Bits > end. > From sas02@REDACTED Thu Mar 28 02:30:07 2002 From: sas02@REDACTED (sas02@REDACTED) Date: Thu, 28 Mar 2002 02:30:07 +0100 Subject: 2002 Static Analysis Symposium (SAS'02) Call for Papers Message-ID: <200203280130.g2S1U7B30799@clip.dia.fi.upm.es> (Apologies for multiple postings) ---------------------------------------------------------------------- CALL FOR PAPERS (SAS'02) The 9th International Static Analysis Symposium September 17 - 20 2002, Madrid, Spain http://clip.dia.fi.upm.es/SAS02 Submission deadline: May 5, 2002 ---------------------------------------------------------------------- Static Analysis is increasingly recognized as a fundamental tool for high performance implementations and verification systems of high-level programming languages. The series of Static Analysis Symposia has served as the primary venue for presentation of theoretical, practical, and application advances in the area. The Ninth International Static Analysis Symposium (SAS'02) will be held at the Technical University of Madrid, do-located with Logic-based Program Development and Transformation (LOPSTR'02) and the APPIA-GULP-PRODE Joint Conference on Declarative Programming (AGP'02). Previous symposia were held in Paris, Santa Barbara, Venice, Pisa, Paris, Aachen, Glasgow and Namur. The technical program for SAS'02 will consist of invited lectures, tutorials, panels, presentations of refereed papers, and software demonstrations. Contributions are welcome on all aspects of Static Analysis, including, but not limited to: * abstract interpretation, * data flow analysis, * verification systems, * program specialization, * abstract domains, * optimizing compilers, * theoretical frameworks, * type inference, * abstract model checking, * complexity analysis, * abstract testing, * security analysis. Submissions can address any programming paradigm, including concurrent, constraint, functional, imperative, logic and object-oriented programming. Survey papers that present some aspect of the above topics with a new coherence are also welcome. Papers must describe original work, be written and presented in English, and must not substantially overlap with papers that have been published or that are simultaneously submitted to a journal or a conference with refereed proceedings. Submission Instructions ----------------------- All submissions must be performed electronically at http://clip.dia.fi.upm.es/SAS02/submission.html. Submitted papers should be at most 15 pages excluding bibliography and well-marked appendices. Program committee members are not required to read the appendices, and thus papers should be intelligible without them. The proceedings will be published by Springer-Verlag in the Lecture Notes in Computer Science series (see http://www.springer.de/comp/lncs/authors.html for the LNCS author instructions). Thus, adhering to that style already in the submission is strongly encouraged. Papers should be submitted either in PostScript or PDF format and they should be interpretable by Ghostscript or Acrobat Reader. Papers must be printable on either A4 paper or US letter, and preferably on both. Important Dates --------------- May 5, 2002 Submission deadline June 10, 2002 Notification June 30, 2002 Final version Sept 17-20, 2002 SAS'02 Program Committee ----------------- Manuel Hermenegildo (Chair) Technical University of Madrid, Spain German Puebla (Co-chair) Technical University of Madrid, Spain Radhia Cousot Ecole Polytechnique, France Saumya Debray The University of Arizona, USA Manuel Fahndrich Microsoft Research, USA Roberto Giacobazzi Univerity of Verona, Italy Chris Hankin Imperial College, UK Giorgio Levi Univerity of Pisa, Italy Kim Marriott Monash University, Australia Alan Mycroft Cambridge University, United Kingdom Ganesan Ramalingam IBM T.J. Watson Research Center, USA Martin Rinard Massachusetts Institute of Technology, USA Shmuel Sagiv Tel-Aviv Univerisity, Israel Reinhard Wilhelm Universitat des Saarlandes, Germany Contact Info ------------ Email: sas02@REDACTED Fax: + 34 91 352 4819 Phone: + 34 91 336 7448 Post: Manuel Hermenegildo (Ref.: SAS'02) Facultad de Informatica Universidad Politecnica de Madrid 28660 Boadilla del Monte Madrid, Spain ---------------------------------------------------------------------- -- From raimo@REDACTED Thu Mar 28 13:55:52 2002 From: raimo@REDACTED (Raimo Niskanen) Date: Thu, 28 Mar 2002 13:55:52 +0100 Subject: Communication with existing non-Erlang processes ? References: Message-ID: <3CA312D8.D21618C@erix.ericsson.se> Well, it has ben "about to be replaced" for quite some time now, but we cannot remove named pipe support without replacing it with something fairly equivalent, and replacing it will have to wait until it does not take resources from something more important. In other words: named pipes will be supported also in the future roughly as it is today, and it will not change in the near future (at least not in R9). The entusiastic user may write a linked-in driver that handles named pipes, which probably is the way we will have to do it. / Raimo Niskanen, Erlang/OTP, Ericsson AB Due to lack of resources we will not remove named pipe support ". zist" wrote: > > I recently discovered Erlang and I am thinking about using it > for some of our projects. > > While Erlang documentation explains clearly the different ways > to call C functions or spawn a new external process and communicate > with it through a port, it is less explicit concerning communication > with already > existing processes. > There is always the possibility to use sockets but sometimes it is > "overkill" > on the external process side and not always appropriate. > For processes on the same cpu, it is often useful to use named pipes > (fifo) as an IPC mechanism. > > But how is this supported on Erlang/OTP ? > Using file:open("name fifo",[]) doesn't work on named pipes (it works > for regular > files). > Using open_port("name fifo", []) seems to work > (it worked in my erlang shell, I haven't yet sent/received info over > the pipe) > but the documentation (Kernel reference manual version 2.7, module > erlang, under > open_port) states that for > open_port(PortName ...) with an Atom as PortName (name of the named > pipe) > "This use of open_port() is obsolete and will be removed in a future > version of Erlang. Use the file module instead" > > So are named pipes/fifo officially supported in Erlang ? > If open_port with Atoms (named pipes) is soon to be removed, can we > be sure > that at this time file:open will then support named pipes ? > > According to the archives, someone already asked a similar question > in July 2001 ("named pipe as port ?") but without any answer. > > Thanks, > Christophe Lesourd > InSerTO > > ---------------------------------------------------------------------- > Chat with friends online, try MSN Messenger: Click Here From cpressey@REDACTED Fri Mar 29 13:27:22 2002 From: cpressey@REDACTED (Chris Pressey) Date: Fri, 29 Mar 2002 06:27:22 -0600 Subject: [d]ets:lookup misbehaves when called during init:start? Message-ID: <20020329062722.09f70991.cpressey@catseye.mb.ca> I'd really like to get to the bottom of this one... I have a server that opens a socket. If I start this server from the Erlang shell, everything works smoothly. If I try to start it with a -run command line argument to erl, it does *not* work and I get the following error message upon quitting: {error_logger,{{2002,3,29},{6,10,40}},'Error in process <0.24481.0> with exit value: {badarg,[{ets,lookup,[inet_db,tcp_module]}, {inet_db,db_get,1},{gen_tcp,listen,2},{ce_socket,start,4}]}\n',[]} I get the same error if I try to start it from my .erlang file. The question is... why? I've asked this once before a while ago, but got no response so far. It seems someone else is (anonymously) getting a very similar error trying to start the wiki in the same way: http://www.bluetail.com/wiki/showPage?node=WikiSetup {badarg,[{ets,lookup_element,[dets_registry,wikie,3]}, {dets,lookup,2}, {wikie,fetch_page,1}, {erl_eval,expr,3}, {erl_eval,exprs,4}, {esp,eval,2}, {esp,expand,3}, {esp,do_expand_file,2}, {esp,handle,1}| more]} Any information on this anomaly (e.g. why it happens and/or how to work around it) would be greatly appreciated (seeing as I *really* don't want to have to start my server from the Erlang shell every time I want to use it :) Thanks in advance, Chris From fritchie@REDACTED Fri Mar 29 17:34:18 2002 From: fritchie@REDACTED (Scott Lystig Fritchie) Date: Fri, 29 Mar 2002 10:34:18 -0600 Subject: Communication with existing non-Erlang processes ? In-Reply-To: Message of "Thu, 28 Mar 2002 13:55:52 +0100." <3CA312D8.D21618C@erix.ericsson.se> Message-ID: <200203291634.g2TGYJN15884@snookles.snookles.com> >>>>> "rn" == Raimo Niskanen writes: rn> The entusiastic user may write a linked-in driver that handles rn> named pipes, which probably is the way we will have to do it. Those who are interested in a tremendously-ugly-but-it-works-anyway modification of the inet driver to support UNIX domain sockets should look in the User Contributions section for the "unixdom" package: http://www.erlang.org/user.html#unixdom-0.1. I apologize for not maintaining it beyond it's current state, but it really does work. If it would be a useful starting point for named pipe work, or merely an example of what can be ripped out of the TCP part of the inet driver by someone who barely knows what he's doing, be my guest! :-) -Scott From phillipd@REDACTED Fri Mar 29 17:59:46 2002 From: phillipd@REDACTED (phillipd@REDACTED) Date: Fri, 29 Mar 2002 08:59:46 -0800 Subject: erlang - the right tool for the the following problem? Message-ID: Hello, I have 35 unix and 50 nt servers. I need to monitor all sorts of "stuff" such as disk usage, database health (ms sql server, oracle, DB2 and uniVerse). I have many small perl scripts that handle much of the grunt work. However, I now need to somehow "weave" this all together in some sort of fabic that we can look at for the warm fuzzies that upper management wants to see. Once this is in place will erlang allow me to harvest unused resourses (cpu,disk,memory) for other processes? Thanks Dale phillipd@REDACTED Dale Phillips fosterfarms.com From olgeni@REDACTED Sat Mar 30 22:29:20 2002 From: olgeni@REDACTED (Jimmy Olgeni) Date: Sat, 30 Mar 2002 22:29:20 +0100 (CET) Subject: emacs 21, comint and erlang-mode Message-ID: <20020330182417.I1134-100000@olgeni.olgeni> Hi! Looks like something changed in the comint package for emacs 21.x: erlang mode hangs when waiting for the erl prompt, then times out after 60 seconds. If you press Ctrl-G while it is hung, the prompt appears regularly. For some reason the loop in inferior-erlang-wait-prompt fails when "looking-at" the comint-prompt-regexp. Silly workaround for your .emacs: (add-hook 'erlang-mode-hook (lambda () (setq comint-prompt-regexp ""))) :-) -- jimmy From cpressey@REDACTED Sun Mar 31 07:52:35 2002 From: cpressey@REDACTED (Chris Pressey) Date: Sat, 30 Mar 2002 23:52:35 -0600 Subject: [d]ets:lookup misbehaves when called during init:start? In-Reply-To: <20020329062722.09f70991.cpressey@catseye.mb.ca> References: <20020329062722.09f70991.cpressey@catseye.mb.ca> Message-ID: <20020330235235.215344cf.cpressey@catseye.mb.ca> I have discovered one workaround for this, although it comes at a grave cost (namely, the use of the shell) Instead of erl -run module function use echo 'module:function().' | erl Should have been obvious I suppose :) Chris On Fri, 29 Mar 2002 06:27:22 -0600 Chris Pressey wrote: > I'd really like to get to the bottom of this one... > > I have a server that opens a socket. If I start this server from the > Erlang shell, everything works smoothly. If I try to start it with a > -run command line argument to erl, it does *not* work and I get the > following error message upon quitting: > > {error_logger,{{2002,3,29},{6,10,40}},'Error in process <0.24481.0> > with exit value: {badarg,[{ets,lookup,[inet_db,tcp_module]}, > {inet_db,db_get,1},{gen_tcp,listen,2},{ce_socket,start,4}]}\n',[]} > > I get the same error if I try to start it from my .erlang file. > > The question is... why? > > I've asked this once before a while ago, but got no response so far. > > It seems someone else is (anonymously) getting a very similar error > trying to start the wiki in the same way: > > http://www.bluetail.com/wiki/showPage?node=WikiSetup > > {badarg,[{ets,lookup_element,[dets_registry,wikie,3]}, > {dets,lookup,2}, > {wikie,fetch_page,1}, > {erl_eval,expr,3}, > {erl_eval,exprs,4}, > {esp,eval,2}, > {esp,expand,3}, > {esp,do_expand_file,2}, > {esp,handle,1}| > more]} > > Any information on this anomaly (e.g. why it happens and/or how to work > around it) would be greatly appreciated (seeing as I *really* don't want > to have to start my server from the Erlang shell every time I want to > use it :) > > Thanks in advance, > Chris