	$Id: TODO 47 2007-06-13 10:17:28Z dezperado $
-------------------------------------------------------------------------------
	Current development directions
20070613	sync documentation, website and the whole with VERSION :)
20070517	automated documentation is a future issue
20070517	an useless, optional grid, under or over the image
20070514	There is a growing need to document the target audience of this
	software and its purposes.
	Then:
	- integrate with external libraries for image analysis (like ANIMAL)
	- integrate with some scripting language (perl, python)
20070417	It has come the time to decide the future developments of Fim.
	A lot of doubts arose. Here they are:
	- integration of the command line completion with the lexer/parser, to
	  gain consistency
	- introduction of a windowing system (yes, a wierd thing), but this
	  would imply a prior reordering of the underlying Fbi code
	- decisions about the nature of the language:
	  - should the variables be accessed like Bash,Perl, or C?
	  - should strings exist?
	  - should arrays exist ?
	  - should types exist ?
	  - should boolean options exist (like in Vim's paste/nopaste) ?
	  - should multi (quad/..) options exist (like in Mutt) ?
	- could it be nice to attach options set to an image/browser (e.g.: 
	  autowidth in only a window in a multiwindow scenario )?
	- once the core of Fim is clean enough, would it be the moment of porting 
	  it to X and/or aalib/cacalib/directFB ?
	- integration with external libraries/scripts/etc.. ?

	These issues need reflection and study of the practical and theoretical
	advantages/possibilities/limitations of the alternatives.
	Meanwhile, the current development effort will be focused on enhancing
	the existing code, possibly not adding features but enhancing the code
	structure and converting the odd Fbi code in elegant, or possibly more
	optimized, (especially the hacked, critical parts concerning mirroring
	and flipping! ) Fim code.
	- it would be nice to use autoconf and/or automake to automate builds..
-------------------------------------------------------------------------------
Optimization:
20070418	Got ~400% speedup on image display thanks to trivial changes in
	the drawing code : memset and memcpy instead of assignations, and a less
	trivial change by swapping RGB channels on loading time instead that on
	drawing time. The analysis was made with the gprof profiler, nicely.

Maybe one day me or some contributor will read 
	http://www.cvl.isy.liu.se/ScOut/Publications/PaperInfo/sf05.html
	or
Example 4.14 of the Intel Architecture SW Manual Optimization explains how to
and find some useful idea.
use PSHUFLW,PSHUFW,PSHUFD to reverse contiguous words in registers.
-------------------------------------------------------------------------------

This file is often outdated : FIM is far better than it seems here :)

Please read the FIM.TXT file and the fimrc template to discover nice FIM features.

	OPEN   BUGS:
20070307	It is not clear which key terminates always loops.
20070307	config file parsing is still to be checked throughly
20070129	control 4 crashes the prog ... why ? :)

	MISSING SMALL FIXES:
20070312	fix dumping of recording in some file!	
20070125	fix the string vs variable problem
20070128	fixa l'argument passing che e' problematico! e fixa i commenti!
20070129	fix the KEY binding
20070211	flex and bison parts should be rewritten
20070212	fix the command evaluation
20070303	fix rar and zip dependencies in Makefiles and such for fimgs.sh
20070303	see if while-nesting is a real danger or not!
20070303	update the while construct documentation and fix the while command execution bugs 
20070303	add an interface for setting exitBinding (now Enter!)
20070306	primary goals : documentation and warning messages!
20070306	add a way to dump to stdout the default configuration file contents
20070210	fix properly the file parser (comments problems!) and max script filelength limit
20070210	add an interface to modify key bindings and keycode bindings.
20070401	variables : $VARNAME or $(VARNAME) or VARNAME ?

	SCIENCE FICTION WISHED ADD-ONS:
20070307	someday: to integrate with a speech recognizer for command issuing
20070323	image understanding language - based pattern selection
20070401	?= /semanticexp/ operator

	ADD:
20070401	~= /regexp/ operator
20070401	<=,>= operators
20070401	find's -exec '{}' ';' -like predicate syntax
20070216	create a decent installer
20070129	dump internal commands function
20070125	add pipe to other commands and exec and system (screenshot with fbgrab, for example)
20070126	better key printout to ease configuration
20070128	add support for command renaming with checks...
20070130	proper signal handing for while cycle interruption..
20070201	cwd,ls,pwd,stat,file...
20070201	--norc, --rc= mechanisms
20070208	? rewrite the parser in full C++ or traditional, clean C
20070201	asymmetric scaling

	MISC IDEAS :
20070303
		load cfg, save cfg
		flip=yes|no
		scale=i|i:i|:i|i:|
		fit  =width|height|none|image|min|max
		center=t|b|l|r|tl|tr|bl|br|center
		orientation=90|... [cw|ccw] | flip
		mirror=yes|no
		persistent_options= word*|'*'
		transient_options = word*
		logfile=...
		debugfile=..
		cwd=word
		negative=..
		interpolator=..
		options_style=stacked|trasient|permanent_save	
			function : 
		[n]%[r|l]
		+|-n[%]
20070401	better variable handling : boolean variables, conversion, 'no' prefixing,
		completion fitting the language rules..

	DATES:
20061223	inception
20070202	come trattare gli $ nelle stringhe ?
20070202	stress testing (1000+d-) gave : CommandConsole.cpp:577: "pipe error"
20070202	aspect ratio expansion and pan speed factors..
20070204	make stricter the policy of recording (only aliases and/or lines.complete the time behaviour
20070210	eliminate the fresh variable from the config?
20070216	eliminate image tearing by studying the framebuffer device
	idea : repeat_last N ?!
	TIPS
20070302	use __FUNCTION__ : is not ANSI, but GCC
20070303	realtime clock... -lrt cannot  be used with FIM
