Migrate from version 1.3 to 2.0
Migrate from 1.91 to 2.0
- State names and scopes have been merged: it is now possible to define new scopes for each level (session, process or group).
Migrate from version 1.90 to 1.91
- Eliom_pervasives should always be opened
- module renaming:
- XHTML5 -> HTML5
- Xhtml5 -> Html5
- {Xhtml5,Xhtml,Svg}types -> {HTML5,XHTML,SVG}_types
- Eliom_client_{comet,react,bus} -> Eliom_{comet,react,bus}
- (server side) Eliom_request -> Eliom_request_info
- build process changed: see here
- variables sent to the client are now type checked:
- HTML nodes cannot be used directly with the module Dom_html: casting is needed with functions from Eliom_pervasives.HTML5.M
- the module name created with Eliom_output.Eliom_appl is not available on client side: it is needed if you pass services to the client. Declare it with
{client{ module My_appl = Eliom_output.Base }}
- XHTML.M.uri_of_string is now in Eliom_pervasives.Uri
Eliom 1.3 to 1.90
- The ~sp parameter (server parameters) has been removed everywhere. sp is now stored in Lwt's new local thread storage mechanism (more information)
- register_for_session has been removed. Use now: register ~scope:`Session
- Eliom_services.new_service now called Eliom_services.service and so on.
- Module Eliom_predefmod renamed Eliom_output
- Module Eliom_sessions removed and replaced by
- Eliom_request (information about the request)
- Eliom_config (information from the configuration file)
- Eliom_state (management of server side state of the application). Eliom_state can be used for the state of the session, but also for the state of the group of session or for the state of the client side process (browser tab).
- Eliom_common for the types
- Server side state now stores in Eliom references, kind of references with a scope.
- Simplification in functions for closing sessions ... New functions Eliom_state.discard, Eliom_state.discard_data and Eliom_state.discard_services. close_session is a shortcut for Eliom_state.discard ~scope:`Session.
- Optional parameter (of many functions) ?session_name renamed ?state_name. (any better idea?) It can be used for naming sessions but also group of sessions or client-side process sets of data or services.
- Eliom_services.new_external_service is now only for GET requests and there is now also new_external_post_service for POST requests. Both can be used server and client side.
- It is now much simpler to set or unset your own cookies. Cookies modules disappeared. Use Eliom_session.set_cookies and Eliom_session.unset_cookies instead.
- Data tables now take parameters ~session_name and ~secure at creation, and not while setting or getting data
- Eliom_tools now called Eliom_tools.Xhtml (and there is now Eliom_tools.Xhtml5)
- A few function interfaces have changed, often because of new optional parameter. Check interfaces if it does not compile.
- The XML representation of Eliom can now contain closures ( lazy values evaluated at page printing time ). It is not possible to use the structural comparison and equality functions (Pervasives.compare, = < <>) on them. It also affects the XHTML, HTML5 and SVG representations.
