From erlang@REDACTED Tue Oct 1 16:29:43 2002 From: erlang@REDACTED (Peter-Henry Mander) Date: Tue, 01 Oct 2002 15:29:43 +0100 Subject: Megaco MediaDescriptor sending multiStream instead of oneStream Message-ID: <3D99B157.2090407@manderp.freeserve.co.uk> Hi H?kan, I've got another query, and as you've been a great help already I'm asking you directly. I'm sending out a AmmRequest with the following format: #'AmmRequest'{ terminationID = [TermId], descriptors = [ { mediaDescriptor, #'MediaDescriptor'{streams = {oneStream, StreamParms}}}] }; Note the oneStream streams field. What I receive at the other end is: {'MediaDescriptor',asn1_NOVALUE, {multiStream,[{'StreamDescriptor', 1, {'StreamParms', {'LocalControlDescriptor', asn1_NOVALUE, asn1_NOVALUE, asn1_NOVALUE, ...etc... And the megaco message looks like this: Transaction = 26 { Context = $ { Add = $ { Media { Stream = 1 { LocalControl { ...etc... I suppose the Stream = 1 {...} block indicates multiStream. It looks as if the encoder is ignoring my oneStream and sending multiStream in it's place. Is there something I missed and ought to be doing? Pete. From DANIESC.SCHUTTE@REDACTED Wed Oct 2 10:23:03 2002 From: DANIESC.SCHUTTE@REDACTED (DANIESC SCHUTTE) Date: Wed, 02 Oct 2002 10:23:03 +0200 Subject: Installation of Erlang with OpenSSL on Solaris Message-ID: Greetings all, after having read all that I could find, I'm still in need of expert help. I'm trying to install erlang R8B1 on Solaris 8 (Sparc AND Intel) with openssl-0.9.6g to include the crypto application. The openssl installs perfectly, and I built the shared libraries and placed them in the installation dir as specified, and added to LD_LIBRARY_PATH. running ./configure however - still tells me that OpenSSL is not found in /usr/local/ssl (which is where it is installed). Thanks for your help Danie Schutte Phone: +27 - 11 - 203 - 1614 Mobile: 083-268-3138 e-Mail: Daniesc@REDACTED From L.A.Timochouk@REDACTED Wed Oct 2 11:58:10 2002 From: L.A.Timochouk@REDACTED (Leonid Timochouk) Date: Wed, 2 Oct 2002 10:58:10 +0100 (BST) Subject: Installation of Erlang with OpenSSL on Solaris In-Reply-To: Message-ID: Hello Daniesc, Did you explicitly provide the parameter --with-ssl=/usr/local/ssl to "configure"? (LD_LIBRARY_PATH alone is not enough). Is there the "include" sub-directory with SSL header files, as well as the "lib" sub-directory containing your shared libraries? In any case, you can check the "erts/config.log" file to see exactly how the check for SSL failed, and try to re-run this check manually (it compiles a simple program linked with the SSL library), possibly in a more verbose mode, to see what is going wrong. Hope it will help, Leonid Timochouk University of Kent at Canterbury United Kingdom From hakan@REDACTED Wed Oct 2 14:07:18 2002 From: hakan@REDACTED (Hakan Mattsson) Date: Wed, 2 Oct 2002 14:07:18 +0200 (MEST) Subject: Megaco MediaDescriptor sending multiStream instead of oneStream In-Reply-To: <3D99B157.2090407@manderp.freeserve.co.uk> Message-ID: On Tue, 1 Oct 2002, Peter-Henry Mander wrote: Pete> I've got another query, and as you've been a great help already I'm Pete> asking you directly. I'm sending out a AmmRequest with the following Pete> format: Pete> Pete> #'AmmRequest'{ Pete> terminationID = [TermId], Pete> descriptors = [ Pete> { mediaDescriptor, Pete> #'MediaDescriptor'{streams = {oneStream, StreamParms}}}] Pete> }; Pete> Pete> Note the oneStream streams field. What I receive at the other end is: Pete> Pete> {'MediaDescriptor',asn1_NOVALUE, Pete> {multiStream,[{'StreamDescriptor', Pete> 1, Pete> {'StreamParms', Pete> {'LocalControlDescriptor', Pete> asn1_NOVALUE, Pete> asn1_NOVALUE, Pete> asn1_NOVALUE, ...etc... Pete> Pete> And the megaco message looks like this: Pete> Pete> Transaction = 26 { Pete> Context = $ { Pete> Add = $ { Pete> Media { Pete> Stream = 1 { Pete> LocalControl { ...etc... Our encoder and decoder is not symmetric in this case. Your message is encoded as: Transaction = 26 { Context = $ { Add = $ { Media { LocalControl { ...etc... but interpreted by the decoder as if it was: Transaction = 26 { Context = $ { Add = $ { Media { Stream = 1 { LocalControl { ...etc... which is semantically the same thing. Pete> I suppose the Stream = 1 {...} block indicates multiStream. Pete> It looks as if the encoder is ignoring my oneStream and sending multiStream Pete> in it's place. Is there something I missed and ought to be doing? You have not missed anything. Once upon the time I thought that it would be convenient for the user if the decoder abstracted away the syntactic sugar for the default stream id (oneStream). But now I realize that it is pretty confusing. If you download and gunzip the attached file into the megaco/src/text directory and recompiles megaco/src/megaco_text_parser.erl I think that the decoder to behave like you expected. /H?kan -------------- next part -------------- A non-text attachment was scrubbed... Name: megaco_text_parser.hrl.gz Type: application/octet-stream Size: 6764 bytes Desc: megaco_text_parser.hrl.gz URL: From erlang@REDACTED Wed Oct 2 18:11:17 2002 From: erlang@REDACTED (Peter-Henry Mander) Date: Wed, 02 Oct 2002 17:11:17 +0100 Subject: Megaco MediaDescriptor sending multiStream instead of oneStream References: Message-ID: <3D9B1AA5.1080004@manderp.freeserve.co.uk> Thanks H?kan. Yes, it was a bit confusing. It did force me to deal with both oneStream and multiStream media descriptors where I initially had assumed only oneStream (Oops! :-) Pete. Hakan Mattsson wrote: > On Tue, 1 Oct 2002, Peter-Henry Mander wrote: > > Pete> I've got another query, and as you've been a great help already I'm > Pete> asking you directly. I'm sending out a AmmRequest with the following > Pete> format: > Pete> > Pete> #'AmmRequest'{ > Pete> terminationID = [TermId], > Pete> descriptors = [ > Pete> { mediaDescriptor, > Pete> #'MediaDescriptor'{streams = {oneStream, StreamParms}}}] > Pete> }; > Pete> > Pete> Note the oneStream streams field. What I receive at the other end is: > Pete> > Pete> {'MediaDescriptor',asn1_NOVALUE, > Pete> {multiStream,[{'StreamDescriptor', > Pete> 1, > Pete> {'StreamParms', > Pete> {'LocalControlDescriptor', > Pete> asn1_NOVALUE, > Pete> asn1_NOVALUE, > Pete> asn1_NOVALUE, ...etc... > Pete> > Pete> And the megaco message looks like this: > Pete> > Pete> Transaction = 26 { > Pete> Context = $ { > Pete> Add = $ { > Pete> Media { > Pete> Stream = 1 { > Pete> LocalControl { ...etc... > > Our encoder and decoder is not symmetric in this case. > > Your message is encoded as: > > Transaction = 26 { > Context = $ { > Add = $ { > Media { > LocalControl { ...etc... > > but interpreted by the decoder as if it was: > > Transaction = 26 { > Context = $ { > Add = $ { > Media { > Stream = 1 { > LocalControl { ...etc... > > which is semantically the same thing. > > Pete> I suppose the Stream = 1 {...} block indicates multiStream. > Pete> It looks as if the encoder is ignoring my oneStream and sending multiStream > Pete> in it's place. Is there something I missed and ought to be doing? > > You have not missed anything. > > Once upon the time I thought that it would be convenient for the user > if the decoder abstracted away the syntactic sugar for the default > stream id (oneStream). But now I realize that it is pretty confusing. > > If you download and gunzip the attached file into the megaco/src/text > directory and recompiles megaco/src/megaco_text_parser.erl I think > that the decoder to behave like you expected. > > /H?kan From pegu2945@REDACTED Wed Oct 2 09:22:32 2002 From: pegu2945@REDACTED (Gustafsson) Date: Wed, 02 Oct 2002 09:22:32 +0200 Subject: binary matching Message-ID: <3D9A9EB8.CFB41FF9@student.uu.se> -module(bin_utils). > -export([breakLines/1,extract/3,scan/6]). > The reason that there is a bug in the scan function is that the default size when you match something to a binary is all so in a Binary = <<1, 2, 3>>, Pattern = <<1, 2>>, <> = Binary This will not result in a binding Rest = <<3>> but the matchinhg will fail scan has to be rewritten something like this to work: scan(<<>>, _Pattern, _Len, 0, 0, Acc) -> lists:reverse(Acc); scan(<<>>, _Pattern, _Len, Start, End, Acc) -> lists:reverse([End | [Start | Acc]]); scan(Binary, Pattern, Len, Start, End, Acc) -> Size = size(Pattern), case Binary of <> -> scan(Rest, Pattern, Len, End + Len, End + Len, [End | [Start | Acc]]); <<_Nomatch, Rest/binary>> -> scan(Rest, Pattern, Len, Start, End + 8, Acc) end. > breakLines(Binary) -> > StartStop = scan(Binary, <<13,10>>, 16, 0, 0, []), > extract(Binary, StartStop, []). > > extract(<<>>, _Locs, Acc) -> lists:reverse(Acc); > extract(Data, [Start, Stop | Rest], Acc) -> > Len = Stop - Start, > %%%%%%%%% Here is the problem %%%%%%%%%%%% > %% It does little good to get Line as an int %% > <> = Data, > %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% > extract(Back, Rest, [Line | Acc]). > > scan(<<>>, _Pattern, _Len, 0, 0, Acc) -> lists:reverse(Acc); > scan(<<>>, _Pattern, _Len, Start, End, Acc) -> lists:reverse([End | [Start > | Acc]]); > scan(<>, Pattern, Len, Start, End, Acc) -> > scan(Rest, Pattern, Len, End + Len, End + Len, [End | [Start | Acc]]); > scan(Data, Pattern, Len, Start, End, Acc) -> > <> = Data, > scan(Rest, Pattern, Len, Start, End + 8, Acc). > From luke@REDACTED Wed Oct 2 09:37:57 2002 From: luke@REDACTED (Luke Gorrie) Date: Wed, 2 Oct 2002 09:37:57 +0200 (CEST) Subject: Another Issue with Validation [VERY IMPORTANT] Message-ID: <200210020737.g927bvq06081@d1o30.telia.com> Sebastian Strollo writes: > Howdy Luke, > > > Quick summary of how this works, I don't remember how much of this > > existed while you were here but this is the gist: > > Not much, I recall seeing emails back and forth about it when you were > working on it though. Thanks for the quick intro - it is really cools > stuff! (I promise I will read the manual too...) Btw, can you have > fun's in the validations too? We have {call, M, F, A}, but not funs. It's often nicest to just add a new builtin, because to evaluate {FunName, Arg1, Arg2, ...} the interpreter basically just does: apply(reg_rules, FunName, [Arg1, Arg2, ...]) So reg_rules.erl just contains a bunch of functions like: between(X, Y, Z) -> (X >= Y) and (X =< Z). We did add funs on the SSL branch, for things like: {apply_fn, fun(V) -> V < 10 end, [{value, self}]} Which is done in reg_rules with: apply_fn(Fn, Args) -> apply(Fn, Args). Plus a little tweak to this arg_eval_strategy/1 function to say that the Args argument should be evaluated as a list. > Ok, but when there is a whole bunch of these in the log file it is > kind of hard to see when it started to work... Don't know if you keep > any state, but if it is something that is retried a number of times it > might be nice with log messages like "No such.... retrying" ... and > then when it succeeds a single message telling you that it > worked. Just a thought. Maybe a decent quick fix would be to do an info message when we start a commit - that way you can see which callbacks weren't registered each time. Since we always retry a callback that failed the previous time, you'll always get the "callback not registered" messages until it actually succeeds. > Given the premise that they have some rules with callbacks, I think > what Biju is saying that if you have *not* registered your (cli and > rdt) callbacks the CLI/validation is starting to behave in an > unexpected manner. As far as I understand the example just shows that > "all of a sudden a value is rejected". Yeah. Thanks for the RDT files - I'll have a look through them now and see if I can find the problem. Cheers, Luke A -------------- next part -------------- [ Bugbear virus removed from archive ] From martin@REDACTED Thu Oct 3 00:43:42 2002 From: martin@REDACTED (martin j logan) Date: Wed, 02 Oct 2002 17:43:42 -0500 Subject: R8 on Redhat 8.0 Message-ID: <3D9B769E.30902@vailsys.com> I was wondering if anyone has any experiance building R8 on redhat 8.0? I am getting the error /usr/local/src/otp_src_R8B-2/erts/obj.instr.beam/i686-pc-linux-gnu/sys.o: In function `sys_preloaded': /usr/local/src/otp_src_R8B-2/erts/emulator/sys/unix/sys.c:3123: undefined reference to `pre_loaded' collect2: ld returned 1 exit status make[2]: *** [/usr/local/src/otp_src_R8B-2/bin/i686-pc-linux-gnu/beam.instr] Error 1 make[2]: Leaving directory `/usr/local/src/otp_src_R8B-2/erts/emulator' make[1]: *** [instr] Error 2 make[1]: Leaving directory `/usr/local/src/otp_src_R8B-2/erts/emulator' gmake: *** [emulator.instr] Error 2 I get the same error with make and gmake and I have tried -1 and -2 of R8. I have tried a variety of "tricks" but nothing non-destructive seems to want to work. I am assuming that redhat mucked somthing up and I am wondering if anyone knows how I sweep up the peices. Thanks, Martin From thierry.mallard@REDACTED Thu Oct 3 01:44:10 2002 From: thierry.mallard@REDACTED (Thierry Mallard) Date: Thu, 3 Oct 2002 01:44:10 +0200 Subject: R8 on Redhat 8.0 In-Reply-To: <3D9B769E.30902@vailsys.com> References: <3D9B769E.30902@vailsys.com> Message-ID: <20021002234410.GC1543@hobbes.local.vawis.net> Hello, Can you tell us what version of gcc is installed on RH8 ? (gcc --version) On Wed, Oct 02, 2002 at 05:43:42PM -0500, martin j logan wrote: > I was wondering if anyone has any experiance building R8 on redhat 8.0? > I am getting the error > > /usr/local/src/otp_src_R8B-2/erts/obj.instr.beam/i686-pc-linux-gnu/sys.o: > In function `sys_preloaded': > /usr/local/src/otp_src_R8B-2/erts/emulator/sys/unix/sys.c:3123: > undefined reference to `pre_loaded' > collect2: ld returned 1 exit status > make[2]: *** > [/usr/local/src/otp_src_R8B-2/bin/i686-pc-linux-gnu/beam.instr] Error 1 > make[2]: Leaving directory `/usr/local/src/otp_src_R8B-2/erts/emulator' > make[1]: *** [instr] Error 2 > make[1]: Leaving directory `/usr/local/src/otp_src_R8B-2/erts/emulator' > gmake: *** [emulator.instr] Error 2 > > I get the same error with make and gmake and I have tried -1 and -2 of > R8. I have tried a variety of "tricks" but nothing non-destructive seems > to want to work. I am assuming that redhat mucked somthing up and I am > wondering if anyone knows how I sweep up the peices. > > Thanks, > Martin > > > -- Thierry Mallard http://vawis.net From martin@REDACTED Thu Oct 3 02:16:32 2002 From: martin@REDACTED (martin j logan) Date: 02 Oct 2002 19:16:32 -0500 Subject: R8 on Redhat 8.0 In-Reply-To: <20021002234410.GC1543@hobbes.local.vawis.net> References: <3D9B769E.30902@vailsys.com> <20021002234410.GC1543@hobbes.local.vawis.net> Message-ID: <1033604196.3645.5.camel@berimbau> The version of gcc is gcc (GCC) 3.2 20020903 (Red Hat Linux 8.0 3.2-7) On Wed, 2002-10-02 at 18:44, Thierry Mallard wrote: > Hello, > > Can you tell us what version of gcc is installed on RH8 ? > (gcc --version) > > On Wed, Oct 02, 2002 at 05:43:42PM -0500, martin j logan wrote: > > I was wondering if anyone has any experiance building R8 on redhat 8.0? > > I am getting the error > > > > /usr/local/src/otp_src_R8B-2/erts/obj.instr.beam/i686-pc-linux-gnu/sys.o: > > In function `sys_preloaded': > > /usr/local/src/otp_src_R8B-2/erts/emulator/sys/unix/sys.c:3123: > > undefined reference to `pre_loaded' > > collect2: ld returned 1 exit status > > make[2]: *** > > [/usr/local/src/otp_src_R8B-2/bin/i686-pc-linux-gnu/beam.instr] Error 1 > > make[2]: Leaving directory `/usr/local/src/otp_src_R8B-2/erts/emulator' > > make[1]: *** [instr] Error 2 > > make[1]: Leaving directory `/usr/local/src/otp_src_R8B-2/erts/emulator' > > gmake: *** [emulator.instr] Error 2 > > > > I get the same error with make and gmake and I have tried -1 and -2 of > > R8. I have tried a variety of "tricks" but nothing non-destructive seems > > to want to work. I am assuming that redhat mucked somthing up and I am > > wondering if anyone knows how I sweep up the peices. > > > > Thanks, > > Martin > > > > > > > > -- > Thierry Mallard > http://vawis.net > From tony@REDACTED Thu Oct 3 14:20:49 2002 From: tony@REDACTED (Tony Rogvall) Date: Thu, 03 Oct 2002 14:20:49 +0200 Subject: Bit syntax frustrations, again (LONG) References: <15763.28825.130937.439170@antilipe.corelatus.se> Message-ID: <3D9C3621.9020202@rogvall.com> Matthias Lang wrote: > > 4. None of the above options. I'll have to go out and take more > drugs to twist my brain some more. > > Buy some for me as well :-) >Matthias > >(* Bits-in-a-byte the wrong way around can happen, but surely not in a >file format. When you transmit SS7 traffic over a E1/T1 PCM line, you >send the LSB first. When you send voice over the same line, you send >the MSB first. Some hardware, such as ours, doesn't distinguish >between voice and data at lower levels, so sometimes you get >bit-reversed data up at the CPU. This is kinda annoying, but easily >dealt with in hardware.) > > This is a attempt to solve this question once and for all :-) First the conclusion ! (The investigation below) /Tony Conclusion: When we bit match data from a raw bit field structure we must know the size of the word that the bits where packed in 8,16,32 ... For big endian data the layout is irrelevant since bits and bytes corresponds to the bit syntax default (natural layout) For little endian data the bytes must be reversed group wise taking care of the way bits are packed in words. Then the bit field spec must be reversed as well. so if a big endian spec is: (and that is generated from a packed bit field structure in C) <> = Bin The little edian spec whould look like <> = bin_reverse(Bin) To solve this once and for all I wote for (re)introduction of bit groups! To given an example of how to specify the above bit pattern in a bit group: << <>:2/little >> << <>:2/big >> == <> Even better should be to be able to give the endian in runtime, Then we could have ONE pattern. << <>:2/Endian >> == case Endian of big -> << <>:2/big >>; little -> << <>:2/little >> end THE GORY DEATAILS ---------------------------------- Given the C program test.c typedef struct { unsigned a:2; unsigned b:3; unsigned c:1; unsigned d:2; } __attribute__((packed)) b8_t; typedef struct { unsigned a:3; unsigned b:7; unsigned c:1; unsigned d:5; } __attribute__((packed)) b16_t; int main(int argc, char** argv) { b8_t x8; b16_t x16; x8.a = 1; x8.b = 2; x8.c = 0; x8.d = 3; x16.a = 1; x16.b = 2; x16.c = 0; x16.d = 3; write(1, &x8, sizeof(x8)); write(1, &x16, sizeof(x16)); exit(0); } We want to be able to read the ouput from Erlang with the binary syntax. We may use open_port or a file to read the raw data from the above program. X8 = X16 = BIG ENDIAN (compile "gcc" the above program on a big endian machine) X8 = <<2#01010011>> ------------------- Layout: +---+---+---+---+---+---+---+---+ X8 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | +---+---+---+---+---+---+---+---+ | A | B | C | D | +---+---+---+---+---+---+---+---+ Match: <> = X8 Values A=1, B=2, C=0, D=3 X16 = <<2#00100000,2#10000011>> ------------------------------- Layout: +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ X16 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | A | B | C | D | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ Match: <> = X16 Values A=1, B=2, C=0, D=3 LITTLE ENDIAN (compile "gcc" the above C program on a little endian machine) X8 = <<2#11001001>> -------------------- Layout: +---+---+---+---+---+---+---+---+ X8 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | +---+---+---+---+---+---+---+---+ | D | C | B | A | +---+---+---+---+---+---+---+---+ Match: <> = X8 Values A=1, B=2, C=0, D=3 THE FUN PART X16 = <<2#00010001, 2#00011000>> -------------------------------- Layout: +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ X16 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Bl | A | D | C | Bh | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ Match: <> = X16 Values A=1, Bl+(Bh<<5)=2, C=0, D=3 From The Little endian case we can see that for little endian bit fields with in a word must be reversed. Depending on what word size the bits was stuffed in we must reverse the bytes with in the word size then reverse the fields. i.e if we reverse the bytes for X16 we get the layout: +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ X16 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | D | C | Bh | Bl | A | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ Match: <> = X16 At least this is consistent with the X8 case, where we reverse all fields. END From luke@REDACTED Thu Oct 3 15:17:46 2002 From: luke@REDACTED (Luke Gorrie) Date: 03 Oct 2002 15:17:46 +0200 Subject: Virus-looking mail Message-ID: G'day all, Thanks to everyone who pointed out that a virus is going around piggy-backed on an email that I wrote. I'm now _very_ well aware of the fact, so no need for more warnings :-) NB - the virus is interesting, I think it's "Bugbear". On the 'net, they say it works like this: Step 1: Disable any firewall or virus scanning software you have. Step 2: Find a random mail on your computer, attach some other random From: address to it, along with the virus itself, and send it to everyone it can find. Step 3: Start logging all keystrokes, and start a small daemon on a particular port to play them back to anyone who connects. Fun, huh? Cheers, Luke From matthias@REDACTED Thu Oct 3 15:20:32 2002 From: matthias@REDACTED (Matthias Lang) Date: Thu, 3 Oct 2002 15:20:32 +0200 Subject: Bit syntax frustrations, again (LONG) In-Reply-To: <3D9C3621.9020202@rogvall.com> References: <15763.28825.130937.439170@antilipe.corelatus.se> <3D9C3621.9020202@rogvall.com> Message-ID: <15772.17440.400562.599784@antilipe.corelatus.se> mml> (* Bits-in-a-byte the wrong way around can happen, but mml> surely not in a file format. When you transmit SS7 traffic mml> over a E1/T1 PCM line, you send the LSB first. When you send mml> voice over the same line, you send the MSB first. [...] tony> This is a attempt to solve this question once and for all :-) Except that your suggestion solves another problem, not the one I described. The SS7 problem is this: if there's an octet 0x83 (1000 0011) on the line, the receiving hardware will put it in RAM as 0xc1 (1100 0001). This is a pain in the arse but, once you've figured out what's going on and condemned the authors of Q.703 to hell yet again, it's dealt with fairly easily by adding a bit-reflect mode in hardware. The problem you're solving is one of dealing with file formats designed for little endian machines: tony> To solve this once and for all I wote for (re)introduction tony> of bit groups! tony> To given an example of how to specify the above bit pattern tony> in a bit group: tony> << <>:2/little >> tony> << <>:2/big >> == < D:4, E:6>> Syntax-wise, this doesn't seem like such a huge win over << Temp:16/little >> = Bin, <<> == <>. though it may help the compiler generate good code. In any case, I have a simpler solution: the authors of any little endian protocols and file formats can go roast with the Shockwave and Q.703 guys. Matthias From Laszlo.Varga@REDACTED Thu Oct 3 15:37:15 2002 From: Laszlo.Varga@REDACTED (Laszlo Varga) Date: Thu, 3 Oct 2002 15:37:15 +0200 (MEST) Subject: Virus-looking mail Message-ID: <200210031337.g93DbFr02837@duna273.eth.ericsson.se> Hello, is that fun available on UNIX/SUN systems? If so, then how to detect, or get rid of? Cheers: Laszlo > To: erlang-questions@REDACTED > Subject: Virus-looking mail > From: Luke Gorrie > X-Sincerity: 14% (approx.) > Date: 03 Oct 2002 15:17:46 +0200 > User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50 > MIME-Version: 1.0 > > G'day all, > > Thanks to everyone who pointed out that a virus is going around > piggy-backed on an email that I wrote. I'm now _very_ well aware of > the fact, so no need for more warnings :-) > > NB - the virus is interesting, I think it's "Bugbear". On the 'net, > they say it works like this: > > Step 1: Disable any firewall or virus scanning software you have. > > Step 2: Find a random mail on your computer, attach some other random > From: address to it, along with the virus itself, and send it > to everyone it can find. > > Step 3: Start logging all keystrokes, and start a small daemon on a > particular port to play them back to anyone who connects. > > Fun, huh? > > Cheers, > Luke > From luke@REDACTED Thu Oct 3 16:06:49 2002 From: luke@REDACTED (Luke Gorrie) Date: 03 Oct 2002 16:06:49 +0200 Subject: Virus-looking mail In-Reply-To: <200210031337.g93DbFr02837@duna273.eth.ericsson.se> References: <200210031337.g93DbFr02837@duna273.eth.ericsson.se> Message-ID: Laszlo Varga writes: > Hello, > is that fun available on UNIX/SUN systems? > > If so, then how to detect, or get rid of? No, only windows, it uses yet-another buffer overflow in IE/Outlook. I didn't actually get the virus, it just chose a mail by me as its carrier. Very advanced AI features to so accurately assess that I'm a trustworthy guy who people won't think twice about opening attachments from :-) For more details, search for "bugbear" on news.google.com. Cheers, Luke From bjarne@REDACTED Thu Oct 3 16:18:39 2002 From: bjarne@REDACTED (Bjarne =?iso-8859-1?Q?D=E4cker?=) Date: Thu, 03 Oct 2002 16:18:39 +0200 Subject: Erlang questionaire References: <3D5A2B5C.E5572329@erix.ericsson.se> Message-ID: <3D9C51BF.1E0B4145@erix.ericsson.se> Dear Erlang users! There is a small web based questionarie form at http://www.erlang.org/ where we kindly ask Erlang users about their use of Erlang. We plan to present the findings so far at the ACM SIGPLAN Erlang Workshop in Pittsburgh on Monday, October 7, and would like it to be as complete as possible. If you are a user and have not already answered the questionaire, please do so before Friday 1500 hours CET. Best regards Bjarne D?cker From erlang@REDACTED Thu Oct 3 16:45:55 2002 From: erlang@REDACTED (Peter-Henry Mander) Date: Thu, 03 Oct 2002 15:45:55 +0100 Subject: megaco distributed encode/decode Message-ID: <3D9C5823.7000101@manderp.freeserve.co.uk> Hi H?kan, I'm trying to get my head around distributed encoding and decoding with the megaco stack. The documentation is tantalising, but not very meaty. I still don't understand how to use the megaco stack in a distributed environment. You mentioned partial decoding of messages and triage on the transaction id. I wonder if this can be avoided by using mnesia to maintain a database of all current contexts? (I'm already using mnesia to store context data) If a message can be received and immediately farmed off to a supporting node, and the node can receive any message in whatever order they arrive, it can fully decode the message and look up the context for the transaction in the database, and apply the message instruction to the contents of the database. I'm not too sure how to return the transaction reply using this system. Is this a suitable idea? Can this work? Pete. From rpettit@REDACTED Thu Oct 3 18:14:32 2002 From: rpettit@REDACTED (Rick Pettit) Date: Thu, 3 Oct 2002 11:14:32 -0500 Subject: Virus-looking mail In-Reply-To: References: <200210031337.g93DbFr02837@duna273.eth.ericsson.se> Message-ID: <20021003161432.GD20246@vailsys.com> > > is that fun available on UNIX/SUN systems? > > If so, then how to detect, or get rid of? > > No, only windows, it uses yet-another buffer overflow in IE/Outlook. I can't believe people still use this garbage... -Rick From vances@REDACTED Thu Oct 3 19:18:32 2002 From: vances@REDACTED (Vance Shipley) Date: Thu, 3 Oct 2002 13:18:32 -0400 Subject: Bit syntax frustrations, again In-Reply-To: <3D9C3621.9020202@rogvall.com> References: <15763.28825.130937.439170@antilipe.corelatus.se> <3D9C3621.9020202@rogvall.com> Message-ID: <20021003171832.GG15727@frogman.motivity.ca> I am working heavily with the bit syntax right now and my two cents on this matter is that it is unfortunate that I can't do this: <> = Packet It would make my life a lot easier. -Vance From Sean.Hinde@REDACTED Thu Oct 3 20:15:43 2002 From: Sean.Hinde@REDACTED (Sean Hinde) Date: Thu, 3 Oct 2002 19:15:43 +0100 Subject: Bit syntax frustrations, again Message-ID: <04D356A3B172D611981B0008C791C3126BF3C7@imp02mbx.t-mobile.co.uk> > I am working heavily with the bit syntax right now and my two cents > on this matter is that it is unfortunate that I can't do this: > > <> = Packet > > It would make my life a lot easier. And while we are at it what about unbound length parameters (like a basic regexp search): 1>f(). ok 2><> = <<"abcdef\r\nghijkl\r\n">>. <<97,98,99,100,101,102,13,10,103,104,105,106,107,108,13,10>> 3>Line. <<97,98,99,100,101,102>> 4>Length. 6. 5>Tail. <<103,104,105,106,107,108,13,10>> This would make many applications much more elegant (not to mention a darn site faster). I'm not quite sure what to do about nothing found.. probably just exit(badmatch) 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 tony@REDACTED Thu Oct 3 20:39:31 2002 From: tony@REDACTED (Tony Rogvall) Date: Thu, 03 Oct 2002 20:39:31 +0200 Subject: Bit syntax frustrations, again References: <15763.28825.130937.439170@antilipe.corelatus.se> <3D9C3621.9020202@rogvall.com> <20021003171832.GG15727@frogman.motivity.ca> Message-ID: <3D9C8EE3.3020904@rogvall.com> Vance Shipley wrote: >I am working heavily with the bit syntax right now and my two cents >on this matter is that it is unfortunate that I can't do this: > > <> = Packet > >It would make my life a lot easier. > > -Vance > > You need to give the emulator some hint on the length of Payload, we had two different ways in the prototype. 1. The header contains the length of PayLoad <> = Packet --- In this case we used Variable bindings from left to right which was a bit controversial... (I do not remember why :-) The first binding of Len can be used later on in the bit pattern. 2. The pattern search. Assume that Trailer is bound then the pattern <> = Packet Would be interpreted as "first get the header" then start search for a bit pattern "Trailer" when "Trailer" is found then bind the Payload to the bits(bytes). Something like that? /Tony From vances@REDACTED Thu Oct 3 21:39:37 2002 From: vances@REDACTED (Vance Shipley) Date: Thu, 3 Oct 2002 15:39:37 -0400 Subject: Bit syntax frustrations, again In-Reply-To: <3D9C8EE3.3020904@rogvall.com> References: <15763.28825.130937.439170@antilipe.corelatus.se> <3D9C3621.9020202@rogvall.com> <20021003171832.GG15727@frogman.motivity.ca> <3D9C8EE3.3020904@rogvall.com> Message-ID: <20021003193937.GI15727@frogman.motivity.ca> On Thu, Oct 03, 2002 at 08:39:31PM +0200, Tony Rogvall wrote: > > You need to give the emulator some hint on the length of Payload, Point is I don't know. :) > 1. The header contains the length of PayLoad > > <> = Packet So therefore I can't do this. > 2. The pattern search. > > Assume that Trailer is bound then the pattern > > <> = Packet > > Would be interpreted as "first get the header" then start search > for a bit pattern "Trailer" when "Trailer" is found then bind the > Payload to the bits(bytes). > > Something like that? Yes, perfect. I just wrote a parser for a protocol where there is an ascii STX (Start of Transmission) followed by a variable length data string and then an ascii ETX (End of Transmission). It would nice if this worked: -define(STX, 2). -define(ETX, 3). get_data(Packet) -> <>. -Vance Vance Shipley Motivity Telecom Inc. +1 519 579 5816 From erikp@REDACTED Thu Oct 3 22:55:44 2002 From: erikp@REDACTED (Erik Pearson) Date: Thu, 3 Oct 2002 13:55:44 -0700 Subject: R8B make fails with RH's perl 5.8.0 Message-ID: <0D595F5EC57C9D4B800DAF910C3DA98F058D86@ctsmail1.celtech.com> Just installed RetHat 8.0 on a new box. On the first attempt(s), the perl script erts/emulator/utils/make_preload kept on failing on the first file: form size 1208 greater than size 1056 of module at utils/make_preload line 145, chuck 1. The problems stems from RH's perl 5.8.0 and its length() function, which now returns a character-based length. With use byte; The length function returns the correct 1216 for the length of $_ for the beam length of lib/kernel/ebin/otp_ring0.beam. --erikp-- From erikp@REDACTED Thu Oct 3 23:51:47 2002 From: erikp@REDACTED (Erik Pearson) Date: Thu, 3 Oct 2002 14:51:47 -0700 Subject: Actually, it's the RH 8.0 install Message-ID: <0D595F5EC57C9D4B800DAF910C3DA98F058D89@ctsmail1.celtech.com> After some more testing, I should probably say it's the RH 8.0 install and not the version of Perl (5.8.0) which caused the problem. I've installed RH many times, but this time I'm not certain which default locale it installed for me! Didn't have this in 7.[23]. Still, I think it would be more correct if perl used the byte length in the script --erikp-- From tab@REDACTED Sat Oct 5 15:56:11 2002 From: tab@REDACTED (Tomas Abrahamsson) Date: Sat, 5 Oct 2002 15:56:11 +0200 (MEST) Subject: Bit syntax frustrations, again (LONG) In-Reply-To: <3D9C3621.9020202@rogvall.com> (message from Tony Rogvall on Thu, 03 Oct 2002 14:20:49 +0200) Message-ID: <200210051356.PAA19613@proton.lysator.liu.se> > To solve this once and for all I wote for (re)introduction of > bit groups! Yes, this would make it easy to write bitsyntax for the RLC/MAC layer in the GPRS protocol stack as well, if I remember correctly. /Tomas From louis_stamsma@REDACTED Sun Oct 6 07:48:57 2002 From: louis_stamsma@REDACTED (Louis Stamsma) Date: Sun, 06 Oct 2002 07:48:57 +0200 Subject: Passing in record name to a function Message-ID: <20021006054605.0ACF574509@smtp5.wanadoo.nl> Hello, I'm new to Erlang and have some trouble with records. I would like to write a generic function that updates a field in a record (returning a new version of the record). For this purpose I would like to give the function a parameter indicating which field to update. Is this possible ? Regards, Louis From L.A.Timochouk@REDACTED Sun Oct 6 11:06:59 2002 From: L.A.Timochouk@REDACTED (Leonid Timochouk) Date: Sun, 6 Oct 2002 10:06:59 +0100 (BST) Subject: init:stop () semantics Message-ID: Hello Erlang users, In the documentation for the "init:stop()" function, it is said that "all applications are taken down smoothly". However, close analysis of the source code for this function (in OTP-R8B-2) suggests that it simply sends {'EXIT', kill} to all running processes except "heart" and "init" itself. Is it a smooth shutdown? Yet, it seems that the "stop()" call-back DOES get invoked for the running application -- how is it possible if all processes (including the application controller?) are brutally killed? Yours sincerely, Leonid Timochouk Computing Laboratory University of Kent at Canterbury From willem@REDACTED Mon Oct 7 01:08:30 2002 From: willem@REDACTED (Willem Broekema) Date: Mon, 07 Oct 2002 01:08:30 +0200 Subject: Passing in record name to a function References: <20021006054605.0ACF574509@smtp5.wanadoo.nl> Message-ID: <3DA0C26E.3060307@pastelhorn.com> Louis Stamsma wrote: > I would like to write a generic function that updates a field in a > record (returning a new version of the record). For this purpose I would > like to give the function a parameter indicating which field to update. > Is this possible ? You can't access a record field by using a variable for the field name. It must be a fixed field name (atom) instead. However, you could simulate such a function, by passing the value of 'record_info(fields, your_record)' as a parameter, like I did here: - Willem From hakan.stenholm@REDACTED Mon Oct 7 00:18:37 2002 From: hakan.stenholm@REDACTED (=?ISO-8859-1?Q?H=E5kan_Stenholm?=) Date: Mon, 7 Oct 2002 00:18:37 +0200 Subject: Passing in record name to a function Message-ID: <8F6C5113-D979-11D6-93A0-000393B8AB26@mbox304.swipnet.se> Yes and no, you can't pass the field name but you can pass the index of the field used by the underlying tuple representation, for example: %% update field Index in record Record set_field(Index, Record, Value) -> setelement(Index, Record, Value). this can then be called as: NewRecord = set_field(#record_name.field_name, Record, NewValue) The main limitation is that the index resolution (#record_name.field_name) is done at compile time (by the preprocessor) so if the record format is changed, the code will need to be recompiled. #RecordName.field_name or #RecordName.FieldName might be nice but don't work, records don't exist in the VM, they are converted to tuples during compilation. Of course you still have the option to access the tuple directly, for example, if I have several records (different kinds) in a list and the first field is always a id key value i could simply use %% 2 is the position of the id field, the first tuple position is the name of the record Record = lists:keysearch(Key, 2, List) to find the record with id = Key. From Helen.Airiyan@REDACTED Mon Oct 7 15:07:46 2002 From: Helen.Airiyan@REDACTED (Helen Airiyan) Date: Mon, 07 Oct 2002 15:07:46 +0200 Subject: Erlang node dies silently Message-ID: <3DA18722.7E43D4ED@eed.ericsson.se> Hello there, we are running a (live!) distributed Erlang application. We have recently run into a problem where one of the Erlang nodes dies very silently without any indication of what the problem might be. It is not yet clear whether its killed by something internal to this node or some external process - Solaris kernel ? C process ? or something just falls appart in OTP We have tried using truss and application specific traces, but for weeks now we are in the dark. I was wondering if anyone might have some bright ideas on tracing this kind of problems ? Or maybe you have had a similar experience and might know possible causes for such phenomenom ? Thanks in advance. Regards, Helen From luke@REDACTED Mon Oct 7 17:19:12 2002 From: luke@REDACTED (Luke Gorrie) Date: 07 Oct 2002 17:19:12 +0200 Subject: Distel mailing list Message-ID: G'day all, I've been getting some nice comments, bug reports, and patches for Distel, so I setup an archived mailing list for it on Sourceforge. Please send new Distel mails to the list, so the other Distel hackers can see too. The address is distel-hackers@REDACTED, and you don't have to be a member to post (until the spammers pick up the address, at least). Full details and subscribe/unsubscribe interface is at: http://lists.sourceforge.net/lists/listinfo/distel-hackers Cheers, Luke From Chandrashekhar.Mullaparthi@REDACTED Tue Oct 8 00:25:53 2002 From: Chandrashekhar.Mullaparthi@REDACTED (Chandrashekhar Mullaparthi) Date: Mon, 7 Oct 2002 23:25:53 +0100 Subject: Erlang node dies silently Message-ID: <04D356A3B172D611981B0008C791C312404C00@imp02mbx.t-mobile.co.uk> Do you have sasl running. If yes, look in the SASL logs. You can probably see some crash reports etc. You'll have to configure sasl to log reports to disk. This is how we do it in our sys.config {sasl, [{error_logger_mf_dir, "/export/home/otpuser/gprsroam/sasl_logfiles/"}, {error_logger_mf_maxbytes, 20000}, {error_logger_mf_maxfiles, 4}]}, You can browse thru the sasl logs using rb cheers Chandru -----Original Message----- From: Helen Airiyan [mailto:Helen.Airiyan@REDACTED] Sent: 07 October 2002 14:08 To: erlang-questions@REDACTED Cc: Helen Airiyan Subject: Erlang node dies silently Hello there, we are running a (live!) distributed Erlang application. We have recently run into a problem where one of the Erlang nodes dies very silently without any indication of what the problem might be. It is not yet clear whether its killed by something internal to this node or some external process - Solaris kernel ? C process ? or something just falls appart in OTP We have tried using truss and application specific traces, but for weeks now we are in the dark. I was wondering if anyone might have some bright ideas on tracing this kind of problems ? Or maybe you have had a similar experience and might know possible causes for such phenomenom ? Thanks in advance. Regards, Helen 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 klacke@REDACTED Mon Oct 7 23:54:28 2002 From: klacke@REDACTED (Claes Wikstrom) Date: Mon, 7 Oct 2002 23:54:28 +0200 Subject: yaws 0.56 Message-ID: <20021007235428.A11048@hyber.org> New release of yaws >From the ChangeLog .... Improved file editing interface in the wiki New return value from out/1 called break The wiki returns w3c compliant code New return value from out/1 {ehtml, ErlangTermStructure} Multiple users by uid can now run yaws simultaneously. Support for streamed large content from yaws code Never cache yaws files that didn't compile properly. Much more documentation, man page for yaws_api added a cookie_session-server for persistant cookie sessions full argument chunking support in Wiki Install properly on FreeBSD. Support for embedded mode (finally) bugfix for empty POST The shopingcart example is now fully implemented. /klacke -- Claes Wikstrom -- Caps lock is nowhere and http://www.hyber.org -- everything is under control From matthias@REDACTED Tue Oct 8 08:53:23 2002 From: matthias@REDACTED (Matthias Lang) Date: Tue, 8 Oct 2002 08:53:23 +0200 Subject: Erlang node dies silently In-Reply-To: <04D356A3B172D611981B0008C791C312404C00@imp02mbx.t-mobile.co.uk> References: <04D356A3B172D611981B0008C791C312404C00@imp02mbx.t-mobile.co.uk> Message-ID: <15778.32995.893015.227510@antilipe.corelatus.se> > we are running a (live!) distributed Erlang application. > We have recently run into a problem where one of the Erlang nodes > dies very silently without any indication of what the problem might be. > It is not yet clear whether its killed by something internal to this > node or some external process - Solaris kernel ? C process ? or > something just falls appart in OTP > We have tried using truss and application specific traces, but for > weeks now we are in the dark. Surely you aren't completely in the dark. If had 'truss' on the VM when it died, you should at least know whether it was a normal or abnormal exit and what it's exit value was. More generally, you should be launching the VM in such a way that you know why it exited. One way to do that is to write a C wrapper which forks and then catches (and logs!) child deaths. Assuming you're seeing an abnormal exit, the next port of call is the erlang crash dump. Test whether or not your system generates crash dumps by manually killing it: Eshell V5.1.2 (abort with ^G) 1> halt("because I'm tired of life"). you should then get a crash dump starting with: Tue Oct 8 08:31:01 2002 Slogan: because I'm tired of life If you didn't get a crash dump, see http://www.erlang.org/doc/r7b/erts-5.0.1/doc/html/crash_dump.html and adjust your environment as necessary. By far the most common reason I see the emulator crash is because it runs out of RAM. It typically runs out of RAM because something went insane and started building infinitely large data structures, but there are other ways to do it, for instance: http://www.erlang.org/ml-archive/erlang-questions/200209/msg00170.html the slogan in that case is something like "Failed to allocate 33 bytes". Matthias From jamesh@REDACTED Tue Oct 8 17:50:41 2002 From: jamesh@REDACTED (James Hague) Date: Tue, 8 Oct 2002 10:50:41 -0500 Subject: Old style vs. new style boolean expressions Message-ID: Here is a function written in classic Erlang style: is_alphanum(N) when N >= $A, N =< $Z -> true; is_alphanum(N) when N >= $a, N =< $z -> true; is_alphanum(N) when N >= $0, N =< $9 -> true; is_alphanum($_) -> true; is_alphanum(_) -> false. This can also be written using boolean expression guards, which were introduced in (I think) R8: is_alphanum(N) -> ((N >= $A) and (N =< $Z)) or ((N >= $a) and (N =< $z)) or ((N >= $0) and (N =< $9)) or (N == $_). This isn't as efficient as the first method, because the boolean expression in the second code snippet is always fully evaluated. To fix this, use "andalso" and "orelse": is_alphanum(N) -> ((N >= $A) andalso (N =< $Z)) orelse ((N >= $a) andalso (N =< $z)) orelse ((N >= $0) andalso (N =< $9)) orelse (N == $_). Now the point: The first vesion generates by far the smallest beam file, the second is somewhat larger, and the third is still larger. When fiddling with a module containing many similar functions, switching from first to the third method increased the beam file size by 40%. Is this just because boolean expressions are a relatively new addition, and so the R8 compiler doesn't deal with them well, or is it deeper than that? I'm still not sure whether I think the first or third method is cleaner :) From jamesh@REDACTED Tue Oct 8 22:09:45 2002 From: jamesh@REDACTED (James Hague) Date: Tue, 8 Oct 2002 15:09:45 -0500 Subject: # Old style vs. new style boolean expressions Message-ID: > I don't think this make much of a difference most of the > time, and even if it > increases the size noticeably - does it matter ? It only matters to people who obsessively peek behind the scenes :) Possibly, though, it could be a flaw in or weakness in the compiler. I would think that _most_ complex boolean guards could be mechanically transformed into "classic" Erlang pattern matching, so the resulting code should be very similar. The Erlang compiler is pretty amazing most of the time. From jamesh@REDACTED Tue Oct 8 22:49:11 2002 From: jamesh@REDACTED (James Hague) Date: Tue, 8 Oct 2002 15:49:11 -0500 Subject: # Old style vs. new style boolean expressions Message-ID: > (I only have R7 at hand, so no andalso, orelse). And run the compiler > on that, like this: Here it is under R8: f3(N) -> ((N >= $A) andalso (N =< $Z)) orelse ((N >= $a) andalso (N =< $z)) orelse ((N >= $0) andalso (N =< $9)) orelse (N == $_). which generates the following monstrosity: {function, f3, 1, 10}. {label,9}. {func_info,{atom,f},{atom,f3},1}. {label,10}. {allocate_zero,1,1}. {bif,'>=',{f,0},[{x,0},{integer,65}],{x,1}}. {move,{x,0},{y,0}}. {test,is_atom,{f,41},[{x,1}]}. {select_val,{x,1},{f,41},{list,[{atom,true},{f,11},{atom,false},{f,14}]}}. {label,11}. {bif,'=<',{f,0},[{x,0},{integer,90}],{x,1}}. {test,is_atom,{f,41},[{x,1}]}. {select_val,{x,1},{f,41},{list,[{atom,true},{f,12},{atom,false},{f,13}]}}. {label,12}. {move,{atom,true},{x,0}}. {'%live',1}. {jump,{f,15}}. {label,13}. {move,{atom,false},{x,0}}. {'%live',1}. {jump,{f,15}}. {label,14}. {move,{atom,false},{x,0}}. {'%live',1}. {label,15}. {test,is_atom,{f,40},[{x,0}]}. {select_val,{x,0},{f,40},{list,[{atom,false},{f,16},{atom,true},{f,39}]}}. {label,16}. {bif,'>=',{f,0},[{y,0},{integer,97}],{x,0}}. {test,is_atom,{f,42},[{x,0}]}. {select_val,{x,0},{f,42},{list,[{atom,true},{f,17},{atom,false},{f,20}]}}. {label,17}. {bif,'=<',{f,0},[{y,0},{integer,122}],{x,0}}. {test,is_atom,{f,42},[{x,0}]}. {select_val,{x,0},{f,42},{list,[{atom,true},{f,18},{atom,false},{f,19}]}}. {label,18}. {move,{atom,true},{x,0}}. {'%live',1}. {jump,{f,21}}. {label,19}. {move,{atom,false},{x,0}}. {'%live',1}. {jump,{f,21}}. {label,20}. {move,{atom,false},{x,0}}. {'%live',1}. {label,21}. {test,is_atom,{f,42},[{x,0}]}. {select_val,{x,0},{f,42},{list,[{atom,false},{f,22},{atom,true},{f,35}]}}. {label,22}. {bif,'>=',{f,0},[{y,0},{integer,48}],{x,0}}. {test,is_atom,{f,42},[{x,0}]}. {select_val,{x,0},{f,42},{list,[{atom,true},{f,23},{atom,false},{f,26}]}}. {label,23}. {bif,'=<',{f,0},[{y,0},{integer,57}],{x,0}}. {test,is_atom,{f,42},[{x,0}]}. {select_val,{x,0},{f,42},{list,[{atom,true},{f,24},{atom,false},{f,25}]}}. {label,24}. {move,{atom,true},{x,0}}. {'%live',1}. {jump,{f,27}}. {label,25}. {move,{atom,false},{x,0}}. {'%live',1}. {jump,{f,27}}. {label,26}. {move,{atom,false},{x,0}}. {'%live',1}. {label,27}. {test,is_atom,{f,42},[{x,0}]}. {select_val,{x,0},{f,42},{list,[{atom,false},{f,28},{atom,true},{f,31}]}}. {label,28}. {bif,'==',{f,0},[{y,0},{integer,95}],{x,0}}. {test,is_atom,{f,42},[{x,0}]}. {select_val,{x,0},{f,42},{list,[{atom,true},{f,29},{atom,false},{f,30}]}}. {label,29}. {move,{atom,true},{x,0}}. {'%live',1}. {jump,{f,32}}. {label,30}. {move,{atom,false},{x,0}}. {'%live',1}. {jump,{f,32}}. {label,31}. {move,{atom,true},{x,0}}. {'%live',1}. {label,32}. {test,is_atom,{f,42},[{x,0}]}. {select_val,{x,0},{f,42},{list,[{atom,true},{f,33},{atom,false},{f,34}]}}. {label,33}. {move,{atom,true},{x,0}}. {'%live',1}. {jump,{f,36}}. {label,34}. {move,{atom,false},{x,0}}. {'%live',1}. {jump,{f,36}}. {label,35}. {move,{atom,true},{x,0}}. {'%live',1}. {label,36}. {test,is_atom,{f,40},[{x,0}]}. {select_val,{x,0},{f,40},{list,[{atom,true},{f,37},{atom,false},{f,38}]}}. {label,37}. {move,{atom,true},{x,0}}. {'%live',1}. {deallocate,1}. return. {label,38}. {move,{atom,false},{x,0}}. {'%live',1}. {deallocate,1}. return. {label,39}. {move,{atom,true},{x,0}}. {'%live',1}. {deallocate,1}. return. {'%','Moved code'}. {label,40}. {test_heap,3,1}. {put_tuple,2,{x,1}}. {put,{atom,badarg}}. {put,{x,0}}. {move,{x,1},{x,0}}. {'%live',1}. {call_ext_last,1,{extfunc,erlang,fault,1},1}. {label,41}. {test_heap,3,2}. {put_tuple,2,{x,0}}. {put,{atom,badarg}}. {put,{x,1}}. {'%live',1}. {call_ext,1,{extfunc,erlang,fault,1}}. {label,42}. {test_heap,3,1}. {put_tuple,2,{x,1}}. {put,{atom,badarg}}. {put,{x,0}}. {move,{x,1},{x,0}}. {'%live',1}. {call_ext,1,{extfunc,erlang,fault,1}}. From sstrollo@REDACTED Tue Oct 8 22:38:19 2002 From: sstrollo@REDACTED (Sebastian Strollo) Date: 08 Oct 2002 13:38:19 -0700 Subject: # Old style vs. new style boolean expressions In-Reply-To: References: Message-ID: James Hague writes: > > I don't think this make much of a difference most of the > > time, and even if it > > increases the size noticeably - does it matter ? > > It only matters to people who obsessively peek behind the scenes :) For those that are curious there is always the 'S' option to the compiler - it outputs the beam "assembly" into a "module.S" file. So for example the following: -module(f). -compile(export_all). f1(N) when N >= $A, N =< $Z -> true; f1(N) when N >= $a, N =< $z -> true; f1(N) when N >= $0, N =< $9 -> true; f1($_) -> true; f1(_) -> false. f2(N) -> ((N >= $A) and (N =< $Z)) or ((N >= $a) and (N =< $z)) or ((N >= $0) and (N =< $9)) or (N == $_). (I only have R7 at hand, so no andalso, orelse). And run the compiler on that, like this: 1> compile:file(f, ['S']). {ok,f} Now you will have a file called f.S, and looking at f1 and f2 you will see that it generates very different code indeed... {function, f1, 1, 2}. {label,1}. {func_info,{atom,f},{atom,f1},1}. {label,2}. {test,is_ge,{f,5},{x,0},{integer,65}}. {test,is_ge,{f,5},{integer,90},{x,0}}. {move,{atom,true},{x,0}}. {'%live',1}. return. {label,5}. {test,is_ge,{f,6},{x,0},{integer,97}}. {test,is_ge,{f,6},{integer,122},{x,0}}. {move,{atom,true},{x,0}}. {'%live',1}. return. {label,6}. {test,is_ge,{f,4},{x,0},{integer,48}}. {test,is_ge,{f,4},{integer,57},{x,0}}. {move,{atom,true},{x,0}}. {'%live',1}. return. {label,4}. {test,is_eq_exact,{f,7},{x,0},{integer,95}}. {move,{atom,true},{x,0}}. {'%live',1}. return. {label,7}. {move,{atom,false},{x,0}}. {'%live',1}. return. {function, f2, 1, 10}. {label,9}. {func_info,{atom,f},{atom,f2},1}. {label,10}. {bif,'>=',{f,0},[{x,0},{integer,65}],{x,1}}. {bif,'=<',{f,0},[{x,0},{integer,90}],{x,2}}. {bif,'and',{f,0},[{x,1},{x,2}],{x,1}}. {bif,'>=',{f,0},[{x,0},{integer,97}],{x,2}}. {bif,'=<',{f,0},[{x,0},{integer,122}],{x,3}}. {bif,'and',{f,0},[{x,2},{x,3}],{x,2}}. {bif,'or',{f,0},[{x,1},{x,2}],{x,1}}. {bif,'>=',{f,0},[{x,0},{integer,48}],{x,2}}. {bif,'=<',{f,0},[{x,0},{integer,57}],{x,3}}. {bif,'and',{f,0},[{x,2},{x,3}],{x,2}}. {bif,'or',{f,0},[{x,1},{x,2}],{x,1}}. {bif,'==',{f,0},[{x,0},{integer,95}],{x,2}}. {bif,'or',{f,0},[{x,1},{x,2}],{x,0}}. {'%live',1}. return. Cheers, /Sebastian From hakan.stenholm@REDACTED Tue Oct 8 21:57:16 2002 From: hakan.stenholm@REDACTED (=?ISO-8859-1?Q?H=E5kan_Stenholm?=) Date: Tue, 08 Oct 2002 21:57:16 +0200 Subject: # Old style vs. new style boolean expressions Message-ID: <3DA3389C.4010900@mbox304.swipnet.se> >Here is a function written in classic Erlang style: > >is_alphanum(N) when N >= $A, N =< $Z -> true; >is_alphanum(N) when N >= $a, N =< $z -> true; >is_alphanum(N) when N >= $0, N =< $9 -> true; >is_alphanum($_) -> true; >is_alphanum(_) -> false. In R8 this can also be written as: >is_alphanum(N) when N >= $A and N =< $Z -> true; >is_alphanum(N) when N >= $a and N =< $z -> true; >is_alphanum(N) when N >= $0 and N =< $9 -> true; >is_alphanum($_) -> true; >is_alphanum(_) -> false. > >This can also be written using boolean expression guards, which were >introduced in (I think) R8: > >is_alphanum(N) -> > ((N >= $A) and (N =< $Z)) or > ((N >= $a) and (N =< $z)) or > ((N >= $0) and (N =< $9)) or > (N == $_). Im fairly sure this has been available since R5 (possibly undocumented), the 'andalso' and 'orelse' below on the other hand are from R8. > >This isn't as efficient as the first method, because the boolean expression >in the second code snippet is always fully evaluated. To fix this, use >"andalso" and "orelse": > >is_alphanum(N) -> > ((N >= $A) andalso (N =< $Z)) orelse > ((N >= $a) andalso (N =< $z)) orelse > ((N >= $0) andalso (N =< $9)) orelse > (N == $_). > >Now the point: The first vesion generates by far the smallest beam file, >the second is somewhat larger, and the third is still larger. When fiddling >with a module containing many similar functions, switching from first to the >third method increased the beam file size by 40%. I don't think this make much of a difference most of the time, and even if it increases the size noticeably - does it matter ? > >Is this just because boolean expressions are a relatively new addition, and >so the R8 compiler doesn't deal with them well, or is it deeper than that? > >I'm still not sure whether I think the first or third method is cleaner :) I think I like the first version is best (in this case), it's fairly clear that N is checked to see if it belongs to a certain char range as well as what is returned if the match is true/false. I think the main difference is that the first version only requires you to comprehend the meaning of one simple match at a time, while the later versions require you to comprehend one big boolean expression all at once. From kent@REDACTED Wed Oct 9 08:59:38 2002 From: kent@REDACTED (Kent Boortz) Date: 09 Oct 2002 08:59:38 +0200 Subject: Minor compatibility patches for R9B-0? In-Reply-To: References: Message-ID: On Wednesday next week we will release the commercial distribution of OTP R9B and short after that the OpenSource distribution R9B-0. Only very small changes are allowed in this stage of the release process but if you have any minor changes to the make files or configure script that are needed to build on your system please let us know. I can't promise the changes will make it into R9B-0, they may have to wait for R9B-1. We know about the RedHat 8.0 issues but this require bigger changes than we have time to code and verify at this stage. HiPE support is now by default enabled by configure on platforms where HiPE is supported. We know that HiPE support will not compile on RedHat 5 and this will probably not be corrected. You need to set --disable-hipe to compile on RedHat 5. The pre-release snapshots can be found at http://www.erlang.org/download/snapshots/ Note that the 64 bit support is only tested on Solaris 8 UltraSparc using gcc 3.1.1. 64 bit support is enabled by having a gcc that has 64 bit as the default compilation mode in the PATH. Note that Tcl/Tk is not distributed with the sources any longer. GS now uses the "wish" program installed on your system, i.e. for the GS and the graphical tools to work you need to install Tcl/Tk 8.3 or 8.4, README, hightlights.html etc are not updated. To find out what flags are supported do % cd erts % autoconf % ./configure --help kent From klacke@REDACTED Wed Oct 9 09:24:48 2002 From: klacke@REDACTED (Claes Wikstrom) Date: Wed, 9 Oct 2002 09:24:48 +0200 Subject: yaws mailing list Message-ID: <20021009092448.A18388@hyber.org> Following lukes excellent example I've also set up a mailing list. The list is for discussion of yaws in general, in principle and in detail .... List at: https://lists.sourceforge.net/lists/listinfo/erlyaws-list /klacke -- Claes Wikstrom -- Caps lock is nowhere and http://www.hyber.org -- everything is under control From bjorn@REDACTED Wed Oct 9 10:58:32 2002 From: bjorn@REDACTED (Bjorn Gustavsson) Date: 09 Oct 2002 10:58:32 +0200 Subject: Old style vs. new style boolean expressions In-Reply-To: James Hague's message of "Tue, 8 Oct 2002 10:50:41 -0500" References: Message-ID: James Hague writes: > Here is a function written in classic Erlang style: > > is_alphanum(N) when N >= $A, N =< $Z -> true; > is_alphanum(N) when N >= $a, N =< $z -> true; > is_alphanum(N) when N >= $0, N =< $9 -> true; > is_alphanum($_) -> true; > is_alphanum(_) -> false. In this case, all relational tests are actual beam instructions. > > This can also be written using boolean expression guards, which were > introduced in (I think) R8: > > is_alphanum(N) -> > ((N >= $A) and (N =< $Z)) or > ((N >= $a) and (N =< $z)) or > ((N >= $0) and (N =< $9)) or > (N == $_). > This is equivalent to: is_alphanum(N) -> erlang:'or'(erlang:'and'(erlang:'>='(N, $A), erlang:'=<'(N, $Z)), ....) where erlang:'or', erlang:'>=', and so on are real BIFs. The compiler currently makes no attempt to optimize this code. > This isn't as efficient as the first method, because the boolean expression > in the second code snippet is always fully evaluated. To fix this, use > "andalso" and "orelse": > > is_alphanum(N) -> > ((N >= $A) andalso (N =< $Z)) orelse > ((N >= $a) andalso (N =< $z)) orelse > ((N >= $0) andalso (N =< $9)) orelse > (N == $_). This example is equivalent to is_alphanum(N) -> case begin case erlang:'>='(N, $A) of false -> false; true -> erlang:'=<'(N, $Z) end end of true -> true; false -> case begin ..... end. and, again, the compiler makes no attempt to optimize it. > > Is this just because boolean expressions are a relatively new addition, and > so the R8 compiler doesn't deal with them well, or is it deeper than that? > A future release of the compiler will probably have better optimization (rewriting, if possible, to equivalent expressions using guards). But in R8 and R9, you will get the best code if you place relational expressions within guards. 'andalso' and 'orelse' are useful when one or both of the expressions are not possible to write in a guard (such as function calls). Here is a (slightly simplified) example from Wings: is_all_inside_rect([P|Ps], Rect) -> is_inside_rect(P, Rect) andalso is_all_inside_rect(Ps, Rect); is_all_inside_rect([], _Rect) -> true. Here is_inside_rect/2 (not shown) is relatively expensive, so we want to terminate with 'false' as soon as a call returns 'false'. Before R8, you either had to write a nested case (efficient bug ugly) is_all_inside_rect([P|Ps], Rect) -> case is_inside_rect(P, Rect) of false -> false; true -> is_all_inside_rect(Ps, Rect) end; is_all_inside_rect([], _Rect) -> true. or use 'and' instead of 'andalso' (clean but less efficient). /Bjorn -- 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 Oct 9 12:56:39 2002 From: per@REDACTED (Per Bergqvist) Date: Wed, 09 Oct 2002 11:56:39 +0100 Subject: Minor compatibility patches for =?iso-8859-1?q?R9B-0=3F?= In-Reply-To: Message-ID: <200210090956.g999ue807443@vargen.levonline.com> Hi, attached are two patches: patch01) A P9 version of a previous patch for R8B-2 to fix erl_marshal.c patch02) Minimal patch to get rid of warning for hipe_x86_signal.c under Linux (at least). Apply with patch -p1 in $ERL_TOP /Per > > On Wednesday next week we will release the commercial distribution of > OTP R9B and short after that the OpenSource distribution R9B-0. Only > very small changes are allowed in this stage of the release process > but if you have any minor changes to the make files or configure > script that are needed to build on your system please let us know. I > can't promise the changes will make it into R9B-0, they may have to > wait for R9B-1. > > We know about the RedHat 8.0 issues but this require bigger changes > than we have time to code and verify at this stage. > > HiPE support is now by default enabled by configure on platforms where > HiPE is supported. We know that HiPE support will not compile on > RedHat 5 and this will probably not be corrected. You need to set > --disable-hipe to compile on RedHat 5. > > The pre-release snapshots can be found at > > http://www.erlang.org/download/snapshots/ > > Note that the 64 bit support is only tested on Solaris 8 UltraSparc > using gcc 3.1.1. 64 bit support is enabled by having a gcc that has 64 > bit as the default compilation mode in the PATH. > > Note that Tcl/Tk is not distributed with the sources any longer. GS > now uses the "wish" program installed on your system, i.e. for the GS > and the graphical tools to work you need to install Tcl/Tk 8.3 or 8.4, > > README, hightlights.html etc are not updated. To find out what flags > are supported do > > % cd erts > % autoconf > % ./configure --help > > kent > ========================================================= Per Bergqvist Synapse Systems AB Phone: +46 709 686 685 Email: per@REDACTED -------------- next part -------------- A non-text attachment was scrubbed... Name: P9.patch01 Type: application/octet-stream Size: 1580 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: P9.patch02 Type: application/octet-stream Size: 451 bytes Desc: not available URL: From daniel.neri@REDACTED Wed Oct 9 13:37:41 2002 From: daniel.neri@REDACTED (Daniel =?iso-8859-1?q?N=E9ri?=) Date: 09 Oct 2002 13:37:41 +0200 Subject: Minor compatibility patches for R9B-0? In-Reply-To: References: Message-ID: <87y997almi.fsf@ebbot.local.sigicom.com> Kent Boortz writes: > On Wednesday next week we will release the commercial distribution > of OTP R9B and short after that the OpenSource distribution R9B-0. > Only very small changes are allowed in this stage of the release > process FWIW, it builds fine on NetBSD/i386 1.6 (using ./configure --with-ssl --disable-threads). However, below is trivial patch for the resolver -- NetBSD uses /etc/nsswitch.conf as of release 1.4. Best wishes, --Daniel -------------- next part -------------- A non-text attachment was scrubbed... Name: otp-P9-netbsd-nsswitch.patch Type: text/x-patch Size: 393 bytes Desc: not available URL: From erlang@REDACTED Wed Oct 9 19:15:15 2002 From: erlang@REDACTED (Peter-Henry Mander) Date: Wed, 09 Oct 2002 18:15:15 +0100 Subject: SIP in Erlang/OTP Message-ID: <3DA46423.9050508@manderp.freeserve.co.uk> Hi Hans, I have been looking for a S.I.P. stack project in Erlang/OTP, and your presentation made in October 1999 is the only lead I can find. Is the project still alive? Is it available for use under licence? Peter Mander. From mikpe@REDACTED Wed Oct 9 21:05:44 2002 From: mikpe@REDACTED (Mikael Pettersson) Date: Wed, 9 Oct 2002 21:05:44 +0200 Subject: Minor compatibility patches for R9B-0? In-Reply-To: References: Message-ID: <15780.32264.522340.717075@kim.it.uu.se> Kent Boortz writes: > On Wednesday next week we will release the commercial distribution of > OTP R9B and short after that the OpenSource distribution R9B-0. Only > very small changes are allowed in this stage of the release process > but if you have any minor changes to the make files or configure > script that are needed to build on your system please let us know. I > can't promise the changes will make it into R9B-0, they may have to > wait for R9B-1. > > We know about the RedHat 8.0 issues but this require bigger changes > than we have time to code and verify at this stage. I'm including below our patch for compiling a HiPE-enabled system on glibc-2.3 systems like RedHat 8.0. It looks like a trivial change, but it required careful study and testing. > HiPE support is now by default enabled by configure on platforms where > HiPE is supported. We know that HiPE support will not compile on > RedHat 5 and this will probably not be corrected. You need to set > --disable-hipe to compile on RedHat 5. RH5 will only work if those that care about it do the port themselves. The issue is, again, hipe_x86_signal.c and it's dependency on C library internals. We do support RH6.2/7.0/7.1/7.2/7.3/8.0 and Solaris/x86 8. /Mikael Pettersson --- otp-0927/erts/emulator/hipe/hipe_x86_signal.c.~1~ 2002-05-27 23:45:03.000000000 +0200 +++ otp-0927/erts/emulator/hipe/hipe_x86_signal.c 2002-10-09 17:38:36.000000000 +0200 @@ -24,8 +24,9 @@ */ #include #include +#include -#if __GLIBC__ == 2 && __GLIBC_MINOR__ == 2 +#if __GLIBC__ == 2 && (__GLIBC_MINOR__ == 2 || __GLIBC_MINOR__ == 3) /* * __libc_sigaction() is the core routine. * Without libpthread, sigaction() and __sigaction() are both aliases From cpressey@REDACTED Thu Oct 10 00:43:21 2002 From: cpressey@REDACTED (Chris Pressey) Date: Wed, 9 Oct 2002 17:43:21 -0500 Subject: Minor compatibility patches for R9B-0? In-Reply-To: References: Message-ID: <20021009174321.708dd450.cpressey@catseye.mb.ca> On 09 Oct 2002 08:59:38 +0200 Kent Boortz wrote: > On Wednesday next week we will release the commercial distribution of > OTP R9B and short after that the OpenSource distribution R9B-0. Only > very small changes are allowed in this stage of the release process > but if you have any minor changes to the make files or configure > script that are needed to build on your system please let us know. I > can't promise the changes will make it into R9B-0, they may have to > wait for R9B-1. configure didn't seem to detect strerror_r for me (FreeBSD 4.5). I had to manually add #define HAVE_STRERROR_R 1 to config.h in order for it to compile OK. -Chris From robert.virding@REDACTED Thu Oct 10 02:02:32 2002 From: robert.virding@REDACTED (Robert Virding) Date: Thu, 10 Oct 2002 02:02:32 +0200 Subject: # Old style vs. new style boolean expressions References: Message-ID: <3DA4C398.6050802@telia.com> James Hague wrote: >>I don't think this make much of a difference most of the >>time, and even if it >>increases the size noticeably - does it matter ? > > > It only matters to people who obsessively peek behind the scenes :) > > Possibly, though, it could be a flaw in or weakness in the compiler. I > would think that _most_ complex boolean guards could be mechanically > transformed into "classic" Erlang pattern matching, so the resulting code > should be very similar. The Erlang compiler is pretty amazing most of the > time. Yes, they can. What really happens is that most classical guards are actually tranformed into boolean guard expressions. However, what you were describing were boolean *expressions*! You transformed a function with guards into functions with boolean expressions. It is only in a restricted case where boolean epressions can be transformed into guards. Expressions are much more general and handle faults in a completely different way. Actually an expression -> guard transofrmation is (rather naively) done in list comprehensions. One reason that the andthen/orelse expressions resulted in so much code is that they are transformed into nested cases. Try using the 'E' option to the compiler and look at the .E file. Robert From DANIESC.SCHUTTE@REDACTED Thu Oct 10 12:50:27 2002 From: DANIESC.SCHUTTE@REDACTED (DANIESC SCHUTTE) Date: Thu, 10 Oct 2002 12:50:27 +0200 Subject: sales? Licensing? Message-ID: Greetings all, Could anyone please tell me if the sales e-mail is still working, I'm trying to find out about the cost of licensing erlang - and it seems that my mails go into a black hole. Regards Danie Schutte Phone: +27 - 11 - 203 - 1614 Mobile: 083-268-3138 e-Mail: Daniesc@REDACTED ##################################################################################### The information contained in this message and or attachments is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any system and destroy and copies. ##################################################################################### From daniel.neri@REDACTED Thu Oct 10 17:37:19 2002 From: daniel.neri@REDACTED (Daniel =?iso-8859-1?q?N=E9ri?=) Date: 10 Oct 2002 15:37:19 +0000 Subject: zlib upgrade patch Message-ID: <87ptuiwbio.fsf@fnord.local.sigicom.com> Greetings, Below is a patch, relative to R8B-2, that brings the runtime's integrated zlib to version 1.1.4, which fixes the "double free" vulnerability discovered[*] in March (also reported here by Matthias Lang). It would be nice if it was possible to link with an existing zlib (e.g. ./configure --with-zlib), and maybe get rid of this one... Regards, --Daniel [*] http://www.gzip.org/zlib/advisory-2002-03-11.txt -------------- next part -------------- A non-text attachment was scrubbed... Name: otp-R8-zlib.patch Type: text/x-patch Size: 10103 bytes Desc: not available URL: From mickael.remond@REDACTED Thu Oct 10 21:50:12 2002 From: mickael.remond@REDACTED (Mickael Remond) Date: Thu, 10 Oct 2002 21:50:12 +0200 Subject: Best way to get the state of a terminating process Message-ID: <1034279412.3da5d9f415617@webmail.spamcop.net> Hello, I would like to know what is the best way to get the last call parameters of a terminating process. I know that I can use process_flag(save_calls, N) and then retrieve the call stack, but this seems to be debugging functions. What is the standard way to do so ? -- Micka?l R?mond From hal@REDACTED Thu Oct 10 22:31:57 2002 From: hal@REDACTED (Hal Snyder) Date: Thu, 10 Oct 2002 15:31:57 -0500 Subject: mnesia cluster limits Message-ID: <87smzeyr0i.fsf@ghidra.vail> We have been arguing amongst ourselves as to the advisability of creating a cluster of between 20 and 100 OTP nodes, all running mnesia, all with the same erlang and mnesia cookies. Individual tables would be replicated sparsely, only where needed. What is the overhead of a full mesh of n mnesia nodes, not counting replicated transactions? At what point does it become prohibitive? P.S.: I was just at the Erlang workshop at PLI2002, but foolishly forgot to ask the above question of the experts. The workshop was quite informative, and more fun than a barrel of monkeys. From vances@REDACTED Fri Oct 11 05:28:36 2002 From: vances@REDACTED (Vance Shipley) Date: Thu, 10 Oct 2002 23:28:36 -0400 Subject: ports, binaries & iovecs Message-ID: <20021011032836.GG33717@frogman.motivity.ca> I am finding that sending binaries to a port with port_command/2, and receiving them with outputv(), doesn't work the way I had expected. The problem is that I can't seem to control how the ErlIOVec is created. I had expected, and hoped, that if I create two seperate binaries in Erlang and send them with port_command/2 that my outputv() driver call back would receive them as seperate SysIOVec structures. Instead I find that the emulator is making up it's own mind: 1> port_command(Port, [<<0:32>>, <<0:32>>]). my_outputv: ev->vsize = 2 ev->size = 8 true 2> port_command(Port, [<<0:128/integer-unit:8>>, <<0:32/integer-unit:8>>]). netaccess_outputv ev->vsize = 3 ev->size = 160 true Can anyone tell me what the rules are? -Vance From fritchie@REDACTED Fri Oct 11 06:41:07 2002 From: fritchie@REDACTED (Scott Lystig Fritchie) Date: Thu, 10 Oct 2002 23:41:07 -0500 Subject: ports, binaries & iovecs In-Reply-To: Message of "Thu, 10 Oct 2002 23:28:36 EDT." <20021011032836.GG33717@frogman.motivity.ca> Message-ID: <200210110441.g9B4f7p20337@snookles.snookles.com> >>>>> "vs" == Vance Shipley writes: vs> I am finding that sending binaries to a port with port_command/2, vs> and receiving them with outputv(), doesn't work the way I had vs> expected. I spent a bunch of time trying to figure that out a couple of months ago. Eventually I figured it out ... though the answer here may not be correct. {scratches head and re-examines io.c} The magic is done by the IO_LIST_VEC_COUNT macro in io.c, which is called by the function io_list_vec_len(). io_list_vec_len() will take an I/O list with a mix of bytes and binaries and put all the individual bytes into a single contiguous buffer allocated for that purpose. The ErlIOVec and SysIOVec structures keep the info to keep everything in the correct order, naturally. Binaries are weird because there are several types. If a binary is a reference counted thing (its subtag == REFC_BINARY_SUBTAG), and if its size is greater than ERL_SMALL_IO_BIN_LIMIT (which is (4*ERL_ONHEAP_BIN_LIMIT), which is 256), then it gets its own iovec entry. If the binary is a refcounted binary but smaller than that, or if it's a heap binary (which, by definition, is small because it's stored entirely on the Erlang process's heap), then the data will be copied into the buffer used by individual bytes. Within some range of error, that's what io_list_vec_len() calculates. The Real Truth may be slightly different. What io_list_to_vec() does is a slightly different story. (My interpretation may be incorrect here, too.) If io_list_vec_len() figures the entire iovec is <= SMALL_WRITE_VEC (16), then it sets its local variable "blimit" to 0 and passes "blimit" as the last arg to io_list_to_vec(). Once again, the type of binary comes into play: if (binary is reference counted) { if (bin_limit && binary's size < bin_limit) { copy into individual bytes' buffer } else { /* big binary _or_ we don't have iovec size worries */ keep it a separate vector item } } else { /* We're a heap binary if we're here, thus we're small */ copy into individual bytes' buffer } According to erl_binary.h and binary.c, the maximum size of an on-heap binary is governed by: #define ERL_ONHEAP_BIN_LIMIT 64 -Scott From vances@REDACTED Fri Oct 11 07:34:42 2002 From: vances@REDACTED (Vance Shipley) Date: Fri, 11 Oct 2002 01:34:42 -0400 Subject: ports, binaries & iovecs In-Reply-To: <200210110441.g9B4f7p20337@snookles.snookles.com> References: <20021011032836.GG33717@frogman.motivity.ca> <200210110441.g9B4f7p20337@snookles.snookles.com> Message-ID: <20021011053442.GH33717@frogman.motivity.ca> Scott, Thanks for the quick and detailed response! I'm now having to think through what I am doing and how it will be used. It is of course nice to avoid copying if unecessary but I shouldn't spend too much time just now worrying about it (first make it work ...). My driver uses STREAMS so when it gets the data it will send it using putmsg(). I had naively thought that I would construct the control and data buffers using bit syntax in Erlang and send it to the driver: port_command(Port, [<>, <>]) In my outputv() driver callback I expected to receive two iovecs which I could pass directrly to putmsg(): struct strbuf ctrlp, datap; ctrlp.len = iov[1].iov_len; ctrlp.buf = iov[1].iov_base; datap.len = iov[2].iov_len; datap.buf = iov[2].iov_base; putmsg(fd, &ctrlp, &datap, 0); ... and Bob's your uncle! Nope. The first thing I found is that since I never send both a control and a data portion at once both of the following get flattened down to one iovec and there is no way to differentiate between them. port_command(Port, [<>, <<>>]) port_command(Port, [<<>>, <>]) I then found out just how complex it really is. Thanks again. I'll either have to accept copying everything or optimize the most common, or expensive, case. The next thing I started to realize is that the driver queue also gets flattened. If I enqueue the whole received ErlIOVec it skips the empty first iovec. Actually somewhat handy as I don't use it (the emulator sticks it in there so that the inet drivers can build a header). My driver is not serialized but rather message based so the iovecs are only handy if they remain contiguous and sensible. Hmmm ... -Vance From dgud@REDACTED Fri Oct 11 08:12:39 2002 From: dgud@REDACTED (Dan Gudmundsson) Date: Fri, 11 Oct 2002 08:12:39 +0200 Subject: mnesia cluster limits In-Reply-To: <87smzeyr0i.fsf@ghidra.vail> References: <87smzeyr0i.fsf@ghidra.vail> Message-ID: <15782.27607.741822.766639@gargle.gargle.HOWL> I havn't tested, why don't you do it and tell me :-) The problem is the startup where 100 nodes are trying to talk to each other, discussing what nodes should load which table from disc and which table should be from loaded from which node and so on... The number of messages between nodes during startup is something that I have to try to reduce sometime, it's currently working by method 'better to be safe than sorry'. You may also find some bottlenecks in code, i.e. naive operations, keysearching through tagged tuples may not be the best when all lists become 100 elements, instead 3 elements. Once every node have started and loaded all tables, there should not be any overhead on standard transactions, i.e. the overhead depends on the number of nodes which has a local copy of the table. The problem will be schema_transactions, (create_table, add_table_copy, del_table_copy..) which takes lock on the schema which exists on 100 nodes. I think I can't do much about the schema_transactions. /Dan Hal Snyder writes: > We have been arguing amongst ourselves as to the advisability of > creating a cluster of between 20 and 100 OTP nodes, all running > mnesia, all with the same erlang and mnesia cookies. Individual tables > would be replicated sparsely, only where needed. > > What is the overhead of a full mesh of n mnesia nodes, not counting > replicated transactions? At what point does it become prohibitive? > > > P.S.: I was just at the Erlang workshop at PLI2002, but foolishly > forgot to ask the above question of the experts. The workshop > was quite informative, and more fun than a barrel of monkeys. From hakan@REDACTED Fri Oct 11 11:05:04 2002 From: hakan@REDACTED (Hakan Mattsson) Date: Fri, 11 Oct 2002 11:05:04 +0200 (MEST) Subject: mnesia cluster limits In-Reply-To: <15782.27607.741822.766639@gargle.gargle.HOWL> Message-ID: Some time ago I wrote a HLR-like benchmark program that scaled almost exactly linear from 2 to 16 machines. (There were only 16 equivalent machines available.) In that configuration I used fragmented tables (some with foreign key) where each fragment had 2 ram_copies. I did also successfully run the same program on 54 machines, but since the hardware varied a lot I could not draw any performance conclusions. If you have 100 equivalent machines in a switched network, it would be very interesting to hear about how Mnesia scales in that environment. My benchmark program is available in $ERL_TOP/mnesia/examples/bench /H?kan On Fri, 11 Oct 2002, Dan Gudmundsson wrote: > Date: Fri, 11 Oct 2002 08:12:39 +0200 > From: Dan Gudmundsson > To: Hal Snyder > Cc: erlang-questions@REDACTED > Subject: mnesia cluster limits > > > I havn't tested, why don't you do it and tell me :-) > > The problem is the startup where 100 nodes are trying to talk to each > other, discussing what nodes should load which table from disc and > which table should be from loaded from which node and so on... > > The number of messages between nodes during startup is something that > I have to try to reduce sometime, it's currently working by method > 'better to be safe than sorry'. > > You may also find some bottlenecks in code, i.e. naive operations, > keysearching through tagged tuples may not be the best when all lists > become 100 elements, instead 3 elements. > > Once every node have started and loaded all tables, there should not > be any overhead on standard transactions, i.e. the overhead depends on > the number of nodes which has a local copy of the table. > > The problem will be schema_transactions, (create_table, > add_table_copy, del_table_copy..) which takes lock on > the schema which exists on 100 nodes. > I think I can't do much about the schema_transactions. > > /Dan > > Hal Snyder writes: > > We have been arguing amongst ourselves as to the advisability of > > creating a cluster of between 20 and 100 OTP nodes, all running > > mnesia, all with the same erlang and mnesia cookies. Individual tables > > would be replicated sparsely, only where needed. > > > > What is the overhead of a full mesh of n mnesia nodes, not counting > > replicated transactions? At what point does it become prohibitive? > > > > > > P.S.: I was just at the Erlang workshop at PLI2002, but foolishly > > forgot to ask the above question of the experts. The workshop > > was quite informative, and more fun than a barrel of monkeys. > From Sean.Hinde@REDACTED Fri Oct 11 11:17:37 2002 From: Sean.Hinde@REDACTED (Sean Hinde) Date: Fri, 11 Oct 2002 10:17:37 +0100 Subject: mnesia cluster limits Message-ID: <04D356A3B172D611981B0008C791C3126BF40B@imp02mbx.t-mobile.co.uk> > We have been arguing amongst ourselves as to the advisability of > creating a cluster of between 20 and 100 OTP nodes, all running > mnesia, all with the same erlang and mnesia cookies. Individual tables > would be replicated sparsely, only where needed. We have run 28 with a single schema for around 3 years with no great problems. The only issue we've found is that if the LAN between the nodes becomes unstable then the whole thing can become fragmented in a particularly nasty way. It is probably a good idea to think beforehand about a recovery strategy and create some functions which can set_master_nodes (both for the schema and other tables) to various sensible sets of tables in preparation for lots of restarts.. It is not pleasant trying to figure this out in a fault situation :-) 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 fritchie@REDACTED Sat Oct 12 20:18:26 2002 From: fritchie@REDACTED (Scott Lystig Fritchie) Date: Sat, 12 Oct 2002 13:18:26 -0500 Subject: Release 0.9 of the Erlang Driver ToolKit available Message-ID: <200210121818.g9CIIQp26308@snookles.snookles.com> I haven't been doing a very good job of publicizing the EDTK. This announcement won't do a very good job, either, but it's a start. Version 0.9 of the Erlang Driver ToolKit is now available at http://www.snookles.com/erlang/edtk/. It can be used to create an Erlang "driver" to execute functions in a pre-existing C library. In this sense, it is similar to SWIG (http://www.swig.org/), which can be used to create C & C++ extensions for Tcl, Perl, Python, and many other languages. The 0.9 release is quite mature: the drivers it generates, as far as I can tell, are quite stable and usable. Both "pipe" and "linked-in" drivers are fully supported. I've been developing on FreeBSD and Linux platforms -- there isn't any reason why other UNIX flavors wouldn't also work, so lemme know! However, the documentation is still scant. The best documentation is: * The paper I wrote and presented at the Erlang workshop associated with the ACM's PLI 2002. It is also available at the above URL, separate from the source distribution. * A few README files, which may be helpful if you're at least a bit familiar with Erlang drivers already. I'll attach below the README file that explains briefly each of the example drivers. Each driver comes with an Erlang regression test program, which is (currently) the best documentation on how to use the drivers. I'm going to be working on some more comprehensive documentation in preparation for a symbolic "1.0" release. Bug reports, bug fixes, feature requests, feature implementations, etc. will all be appreciated. -Scott --- snip --- snip --- snip --- snip --- snip --- snip --- examples/README: This directory contains example drivers, their XML specification files, misc. glue code, and regression tests. If you're just starting and want to look at some simple examples, see the "simple0", "simple-pli2002", and "simple1" directories. 3rd-party-files This is where I put the header files and shared libraries to make compilation easier. The Makefiles I use are pretty dumb, brute-force things. What you'll find in here were compiled on FreeBSD 4.5 and Linux RedHat 6.1 systems. For other platforms, You'll need to fetch the original source distributions and reconfigure/recompile those things for yourself. berkeley_db This driver is still incomplete: the Berkeley DB 4.x API is about 2/3 complete. See http://www.sleepycat.com/ for source distributions for Berkeley DB, which is a prerequisite for attempting to build this driver. ethbridge Not a driver but an Erlang OTP application: a multi-port Ethernet bridge. Uses the libnet and libpcap drivers. Startup/usage is poorly documented in this release, alas. It would be interesting if, in conjunction with an 802.11b "Wi-Fi" wireless network interface, if this could be used to create an Erlang-based "access point" (also often called a "base station"). If so, then with a bit of extra Erlang code, you could build a custom authentication & filtering infrastructure. libnet Erlang's bit syntax makes half of libnet's features, packet creation, not very attractive. However, it does provide a common API for transmitting network data at Layer 3 (IP) and Layer 2 (Ethernet). There are weird quirks regarding those things, especially on Linux platforms ... a consistent API is quite welcome. See http://www.packetfactory.net/projects/libnet/ for source distributions for libnet, which is a prerequisite for attempting to build this driver. See also: the file "../README" for additional compilation instructions. libpcap This driver covers most of libpcap's API. The only function that's implemented but not implemented very well is pcap_findalldevs(), since I don't know how to pick apart all of the data structures that it returns. Perhaps some kind soul could suggest a fix? :-) See http://www.tcpdump.org/ for source distributions for libpcap, which is a prerequisite for attempting to build this driver. See also: the file "../README" for additional compilation instructions. simple0 Implements only one function, sleep(3), but does it using two different methods: synchronously and asynchronously. The asynchronous driver call will not block the entire Erlang virtual machine while the sleep(3) call is executing. simple1 This was the first XML spec I wrote, to flesh things out from the bottom-up. It doesn't make a whole lot of sense: it's a lot of things thrown together into the same simple1.xml spec. However, I didn't want to implement too much that "wasn't needed", so it grew organically. From an XML purist's perspective, I've probably done some horrible things. From a XML pragmatist's point of view, it's been wonderfully flexible. simple-pli2002 Contains the verbatim examples from the PLI2002 paper. spread Spread is a high-performance multicast messaging library. This driver covers most of Spread's compact API. The most notable omissions are the scatter/gather versions of the message send & receive functions. Erlang doesn't give the programmer the kind of control over memory allocation & use, so it didn't make sense to create driver interfaces for those functions. See http://www.spread.org/ for source distributions for Spread, which is a prerequisite for attempting to build this driver. From etxuwig@REDACTED Mon Oct 14 11:42:10 2002 From: etxuwig@REDACTED (Ulf Wiger) Date: Mon, 14 Oct 2002 11:42:10 +0200 (MET DST) Subject: init:stop () semantics In-Reply-To: Message-ID: On Sun, 6 Oct 2002, Leonid Timochouk wrote: >Hello Erlang users, > >In the documentation for the "init:stop()" function, it is >said that "all applications are taken down smoothly". >However, close analysis of the source code for this >function (in OTP-R8B-2) suggests that it simply sends >{'EXIT', kill} to all running processes except "heart" and >"init" itself. Is it a smooth shutdown? Yet, it seems that >the "stop()" call-back DOES get invoked for the running >application -- how is it possible if all processes >(including the application controller?) are brutally >killed? It does look ominous, but if you study the function init:shutdown_pids/3 -- shutdown_pids(Heart,BootPid,State) -> Timer = shutdown_timer(State#state.flags), catch shutdown(State#state.kernel,BootPid,Timer,State), kill_all_pids(Heart), % Even the shutdown timer. kill_all_ports(Heart), flush_timout(Timer). -- you will see that the kill_all_pids/1 call is preceded by a call to shutdown/4, which gracefully stops the kernel application. This means shutting down the application controller, among other things, and the application controller will (in application_controller:terminate/2) gracefully shut down all running applications before terminating itself. This (synchronous) procedure is guarded by a catch, and after this, any processes that are left should of course be mercilessly killed. /Uffe -- Ulf Wiger, Senior Specialist, / / / Architecture & Design of Carrier-Class Software / / / Strategic Product & System Management / / / Ericsson Telecom AB, ATM Multiservice Networks From francesco@REDACTED Mon Oct 14 15:41:50 2002 From: francesco@REDACTED (Francesco Cesarini) Date: Mon, 14 Oct 2002 14:41:50 +0100 Subject: Erl Lounge London, UK October 25th. Message-ID: <3DAAC99E.6000405@erlang-consulting.com> Hi Everyone! Following the success in Stockholm, we will be stealing Per's idea and having an Erl Lounge in London. I've emailed around, and there are currently 5 people signed up to attend. We will meet at 6.30 PM on Friday October 25th, at the Lowlander, 36 Drury Lane, London WC2 (In front of the New London Theatre). The closest Tube is Convent Garden. The Lowlander has an amazing selection of Belgian and Dutch beers. The first round of beers will be on Cesarini Consulting Ltd. and the second one on Sj?land & Thyselius Telecom AB. Please let me know if you are planing on visiting so we can book a table. Map: http://www.streetmap.co.uk/streetmap.dll?postcode2map?wc2b+5rr&Lowlander+Beer+Caf%E9 Lowlander Review: http://www.telegraph.co.uk/wine/main.jhtml?xml=/wine/2002/08/14/edbar14.xml Regards, Francesco -- http://www.erlang-consulting.com From francesco@REDACTED Mon Oct 14 15:41:17 2002 From: francesco@REDACTED (Francesco Cesarini) Date: Mon, 14 Oct 2002 14:41:17 +0100 Subject: Erl Lounge London, UK October 25th. Message-ID: <3DAAC97D.5050709@erlang-consulting.com> Hi Everyone! Following the success in Stockholm, we will be stealing Per's idea and having an Erl Lounge in London. I've emailed around, and there are currently 5 people signed up to attend. We will meet at 6.30 PM on Friday October 25th, at the Lowlander, 36 Drury Lane, London WC2. The closest Tube is Convent Garden. The Lowlander has an amazing selection of Belgian and Dutch beers. The first round of beers will be on Cesarini Consulting Ltd. and the second one on Sj?land & Thyselius Telecom AB. Please let me know if you are planing on visiting so we can book a table. Map: http://www.streetmap.co.uk/streetmap.dll?postcode2map?wc2b+5rr&Lowlander+Beer+Caf%E9 Lowlander Review: http://www.telegraph.co.uk/wine/main.jhtml?xml=/wine/2002/08/14/edbar14.xml Regards, Francesco -- http://www.erlang-consulting.com From vlad_dumitrescu@REDACTED Tue Oct 15 14:11:05 2002 From: vlad_dumitrescu@REDACTED (Vlad Dumitrescu) Date: Tue, 15 Oct 2002 14:11:05 +0200 Subject: Windows build Message-ID: Hi again, I know I have complained before, but it is a nagging problem for me... Not being able to compile Erlang on Windows is troublesome for me and what I'd like to ask those who have better knowledge about the build process is: - What would it take to make it build under CygWin? If werl.exe is the problem, I say let's get rid of it (for now, at least). Thanks for your time. Regards, Vlad From kent@REDACTED Tue Oct 15 15:14:30 2002 From: kent@REDACTED (Kent Boortz) Date: 15 Oct 2002 15:14:30 +0200 Subject: Windows build In-Reply-To: References: Message-ID: "Vlad Dumitrescu" writes: > I know I have complained before, but it is a nagging problem for me... Not > being able to compile Erlang on Windows is troublesome for me and what I'd > like to ask those who have better knowledge about the build process is: > > - What would it take to make it build under CygWin? If werl.exe is the > problem, I say let's get rid of it (for now, at least). As usual I can't say when and help from others are of course welcome but at some point we want to move to a native build on Windows using cygwin. The main reason is to improve stability of the daily build and test of OTP we do at Ericsson. Now we mix a bootstrap build on Unix with sending commands to a small rsh-like program on an Windows machine and there are to many things that can go wrong making successful builds on Windows much lower then for the Unix builds. There has been at least two efforts to create a native build on Windows. I know the bootstrap process had problems with the temporary emulator in cygwin being unusable slow but cygwin may have improved since. Another solution would be to use a pre-built "stand alone erlang executable" for the first bootstrap stage(s). There may be other solutions as well. One of the most important aspect for us is that we want the Windows and Unix builds could share the same make files, kent From eleberg@REDACTED Tue Oct 15 15:47:51 2002 From: eleberg@REDACTED (Bengt Kleberg) Date: Tue, 15 Oct 2002 15:47:51 +0200 (MET DST) Subject: Windows build Message-ID: <200210151347.g9FDlpr10353@cbe.ericsson.se> > X-Authentication-Warning: gollum.du.uab.ericsson.se: kent set sender to kent@REDACTED using -f > To: "Vlad Dumitrescu" > Cc: > Subject: Re: Windows build > From: Kent Boortz > other solutions as well. One of the most important aspect for us is > that we want the Windows and Unix builds could share the same make > files, would that not be helped by using erlmake? (given that the first emporary emulator is available) bengt From vlad_dumitrescu@REDACTED Tue Oct 15 16:05:20 2002 From: vlad_dumitrescu@REDACTED (Vlad Dumitrescu) Date: Tue, 15 Oct 2002 16:05:20 +0200 Subject: Windows build References: Message-ID: Hi Kent, Thank you for the answer! Could you describe very shortly what the problems are when compiling under cygwin? What is the reason for the mixed Unix/Windows build? Only the performance problem you mentioned? Other legacy issues (like maybe ClearCase related)? Today's cygwin is a very good Unix emulation and it feels strange not to be able to build something under it... I will give it a look, but I am no make expert... regards, Vlad From jamesh@REDACTED Tue Oct 15 16:25:43 2002 From: jamesh@REDACTED (James Hague) Date: Tue, 15 Oct 2002 09:25:43 -0500 Subject: Windows build Message-ID: >What would it take to make it build under CygWin? >If werl.exe is the problem, I say let's get rid of >it (for now, at least). Werl.exe is just a standalone app that I *suspect* is trivially easy to compile with something like Visual C++. I should try it. On a side note, the speed of the BEAM emulator itself (unrelated to werl.exe) is directly dependent on gcc extensions. There are some much better compilers for Windows than the gcc ports, but of course they don't have the needed gcc extensions. Ah, well. From mikpe@REDACTED Tue Oct 15 16:26:18 2002 From: mikpe@REDACTED (Mikael Pettersson) Date: Tue, 15 Oct 2002 16:26:18 +0200 Subject: Windows build In-Reply-To: References: Message-ID: <15788.9610.736985.716157@kim.it.uu.se> Vlad Dumitrescu writes: > Could you describe very shortly what the problems are when compiling under > cygwin? What is the reason for the mixed Unix/Windows build? Only the > performance problem you mentioned? Other legacy issues (like maybe ClearCase > related)? Today's cygwin is a very good Unix emulation and it feels strange > not to be able to build something under it... Yes, please do elaborate on what the problem is. I haven't used Cygwin in a while, but I did port a very Unix-y programming language implementation to Windows 9x/NT4 about 4 years ago, and both Cygwin and Dave Korn's U/WIN worked well enough that this wasn't much of a problem. (The only problems were an I/O redirection thing which didn't work in Cygwin on Win95, and a bug in U/WIN where its "test -x" command said that a .bat file was executable even though U/WIN later failed to recognise it as an executable.) Admittedly, this particular project used mostly ANSI-C with some gcc extensions, and depended very little on stuff like networking, threads, async I/O, or GUIs. /Mikael From bjorn@REDACTED Tue Oct 15 16:30:38 2002 From: bjorn@REDACTED (Bjorn Gustavsson) Date: 15 Oct 2002 16:30:38 +0200 Subject: Windows build In-Reply-To: James Hague's message of "Tue, 15 Oct 2002 09:25:43 -0500" References: Message-ID: James Hague writes: > On a side note, the speed of the BEAM emulator itself (unrelated to > werl.exe) is directly dependent on gcc extensions. There are some much > better compilers for Windows than the gcc ports, but of course they don't > have the needed gcc extensions. Ah, well. On Windows, we build the beam_emu.c file with gcc, and everything else with Visual C++. The object formats are almost compatible. We use our COFF patcher (included in the source tar file) to make them completly compatible. /Bjorn -- Bj?rn Gustavsson Ericsson Utvecklings AB bjorn@REDACTED ?T2/UAB/F/P BOX 1505 +46 8 727 56 87 125 25 ?lvsj? From david.wallin@REDACTED Tue Oct 15 20:18:09 2002 From: david.wallin@REDACTED (david wallin) Date: Tue, 15 Oct 2002 19:18:09 +0100 Subject: erlang drivers on jaguar Message-ID: <1034705889.9559.218.camel@wintermute.csis.ul.ie> Hi all, I have some problems with loading erlang drivers under MacOSX 10.2 (aka Jaguar). Could it be a gcc 3.1 issue? or is it Apple who once again decides to change everything? Either way, if anyone has a fix for this, I'd be interested. cheers, --david. From Sean.Hinde@REDACTED Tue Oct 15 20:26:54 2002 From: Sean.Hinde@REDACTED (Sean Hinde) Date: Tue, 15 Oct 2002 19:26:54 +0100 Subject: erlang drivers on jaguar Message-ID: <04D356A3B172D611981B0008C791C3126BF443@imp02mbx.t-mobile.co.uk> > I have some problems with loading erlang drivers under MacOSX > 10.2 (aka > Jaguar). Could it be a gcc 3.1 issue? or is it Apple who once again > decides to change everything? > > Either way, if anyone has a fix for this, I'd be interested. The wings drivers appear to work OK. I have been unable to get crypto or ssl to work yet.. What's the specific problem? 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 david.wallin@REDACTED Tue Oct 15 20:39:34 2002 From: david.wallin@REDACTED (david wallin) Date: Tue, 15 Oct 2002 19:39:34 +0100 Subject: erlang drivers on jaguar In-Reply-To: <04D356A3B172D611981B0008C791C3126BF443@imp02mbx.t-mobile.co.uk> References: <04D356A3B172D611981B0008C791C3126BF443@imp02mbx.t-mobile.co.uk> Message-ID: <1034707174.9558.225.camel@wintermute.csis.ul.ie> On Tue, 2002-10-15 at 19:26, Sean Hinde wrote: > > I have some problems with loading erlang drivers under MacOSX > > 10.2 (aka > > Jaguar). Could it be a gcc 3.1 issue? or is it Apple who once again > > decides to change everything? > > > > Either way, if anyone has a fix for this, I'd be interested. > > The wings drivers appear to work OK. I have been unable to get crypto or ssl > to work yet.. What's the specific problem? > > Sean > > Sean, Damn you are quick :) Got your reply before my mail appeared on the list. doing: 1> erl_ddll:start(). {ok,<0.30.0>} 2> erl_ddll:load_driver(".", sdl_driver). results in: {error, no_driver_init} it used to work fine under 10.1 --david. > > 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 Sean.Hinde@REDACTED Tue Oct 15 21:21:17 2002 From: Sean.Hinde@REDACTED (Sean Hinde) Date: Tue, 15 Oct 2002 20:21:17 +0100 Subject: erlang drivers on jaguar Message-ID: <04D356A3B172D611981B0008C791C3126BF445@imp02mbx.t-mobile.co.uk> > Damn you are quick :) Got your reply before my mail appeared on the > list. Just happened to be dealing with another mail > doing: > > 1> erl_ddll:start(). > {ok,<0.30.0>} > 2> erl_ddll:load_driver(".", sdl_driver). > > results in: > > {error, no_driver_init} > > it used to work fine under 10.1 One theory (based on no evidence) do you have the dlcompat library installed? Maybe some incompat issues there? I've just recompiled esdl on 10.2.1 (without dlcompat) and Dans test routines work fine.. nm sdl_driver.so | grep driver_init Returns: 00000f9c T _driver_init 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 jamesh@REDACTED Tue Oct 15 21:40:36 2002 From: jamesh@REDACTED (James Hague) Date: Tue, 15 Oct 2002 14:40:36 -0500 Subject: Windows build Message-ID: >On Windows, we build the beam_emu.c file >with gcc, and everything else with Visual >C++. The object formats are almost >compatible. Wow, that's great! Hats off to everyone maintaining the Windows build of Erlang, BTW. Too many language maintainers write off Windows for personal reasons, and then they wonder why their user base is so small :) From micael.karlberg@REDACTED Wed Oct 16 09:56:43 2002 From: micael.karlberg@REDACTED (Micael Karlberg) Date: Wed, 16 Oct 2002 09:56:43 +0200 Subject: erlang drivers on jaguar In-Reply-To: <1034705889.9559.218.camel@wintermute.csis.ul.ie> References: <1034705889.9559.218.camel@wintermute.csis.ul.ie> Message-ID: <15789.7099.585001.151373@gargle.gargle.HOWL> Hi, Try this patch: cd to erts/emulator/drivers/unix and apply the attached patch (patch -p1 -------------- next part -------------- Mind you, this does not work for every driver. For instance it does to cure the per_bin driver (used for encoding when compiling asn1 with options -bper_bin +optimized). This will _not_ make it into the R9 release! /BMK david wallin writes: > > Hi all, > > I have some problems with loading erlang drivers under MacOSX 10.2 (aka > Jaguar). Could it be a gcc 3.1 issue? or is it Apple who once again > decides to change everything? > > Either way, if anyone has a fix for this, I'd be interested. > > cheers, > > --david. > -- Micael Karlberg Ericsson AB, ?lvsj? Sweden Tel: +46 8 727 5668 EAB/UHK/KD - OTP Product Development ECN: 851 5668 Mail: micael.karlberg@REDACTED Fax: +46 8 727 5775 From ingela@REDACTED Wed Oct 16 12:16:49 2002 From: ingela@REDACTED (Ingela Anderton) Date: Wed, 16 Oct 2002 12:16:49 +0200 (MEST) Subject: Erlang/OTP R9 References: <200209160837.KAA28353@gildor.du.uab.ericsson.se> Message-ID: <200210161016.g9GAGnY17630@gildor.du.uab.ericsson.se> Jilani Khaldi wrote: > >> P.s. When is Erlang/OTP R9 due? > >16 of Octobre. > What's new in it? Partciculary about Mnesia and Inets? > Thanks! Sorry for not having had the time to answer, but now you can soon see for yourself in the release notes. -- /m.v.h Ingela //The highway of life is always under construction. // |\ _,,,--,,_ ,) /,`.-'`' -, ;-;;' |,4- ) )-,_ ) /\ '---''(_/--' (_/-' Ericsson AB - OTP team From david.wallin@REDACTED Wed Oct 16 15:54:50 2002 From: david.wallin@REDACTED (david wallin) Date: Wed, 16 Oct 2002 14:54:50 +0100 Subject: erlang drivers on jaguar In-Reply-To: <15789.7099.585001.151373@gargle.gargle.HOWL> References: <1034705889.9559.218.camel@wintermute.csis.ul.ie> <15789.7099.585001.151373@gargle.gargle.HOWL> Message-ID: <1034776490.9559.229.camel@wintermute.csis.ul.ie> Thanks, that did the trick. --david. On Wed, 2002-10-16 at 08:56, Micael Karlberg wrote: > Hi, > > Try this patch: > cd to erts/emulator/drivers/unix and apply > the attached patch (patch -p1 > > ---- > > > Mind you, this does not work for every driver. For instance > it does to cure the per_bin driver (used for encoding when > compiling asn1 with options -bper_bin +optimized). > > This will _not_ make it into the R9 release! > > /BMK > > david wallin writes: > > > > Hi all, > > > > I have some problems with loading erlang drivers under MacOSX 10.2 (aka > > Jaguar). Could it be a gcc 3.1 issue? or is it Apple who once again > > decides to change everything? > > > > Either way, if anyone has a fix for this, I'd be interested. > > > > cheers, > > > > --david. > > > > -- > Micael Karlberg Ericsson AB, ?lvsj? Sweden > Tel: +46 8 727 5668 EAB/UHK/KD - OTP Product Development > ECN: 851 5668 Mail: micael.karlberg@REDACTED > Fax: +46 8 727 5775 From jilani.khaldi@REDACTED Wed Oct 16 22:26:21 2002 From: jilani.khaldi@REDACTED (Jilani Khaldi) Date: Wed, 16 Oct 2002 22:26:21 +0200 Subject: Can't find new features in OTP/R9 Message-ID: Hi Erlang's I downloaded OTP/R9 and it installed fine on my Windows and Slack Linux 8.1 boxes, so thanks for everybody who has partecipated to do this nice job! Perhaps I am blind, but I can't find anything on the Erlang site or in the readme file which tells about new features or bug fixes. Thank you. Jilani From per@REDACTED Wed Oct 16 23:55:18 2002 From: per@REDACTED (Per Bergqvist) Date: Wed, 16 Oct 2002 22:55:18 +0100 Subject: Patch R9B-0 Message-ID: <200210162055.g9GKtMB02828@hunden.levonline.com> Hi, My patch for erl_marshal.c was not included in the R9B-0 release so here it is again. NOTE: if you plan to use erl_compare (i.e. erl_interface) at all you should use this patch. It fixes problems when comparing lists or tuples of numeric values. Without the patch only the first numeric value will be taken into account in the comparison. i.e. {1,2,3} and {1,99999,999999999} will return equal. A very good/bad example is when you try to unique sorting now() timestamp values in c ... most likely you will end up with very few values in the result set :-( /Per ========================================================= Per Bergqvist Synapse Systems AB Phone: +46 709 686 685 Email: per@REDACTED -------------- next part -------------- A non-text attachment was scrubbed... Name: R9B-0.patch01 Type: application/octet-stream Size: 1680 bytes Desc: not available URL: From kent@REDACTED Wed Oct 16 22:58:18 2002 From: kent@REDACTED (Kent Boortz) Date: 16 Oct 2002 22:58:18 +0200 Subject: Can't find new features in OTP/R9 In-Reply-To: References: Message-ID: Jilani Khaldi writes: > I downloaded OTP/R9 and it installed fine on my Windows and Slack > Linux 8.1 boxes, so thanks for everybody who has partecipated to do > this nice job! Perhaps I am blind, but I can't find anything on the > Erlang site or in the readme file which tells about new features or > bug fixes. I just uploaded the on-line documentation to www.erlang.org. There is a "hightlights" document and separate release notes for each application. kent From per@REDACTED Thu Oct 17 00:07:21 2002 From: per@REDACTED (Per Bergqvist) Date: Wed, 16 Oct 2002 23:07:21 +0100 Subject: Can't find new features in OTP/R9 In-Reply-To: Message-ID: <200210162107.g9GL7Os10397@hunden.levonline.com> Hi, You have a couple of notes.html in the distrib. For a feature overview check the online docs on http://www.erlang.org. /Per > Hi Erlang's > I downloaded OTP/R9 and it installed fine on my Windows and Slack Linux 8.1 boxes, so thanks for everybody who > has partecipated to do this nice job! Perhaps I am blind, but I can't find anything on the Erlang site or in the > readme file which tells about new features or bug fixes. > > Thank you. > > Jilani > > > > > ========================================================= Per Bergqvist Synapse Systems AB Phone: +46 709 686 685 Email: per@REDACTED From kenneth@REDACTED Wed Oct 16 23:21:57 2002 From: kenneth@REDACTED (Kenneth Lundin) Date: Wed, 16 Oct 2002 23:21:57 +0200 Subject: Erlang/OTP R9B-0 is now available for download Message-ID: <3DADD875.5CA73902@erix.ericsson.se> Sorry, I actually ment to send this 5 hours ago but did a fatal misspelling of the mailaddress. We are proud to announce that the new Erlang/OTP R9B-0 release is available for download as planned October 16, 2002. This is the original R9B release, R9B-0. You can download the full source distribution from http://www.erlang.org/download/otp_src_R9B-0.tar.gz http://www.erlang.org/download/otp_src_R9B-0.readme (this file) If you have access to the Ericsson intranet you can find the same files at http://erlang.ericsson.se/opensource/download/ Note that to unpack the TAR archive you need a GNU TAR compatible program. For example on MacOS X you need to use the 'gnutar' command, you can't use the 'tar' command or StuffIt to unpack the sources. For installation instructions please read the README that is part of the distribution. There is no support for building a Windows version from source. The Windows binary distribution can be downloaded from http://www.erlang.org/download/otp_win32_R9B-0.exe The documentation at http://www.erlang.org will be updated. You can also download the complete HTML documentation or the Unix manual files http://www.erlang.org/download/otp_html_R9B-0.tar.gz http://www.erlang.org/download/otp_man_R9B-0.tar.gz For some OTP applications there are more detailed release notes in the HTML documentation. We also want to thank those that sent us patches, suggestions and bug reports. You can read about the major changes since RB-x here: http://www.erlang.org/download/highlights_R9B-0.html -- The Erlang/OTP team at Ericsson -- Kenneth Lundin Ericsson AB kenneth@REDACTED ?T2/UAB/UKH/K BOX 1505 +46 8 727 57 25 125 25 ?lvsj? From kenneth@REDACTED Thu Oct 17 00:03:34 2002 From: kenneth@REDACTED (Kenneth Lundin) Date: Thu, 17 Oct 2002 00:03:34 +0200 Subject: Erlang/OTP R9B-0 is now available for download Message-ID: <3DADE236.C3FCDBC1@erix.ericsson.se> Sorry for the delay, I actually ment to send this 5 hours ago but did a fatal misspelling of the mailaddress. R9B has been available for more than 5 hours now. We are proud to announce that the new Erlang/OTP R9B-0 release is available for download as planned October 16, 2002. This is the original R9B release, R9B-0. You can download the full source distribution from http://www.erlang.org/download/otp_src_R9B-0.tar.gz http://www.erlang.org/download/otp_src_R9B-0.readme (this file) If you have access to the Ericsson intranet you can find the same files at http://erlang.ericsson.se/opensource/download/ Note that to unpack the TAR archive you need a GNU TAR compatible program. For example on MacOS X you need to use the 'gnutar' command, you can't use the 'tar' command or StuffIt to unpack the sources. For installation instructions please read the README that is part of the distribution. There is no support for building a Windows version from source. The Windows binary distribution can be downloaded from http://www.erlang.org/download/otp_win32_R9B-0.exe The documentation at http://www.erlang.org will be updated. You can also download the complete HTML documentation or the Unix manual files http://www.erlang.org/download/otp_html_R9B-0.tar.gz http://www.erlang.org/download/otp_man_R9B-0.tar.gz For some OTP applications there are more detailed release notes in the HTML documentation. We also want to thank those that sent us patches, suggestions and bug reports. You can read about the major changes since RB-x here: http://www.erlang.org/doc/r9b/doc/highlights.html -- The Erlang/OTP team at Ericsson -- Kenneth Lundin Ericsson AB kenneth@REDACTED ?T2/UAB/UKH/K From richardc@REDACTED Thu Oct 17 13:18:05 2002 From: richardc@REDACTED (Richard Carlsson) Date: Thu, 17 Oct 2002 13:18:05 +0200 (MET DST) Subject: Packages: old article disclaimer In-Reply-To: Message-ID: To anyone who has followed the link from the R9 release highlights to my article from January 2000 about packages in Erlang: Please note that the final implementation of packages differs quite a lot from what was suggested in that original article. The online documentation ('packages.html') describes the real implementation as it is in R9. (There is also a newer article from this year's Erlang workshop that describes the final implementation in more detail, but that is only available via the ACM digital library.) /Richard Carlsson Richard Carlsson (richardc@REDACTED) (This space intentionally left blank.) E-mail: Richard.Carlsson@REDACTED WWW: http://user.it.uu.se/~richardc/ From ddw@REDACTED Thu Oct 17 14:08:28 2002 From: ddw@REDACTED (Dominique de Waleffe) Date: Thu, 17 Oct 2002 14:08:28 +0200 Subject: Packages: old article disclaimer In-Reply-To: References: Message-ID: <15790.43068.299000.984634@missioncriticalit.com> >>> "Richard" == Richard Carlsson writes: Richard> (There is also a newer article from this year's Erlang workshop Richard> that describes the final implementation in more detail, but that Richard> is only available via the ACM digital library.) Do you have a direct pointer into the ACM DL for this paper? Thanks, D. From vlad_dumitrescu@REDACTED Thu Oct 17 14:16:07 2002 From: vlad_dumitrescu@REDACTED (Vlad Dumitrescu) Date: Thu, 17 Oct 2002 14:16:07 +0200 Subject: Packages: old article disclaimer References: Message-ID: Hi, Now that you pointed this out, I have to be a little mean and notice that there is no packages.html in the documentation (except for some Java docs)... Not in the Windows install, nor in the separate docs. Btw, about the new keywords 'try' and 'cond' - do they do anything useful, or were only reserved for use in R10? best regards, Vlad ----- Original Message ----- From: "Richard Carlsson" To: Sent: Thursday, October 17, 2002 1:18 PM Subject: Packages: old article disclaimer > > To anyone who has followed the link from the R9 release highlights > to my article from January 2000 about packages in Erlang: > > Please note that the final implementation of packages differs > quite a lot from what was suggested in that original article. > > The online documentation ('packages.html') describes the real > implementation as it is in R9. > > (There is also a newer article from this year's Erlang workshop > that describes the final implementation in more detail, but that > is only available via the ACM digital library.) > > /Richard Carlsson > > > > Richard Carlsson (richardc@REDACTED) (This space intentionally left blank.) > E-mail: Richard.Carlsson@REDACTED WWW: http://user.it.uu.se/~richardc/ > From richardc@REDACTED Thu Oct 17 14:21:01 2002 From: richardc@REDACTED (Richard Carlsson) Date: Thu, 17 Oct 2002 14:21:01 +0200 (MET DST) Subject: Packages: old article disclaimer In-Reply-To: <15790.43068.299000.984634@missioncriticalit.com> Message-ID: On Thu, 17 Oct 2002, Dominique de Waleffe wrote: > Richard> (There is also a newer article from this year's Erlang workshop > Richard> that describes the final implementation in more detail, but that > Richard> is only available via the ACM digital library.) > > Do you have a direct pointer into the ACM DL for this paper? No, it seems not to be available yet. /Richard Richard Carlsson (richardc@REDACTED) (This space intentionally left blank.) E-mail: Richard.Carlsson@REDACTED WWW: http://user.it.uu.se/~richardc/ From richardc@REDACTED Thu Oct 17 14:24:49 2002 From: richardc@REDACTED (Richard Carlsson) Date: Thu, 17 Oct 2002 14:24:49 +0200 (MET DST) Subject: Packages: old article disclaimer In-Reply-To: Message-ID: On Thu, 17 Oct 2002, Vlad Dumitrescu wrote: > Now that you pointed this out, I have to be a little mean and notice that > there is no packages.html in the documentation (except for some Java > docs)... Not in the Windows install, nor in the separate docs. Sorry - I meant the reference from the same place in the highlights. The full URL is: http://www.erlang.se/publications/packages.html (I thought it would be in the distribution as well...) > Btw, about the new keywords 'try' and 'cond' - do they do anything useful, > or were only reserved for use in R10? They are reserved for R10. There was not time enough to get them implemented in R9. /Richard Richard Carlsson (richardc@REDACTED) (This space intentionally left blank.) E-mail: Richard.Carlsson@REDACTED WWW: http://user.it.uu.se/~richardc/ From jamesh@REDACTED Thu Oct 17 20:23:34 2002 From: jamesh@REDACTED (James Hague) Date: Thu, 17 Oct 2002 13:23:34 -0500 Subject: Sticky directory? Message-ID: If I compile a module from werl.exe (Windows) in R9, it works fine the first time. The second time I get the error: Can't load module that resides in sticky dir {error,sticky_directory} Any ideas? From jamesh@REDACTED Thu Oct 17 20:44:15 2002 From: jamesh@REDACTED (James Hague) Date: Thu, 17 Oct 2002 13:44:15 -0500 Subject: Sticky directory? Message-ID: I know what this is. It's because I had a module with the same name as a module in stdlib. I'm still not sure what "sticky directory" means, but renaming the module fixed the problem. From taavi@REDACTED Thu Oct 17 21:13:47 2002 From: taavi@REDACTED (Taavi Talvik) Date: Thu, 17 Oct 2002 22:13:47 +0300 (EEST) Subject: erlc ja hipe Message-ID: <20021017221035.T31454-100000@valu.uninet.ee> Does erlc support native compilation - i.e. similar to c(module,native) in interpreter? best regards, taavi From happi@REDACTED Thu Oct 17 21:43:34 2002 From: happi@REDACTED (Happi) Date: Thu, 17 Oct 2002 21:43:34 +0200 Subject: erlc ja hipe References: <20021017221035.T31454-100000@valu.uninet.ee> Message-ID: <024101c27615$7ae03520$c90b0a0a@LISA> From: "Taavi Talvik" > Does erlc support native compilation - i.e. similar to c(module,native) > in interpreter? Yes, you give the option as +native -Erik I'm Happi, you should be happy! From taavi@REDACTED Thu Oct 17 22:17:20 2002 From: taavi@REDACTED (Taavi Talvik) Date: Thu, 17 Oct 2002 23:17:20 +0300 (EEST) Subject: erlc ja hipe In-Reply-To: <024101c27615$7ae03520$c90b0a0a@LISA> Message-ID: <20021017231251.I33423-100000@valu.uninet.ee> On Thu, 17 Oct 2002, Happi wrote: > From: "Taavi Talvik" > > Does erlc support native compilation - i.e. similar to c(module,native) > > in interpreter? > > Yes, you give the option as > +native hmm.. seems to be freebsd specific problem. My first tries where: ~/work/test/bin/erlc -o ../ebin +hipe xgs.erl erlc: Error 2 executing 'ecc'. ~/work/test/bin/erlc -o ../ebin +native xgs.erl erlc: Error 2 executing 'ecc'. after putting ecc into path (however erlc itself should figure out ERL_TOP): ~/work/test/bin/erlc -o ../ebin +native xgs.erl ./xgs.erl:none: internal error in native_compile; crash reason: {undef,[{hipe,compile, [xgs, <<70,79,82,49,0,0,8,48,66,69,65,77,65,116,111,109,0,0,1,80,0,0,0,40,3 ,120,103,115,5,115,116,97,114,116,10,120,103,115,95,115,101,114,118,101,114,10,115,116,97,114,116, 95,108,105,110,107,10,103,101,110,95,115,101,114,118,101,114,4,99,97,108,108,4,115,116,111,112,6,9 9,111,110,102,105,103,6,99,114,101,97,116,101,14,115,105,103,110,97,108,95,99,111,110,110,101,99,1 16,14,115,105,..... ... but in interpreter c(module,native) works and generated module works too. best regards, taavi From richardc@REDACTED Thu Oct 17 22:43:50 2002 From: richardc@REDACTED (Richard Carlsson) Date: Thu, 17 Oct 2002 22:43:50 +0200 (MET DST) Subject: erlc ja hipe In-Reply-To: <20021017231251.I33423-100000@valu.uninet.ee> Message-ID: On Thu, 17 Oct 2002, Taavi Talvik wrote: > ~/work/test/bin/erlc -o ../ebin +hipe xgs.erl > erlc: Error 2 executing 'ecc'. > > after putting ecc into path (however erlc itself should figure out > ERL_TOP): Maybe you need to set ERLC_EMULATOR=~/work/test/bin/erl to get ecc to work - at least if you have not done a 'make install'. I don't know why, but this seems to be necessary in R9. /Richard Richard Carlsson (richardc@REDACTED) (This space intentionally left blank.) E-mail: Richard.Carlsson@REDACTED WWW: http://user.it.uu.se/~richardc/ From taavi@REDACTED Thu Oct 17 23:52:21 2002 From: taavi@REDACTED (Taavi Talvik) Date: Fri, 18 Oct 2002 00:52:21 +0300 (EEST) Subject: erlc ja hipe In-Reply-To: Message-ID: <20021018004824.J35869-100000@valu.uninet.ee> On Thu, 17 Oct 2002, Richard Carlsson wrote: > Maybe you need to set ERLC_EMULATOR=~/work/test/bin/erl to get ecc to > work - at least if you have not done a 'make install'. I don't know why, > but this seems to be necessary in R9. I have done 'make install'. (./configure --prefix=/../../work/test --enable-hipe; make;make install) best regards, taavi From Marc.Vanwoerkom@REDACTED Fri Oct 18 00:40:20 2002 From: Marc.Vanwoerkom@REDACTED (Marc Ernst Eddy van Woerkom) Date: Fri, 18 Oct 2002 00:40:20 +0200 (MEST) Subject: erlc ja hipe In-Reply-To: <20021017231251.I33423-100000@valu.uninet.ee> (message from Taavi Talvik on Thu, 17 Oct 2002 23:17:20 +0300 (EEST)) Message-ID: <200210172240.g9HMeKB09431@bonsai.fernuni-hagen.de> > hmm.. seems to be freebsd specific problem. I understood the release docs such that it was only supported for Solaris and Linux - is that true? Regards, Marc From vances@REDACTED Fri Oct 18 02:28:16 2002 From: vances@REDACTED (Vance Shipley) Date: Thu, 17 Oct 2002 20:28:16 -0400 Subject: Packages: old article disclaimer In-Reply-To: References: Message-ID: <20021018002816.GI50126@frogman.motivity.ca> I noticed this and looked for documentation. I assume it would be documented in "Erlang Extensions Since 4.4" but it isn't. Neither is the native specifier for endianess in bit syntax though. I found the proposals for try and cond and tried from the R9 shell and all I got were syntax errors so I guess they're not implemented yet. -Vance On Thu, Oct 17, 2002 at 02:16:07PM +0200, Vlad Dumitrescu wrote: } } Btw, about the new keywords 'try' and 'cond' - do they do anything useful, } or were only reserved for use in R10? From vances@REDACTED Fri Oct 18 03:00:29 2002 From: vances@REDACTED (Vance Shipley) Date: Thu, 17 Oct 2002 21:00:29 -0400 Subject: Building R8B-2 as a 64-bit application on sparcv9 In-Reply-To: References: <20020827030829.GD35854@frogman.motivity.ca> Message-ID: <20021018010029.GK50126@frogman.motivity.ca> Kent, I take it that the released R9 doesn't include 64-bit support? -Vance On Tue, Aug 27, 2002 at 06:25:13AM +0200, Kent Boortz wrote: } } We are as a first step doing an unoptimized port of Erlang/OTP to } 64-bits but don't know how much will be ready when we release R9 in } October. You can follow the progress in the P9 snapshots, some builds } will be very broken for 64 bits, others will work quite well (a large } part of the emulator test suites succeeds). We use gcc 3.1.1, sparcv9 } and Solaris 8 for the daily build and test of the 64 bit Erlang/OTP. } } I don't think we have looked into erl_interface and 64 bits yet, } } kent From kent@REDACTED Fri Oct 18 06:30:51 2002 From: kent@REDACTED (Kent Boortz) Date: 18 Oct 2002 06:30:51 +0200 Subject: Building R8B-2 as a 64-bit application on sparcv9 In-Reply-To: <20021018010029.GK50126@frogman.motivity.ca> References: <20020827030829.GD35854@frogman.motivity.ca> <20021018010029.GK50126@frogman.motivity.ca> Message-ID: Vance Shipley writes: > I take it that the released R9 doesn't include 64-bit support? It does, at least for sparcv9 that we have used as the first target for the 64 bit port. Don't expect everything to work 100% but it should be "usable" (the main test suites are actually running just fine). The internal representation of the data types are not optimized, i.e. large integers that now internally could fit into a 64 bit word are still converted to the bignum representation. Configure will select 64 bits if you point your PATH to a gcc with 64 bit compilation as the default compilation mode. kent From vances@REDACTED Fri Oct 18 06:13:14 2002 From: vances@REDACTED (Vance Shipley) Date: Fri, 18 Oct 2002 00:13:14 -0400 Subject: a Message-ID: <20021018041314.GM50126@frogman.motivity.ca> The R9B-0 configure script has a couple new options: --enable-tsp (compile tsp app) --enable-kernel-poll (enable kernel poll support) --with-perfctr=PATH (specify location of perfctr include and lib) What is the TSP application? What is perfctr? -Vance From vances@REDACTED Fri Oct 18 06:36:33 2002 From: vances@REDACTED (Vance Shipley) Date: Fri, 18 Oct 2002 00:36:33 -0400 Subject: Building R8B-2 as a 64-bit application on sparcv9 In-Reply-To: References: <20020827030829.GD35854@frogman.motivity.ca> <20021018010029.GK50126@frogman.motivity.ca> Message-ID: <20021018043633.GN50126@frogman.motivity.ca> Kent, How would I coax it when my default compilation is 32 bits? I'm using the sunfreeware packages and they are built so that you specify -m64 to get 64-bit compilation. -Vance } Configure will select 64 bits if you point your PATH to a gcc with 64 } bit compilation as the default compilation mode. } } kent From seb@REDACTED Fri Oct 18 03:43:48 2002 From: seb@REDACTED (Sebastian Strollo) Date: 17 Oct 2002 18:43:48 -0700 Subject: Sticky directory? In-Reply-To: References: Message-ID: James Hague writes: > I know what this is. It's because I had a module with the same name as a > module in stdlib. Exactly. > I'm still not sure what "sticky directory" means, but > renaming the module fixed the problem. Well, we were having a lot of people shooting themselves in the foot when they made their first module called "lists"... :-) So we invented something to prevent the whole system from come crashing down in such cases. A directory (in the search path) can be marked sticky to the code loader, then if anyone tries to load a module with the same name as a module already loaded from such a sticky directory you get the error you saw. From the manpage for "code": stick_dir(Dir) -> ok | {error, term()} Types Dir = string() This function marks Dir as 'sticky'. The system issues a warning and rejects the request if a user tries to re-load a module in a sticky directory. Sticky directories are used to warn the user about inadvertent changes to system software. Cheers, /Sebastian From daniel.neri@REDACTED Fri Oct 18 09:58:39 2002 From: daniel.neri@REDACTED (Daniel =?iso-8859-1?q?N=E9ri?=) Date: 18 Oct 2002 07:58:39 +0000 Subject: Building R8B-2 as a 64-bit application on sparcv9 References: <20020827030829.GD35854@frogman.motivity.ca> <20021018010029.GK50126@frogman.motivity.ca> <20021018043633.GN50126@frogman.motivity.ca> Message-ID: Vance Shipley writes: > How would I coax it when my default compilation is 32 bits? I'm > using the sunfreeware packages and they are built so that you > specify -m64 to get 64-bit compilation. Maybe try CC='gcc -m64' ./configure Regards, --Daniel -- Daniel N?ri, Sigicom AB, Sweden From vances@REDACTED Fri Oct 18 10:03:10 2002 From: vances@REDACTED (Vance Shipley) Date: Fri, 18 Oct 2002 04:03:10 -0400 Subject: Building R8B-2 as a 64-bit application on sparcv9 In-Reply-To: References: <20020827030829.GD35854@frogman.motivity.ca> <20021018010029.GK50126@frogman.motivity.ca> <20021018043633.GN50126@frogman.motivity.ca> Message-ID: <20021018080310.GP50126@frogman.motivity.ca> On Fri, Oct 18, 2002 at 07:58:39AM +0000, Daniel N?ri wrote: } } Maybe try } } CC='gcc -m64' ./configure Nope. I tried changing CFLAGS in the environment and got part way through building in 64 but then it started using 32 again for some things. -Vance From daniel.neri@REDACTED Fri Oct 18 10:39:48 2002 From: daniel.neri@REDACTED (Daniel =?iso-8859-1?q?N=E9ri?=) Date: 18 Oct 2002 08:39:48 +0000 Subject: Building R8B-2 as a 64-bit application on sparcv9 In-Reply-To: <20021018080310.GP50126@frogman.motivity.ca> References: <20020827030829.GD35854@frogman.motivity.ca> <20021018010029.GK50126@frogman.motivity.ca> <20021018043633.GN50126@frogman.motivity.ca> <20021018080310.GP50126@frogman.motivity.ca> Message-ID: Vance Shipley writes: > Nope. I tried changing CFLAGS in the environment and got part way > through building in 64 but then it started using 32 again for some > things. According to comments in erts/configure.in, this is intentional (for some external port programs). Best wishes, --Daniel -- Daniel N?ri Sigicom AB, Stockholm, Sweden From eleberg@REDACTED Fri Oct 18 10:46:17 2002 From: eleberg@REDACTED (Bengt Kleberg) Date: Fri, 18 Oct 2002 10:46:17 +0200 (MET DST) Subject: Building R8B-2 as a 64-bit application on sparcv9 Message-ID: <200210180846.g9I8kHr09355@cbe.ericsson.se> > Date: Fri, 18 Oct 2002 04:03:10 -0400 > From: Vance Shipley > To: Daniel N?ri > Cc: erlang-questions@REDACTED > Subject: Re: Building R8B-2 as a 64-bit application on sparcv9 > Mime-Version: 1.0 > Content-Disposition: inline > User-Agent: Mutt/1.5.1i > > On Fri, Oct 18, 2002 at 07:58:39AM +0000, Daniel N?ri wrote: > } > } Maybe try > } > } CC='gcc -m64' ./configure > > > Nope. I tried changing CFLAGS in the environment and got part way > through building in 64 but then it started using 32 again for some > things. sometimes (gnu)make will lose environment information if it calls itself too many (>4) times (recursive make). this made it impossible to build R8 out out-of-the-box on my solaris machine. my workaround was to manually type the last correct make invocation in a shell, thereby getting rid of some layers of recursion. bengt From mikpe@REDACTED Fri Oct 18 11:57:51 2002 From: mikpe@REDACTED (Mikael Pettersson) Date: Fri, 18 Oct 2002 11:57:51 +0200 Subject: erlc ja hipe In-Reply-To: <200210172240.g9HMeKB09431@bonsai.fernuni-hagen.de> References: <20021017231251.I33423-100000@valu.uninet.ee> <200210172240.g9HMeKB09431@bonsai.fernuni-hagen.de> Message-ID: <15791.56095.636576.641497@kim.it.uu.se> Marc Ernst Eddy van Woerkom writes: > > hmm.. seems to be freebsd specific problem. > > I understood the release docs such that it was only supported > for Solaris and Linux - is that true? HiPE is supported on UltraSPARCs running Solaris, and x86s running Solaris/8 or Linux with glibc-2.1 to 2.3. If it works on other systems, great!, but the above ones are the ones we use for development and testing. Any Unixy x86 with glibc-2.1 to 2.3 ought to work, however. /Mikael From mikpe@REDACTED Fri Oct 18 12:11:22 2002 From: mikpe@REDACTED (Mikael Pettersson) Date: Fri, 18 Oct 2002 12:11:22 +0200 Subject: a In-Reply-To: <20021018041314.GM50126@frogman.motivity.ca> References: <20021018041314.GM50126@frogman.motivity.ca> Message-ID: <15791.56906.387824.557927@kim.it.uu.se> Vance Shipley writes: > > The R9B-0 configure script has a couple new options: > > --enable-tsp (compile tsp app) > --enable-kernel-poll (enable kernel poll support) > --with-perfctr=PATH (specify location of perfctr include and lib) > > What is perfctr? perfctr is a Linux/x86 kernel extension and library for accessing x86 performance-counters. In contrast to other performance-counter drivers, it fully virtualises the performance counters as a per-process resource. Its use in HiPE is currently very basic: as a source for a high-res process clock using the virtualised time-stamp counter. The current stable release perfctr-2.4.1 is available at . perfctr is a low-level interface which does not hide any of the CPU-specific details one must get right when programming performance counters. Higher-level tools are provided by e.g. PAPI; see . Most users should just ignore the --with-perfctr=PATH option. /Mikael From ingela@REDACTED Fri Oct 18 12:45:14 2002 From: ingela@REDACTED (Ingela Anderton) Date: Fri, 18 Oct 2002 12:45:14 +0200 (MEST) Subject: a References: <20021018041314.GM50126@frogman.motivity.ca> Message-ID: <200210181045.g9IAjEO18517@gildor.du.uab.ericsson.se> Vance Shipley wrote: > > The R9B-0 configure script has a couple new options: > > --enable-tsp (compile tsp app) > --enable-kernel-poll (enable kernel poll support) > --with-perfctr=PATH (specify location of perfctr include and lib) > > What is the TSP application? It is an interface towards another Ericsson product called TSP, proably not very useful for people outside of Ericsson, unless they are using TSP of course. -- /m.v.h Ingela //The highway of life is always under construction. // |\ _,,,--,,_ ,) /,`.-'`' -, ;-;;' |,4- ) )-,_ ) /\ '---''(_/--' (_/-' Ericsson AB - OTP team From DANIESC.SCHUTTE@REDACTED Fri Oct 18 15:26:03 2002 From: DANIESC.SCHUTTE@REDACTED (DANIESC SCHUTTE) Date: Fri, 18 Oct 2002 15:26:03 +0200 Subject: gen_tcp question Message-ID: This may be stupid, but i can not find a suitable answer in the faq's or the manuals. Executing the server code as is provided in the manual, works fine the first time, but the second time I execute it - I get an badmatch address in use error, re-executing the code for the third time however and it works fine. The port is being closed in the code - am I just doing something stupid or missing the obvious? Thanks to everyone for their help Danie Schutte Phone: +27 - 11 - 203 - 1614 Mobile: 083-268-3138 e-Mail: Daniesc@REDACTED ##################################################################################### The information contained in this message and or attachments is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any system and destroy and copies. ##################################################################################### -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: TEXT.htm URL: From matthias@REDACTED Fri Oct 18 15:45:29 2002 From: matthias@REDACTED (Matthias Lang) Date: Fri, 18 Oct 2002 15:45:29 +0200 Subject: lies, damn lies and erlang memory use Message-ID: <15792.4217.454479.533764@antilipe.corelatus.se> Hi, I seem to be having my annual horror trip with memory management. Maybe someone has some clues. I'm using R8B-2, cross compiled for a PPC running linux. The underlying problem is that the Erlang VM appears to grow, slowly, without apparent bound. As always, I have no idea why. If I run the instrumented VM on it, it seems to show me rather more holes than I expected: 27 20 32 20 158 30 2222 6078 26 20 35 22 60 2222 30 30 3902 30 32 28 24 24 20 1694 20 24 24 24 24 24 24 32 24 24 20 24 20 20 20 20 20 20 24 24 24 20 24 24 24 20 32 35 24 24 24 24 24 24 24 24 24 24 24 24 24 24 [many lines omitted] 6982 2222 5598 30 17280 20094 33734 22 6678 5438 27726 23022 4734 1878 2222 12622 30 712 856 3790 2222 12926 20702 30 32 5636 27262 60878 30910 3790 11302 Adding them up, I get more than 6M of holes, which seems a little rich given that instrument:limits reports 11M in total. Is this normal, or is something strange going on? (Yes, you detect my tone of doubt, which is provoked by there being many different BIFs and things for reporting on Erlang memory use, but it's not very obvious which ones refer to what. They also seem to lie quite a bit, for instance: - c:memory(). Looks suspect; it's "total" is always much less than the sum of the parts it reports, e.g. on x86 linux: Eshell V5.1.2 (abort with ^G) 1> c:memory(). [{total,2109082}, {processes,181236}, {system,1927846}, {atom,180221}, {atom_used,150362}, {binary,96064}, {code,1156376}, {ets,72948}] - erlang:system_info(allocated_areas) This is where c:memory() appears to get most of its information from, and it looks more promising. The values add up to about 20% less than what the OS says and the gulf tends to widen as more memory is used. ) Clues appreciated! Anyone have good or bad experiences with disabling sl_alloc and using plain old malloc instead? Matthias From etxmacr@REDACTED Fri Oct 18 16:32:32 2002 From: etxmacr@REDACTED (Mats Cronqvist) Date: Fri, 18 Oct 2002 16:32:32 +0200 Subject: shared beam missing Message-ID: <200210181432.g9IEWWl29916@cbe1030.al.sw.ericsson.se> i try to build R9B-0 with this config, but get no beam.shared :< any ideas? mats ./configure --enable-threads --with-ssl=<>/openssl-0.9.6c/release --disable-hipe --enable-shared-heap --enable-kernel-poll From etxmacr@REDACTED Fri Oct 18 16:31:16 2002 From: etxmacr@REDACTED (Mats Cronqvist) Date: Fri, 18 Oct 2002 16:31:16 +0200 Subject: lies, damn lies and erlang memory use In-Reply-To: Your message of "Fri, 18 Oct 2002 15:45:29 +0200." <15792.4217.454479.533764@antilipe.corelatus.se> Message-ID: <200210181431.g9IEVHl29653@cbe1030.al.sw.ericsson.se> <...> > The underlying problem is that the Erlang VM appears to grow, slowly, > without apparent bound. As always, I have no idea why. > If I run the instrumented VM on it, it seems to show me rather more > holes than I expected <...> if i add up erlang:system_info(allocated_areas), total heap memory ([process_info(P,memory)||P<-processes()]) and total ets memory ([ets:info(T,memory)||T<-ets:all()]) i get between 99% and 0% of what the os reports, depending on the history of the node. i would expect that the "holes" of matthias accounts for much (all?) of the rest. what do you get if you do that addition, matthias? we have tried many different mallocs, none has been outstanding. mats From daniel.neri@REDACTED Fri Oct 18 16:54:31 2002 From: daniel.neri@REDACTED (Daniel =?iso-8859-1?q?N=E9ri?=) Date: 18 Oct 2002 14:54:31 +0000 Subject: gen_tcp question References: Message-ID: "DANIESC SCHUTTE" writes: > Executing the server code as is provided in the manual, works fine > the first time, but the second time I execute it - I get an badmatch > address in use error, Add {reuseaddr,true} to the socket option list. Regards, --Daniel -- Daniel N?ri, Sigicom AB, Sweden From martin@REDACTED Fri Oct 18 21:02:00 2002 From: martin@REDACTED (martin j logan) Date: 18 Oct 2002 14:02:00 -0500 Subject: Redhat 8.0 Message-ID: <1034967721.24594.127.camel@berimbau> Hello, I was wondering if anyone knows if there will be a patch for R9 to make it compatible with Redhat Linux 8.0. I have tried to get it going myself but it seems as though the matter is not entirely trivial. I have included the last error that I got in case anyone has seen the same thing. The observed errors seem to be similar to the those seen when trying to build R8-2 on the same OS. The error below may be my own as it is comes after a few of my own "fixes". I think that my "fixes" were non-destructive though. Thanks in advance for any help. Cheers, Martin Below is the text from the gmake/make same for both. erlc -W -bbeam +debug_info -o../ebin hipe_x86_ra_ls_postconditions.erl erlc -W -bbeam +debug_info -o../ebin hipe_x86_ra_measure_live_regs.erl erlc -W -bbeam +debug_info -o../ebin hipe_x86_ra_postconditions.erl erlc -W -bbeam +debug_info -o../ebin hipe_x86_registers.erl make[3]: Leaving directory `/usr/local/src/otp_src_R9B-0/lib/hipe/x86' make[3]: Entering directory `/usr/local/src/otp_src_R9B-0/lib/hipe/tools' erlc -W -bbeam +debug_info -o../ebin hipe_tool.erl erlc -W -bbeam +debug_info -o../ebin hipe_profile.erl erlc -W -bbeam +debug_info -o../ebin hipe_ceach.erl erlc -W -bbeam +debug_info -o../ebin hipe_timer.erl erlc -W -bbeam +debug_info -o../ebin hipe_jit.erl make[3]: Leaving directory `/usr/local/src/otp_src_R9B-0/lib/hipe/tools' === Leaving application hipe make[2]: Leaving directory `/usr/local/src/otp_src_R9B-0/lib/hipe' make[1]: Leaving directory `/usr/local/src/otp_src_R9B-0/lib' if test ! -d bootstrap/lib/kernel ; then mkdir bootstrap/lib/kernel ; fi if test ! -d bootstrap/lib/kernel/ebin ; then mkdir bootstrap/lib/kernel/ebin ; fi if test ! -d bootstrap/lib/kernel/include ; then mkdir bootstrap/lib/kernel/include ; fi cp lib/kernel/ebin/*.beam bootstrap/lib/kernel/ebin cp lib/kernel/include/*.hrl bootstrap/lib/kernel/include if test ! -d bootstrap/lib/hipe ; then mkdir bootstrap/lib/hipe ; fi if test ! -d bootstrap/lib/hipe/ebin ; then mkdir bootstrap/lib/hipe/ebin ; fi if test -f lib/hipe/ebin/hipe.beam ; then cp lib/hipe/ebin/*.beam bootstrap/lib/hipe/ebin; fi if test ! -d bootstrap/lib/parsetools ; then mkdir bootstrap/lib/parsetools ; fiif test ! -d bootstrap/lib/parsetools/ebin ; then mkdir bootstrap/lib/parsetools/ebin ; fi if test ! -d bootstrap/lib/parsetools/include ; then mkdir bootstrap/lib/parsetools/include ; fi cp lib/parsetools/ebin/*.beam bootstrap/lib/parsetools/ebin cp lib/parsetools/include/*.hrl bootstrap/lib/parsetools/include if test ! -d bootstrap/lib/asn1 ; then mkdir bootstrap/lib/asn1 ; fi if test ! -d bootstrap/lib/asn1/ebin ; then mkdir bootstrap/lib/asn1/ebin ; fi cp lib/asn1/ebin/*.beam bootstrap/lib/asn1/ebin cd lib && \ ERL_TOP=/usr/local/src/otp_src_R9B-0 PATH=/usr/local/src/otp_src_R9B-0/bootstrap/bin:${PATH} \ make opt TERTIARY_BOOTSTRAP=true make[1]: Entering directory `/usr/local/src/otp_src_R9B-0/lib' === Skipping subdir snmp_dummy, it is missing make[2]: Entering directory `/usr/local/src/otp_src_R9B-0/lib/snmp' === Entering application snmp make[3]: Entering directory `/usr/local/src/otp_src_R9B-0/lib/snmp/mc_dummy' erlc -W -o ../src ../src/snmp_mib_gram.yrl No function otp_ring0:start/2 make[3]: *** [../src/snmp_mib_gram.erl] Aborted make[3]: Leaving directory `/usr/local/src/otp_src_R9B-0/lib/snmp/mc_dummy' make[3]: Entering directory `/usr/local/src/otp_src_R9B-0/lib/snmp/mibs' erlc -W -pa /usr/local/src/otp_src_R9B-0/lib/snmp/ebin -I /usr/local/src/otp_src_R9B-0/lib/snmp/priv/mibs -o ../priv/mibs RFC1213-MIB.mib No function otp_ring0:start/2 make[3]: *** [../priv/mibs/RFC1213-MIB.bin] Aborted make[3]: Leaving directory `/usr/local/src/otp_src_R9B-0/lib/snmp/mibs' make[3]: Entering directory `/usr/local/src/otp_src_R9B-0/lib/snmp/src' erlc -W -bbeam +debug_info -I../include +'{parse_transform,sys_pre_attributes}' +'{attribute,insert,app_vsn,"snmp-3.3.8"}' -I/usr/local/src/otp_src_R9B-0/lib/stdlib -Ddefault_verbosity=silence -o../ebin snmp_acm.erl ./snmp_acm.erl:26: can't find include file "STANDARD-MIB.hrl" ./snmp_acm.erl:27: can't find include file "SNMP-FRAMEWORK-MIB.hrl" ./snmp_acm.erl:28: can't find include file "SNMPv2-TM.hrl" ./snmp_acm.erl:125: undefined macro 'snmpUDPDomain' ./snmp_acm.erl:186: undefined macro 'snmpEnableAuthenTraps_instance' ./snmp_acm.erl:94: function handle_authentication_failure/0 undefined ./snmp_acm.erl:88: function init_ca/2 undefined make[3]: *** [../ebin/snmp_acm.beam] Error 1 make[3]: Leaving directory `/usr/local/src/otp_src_R9B-0/lib/snmp/src' make[3]: Entering directory `/usr/local/src/otp_src_R9B-0/lib/snmp/examples' make[3]: Nothing to be done for `opt'. make[3]: Leaving directory `/usr/local/src/otp_src_R9B-0/lib/snmp/examples' make[3]: Entering directory `/usr/local/src/otp_src_R9B-0/lib/snmp/priv/conf' make[3]: Nothing to be done for `opt'. make[3]: Leaving directory `/usr/local/src/otp_src_R9B-0/lib/snmp/priv/conf' === Skipping subdir doc/src, it is missing === Leaving application snmp make[2]: Leaving directory `/usr/local/src/otp_src_R9B-0/lib/snmp' make[1]: Leaving directory `/usr/local/src/otp_src_R9B-0/lib' if test ! -d bootstrap/lib/snmp ; then mkdir bootstrap/lib/snmp ; fi if test ! -d bootstrap/lib/snmp/ebin ; then mkdir bootstrap/lib/snmp/ebin ; fi if test ! -d bootstrap/lib/snmp/include ; then mkdir bootstrap/lib/snmp/include ; fi cp lib/snmp/ebin/*.beam bootstrap/lib/snmp/ebin cp: cannot stat `lib/snmp/ebin/*.beam': No such file or directory gmake: *** [tertiary_bootstrap_copy] Error 1 From erikp@REDACTED Fri Oct 18 21:19:31 2002 From: erikp@REDACTED (Erik Pearson) Date: Fri, 18 Oct 2002 12:19:31 -0700 Subject: [UCE] Redhat 8.0 Message-ID: <0D595F5EC57C9D4B800DAF910C3DA98F058DD8@ctsmail1.celtech.com> I've built R9 on two Redhat 8.0 systems, using the otp_src_R9B-0.tar.gz.tar file from erlang.org. The easiest way I found to do a clean build is to change the default LANG from en_US.UTF-8 to en_US. This will fix the perl length problem, so you should have a good preload.c file. --erikp-- From kristoffer.andersson@REDACTED Fri Oct 18 19:51:35 2002 From: kristoffer.andersson@REDACTED (Kristoffer Andersson) Date: Fri, 18 Oct 2002 19:51:35 +0200 Subject: Redhat 8.0 In-Reply-To: <1034967721.24594.127.camel@berimbau> References: <1034967721.24594.127.camel@berimbau> Message-ID: <3DB04A27.90908@mobilearts.se> Hi Martin! Don't now if this is any help to you, but this is what I did to get R9 to work on RH8. The problem I had with building R9 or R8B-2 on RH8 was the Unicode(UTF-8) stuff, or at least I think that was the problem. After reading the RH8 release notes more careful I tried to set the LANG variable to C when building OTP and it worked. eg. prompt> ./configure prompt> env LANG=C make prompt> env LANG=C make install I'm not sure that this is a good soloution (or a soloution at all) for the "RH8 problem", but so far it worked for me. Regards, /Toffe martin j logan wrote: >Hello, I was wondering if anyone knows if there will be a patch for R9 >to make it compatible with Redhat Linux 8.0. I have tried to get it >going myself but it seems as though the matter is not entirely trivial. >I have included the last error that I got in case anyone has seen the >same thing. The observed errors seem to be similar to the those seen >when trying to build R8-2 on the same OS. The error below may be my own >as it is comes after a few of my own "fixes". I think that my "fixes" >were non-destructive though. Thanks in advance for any help. > >Cheers, >Martin > >Below is the text from the gmake/make same for both. > >erlc -W -bbeam +debug_info -o../ebin >hipe_x86_ra_ls_postconditions.erl >erlc -W -bbeam +debug_info -o../ebin >hipe_x86_ra_measure_live_regs.erl >erlc -W -bbeam +debug_info -o../ebin hipe_x86_ra_postconditions.erl >erlc -W -bbeam +debug_info -o../ebin hipe_x86_registers.erl >make[3]: Leaving directory `/usr/local/src/otp_src_R9B-0/lib/hipe/x86' >make[3]: Entering directory >`/usr/local/src/otp_src_R9B-0/lib/hipe/tools' >erlc -W -bbeam +debug_info -o../ebin hipe_tool.erl >erlc -W -bbeam +debug_info -o../ebin hipe_profile.erl >erlc -W -bbeam +debug_info -o../ebin hipe_ceach.erl >erlc -W -bbeam +debug_info -o../ebin hipe_timer.erl >erlc -W -bbeam +debug_info -o../ebin hipe_jit.erl >make[3]: Leaving directory `/usr/local/src/otp_src_R9B-0/lib/hipe/tools' >=== Leaving application hipe >make[2]: Leaving directory `/usr/local/src/otp_src_R9B-0/lib/hipe' >make[1]: Leaving directory `/usr/local/src/otp_src_R9B-0/lib' >if test ! -d bootstrap/lib/kernel ; then mkdir bootstrap/lib/kernel ; fi >if test ! -d bootstrap/lib/kernel/ebin ; then mkdir >bootstrap/lib/kernel/ebin ; >fi >if test ! -d bootstrap/lib/kernel/include ; then mkdir >bootstrap/lib/kernel/include ; fi >cp lib/kernel/ebin/*.beam bootstrap/lib/kernel/ebin >cp lib/kernel/include/*.hrl bootstrap/lib/kernel/include >if test ! -d bootstrap/lib/hipe ; then mkdir bootstrap/lib/hipe ; fi >if test ! -d bootstrap/lib/hipe/ebin ; then mkdir >bootstrap/lib/hipe/ebin ; fi >if test -f lib/hipe/ebin/hipe.beam ; then cp lib/hipe/ebin/*.beam >bootstrap/lib/hipe/ebin; fi >if test ! -d bootstrap/lib/parsetools ; then mkdir >bootstrap/lib/parsetools ; fiif test ! -d bootstrap/lib/parsetools/ebin >; then mkdir bootstrap/lib/parsetools/ebin ; fi >if test ! -d bootstrap/lib/parsetools/include ; then mkdir >bootstrap/lib/parsetools/include ; fi >cp lib/parsetools/ebin/*.beam bootstrap/lib/parsetools/ebin >cp lib/parsetools/include/*.hrl bootstrap/lib/parsetools/include >if test ! -d bootstrap/lib/asn1 ; then mkdir bootstrap/lib/asn1 ; fi >if test ! -d bootstrap/lib/asn1/ebin ; then mkdir >bootstrap/lib/asn1/ebin ; fi >cp lib/asn1/ebin/*.beam bootstrap/lib/asn1/ebin >cd lib && \ > ERL_TOP=/usr/local/src/otp_src_R9B-0 >PATH=/usr/local/src/otp_src_R9B-0/bootstrap/bin:${PATH} \ > make opt TERTIARY_BOOTSTRAP=true >make[1]: Entering directory `/usr/local/src/otp_src_R9B-0/lib' >=== Skipping subdir snmp_dummy, it is missing >make[2]: Entering directory `/usr/local/src/otp_src_R9B-0/lib/snmp' >=== Entering application snmp >make[3]: Entering directory >`/usr/local/src/otp_src_R9B-0/lib/snmp/mc_dummy' >erlc -W -o ../src ../src/snmp_mib_gram.yrl >No function otp_ring0:start/2 >make[3]: *** [../src/snmp_mib_gram.erl] Aborted >make[3]: Leaving directory >`/usr/local/src/otp_src_R9B-0/lib/snmp/mc_dummy' >make[3]: Entering directory `/usr/local/src/otp_src_R9B-0/lib/snmp/mibs' >erlc -W -pa /usr/local/src/otp_src_R9B-0/lib/snmp/ebin -I >/usr/local/src/otp_src_R9B-0/lib/snmp/priv/mibs -o ../priv/mibs >RFC1213-MIB.mib >No function otp_ring0:start/2 >make[3]: *** [../priv/mibs/RFC1213-MIB.bin] Aborted >make[3]: Leaving directory `/usr/local/src/otp_src_R9B-0/lib/snmp/mibs' >make[3]: Entering directory `/usr/local/src/otp_src_R9B-0/lib/snmp/src' >erlc -W -bbeam +debug_info -I../include >+'{parse_transform,sys_pre_attributes}' >+'{attribute,insert,app_vsn,"snmp-3.3.8"}' >-I/usr/local/src/otp_src_R9B-0/lib/stdlib -Ddefault_verbosity=silence >-o../ebin snmp_acm.erl >./snmp_acm.erl:26: can't find include file "STANDARD-MIB.hrl" >./snmp_acm.erl:27: can't find include file "SNMP-FRAMEWORK-MIB.hrl" >./snmp_acm.erl:28: can't find include file "SNMPv2-TM.hrl" >./snmp_acm.erl:125: undefined macro 'snmpUDPDomain' >./snmp_acm.erl:186: undefined macro 'snmpEnableAuthenTraps_instance' >./snmp_acm.erl:94: function handle_authentication_failure/0 undefined >./snmp_acm.erl:88: function init_ca/2 undefined >make[3]: *** [../ebin/snmp_acm.beam] Error 1 >make[3]: Leaving directory `/usr/local/src/otp_src_R9B-0/lib/snmp/src' >make[3]: Entering directory >`/usr/local/src/otp_src_R9B-0/lib/snmp/examples' >make[3]: Nothing to be done for `opt'. >make[3]: Leaving directory >`/usr/local/src/otp_src_R9B-0/lib/snmp/examples' >make[3]: Entering directory >`/usr/local/src/otp_src_R9B-0/lib/snmp/priv/conf' >make[3]: Nothing to be done for `opt'. >make[3]: Leaving directory >`/usr/local/src/otp_src_R9B-0/lib/snmp/priv/conf' >=== Skipping subdir doc/src, it is missing >=== Leaving application snmp >make[2]: Leaving directory `/usr/local/src/otp_src_R9B-0/lib/snmp' >make[1]: Leaving directory `/usr/local/src/otp_src_R9B-0/lib' >if test ! -d bootstrap/lib/snmp ; then mkdir bootstrap/lib/snmp ; fi >if test ! -d bootstrap/lib/snmp/ebin ; then mkdir >bootstrap/lib/snmp/ebin ; fi >if test ! -d bootstrap/lib/snmp/include ; then mkdir >bootstrap/lib/snmp/include >; fi >cp lib/snmp/ebin/*.beam bootstrap/lib/snmp/ebin >cp: cannot stat `lib/snmp/ebin/*.beam': No such file or directory >gmake: *** [tertiary_bootstrap_copy] Error 1 > > > > > From klacke@REDACTED Mon Oct 21 10:39:43 2002 From: klacke@REDACTED (Klacke) Date: Mon, 21 Oct 2002 10:39:43 +0200 Subject: Redhat 8.0 In-Reply-To: <3DB04A27.90908@mobilearts.se>; from kristoffer.andersson@mobilearts.se on Fri, Oct 18, 2002 at 07:51:35PM +0200 References: <1034967721.24594.127.camel@berimbau> <3DB04A27.90908@mobilearts.se> Message-ID: <20021021103943.A1911@bluetail.com> On Fri, Oct 18, 2002 at 07:51:35PM +0200, Kristoffer Andersson wrote: > Hi Martin! > > Don't now if this is any help to you, but this is what I did to get R9 > to work on RH8. > > The problem I had with building R9 or R8B-2 on RH8 was the > Unicode(UTF-8) stuff, or at least I think that was the problem. There's a tremendous amount of software which doesn't work as expected (or rather as it used to do) due to this pretty radical change in rh8.0 I reverted to the old way alltogether in rh8.0 # cat /etc/sysconfig/i18n LANG="en_US.iso885915" SUPPORTED="en_US.iso885915:en_US.UTF-8:en_US:en:sv_SE.UTF-8:sv_SE:sv" SYSFONT="latarcyrheb-sun16" /klacke -- Claes Wikstrom -- Caps lock is nowhere and Alteon WebSystems -- everything is under control http://www.bluetail.com/~klacke cellphone: +46 70 2097763 From matthias@REDACTED Mon Oct 21 10:43:38 2002 From: matthias@REDACTED (Matthias Lang) Date: Mon, 21 Oct 2002 10:43:38 +0200 Subject: lies, damn lies and erlang memory use Message-ID: <15795.48698.892340.447137@antilipe.corelatus.se> mml> The underlying problem is that the Erlang VM appears to grow, slowly, mml> without apparent bound. As always, I have no idea why. mml> If I run the instrumented VM on it, it seems to show me rather more mml> holes than I expected Mats> if i add up erlang:system_info(allocated_areas), total heap memory Mats> ([process_info(P,memory)||P<-processes()]) and total ets memory Mats> ([ets:info(T,memory)||T<-ets:all()]) i get between 99% and 0% of Mats> what the os reports, depending on the history of the node. i would Mats> expect that the "holes" of matthias accounts for much (all?) of the Mats> rest. what do you get if you do that addition, matthias? we have Mats> tried many different mallocs, none has been outstanding. The odd thing is that I measured the memory use while hitting the node with requests; the 55% holes appeared to be steady-state. There are several levels of memory management involved; as far as I can tell, all combinations of slab allocator (+Sr2, +Sr1, -Se false) and malloc allocator (+m elib, +m libc) are reasonable. In our particular case, the defaults (+Sr1, +m libc) give us really awful memory use characteristics. Using +Sr2 +m libc works really well. Someone on the inside care to comment? Is there some gotcha with +Sr2---otherwise why isn't it the default? What do I mean by "good" and "awful"? Here's what the memory use looks like while running the system stress test on R8B-2: Elapsed time Memory use with: +Sr1 +Sr2 ------------------------------------------------------------ 0 5.8M 5.6M 1 minute 6.3M 6.2M 10 minutes 9.6M 6.2M 1 hour 13.8M 6.4M 5 hours (out-of-memory crash) 6.2M Matthias From hakan.stenholm@REDACTED Sun Oct 20 23:33:16 2002 From: hakan.stenholm@REDACTED (=?ISO-8859-1?Q?H=E5kan_Stenholm?=) Date: Sun, 20 Oct 2002 23:33:16 +0200 Subject: gs on MacOS X in R9B-0 Message-ID: <3DB3211C.7090605@mbox304.swipnet.se> Does this work ? If it does how does one go about to make it work ? The MacOS X tcl/tk version (at http://sourceforge.net/projects/tcl) does appear to differ in build / install process compared to linux/unix so I'm not all that sure how much help the README file in otp_src_R9B-0/lib/gs/tcl is. I tried to rename MacOSXTk8.4a4.tar.gz (the precompiled mac version) and put it at: otp_src_R9B-0/lib/gs/tcl/binaries/powerpc_darwin6.tar.gz as ./configure appears to assume, this works as far as allowing OTP to compile without error as as well as putting some stuff in otp_src_R9B-0/lib/gs/priv/Applications (wish) and otp_src_R9B-0/lib/gs/priv/Library (tcl and tk frameworks). I would guess that part of the problem is that the paths to the tcl/tk stuff isn't quite where a unix system would expect them. From svg@REDACTED Mon Oct 21 11:58:43 2002 From: svg@REDACTED (Vladimir Sekissov) Date: Mon, 21 Oct 2002 15:58:43 +0600 (YEKST) Subject: ANN: MLex-1.0 and Property_file-0.1 Message-ID: <20021021.155843.95879062.vladimir.sekissov@saburovo.com> Good day, I've just uploaded two modules to Erlang user contributions. Here are the small annotations. MLex-1.0 -------- MLex is a simple lexical scanner.It supports mostly all frequently used lex regexps, predictive operator, long (default) and short regexps. Property_file-0.1 ----------------- This is configuration files parser.It is property_lists module compliant and supports two popular configuration formats, Apache and C-like,property substitution and file inclusion. It works with Unix, DOS and Mac files. Comments and suggestions are very welcome. Best Regards, Vladimir Sekissov From Sean.Hinde@REDACTED Mon Oct 21 15:07:48 2002 From: Sean.Hinde@REDACTED (Sean Hinde) Date: Mon, 21 Oct 2002 14:07:48 +0100 Subject: gs on MacOS X in R9B-0 Message-ID: <04D356A3B172D611981B0008C791C3126BF471@imp02mbx.t-mobile.co.uk> > Does this work ? > If it does how does one go about to make it work ? > The MacOS X tcl/tk version (at > http://sourceforge.net/projects/tcl) does > appear to differ in build / install process compared to linux/unix so > I'm not all that sure how much help the README file in > otp_src_R9B-0/lib/gs/tcl is. > I tried to rename MacOSXTk8.4a4.tar.gz (the precompiled mac > version) and > put it at: > otp_src_R9B-0/lib/gs/tcl/binaries/powerpc_darwin6.tar.gz as > ./configure > appears to assume, this works as far as allowing OTP to > compile without > error as as well as putting some stuff in > otp_src_R9B-0/lib/gs/priv/Applications (wish) and > otp_src_R9B-0/lib/gs/priv/Library (tcl and tk frameworks). I > would guess > that part of the problem is that the paths to the tcl/tk stuff isn't > quite where a unix system would expect them. I had a go by making a link from /Applications/Wish Shell.app/Contents/Macos/Wish Shell to a more sane /usr/local/wish and gs did pick up the wish executable and open up the little window you get when running Wish Shell.app normally. gs couldn't communicate with the wish shell though - I read something somewhere about problems with stdin/out. fink also seem to be doing something with tcl/tk though I can't quite figure out whether this is Aqua or X11. They seem to be still "perfecting" their Jag suport so I haven't played with it much. 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 rickard.green@REDACTED Mon Oct 21 15:51:49 2002 From: rickard.green@REDACTED (Rickard Green) Date: Mon, 21 Oct 2002 15:51:49 +0200 Subject: lies, damn lies and erlang memory use References: <15795.48698.892340.447137@antilipe.corelatus.se> Message-ID: <3DB40675.C01FFA20@uab.ericsson.se> Matthias Lang wrote: > > mml> The underlying problem is that the Erlang VM appears to grow, slowly, > mml> without apparent bound. As always, I have no idea why. > mml> If I run the instrumented VM on it, it seems to show me rather more > mml> holes than I expected > > Mats> if i add up erlang:system_info(allocated_areas), total heap memory > Mats> ([process_info(P,memory)||P<-processes()]) and total ets memory > Mats> ([ets:info(T,memory)||T<-ets:all()]) i get between 99% and 0% of > Mats> what the os reports, depending on the history of the node. i would > Mats> expect that the "holes" of matthias accounts for much (all?) of the > Mats> rest. what do you get if you do that addition, matthias? we have > Mats> tried many different mallocs, none has been outstanding. > > The odd thing is that I measured the memory use while hitting the node > with requests; the 55% holes appeared to be steady-state. > > There are several levels of memory management involved; as far as I > can tell, all combinations of slab allocator (+Sr2, +Sr1, -Se false) > and malloc allocator (+m elib, +m libc) are reasonable. > > In our particular case, the defaults (+Sr1, +m libc) give us really > awful memory use characteristics. Using +Sr2 +m libc works really > well. > > Someone on the inside care to comment? Is there some gotcha with > +Sr2---otherwise why isn't it the default? > > What do I mean by "good" and "awful"? Here's what the memory use looks > like while running the system stress test on R8B-2: > > Elapsed time Memory use with: +Sr1 +Sr2 > ------------------------------------------------------------ > 0 5.8M 5.6M > 1 minute 6.3M 6.2M > 10 minutes 9.6M 6.2M > 1 hour 13.8M 6.4M > 5 hours (out-of-memory crash) 6.2M > > Matthias Hi, sl_alloc was introduced in order to address the same type of memory problems that you have experienced. The idea is to separate relatively short-lived memory blocks from more long-lived ones in order to reduce memory fragmentation and by this reduce the overall memory consumption (no of mapped pages). sl_alloc has the job of managing the short-lived blocks and malloc() the long-lived ones. * sl_alloc 1 (+Sr1) is very simple (and will be removed sometime the future). It places large blocks in separate (mmap()ped) memory segments (one block; one segment) and malloc()ate all other blocks. * sl_alloc 2 (+Sr2) places all blocks in separate (mmap()ped) memory segments. Small blocks coexist in "multiblock segments" and large blocks have their own memory segments. sl_alloc 2 is default in R9B. Today, mainly Erlang heaps and message buffers are classified as short-lived memory blocks and almost everything else as long-lived. For more info see the sl_alloc(3) man page. Regards, Rickard Green (Erlang/OTP) From rickard.green@REDACTED Mon Oct 21 15:52:03 2002 From: rickard.green@REDACTED (Rickard Green) Date: Mon, 21 Oct 2002 15:52:03 +0200 Subject: lies, damn lies and erlang memory use References: <15792.4217.454479.533764@antilipe.corelatus.se> Message-ID: <3DB40683.AA3D4061@uab.ericsson.se> Hi, Matthias Lang wrote: > > > (Yes, you detect my tone of doubt, which is provoked by there being > many different BIFs and things for reporting on Erlang memory use, but > it's not very obvious which ones refer to what. They also seem to lie > quite a bit, for instance: > > - c:memory(). > > Looks suspect; it's "total" is always much less than > the sum of the parts it reports, e.g. on x86 linux: > > Eshell V5.1.2 (abort with ^G) > 1> c:memory(). > [{total,2109082}, > {processes,181236}, > {system,1927846}, > {atom,180221}, > {atom_used,150362}, > {binary,96064}, > {code,1156376}, > {ets,72948}] > total = processes + system system = atom + binary + code + ets + atom = atom_used + = processes + = system + (things inside <> are not part of the result returned by c:memory()) See the c(3) man page. Note, c:memory() tries to give you an answer to how much memory the emulator have allocated which is not the same as the total size of all mapped pages. > > Regards, Rickard Green (Erlang/OTP) From jamesh@REDACTED Mon Oct 21 19:00:32 2002 From: jamesh@REDACTED (James Hague) Date: Mon, 21 Oct 2002 12:00:32 -0500 Subject: c:ls() bug? Message-ID: To see this, go into a directory with, say, 10 or more files and make sure the longest filename is exactly 15 characters. After typing ls() from the shell, the list of filenames is printed double-spaced. That is, there is an extra newline between each row. What appears to be happening is that when a line of output is reaches 80 characters, there's an implied newline as the cursor wraps to the next line. The same thing happens with both erl.exe and werl.exe running under Windows 2000. It's not like werl.exe can only display 80 columns, so it's a bit odd. The simple fix is to change this line in c.erl: ls_print(X, Width, Len) when Width + Len > 80 -> to this: ls_print(X, Width, Len) when Width + Len >= 80 -> which cuts the number of columns from 4 to three in this case. Is this a Windows specific problem or does it also occur elsewhere? From jamesh@REDACTED Mon Oct 21 20:57:58 2002 From: jamesh@REDACTED (James Hague) Date: Mon, 21 Oct 2002 13:57:58 -0500 Subject: werl.exe (Windows) bugs Message-ID: These bugs are not new, but since they have not been fixed for several releases now, I'm going to explicitly enumerate them. I could easily fix these if it were possible to compile under Windows. 1. The font is not changed to reflect the "Font" registry key. Load up werl.exe, change the font, then exit. Next time you run werl.exe you'll be back to the default font. It looks like this is because the font has already been initialized before the "Font" key is read, so the the new font is never enabled. A call to ConSetFont() would fix things up. 2. Copy (Ctrl+Ins) does not work. I haven't investigated why. While I'm at it, there are two enhancements that would be trivial to add: 1. Save the View -> Toolbar setting in a registry key. 2. Save the current window position and size in a registry key. Thanks for listening! Congratulations on the R9 release! From Jozsef.Berces@REDACTED Tue Oct 22 12:45:59 2002 From: Jozsef.Berces@REDACTED (Jozsef Berces (QCZ)) Date: Tue, 22 Oct 2002 12:45:59 +0200 Subject: zip, LZ77, etc. Message-ID: <9CC6CC2973F2D211B3580008C70DB2D2057088BF@eatvint903.dsa.ericsson.se> Hi, Is it possible to (un)compress something (binary, list) via an erlang function? Since gzipped files can be read and written zlib must be there, but how to access it from erlang? Thanks, Jozsef From etxuwig@REDACTED Tue Oct 22 13:14:36 2002 From: etxuwig@REDACTED (Ulf Wiger) Date: Tue, 22 Oct 2002 13:14:36 +0200 (MET DST) Subject: accomodations for EUC Message-ID: If any of you are still looking for an affordable hotel room in Stockholm for the EUC, I'd recommend Hotel Bema (Upplandsgatan 13, tfn: +46 8 232675). They seem to have vacancies around 17-19 Nov. They charge roughly 820SEK for a single room, and 990:- for a double room. This is cheap by Stockholm standards. So what's the catch? It's a small hotel (12 rooms). On the other hand, it's a five-minute walk away from the Central Station, so you'll be right in the middle of Stockholm, with tons of restaurants to choose from. You can get to EUC within 30 minutes from your hotel room. /Uffe (I don't get any kickbacks, nor have I stayed there myself. I got a room there once for a friend, and he was really pleased.) -- Ulf Wiger, Senior Specialist, / / / Architecture & Design of Carrier-Class Software / / / Strategic Product & System Management / / / Ericsson Telecom AB, ATM Multiservice Networks From david.wallin@REDACTED Tue Oct 22 17:39:23 2002 From: david.wallin@REDACTED (david wallin) Date: Tue, 22 Oct 2002 16:39:23 +0100 Subject: R9B and escript Message-ID: <1035301163.31753.286.camel@wintermute.csis.ul.ie> Hi all, I wrote a small escript that doesn't seem to work under R9B, it used to work fine with R8 and the escript version available from Joe Armstrongs webpage (www.sics.se/~joe/escript-4.1.tgz). The error message I get is : {boot_code_loader,opps1,{'$gen_call',{<0.0.0>,#Ref<0.0.0.11>},{add_paths,first,["/home/wallind/workarea/adhoc-ge/ebin","/home/wallind/workarea/bench/ebin","/home/wallind/workarea/aco-bnf/ebin"]}}} And the interesting part of the code is: main([File]) -> io:format("AdHOC domain: ~p\n", [File]), GE_EBIN="/home/wallind/workarea/adhoc-ge/ebin", BENCH_EBIN="/home/wallind/workarea/bench/ebin", BNF_EBIN="/home/wallind/workarea/aco-bnf/ebin", code:add_pathsa([GE_EBIN, BENCH_EBIN, BNF_EBIN]), adhoc_main:start(File), receive done -> ok end ; main(_) -> usage(). any ideas ? --david. From luke@REDACTED Tue Oct 22 17:45:11 2002 From: luke@REDACTED (Luke Gorrie) Date: 22 Oct 2002 17:45:11 +0200 Subject: zip, LZ77, etc. In-Reply-To: <9CC6CC2973F2D211B3580008C70DB2D2057088BF@eatvint903.dsa.ericsson.se> References: <9CC6CC2973F2D211B3580008C70DB2D2057088BF@eatvint903.dsa.ericsson.se> Message-ID: "Jozsef Berces (QCZ)" writes: > Hi, > > Is it possible to (un)compress something (binary, list) via an erlang > function? Since gzipped files can be read and written zlib must be > there, but how to access it from erlang? I don't know the exact usage off hand, but the 'ram_file' module does it. -Luke From Jozsef.Berces@REDACTED Tue Oct 22 17:43:23 2002 From: Jozsef.Berces@REDACTED (Jozsef Berces (QCZ)) Date: Tue, 22 Oct 2002 17:43:23 +0200 Subject: zip, LZ77, etc. Message-ID: <9CC6CC2973F2D211B3580008C70DB2D2057088C1@eatvint903.dsa.ericsson.se> I found that module but I did not see how it implemented the (de)compression. Thanks anyway, Jozsef -----Original Message----- From: Luke Gorrie [mailto:luke@REDACTED] Sent: Tuesday, October 22, 2002 17:45 To: Jozsef Berces (QCZ) Cc: erlang-questions@REDACTED Subject: Re: zip, LZ77, etc. "Jozsef Berces (QCZ)" writes: > Hi, > > Is it possible to (un)compress something (binary, list) via an erlang > function? Since gzipped files can be read and written zlib must be > there, but how to access it from erlang? I don't know the exact usage off hand, but the 'ram_file' module does it. -Luke From etxtopi@REDACTED Tue Oct 22 18:02:35 2002 From: etxtopi@REDACTED (Tomas Pihl) Date: Tue, 22 Oct 2002 18:02:35 +0200 Subject: HAVE_RES_GETHOSTBYNAME Message-ID: <3DB5769B.5000400@cbe.ericsson.se> Hi, For some reason this flag gets set on our Solaris 7 build-box without me finding which lib to include to get the symbol. Anyone? -- Tomas Pihl tomas.pihl@REDACTED From daniel.neri@REDACTED Tue Oct 22 20:53:18 2002 From: daniel.neri@REDACTED (Daniel =?iso-8859-1?q?N=E9ri?=) Date: 22 Oct 2002 18:53:18 +0000 Subject: zip, LZ77, etc. References: <9CC6CC2973F2D211B3580008C70DB2D2057088C1@eatvint903.dsa.ericsson.se> Message-ID: <87fzuy71b5.fsf@fnord.local.sigicom.com> "Jozsef Berces (QCZ)" writes: > I found that module but I did not see how it implemented the > (de)compression. Something like this seems to work: 9> {ok,F} = file:open("foo", [read,write,binary,ram]). {ok,{file_descriptor,ram_file,#Port<0.36>}} 10> file:write(F, string:copies("hello, world!", 100)). ok 11> {ok,Size} = ram_file:compress(F). {ok,44} 12> file:position(F, bof). {ok,0} 13> {ok,Compressed} = file:read(F, Size). {ok,<<31,139,8,0,0,0,0,0,0,3,203,72,205,201,201,215,81,40,207,47,202,73,81,204,24,229,140,...>>} 14> file:close(F). ok 15> size(Compressed). 44 Regards, --Daniel From kent@REDACTED Tue Oct 22 19:48:55 2002 From: kent@REDACTED (Kent Boortz) Date: 22 Oct 2002 19:48:55 +0200 Subject: gs on MacOS X in R9B-0 In-Reply-To: <04D356A3B172D611981B0008C791C3126BF471@imp02mbx.t-mobile.co.uk> References: <04D356A3B172D611981B0008C791C3126BF471@imp02mbx.t-mobile.co.uk> Message-ID: Sean Hinde writes: > > Does this work ? > > If it does how does one go about to make it work ? > > The MacOS X tcl/tk version (at > > http://sourceforge.net/projects/tcl) does > > appear to differ in build / install process compared to linux/unix so > > I'm not all that sure how much help the README file in > > otp_src_R9B-0/lib/gs/tcl is. > > I tried to rename MacOSXTk8.4a4.tar.gz (the precompiled mac > > version) and > > put it at: > > otp_src_R9B-0/lib/gs/tcl/binaries/powerpc_darwin6.tar.gz as > > ./configure > > appears to assume, this works as far as allowing OTP to > > compile without > > error as as well as putting some stuff in > > otp_src_R9B-0/lib/gs/priv/Applications (wish) and > > otp_src_R9B-0/lib/gs/priv/Library (tcl and tk frameworks). I > > would guess > > that part of the problem is that the paths to the tcl/tk stuff isn't > > quite where a unix system would expect them. > > I had a go by making a link from /Applications/Wish > Shell.app/Contents/Macos/Wish Shell to a more sane /usr/local/wish and gs > did pick up the wish executable and open up the little window you get when > running Wish Shell.app normally. gs couldn't communicate with the wish shell > though - I read something somewhere about problems with stdin/out. The 8.4.0 Tcl/Tk distribution has a but in the MacOS X code that break the usage of a pipe from Erlang to the wish program. I patched the source and does work. The CVS version has a fix for the problem but I haven't tried it yet. There is not support in GS for "the MacOS X way" of finding the executable yet so you need to create a link to athe wish executable as Sean suggests, kent From etxuwig@REDACTED Wed Oct 23 10:18:22 2002 From: etxuwig@REDACTED (Ulf Wiger) Date: Wed, 23 Oct 2002 10:18:22 +0200 (MET DST) Subject: accomodations for EUC In-Reply-To: Message-ID: On Tue, 22 Oct 2002, Ulf Wiger wrote: >If any of you are still looking for an affordable hotel >room in Stockholm for the EUC, I'd recommend Hotel Bema >(Upplandsgatan 13, tfn: +46 8 232675). They seem to have >vacancies around 17-19 Nov. ...or cheaper still, Hotel Formule 1 in H?gersten: 290 SEK/room, same price for 1, 2 or 3 persons. An additional 30 SEK/person for breakfast. Booking available on the web: http://www.hotelformule1.com/ (Enter "Stockholm" as the destination.) (There seems to be some common shower arrangement, and you may get a room overlooking the E4 freeway, but it's cheap... their web page calls this "simple and functional comfort") Finally, the information that's difficult to glean from a web search: Bus 161 from Telefonplan (some 300 m away from the Hotel) will take you to ?lvsj? in 10 minutes. The bus runs every 7-8 minutes in the morning. There is also a subway stop at Telefonplan (14 minutes travel time to the Central Station). This ends my mission as self-proclaimed travel agent. /Uffe -- Ulf Wiger, Senior Specialist, / / / Architecture & Design of Carrier-Class Software / / / Strategic Product & System Management / / / Ericsson Telecom AB, ATM Multiservice Networks From eleberg@REDACTED Wed Oct 23 10:28:18 2002 From: eleberg@REDACTED (Bengt Kleberg) Date: Wed, 23 Oct 2002 10:28:18 +0200 (MET DST) Subject: HAVE_RES_GETHOSTBYNAME Message-ID: <200210230828.g9N8SIr02608@cbe.ericsson.se> > For some reason this flag gets set on our Solaris 7 build-box without me > finding which lib to include to get the symbol. the RES_ bit is unknown to me, nor am i sure what symbol you are refering to. but gethostbyname() has the following man page entry (Solaris 7): Network Functions gethostbyname(3N) NAME gethostbyname, gethostbyname_r, gethostbyaddr, gethostbyaddr_r, gethostent, gethostent_r, sethostent, endhostent - get network host entry SYNOPSIS cc [ flag ... ] file ... -lnsl [ library ... ] #include struct hostent *gethostbyname(const char *name); this means that the library to include for gethostbyname() is nsl. bengt From etxtopi@REDACTED Wed Oct 23 10:50:51 2002 From: etxtopi@REDACTED (Tomas Pihl) Date: Wed, 23 Oct 2002 10:50:51 +0200 Subject: HAVE_RES_GETHOSTBYNAME References: <200210230828.g9N8SIr02608@cbe.ericsson.se> Message-ID: <3DB662EB.3020609@cbe.ericsson.se> Bengt Kleberg wrote: > the RES_ bit is unknown to me, nor am i sure what symbol you are refering to. > but gethostbyname() has the following man page entry (Solaris 7): > > this means that the library to include for gethostbyname() is nsl. I had nsl included but it didn't contain any res_gethostbyname(). After some nm'ing I found it in libresolv.so. -- Tomas Pihl tomas.pihl@REDACTED From fjburgos@REDACTED Wed Oct 23 11:59:37 2002 From: fjburgos@REDACTED (=?iso-8859-1?Q?Fco_Javier_Burgos_Maci=E1?=) Date: Wed, 23 Oct 2002 11:59:37 +0200 (CEST) Subject: GS and TK/ETK modules Message-ID: Hello, Erlang users. I usually use gs module to make graphic user interfaces in my aplications. I fond yesterday the tk and etk modules. I want to know if it is posible to draw lines using tk / etk modules in a canvas created with gs module. Thank you. /Burgos From bjorn@REDACTED Wed Oct 23 12:27:49 2002 From: bjorn@REDACTED (Bjorn Gustavsson) Date: 23 Oct 2002 12:27:49 +0200 Subject: werl.exe (Windows) bugs In-Reply-To: James Hague's message of "Mon, 21 Oct 2002 13:57:58 -0500" References: Message-ID: We hope to have the R10 release directly buildable on Windows. We are working on it. Fortunately Cygwin seems to work a lot better nowadays compared to when we tried it several years ago. /Bjorn James Hague writes: > These bugs are not new, but since they have not been fixed for several > releases now, I'm going to explicitly enumerate them. I could easily fix > these if it were possible to compile under Windows. > > 1. The font is not changed to reflect the "Font" registry key. > > Load up werl.exe, change the font, then exit. Next time you run werl.exe > you'll be back to the default font. It looks like this is because the font > has already been initialized before the "Font" key is read, so the the new > font is never enabled. A call to ConSetFont() would fix things up. > > 2. Copy (Ctrl+Ins) does not work. I haven't investigated why. > > > While I'm at it, there are two enhancements that would be trivial to add: > > 1. Save the View -> Toolbar setting in a registry key. > 2. Save the current window position and size in a registry key. > > > Thanks for listening! Congratulations on the R9 release! > -- Bj?rn Gustavsson Ericsson Utvecklings AB bjorn@REDACTED ?T2/UAB/F/P BOX 1505 +46 8 727 56 87 125 25 ?lvsj? From bjorn@REDACTED Wed Oct 23 12:38:39 2002 From: bjorn@REDACTED (Bjorn Gustavsson) Date: 23 Oct 2002 12:38:39 +0200 Subject: zip, LZ77, etc. In-Reply-To: Luke Gorrie's message of "22 Oct 2002 17:45:11 +0200" References: <9CC6CC2973F2D211B3580008C70DB2D2057088BF@eatvint903.dsa.ericsson.se> Message-ID: In addition, the file:open(Name, Options) allows you to passed the atom `compressed' in the Options list to have files be compressed/uncompressed when written/read. (Seems to be still undocumented in R9.) If you are interested in compressing Erlang terms, it can be done like this: term_to_binary(Term, [compressed]). (Documented!) binary_to_term/1 will automatically uncompress such a binary. /Bjorn Luke Gorrie writes: > "Jozsef Berces (QCZ)" writes: > > > Hi, > > > > Is it possible to (un)compress something (binary, list) via an erlang > > function? Since gzipped files can be read and written zlib must be > > there, but how to access it from erlang? > > I don't know the exact usage off hand, but the 'ram_file' module does > it. > > -Luke > -- Bj?rn Gustavsson Ericsson Utvecklings AB bjorn@REDACTED ?T2/UAB/F/P BOX 1505 +46 8 727 56 87 125 25 ?lvsj? From matthias@REDACTED Wed Oct 23 13:22:03 2002 From: matthias@REDACTED (Matthias Lang) Date: Wed, 23 Oct 2002 13:22:03 +0200 Subject: faq update Message-ID: <15798.34395.418522.78108@antilipe.corelatus.se> Hi, I'm going through the FAQ, mainly to update the links for R9. While I was at it I felt it was time to fix a question about FUNs. Any comments about this wording (or the facts!)? Do funs behave during a code change?<para> Yes and no. A function spawned via a fun can have its code changed and the old code can be purged without problems. <para> On the other hand, a bound fun will not be replaced. In the following example, the old verson of F is executed even after a code change: <screen> -module(cc). -export([go/0, loop/1]). go() -> F = fun() -> 5 end, spawn(fun() -> loop(F) end). loop(F) -> timer:sleep(1000), F(), cc:loop(F). </screen> This type of problem can be solved in the code_change/2 function in the standard behaviours. Matthias From fjburgos@REDACTED Wed Oct 23 14:11:37 2002 From: fjburgos@REDACTED (=?iso-8859-1?Q?Fco_Javier_Burgos_Maci=E1?=) Date: Wed, 23 Oct 2002 14:11:37 +0200 (CEST) Subject: GS and TK/ETK modules (2nd) In-Reply-To: <Pine.LNX.4.44.0210231155550.26497-100000@obelix.umh.es> Message-ID: <Pine.LNX.4.44.0210231407460.18423-100000@obelix.umh.es> On Wed, 23 Oct 2002, Fco Javier Burgos Maci? wrote: > Hello, Erlang users. > > I usually use gs module to make graphic user interfaces in my aplications. > > I fond yesterday the tk and etk modules. > > I want to know if it is posible to draw lines using tk / etk modules in a > canvas created with gs module. > > Thank you. > > /Burgos > I wil ask it better: How can I draw lines in a canvas without gs module? (it results to be slowly for my aplication. /Burgos From Sean.Hinde@REDACTED Wed Oct 23 14:40:10 2002 From: Sean.Hinde@REDACTED (Sean Hinde) Date: Wed, 23 Oct 2002 13:40:10 +0100 Subject: gs on MacOS X in R9B-0 Message-ID: <04D356A3B172D611981B0008C791C3126BF47E@imp02mbx.t-mobile.co.uk> > The 8.4.0 Tcl/Tk distribution has a but in the MacOS X code that break > the usage of a pipe from Erlang to the wish program. I patched the > source and does work. The CVS version has a fix for the problem but I > haven't tried it yet. > > There is not support in GS for "the MacOS X way" of finding the > executable yet so you need to create a link to athe wish executable as > Sean suggests, So, I downloaded the latest CVS sources last night and compiled them up this morning. And, what do you know - toolbar:start() produced a splendid Aqua rendition. Trouble now is that I can't make it active. Clicking in the toolbar window brings the error: SetFrontProcess failed,-606. A bit of digging reveals that -606 means appIsDaemon - "Application is background only". The docs for this Carbon routine say that SetFrontProcess() will not work if the process is a background-only application. So, next question. How do we make ourselves into a foreground application? Or failing that any other ideas? 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 david.wallin@REDACTED Wed Oct 23 16:12:43 2002 From: david.wallin@REDACTED (david wallin) Date: Wed, 23 Oct 2002 15:12:43 +0100 Subject: gs on MacOS X in R9B-0 In-Reply-To: <04D356A3B172D611981B0008C791C3126BF47E@imp02mbx.t-mobile.co.uk> References: <04D356A3B172D611981B0008C791C3126BF47E@imp02mbx.t-mobile.co.uk> Message-ID: <1035382363.31754.297.camel@wintermute.csis.ul.ie> On Wed, 2002-10-23 at 13:40, Sean Hinde wrote: > > The 8.4.0 Tcl/Tk distribution has a but in the MacOS X code that break > > the usage of a pipe from Erlang to the wish program. I patched the > > source and does work. The CVS version has a fix for the problem but I > > haven't tried it yet. > > > > There is not support in GS for "the MacOS X way" of finding the > > executable yet so you need to create a link to athe wish executable as > > Sean suggests, > > So, I downloaded the latest CVS sources last night and compiled them up this > morning. And, what do you know - toolbar:start() produced a splendid Aqua > rendition. > > Trouble now is that I can't make it active. Clicking in the toolbar window > brings the error: > > SetFrontProcess failed,-606. > > A bit of digging reveals that -606 means appIsDaemon - "Application is > background only". The docs for this Carbon routine say that > SetFrontProcess() will not work if the process is a background-only > application. > > So, next question. How do we make ourselves into a foreground application? > Or failing that any other ideas? > > Sean I think this has already been solved in the ESDL driver. Something like this should do the trick, but take a closer look in 'esdl_driver.c for the details. err = CPSGetCurrentProcess(&PSN); assert(!(err = CPSSetProcessName(&PSN,"ESDL"))); assert(!(err = CPSEnableForegroundOperation(&PSN,0x03,0x3C,0x2C,0x1103))); assert(!(err = CPSSetFrontProcess(&PSN))); --david. From matthias@REDACTED Wed Oct 23 18:04:14 2002 From: matthias@REDACTED (Matthias Lang) Date: Wed, 23 Oct 2002 18:04:14 +0200 Subject: PLI 2002 -- report from someone who was there? Message-ID: <15798.51326.899487.3739@antilipe.corelatus.se> Hi, there hasn't been a heap of discussion about the PLI conference. The program looks really interesting: 08.30 Registration Workshop I 09.00 Welcome / Introduction 09.10 The Great Type Hope, Invited Lecture Philip Wadler, Avaya Labs 10.00 Coffee break Workshop II 10.30 Hierarchical Module Namespaces in Erlang Richard Carlsson, Uppsala university 11.00 Native Code Compilation of Erlang's Bit Syntax Per Gustafsson and Konstantinos Sagonas, Uppsala university 11.30 Trace Analysis of Erlang Programs Thomas Arts, G?teborg IT university, and Lars-?ke Fredlund, SICS 12.00 World Class Product Certification Using Erlang G?sta Ask, Kent Boortz, and Ulf Wiger, Ericsson 12.30 Lunch Workshop III 14.00 The Evolution of Erlang Drivers and the Driver Writer's Toolkit Scott Lystig Fritchie, Snookles Music 14.30 OTP in Server Farms Michael Bruening, Martin Logan and Hal Snyder, Vail Systems 15.00 Global Scheduler Properties derived from Local Restrictions Thomas Arts, G?teborg IT university, and Juan Jos? S?nches Penas, LFCIA 15.30 Tea break Workshop IV 16.00 On Reducing Interprocess Communication Overhead in Concurrent Programs Erik Stenman and Konstantinos Sagonas, Uppsala university 16.30 Getting Erlang to talk to the Outside World Joe Armstrong, SICS 17.00 Discussion / Report from the Program Committee / Closing comments There are a bunch potentially interesting papers there. I can't find an online copy of the proceedings anywhere. Anyone know? Anyone who was there care to comment on how big the workshop was (how many people)? Matthias From etxuwig@REDACTED Wed Oct 23 18:42:51 2002 From: etxuwig@REDACTED (Ulf Wiger) Date: Wed, 23 Oct 2002 18:42:51 +0200 (MET DST) Subject: PLI 2002 -- report from someone who was there? In-Reply-To: <15798.51326.899487.3739@antilipe.corelatus.se> Message-ID: <Pine.GSO.4.44.0210231806260.26264-100000@cbe1066> On Wed, 23 Oct 2002, Matthias Lang wrote: >There are a bunch potentially interesting papers there. I >can't find an online copy of the proceedings anywhere. >Anyone know? Anyone who was there care to comment on how >big the workshop was (how many people)? The proceedings will hopefully appear sometime through ACM. At least that's the general idea. The workshop was quite good, even though the turnout was not exactly enormous (about 30 people, I think). I heard a rumour that some other workshops had bigger problems. I did peek into another lecture hall where lots of people sat listening to someone pontificating about software reuse. Oh well. Software reuse was covered summarily in our workshop by (I think) Martin Logan who stated that there's lots of it in Erlang/OTP. (-: Short summary: - Phil Wadler explained to us that God gave us static typing, but apparently not Erlang. However, God wants us to use functional languages, so we're probably sort of OK anyway. Phil also expressed great pride in being invited speaker at an Erlang workshop, since Erlang is _the_ most successful functional language in the world, and the one with the most millionaires (no one cared to explain Swedish tax laws to Phil -- God didn't give them to us, anyway.) Lots of theory, and lots of T-shirts coming off... well, you just had to be there. - Richard Carlsson talked about the new package concept. It's coming together, but I've come up with some more issues, to which I will return later. Nice talk. - Kostis explained about how Hipe may double the speed of Bit Syntax matching. Promising. - Thomas Arts gave a high-speed practical demo of his trace analysis program. Great stuff, I think, for those who want to visualize their Erlang programs in different ways. - I talked about testing with Erlang, and to my surprise, the auditorium didn't fall asleep. Must mean that people are actually using Erlang for some real stuff. (: - Scott Fritchie talked about the Erlang Driver Writer's Toolkit. This is really good stuff. Kenneth Lundin may have to stop telling people that it's unsafe to use linked-in drivers... - Hal Snyder and Martin Logan talked about Erlang use at Vail Systems. Same old story about how a small group of people are allowed to use Erlang to monitor and restart all those Java apps that can't stay up by themselves -- but have to fight to be allowed to tackle the really interesting stuff. Just kidding. Good presentation, down-to-earth, factual, success story. - Thomas Arts again, describing how they analysed some properties about a Video on Demand system, using verification techniques on actual Erlang code to determine dimensioning properties like number and size of disks, distribution of movies across disks, bandwith, etc. State of the art stuff, indeed. - Kostis offered some ideas on how to speed up inter-process communication in Erlang. The paper states the goal as being "to have truly lightweight processes where message passing is at least as efficient as method invocation in a modern object oriented language". Some interesting ideas, but nothing firm yet. Hope they succeed. - Joe Armstrong talked about how his protocol description and contract definition syntax does everything XML and WSDL does, and more, but much more beautifully. Always fun to listen to Joe, and I've already started playing with his new toy. Very interesting. http://www.sics.se/~joe/ubf/site/home.html - Closing comments, and a preliminary report on the questionnaire. Everyone seemed happy. /Uffe -- Ulf Wiger, Senior Specialist, / / / Architecture & Design of Carrier-Class Software / / / Strategic Product & System Management / / / Ericsson Telecom AB, ATM Multiservice Networks From francesco@REDACTED Wed Oct 23 20:02:40 2002 From: francesco@REDACTED (Francesco Cesarini) Date: Wed, 23 Oct 2002 19:02:40 +0100 Subject: PLI 2002 -- report from someone who was there? References: <Pine.GSO.4.44.0210231806260.26264-100000@cbe1066> Message-ID: <3DB6E440.1090304@erlang-consulting.com> Of all the EUCs I've been to, the quality of the presentations at PLI surpassed them all. A big thank you to all who presented and to every one else who made it happen. The papers should be stored in ACM's digital library at http://www.acm.org/dl/ Some papers are available here and there in various user's accounts and I will soon be putting what is available on http://dmoz.org, but don't hold your breath... Oh, and Ulf forgot to mention that we had plenty of good food and beer, and there in-between got a few culture points by visiting the odd art museum. Cheers, Francesco -- http://www.erlang-consulting.com Ulf Wiger wrote: >On Wed, 23 Oct 2002, Matthias Lang wrote: > >>There are a bunch potentially interesting papers there. I >>can't find an online copy of the proceedings anywhere. >>Anyone know? Anyone who was there care to comment on how >>big the workshop was (how many people)? >> > >The proceedings will hopefully appear sometime through ACM. >At least that's the general idea. > >The workshop was quite good, even though the turnout was not >exactly enormous (about 30 people, I think). I heard a >rumour that some other workshops had bigger problems. > >I did peek into another lecture hall where lots of people >sat listening to someone pontificating about software reuse. >Oh well. Software reuse was covered summarily in our >workshop by (I think) Martin Logan who stated that there's >lots of it in Erlang/OTP. (-: > >Short summary: > >- Phil Wadler explained to us that God gave us static > typing, but apparently not Erlang. However, God wants > us to use functional languages, so we're probably sort of > OK anyway. Phil also expressed great pride in being > invited speaker at an Erlang workshop, since Erlang is > _the_ most successful functional language in the world, > and the one with the most millionaires (no one cared to > explain Swedish tax laws to Phil -- God didn't give them > to us, anyway.) Lots of theory, and lots of T-shirts > coming off... well, you just had to be there. > >- Richard Carlsson talked about the new package concept. > It's coming together, but I've come up with some more > issues, to which I will return later. Nice talk. > >- Kostis explained about how Hipe may double the speed > of Bit Syntax matching. Promising. > >- Thomas Arts gave a high-speed practical demo of his > trace analysis program. Great stuff, I think, for > those who want to visualize their Erlang programs > in different ways. > >- I talked about testing with Erlang, and to my surprise, > the auditorium didn't fall asleep. Must mean that people > are actually using Erlang for some real stuff. (: > >- Scott Fritchie talked about the Erlang Driver Writer's > Toolkit. This is really good stuff. Kenneth Lundin may > have to stop telling people that it's unsafe to use > linked-in drivers... > >- Hal Snyder and Martin Logan talked about Erlang use at > Vail Systems. Same old story about how a small group > of people are allowed to use Erlang to monitor and > restart all those Java apps that can't stay up by > themselves -- but have to fight to be allowed to tackle > the really interesting stuff. Just kidding. Good > presentation, down-to-earth, factual, success story. > >- Thomas Arts again, describing how they analysed some > properties about a Video on Demand system, using > verification techniques on actual Erlang code to > determine dimensioning properties like number and > size of disks, distribution of movies across disks, > bandwith, etc. State of the art stuff, indeed. > >- Kostis offered some ideas on how to speed up > inter-process communication in Erlang. The paper > states the goal as being "to have truly lightweight > processes where message passing is at least as > efficient as method invocation in a modern object > oriented language". Some interesting ideas, but > nothing firm yet. Hope they succeed. > >- Joe Armstrong talked about how his protocol description > and contract definition syntax does everything XML > and WSDL does, and more, but much more beautifully. > Always fun to listen to Joe, and I've already started > playing with his new toy. Very interesting. > http://www.sics.se/~joe/ubf/site/home.html > >- Closing comments, and a preliminary report on the > questionnaire. Everyone seemed happy. > >/Uffe > From Sean.Hinde@REDACTED Wed Oct 23 21:15:51 2002 From: Sean.Hinde@REDACTED (Sean Hinde) Date: Wed, 23 Oct 2002 20:15:51 +0100 Subject: gs on MacOS X in R9B-0 Message-ID: <04D356A3B172D611981B0008C791C3126BF484@imp02mbx.t-mobile.co.uk> > > Or failing that any other ideas? > > I think this has already been solved in the ESDL driver. > Something like > this should do the trick, but take a closer look in 'esdl_driver.c for > the details. > > err = CPSGetCurrentProcess(&PSN); > assert(!(err = CPSSetProcessName(&PSN,"ESDL"))); > assert(!(err = > CPSEnableForegroundOperation(&PSN,0x03,0x3C,0x2C,0x1103))); > assert(!(err = CPSSetFrontProcess(&PSN))); Well I just hacked the extra lines into tkMacOSXMouseEvent.c and it works.. Trying to select a menuitem causes a gs crash but we're now in the foreground at least. All we need now is a groovy GS icon :) My diff to Tk follows - I cheated a bit by not including the whole CPS.h and assuming type compatibility of CPSProcessSerNum. Thanks again Sean --- macosx/tkMacOSXMouseEvent.c.orig Wed Oct 23 19:17:39 2002 +++ macosx/tkMacOSXMouseEvent.c Wed Oct 23 20:06:34 2002 @@ -59,6 +59,9 @@ #include "tkPort.h" #include "tkMacOSXDebug.h" +extern OSErr CPSSetProcessName ( ProcessSerialNumber *psn, char *processname); +extern OSErr CPSEnableForegroundOperation( ProcessSerialNumber *psn, UInt32 _arg2, UInt32 _arg3, UInt32 _arg4, UInt32 _arg5); + typedef struct { WindowRef whichWin; WindowRef activeNonFloating; @@ -250,7 +253,18 @@ return 1; } else { if (!flag) { - if ((err=SetFrontProcess(&ourPsn)) != noErr) { + if ((err=CPSSetProcessName(&ourPsn,"ESDL")) != noErr) { + fprintf(stderr, "CPSSetProcessName failed, %d\n", err); + statusPtr->err = 1; + return 1; + } + if ((err = CPSEnableForegroundOperation(&ourPsn,0x03,0x3C,0x2C,0x1103)) + != noErr) { + fprintf(stderr, "CPSEnableForegroundOperation failed, %d\n", err); + statusPtr->err = 1; + return 1; + } + if ((err=SetFrontProcess(&ourPsn)) != noErr) { fprintf(stderr,"SetFrontProcess failed,%d\n", err); statusPtr->err = 1; return 1; 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 Sean.Hinde@REDACTED Wed Oct 23 21:44:57 2002 From: Sean.Hinde@REDACTED (Sean Hinde) Date: Wed, 23 Oct 2002 20:44:57 +0100 Subject: gs on MacOS X in R9B-0 Message-ID: <04D356A3B172D611981B0008C791C3126BF486@imp02mbx.t-mobile.co.uk> Well. > My diff to Tk follows. CPSEnableForegroundOperation() returns err=1010 if subsequently another window is brought into the foreground and then the toolbar window clicked again. Ignoring the return value from this call does allow the gs window to be brought back into the foreground so (in the absence of any Apple documentation on the subject) my feeling is to simply assume that this call is successful :) Alternative patch follows. Sean --- macosx/tkMacOSXMouseEvent.c.orig Wed Oct 23 19:17:39 2002 +++ macosx/tkMacOSXMouseEvent.c Wed Oct 23 20:38:44 2002 @@ -59,6 +59,9 @@ #include "tkPort.h" #include "tkMacOSXDebug.h" +extern OSErr CPSSetProcessName ( ProcessSerialNumber *psn, char *processname); +extern OSErr CPSEnableForegroundOperation( ProcessSerialNumber *psn, UInt32 _arg2, UInt32 _arg3, UInt32 _arg4, UInt32 _arg5); + typedef struct { WindowRef whichWin; WindowRef activeNonFloating; @@ -250,7 +253,13 @@ return 1; } else { if (!flag) { - if ((err=SetFrontProcess(&ourPsn)) != noErr) { + if ((err=CPSSetProcessName(&ourPsn,"GS")) != noErr) { + fprintf(stderr, "CPSSetProcessName failed, %d\n", err); + statusPtr->err = 1; + return 1; + } + CPSEnableForegroundOperation(&ourPsn,0x03,0x3C,0x2C,0x1103); + if ((err=SetFrontProcess(&ourPsn)) != noErr) { fprintf(stderr,"SetFrontProcess failed,%d\n", err); statusPtr->err = 1; return 1; 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 fritchie@REDACTED Wed Oct 23 23:57:44 2002 From: fritchie@REDACTED (Scott Lystig Fritchie) Date: Wed, 23 Oct 2002 16:57:44 -0500 Subject: PLI 2002 -- report from someone who was there? In-Reply-To: Message of "Wed, 23 Oct 2002 18:42:51 +0200." <Pine.GSO.4.44.0210231806260.26264-100000@cbe1066> Message-ID: <200210232157.g9NLviF00549@snookles.snookles.com> >>>>> "uw" == Ulf Wiger <etxuwig@REDACTED> writes: uw> - Scott Fritchie talked about the Erlang Driver Writer's uw> Toolkit. This is really good stuff. Kenneth Lundin may have to uw> stop telling people that it's unsafe to use linked-in drivers... Depends on your definition of "unsafe". If you can't afford to have a single memory access or divide-by-zero bug take down the Erlang VM, then linked-in drivers aren't safe enough. However, an EDTK-generated driver can be used both as linked-in *and* pipe drivers. :-) I'm working on some serious documentation upgrades right now, including a tutorial. At the moment, most documentation is in the example drivers & regression tests. ("Read the Source, Luke!") Oh, yeah, and the Erlang workshop paper. The distro comes with drivers for: Berkeley DB 4.0.14, libnet, libpcap, and Spread I'm thinking a combination of Berkeley DB + Spread multi-cast messaging could create some nifty applications ... but I'm too busy using the GD library (PNG and JPEG image creation) as the basis for my tutorial writing. See http://www.snookles.com/erlang/edtk/. -Scott From achrist@REDACTED Wed Oct 23 22:47:39 2002 From: achrist@REDACTED (achrist@REDACTED) Date: Wed, 23 Oct 2002 13:47:39 -0700 Subject: werl.exe (Windows) bugs Message-ID: <3DB70AEB.37387BC4@easystreet.com> Bjorn wrote: > We hope to have the R10 release directly buildable on Windows. We are > working on it. Fortunately Cygwin seems to work a lot better nowadays > compared to when we tried it several years ago. Does this logically suggest propitious or auspicious implications for possible existence of SAE under Windows? Al From eleberg@REDACTED Thu Oct 24 10:26:36 2002 From: eleberg@REDACTED (Bengt Kleberg) Date: Thu, 24 Oct 2002 10:26:36 +0200 (MET DST) Subject: gs on MacOS X in R9B-0 Message-ID: <200210240826.g9O8Qar21392@cbe.ericsson.se> > Date: Wed, 23 Oct 2002 15:12:43 +0100 > From: david wallin <david.wallin@REDACTED> > Subject: RE: gs on MacOS X in R9B-0 ...deleted > I think this has already been solved in the ESDL driver. Something like > this should do the trick, but take a closer look in 'esdl_driver.c for > the details. > > err = CPSGetCurrentProcess(&PSN); > assert(!(err = CPSSetProcessName(&PSN,"ESDL"))); > assert(!(err = > CPSEnableForegroundOperation(&PSN,0x03,0x3C,0x2C,0x1103))); > assert(!(err = CPSSetFrontProcess(&PSN))); it used to be considered bad style to put things that should be done inside assert() statements. this might have changed. bengt From thierry.mallard@REDACTED Thu Oct 24 16:12:30 2002 From: thierry.mallard@REDACTED (Thierry Mallard) Date: Thu, 24 Oct 2002 16:12:30 +0200 Subject: [reminder] Erlang IRC channel Message-ID: <20021024141230.GD2536@hobbes.local.vawis.net> Greetings everyone, Just a quick reminder : there's an IRC channel dedicated to Erlang language. We use the OpenProjects network (irc.openprojects.net), on the #erlang channel. For those who may be new to IRC, you may have to find a good client first : * under win32, the most used one, i think is mIRC : www.mirc.com * Mozilla has a built-in IRC client called ChatZilla (http://www.mozilla.org/projects/rt-messaging/chatzilla/user-guide.html) * on Unix, you may look for Irssi, X-Chat, etc.. The basics command to connect to a channel are : /server irc.openprojects.net (to connect to the server itself) /nick YourNickName (to choose your name on this server) /join #erlang (to join us ;-) ) See you soon :-) With best regards, -- Thierry Mallard http://vawis.net From francesco@REDACTED Thu Oct 24 17:24:46 2002 From: francesco@REDACTED (Francesco Cesarini) Date: Thu, 24 Oct 2002 16:24:46 +0100 Subject: Influence of Remote Management Protocols in Large Scale SW Design. Message-ID: <3DB810BE.70006@erlang-consulting.com> I had posted this to c.l.f a few days ago, after which several friends & colleagues suggested I also email the list. Some of the material is a bit old (Talk about SNMP V2, etc) as it is based on work initiated in 1996, but the main concepts on large scale SW design, reusability and information encapsulation in Erlang are still valid, especially if you are running projects on the same scale as Ericsson does. As an anonymous Erlanger once said, 'it is all about common sense, the rest is just technology'. The same applies to what I wrote... From c.l.f: I thought my thesis might be of interest to some of you out there. It deals with how standardised management protocols such as Corba or SNMP influence the software architecture in large scale development projects using Erlang, and how this influence can be avoided and isolated. I go through examples of several large scale projects written in Erlang (Including the AXD301). The thesis is a bit old, as I took my time in handing it in (As we were implementing what I describe), but regardless is still relevant in the industry. If you have any questions or comments, feel free to ask. You can find an html and a pdf version it at http://www.erlang-consulting.com/erlangprotocols.html Francesco -- http://www.erlang-consulting.com From bjarne@REDACTED Fri Oct 25 10:17:17 2002 From: bjarne@REDACTED (Bjarne =?iso-8859-1?Q?D=E4cker?=) Date: Fri, 25 Oct 2002 10:17:17 +0200 Subject: Welcome to the Erlang/OTP User Conference 2002 !! References: <200210232157.g9NLviF00549@snookles.snookles.com> Message-ID: <3DB8FE0D.E7CBBA6C@erix.ericsson.se> All Erlang users, developers, enthusiasts and other interested parties are welcome to the Eighth International Erlang/OTP User Conference which will be held on Tuesday, November 19 in ?lvsj?, Stockholm, Sweden. Please see http://www.erlang.se/euc/02/ Welcome and see you in three weeks' time Bjarne D?cker From rprice@REDACTED Fri Oct 25 11:38:56 2002 From: rprice@REDACTED (Roger Price) Date: Fri, 25 Oct 2002 11:38:56 +0200 (CEST) Subject: Repeated use of io:fread fails Message-ID: <Pine.LNX.4.31.0210251115430.1738-100000@olive.home.net> I placed three integers into a file echo " 7 11 13" > /tmp/test and then tried to read the first two with the program f(File) -> {ok,Stream}=file:open(File,read), X=io:fread(Stream,'',"~d"), %% ...a comment... Y=io:fread(Stream,'',"~d"), file:close(Stream), io:format("X=~p. Y=~p.~n", [X,Y]) . but the result is 23> f("/tmp/test") . X={ok,[7]}. Y={error,fread}. ok I compiled with option 'native' using Erlang version R8B-1, hipe enabled. Is it illegal to make consecutive calls to io:fread? Best Regards, Roger From eleberg@REDACTED Fri Oct 25 12:10:12 2002 From: eleberg@REDACTED (Bengt Kleberg) Date: Fri, 25 Oct 2002 12:10:12 +0200 (MET DST) Subject: Repeated use of io:fread fails Message-ID: <200210251010.g9PAACr15026@cbe.ericsson.se> > X-Authentication-Warning: olive.home.net: rprice owned process doing -bs > Date: Fri, 25 Oct 2002 11:38:56 +0200 (CEST) > From: Roger Price <rprice@REDACTED> ...deelted > Is it illegal to make consecutive calls to io:fread? no solution, but another data item: removing the newline at the end of the file gives the following result: X={error,fread}. Y=eof. fread() input without newline seems to give {error,fread}. and fread() input with newline seems to always read until newline, discarding extra terms. bengt From joe@REDACTED Fri Oct 25 12:27:57 2002 From: joe@REDACTED (Joe Armstrong) Date: Fri, 25 Oct 2002 12:27:57 +0200 (CEST) Subject: erl -name XXX problem Message-ID: <Pine.LNX.4.44.0210251221360.31140-100000@enfield.sics.se> If I do erl -name joe My system bails out with a horrendous error message - the start of which is {error_logger,{{2002,10,25},{12,6,18}}, 'Can\'t set long node name!\nPlease check your configuration\n',[]} What do I have to do to fix this?? (Additional info R9B-0 + RedHat 7.2 "out of the box" erl -sname joe works fine) /Joe From luke@REDACTED Fri Oct 25 12:36:11 2002 From: luke@REDACTED (Luke Gorrie) Date: 25 Oct 2002 12:36:11 +0200 Subject: erl -name XXX problem In-Reply-To: <Pine.LNX.4.44.0210251221360.31140-100000@enfield.sics.se> References: <Pine.LNX.4.44.0210251221360.31140-100000@enfield.sics.se> Message-ID: <lhu1jahkkk.fsf@bluetail.com> Joe Armstrong <joe@REDACTED> writes: > If I do erl -name joe > > My system bails out with a horrendous error message - the start of which is > > {error_logger,{{2002,10,25},{12,6,18}}, > 'Can\'t set long node name!\nPlease check your configuration\n',[]} > > What do I have to do to fix this?? Sure I should be waiting for the experts, but :-) If you run "domainname" in the shell, does it print your domain? If not, you can do e.g. "domainname bluetail.com" (as root) to set it. If that diagnosis was right, I think the persistent fix is to put a line like "domain bluetail.com" at the top of /etc/resolv.conf (NB: 'erl -name joe' works on R9B on my machine) Cheers, Luke From joe@REDACTED Fri Oct 25 12:37:16 2002 From: joe@REDACTED (Joe Armstrong) Date: Fri, 25 Oct 2002 12:37:16 +0200 (CEST) Subject: erl -name ... Message-ID: <Pine.LNX.4.44.0210251231270.31140-100000@enfield.sics.se> Further investigation reveals that inet_db:res_option(domain) return [] At work where thins work inet_db:res_option(domain) returns sics.se The problem is that my machine at home has no domain only an IP address. It's also not known to DNS So I'd need my node at home to run with a node name like joe@REDACTED How can this be done? /Joe From hakan@REDACTED Fri Oct 25 12:56:27 2002 From: hakan@REDACTED (Hakan Mattsson) Date: Fri, 25 Oct 2002 12:56:27 +0200 (MEST) Subject: erl -name ... In-Reply-To: <Pine.LNX.4.44.0210251231270.31140-100000@enfield.sics.se> Message-ID: <Pine.GSO.4.10.10210251255240.2121-100000@boddington> On Fri, 25 Oct 2002, Joe Armstrong wrote: joe> So I'd need my node at home to run with a node name like joe> joe> joe@REDACTED joe> joe> How can this be done? Try: % erl -name hakan@REDACTED Erlang (BEAM) emulator version 2002.10.08 [source] Eshell V2002.10.08 (abort with ^G) (hakan@REDACTED)1> node(). 'hakan@REDACTED' (hakan@REDACTED)2> /H?kan From tobbe@REDACTED Fri Oct 25 13:06:02 2002 From: tobbe@REDACTED (Torbjorn Tornkvist) Date: Fri, 25 Oct 2002 13:06:02 +0200 Subject: Record the EUC on video ? Message-ID: <3DB9259A.3060505@bluetail.com> This just came up on the #erlang channel. Wouldn't it be nice to record the EUC this year on video, and then put the recording (e.g in mpeg4 format) on the Web for people to download ? Bjarne: what do you think ? Cheers /Tobbe From matthias@REDACTED Fri Oct 25 13:33:48 2002 From: matthias@REDACTED (Matthias Lang) Date: Fri, 25 Oct 2002 13:33:48 +0200 Subject: Repeated use of io:fread fails In-Reply-To: <Pine.LNX.4.31.0210251115430.1738-100000@olive.home.net> References: <Pine.LNX.4.31.0210251115430.1738-100000@olive.home.net> Message-ID: <15801.11292.265478.899037@antilipe.corelatus.se> Roger Price writes: > I placed three integers into a file > > echo " 7 11 13" > /tmp/test > > and then tried to read the first two with the program > > f(File) -> {ok,Stream}=file:open(File,read), > X=io:fread(Stream,'',"~d"), > %% ...a comment... > Y=io:fread(Stream,'',"~d"), > file:close(Stream), > io:format("X=~p. Y=~p.~n", [X,Y]) . > > but the result is > > 23> f("/tmp/test") . > X={ok,[7]}. Y={error,fread}. > ok This looks like a bug in file_io_server.erl. Specifically, get_until_loop/5 seems to insist on reading more input from the file even when it has old input it hasn't consumed yet. There doesn't appear to be a clause to consume the buffered input. Suggested workaround for your problem: f() -> f("/tmp/test"). f(File) -> {ok,Stream}=file:open(File, [read]), Line = io:get_line(Stream, ""), {ok, [X], More} = io_lib:fread("~d", Line), %% ...a comment... {ok, [Y], _} = io_lib:fread("~d", More), file:close(Stream), {X, Y}. Aside: your calls to file:open and io:fread both contain type errors. '' is an atom, not a list. Matthias From joe@REDACTED Fri Oct 25 13:46:16 2002 From: joe@REDACTED (Joe Armstrong) Date: Fri, 25 Oct 2002 13:46:16 +0200 (CEST) Subject: Which ports does distributed Erlang use? In-Reply-To: <Pine.GSO.4.10.10210251255240.2121-100000@boddington> Message-ID: <Pine.LNX.4.44.0210251341480.31140-100000@enfield.sics.se> Next Problem, At home I'm sat behind a netgear RT314 natting router which blocks virtually all incoming requests. Which port(s) do I have to open so that I can get Erlang distribution working? /Joe From Sean.Hinde@REDACTED Fri Oct 25 14:03:04 2002 From: Sean.Hinde@REDACTED (Sean Hinde) Date: Fri, 25 Oct 2002 13:03:04 +0100 Subject: Which ports does distributed Erlang use? Message-ID: <04D356A3B172D611981B0008C791C3126BF49A@imp02mbx.t-mobile.co.uk> > Next Problem, > > At home I'm sat behind a netgear RT314 natting router which blocks > virtually all incoming requests. > > Which port(s) do I have to open so that I can get Erlang > distribution > working? Incoming requests to epmd use port 4369. Until recently the subsequent connection to the node used a random port but there is now the possibility to configure the ports using some kernel parameters - inet_dist_listen_min and inet_dist_listen_max. e.g. erl -name sean -kernel inet_dist_listen_min 4711 inet_dist_listen_max 4720 will allow you to have 10 nodes listening. 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 joe@REDACTED Fri Oct 25 14:11:26 2002 From: joe@REDACTED (Joe Armstrong) Date: Fri, 25 Oct 2002 14:11:26 +0200 (CEST) Subject: Which ports does distributed Erlang use? In-Reply-To: <04D356A3B172D611981B0008C791C3126BF49A@imp02mbx.t-mobile.co.uk> Message-ID: <Pine.LNX.4.44.0210251406050.31140-100000@enfield.sics.se> Outch, ooohhh nasty. My netgear box has a load of "filter rules" one per open port. Opening a port is no mean feat and involves a lot of squiggeling around in a lot of incomprehensible menus. It also likes fixed ports. Has anybody hacked the erlang distribution kernal to use ONE fixed port. I can imagine proxying through epmd (or something) - alternatively in the (common) case that I only fire up one distributed erlang then I'd like this to be on a fixed port. Has anybody got distributed Erlang running behind an RT314 and talking to erlangs in the big wide world??? /Joe > > > Next Problem, > > > > At home I'm sat behind a netgear RT314 natting router which blocks > > virtually all incoming requests. > > > > Which port(s) do I have to open so that I can get Erlang > > distribution > > working? > > Incoming requests to epmd use port 4369. Until recently the subsequent > connection to the node used a random port but there is now the possibility > to configure the ports using some kernel parameters - inet_dist_listen_min > and inet_dist_listen_max. > > e.g. erl -name sean -kernel inet_dist_listen_min 4711 inet_dist_listen_max > 4720 will allow you to have 10 nodes listening. > > Sean > > From Sean.Hinde@REDACTED Fri Oct 25 14:17:15 2002 From: Sean.Hinde@REDACTED (Sean Hinde) Date: Fri, 25 Oct 2002 13:17:15 +0100 Subject: Which ports does distributed Erlang use? Message-ID: <04D356A3B172D611981B0008C791C3126BF49B@imp02mbx.t-mobile.co.uk> > Outch, ooohhh nasty. > > My netgear box has a load of "filter rules" one per open port. > > Opening a port is no mean feat and involves a lot of squiggeling > around in a lot of incomprehensible menus. It also likes fixed ports. > > Has anybody hacked the erlang distribution kernal to use ONE fixed > port. You can reduce this to two ports with erl -name sean -kernel inet_dist_listen_min 4711 net_dist_listen_max 4711 therefore only twice the hassle.. 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 matthias@REDACTED Wed Oct 23 11:10:00 2002 From: matthias@REDACTED (Matthias Lang) Date: Wed, 23 Oct 2002 11:10:00 +0200 Subject: accomodations for EUC In-Reply-To: <Pine.GSO.4.44.0210230956110.26264-100000@cbe1066> References: <Pine.GSO.4.44.0210221302080.25063-100000@cbe1066> <Pine.GSO.4.44.0210230956110.26264-100000@cbe1066> Message-ID: <15798.26472.269977.522359@antilipe.corelatus.se> Ulf Wiger writes: > I'd recommend Hotel Bema (Upplandsgatan 13, tfn: +46 8 232675). > They seem to have vacancies around 17-19 Nov. (820kr) [...] > ...or cheaper still, Hotel Formule 1 in H?gersten (290 kr) To add a bit of perspective: Upplandsgatan is in a nice part of the city. You're within walking distance of lots of things (pubs, subway, central station, Corelatus' office, the place they hand out Nobel prizes). H?gersten and ?lvsj? are fairly bleak, lifeless suburbs, especially in November. But they both have excellent public transport. ?lvsj? is on the commuter train line and there's a train every 10 or 15 minutes during the day; it's just two stations in to town. H?gersten is on the subway line. Probably takes about 15-20 minutes to get in to town once you're on the train. H?gersten is actually quite close to ?lvsj?; it's about 1000m the way the crow flies, though the bus takes a somewhat more roundabout way between the two. Maybe nobody is interested in all this rambling about hotels in Stockholm, so I'll just conclude by pointing out that the 500kr price difference is about 10 beers. ;-) Matthias From eleberg@REDACTED Fri Oct 25 14:24:18 2002 From: eleberg@REDACTED (Bengt Kleberg) Date: Fri, 25 Oct 2002 14:24:18 +0200 (MET DST) Subject: Which ports does distributed Erlang use? Message-ID: <200210251224.g9PCOIr25233@cbe.ericsson.se> > X-Authentication-Warning: enfield.sics.se: joe owned process doing -bs > Date: Fri, 25 Oct 2002 14:11:26 +0200 (CEST) > From: Joe Armstrong <joe@REDACTED> ...deleted > Has anybody hacked the erlang distribution kernal to use ONE fixed > port. should not erl -name <name> -kernel inet_dist_listen_min 4711 inet_dist_listen_max 4711 allow you to have only 1 fixed port? bengt From mickael.remond@REDACTED Fri Oct 25 14:25:32 2002 From: mickael.remond@REDACTED (Mickael Remond) Date: Fri, 25 Oct 2002 14:25:32 +0200 Subject: Which ports does distributed Erlang use? In-Reply-To: <Pine.LNX.4.44.0210251341480.31140-100000@enfield.sics.se> References: <Pine.LNX.4.44.0210251341480.31140-100000@enfield.sics.se> Message-ID: <1035548732.3db9383c4031e@webmail.spamcop.net> Joe Armstrong <joe@REDACTED>: > > Next Problem, > > At home I'm sat behind a netgear RT314 natting router which blocks > virtually all incoming requests. > > Which port(s) do I have to open so that I can get Erlang distribution > working? Here is a message relating to the problem. http://www.erlang.org/ml-archive/erlang-questions/200105/msg00089.html It seems that althought epmd uses the 4369 port, it is not the only one involved in the internode communication. I think that node are communicating through another port which is not always the same. -- Micka?l R?mond From luke@REDACTED Fri Oct 25 14:27:40 2002 From: luke@REDACTED (Luke Gorrie) Date: 25 Oct 2002 14:27:40 +0200 Subject: Which ports does distributed Erlang use? In-Reply-To: <Pine.LNX.4.44.0210251406050.31140-100000@enfield.sics.se> References: <Pine.LNX.4.44.0210251406050.31140-100000@enfield.sics.se> Message-ID: <lhd6pyhfer.fsf@bluetail.com> Joe Armstrong <joe@REDACTED> writes: > Outch, ooohhh nasty. > > My netgear box has a load of "filter rules" one per open port. > > Opening a port is no mean feat and involves a lot of squiggeling > around in a lot of incomprehensible menus. It also likes fixed ports. > > Has anybody hacked the erlang distribution kernal to use ONE fixed > port. Setting min and max to the same value works. Also, it tries the lowest value first, then increments, so if you just set a minimum then you'll always get that port if it's free. See inet_tcp_dist.erl's do_listen. NB - these options do seem to need a pretty recent Erlang. Works for me in R9 but not R8B-1. Cheers, Luke From Sean.Hinde@REDACTED Fri Oct 25 14:29:36 2002 From: Sean.Hinde@REDACTED (Sean Hinde) Date: Fri, 25 Oct 2002 13:29:36 +0100 Subject: Which ports does distributed Erlang use? Message-ID: <04D356A3B172D611981B0008C791C3126BF49C@imp02mbx.t-mobile.co.uk> > should not > erl -name <name> -kernel inet_dist_listen_min 4711 > inet_dist_listen_max 4711 > allow you to have only 1 fixed port? Plus the epmd port.. 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 DANIESC.SCHUTTE@REDACTED Fri Oct 25 15:07:51 2002 From: DANIESC.SCHUTTE@REDACTED (DANIESC SCHUTTE) Date: Fri, 25 Oct 2002 15:07:51 +0200 Subject: Distributed Erlang Message-ID: <sdb95e59.072@mail.tebabank.com> Hi all I have two nodes that need to communicate with each other. I use the same cookie for both nodes, but I keep on getting ** Connection attempt form dissalowed node I have used the net_kernel:allow([ ... ]) command and got an ok resposne. Where am I going wrong? 1 x box = Solaris 8 Sparc 1 x box = Win XP Danie Schutte Phone: +27 - 11 - 203 - 1614 Mobile: 083-268-3138 e-Mail: Daniesc@REDACTED ##################################################################################### The information contained in this message and or attachments is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any system and destroy and copies. ##################################################################################### From erlang@REDACTED Fri Oct 25 15:21:13 2002 From: erlang@REDACTED (Peter-Henry Mander) Date: Fri, 25 Oct 2002 14:21:13 +0100 Subject: erl -name XXX problem References: <Pine.LNX.4.44.0210251221360.31140-100000@enfield.sics.se> <lhu1jahkkk.fsf@bluetail.com> Message-ID: <3DB94549.8020502@manderp.freeserve.co.uk> Hi Joe, May I also add (because I had the same problem) that the $HOME/.erlang.cookie file in your home directory needs to be copied to the machines you wish to communicate with in order to authenicate the commincating nodes. I have read in one mailing that you can achieve the same result with erl -cookie <cookie_string>, but it is less secure. c.f. http://www.erlang.org/ml-archive/erlang-questions/200108/msg00016.html and http://www.erlang.org/doc/r8b/lib/kernel-2.7.3/doc/html/auth.html (which erroneously refers to $HOME/erlang.cookie without a dot prefix) The default behavior is to create an arbitrarily random .erlang.cookie file, which will prevent nodes from authorising communication. Pete. Luke Gorrie wrote: >Joe Armstrong <joe@REDACTED> writes: > > > >> If I do erl -name joe >> >> My system bails out with a horrendous error message - the start of which is >> >>{error_logger,{{2002,10,25},{12,6,18}}, >> 'Can\'t set long node name!\nPlease check your configuration\n',[]} >> >> What do I have to do to fix this?? >> >> > >Sure I should be waiting for the experts, but :-) > >If you run "domainname" in the shell, does it print your domain? If >not, you can do e.g. "domainname bluetail.com" (as root) to set it. > >If that diagnosis was right, I think the persistent fix is to put a >line like "domain bluetail.com" at the top of /etc/resolv.conf > >(NB: 'erl -name joe' works on R9B on my machine) > >Cheers, >Luke > > > > > From Sean.Hinde@REDACTED Fri Oct 25 15:27:27 2002 From: Sean.Hinde@REDACTED (Sean Hinde) Date: Fri, 25 Oct 2002 14:27:27 +0100 Subject: Distributed Erlang Message-ID: <04D356A3B172D611981B0008C791C3126BF4A1@imp02mbx.t-mobile.co.uk> > I have two nodes that need to communicate with each other. I > use the same cookie for both nodes, but I keep on getting > > ** Connection attempt form dissalowed node I've only ever seen this behaviour when the cookies have not been set properly. How are you setting them? You can double check using erlang:get_cookie(). and change the cookie with erlang:set_cookie(node(), cookie) (both in the erlang module hiding (err, documented) under the kernel application). If that all doesn't work then I'd suspect something pretty horrible 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 matthias@REDACTED Fri Oct 25 15:51:53 2002 From: matthias@REDACTED (Matthias Lang) Date: Fri, 25 Oct 2002 15:51:53 +0200 Subject: Distributed Erlang In-Reply-To: <sdb95e59.072@mail.tebabank.com> References: <sdb95e59.072@mail.tebabank.com> Message-ID: <15801.19577.787906.439800@antilipe.corelatus.se> DANIESC SCHUTTE writes: > Hi all > > I have two nodes that need to communicate with each other. I use the same cookie for both nodes, but I keep on getting > > ** Connection attempt form dissalowed node > > I have used the net_kernel:allow([ ... ]) command and got an ok resposne. Where am I going wrong? > > > 1 x box = Solaris 8 Sparc > 1 x box = Win XP Can you get two nodes on the same machine to talk to each other? e.g. do something like in one xterm: matthias >erl -sname a Erlang (BEAM) emulator version 5.1.2 [source] Eshell V5.1.2 (abort with ^G) (a@REDACTED)1> in another: matthias >erl -sname b Erlang (BEAM) emulator version 5.1.2 [source] Eshell V5.1.2 (abort with ^G) (b@REDACTED)1> net:ping(a@REDACTED). pong (b@REDACTED)2> Rnet:ping(a@REDACTED). If that works, but inter-machine distribution doesn't, make sure your DNS is working. Especially on the Windows machine. Matthias From daniel.neri@REDACTED Fri Oct 25 16:30:25 2002 From: daniel.neri@REDACTED (Daniel =?iso-8859-1?q?N=E9ri?=) Date: 25 Oct 2002 14:30:25 +0000 Subject: Which ports does distributed Erlang use? References: <04D356A3B172D611981B0008C791C3126BF49B@imp02mbx.t-mobile.co.uk> Message-ID: <873cqu7fr2.fsf@fnord.local.sigicom.com> Sean Hinde <Sean.Hinde@REDACTED> writes: > You can reduce this to two ports with > > erl -name sean -kernel inet_dist_listen_min 4711 net_dist_listen_max 4711 > > therefore only twice the hassle.. Actually, you can leave out inet_dist_listen_max in this case. Regards, --Daniel From etxmacr@REDACTED Fri Oct 25 14:40:34 2002 From: etxmacr@REDACTED (Mats Cronqvist) Date: Fri, 25 Oct 2002 14:40:34 +0200 Subject: etk Message-ID: <200210251240.g9PCeY516449@cbe1030.al.sw.ericsson.se> what's the status of etk these days? mats From daniel.neri@REDACTED Fri Oct 25 16:21:48 2002 From: daniel.neri@REDACTED (Daniel =?iso-8859-1?q?N=E9ri?=) Date: 25 Oct 2002 14:21:48 +0000 Subject: Which ports does distributed Erlang use? References: <Pine.GSO.4.10.10210251255240.2121-100000@boddington> <Pine.LNX.4.44.0210251341480.31140-100000@enfield.sics.se> Message-ID: <877kg67g5f.fsf@fnord.local.sigicom.com> Joe Armstrong <joe@REDACTED> writes: > Which port(s) do I have to open so that I can get Erlang > distribution working? epmd listens on port 4369. net_kernel listens on a dynamically allocated port by default, but you can limit the range using the inet_dist_listen_min and inet_dist_listen_max kernel configuration parameters (undocumented?). See $ERL_TOP/lib/kernel/src/inet_tcp_dist.erl. Regards, --Daniel From adam.aquilon@REDACTED Fri Oct 25 14:15:38 2002 From: adam.aquilon@REDACTED (Adam Aquilon) Date: Fri, 25 Oct 2002 14:15:38 +0200 Subject: Which ports does distributed Erlang use? References: <Pine.LNX.4.44.0210251341480.31140-100000@enfield.sics.se> Message-ID: <3DB935EA.9000601@cellpoint.se> Joe Armstrong wrote: > Next Problem, > > At home I'm sat behind a netgear RT314 natting router which blocks > virtually all incoming requests. > > Which port(s) do I have to open so that I can get Erlang distribution > working? I'm not sure about this, but my understanding is that the port mapper (epmd) uses port 4369, but that doesn't really help since TCP connections between nodes use random port numbers (port "0" in calls to the OS). This makes it kind of difficult to use distributed erlang through firewalls... Adam Aquilon From Chandrashekhar.Mullaparthi@REDACTED Fri Oct 25 13:53:08 2002 From: Chandrashekhar.Mullaparthi@REDACTED (Chandrashekhar Mullaparthi) Date: Fri, 25 Oct 2002 12:53:08 +0100 Subject: Which ports does distributed Erlang use? Message-ID: <04D356A3B172D611981B0008C791C312404D2E@imp02mbx.t-mobile.co.uk> 4369 for epmd and then if you are using R9 you can specify a range of ports(or a single port) for the individual nodes to listen on as a kernel config parameter, and open those ports in your firewall. Chandru -----Original Message----- From: Joe Armstrong [mailto:joe@REDACTED] Sent: 25 October 2002 12:46 To: erlang-questions@REDACTED Subject: Which ports does distributed Erlang use? Next Problem, At home I'm sat behind a netgear RT314 natting router which blocks virtually all incoming requests. Which port(s) do I have to open so that I can get Erlang distribution working? /Joe 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 mikael.karlsson@REDACTED Fri Oct 25 20:05:12 2002 From: mikael.karlsson@REDACTED (Mikael Karlsson) Date: Fri, 25 Oct 2002 20:05:12 +0200 Subject: yaws + xmerl -> On the fly XSLT lookalike transforms in Erlang In-Reply-To: <200209161154.39439.mikael.karlsson@creado.com> References: <Pine.GSO.4.44.0209160917570.28396-100000@cbe1066> <200209161154.39439.mikael.karlsson@creado.com> Message-ID: <200210252005.12246.mikael.karlsson@creado.com> Hi, I implemented a small set of functions that makes it possible to write XSLT "lookalike" (a can't find a better word) transforms in Erlang. They actually uses xmerl and just adds "syntactic sugar" to make the Erlang "stylesheets" look more like XSLT stylesheets. I have been able to use this in yaws scripts and perform transformations directly upon http GET requests. Check http://213.64.169.138:8001/ for examples. NOTE, my IP is dynamically set by dhcp from my ISP so I can not promise it will last so many days. But it will do until I get a fixed one for the examples. Below is the xserl.erl module that collects all the functions. Cheers Mikael %%% File : xserl.erl %%% Author : Mikael Karlsson %%% Description : XSLT lookalike transformation in Erlang %%% %%% -module(xserl). -vsn('0.1'). -date('02-10-18'). -author('mikael.karlsson@REDACTED'). -export([xslapply/2, value_of/1, select/2, built_in_rules/2 ]). -export([mapxml/2, foldxml/3, mapfoldxml/3]). -include("xmerl.hrl"). %% Wrapper to make things look similar to xsl:apply-templates %% I am actually a bit reluctant to use this function, since %% when you want to look like xslt you actually hide away how %% simple it is to implement in Erlang. Including some %% performance loss. xslapply(Fun, EList) when list(EList) -> lists:map( Fun, EList); xslapply(Fun, E = #xmlElement{})-> lists:map( Fun, E#xmlElement.content). %% value_of concatenates all text nodes within the tree value_of(E)-> lists:reverse(foldxml(fun value_of1/2, [], E)). value_of1(#xmlText{}=T1, Accu)-> [T1#xmlText.value|Accu]; value_of1(E, Accu) -> Accu. %% xmerl_xpath does the job. select(Str,E)-> xmerl_xpath:string(Str,E). %% The default fallback behaviour, template funs should %% end with: %% template(E)->built_in_rules(fun template/1, E). built_in_rules(Fun, E = #xmlElement{})-> lists:map(Fun, E#xmlElement.content); built_in_rules(Fun, E = #xmlText{}) -> E#xmlText.value; built_in_rules(Fun, E = #xmlAttribute{}) -> E#xmlAttribute.value; built_in_rules(Fun, E) ->[]. %%% -------------------- Utilities ------------------------- %%% funs working on the xmerl tree %%% %% mapxml %% Fun is fun(Old#xmlElement) -> New#xmlElement mapxml(Fun, #xmlElement{}= E) -> C1 = Fun(E), C2 = mapxml(Fun,lists:flatten(C1#xmlElement.content)), C1#xmlElement{content=C2}; mapxml(Fun, List) when list(List) -> AFun = fun(E) -> mapxml(Fun, E) end, lists:map(AFun, List); mapxml(Fun, E) -> Fun(E). %% foldxml %% Fun is fun(#xmlElement, OldAccu) -> NewAccu foldxml(Fun, Accu0, #xmlElement{content=C}=E) -> Accu1 = Fun(E, Accu0), foldxml(Fun, Accu1, C); foldxml(Fun, Accu, List) when list(List) -> AFun = fun(E,A) -> foldxml(Fun, A, E) end, lists:foldl(AFun, Accu, List); foldxml(Fun, Accu, E) -> Fun(E, Accu). %% mapfoldxml %% Fun is fun(Old#xmlElement, OldAccu) -> {New#xmlElement, NewAccu} mapfoldxml(Fun, Accu0, #xmlElement{}=E) -> {C1,Accu1} = Fun(E, Accu0), {C2,Accu2} = mapfoldxml(Fun, Accu1, lists:flatten(C1#xmlElement.content)), {C1#xmlElement{content=C2},Accu2}; mapfoldxml(Fun, Accu, List) when list(List) -> AFun = fun(E,A) -> mapfoldxml(Fun, A, E) end, lists:mapfoldl(AFun, Accu, List); mapfoldxml(Fun, Accu, E) -> Fun(E,Accu). From hal@REDACTED Fri Oct 25 22:27:07 2002 From: hal@REDACTED (Hal Snyder) Date: Fri, 25 Oct 2002 15:27:07 -0500 Subject: PLI 2002 -- report from someone who was there? In-Reply-To: <3DB6E440.1090304@erlang-consulting.com> (Francesco Cesarini's message of "Wed, 23 Oct 2002 19:02:40 +0100") References: <Pine.GSO.4.44.0210231806260.26264-100000@cbe1066> <3DB6E440.1090304@erlang-consulting.com> Message-ID: <87znt28dt0.fsf@ghidra.vail> Francesco Cesarini <francesco@REDACTED> writes: > Oh, and Ulf forgot to mention that we had plenty of good food and > beer, and there in-between got a few culture points by visiting the > odd art museum. Also Marty and I got fired up regarding the theory behind Erlang and functional programming and left with plenty of references. Several of us are now plowing into Barendregt, Pierce, Smullyan, et al so we will grok all the right isomorphisms at the next con. (Not sure types are for me, however, Wadler's talk about the will of the Deity notwithstanding.) From enano@REDACTED Sat Oct 26 02:40:53 2002 From: enano@REDACTED (Miguel Barreiro Paz) Date: Sat, 26 Oct 2002 02:40:53 +0200 (CEST) Subject: Record the EUC on video ? In-Reply-To: <3DB9259A.3060505@bluetail.com> Message-ID: <Pine.LNX.4.44.0210260236460.21006-100000@ceu.fi.udc.es> > Wouldn't it be nice to record the EUC this year on video, > and then put the recording (e.g in mpeg4 format) on the > Web for people to download ? I could make it available afterwards via RTSP/RTP (ie. for streaming to Quicktime or Realplayer) from the University if people find it useful (plenty of bandwidth within the european academic network, not so much elsewhere). Regards, Miguel From thierry.mallard@REDACTED Sat Oct 26 12:36:42 2002 From: thierry.mallard@REDACTED (Thierry Mallard) Date: Sat, 26 Oct 2002 12:36:42 +0200 Subject: [possible bug] crash in debugger in R9B on Mandrake 9 Message-ID: <20021026103642.GA28063@hobbes.local.vawis.net> Greetings, While working on making an Erlang RPM for mandrake 9, i found the following trouble : I launch erl, then start the debugger (debugger:start()). Everything ok then. But, after maximizing the debugger window, and then moving the mouse, the debugger crashes with the following message : -=-=-=- [shaman@REDACTED otp_src_R9B-0]$ erl Erlang (BEAM) emulator version 5.2 [source] [hipe] Eshell V5.2 (abort with ^G) 1> debugger:start(). {ok,<0.30.0>} 2> =ERROR REPORT==== 26-Oct-2002::12:34:29 === Error in process <0.30.0> with exit value: {badarith,[{dbg_ui_mon_win,handle_event,2},{dbg_ui_mon,loop,1}]} -=-=-=- Note that i've run the test with the original source tarball, and the result is the same. Mickael Remond kindly tests his own Erlang installation, also on Mandrake 9, and doesn't have the problem. We're currently trying to find out where that may come from, but still, any hint welcome ! :-) -- Thierry Mallard http://vawis.net From thierry.mallard@REDACTED Sat Oct 26 12:58:51 2002 From: thierry.mallard@REDACTED (Thierry Mallard) Date: Sat, 26 Oct 2002 12:58:51 +0200 Subject: Missing file remove in Makefile (and .in) Message-ID: <20021026105851.GB28063@hobbes.local.vawis.net> Hello again, A minor fix in the Makefile.in, that should fix make install bug when run a second time. There may be other issue in bootstrap related target in the Makefile, but i'm not sure yet, so i don't touch it ;-) With best regards, -- Thierry Mallard http://vawis.net -------------- next part -------------- --- Makefile.in~ 2002-10-02 23:26:31.000000000 +0200 +++ Makefile.in 2002-10-26 12:56:31.000000000 +0200 @@ -281,7 +281,7 @@ # Erlang base public files # install.bin: - rm -f $(BINDIR)/erl $(BINDIR)/erlc + rm -f $(BINDIR)/erl $(BINDIR)/erlc $(BINDIR)/ecc $(BINDIR)/elink $(BINDIR)/ear $(BINDIR)/escript ${LN_S} $(ERLANG_BINDIR)/erl $(BINDIR)/erl ${LN_S} $(ERLANG_BINDIR)/erlc $(BINDIR)/erlc ${LN_S} $(ERLANG_BINDIR)/ecc $(BINDIR)/ecc From thierry.mallard@REDACTED Sat Oct 26 14:02:52 2002 From: thierry.mallard@REDACTED (Thierry Mallard) Date: Sat, 26 Oct 2002 14:02:52 +0200 Subject: update: debugger issue specific to IceWM In-Reply-To: <20021026103642.GA28063@hobbes.local.vawis.net> References: <20021026103642.GA28063@hobbes.local.vawis.net> Message-ID: <20021026120252.GA4411@hobbes.local.vawis.net> On Sat, Oct 26, 2002 at 12:36:42PM +0200, Thierry Mallard wrote: > [...] > I launch erl, then start the debugger (debugger:start()). Everything ok > then. But, after maximizing the debugger window, and then moving the > mouse, the debugger crashes [...] Well, the trouble seems to be specific to IceWM. KDE, GNOME2 and WindowMaker are ok... lucky me ;-) I also tried to find out more details about the problem, and it seems that after the maximization occurs, gs:read(Win, x) (in dbg_ui_mon_win.erl, in handle_event/2 for motion) returns an {error, "can't find h"}, something like that. I would guess that it is the height of the window, but why it is not ok after a maximization in IceWM is a mere mystery to me.. -- Thierry Mallard http://vawis.net From thierry.mallard@REDACTED Sat Oct 26 14:56:44 2002 From: thierry.mallard@REDACTED (Thierry Mallard) Date: Sat, 26 Oct 2002 14:56:44 +0200 Subject: [possible bug] erlc +native crash Message-ID: <20021026125644.GA7443@hobbes.local.vawis.net> Hi there, On R9B (compiled and run under mandrake 9 system), erlc crashes when trying to compile a simple example (see below) with the +native option : -=-=-=- [shaman@REDACTED shaman]$ erlc +native foofact.erl ./foofact.erl:none: internal error in native_compile; crash reason: {undef,[{hipe,compile, [foofact, <<70,79,82,49,0,0,1,160,66,69,65,77,65,116,111,109,0,0,0,30,0,0,0,3,7,102,111,111,102,97,99,116,5,102,97,99,116,111,11,109,111,100,117,108,101,95,105,110,102,111,0,0,67,111,100,101,0,0,0,85,0,0,0,16,0,0,0,0,0,0,0,64,0,0,0,8,0,0,0,3,1,16,2,18,34,16,1,32,43,53,3,1,64,17,3,19,1,48,12,16,16,64,3,4,28,5,4,17,3,4,16,37,29,5,4,3,3,18,16,19,1,64,2,18,50,0,1,80,64,2,3,19,1,96,2,18,50,16,1,112,64,2,3,19,3,0,0,0,83,116,114,84,0,0,0,0,73,109,112,84,0,0,0,4,0,0,0,0,69,120,112,84,0,0,0,40,0,0,0,3,0,0,0,3,0,0,0,1,0,0,0,7,0,0,0,3,0,0,0,0,0,0,0,5,0,0,0,2,0,0,0,1,0,0,0,2,76,111,99,84,0,0,0,4,0,0,0,0,65,116,116,114,0,0,0,40,131,108,0,0,0,1,104,2,100,0,3,118,115,110,108,0,0,0,1,110,16,0,170,5,13,33,151,195,124,140,96,249,69,206,232,34,92,69,106,106,67,73,110,102,0,0,0,132,131,108,0,0,0,3,104,2,100,0,7,111,112,116,105,111,110,115,108,0,0,0,4,100,0,2,118,51,100,0,6,110,97,116,105,118,101,104,2,100,0,6,111,117,116,100,105,114,107,0,12,47,104,111,109,101,47,115,104,97,109,97,110,104,2,100,0,3,99,119,100,107,0,12,47,104,111,109,101,47,115,104,97,109,97,110,106,104,2,100,0,7,118,101,114,115,105,111,110,107,0,3,52,46,49,104,2,100,0,4,116,105,109,101,104,6,98,0,0,7,210,97,10,97,26,97,12,97,52,97,17,106,65,98,115,116,0,0,0,0>>, []]}, {compile,native_compile_1,1}, {compile,'-internal_comp/4-anonymous-1-',2}, {compile,fold_comp,3}, {compile,internal_comp,4}, {compile,internal,3}]} -=-=- Mickael Remond confirmed this behaviour on his system, and noticed that within the erl shell, the c(foofact, [native]). command works ok. -- Thierry Mallard http://vawis.net From bjarne@REDACTED Sat Oct 26 16:41:14 2002 From: bjarne@REDACTED (Bjarne =?iso-8859-1?Q?D=E4cker?=) Date: Sat, 26 Oct 2002 16:41:14 +0200 Subject: HiPE Dissertation Message-ID: <3DBAA98A.40BADF2D@erix.ericsson.se> -------------- next part -------------- An embedded message was scrubbed... From: Roland =?iso-8859-1?Q?Gr=F6nroos?= <Roland.Gronroos@REDACTED> Subject: ASTEC Dissertation Date: Fri, 25 Oct 2002 16:27:19 +0200 Size: 7366 URL: <http://erlang.org/pipermail/erlang-questions/attachments/20021026/7aa77f1f/attachment.eml> From happi@REDACTED Sat Oct 26 20:21:21 2002 From: happi@REDACTED (Happi) Date: Sat, 26 Oct 2002 20:21:21 +0200 Subject: [possible bug] erlc +native crash References: <20021026125644.GA7443@hobbes.local.vawis.net> Message-ID: <007a01c27d1c$7d104610$c90b0a0a@LISA> It looks like you don't have a HiPE enabled system. When you start the system it should say something like: >erl Erlang (BEAM) emulator version 2002.10.12 [source] [hipe] Eshell V2002.10.12 (abort with ^G) 1> -- The important thing beeing "[hipe]". If it doesn't say that then you don't have HiPE support enabled, but you really should get a better error message than the one you describe. In any case it looks like the Hipe compiler is missing from your system, at least the top level module hipe.beam is missing. /Erik ----- Original Message ----- From: "Thierry Mallard" <thierry.mallard@REDACTED> To: <erlang-questions@REDACTED> Sent: Saturday, October 26, 2002 2:56 PM Subject: [possible bug] erlc +native crash > Hi there, > > On R9B (compiled and run under mandrake 9 system), erlc crashes when > trying to compile a simple example (see below) with the +native option : > > -=-=-=- > [shaman@REDACTED shaman]$ erlc +native foofact.erl > ./foofact.erl:none: internal error in native_compile; > crash reason: {undef,[{hipe,compile, > [foofact, > <<70,79,82,49,0,0,1,160,66,69,65,77,65,116,111,109,0,0,0,30,0,0,0,3,7,102,11 1,111,102,97,99,116,5,102,97,99,116,111,11,109,111,100,117,108,101,95,105,11 0,102,111,0,0,67,111,100,101,0,0,0,85,0,0,0,16,0,0,0,0,0,0,0,64,0,0,0,8,0,0, 0,3,1,16,2,18,34,16,1,32,43,53,3,1,64,17,3,19,1,48,12,16,16,64,3,4,28,5,4,17 ,3,4,16,37,29,5,4,3,3,18,16,19,1,64,2,18,50,0,1,80,64,2,3,19,1,96,2,18,50,16 ,1,112,64,2,3,19,3,0,0,0,83,116,114,84,0,0,0,0,73,109,112,84,0,0,0,4,0,0,0,0 ,69,120,112,84,0,0,0,40,0,0,0,3,0,0,0,3,0,0,0,1,0,0,0,7,0,0,0,3,0,0,0,0,0,0, 0,5,0,0,0,2,0,0,0,1,0,0,0,2,76,111,99,84,0,0,0,4,0,0,0,0,65,116,116,114,0,0, 0,40,131,108,0,0,0,1,104,2,100,0,3,118,115,110,108,0,0,0,1,110,16,0,170,5,13 ,33,151,195,124,140,96,249,69,206,232,34,92,69,106,106,67,73,110,102,0,0,0,1 32,131,108,0,0,0,3,104,2,100,0,7,111,112,116,105,111,110,115,108,0,0,0,4,100 ,0,2,118,51,100,0,6,110,97,116,105,118,101,104,2,100,0,6,111,117,116,100,105 ,114,107,0,12,47,104,111,109,101,47,115,104,97,1! > 09,97,110,104,2,100,0,3,99,119,100,107,0,12,47,104,111,109,101,47,115,104,97 ,109,97,110,106,104,2,100,0,7,118,101,114,115,105,111,110,107,0,3,52,46,49,1 04,2,100,0,4,116,105,109,101,104,6,98,0,0,7,210,97,10,97,26,97,12,97,52,97,1 7,106,65,98,115,116,0,0,0,0>>, > []]}, > {compile,native_compile_1,1}, > {compile,'-internal_comp/4-anonymous-1-',2}, > {compile,fold_comp,3}, > {compile,internal_comp,4}, > {compile,internal,3}]} > -=-=- > > Mickael Remond confirmed this behaviour on his system, and noticed that > within the erl shell, the c(foofact, [native]). command works ok. > > > -- > Thierry Mallard > http://vawis.net > > From shrogers@REDACTED Sat Oct 26 23:32:34 2002 From: shrogers@REDACTED (Steve Rogers) Date: Sat, 26 Oct 2002 16:32:34 -0500 Subject: R9B-0 and Red Hat 8.0? References: <20020721184006.D72689@spearce.org> <Pine.LNX.4.44.0207221942160.12049-100000@r2d2.sics.se> <20020722232140.C100935@spearce.org> <3D3E04FE.8010302@ionet.net> Message-ID: <3DBB09F2.4030208@ionet.net> Erlang/OTP R9B-0 fails to build for me on Red Hat Linux 8.0. Has anyone had any success with this platform? Regards, Steve -- _ Steven H. Rogers, PhD. <_` email: steve@REDACTED |_> Weblog http://shrogers.com/portal/Members/steve/blog | \ "A language that doesn't affect the way you think about programming is not worth knowing." - Alan Perlis From eleberg@REDACTED Sun Oct 27 10:14:20 2002 From: eleberg@REDACTED (Bengt Kleberg) Date: Sun, 27 Oct 2002 10:14:20 +0100 (MET) Subject: R9B and escript Message-ID: <200210270914.g9R9EKr28813@cbe.ericsson.se> greetings, adding to what david wallin <david.wallin@REDACTED> wrote: 1 the smallest(?) escript program that reproduces the crash: #! /usr/bin/env escript -export([main/1]). main( Files ) -> code:add_patha("/"). 2 it does not help to recompile escript-4.1. 3 it does not help to remove the ''slightly hacked'' erl_eval (Q: is the hope of including it as the real erl_eval fulfilled as of R9B?) bengt From thierry.mallard@REDACTED Sun Oct 27 11:33:28 2002 From: thierry.mallard@REDACTED (Thierry Mallard) Date: Sun, 27 Oct 2002 11:33:28 +0100 Subject: [possible bug] erlc +native crash In-Reply-To: <007a01c27d1c$7d104610$c90b0a0a@LISA> References: <20021026125644.GA7443@hobbes.local.vawis.net> <007a01c27d1c$7d104610$c90b0a0a@LISA> Message-ID: <20021027103328.GA2305@hobbes.local.vawis.net> On Sat, Oct 26, 2002 at 08:21:21PM +0200, Happi wrote: > It looks like you don't have a HiPE enabled system. HiPE is enabled -which is the default behaviour in R9B it seems- Also, native compilation seems ok within the erl shell itself (see my previous mail). It's only using the erlc command that crashes. A quick strace indicates that erlc execs a ecc command, which may be the faulty one (?). Here's a more complete screendump : -=-=- [shaman@REDACTED shaman]$ erl Erlang (BEAM) emulator version 5.2 [source] [hipe] Eshell V5.2 (abort with ^G) 1> halt(). [shaman@REDACTED shaman]$ erlc +native foofact.erl ./foofact.erl:none: internal error in native_compile; crash reason: {undef,[{hipe,compile, [foofact, <<70,79,82,49,0,0,1,160,66,69,65,77,65,116,111,109,0,0,0,30,0,0,0,3,7,102,111,111,102,97,99,116,5,102,97,99,116,111,11,109,111,100,117,108,101,95,105,110,102,111,0,0,67,111,100,101,0,0,0,85,0,0,0,16,0,0,0,0,0,0,0,64,0,0,0,8,0,0,0,3,1,16,2,18,34,16,1,32,43,53,3,1,64,17,3,19,1,48,12,16,16,64,3,4,28,5,4,17,3,4,16,37,29,5,4,3,3,18,16,19,1,64,2,18,50,0,1,80,64,2,3,19,1,96,2,18,50,16,1,112,64,2,3,19,3,0,0,0,83,116,114,84,0,0,0,0,73,109,112,84,0,0,0,4,0,0,0,0,69,120,112,84,0,0,0,40,0,0,0,3,0,0,0,3,0,0,0,1,0,0,0,7,0,0,0,3,0,0,0,0,0,0,0,5,0,0,0,2,0,0,0,1,0,0,0,2,76,111,99,84,0,0,0,4,0,0,0,0,65,116,116,114,0,0,0,40,131,108,0,0,0,1,104,2,100,0,3,118,115,110,108,0,0,0,1,110,16,0,170,5,13,33,151,195,124,140,96,249,69,206,232,34,92,69,106,106,67,73,110,102,0,0,0,132,131,108,0,0,0,3,104,2,100,0,7,111,112,116,105,111,110,115,108,0,0,0,4,100,0,2,118,51,100,0,6,110,97,116,105,118,101,104,2,100,0,6,111,117,116,100,105,114,107,0,12,47,104,111,109,101,47,115,104,97,109,97,110,104,2,100,0,3,99,119,100,107,0,12,47,104,111,109,101,47,115,104,97,109,97,110,106,104,2,100,0,7,118,101,114,115,105,111,110,107,0,3,52,46,49,104,2,100,0,4,116,105,109,101,104,6,98,0,0,7,210,97,10,97,27,97,10,97,17,97,24,106,65,98,115,116,0,0,0,0>>, []]}, {compile,native_compile_1,1}, {compile,'-internal_comp/4-anonymous-1-',2}, {compile,fold_comp,3}, {compile,internal_comp,4}, {compile,internal,3}]} [shaman@REDACTED shaman]$ strace -e trace=process erlc +native foofact.erl execve("/usr/bin/erlc", ["erlc", "+native", "foofact.erl"], [/* 44 vars */]) = 0 execve("/usr/local/bin/ecc", ["ecc", "+native", "foofact.erl"], [/* 44 vars */]) = -1 ENOENT (No such file or directory) execve("/usr/local/bin/ecc", ["ecc", "+native", "foofact.erl"], [/* 44 vars */]) = -1 ENOENT (No such file or directory) execve("/bin/ecc", ["ecc", "+native", "foofact.erl"], [/* 44 vars */]) = -1 ENOENT (No such file or directory) execve("/usr/bin/ecc", ["ecc", "+native", "foofact.erl"], [/* 44 vars */]) = 0 execve("/usr/lib/erlang/erts-5.2/bin/beam_evm", ["/usr/lib/erlang/erts-5.2/bin/bea"..., "/usr/bin/ecc", "+native", "foofact.erl"], [/* 44 vars */]) = 0 ./foofact.erl:none: internal error in native_compile; [...] -=-=- With best regards, -- Thierry Mallard http://vawis.net From thierry.mallard@REDACTED Sun Oct 27 11:41:59 2002 From: thierry.mallard@REDACTED (Thierry Mallard) Date: Sun, 27 Oct 2002 11:41:59 +0100 Subject: R9B-0 and Red Hat 8.0? In-Reply-To: <3DBB09F2.4030208@ionet.net> References: <20020721184006.D72689@spearce.org> <Pine.LNX.4.44.0207221942160.12049-100000@r2d2.sics.se> <20020722232140.C100935@spearce.org> <3D3E04FE.8010302@ionet.net> <3DBB09F2.4030208@ionet.net> Message-ID: <20021027104159.GA2757@hobbes.local.vawis.net> On Sat, Oct 26, 2002 at 04:32:34PM -0500, Steve Rogers wrote: > Erlang/OTP R9B-0 fails to build for me on Red Hat Linux 8.0. Has anyone > had any success with this platform? I recall seeing someone having trouble with R8B-2 on RH8, but i don't see on the list archive if he managed to get it compiled after all. Can you explain with errors you got ? Regards, -- Thierry Mallard http://vawis.net From shrogers@REDACTED Sun Oct 27 12:22:08 2002 From: shrogers@REDACTED (Steve Rogers) Date: Sun, 27 Oct 2002 05:22:08 -0600 Subject: R9B-0 and Red Hat 8.0? References: <20020721184006.D72689@spearce.org> <Pine.LNX.4.44.0207221942160.12049-100000@r2d2.sics.se> <20020722232140.C100935@spearce.org> <3D3E04FE.8010302@ionet.net> <3DBB09F2.4030208@ionet.net> <3DBB9684.50702@mobilearts.se> Message-ID: <3DBBCC60.1000602@ionet.net> Thanks to Vance and Toffe for pointing to last weeks posts about this. The "env LANG=C" trick worked for me. Apologies for cluttering up the list. Steve -- _ Steven H. Rogers, PhD. <_` email: steve@REDACTED |_> Weblog http://shrogers.com/portal/Members/steve/blog | \ "A language that doesn't affect the way you think about programming is not worth knowing." - Alan Perlis From dhammikh@REDACTED Mon Oct 28 00:01:36 2002 From: dhammikh@REDACTED (Dhammik Hewa) Date: Sun, 27 Oct 2002 15:01:36 -0800 (PST) Subject: Erlang Resources Message-ID: <20021027230136.92056.qmail@web13204.mail.yahoo.com> Hi Folks, I am kind of new-by. Could you guys give some research references about Erlang Appreciated Dhammik --------------------------------- Do you Yahoo!? Y! Web Hosting - Let the expert host your web site -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://erlang.org/pipermail/erlang-questions/attachments/20021027/4c0a72ba/attachment.htm> From bjarne@REDACTED Mon Oct 28 09:04:02 2002 From: bjarne@REDACTED (Bjarne =?iso-8859-1?Q?D=E4cker?=) Date: Mon, 28 Oct 2002 09:04:02 +0100 Subject: Erlang Resources References: <20021027230136.92056.qmail@web13204.mail.yahoo.com> Message-ID: <3DBCEF72.782FB5F5@erix.ericsson.se> Hello > I am kind of new-by. Could you guys give some research references > about Erlang Please see http://dmoz.org/Computers/Programming/Languages/Erlang/ to start with. Rgrds Bjarne From joe@REDACTED Mon Oct 28 21:02:10 2002 From: joe@REDACTED (Joe Armstrong) Date: Mon, 28 Oct 2002 21:02:10 +0100 (CET) Subject: Erlang Resources In-Reply-To: <20021027230136.92056.qmail@web13204.mail.yahoo.com> Message-ID: <Pine.LNX.4.44.0210282101320.1458-100000@enfield.sics.se> http://www.erlang.se/publications/index.shtml /Joe On Sun, 27 Oct 2002, Dhammik Hewa wrote: > > Hi Folks, > > I am kind of new-by. Could you guys give some research references about Erlang > > Appreciated > > Dhammik > > > > --------------------------------- > Do you Yahoo!? > Y! Web Hosting - Let the expert host your web site From owner-erlang-questions@REDACTED Tue Oct 29 02:56:55 2002 From: owner-erlang-questions@REDACTED (owner-erlang-questions@REDACTED) Date: Tue, 29 Oct 2002 12:56:55 +1100 (EST) Subject: No subject Message-ID: <20021029015655.B7F2C12C031@blammo.its.monash.edu.au> > For some reason this flag gets set on our Solaris 7 build-box without me > finding which lib to include to get the symbol. the RES_ bit is unknown to me, nor am i sure what symbol you are refering to. but gethostbyname() has the following man page entry (Solaris 7): Network Functions gethostbyname(3N) NAME gethostbyname, gethostbyname_r, gethostbyaddr, gethostbyaddr_r, gethostent, gethostent_r, sethostent, endhostent - get network host entry SYNOPSIS cc [ flag ... ] file ... -lnsl [ library ... ] #include <netdb.h> struct hostent *gethostbyname(const char *name); this means that the library to include for gethostbyname() is nsl. bengt From Jozsef.Berces@REDACTED Tue Oct 29 17:58:29 2002 From: Jozsef.Berces@REDACTED (Jozsef Berces (QCZ)) Date: Tue, 29 Oct 2002 17:58:29 +0100 Subject: asn1rt_ber in OTP R9 Message-ID: <9CC6CC2973F2D211B3580008C70DB2D2057088D0@eatvint903.dsa.ericsson.se> Hi, What happened to the module asn1rt_ber and asn1rt_ber_v1 in R9? asn1_records.hrl still has a line: -define('RT_BER',"asn1rt_ber_v1"). The PER files are there (asn1rt_per.erl and asn1rt_per_v1.erl) but the BER ones are missing! BR, Jozsef From cy_tang@REDACTED Wed Oct 30 09:01:32 2002 From: cy_tang@REDACTED (cy) Date: Wed, 30 Oct 2002 16:01:32 +0800 Subject: Error reply for megaco request References: <9CC6CC2973F2D211B3580008C70DB2D2057088D0@eatvint903.dsa.ericsson.se> Message-ID: <3DBF91DC.1060303@telesoft.com.hk> I am working on a megaco message load generator. I am using Erlang R8B-2 + megaco_session 0.3 on Linux 2.4.18 kernel. I have encountered an Error reply (attached) intermittently on sending the NotifyRequest. What is the meaning/reason for "count_too_large" given by status of error reply? How to get around it? Best regards, CY /Advanced TeleSoft -------------- next part -------------- A non-text attachment was scrubbed... Name: error_count_too_large.txt.gz Type: application/x-gzip Size: 629 bytes Desc: not available URL: <http://erlang.org/pipermail/erlang-questions/attachments/20021030/32dcbe00/attachment.bin> From hakan@REDACTED Wed Oct 30 09:35:29 2002 From: hakan@REDACTED (Hakan Mattsson) Date: Wed, 30 Oct 2002 09:35:29 +0100 (MET) Subject: Error reply for megaco request In-Reply-To: <3DBF91DC.1060303@telesoft.com.hk> Message-ID: <Pine.GSO.4.10.10210300923290.5072-100000@boddington> On Wed, 30 Oct 2002, cy wrote: Cy> I am working on a megaco message load generator. Cy> I am using Erlang R8B-2 + megaco_session 0.3 on Linux 2.4.18 kernel. Cy> I have encountered an Error reply (attached) intermittently on sending Cy> the NotifyRequest. Cy> Cy> What is the meaning/reason for "count_too_large" given by status of Cy> error reply? The count_too_large/count_too_small errors, are implied by a range check for integer values and string lengths when text messages are encoded. In this case the time-field in the 'TimeNotation' record was 9 characters long while only 8 characters was allowed. Cy> How to get around it? Ensure that the timestamp follows the following style with exact 8 charaters: hhmmssss. /H?kan --- H?kan Mattsson Ericsson High Availability Software, DBMS Internals http://www.ericsson.com/cslab/~hakan/ From bertil.karlsson@REDACTED Wed Oct 30 10:03:38 2002 From: bertil.karlsson@REDACTED (Bertil Karlsson) Date: Wed, 30 Oct 2002 10:03:38 +0100 Subject: asn1rt_ber in OTP R9 References: <9CC6CC2973F2D211B3580008C70DB2D2057088D0@eatvint903.dsa.ericsson.se> Message-ID: <3DBFA06A.E274E142@uab.ericsson.se> "Jozsef Berces (QCZ)" wrote: > > Hi, > > What happened to the module asn1rt_ber and asn1rt_ber_v1 in R9? They are not needed any more, since the default option (ber) uses the faster (ber_bin) run-time module and are generated according to ber_bin. Though, the UI remains the same for ber. That is you will get the result as a list from encoding and when decoding you will use a list as input. > asn1_records.hrl still has a line: > -define('RT_BER',"asn1rt_ber_v1"). forgot to remove that one. -- / Bertil Karlsson From mpquique@REDACTED Wed Oct 30 14:36:32 2002 From: mpquique@REDACTED (Enrique Marcote =?iso-8859-1?Q?Pe=F1a?=) Date: Wed, 30 Oct 2002 14:36:32 +0100 Subject: Developing SMS-based Services in erlang References: <Pine.LNX.4.44.0210282101320.1458-100000@enfield.sics.se> Message-ID: <3DBFE060.D20CCD00@wanadoo.es> Hello, First of all I'd like to thank all the members of the list for their unselfish effort, I've been listening here in silent for almost a year and during this period of time I've collected many notes and references of my interest. My name is Enrique Marcote, I'm a computer science student and these days I'm starting with my final career project. The project is a proposal for a (mobile) telephony service. Since the beginning of this project I thought of erlang as the development environment (I have some experience with ocaml and I got to erlang in a functional programming course at the Faculty). Besides the development of the service itself (for which I believe erlang is perfect) I'm lost with regard to the environment needed to test such an application. I've found at the "Erlang User Conference 2001" the proposal titled "Welcome SMS in Erlang - Experiences of Rapid Deployment in a GSM Network" so I guess that it is possible to write an SMS-based service in erlang (In the same conference, some members of my Faculty presented "An Erlang-based Hierarchical Distributed VoD System"). During the first stages of the project we won't be working with any telecommunications company, so it'll be ideal to be able to emulate the communication network on the lab. Is it possible to emulate operations such us identifying the user (caller), charge the cost of the service to the telephone bill... Does OTP provide such a testing environment? Is there any other tool for this purpose? Does anybody ever put an erlang based application working together with OPNET? We've obtain some funds for the development of this project so we are also interested on commercial tools (if they're worthed and needed). Thank you very much. Regards, Quique From enano@REDACTED Wed Oct 30 15:38:53 2002 From: enano@REDACTED (Miguel Barreiro Paz) Date: Wed, 30 Oct 2002 15:38:53 +0100 (CET) Subject: Developing SMS-based Services in erlang In-Reply-To: <3DBFE060.D20CCD00@wanadoo.es> Message-ID: <Pine.LNX.4.44.0210301510360.8772-100000@ceu.fi.udc.es> > starting with my final career project. The project is a proposal for a (mobile) > telephony service. Since the beginning of this project I thought of erlang as the > development environment (I have some experience with ocaml and I got to erlang in a > functional programming course at the Faculty). Funny to know it through the mailing list :-) > During the first stages of the project we won't be working with any > telecommunications company, so it'll be ideal to be able to emulate the > communication network on the lab. Is it possible to emulate operations such us > identifying the user (caller), charge the cost of the service to the telephone > bill... Does OTP provide such a testing environment? Is there any other tool for I'm not a mobile telecom guy, but there are several GSM network simulators out there (mostly commercial). Try contacting one of the GSM operators, they might prove responsive. On the other hand, if you just need to receive/send SMS, GPRS data, caller id and such, all you need is a suitable phone :-) (from experience, the Ericsson T39 is fine and the Linux BlueZ bluetooth stack, IrDA tools, OBEX, etc work ok with it). A surprising number of not-so-small SMS services are implemented with serial attached GSM terminals. If you really do want to go for the real thing, get ready to chew some SS7 / SCTP literature :-) At least the people at Corelatus have implemented an SS7 stack in erlang (and so does Ericsson, I suppose), and Matthias L?ng speech at the EUC2001 implied that it was not exactly a trivial task. Regards, Miguel From joe@REDACTED Wed Oct 30 16:16:31 2002 From: joe@REDACTED (Joe Armstrong) Date: Wed, 30 Oct 2002 16:16:31 +0100 (CET) Subject: Announce: Stand alone Erlang Message-ID: <Pine.LNX.4.44.0210301608030.12749-100000@r2d2.sics.se> Things never get finished, they just get to the point where they are sufficiently good to release. Stand-alone Erlang needs only a small number (5) files to run. It includes: ecc (compiler) elink (linker) esh (interactive query shell) escript (scripting interface) ear (archiver) Stand-alone Erlang is available from http://www.sics.se/~joe/sae.html This page links to the stand-alone Erlang kit, the stand-alone Erlang sources (an add-on to R9B0) and a number of examples. If you're running Linux the pre-compiled kit should work "out of the box" If not you'll have to build SAE from the sources. Have fun /Joe Please let me know if you have found any bugs or can offer any improvements. From joe@REDACTED Wed Oct 30 16:20:52 2002 From: joe@REDACTED (Joe Armstrong) Date: Wed, 30 Oct 2002 16:20:52 +0100 (CET) Subject: Announce: Stand alone erlang for R9B-0 Message-ID: <Pine.LNX.4.44.0210301617350.11780-100000@enfield.sics.se> Stand alone erlang is now available from http://www.sics.se/~joe/sae.html This contains links to the SAE kit, SAE source, and SAE examples. The SAE kit should run "out of the box" on vanilla Linuxes. For other systems you will need the source and the R9B-0 distribution. With SAE you can make and distribute stand-alone Erlang applications. /Joe From matthias@REDACTED Wed Oct 30 16:27:51 2002 From: matthias@REDACTED (Matthias Lang) Date: Wed, 30 Oct 2002 16:27:51 +0100 Subject: Developing SMS-based Services in erlang In-Reply-To: <Pine.LNX.4.44.0210301510360.8772-100000@ceu.fi.udc.es> References: <3DBFE060.D20CCD00@wanadoo.es> <Pine.LNX.4.44.0210301510360.8772-100000@ceu.fi.udc.es> Message-ID: <15807.64119.311841.678654@antilipe.corelatus.se> Miguel wrote: > If you really do want to go for the real thing, get ready to chew > some SS7 / SCTP literature :-) At least the people at Corelatus have > implemented an SS7 stack in erlang (and so does Ericsson, I suppose), and > Matthias L?ng speech at the EUC2001 implied that it was not exactly a > trivial task. At the EUC2001, I spoke about implementing one relatively simple layer of the #7 stack, MTP-2. Other (higher) layers of the #7 stack are considerably more complex. Some of our customers have their own #7 stacks which they attach to our system at the MTP-2/MTP-3 interface, but they're not Erlang. There was an effort at the Ericsson computer science laboratory to implement #7 in Erlang. I believe MTP-3, TCAP and SCCP were all "90% finished". The other 90% of the work was never completed, the main protagonists were sidetracked, first by inventing the binary syntax and then by the .com bubble. In any case, as far as I know, nobody has implemented a complete #7 stack (e.g. everything up to GSM-MAP) in Erlang. It seems like quite a do-able project, albeit rather daunting for just one person. Matthias From joe@REDACTED Wed Oct 30 16:40:02 2002 From: joe@REDACTED (Joe Armstrong) Date: Wed, 30 Oct 2002 16:40:02 +0100 (CET) Subject: SAE Message-ID: <Pine.LNX.4.44.0210301639100.11780-100000@enfield.sics.se> Sorry about the repeated message - pine crashed when sending the first :-) /Joe From bjarne@REDACTED Wed Oct 30 17:33:37 2002 From: bjarne@REDACTED (Bjarne =?iso-8859-1?Q?D=E4cker?=) Date: Wed, 30 Oct 2002 17:33:37 +0100 Subject: ACM SIGPLAN Erlang Workshop - proceedings References: <Pine.LNX.4.44.0210282101320.1458-100000@enfield.sics.se> <3DBFE060.D20CCD00@wanadoo.es> Message-ID: <3DC009E1.EF22AC55@erix.ericsson.se> Hello You will find the papers from the workshop available as pdf at http://www.erlang.se/workshop/2002/ All complete with an ACM copyright notice. The papers have also been listed among the Erlang publications http://www.erlang.se/publications/ Enjoy ! Bjarne From DANIESC.SCHUTTE@REDACTED Wed Oct 30 17:41:51 2002 From: DANIESC.SCHUTTE@REDACTED (DANIESC SCHUTTE) Date: Wed, 30 Oct 2002 18:41:51 +0200 Subject: Search Path Message-ID: <sdc0280e.097@mail.tebabank.com> First off - Thanks for all the people helping with all the questions I pose, I appreciate your help. How do I setup the search path for my applications, to find it if the application is in a directory other than lib. (For now - without the boot script). ? Or can it only be done using a boot script? Regards Danie Schutte Phone: +27 - 11 - 203 - 1614 Mobile: 083-268-3138 e-Mail: Daniesc@REDACTED ##################################################################################### The information contained in this message and or attachments is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any system and destroy and copies. ##################################################################################### From sureshsaragadam@REDACTED Thu Oct 31 07:11:57 2002 From: sureshsaragadam@REDACTED (=?iso-8859-1?q?Suresh=20S?=) Date: Thu, 31 Oct 2002 06:11:57 +0000 (GMT) Subject: Is it possible in MNESIA Message-ID: <20021031061157.56195.qmail@web8203.mail.in.yahoo.com> sir, here is there is any functionality in mnesia such that when ever a record is updated we can execute any call back function, like trigger function on each trasaction of mnesia tables is it possible in mnesia please let me know thanking u ________________________________________________________________________ Missed your favourite TV serial last night? Try the new, Yahoo! TV. visit http://in.tv.yahoo.com From sureshsaragadam@REDACTED Thu Oct 31 07:13:15 2002 From: sureshsaragadam@REDACTED (=?iso-8859-1?q?Suresh=20S?=) Date: Thu, 31 Oct 2002 06:13:15 +0000 (GMT) Subject: Is it possible in MNESIA Message-ID: <20021031061315.53319.qmail@web8201.mail.in.yahoo.com> sir, here is there is any functionality in mnesia such that when ever a record is updated we can execute any call back function, like trigger function on each trasaction of mnesia tables is it possible in mnesia please let me know thanking u ________________________________________________________________________ Missed your favourite TV serial last night? Try the new, Yahoo! TV. visit http://in.tv.yahoo.com From cpressey@REDACTED Thu Oct 31 08:00:21 2002 From: cpressey@REDACTED (Chris Pressey) Date: Thu, 31 Oct 2002 01:00:21 -0600 Subject: Is it possible in MNESIA In-Reply-To: <20021031061315.53319.qmail@web8201.mail.in.yahoo.com> References: <20021031061315.53319.qmail@web8201.mail.in.yahoo.com> Message-ID: <20021031010021.06016ff0.cpressey@catseye.mb.ca> On Thu, 31 Oct 2002 06:13:15 +0000 (GMT) Suresh S <sureshsaragadam@REDACTED> wrote: > > sir, > > here is there is any functionality in mnesia such that > > when ever a record is updated we can execute any call > back function, > > like trigger function > > on each trasaction of mnesia tables > > is it possible in mnesia > > please let me know > > thanking u What you possibly want to do is to subscribe to table events. That way an event is generated every time something happens to the table (e.g. when a record is updated). See: http://www.erlang.org/doc/r9b/lib/mnesia-4.1/doc/html/Mnesia_chap5.html#5.7 -Chris From mikael.karlsson@REDACTED Thu Oct 31 08:47:24 2002 From: mikael.karlsson@REDACTED (Mikael Karlsson) Date: Thu, 31 Oct 2002 08:47:24 +0100 Subject: Search Path In-Reply-To: <sdc0280e.097@mail.tebabank.com> References: <sdc0280e.097@mail.tebabank.com> Message-ID: <200210310847.24860.mikael.karlsson@creado.com> onsdag 30 oktober 2002 17:41 skrev DANIESC SCHUTTE: . . > How do I setup the search path for my applications, to find it if the > application is in a directory other than lib. (For now - without the boot > script). ? You can add code like: code:add_path("/home/mikael/local/src/erlang/lib/xserl/ebin"). code:add_path("/home/mikael/local/src/erlang/lib/erlbook/ebin"). in your $HOME/.erlang file or in your application. There are several add_path variants in the "code" module you can use. /Mikael From francesco@REDACTED Thu Oct 31 08:44:01 2002 From: francesco@REDACTED (Francesco Cesarini) Date: Thu, 31 Oct 2002 07:44:01 +0000 Subject: Search Path References: <sdc0280e.097@mail.tebabank.com> Message-ID: <3DC0DF41.6060609@erlang-consulting.com> > > >How do I setup the search path for my applications, to find it if the application is in a directory other than lib. (For now - without the boot script). ? > When you start erlang, you can include the -pa Path (Add the path at the beginning of the search paths) or the -pz Path (Add the path at the end of the search paths) directives. See the manual page for erl for details You can also add paths from the shell by executing code:add_patha(Path) or code:add_pathz(Path) See the manual page for code for details. Regards, Francesco -- http://www.erlang-consulting.com From etxuwig@REDACTED Thu Oct 31 10:19:59 2002 From: etxuwig@REDACTED (Ulf Wiger) Date: Thu, 31 Oct 2002 10:19:59 +0100 (MET) Subject: Is it possible in MNESIA In-Reply-To: <20021031061157.56195.qmail@web8203.mail.in.yahoo.com> Message-ID: <Pine.GSO.4.44.0210311014400.5207-100000@cbe1066> On Thu, 31 Oct 2002, Suresh S wrote: > >sir, > >here is there is any functionality in mnesia such that > >when ever a record is updated we can execute any call back >function, > >like trigger function The User Contribution RDBMS (http://www.erlang.org/user.html#rdbms-1.3) implements triggers that operate within the context of a mnesia transaction. That is, they are truly atomic, and also work for nested transactions. Mnesia table events are asynchronous, and allow a "trigger" to respond to a table update _after_ the transaction has been committed. /Uffe -- Ulf Wiger, Senior Specialist, / / / Architecture & Design of Carrier-Class Software / / / Strategic Product & System Management / / / Ericsson Telecom AB, ATM Multiservice Networks From cy_tang@REDACTED Thu Oct 31 11:07:33 2002 From: cy_tang@REDACTED (cy) Date: Thu, 31 Oct 2002 18:07:33 +0800 Subject: Error reply for megaco request References: <Pine.GSO.4.10.10210300923290.5072-100000@boddington> Message-ID: <3DC100E5.6020502@telesoft.com.hk> Hakan, By limiting the string length of 'TimeNotation' to 8 chars, it did solve the issue. Thanks. CY Hakan Mattsson wrote: > On Wed, 30 Oct 2002, cy wrote: > > Cy> I am working on a megaco message load generator. > Cy> I am using Erlang R8B-2 + megaco_session 0.3 on Linux 2.4.18 kernel. > Cy> I have encountered an Error reply (attached) intermittently on > sending Cy> the NotifyRequest. > Cy> Cy> What is the meaning/reason for "count_too_large" given by > status of Cy> error reply? > > The count_too_large/count_too_small errors, are implied by a range > check for integer values and string lengths when text messages are > encoded. > > In this case the time-field in the 'TimeNotation' record was 9 > characters long while only 8 characters was allowed. > > Cy> How to get around it? > > Ensure that the timestamp follows the following style with > exact 8 charaters: hhmmssss. > > > /H?kan > > --- > H?kan Mattsson > Ericsson > High Availability Software, DBMS Internals > http://www.ericsson.com/cslab/~hakan/ > > From klacke@REDACTED Thu Oct 31 23:10:58 2002 From: klacke@REDACTED (Klacke) Date: Thu, 31 Oct 2002 23:10:58 +0100 Subject: Developing SMS-based Services in erlang In-Reply-To: <15807.64119.311841.678654@antilipe.corelatus.se>; from matthias@corelatus.se on Wed, Oct 30, 2002 at 04:27:51PM +0100 References: <3DBFE060.D20CCD00@wanadoo.es> <Pine.LNX.4.44.0210301510360.8772-100000@ceu.fi.udc.es> <15807.64119.311841.678654@antilipe.corelatus.se> Message-ID: <20021031231058.A4394@bluetail.com> On Wed, Oct 30, 2002 at 04:27:51PM +0100, Matthias Lang wrote: > > There was an effort at the Ericsson computer science laboratory to > implement #7 in Erlang. I believe MTP-3, TCAP and SCCP were all "90% > finished". The other 90% of the work was never completed, the main > protagonists were sidetracked, first by inventing the binary syntax > and then by the .com bubble. You are so funny .. > > In any case, as far as I know, nobody has implemented a complete #7 > stack (e.g. everything up to GSM-MAP) in Erlang. It seems like quite a > do-able project, albeit rather daunting for just one person. > To my knowledge the only #7 implementation Ericsson has is written in PLEX and is about 20 years old by now. However, actually implementing #7 is indeed doable although the specs are almost unreadable. What really really did put me off while attempting to do a full #7 stack was ISUP. /klacke -- Claes Wikstrom -- Caps lock is nowhere and Alteon WebSystems -- everything is under control http://www.bluetail.com/~klacke cellphone: +46 70 2097763