How to load core in the toplevel?

Malcolm Matalka mmatalka at gmail.com
Thu Nov 8 06:12:02 GMT 2012


Core.Std and Async.Std are designed to be opened.

Francois <francois.berenger.fun at gmail.com> writes:

> On Thursday, November 8, 2012 1:42:41 AM UTC+9, Anil Madhavapeddy wrote:
>>
>> You should also add "#camlp4o" so that toplevel syntax extensions work too.
>>
>
> In the future, I think only the one from janestreet to do automatic
> translations to/from s-expressions interests me.
> I prefer to read standard OCaml code usually.
>  
>
>>
>> I'd really recommend using 'utop' (installable via OPAM) instead of the 
>> default toplevel. It doesn't require the extra -I that the default toplevel 
>> needs, and has a really nice interactive interpreter.
>>
>
> I have to read about it.
> I'm conservative about using new things (I'm an isolated OCaml developper, 
> no one nearby to help me in case
> I mess with something, that's why I'm so active on mailing lists).
>  
>
>>
>> My full .ocamlinit with utop is:
>>
>> #use "topfind"
>> #camlp4o
>> #thread
>> #require "core.top";;
>> #require "async";;
>> open Core.Std
>> open Async.Std
>>
>
> Thanks for sharing this.
> I'm very worried about the open directives
> and try to never use them so I don't think
> it would fit me for the moment.
>
> Best regards,
> Francois.
>
>
>
>>
>> -anil
>>
>> On 7 Nov 2012, at 05:33, Francois Berenger <francois.ber... at gmail.com<javascript:>> 
>> wrote:
>>
>> Thanks a lot.
>>
>> So, the whole recipe in my case was:
>>
>> ocaml -I $OCAML_TOPLEVEL_PATH
>> #thread;;
>> #require "core.top";;
>> #require "async";;
>>
>> Regards,
>> F.
>>
>> On Wednesday, November 7, 2012 12:09:15 PM UTC+9, Sebastien Mondet wrote:
>>>
>>>
>>>
>>> I think that one is the  
>>>    #thread;;
>>> thing
>>>
>>>
>>>
>>>
>>> On Tue, Nov 6, 2012 at 10:06 PM, Francois Berenger <
>>> francois.ber... at gmail.com> wrote:
>>>
>>>> Thanks! That fixes the problem partially.
>>>>
>>>> Now, I get:
>>>>
>>>> # #require "core.top";;
>>>> # #require "core.top";;stem/lib/core/core.cma: loaded
>>>> Error: Reference to undefined global `Condition'
>>>> # #require "core";;
>>>> # #require "core";;m/system/lib/core/core.cma: loaded
>>>> Error: Reference to undefined global `Condition'
>>>> # #require "async";;
>>>> # #require "async";;/system/lib/core/core.cma: loaded
>>>> Error: Reference to undefined global `Condition'
>>>>
>>>> Any hint?
>>>>
>>>>
>>>> On Wednesday, November 7, 2012 11:54:47 AM UTC+9, Sebastien Mondet wrote:
>>>>
>>>>>
>>>>> I'm not sure if this is your problem, but there was something with the 
>>>>> toplevel (comming with the system compiler) not knowing about opam 
>>>>> packages. 
>>>>> I have to launch:
>>>>>
>>>>>    ocaml -I $OCAML_TOPLEVEL_PATH
>>>>>
>>>>> (the variable OCAML_TOPLEVEL_PATH is set by eval `opam config -env`)
>>>>>
>>>>>
>>>>> On Tue, Nov 6, 2012 at 9:37 PM, Francois Berenger <francois.ber...@**
>>>>> gmail.com> wrote:
>>>>>
>>>>>> Apparently, ocamlfind knows where these libraries are:
>>>>>>
>>>>>> $ ocamlfind -query core
>>>>>> /home/berenger/.opam/system/**lib/core
>>>>>> $ ocamlfind -query async
>>>>>> /home/berenger/.opam/system/**lib/async
>>>>>> $ ocamlfind -query async_extra
>>>>>> /home/berenger/.opam/system/**lib/async_extra
>>>>>>
>>>>>>
>>>>>> On Wednesday, November 7, 2012 11:32:43 AM UTC+9, Francois Berenger 
>>>>>> wrote:
>>>>>>>
>>>>>>> Hello,
>>>>>>>
>>>>>>> I'd like to play with core in my toplevel.
>>>>>>>
>>>>>>> Is there a recipe?
>>>>>>>
>>>>>>> I have installed everything with OPAM:
>>>>>>> $ opam list | egrep "core|async"
>>>>>>> async                 108.07.01  Monadic concurrency library
>>>>>>> async_core            108.07.01  Monadic concurrency library
>>>>>>> async_extra           108.07.01  Monadic concurrency library
>>>>>>> async_unix            108.07.01  Monadic concurrency library
>>>>>>> core                  108.07.01  Industrial strength alternative to 
>>>>>>> OCaml's standard library
>>>>>>> core_extended                --  Extra components that are not as 
>>>>>>> closely vetted or as stable as Core
>>>>>>>
>>>>>>> In my toplevel, I type
>>>>>>> #use "topfind";;
>>>>>>> #list;;
>>>>>>>
>>>>>>> Nothing about core or async shows up.
>>>>>>> While parmap is there, for example.
>>>>>>>
>>>>>>> Is this normal?
>>>>>>>
>>>>>>> I guess there is some configuration file of findlib to tweak 
>>>>>>> somewhere.
>>>>>>>
>>>>>>> Regards,
>>>>>>> F.
>>>>>>>
>>>>>>>
>>>>>
>>>
>>



More information about the core mailing list