<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:www.nabble.com,2006:forum-14095</id>
	<title>Nabble - Erlang</title>
	<updated>2008-09-05T11:46:09Z</updated>
	<link rel="self" type="application/atom+xml" href="http://www.nabble.com/Erlang-f14095.xml" />
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Erlang-f14095.html" />
	<subtitle type="html">Erlang is a programming language which has many features more commonly associated with an operating system than with a programming language: concurrent processes, scheduling, memory management, distribution, networking, etc. Erlang home is &lt;a href=&quot;http://www.erlang.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.</subtitle>
	
<entry>
	<id>tag:www.nabble.com,2006:post-19337367</id>
	<title>bug: Protocol: &quot;inet_tcp&quot;: register/listen error: eaddrinuse while starting a node</title>
	<published>2008-09-05T11:46:09Z</published>
	<updated>2008-09-05T11:46:09Z</updated>
	<author>
		<name>Igor Goryachev-2</name>
	</author>
	<content type="html">Hello everybody.
&lt;br&gt;&lt;br&gt;It's me again. I've posted this message some time ago, but have not got
&lt;br&gt;any response. I confirm that this bug is reproduced (seems to be
&lt;br&gt;floating bug) when using R12B-3 version and '-kernel inet_dist_listen_min
&lt;br&gt;XXXX inet_dist_listen_max YYYY' when XXXX number equal to YYYY.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;Hi, everyone!
&lt;br&gt;&lt;br&gt;I have noticed some troubles while starting node with '-kernel
&lt;br&gt;inet_dist_listen_min 5290 inet_dist_listen_max 5290' options. And
&lt;br&gt;everything works fine when these options are omitted. 
&lt;br&gt;&lt;br&gt;The output is here:
&lt;br&gt;&lt;br&gt;===========
&lt;br&gt;{progress,preloaded}
&lt;br&gt;{progress,kernel_load_completed}
&lt;br&gt;{progress,modules_loaded}
&lt;br&gt;{start,heart}
&lt;br&gt;{start,error_logger}
&lt;br&gt;{start,application_controller}
&lt;br&gt;{progress,init_kernel_started}
&lt;br&gt;{apply,{application,load,[{application,stdlib,[{description,&amp;quot;ERTS &amp;nbsp;CXC 138 10&amp;quot;},{vsn,&amp;quot;1.14.5&amp;quot;},{id,[]},{modules,[base64,beam_lib,c,calendar,dets,dets_server,dets_sup,dets_utils,dets_v8,dets_v9,dict,digraph,digraph_utils,edlin,edlin_expand,epp,eval_bits,erl_bits,erl_compile,erl_eval,erl_expand_records,erl_internal,erl_lint,erl_parse,erl_posix_msg,erl_pp,erl_scan,erl_tar,error_logger_file_h,error_logger_tty_h,escript,ets,file_sorter,filelib,filename,gb_trees,gb_sets,gen,gen_event,gen_fsm,gen_server,io,io_lib,io_lib_format,io_lib_fread,io_lib_pretty,lib,lists,log_mf_h,math,ms_transform,orddict,ordsets,otp_internal,pg,pool,proc_lib,proplists,qlc,qlc_pt,queue,random,regexp,sets,shell,shell_default,slave,sofs,string,supervisor,supervisor_bridge,sys,timer,win32reg,zip]},{registered,[timer_server,rsh_starter,take_over_monitor,pool_master,dets]},{applications,[kernel]},{included_applications,[]},{env,[]},{start_phases,undefined},{maxT,infinity},{maxP,infinity}]}]}}
&lt;br&gt;{progress,applications_loaded}
&lt;br&gt;{apply,{application,start_boot,[kernel,permanent]}}
&lt;br&gt;{error_logger,{{2008,2,5},{17,18,42}},&amp;quot;Protocol: ~p: register/listen error: ~p~n&amp;quot;,[&amp;quot;inet_tcp&amp;quot;,eaddrinuse]}
&lt;br&gt;{error_logger,{{2008,2,5},{17,18,42}},crash_report,[[{pid,&amp;lt;0.21.0&amp;gt;},{registered_name,net_kernel},{error_info,{error,badarg}},{initial_call,{gen,init_it,[gen_server,&amp;lt;0.18.0&amp;gt;,&amp;lt;0.18.0&amp;gt;,{local,net_kernel},net_kernel,{'ejabberd@snaketo',shortnames,15000},[]]}},{ancestors,[net_sup,kernel_sup,&amp;lt;0.8.0&amp;gt;]},{messages,[]},{links,[&amp;lt;0.18.0&amp;gt;]},{dictionary,[{longnames,false}]},{trap_exit,true},{status,running},{heap_size,377},{stack_size,21},{reductions,331}],[]]}
&lt;br&gt;{error_logger,{{2008,2,5},{17,18,42}},supervisor_report,[{supervisor,{local,net_sup}},{errorContext,start_error},{reason,{'EXIT',nodistribution}},{offender,[{pid,undefined},{name,net_kernel},{mfa,{net_kernel,start_link,[['ejabberd@snaketo',shortnames]]}},{restart_type,permanent},{shutdown,2000},{child_type,worker}]}]}
&lt;br&gt;{error_logger,{{2008,2,5},{17,18,42}},supervisor_report,[{supervisor,{local,kernel_sup}},{errorContext,start_error},{reason,shutdown},{offender,[{pid,undefined},{name,net_sup},{mfa,{erl_distribution,start_link,[]}},{restart_type,permanent},{shutdown,infinity},{child_type,supervisor}]}]}
&lt;br&gt;{error_logger,{{2008,2,5},{17,18,42}},crash_report,[[{pid,&amp;lt;0.7.0&amp;gt;},{registered_name,[]},{error_info,{shutdown,{kernel,start,[normal,[]]}}},{initial_call,{application_master,init,[&amp;lt;0.5.0&amp;gt;,&amp;lt;0.6.0&amp;gt;,{appl_data,kernel,[application_controller,erl_reply,auth,boot_server,code_server,disk_log_server,disk_log_sup,erl_prim_loader,error_logger,file_server_2,fixtable_server,global_group,global_name_server,heart,init,kernel_config,kernel_sup,net_kernel,net_sup,rex,user,os_server,ddll_server,erl_epmd,inet_db,pg2],undefined,{kernel,[]},[application,application_controller,application_master,application_starter,auth,code,code_aux,packages,code_server,dist_util,erl_boot_server,erl_distribution,erl_prim_loader,erl_reply,erlang,error_handler,error_logger,file,file_server,file_io_server,prim_file,global,global_group,global_search,group,heart,hipe_unified_loader,inet6_tcp,inet6_tcp_dist,inet6_udp,inet_config,inet_hosts,inet_gethost_native,inet_tcp_dist,init,kernel,kernel_config,net,net_adm,net_kernel,os,ram_file,rpc,user,user_drv,user_sup,disk_log,disk_log_1,disk_log_server,disk_log_sup,dist_ac,erl_ddll,erl_epmd,erts_debug,gen_tcp,gen_udp,gen_sctp,prim_inet,inet,inet_db,inet_dns,inet_parse,inet_res,inet_tcp,inet_udp,inet_sctp,pg2,seq_trace,wrap_log_reader,zlib,otp_ring0],[],infinity,infinity},normal]}},{ancestors,[&amp;lt;0.6.0&amp;gt;]},{messages,[{'EXIT',&amp;lt;0.8.0&amp;gt;,normal}]},{links,[&amp;lt;0.6.0&amp;gt;,&amp;lt;0.5.0&amp;gt;]},{dictionary,[]},{trap_exit,true},{status,running},{heap_size,987},{stack_size,21},{reductions,2063}],[]]}
&lt;br&gt;{apply,{application,start_boot,[stdlib,permanent]}}
&lt;br&gt;{error_logger,{{2008,2,5},{17,18,42}},std_info,[{application,kernel},{exited,{shutdown,{kernel,start,[normal,[]]}}},{type,permanent}]}
&lt;br&gt;{&amp;quot;Kernel pid terminated&amp;quot;,application_controller,&amp;quot;{application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}}&amp;quot;}
&lt;br&gt;&lt;br&gt;Crash dump was written to: erl_crash.dump
&lt;br&gt;Kernel pid terminated (application_controller) ({application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}})
&lt;br&gt;===========
&lt;br&gt;&lt;br&gt;&lt;br&gt;After a little bit of investigation I've noticed, that there is no
&lt;br&gt;'{reuseaddr, true}' socket option in the lib/kernel/src/inet_tcp_dist.erl. If
&lt;br&gt;I add this option, recompile inet_tcp_dist.erl, put it into proper
&lt;br&gt;place, everything works fine like when mentioned above kernel options
&lt;br&gt;are omitted.
&lt;br&gt;&lt;br&gt;The tiny patch is included.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Igor Goryachev
&lt;br&gt;Yandex development team.
&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;hr align=&quot;left&quot; width=&quot;300&quot; /&gt;&lt;tt&gt;--- inet_tcp_dist.erl.orig	2008-02-05 17:28:51.000000000 +0300
&lt;br&gt;+++ inet_tcp_dist.erl	2008-02-05 17:31:24.000000000 +0300
&lt;br&gt;@@ -62,7 +62,7 @@
&lt;br&gt;&amp;nbsp;%% ------------------------------------------------------------
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;listen(Name) -&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;case do_listen([{active, false}, {packet,2}]) of
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;case do_listen([{active, false}, {packet,2}, {reuseaddr, true}]) of
&lt;br&gt;&amp;nbsp;	{ok, Socket} -&amp;gt;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp;TcpAddress = get_tcp_address(Socket),
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp;{_,Port} = TcpAddress#net_address.address,
&lt;br&gt;&lt;/tt&gt;&lt;hr align=&quot;left&quot; width=&quot;300&quot; /&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;erlang-bugs mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19337367&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-bugs@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-bugs&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-bugs&lt;/a&gt;&lt;br /&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Igor Goryachev
&lt;br&gt;Yandex development team.
&lt;br&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;erlang-bugs mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19337367&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-bugs@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-bugs&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-bugs&lt;/a&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Bugs-f14097.html&quot; embed=&quot;fixTarget[14097]&quot; target=&quot;_top&quot; &gt;Erlang Bugs&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/bug%3A-Protocol%3A-%22inet_tcp%22%3A-register-listen-error%3A-eaddrinuse-while-starting-a-node-tp19337367p19337367.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19336464</id>
	<title>Re: Executing an Erlang function from Perl</title>
	<published>2008-09-05T10:41:15Z</published>
	<updated>2008-09-05T10:41:15Z</updated>
	<author>
		<name>Anders Nygren</name>
	</author>
	<content type="html">2008/9/5 Sebastian Bello &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19336464&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sebastian.bello@...&lt;/a&gt;&amp;gt;:
&lt;br&gt;&amp;gt; Thanks Bengt and Chandru.
&lt;br&gt;&amp;gt; An additional question: if I know the full path to a .beam file, and that
&lt;br&gt;&amp;gt; path has no been added with a -pa for example, what would be the way to
&lt;br&gt;&amp;gt; execute a function of that module?
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Sebastian-
&lt;br&gt;&lt;br&gt;Sebastian
&lt;br&gt;&lt;br&gt;Dir = filename:dirname(Beam),
&lt;br&gt;code:addpatha(Dir)
&lt;br&gt;&lt;br&gt;/Anders
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Chandru escribió:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; 2008/9/3 Sebastian Bello &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19336464&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sebastian.bello@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Hi list,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I need to execute an Erlang function from within Perl code, what do you
&lt;br&gt;&amp;gt;&amp;gt; suggest?
&lt;br&gt;&amp;gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;Sebastian-
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Try 'erl -man erl_call'
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Extract from the man page:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; NAME
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;erl_call - Call/Start a Distributed Erlang Node
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; DESCRIPTION
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;erl_call &amp;nbsp;makes &amp;nbsp;it &amp;nbsp;possible &amp;nbsp;to &amp;nbsp;start and/or communicate with a
&lt;br&gt;&amp;gt; dis-
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tributed Erlang node. It is built upon the erl_interface library as
&lt;br&gt;&amp;gt; an
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;example &amp;nbsp;application. &amp;nbsp;Its &amp;nbsp;purpose &amp;nbsp;is &amp;nbsp;to use an Unix shell script
&lt;br&gt;&amp;gt; to
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;interact with a distributed Erlang node. It performs all
&lt;br&gt;&amp;gt; communication
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;with &amp;nbsp;the Erlang rex server, using the standard Erlang RPC facility.
&lt;br&gt;&amp;gt; It
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;does not require any special software to be run at &amp;nbsp;the &amp;nbsp;Erlang
&lt;br&gt;&amp;gt; target
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;node.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;The main use is to either start a distributed Erlang node or to make
&lt;br&gt;&amp;gt; an
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ordinary function call. However, it is also possible to pipe an
&lt;br&gt;&amp;gt; Erlang
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;module &amp;nbsp;to &amp;nbsp;erl_call &amp;nbsp;and &amp;nbsp;have &amp;nbsp;it &amp;nbsp;compiled, or to pipe a sequence
&lt;br&gt;&amp;gt; of
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Erlang expressions to be evaluated (similar to the Erlang shell).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Options, which cause stdin to be read, can be used &amp;nbsp;with &amp;nbsp;advantage
&lt;br&gt;&amp;gt; as
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;scripts &amp;nbsp;from within (Unix) shell scripts. Another nice use of
&lt;br&gt;&amp;gt; erl_call
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;could be from (http) CGI-bin scripts.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; erlang-questions mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19336464&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;/div&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19336464&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Executing-an-Erlang-function-from-Perl-tp19291039p19336464.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19335933</id>
	<title>Re: Executing an Erlang function from Perl</title>
	<published>2008-09-05T09:47:57Z</published>
	<updated>2008-09-05T09:47:57Z</updated>
	<author>
		<name>Sebastian Bello-2</name>
	</author>
	<content type="html">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;meta content=&quot;text/html;charset=ISO-8859-1&quot; http-equiv=&quot;Content-Type&quot;&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#ffffff&quot; text=&quot;#000000&quot;&gt;
Thanks Bengt and Chandru.&lt;br&gt;
An additional question: if I know the full path to a .beam file, and
that path has no been added with a -pa for example, what would be the
way to execute a function of that module?&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Sebastian-&lt;br&gt;
&lt;br&gt;
Chandru escribi&amp;oacute;:
&lt;blockquote cite=&quot;mid:b447a30d0809030811i55d083e7p4d79d3977907208b@mail.gmail.com&quot; type=&quot;cite&quot;&gt;
  &lt;div dir=&quot;ltr&quot;&gt;2008/9/3 Sebastian Bello &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19335933&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sebastian.bello@...&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;
  &lt;div class=&quot;gmail_quote&quot;&gt;
  &lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;Hi
list,&lt;br&gt;
    &lt;br&gt;
I need to execute an Erlang function from within Perl code, what do you&lt;br&gt;
suggest?&lt;br&gt;
Thanks,&lt;br&gt;
&amp;nbsp; &amp;nbsp;Sebastian-&lt;/blockquote&gt;
  &lt;div&gt;&lt;br&gt;
Try 'erl -man erl_call'&lt;br&gt;
  &lt;br&gt;
Extract from the man page:&lt;br&gt;
  &lt;br&gt;
NAME&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; erl_call - Call/Start a Distributed Erlang Node&lt;br&gt;
  &lt;br&gt;
DESCRIPTION&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; erl_call&amp;nbsp; makes&amp;nbsp; it&amp;nbsp; possible&amp;nbsp; to&amp;nbsp; start and/or communicate with
a dis-&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tributed Erlang node. It is built upon the erl_interface library
as&amp;nbsp; an&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; example&amp;nbsp; application.&amp;nbsp; Its&amp;nbsp; purpose&amp;nbsp; is&amp;nbsp; to use an Unix shell
script to&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; interact with a distributed Erlang node. It performs all&amp;nbsp;
communication&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; with&amp;nbsp; the Erlang rex server, using the standard Erlang RPC
facility. It&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; does not require any special software to be run at&amp;nbsp; the&amp;nbsp; Erlang&amp;nbsp;
target&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; node.&lt;br&gt;
  &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The main use is to either start a distributed Erlang node or to
make an&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ordinary function call. However, it is also possible to pipe an&amp;nbsp;
Erlang&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; module&amp;nbsp; to&amp;nbsp; erl_call&amp;nbsp; and&amp;nbsp; have&amp;nbsp; it&amp;nbsp; compiled, or to pipe a
sequence of&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Erlang expressions to be evaluated (similar to the Erlang shell).&lt;br&gt;
  &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Options, which cause stdin to be read, can be used&amp;nbsp; with&amp;nbsp;
advantage&amp;nbsp; as&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scripts&amp;nbsp; from within (Unix) shell scripts. Another nice use of
erl_call&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; could be from (http) CGI-bin scripts.&lt;br&gt;
  &lt;br&gt;
&amp;nbsp;&lt;br&gt;
  &lt;/div&gt;
  &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19335933&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Executing-an-Erlang-function-from-Perl-tp19291039p19335933.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19333482</id>
	<title>Re: Application granularity (was: Parallel Shootout &amp; a style question)</title>
	<published>2008-09-05T08:03:42Z</published>
	<updated>2008-09-05T08:03:42Z</updated>
	<author>
		<name>Ulf Wiger</name>
	</author>
	<content type="html">2008/9/5 Jay Nelson &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19333482&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jay@...&lt;/a&gt;&amp;gt;:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; so I am not immune
&lt;br&gt;&amp;gt; to bad ideas which on reflection must be withdrawn.
&lt;br&gt;&lt;br&gt;Well, there is a foolish corner in the brain of the wisest man,
&lt;br&gt;said Aristotle. It probably holds true still. ;-)
&lt;br&gt;&lt;br&gt;I've long since lost count of all the not-so-bright ideas I've aired
&lt;br&gt;over the years. I hope everyone else has, too. (:
&lt;br&gt;&lt;br&gt;BR,
&lt;br&gt;Ulf W
&lt;br&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19333482&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Application-granularity-%28was%3A-Parallel-Shootout---a-style-question%29-tp19325718p19333482.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19333281</id>
	<title>Re: Application granularity (was: Parallel Shootout &amp; a style question)</title>
	<published>2008-09-05T07:53:57Z</published>
	<updated>2008-09-05T07:53:57Z</updated>
	<author>
		<name>Jay Nelson-2</name>
	</author>
	<content type="html">&amp;gt; &amp;nbsp;agreed. parallelizing list comprehensions will accomplish nothing &amp;nbsp;
&lt;br&gt;&amp;gt; in phone switch/web server type applications. but that's not what &amp;nbsp;
&lt;br&gt;&amp;gt; i'm talking about either. to quote myself;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;quot;in an ideal world, all the basic OTP libs should be rewritten to &amp;nbsp;
&lt;br&gt;&amp;gt; be parallel.&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&lt;br&gt;I conflated several topics that were discussed in the previous thread.
&lt;br&gt;You are right, and this can be done incrementally, even by the community
&lt;br&gt;as contributions back to the OTP team.
&lt;br&gt;&lt;br&gt;jay
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19333281&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Application-granularity-%28was%3A-Parallel-Shootout---a-style-question%29-tp19325718p19333281.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19333118</id>
	<title>Re: New Book &quot;Erlang Programming&quot; from O'Reilly</title>
	<published>2008-09-05T07:44:32Z</published>
	<updated>2008-09-05T07:44:32Z</updated>
	<author>
		<name>pat eyler</name>
	</author>
	<content type="html">O'Reilly's not the only publisher with an Erlang book
&lt;br&gt;coming out. &amp;nbsp;I posted a while ago about a
&lt;br&gt;then-anonymous publsiher and their plans:
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://on-erlang.blogspot.com/2008/02/more-book-rumours.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://on-erlang.blogspot.com/2008/02/more-book-rumours.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;Since then, Manning has come out of hiding and
&lt;br&gt;announced their book, which is now partially available in
&lt;br&gt;early access mode:
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://www.manning.com/logan/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.manning.com/logan/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;if you want more information about the O'Reilly books, I
&lt;br&gt;posted some interviews with the authors and editor earlier
&lt;br&gt;this year:
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://on-erlang.blogspot.com/search/label/Practical%20Erlang&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://on-erlang.blogspot.com/search/label/Practical%20Erlang&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;On Wed, Sep 3, 2008 at 5:28 AM, Kenji Rikitake &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19333118&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;kenji.rikitake@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Erlang Programming
&lt;br&gt;&amp;gt; by Francesco Cesarini and Simon Thompson
&lt;br&gt;&amp;gt; to be published on December 2008
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.amazon.com/dp/0596518188&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.amazon.com/dp/0596518188&lt;/a&gt;&lt;br&gt;&amp;gt; (Anybody found the www.oreilly.com link? I didn't.)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I'm looking forward to reading the book soon.
&lt;br&gt;&amp;gt; (I've already preordered it at amazon.co.jp.)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Kenji Rikitake
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; erlang-questions mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19333118&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;thanks,
&lt;br&gt;-pate
&lt;br&gt;-------------------------
&lt;br&gt;&amp;nbsp;Duty makes us do things, Love make us do things well.
&lt;br&gt;&lt;a href=&quot;http://on-ruby.blogspot.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://on-ruby.blogspot.com&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://on-erlang.blogspot.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://on-erlang.blogspot.com&lt;/a&gt;&lt;br&gt;&amp;nbsp;&lt;a href=&quot;http://on-soccer.blogspot.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://on-soccer.blogspot.com&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19333118&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/New-Book-%22Erlang-Programming%22-from-O%27Reilly-tp19287597p19333118.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19332987</id>
	<title>Re: Application granularity (was: Parallel Shootout &amp; a style question)</title>
	<published>2008-09-05T07:41:46Z</published>
	<updated>2008-09-05T07:41:46Z</updated>
	<author>
		<name>Jay Nelson-2</name>
	</author>
	<content type="html">&amp;gt; One thread I found about parallel LC was this:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.erlang.org/pipermail/erlang-questions/2006-October/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/pipermail/erlang-questions/2006-October/&lt;/a&gt;&amp;nbsp;
&lt;br&gt;&amp;gt; 023441.html
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Where you, Jay, suggested explicitly parallel LCs.
&lt;br&gt;&lt;br&gt;A later posting proposed a gen_stream library:
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/pipermail/erlang-questions/2007-December/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/pipermail/erlang-questions/2007-December/&lt;/a&gt;&amp;nbsp;
&lt;br&gt;031634.html
&lt;br&gt;&lt;br&gt;which was a change in my thinking based on the earlier failed &amp;nbsp;
&lt;br&gt;proposition,
&lt;br&gt;the introduction of binary comprehensions (which I think were a &amp;nbsp;
&lt;br&gt;fantastic
&lt;br&gt;addition, although I'm a bit biased) and the flurry of discussions about
&lt;br&gt;the Wide Finder project.
&lt;br&gt;&lt;br&gt;I have intended to resubmit with the addition of continuation-based
&lt;br&gt;gen_streams, but haven't found the time to make the modifications yet.
&lt;br&gt;&lt;br&gt;All of these were geared to a specific problem rather than the general
&lt;br&gt;issue of arbitrary code: the efficient handling of raw data
&lt;br&gt;in the GB+ (ideally TB+) size so that databases can be replaced with
&lt;br&gt;a big blob of binary data. &amp;nbsp;Definitely a heavier task than general &amp;nbsp;
&lt;br&gt;computing.
&lt;br&gt;&lt;br&gt;jay
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19332987&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Application-granularity-%28was%3A-Parallel-Shootout---a-style-question%29-tp19325718p19332987.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19332795</id>
	<title>Re: Application granularity (was: Parallel Shootout &amp; a style question)</title>
	<published>2008-09-05T07:35:16Z</published>
	<updated>2008-09-05T07:35:16Z</updated>
	<author>
		<name>Jay Nelson-2</name>
	</author>
	<content type="html">&lt;div class='shrinkable-quote'&gt;&amp;gt; &amp;nbsp;the problem is that it doesn't really matter how many processes &amp;nbsp;
&lt;br&gt;&amp;gt; you have. to make use of a 1,000 core machine you'll need to have &amp;nbsp;
&lt;br&gt;&amp;gt; 1,000 *runnable* processes at any one time.
&lt;br&gt;&amp;gt; &amp;nbsp;E.g. a large phone switch, that handles 10,000 ongoing calls, will &amp;nbsp;
&lt;br&gt;&amp;gt; typically have ~10 runnable processes (given that you model a call &amp;nbsp;
&lt;br&gt;&amp;gt; as a process). I.e. for such a system it will buy you nothing to &amp;nbsp;
&lt;br&gt;&amp;gt; use more than 10 cores.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;mats
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;Quite right, but that's where the architecture challenge is. &amp;nbsp;There &amp;nbsp;
&lt;br&gt;has to be some areas of the problem where it can be split differently &amp;nbsp;
&lt;br&gt;if you assume the hardware is constructed differently. &amp;nbsp;For example, &amp;nbsp;
&lt;br&gt;why not one process per subscriber for services lookup rather than a &amp;nbsp;
&lt;br&gt;central database?
&lt;br&gt;&lt;br&gt;I guess the packet switching is done by other hardware than the &amp;nbsp;
&lt;br&gt;erlang router. &amp;nbsp;Surely there are more than 10 packets to route at a &amp;nbsp;
&lt;br&gt;time? &amp;nbsp;The granularity of the router process could be reduced by &amp;nbsp;
&lt;br&gt;spreading packets across 100s of router processes providing the &amp;nbsp;
&lt;br&gt;synchronization of order can be maintained. &amp;nbsp;I don't know enough &amp;nbsp;
&lt;br&gt;about your application domain to comment. &amp;nbsp;I can see ways that &amp;nbsp;
&lt;br&gt;webservers can be sped up, not by parsing requests and documents into &amp;nbsp;
&lt;br&gt;trees, but by treating their data transfers as streams that can be &amp;nbsp;
&lt;br&gt;chopped into lots of tiny pieces.
&lt;br&gt;&lt;br&gt;I agree that some applications are just sequential in nature. &amp;nbsp;But I &amp;nbsp;
&lt;br&gt;can still imagine ways to carve Microsoft Word and the browser into &amp;nbsp;
&lt;br&gt;100s of processes. &amp;nbsp;You may not get complete speed up, but you will &amp;nbsp;
&lt;br&gt;get fine-grained responsiveness. &amp;nbsp;We've just gotten used to &amp;nbsp;
&lt;br&gt;architecting large applications (and here I am mainly referring to PC &amp;nbsp;
&lt;br&gt;applications and traditional IT services), so it is difficult to &amp;nbsp;
&lt;br&gt;imagine a radical alternative to design and execution of software.
&lt;br&gt;&lt;br&gt;jay
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19332795&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Application-granularity-%28was%3A-Parallel-Shootout---a-style-question%29-tp19325718p19332795.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19332669</id>
	<title>Re: Application granularity (was: Parallel Shootout &amp; a style question)</title>
	<published>2008-09-05T07:26:34Z</published>
	<updated>2008-09-05T07:26:34Z</updated>
	<author>
		<name>Jay Nelson-2</name>
	</author>
	<content type="html">&amp;gt; One thread I found about parallel LC was this:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.erlang.org/pipermail/erlang-questions/2006-October/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/pipermail/erlang-questions/2006-October/&lt;/a&gt;&amp;nbsp;
&lt;br&gt;&amp;gt; 023441.html
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Where you, Jay, suggested explicitly parallel LCs.
&lt;br&gt;&lt;br&gt;I did suggest it and after a discussion involving Kostis
&lt;br&gt;and some of the language implementers, I realized it
&lt;br&gt;was counter to the philosophy of erlang: code is sequential,
&lt;br&gt;processes are explicit. &amp;nbsp;It makes the implementation of the
&lt;br&gt;language far easier to manage and the results far more predictable
&lt;br&gt;for a programmer. &amp;nbsp;(Or more bluntly, I was disabused of the idea.)
&lt;br&gt;&lt;br&gt;Although, this was 2 years ago and as I said, I have been
&lt;br&gt;contemplating related topics for a while and have come
&lt;br&gt;to the conclusion that granularity of application is more
&lt;br&gt;important than worrying about slow spots in the code.
&lt;br&gt;&lt;br&gt;I have also suggested receive channels and have
&lt;br&gt;since abandoned that suggestion as well, so I am not immune
&lt;br&gt;to bad ideas which on reflection must be withdrawn.
&lt;br&gt;Which, by the way, I've concluded as ROK pointed out
&lt;br&gt;are muted by the introduction of more processes.
&lt;br&gt;&lt;br&gt;jay
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19332669&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Application-granularity-%28was%3A-Parallel-Shootout---a-style-question%29-tp19325718p19332669.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19331122</id>
	<title>Re: Incomplete detaching from a controlling terminal</title>
	<published>2008-09-05T06:17:04Z</published>
	<updated>2008-09-05T06:17:04Z</updated>
	<author>
		<name>Sverker Eriksson</name>
	</author>
	<content type="html">Sergei Golovan wrote:
&lt;br&gt;&amp;gt; Appears that if started with -detached option erlexec doesn't fully
&lt;br&gt;&amp;gt; detach from a controlling terminal which may end with killing a
&lt;br&gt;&amp;gt; detached service. 
&lt;br&gt;Thanks! It will be corrected in R12B-5.
&lt;br&gt;&lt;br&gt;/Sverker, Erlang/OTP Ericsson
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;erlang-bugs mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19331122&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-bugs@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-bugs&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-bugs&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Bugs-f14097.html&quot; embed=&quot;fixTarget[14097]&quot; target=&quot;_top&quot; &gt;Erlang Bugs&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Incomplete-detaching-from-a-controlling-terminal-tp18551319p19331122.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19330418</id>
	<title>Re: pgsql:prepare() doesn't work with PostgreSQL 8.3.3</title>
	<published>2008-09-05T05:30:44Z</published>
	<updated>2008-09-05T05:30:44Z</updated>
	<author>
		<name>Sergey S.</name>
	</author>
	<content type="html">&lt;div dir=&quot;ltr&quot;&gt;Hello.&lt;br&gt;&lt;br&gt;As addition to the previous message on pgsql. Such code:&lt;br&gt;&lt;br&gt;pgsql:pquery(Db, &amp;quot;INSERT INTO foo VALUES ($1)&amp;quot;, [555])&lt;br&gt;&lt;br&gt;also doesn&amp;#39;t work, producing the error:&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------&lt;br&gt;
** exception exit: {timeout,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {gen_server,call,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&amp;lt;0.131.0&amp;gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {equery,{&amp;quot;INSERT INTO foo VALUES ($1)&amp;quot;,[2]}}]}}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; in function&amp;nbsp; gen_server:call/2&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; in call from gin_test:storage/0&lt;br&gt;------------------------------------------------------------------------&lt;br&gt;&lt;br&gt;The only way I see to do insert is:&lt;br&gt;&lt;br&gt;Query = lists:flatten(io_lib:format(&amp;quot;INSERT INTO foo VALUES (~p)&amp;quot;, [555]))&lt;br&gt;
pgsql:squery(Db, Query)&lt;br&gt;&lt;br&gt;But it&amp;#39;s not so fast...&lt;br&gt;&lt;br&gt;Jungerl have the same problems, since pgsql from ejabberd-modules is a fork of pgsql from jungerl.&lt;br&gt;&lt;br&gt;psql from &lt;a href=&quot;http://code.google.com/p/erlang-psql-driver/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://code.google.com/p/erlang-psql-driver/&lt;/a&gt; seems to be unmaitaine&lt;strong&gt;&lt;/strong&gt;d (Project status: this project was just a proof of concept and is currently unmaintained)&lt;br&gt;
&lt;br&gt;Driver from Erlang Consulting is too old.&lt;br&gt;&lt;br&gt;ODBC?&lt;br&gt;&lt;br&gt;Which driver do you you with PostgreSQL?&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;&lt;br&gt;Thanks.&lt;br&gt;&lt;br&gt;--&lt;br&gt;Sergey&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19330418&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/pgsql%3Aprepare%28%29-doesn%27t-work-with-PostgreSQL-8.3.3-tp19328674p19330418.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19330169</id>
	<title>PID recycling</title>
	<published>2008-09-05T05:08:22Z</published>
	<updated>2008-09-05T05:08:22Z</updated>
	<author>
		<name>Zoltan Peter Toth</name>
	</author>
	<content type="html">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;meta content=&quot;text/html;charset=ISO-8859-1&quot; http-equiv=&quot;Content-Type&quot;&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#ffffff&quot; text=&quot;#000000&quot;&gt;
&lt;meta content=&quot;text/html;charset=ISO-8859-1&quot; http-equiv=&quot;Content-Type&quot;&gt;
Hi,&lt;br&gt;
&lt;br&gt;
I saw that Erlang PID-s, beside their visible part, have an invisible
part, incarnation counter.&lt;br&gt;
It appears to be cycled between the values 1-&amp;gt;2-&amp;gt;3. (Look at the
last byte of the binaries below.)&lt;br&gt;
&lt;br&gt;
&lt;tt&gt;erl -sname a&lt;br&gt;
Erlang (BEAM) emulator version 5.6.1 [source] [async-threads:0]
[kernel-poll:false]&lt;br&gt;
&lt;br&gt;
Eshell V5.6.1&amp;nbsp; (abort with ^G)&lt;br&gt;
(a@mwlx081)1&amp;gt; term_to_binary(self()).&lt;br&gt;
&amp;lt;&amp;lt;131,103,100,0,9,97,64,109,119,108,120,48,56,49,0,0,0,37,&lt;br&gt;
&amp;nbsp; 0,0,0,0,&lt;b&gt;2&lt;/b&gt;&amp;gt;&amp;gt;&lt;br&gt;
&lt;br&gt;
erl -sname a&lt;br&gt;
Erlang (BEAM) emulator version 5.6.1 [source] [async-threads:0]
[kernel-poll:false]&lt;br&gt;
&lt;br&gt;
Eshell V5.6.1&amp;nbsp; (abort with ^G)&lt;br&gt;
(a@mwlx081)1&amp;gt; term_to_binary(self()).&lt;br&gt;
&amp;lt;&amp;lt;131,103,100,0,9,97,64,109,119,108,120,48,56,49,0,0,0,37,&lt;br&gt;
&amp;nbsp; 0,0,0,0,&lt;b&gt;3&lt;/b&gt;&amp;gt;&amp;gt;&lt;/tt&gt;&lt;br&gt;
&lt;tt&gt;(a@mwlx081)3&amp;gt; binary_to_term(
&amp;lt;&amp;lt;131,103,100,0,9,97,64,109,119,108,120,48,56,49,0,0,0,37,0,0,0,0,2&amp;gt;&amp;gt;
).&lt;br&gt;
&amp;lt;0.37.0&amp;gt;&lt;br&gt;
(a@mwlx081)4&amp;gt; binary_to_term(
&amp;lt;&amp;lt;131,103,100,0,9,97,64,109,119,108,120,48,56,49,0,0,0,37,0,0,0,0,1&amp;gt;&amp;gt;
).&lt;br&gt;
&amp;lt;0.37.0&amp;gt;&lt;br&gt;
(a@mwlx081)5&amp;gt; binary_to_term(
&amp;lt;&amp;lt;131,103,100,0,9,97,64,109,119,108,120,48,56,49,0,0,0,37,0,0,0,0,&lt;b&gt;1&lt;/b&gt;&amp;gt;&amp;gt;
) == self().&lt;br&gt;
false&lt;br&gt;
(a@mwlx081)6&amp;gt; binary_to_term(
&amp;lt;&amp;lt;131,103,100,0,9,97,64,109,119,108,120,48,56,49,0,0,0,37,0,0,0,0,&lt;b&gt;2&lt;/b&gt;&amp;gt;&amp;gt;
) == self().&lt;br&gt;
false&lt;br&gt;
(a@mwlx081)7&amp;gt; binary_to_term(
&amp;lt;&amp;lt;131,103,100,0,9,97,64,109,119,108,120,48,56,49,0,0,0,37,0,0,0,0,&lt;b&gt;3&lt;/b&gt;&amp;gt;&amp;gt;
) == self().&lt;br&gt;
true&lt;br&gt;
(a@mwlx081)8&amp;gt; binary_to_term(
&amp;lt;&amp;lt;131,103,100,0,9,97,64,109,119,108,120,48,56,49,0,0,0,37,0,0,0,0,2&amp;gt;&amp;gt;
) ! ok.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;
&lt;br&gt;
=ERROR REPORT==== 3-Sep-2008::15:04:42 ===&lt;br&gt;
Discarding message ok from &amp;lt;0.37.0&amp;gt; to &amp;lt;0.37.0&amp;gt; in an old
incarnation (2) of this node (3)&lt;br&gt;
&lt;br&gt;
ok&lt;br&gt;
&lt;br&gt;
Question: how is the last used incarnation stored and when are values
recycled ? (on Linux)&lt;br&gt;
Is there any way to change the cycling range ?&lt;br&gt;
Just for my curiosity :)&lt;br&gt;
&lt;br&gt;
Br,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Zoltan&lt;br&gt;
&lt;br&gt;
&lt;/tt&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19330169&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/PID-recycling-tp19330169p19330169.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19329522</id>
	<title>Missing documentation</title>
	<published>2008-09-05T04:37:31Z</published>
	<updated>2008-09-05T04:37:31Z</updated>
	<author>
		<name>Vlad Dumitrescu-2</name>
	</author>
	<content type="html">Hi!
&lt;br&gt;&lt;br&gt;The R12 documentation is missing documentation for some functions. The
&lt;br&gt;ones I noticed are code:is_sticky/1 and is_module_native/1.
&lt;br&gt;&lt;br&gt;best regards,
&lt;br&gt;Vlad
&lt;br&gt;_______________________________________________
&lt;br&gt;erlang-bugs mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19329522&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-bugs@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-bugs&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-bugs&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Bugs-f14097.html&quot; embed=&quot;fixTarget[14097]&quot; target=&quot;_top&quot; &gt;Erlang Bugs&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Missing-documentation-tp19329522p19329522.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19329503</id>
	<title>Re: dealing with large dicts</title>
	<published>2008-09-05T04:35:15Z</published>
	<updated>2008-09-05T04:35:15Z</updated>
	<author>
		<name>Richard Carlsson-2</name>
	</author>
	<content type="html">Paul Fisher wrote:
&lt;br&gt;&amp;gt; Did you notice that i suggested that he use the 'compressed' option in
&lt;br&gt;&amp;gt; the term_to_binary/2 call? &amp;nbsp;While this does not avoid all of the
&lt;br&gt;&amp;gt; overhead it does have much less data moving between the processes, which
&lt;br&gt;&amp;gt; will help some.
&lt;br&gt;&lt;br&gt;I missed the compressed flag, but it will not do much for performance,
&lt;br&gt;even if it might postpone the memory problem. (A quick test compressing
&lt;br&gt;a large dict reduced the binary to a quarter of the uncompressed size.)
&lt;br&gt;&lt;br&gt;I looked back to the original post, which said the problem was an out
&lt;br&gt;of memory error - and assuming that a single dict (or two) fit in
&lt;br&gt;memory, the code example cannot in itself be the problem. It is very
&lt;br&gt;inefficient, but that's mostly CPU-wise. At the end of each transaction
&lt;br&gt;the dict is ready to be garbage collected, so there is no memory leak.
&lt;br&gt;It seems likely that the crashing is due to the entire load on the
&lt;br&gt;memory system (huge ets tables?) and perhaps a leak elsewhere.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; /Richard
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19329503&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/dealing-with-large-dicts-tp19315749p19329503.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19329196</id>
	<title>Re: Convert atom and arity into fun</title>
	<published>2008-09-05T04:09:19Z</published>
	<updated>2008-09-05T04:09:19Z</updated>
	<author>
		<name>Bugzilla from bekesa@sch.bme.hu</name>
	</author>
	<content type="html">&amp;gt; &amp;nbsp; &amp;nbsp; F = fun mod:name/arity, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;% or fun name/arity if local function
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; F(Arg1, Arg2, ...) 
&lt;br&gt;&lt;br&gt;If you don't really need a fun to pass around, just want to call the
&lt;br&gt;function, then simply:
&lt;br&gt;Mod:Name(Arg1,Arg2...)
&lt;br&gt;&lt;br&gt;use apply/3 only if you don't know the arity at compile time.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Georgy
&lt;br&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19329196&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Convert-atom-and-arity-into-fun-tp19328616p19329196.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19329013</id>
	<title>Re: Convert atom and arity into fun</title>
	<published>2008-09-05T03:54:55Z</published>
	<updated>2008-09-05T03:54:55Z</updated>
	<author>
		<name>Jeroen Koops</name>
	</author>
	<content type="html">I needed this as a quick way to invoke all exported functions from a
&lt;br&gt;module whose names start with 'test_' - a miniature unit-test
&lt;br&gt;framework if you will. Each function returns either true, if the test
&lt;br&gt;succeeds, or {false, Reason} if it fails.
&lt;br&gt;&lt;br&gt;The following function gives a list of all exported functions starting
&lt;br&gt;with 'test_' and arity 0:
&lt;br&gt;&lt;br&gt;tests() -&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; lists:filter(fun({Name, Arity}) -&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Arity =:= 0 andalso lists:prefix(&amp;quot;test_&amp;quot;,
&lt;br&gt;atom_to_list(Name))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;end, module_info(exports)).
&lt;br&gt;&lt;br&gt;Next, using apply/3 as suggested by Gleb, they're all invoked and the
&lt;br&gt;results formatted by:
&lt;br&gt;&lt;br&gt;&amp;nbsp;[ case apply(?MODULE, X, []) of true -&amp;gt; {X, ok}; {false, Why} -&amp;gt; {X,
&lt;br&gt;error, Why} end || {X,0} &amp;lt;- tests() ].
&lt;br&gt;&lt;br&gt;Works like a charm (until test-functions start throwing unexpected
&lt;br&gt;exceptions, but I'll get to that when it actually happens)!
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;On Fri, Sep 5, 2008 at 12:45 PM, Richard Carlsson &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19329013&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;richardc@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Jeroen Koops wrote:
&lt;br&gt;&amp;gt;&amp;gt; Given a function's name as an atom and an arity (for instance as
&lt;br&gt;&amp;gt;&amp;gt; returned by module_info(exports)), how can I convert this into a fun
&lt;br&gt;&amp;gt;&amp;gt; that I can invoke?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; There is currently no immediate way of doing this. If you just want
&lt;br&gt;&amp;gt; to call the function, you can use M:F(...) or apply(M,F,[...]). If
&lt;br&gt;&amp;gt; you need a fun, to pass it somewhere, you can wrap such a call in a
&lt;br&gt;&amp;gt; new fun, like this: F = fun (...) -&amp;gt; M:F(...) end.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;/Richard
&lt;br&gt;&amp;gt;
&lt;/div&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19329013&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Convert-atom-and-arity-into-fun-tp19328616p19329013.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19329000</id>
	<title>Re: Convert atom and arity into fun</title>
	<published>2008-09-05T03:53:23Z</published>
	<updated>2008-09-05T03:53:23Z</updated>
	<author>
		<name>Bugzilla from bekesa@sch.bme.hu</name>
	</author>
	<content type="html">&amp;gt; Given a function's name as an atom and an arity (for instance as
&lt;br&gt;&amp;gt; returned by module_info(exports)), how can I convert this into a fun
&lt;br&gt;&amp;gt; that I can invoke?
&lt;br&gt;&lt;br&gt;fun Module:FunctionName/Arity
&lt;br&gt;&lt;br&gt;You can find it here:
&lt;br&gt;Erlang Reference Manual/ 6. Expressions/ 6.17 Fun Expressions
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Georgy
&lt;br&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19329000&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Convert-atom-and-arity-into-fun-tp19328616p19329000.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19328867</id>
	<title>Re: Convert atom and arity into fun</title>
	<published>2008-09-05T03:45:57Z</published>
	<updated>2008-09-05T03:45:57Z</updated>
	<author>
		<name>Richard Carlsson-2</name>
	</author>
	<content type="html">Jeroen Koops wrote:
&lt;br&gt;&amp;gt; Given a function's name as an atom and an arity (for instance as
&lt;br&gt;&amp;gt; returned by module_info(exports)), how can I convert this into a fun
&lt;br&gt;&amp;gt; that I can invoke?
&lt;br&gt;&lt;br&gt;There is currently no immediate way of doing this. If you just want
&lt;br&gt;to call the function, you can use M:F(...) or apply(M,F,[...]). If
&lt;br&gt;you need a fun, to pass it somewhere, you can wrap such a call in a
&lt;br&gt;new fun, like this: F = fun (...) -&amp;gt; M:F(...) end.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; /Richard
&lt;br&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19328867&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Convert-atom-and-arity-into-fun-tp19328616p19328867.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19328846</id>
	<title>Re: Convert atom and arity into fun</title>
	<published>2008-09-05T03:43:55Z</published>
	<updated>2008-09-05T03:43:55Z</updated>
	<author>
		<name>Robert Virding-2</name>
	</author>
	<content type="html">&lt;div dir=&quot;ltr&quot;&gt;Of course another way of doing it which seems more in accord to what was asked, at least how I interpreted it, is to do:&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; F = fun mod:name/arity,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % or fun name/arity if local function&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; F(Arg1, Arg2, ...)&lt;br&gt;
&lt;br&gt;if you know the name and arity of the function. This will not work if you don&amp;#39;t know the name or arity of the function at compile-time, then use Gleb&amp;#39;s suggestion.&lt;br&gt;&lt;br&gt;Robert&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;
2008/9/5 Gleb Peregud &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19328846&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;gleber.p@...&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
On Fri, Sep 5, 2008 at 12:22 PM, Jeroen Koops &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19328846&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;koops.j@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;
&amp;gt; Hi,&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; The answer to this question is probably obvious, but I can&amp;#39;t find it&lt;br&gt;
&amp;gt; after searching around for a while:&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Given a function&amp;#39;s name as an atom and an arity (for instance as&lt;br&gt;
&amp;gt; returned by module_info(exports)), how can I convert this into a fun&lt;br&gt;
&amp;gt; that I can invoke?&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Thanks in advance,&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Jeroen Koops&lt;br&gt;
&amp;gt; _______________________________________________&lt;br&gt;
&amp;gt; erlang-questions mailing list&lt;br&gt;
&amp;gt; &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19328846&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;&lt;br&gt;
&amp;gt; &lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&lt;br&gt;
Check out erlang:apply/3 (it&amp;#39;s a BIF). It is described in manual (man erlang).&lt;br&gt;
&lt;br&gt;
You can use Module:Function(Arg1, Arg2, ...) where Module and Function&lt;br&gt;
are variables bound to appropriate atoms. Like this:&lt;br&gt;
&lt;br&gt;
Module = lists,&lt;br&gt;
Function = flatlength,&lt;br&gt;
[1, 2] = Module:Function([1], [2])&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
--&lt;br&gt;
Gleb Peregud&lt;br&gt;
&lt;a href=&quot;http://gleber.pl/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://gleber.pl/&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Every minute is to be grasped.&lt;br&gt;
Time waits for nobody.&lt;br&gt;
-- Inscription on a Zen Gong&lt;br&gt;
_______________________________________________&lt;br&gt;
erlang-questions mailing list&lt;br&gt;
&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19328846&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;&lt;/div&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19328846&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Convert-atom-and-arity-into-fun-tp19328616p19328846.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19328796</id>
	<title>Re: Convert atom and arity into fun</title>
	<published>2008-09-05T03:37:37Z</published>
	<updated>2008-09-05T03:37:37Z</updated>
	<author>
		<name>Christian S-2</name>
	</author>
	<content type="html">funny(M,{F, 0}) -&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;fun () -&amp;gt; M:F() end;
&lt;br&gt;funny(M, {F, 1}) -&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;fun (A) -&amp;gt; M:F(A) end;
&lt;br&gt;...
&lt;br&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19328796&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Convert-atom-and-arity-into-fun-tp19328616p19328796.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19328736</id>
	<title>Re: Convert atom and arity into fun</title>
	<published>2008-09-05T03:35:48Z</published>
	<updated>2008-09-05T03:35:48Z</updated>
	<author>
		<name>Jeroen Koops</name>
	</author>
	<content type="html">Thanks, just what I was looking for.
&lt;br&gt;&lt;br&gt;On Fri, Sep 5, 2008 at 12:31 PM, Gleb Peregud &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19328736&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;gleber.p@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Fri, Sep 5, 2008 at 12:22 PM, Jeroen Koops &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19328736&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;koops.j@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; The answer to this question is probably obvious, but I can't find it
&lt;br&gt;&amp;gt;&amp;gt; after searching around for a while:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Given a function's name as an atom and an arity (for instance as
&lt;br&gt;&amp;gt;&amp;gt; returned by module_info(exports)), how can I convert this into a fun
&lt;br&gt;&amp;gt;&amp;gt; that I can invoke?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Thanks in advance,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Jeroen Koops
&lt;br&gt;&amp;gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt;&amp;gt; erlang-questions mailing list
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19328736&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Check out erlang:apply/3 (it's a BIF). It is described in manual (man erlang).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; You can use Module:Function(Arg1, Arg2, ...) where Module and Function
&lt;br&gt;&amp;gt; are variables bound to appropriate atoms. Like this:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Module = lists,
&lt;br&gt;&amp;gt; Function = flatlength,
&lt;br&gt;&amp;gt; [1, 2] = Module:Function([1], [2])
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; Gleb Peregud
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://gleber.pl/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleber.pl/&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Every minute is to be grasped.
&lt;br&gt;&amp;gt; Time waits for nobody.
&lt;br&gt;&amp;gt; -- Inscription on a Zen Gong
&lt;br&gt;&amp;gt;
&lt;/div&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19328736&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Convert-atom-and-arity-into-fun-tp19328616p19328736.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19328690</id>
	<title>Re: Convert atom and arity into fun</title>
	<published>2008-09-05T03:31:18Z</published>
	<updated>2008-09-05T03:31:18Z</updated>
	<author>
		<name>Gleb Peregud</name>
	</author>
	<content type="html">On Fri, Sep 5, 2008 at 12:22 PM, Jeroen Koops &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19328690&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;koops.j@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The answer to this question is probably obvious, but I can't find it
&lt;br&gt;&amp;gt; after searching around for a while:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Given a function's name as an atom and an arity (for instance as
&lt;br&gt;&amp;gt; returned by module_info(exports)), how can I convert this into a fun
&lt;br&gt;&amp;gt; that I can invoke?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks in advance,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Jeroen Koops
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; erlang-questions mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19328690&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;Check out erlang:apply/3 (it's a BIF). It is described in manual (man erlang).
&lt;br&gt;&lt;br&gt;You can use Module:Function(Arg1, Arg2, ...) where Module and Function
&lt;br&gt;are variables bound to appropriate atoms. Like this:
&lt;br&gt;&lt;br&gt;Module = lists,
&lt;br&gt;Function = flatlength,
&lt;br&gt;[1, 2] = Module:Function([1], [2])
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Gleb Peregud
&lt;br&gt;&lt;a href=&quot;http://gleber.pl/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleber.pl/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Every minute is to be grasped.
&lt;br&gt;Time waits for nobody.
&lt;br&gt;-- Inscription on a Zen Gong
&lt;br&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19328690&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Convert-atom-and-arity-into-fun-tp19328616p19328690.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19328674</id>
	<title>pgsql:prepare() doesn't work with PostgreSQL 8.3.3</title>
	<published>2008-09-05T03:30:03Z</published>
	<updated>2008-09-05T03:30:03Z</updated>
	<author>
		<name>Sergey S.</name>
	</author>
	<content type="html">&lt;div dir=&quot;ltr&quot;&gt;&lt;p&gt;Does anybody use pgsql:prepare() function from pgsql driver with latest PostgreSQL 8.3.3?&lt;/p&gt;&lt;p&gt;I tried with both of jungerl and ejabberd-modules versions and have the following issue:&lt;/p&gt;&lt;p&gt;I have the following simple table:&lt;br&gt;
&lt;/p&gt;&lt;p&gt;CREATE TABLE foo (&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bar&amp;nbsp;&amp;nbsp;&amp;nbsp; int&lt;br&gt;);&lt;/p&gt;And this code:&lt;br&gt;&lt;p&gt;% -------------------------------------------------&lt;br&gt;&lt;/p&gt;&lt;p&gt;test_pgsql() -&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {ok, Db} = pgsql:connect(&amp;quot;localhost&amp;quot;, &amp;quot;test&amp;quot;, &amp;quot;test&amp;quot;, &amp;quot;&amp;quot;),&lt;br&gt;
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pgsql:prepare(Db, add_example, &amp;quot;INSERT INTO foo (bar) VALUES ($1::int4)&amp;quot;), % &amp;lt;- CRASH occured at this call!&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pgsql:execute(Db, add_example, [1, 2]),&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pgsql:terminate(Db).&lt;/p&gt;&lt;p&gt;% -------------------------------------------------&lt;/p&gt;
&lt;p&gt;When pgsql:prepare() is called I get (in ejabberd-modules edition) the following error message: &lt;a href=&quot;http://pastebin.com/f1b777cd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pastebin.com/f1b777cd&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I tried to ommit &amp;quot;::int4&amp;quot; suffix - this didn&amp;#39;t help.&lt;br&gt;
&lt;/p&gt;&lt;p&gt;squery() and pquery() work fine.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Thanks.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;--&lt;/p&gt;&lt;p&gt;Sergey&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19328674&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/pgsql%3Aprepare%28%29-doesn%27t-work-with-PostgreSQL-8.3.3-tp19328674p19328674.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19328677</id>
	<title>Any way to specify erl flags for sinan shell?</title>
	<published>2008-09-05T03:29:33Z</published>
	<updated>2008-09-05T03:29:33Z</updated>
	<author>
		<name>daws</name>
	</author>
	<content type="html">&lt;div dir=&quot;ltr&quot;&gt;Hey Guys, I&amp;#39;d like to specify -boot &amp;lt;release&amp;gt; for sinan shell. Can I do that somehow?&lt;/div&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19328677&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;div class=&quot;signature&quot;&gt;&amp;quot;The best way to predict the future is to invent it.&amp;quot; - Alan Kay&lt;/div&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Any-way-to-specify-erl-flags-for-sinan-shell--tp19328677p19328677.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19328616</id>
	<title>Convert atom and arity into fun</title>
	<published>2008-09-05T03:22:31Z</published>
	<updated>2008-09-05T03:22:31Z</updated>
	<author>
		<name>Jeroen Koops</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;The answer to this question is probably obvious, but I can't find it
&lt;br&gt;after searching around for a while:
&lt;br&gt;&lt;br&gt;Given a function's name as an atom and an arity (for instance as
&lt;br&gt;returned by module_info(exports)), how can I convert this into a fun
&lt;br&gt;that I can invoke?
&lt;br&gt;&lt;br&gt;Thanks in advance,
&lt;br&gt;&lt;br&gt;Jeroen Koops
&lt;br&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19328616&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Convert-atom-and-arity-into-fun-tp19328616p19328616.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19326795</id>
	<title>Re: Application granularity (was: Parallel Shootout &amp; a style question)</title>
	<published>2008-09-05T01:02:23Z</published>
	<updated>2008-09-05T01:02:23Z</updated>
	<author>
		<name>Ulf Wiger (TN/EAB)</name>
	</author>
	<content type="html">Jay Nelson skrev:
&lt;br&gt;&amp;gt; ... in response to a flurry of messages about automatically 
&lt;br&gt;&amp;gt; parallelizing list comprehensions ...
&lt;br&gt;&lt;br&gt;I for one have never suggested parallelizing list comprehensions,
&lt;br&gt;but asked for a utility library that offers parallel versions
&lt;br&gt;of e.g. list iterations.
&lt;br&gt;&lt;br&gt;Richard O'Keefe's EEP12 could perhaps be extended to also
&lt;br&gt;support notation for when an LC could be done in parallel,
&lt;br&gt;but it could well get really messy if not done Just Right.
&lt;br&gt;Most likely, it would make it much less appealing to extend
&lt;br&gt;LCs in other ways, e.g. with ideas taken from Haskell or
&lt;br&gt;Python.
&lt;br&gt;&lt;br&gt;One thread I found about parallel LC was this:
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/pipermail/erlang-questions/2006-October/023441.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/pipermail/erlang-questions/2006-October/023441.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;Where you, Jay, suggested explicitly parallel LCs.
&lt;br&gt;That, of course has to be weighed against the cost of introducing
&lt;br&gt;a new language feature, but at least it doesn't break the
&lt;br&gt;Principle of Least Surprise.
&lt;br&gt;&lt;br&gt;...
&lt;br&gt;&lt;br&gt;Ok, I admit that I did get carried away and sketched a version
&lt;br&gt;of lists:map/2 that parallelizes if SMP is enabled.
&lt;br&gt;&lt;br&gt;Richard's point that LCs and the list iteration functions may
&lt;br&gt;and often do contain side-effects is of course a show stopper,
&lt;br&gt;as regards modifying functions like lists:map/2 and (especially
&lt;br&gt;of course) lists:foreach/2 to suddenly have an undefined order of
&lt;br&gt;evaluation.
&lt;br&gt;&lt;br&gt;&lt;br&gt;QLC might be persuaded to enable parallel LCs, since you can
&lt;br&gt;provide a list of options to go with the specification of a
&lt;br&gt;query...
&lt;br&gt;&lt;br&gt;BR,
&lt;br&gt;Ulf W
&lt;br&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19326795&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Application-granularity-%28was%3A-Parallel-Shootout---a-style-question%29-tp19325718p19326795.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19326823</id>
	<title>Re: Application granularity (was: Parallel Shootout &amp; a style question)</title>
	<published>2008-09-05T01:02:15Z</published>
	<updated>2008-09-05T01:02:15Z</updated>
	<author>
		<name>Mats Cronqvist-4</name>
	</author>
	<content type="html">Jay Nelson wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; ... in response to a flurry of messages about automatically &amp;nbsp;
&lt;br&gt;&amp;gt; parallelizing list comprehensions ...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; If I go through all the code I have written and count the number of &amp;nbsp;
&lt;br&gt;&amp;gt; list comprehensions relative to the total amount of code, there are &amp;nbsp;
&lt;br&gt;&amp;gt; not that many occurrences to worry about. &amp;nbsp;The length of each &amp;nbsp;
&lt;br&gt;&amp;gt; comprehension's data set is not that great in typical code, and &amp;nbsp;
&lt;br&gt;&amp;gt; unless it is a very data parallel algorithm such as matrix &amp;nbsp;
&lt;br&gt;&amp;gt; manipulation, there is little to be gained overall. &amp;nbsp;Mats toss off of &amp;nbsp;
&lt;br&gt;&amp;gt; 10% would over-estimate the likely benefit in the code I typically &amp;nbsp;
&lt;br&gt;&amp;gt; have to implement.
&lt;br&gt;&amp;gt; &amp;nbsp; 
&lt;/div&gt;&lt;br&gt;&amp;nbsp; agreed. parallelizing list comprehensions will accomplish nothing in 
&lt;br&gt;phone switch/web server type applications. but that's not what i'm 
&lt;br&gt;talking about either. to quote myself;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;quot;in an ideal world, all the basic OTP libs should be rewritten to be 
&lt;br&gt;parallel.&amp;quot;
&lt;br&gt;&lt;br&gt;{snipped some stuff i more or less agree with}
&lt;br&gt;&amp;gt; I believe the compiler writers and tool builders should focus on &amp;nbsp;
&lt;br&gt;&amp;gt; making it easier to produce more numerous, but smaller processes, &amp;nbsp;
&lt;br&gt;&amp;gt; rather than trying to make the sequential code eke out an additional &amp;nbsp;
&lt;br&gt;&amp;gt; 10% of performance. &amp;nbsp;I want my code to run 1000x faster when I get a &amp;nbsp;
&lt;br&gt;&amp;gt; 1000 core machine. &amp;nbsp;I likely will need 100,000 processes to realize &amp;nbsp;
&lt;br&gt;&amp;gt; that goal.
&lt;br&gt;&lt;br&gt;&amp;nbsp; the problem is that it doesn't really matter how many processes you 
&lt;br&gt;have. to make use of a 1,000 core machine you'll need to have 1,000 
&lt;br&gt;*runnable* processes at any one time.
&lt;br&gt;&amp;nbsp; E.g. a large phone switch, that handles 10,000 ongoing calls, will 
&lt;br&gt;typically have ~10 runnable processes (given that you model a call as a 
&lt;br&gt;process). I.e. for such a system it will buy you nothing to use more 
&lt;br&gt;than 10 cores.
&lt;br&gt;&lt;br&gt;&amp;nbsp; mats
&lt;br&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19326823&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Application-granularity-%28was%3A-Parallel-Shootout---a-style-question%29-tp19325718p19326823.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19326090</id>
	<title>Re: dealing with large dicts</title>
	<published>2008-09-04T23:58:47Z</published>
	<updated>2008-09-04T23:58:47Z</updated>
	<author>
		<name>Richard Carlsson-2</name>
	</author>
	<content type="html">Paul Fisher wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; While not always the right thing because of the extra cpu overhead, you 
&lt;br&gt;&amp;gt; can reduce some of the memory overhead and copying with something like this:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; T = fun(Term, Key) -&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[CDict1] = mnesia:read(Table, Term),
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Dict1 = binary_to_term( CDict1 ),
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Dict2 = dict:store(Key, Val, Dict1),
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CDict2 = term_to_binary( Dict2, [compressed] ),
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ok = write_val(Table, Term, CDict2)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;end.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; This will keep the size down for the copies and should be ref counted 
&lt;br&gt;&amp;gt; when passed from/to mnesia/ets/dets process to retrieve/store.
&lt;/div&gt;&lt;br&gt;No. First, term_to_binary and binary_to_term will do exactly as much
&lt;br&gt;work as the original copying. Second, the binaries will use more space
&lt;br&gt;than the internal representation (look at term_to_binary({foo,foo}) and
&lt;br&gt;you'll see why). Third, if mnesia uses dets tables, you'll now have
&lt;br&gt;twice the copying.
&lt;br&gt;&lt;br&gt;The solution to the problem is not to have a dynamic number of tables,
&lt;br&gt;but to use a more traditional database management approach.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; /Richard
&lt;br&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19326090&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/dealing-with-large-dicts-tp19315749p19326090.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19325718</id>
	<title>Application granularity (was: Parallel Shootout &amp; a style question)</title>
	<published>2008-09-04T23:33:14Z</published>
	<updated>2008-09-04T23:33:14Z</updated>
	<author>
		<name>Jay Nelson-2</name>
	</author>
	<content type="html">... in response to a flurry of messages about automatically &amp;nbsp;
&lt;br&gt;parallelizing list comprehensions ...
&lt;br&gt;&lt;br&gt;If I go through all the code I have written and count the number of &amp;nbsp;
&lt;br&gt;list comprehensions relative to the total amount of code, there are &amp;nbsp;
&lt;br&gt;not that many occurrences to worry about. &amp;nbsp;The length of each &amp;nbsp;
&lt;br&gt;comprehension's data set is not that great in typical code, and &amp;nbsp;
&lt;br&gt;unless it is a very data parallel algorithm such as matrix &amp;nbsp;
&lt;br&gt;manipulation, there is little to be gained overall. &amp;nbsp;Mats toss off of &amp;nbsp;
&lt;br&gt;10% would over-estimate the likely benefit in the code I typically &amp;nbsp;
&lt;br&gt;have to implement.
&lt;br&gt;&lt;br&gt;... also references to tuning the number of processes to the number &amp;nbsp;
&lt;br&gt;of cores ...
&lt;br&gt;&lt;br&gt;Tuning to a specific hardware configuration is folly unless you have &amp;nbsp;
&lt;br&gt;only one implementation site and never plan on modifying the setup. &amp;nbsp; 
&lt;br&gt;I really would not recommend this approach to programming, unless you &amp;nbsp;
&lt;br&gt;have a specific problem that can only be achieved today by a &amp;nbsp;
&lt;br&gt;carefully tuned solution. &amp;nbsp;I think the majority of cases do not fall &amp;nbsp;
&lt;br&gt;in this boat.
&lt;br&gt;&lt;br&gt;------
&lt;br&gt;&lt;br&gt;In general, the erlang approach is to isolate sequential code within &amp;nbsp;
&lt;br&gt;a collection of processes. &amp;nbsp;The great effort comes in architecting a &amp;nbsp;
&lt;br&gt;good organization and hierarchy of logic so that failures and &amp;nbsp;
&lt;br&gt;efficiency are spread to maximum effect. &amp;nbsp;What is desired is an &amp;nbsp;
&lt;br&gt;efficient and responsive _application_ rather than an efficient &amp;nbsp;
&lt;br&gt;snippet of code sprinkled here and there.
&lt;br&gt;&lt;br&gt;In terms of performance, I look to scalability -- running on a newer &amp;nbsp;
&lt;br&gt;machine should run faster without any tweaks. &amp;nbsp;Tweaks may improve &amp;nbsp;
&lt;br&gt;things more, but they should be unnecessary to get the basic speed up.
&lt;br&gt;&lt;br&gt;Quite a while back (a couple decades) I remember hearing about &amp;nbsp;
&lt;br&gt;attempts to parallelize code. &amp;nbsp;No one could seem to get a linear &amp;nbsp;
&lt;br&gt;speed up with the number of processors. &amp;nbsp;One day it was announced &amp;nbsp;
&lt;br&gt;that a direct linear speed up had been achieved and it seemed the &amp;nbsp;
&lt;br&gt;number of processors could be increased without loss of linearity. &amp;nbsp; 
&lt;br&gt;This alchemy was performed by turning the approach upside down. &amp;nbsp; 
&lt;br&gt;Instead of trying to decompose an algorithm into components that were &amp;nbsp;
&lt;br&gt;independent and could efficiently parallelize, the implementors chose &amp;nbsp;
&lt;br&gt;to multiply the problem by a few orders of magnitude. &amp;nbsp;They &amp;nbsp;
&lt;br&gt;replicated the algorithm and scaled up the problem to produce more &amp;nbsp;
&lt;br&gt;work than the processors could achieve. &amp;nbsp;Adding more processors just &amp;nbsp;
&lt;br&gt;made it run faster.
&lt;br&gt;&lt;br&gt;Over the last few years I have been contemplating the state of &amp;nbsp;
&lt;br&gt;applications, operating systems and the benefits that erlang offers. &amp;nbsp; 
&lt;br&gt;The biggest advantage is that processes are lightweight and can be &amp;nbsp;
&lt;br&gt;treated as equivalent to data structures when designing an &amp;nbsp;
&lt;br&gt;architecture. &amp;nbsp;Doing so affords an approach to constructing &amp;nbsp;
&lt;br&gt;applications that is far different from the monolithic structures &amp;nbsp;
&lt;br&gt;that we currently face, where one failure crashes your entire browser &amp;nbsp;
&lt;br&gt;(at least until Google Chrome came out).
&lt;br&gt;&lt;br&gt;Instead of futzing with automating the handling of a single vector, I &amp;nbsp;
&lt;br&gt;submit you should spend your time trying to figure out how to &amp;nbsp;
&lt;br&gt;structure your application so that it can have at least 1000 &amp;nbsp;
&lt;br&gt;processes. &amp;nbsp;When you move from 4 core to 8 to 32 or 64, you should &amp;nbsp;
&lt;br&gt;see linear speed up in your application without modifying anything. &amp;nbsp; 
&lt;br&gt;And all the compiler tools that we currently use will work to your &amp;nbsp;
&lt;br&gt;advantage without change.
&lt;br&gt;&lt;br&gt;If your application ends up with a bunch of large vectors and lots of &amp;nbsp;
&lt;br&gt;computation, partition the data to make lots of processes. &amp;nbsp;If it &amp;nbsp;
&lt;br&gt;doesn't have large data or computational requirements, partition the &amp;nbsp;
&lt;br&gt;software components so that they are easier to test and debug and &amp;nbsp;
&lt;br&gt;they can operate on separate processors or cores.
&lt;br&gt;&lt;br&gt;With the future of hardware continuing towards many core, the new &amp;nbsp;
&lt;br&gt;measure of the quality of application architecture will be the &amp;nbsp;
&lt;br&gt;granularity of the components. &amp;nbsp;They should be small, task specific, &amp;nbsp;
&lt;br&gt;fault isolating, transparently distributable and interfaced with &amp;nbsp;
&lt;br&gt;minimal messaging. &amp;nbsp;Whenever you are confronted with making an &amp;nbsp;
&lt;br&gt;algorithm more complicated versus keeping it simpler by introducing &amp;nbsp;
&lt;br&gt;more processes, go with more processes. &amp;nbsp;If your first implementation &amp;nbsp;
&lt;br&gt;is fast enough (even if it is 10% slower than it could be), future &amp;nbsp;
&lt;br&gt;upgrades will automatically scale.
&lt;br&gt;&lt;br&gt;I believe the compiler writers and tool builders should focus on &amp;nbsp;
&lt;br&gt;making it easier to produce more numerous, but smaller processes, &amp;nbsp;
&lt;br&gt;rather than trying to make the sequential code eke out an additional &amp;nbsp;
&lt;br&gt;10% of performance. &amp;nbsp;I want my code to run 1000x faster when I get a &amp;nbsp;
&lt;br&gt;1000 core machine. &amp;nbsp;I likely will need 100,000 processes to realize &amp;nbsp;
&lt;br&gt;that goal.
&lt;br&gt;&lt;br&gt;jay
&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19325718&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Application-granularity-%28was%3A-Parallel-Shootout---a-style-question%29-tp19325718p19325718.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19325642</id>
	<title>Re: Parallel Shootout &amp; a style question</title>
	<published>2008-09-04T23:18:42Z</published>
	<updated>2008-09-04T23:18:42Z</updated>
	<author>
		<name>Gleb Peregud</name>
	</author>
	<content type="html">On Fri, Sep 5, 2008 at 2:11 AM, Richard A. O'Keefe &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19325642&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ok@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; I am all for automatic parallelisation, AS LONG AS IT WORKS.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I am going to keep on repeating my basic point until it
&lt;br&gt;&amp;gt; sinks in: &amp;nbsp;Erlang processes have side effects, and changing
&lt;br&gt;&amp;gt; from sequential map to parallel map changes the meaning of
&lt;br&gt;&amp;gt; the program.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Automatic parallelisation is good for PURE functional
&lt;br&gt;&amp;gt; code. &amp;nbsp;When we have something that can reliably detect
&lt;br&gt;&amp;gt; chunks of Erlang code that are pure, let's go for it!
&lt;br&gt;&amp;gt; Till then, beware...
&lt;/div&gt;&lt;br&gt;+1
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Gleb Peregud
&lt;br&gt;&lt;a href=&quot;http://gleber.pl/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gleber.pl/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Every minute is to be grasped.
&lt;br&gt;Time waits for nobody.
&lt;br&gt;-- Inscription on a Zen Gong
&lt;br&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19325642&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Parallel-Shootout---a-style-question-tp19262618p19325642.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19325357</id>
	<title>erlang, remote slave and OSX</title>
	<published>2008-09-04T22:50:10Z</published>
	<updated>2008-09-04T22:50:10Z</updated>
	<author>
		<name>Valentino Volonghi</name>
	</author>
	<content type="html">-----BEGIN PGP SIGNED MESSAGE-----
&lt;br&gt;Hash: SHA1
&lt;br&gt;&lt;br&gt;I've been trying to get discoproject.org to run on OSX 10.5.4 with the &amp;nbsp;
&lt;br&gt;system python 2.5.1.
&lt;br&gt;&lt;br&gt;The system works in the following way:
&lt;br&gt;&lt;br&gt;a master node creates a slave node using slave:start_link on a remote &amp;nbsp;
&lt;br&gt;machine (in this case
&lt;br&gt;the same one) and there it immediately starts a bunch of workers using &amp;nbsp;
&lt;br&gt;open_port, in this
&lt;br&gt;case python workers.
&lt;br&gt;&lt;br&gt;erlang is started using the following line:
&lt;br&gt;&lt;br&gt;exec erl +K true\
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;-heart\
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;-noshell\
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;-sname $DISCO_NAME&amp;quot;_master&amp;quot;\
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;-rsh ssh\
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;-pa &amp;quot;$DISCO_HOME/ebin&amp;quot;\
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;-boot &amp;quot;$DISCO_HOME/disco&amp;quot;\
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;-kernel error_logger &amp;quot;{file, \&amp;quot;$DISCO_MASTER_LOG\&amp;quot;}&amp;quot;\
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;-eval &amp;quot;[handle_job, handle_ctrl]&amp;quot;\
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;-disco disco_name \&amp;quot;$DISCO_NAME\&amp;quot;\
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;-disco disco_root \&amp;quot;$DISCO_MASTER\&amp;quot;\
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;-disco disco_master_host \&amp;quot;$DISCO_MASTER_HOST\&amp;quot;\
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;-disco scgi_port $DISCO_SCGI_PORT\
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;-disco disco_config \&amp;quot;$DISCO_CONFIG\&amp;quot; &amp;lt;/dev/null &amp;gt;/dev/null 2&amp;gt;/ 
&lt;br&gt;dev/null
&lt;br&gt;&lt;br&gt;There are 2 problems that I'm seeing:
&lt;br&gt;&lt;br&gt;1) The environment PATH as returned by os:getenv(&amp;quot;PATH&amp;quot;) is basically &amp;nbsp;
&lt;br&gt;not using the
&lt;br&gt;PATH configured in my shell (whether it is bash or zsh). Why?
&lt;br&gt;I get this path:
&lt;br&gt;&amp;quot;disco/node:/opt/local/lib/erlang/erts-5.6.3/bin:/opt/local/lib/erlang/ 
&lt;br&gt;bin:/usr/bin:/bin:/usr/sbin:/sbin&amp;quot;
&lt;br&gt;instead of:
&lt;br&gt;/usr/bin:/usr/sbin:/Users/dialtone/bin:/bin:/sbin:/opt/local/bin:/opt/ 
&lt;br&gt;local/sbin:/usr/local/bin:\
&lt;br&gt;/usr/local/texlive/2007/bin/i386-darwin:/opt/local/lib/mysql5/bin/:/ 
&lt;br&gt;Users/dialtone/dev/depot_tools
&lt;br&gt;&lt;br&gt;2) The worker processes in the slave many times fail during a python's &amp;nbsp;
&lt;br&gt;getaddrinfo() saying that
&lt;br&gt;there's a temporary error in name resolution.
&lt;br&gt;&lt;br&gt;I have no idea what's wrong with point 1.
&lt;br&gt;&lt;br&gt;For point 2 instead the problem might be related to execution &amp;nbsp;
&lt;br&gt;contexts, the problem I'm having
&lt;br&gt;is also explained here: &lt;a href=&quot;http://lists.apple.com/archives/Darwin-dev/2008/Jul/msg00010.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.apple.com/archives/Darwin-dev/2008/Jul/msg00010.html&lt;/a&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; and
&lt;br&gt;I wondered if anyone else had experienced it.
&lt;br&gt;&lt;br&gt;Both are fairly weird ones and I understand that these are related to &amp;nbsp;
&lt;br&gt;OSX and the second one
&lt;br&gt;might actually be more related to leopard.
&lt;br&gt;&lt;br&gt;thanks for any help or pointers.
&lt;br&gt;&lt;br&gt;- --
&lt;br&gt;Valentino Volonghi aka Dialtone
&lt;br&gt;Now running MacOS X 10.5
&lt;br&gt;Home Page: &lt;a href=&quot;http://www.twisted.it&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.twisted.it&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://www.adroll.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.adroll.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;-----BEGIN PGP SIGNATURE-----
&lt;br&gt;Version: GnuPG v1.4.9 (Darwin)
&lt;br&gt;&lt;br&gt;iEYEARECAAYFAkjAyJIACgkQ9Llz28widGXlawCfZR99VzHddIspWMEPBRHFmO73
&lt;br&gt;/TYAnixAwL/SNgJD9LpsrKXELk3YsCNW
&lt;br&gt;=5sKk
&lt;br&gt;-----END PGP SIGNATURE-----
&lt;br&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19325357&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/erlang%2C-remote-slave-and-OSX-tp19325357p19325357.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19324691</id>
	<title>Re: Time to update programming rules?</title>
	<published>2008-09-04T21:15:25Z</published>
	<updated>2008-09-04T21:15:25Z</updated>
	<author>
		<name>Edwin Fine-2</name>
	</author>
	<content type="html">&lt;div dir=&quot;ltr&quot;&gt;Thanks for repeating yourself. I didn&amp;#39;t know you had posted about it before, and sometimes I don&amp;#39;t even think of searching the lists, mea culpa.&lt;br&gt;&lt;br&gt;I empathize with your pain at having to hack modules with namespace/directory changes. I have done this too many times (actually, once is too many times) with Java to develop a serious allergy to its namespace mechanism. Then again, if you are amenable to IDEs, Eclipse allows you to refactor Java quite painlessly, including moving between namespaces. Of course, that won&amp;#39;t stop namespace changes from breaking someone else&amp;#39;s existing code that uses the old namespace. I will look into C/Mesa and Lace - they sound interesting.&lt;br&gt;
&lt;br&gt;The worse problem is the ability to have two modules with different names to refer to the same module. That&amp;#39;s a showstopper.&lt;br&gt;&lt;br&gt;I am reminded of another namespace abomination, namely the addition of namespaces to XML. XML names were originally allowed to contain the colon character. This became a way to retrofit namespaces to XML without breaking backward compatibility (much).&lt;br&gt;
&lt;br&gt;It seems that much evil is done in many spheres to retain backward compatibility, especially in the face of temporal or market pressures - remember the segmented x86 architecture? I wonder how many people on this list were forced to work with the various x86 compiler memory models (IIRC, tiny, small, compact, medium, large, and huge). I was praying that the 68000 would win. Oh, the horror, the horror...&lt;br&gt;
&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Thu, Sep 4, 2008 at 11:14 PM, Richard A. O&amp;#39;Keefe &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19324691&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ok@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
&lt;div class=&quot;Ih2E3d&quot;&gt;&lt;br&gt;
On 5 Sep 2008, at 2:55 pm, Edwin Fine wrote:&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;&lt;div class=&quot;Ih2E3d&quot;&gt;
Richard,&lt;br&gt;
&lt;br&gt;
Please will you clarify what you mean by&lt;br&gt;
&lt;br&gt;&lt;/div&gt;&lt;div class=&quot;Ih2E3d&quot;&gt;
(a) we should not use them because they are inside out&lt;br&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;br&gt;
I have discussed this at length in this mailing list.&lt;div class=&quot;Ih2E3d&quot;&gt;&lt;br&gt;
&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
Do you mean, we should not use these facilities at all, ever, because the design is badly flawed,&lt;br&gt;
&lt;/blockquote&gt;
&lt;br&gt;&lt;/div&gt;
Yes.&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
&lt;br&gt;
&lt;/blockquote&gt;
&lt;br&gt;
One fundamental issue is that dotted names are just that:&lt;br&gt;
a *FLAT* module name space that just happens to allow dots&lt;br&gt;
in identifiers. &amp;nbsp;Since Erlang already allows @ signs in&lt;br&gt;
identifiers, if we had wanted to use names like&lt;br&gt;
 &amp;nbsp; &amp;nbsp;mnesia@CORBA@connector@impl&lt;br&gt;
we could have and can still. &amp;nbsp;(Think of the &amp;quot;@&amp;quot; signs as&lt;br&gt;
&amp;quot;fat dots&amp;quot;.) &amp;nbsp;Allowing dots in identifiers doesn&amp;#39;t, in&lt;br&gt;
principle, accomplish anything that allowing at-signs in&lt;br&gt;
identifiers doesn&amp;#39;t.&lt;br&gt;
&lt;br&gt;
Well, there&amp;#39;s some sort of abbreviation rule, but all that&lt;br&gt;
does is to mess things up horribly. &amp;nbsp;It is now possible for&lt;br&gt;
two *different* names to refer to the *same* module. &amp;nbsp;It is&lt;br&gt;
also possible for a module (with no mentions of its name&lt;br&gt;
anywhere other than ?MODULE) to break if you change its name.&lt;br&gt;
In fact, changing the name of a module that doesn&amp;#39;t mention&lt;br&gt;
its name ANYWHERE other than the -module directive can break it.&lt;br&gt;
&lt;br&gt;
Why I say it&amp;#39;s inside-out is that &amp;quot;compound names&amp;quot; for modules&lt;br&gt;
need to be relative to the starting module, not &amp;quot;absolute&amp;quot;,&lt;br&gt;
so that you can move an entire cluster of related modules&lt;br&gt;
in a single renaming, WITHOUT having to hack on every single&lt;br&gt;
file.&lt;br&gt;
&lt;br&gt;
The design also perpetuates a great nastiness from Java, that&lt;br&gt;
of mixing up the dotting structure of module names with the&lt;br&gt;
arrangement of files in a file system. &amp;nbsp;I have just spent a&lt;br&gt;
painful half hour trying to read the documentation and sources&lt;br&gt;
for a Haskell package I&amp;#39;d like to use. &amp;nbsp;They&amp;#39;ve followed Java&amp;#39;s&lt;br&gt;
lead with module names. &amp;nbsp;One result is that what seems to this&lt;br&gt;
potential user like *ONE* thing is actually broken up into&lt;br&gt;
about 30 pieces; instead of one coherent manual there are&lt;br&gt;
disconnected bits all over the place. &amp;nbsp;Instead of one directory&lt;br&gt;
with all the source files, there is a great tree with files,&lt;br&gt;
even files that are conceptually at the same level, not only&lt;br&gt;
in different directories but in directories at different levels.&lt;br&gt;
&lt;br&gt;
The right thing to do is to have a &amp;quot;configuration&amp;quot; language like&lt;br&gt;
C/Mesa or LACE.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;&lt;/div&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19324691&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Time-to-update-programming-rules--tp19320059p19324691.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19333928</id>
	<title>Re: Time to update programming rules?</title>
	<published>2008-09-04T21:10:54Z</published>
	<updated>2008-09-04T21:10:54Z</updated>
	<author>
		<name>Benjamin Tolputt-2</name>
	</author>
	<content type="html">Richard A. O'Keefe wrote:
&lt;br&gt;&amp;gt; On 5 Sep 2008, at 3:17 pm, Benjamin Tolputt wrote:
&lt;br&gt;&amp;gt;&amp;gt; The idea of using the package support appeals to me as it will help keep
&lt;br&gt;&amp;gt;&amp;gt; name-space conflicts to a minimum. As I understand the &amp;quot;packages.html&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt; page, this is pretty much ALL that the packages functionality offers.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; It doesn't offer any MORE of that than Erlang has without it.
&lt;br&gt;&amp;gt; What it DOES give you is extra breakability.
&lt;br&gt;&lt;br&gt;I understand the possibility of errors. Possibility of error is a decent
&lt;br&gt;point, but one that can (and has) been made about other parts of the
&lt;br&gt;Erlang system. As I understand it then, this is an &amp;quot;opinion&amp;quot; exclusion
&lt;br&gt;of use rather than one endorsed by the developers of Erlang (given they
&lt;br&gt;implemented it and have yet to remove it from the system). Not throwing
&lt;br&gt;mud at you or anything, just ensuring I understand that this is a
&lt;br&gt;feature you don't like versus one that could be ripped out of Erlang on
&lt;br&gt;a release's notice.
&lt;br&gt;&lt;br&gt;The &amp;quot;extra&amp;quot; functionality it offers is that the beams are split out
&lt;br&gt;nicely such that &amp;quot;xyz.abc.mymod&amp;quot; is compiled to a &amp;quot;mymod.beam&amp;quot; file that
&lt;br&gt;will not conflict with a &amp;quot;abc.def.mymod&amp;quot; module. This (in my mind) is a
&lt;br&gt;Good Thing. Like Java, the multi-folder thing is likely to be a moot
&lt;br&gt;issue given a decent IDE. One that I have admittedly not yet found for
&lt;br&gt;Erlang - beyond a good text editor (ScITE) and the Erlang shell.
&lt;br&gt;&lt;br&gt;--Ben
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19333928&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Time-to-update-programming-rules--tp19320059p19333928.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19324364</id>
	<title>Re: A whole bunch of implementation details</title>
	<published>2008-09-04T20:34:29Z</published>
	<updated>2008-09-04T20:34:29Z</updated>
	<author>
		<name>Richard A. O'Keefe</name>
	</author>
	<content type="html">&lt;br&gt;On 5 Sep 2008, at 3:20 pm, Dennis Byrne wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thank you Richard, Mikael and Raimo. &amp;nbsp;Here's another question I got &amp;nbsp;
&lt;br&gt;&amp;gt; as a follow up.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Can pids be reused, even though the documentation refers to them as &amp;nbsp;
&lt;br&gt;&amp;gt; unique? &amp;nbsp;Any info on the underlying implementation of how a pid is &amp;nbsp;
&lt;br&gt;&amp;gt; uniquely generated across a cluster?
&lt;br&gt;&lt;br&gt;A pid identifies
&lt;br&gt;&amp;nbsp; - a process within
&lt;br&gt;&amp;nbsp; - an incarnation of
&lt;br&gt;&amp;nbsp; - a node.
&lt;br&gt;The problem that's been referred to recently in this mailing list
&lt;br&gt;is too few bits for incarnation numbers.
&lt;br&gt;There was previously a problem with 'references' (which are
&lt;br&gt;opaque tokens that don't in fact refer to anything) having too
&lt;br&gt;few bits for comfort; IIRC that was dealt with.
&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19324364&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/A-whole-bunch-of-implementation-details-tp19302347p19324364.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19324350</id>
	<title>Re: Time to update programming rules?</title>
	<published>2008-09-04T20:31:09Z</published>
	<updated>2008-09-04T20:31:09Z</updated>
	<author>
		<name>Richard A. O'Keefe</name>
	</author>
	<content type="html">&lt;br&gt;On 5 Sep 2008, at 3:17 pm, Benjamin Tolputt wrote:
&lt;br&gt;&amp;gt; The idea of using the package support appeals to me as it will help &amp;nbsp;
&lt;br&gt;&amp;gt; keep
&lt;br&gt;&amp;gt; name-space conflicts to a minimum. As I understand the &amp;quot;packages.html&amp;quot;
&lt;br&gt;&amp;gt; page, this is pretty much ALL that the packages functionality offers.
&lt;br&gt;&lt;br&gt;It doesn't offer any MORE of that than Erlang has without it.
&lt;br&gt;What it DOES give you is extra breakability.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;erlang-questions mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19324350&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;erlang-questions@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://www.erlang.org/mailman/listinfo/erlang-questions&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.erlang.org/mailman/listinfo/erlang-questions&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/Erlang-Questions-f14096.html&quot; embed=&quot;fixTarget[14096]&quot; target=&quot;_top&quot; &gt;Erlang Questions&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Time-to-update-programming-rules--tp19320059p19324350.html" />
</entry>

</feed>
