Hi Fred!  and sorry to diverge this thread…<div>Why do you want a history file per erlshell? bash only uses one: ~/.bash_history</div><div>You only need one ~/.erlang.history, don't you?<br><br><div class="gmail_quote">

On 31 January 2013 00:07, Fred Hebert <span dir="ltr"><<a href="mailto:mononcqc@ferd.ca" target="_blank">mononcqc@ferd.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

That's what it is. It searches the line stack. It's a *history-search*<br>
patch, not a general history-saving patch.<br>
<br>
I have <a href="https://github.com/ferd/erlang-history" target="_blank">https://github.com/ferd/erlang-history</a> that implements a search<br>
that can be saved, but there's still work to do in it before it can be<br>
good enough for OTP:<br>
<br>
1. it relies on DETS, and DETS seems to corrupt files from time to time<br>
   either when too many shells write to it, or when it's interrupted<br>
   while dumping. I want to get rid of DETS at some point for some other<br>
   line utility, maybe disk_log.<br>
2. I'll need to make it use a .erlang/ directory in $HOME rather than<br>
   plenty of .erlang.$NAME files. There's a truckload of .erlang.*<br>
   config files around, and one per named shell is problematic.<br>
3. Multiple shells are implemented in an okay way, but there may be a<br>
   need to correct codes when many shells write to the same file<br>
   (usually multiple non-distributed shells).<br>
4. The usual OTP cleanup and formatting is required.<br>
5. I haven't considered the issue of multiple encodings used in the same<br>
   shell history file yet.<br>
6. I haven't asked the OTP team what they think should be done at that<br>
   point, but I'd be fine forking this thread to start discussing it.<br>
<br>
Lately I haven't had the time/motivation to do that heavy lifting,<br>
but with the book and university done, I'll probably find time here and<br>
there to try and make a better implementation.<br>
<br>
In the mean time, I'll keep the repository above up to date. It's not<br>
yet ready for R16A support -- I use the compiler versions to deal with<br>
things and the new code can't be the same to make it there. It should<br>
work fine with the new ^R support feature.<br>
<br>
Shell history is a tiny bit about injecting history in a shell and is<br>
*mostly* about handling files on disk. Shell history search is pretty<br>
much handling the line stack in the shell and edlin, so that one was<br>
much simpler to deal with than history to make it part of OTP :)<br>
<br>
Regards,<br>
Fred.<br>
<div class="HOEnZb"><div class="h5"><br>
On 01/30, Motiejus Jakštys wrote:<br>
> On Wed, Jan 30, 2013 at 3:40 PM, Fred Hebert <<a href="mailto:mononcqc@ferd.ca">mononcqc@ferd.ca</a>> wrote:<br>
> > Also:<br>
> ><br>
> >   OTP-10739  Add search to Erlang shell's history. Thanks to Fred<br>
> >    Herbert.<br>
><br>
> History between sessions is not implemented (I get readline-style<br>
> ctrl-r in same session fine which is super cool)?<br>
><br>
> /home/motiejus$ erl -config hist.config -name labas<br>
> Erlang R16A (erts-5.10) [source] [smp:2:2] [async-threads:10] [hipe]<br>
> [kernel-poll:false]<br>
><br>
> Eshell V5.10  (abort with ^G)<br>
> (labas@precise.local)1> application:get_all_env(kernel).<br>
> [{hist_file,"erlang-history"},<br>
>  {included_applications,[]},<br>
>  {error_logger,tty},<br>
>  {hist_size,120},<br>
>  {hist_drop,["q().","init:stop()."]}]<br>
> (labas@precise.local)2> q().<br>
> ok<br>
> (labas@precise.local)3> %<br>
> /home/motiejus$ ls -lA | grep erlang<br>
> -r--------  1 motiejus motiejus      20 Rgp 23 23:00 .erlang.cookie<br>
><br>
><br>
> --<br>
> Motiejus Jakštys<br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</div></div></blockquote></div><br></div>