Cannot open module file: net/sendmail - lisp

I'm trying to compile this simple racket sendmail code:
#lang racket
(require net/sendmail)
(send-mail-message
"sender#somewhere.com" "Some Subject"
'("recipient#elsewhere.com" "recipient2#elsewhere.com")
'("cc#elsewhere.com")
'("bcc#elsewhere.com")
(list "Some lines of text" "go here."))
But when I compile:
racket email.rkt
I get this error:
cannot open module file
module path: net/sendmail
I thought the sendmail library was builtin? What am I doing wrong?

Perhaps you installed "minimal racket", rather than the full "racket" package. This library is part of the "net-lib" package.
To see what packages you have installed, run raco pkg show -a.
Here's what I get:
hardy:lements> raco pkg show -a | grep net-lib
net-lib* 053ca45b223c5... clone...=net-lib
planet-lib* 0110246c9c547... catalog...et-lib
EDIT: if it turns out you don't have net-lib installed, you probably want to install the net package, per Alexis King's excellent suggestion below:
hardy:lements> raco pkg install net

Related

there is no package with name "QL". while installing clisp

I'm trying to install lisp in my laptop by following the instruction command and steps that is suggested this site : https://grishagin.com/lisp/windows10/2017/01/26/install-lisp-Windows10.html.
I have done following steps :
I've extract emacs in my specified directory and add it's bin path to the system variable
PATH
I've created a another new directory named C:\HOME and add it system variable with variable HOME and
value C:\HOME
Clisp 2.48 is installed in my lisp directory and To fix some problem, copied svm.dll out of clisp-
2.48/libsvm directory into clisp-2.48/full.
Place quicklisp.lisp into lisp directory and run following code in clisp
(load "C:/lisp/quicklisp.lisp"),
(quicklisp-quickstart:install :path "C:/lisp/quicklisp/")
this two command worked but when i go from next command : (ql:add-to-init-file)
It shows this error :- READ from #<INPUT CONCATENATED-STREAM # #>: there is no package
with name "QL".
Can anyone please help to solve this error and explain how does this all help for lisp to keep working?
So, in the QuickLisp installation instructions, it says:
(quicklisp-quickstart:install)
But you include an optional parameter :path "C:/lisp/quicklisp/"
Try it again, without the optional parameter, and see if that works better.

How can I use an older version of package gregor?

Here's how to simulate it.
$ cat t1.rkt
#lang racket/base
(require gregor)
(display "hello")
I'm running Racket 6.12. But the same happens to Racket 7.2.
$ racket t1.rkt
explode-path: contract violation
expected: (or/c path-for-some-system? path-string?)
given: #f
context...:
/usr/share/racket/collects/racket/path.rkt:116:0: do-explode-path
/usr/share/racket/collects/racket/path.rkt:126:0: find-relative-path7
/home/me/.racket/6.12/pkgs/tzinfo/tzinfo/private/zoneinfo.rkt:118:2: for-loop
/home/me/.racket/6.12/pkgs/tzinfo/tzinfo/private/zoneinfo.rkt:108:0: read-tzids
/home/me/.racket/6.12/pkgs/tzinfo/tzinfo/private/zoneinfo.rkt:71:0: make-zoneinfo-source
/usr/share/racket/collects/racket/contract/private/arrow-val-first.rkt:388:18
/home/me/.racket/6.12/pkgs/tzinfo/tzinfo/main.rkt:63:0: system-tzid
/usr/share/racket/collects/racket/contract/private/arrow-val-first.rkt:388:18
/home/me/.racket/6.12/pkgs/gregor-lib/gregor/private/moment.rkt: [running body]
/home/me/.racket/6.12/pkgs/gregor-lib/gregor/private/generics.rkt: [traversing imports]
/home/me/.racket/6.12/pkgs/gregor-lib/gregor/private/clock.rkt: [traversing imports]
/home/me/.racket/6.12/pkgs/gregor-lib/gregor/main.rkt: [traversing imports]
/home/me/issue-gregor/t1.rkt: [traversing imports]
$ racket --version
Welcome to Racket v6.12.
How could I go back to an older version of gregor? I installed it this one with raco pkg install gregor and installed all its dependencies.
I'm the author of Gregor. (I don't normally post on Stack Overflow, or even use it much, but John Clements brought this to my attention.)
There's a bit of an unfortunate naming issue here, since tzdata appears to be the name of an Ubuntu package that provides the normal zoneinfo files, as well as being the name of a Racket package that also provides those files.
gregor depends on a package called tzinfo. tzinfo, in turn, conditionally depends on tzdata (the Racket one, not the Ubuntu one). Specifically, it only depends on tzdata on Windows systems. This is because I assumed that all Unix systems would have the zoneinfo files. (It never occurred to be that anyone would run a Unix without them these days.) But it is certainly the case that tzinfo (and thus gregor) will not work unless it can find zoneinfo files.
Maybe I should update the documentation with a conspicuous warning. I'd rather not make tzinfo unconditionally depend on tzdata (again, the Racket one), because most Unix systems will already have the necessary files, and it could be unduly confusing for gregor to use a version of them different from the one the system is using.

Need help on start using purescript on NixOS

I am trying to setup hello world project with purescript on NixOs and have couple questions,
Official purescript website recommend installation via npm but there is no nixos.nodePackages.purescript, instead there are at least 2 variants I found in nixpkgs
nixos.purescript
nixos.haskellPackages.purescript
What are the different?
Official site recommend pulp and bower via npm but only nodePackages.bower is avaliable and there is undocumented psc-package.
What should be the nix way to handle purescript packages?
The sample code on official site (see hello.purs bellow) doesn't even compile,
with these error.
$ purs compile hello.purs
Error found:
at hello.purs line 1, column 1 - line 1, column 1
Unable to parse module:
unexpected "import"
expecting "module"
I add module Hello to code but still failed.
$ purs compile hello.purs
Error 1 of 2:
in module Hello
at hello.purs line 2, column 1 - line 2, column 15
Module Prelude was not found.
Make sure the source file exists, and that it has been provided as an input to psc.
See https://github.com/purescript/documentation/blob/master/errors/ModuleNotFound.md for more information,
or to contribute content related to this error.
Error 2 of 2:
in module Hello
at hello.purs line 3, column 1 - line 3, column 39
Module Control.Monad.Eff.Console was not found.
Make sure the source file exists, and that it has been provided as an input to psc.
See https://github.com/purescript/documentation/blob/master/errors/ModuleNotFound.md for more information,
or to contribute content related to this error.
How the correct workflow should be?
The goal is to have minimal example project with a single hello.purs
running in web browser.
This is hello.purs
module Hello where
import Prelude
import Control.Monad.Eff.Console (log)
greet :: String -> String
greet name = "Hello, " <> name <> "!"
main = log (greet "World")
It would be really helpful if you can also provide shell.nix for nix-shell or default.nix for nix-build.
Found this 2 years old guild, I am trying it but I still not have answer to all of my questions.
nixos.purescript is just the static executables for nixos.haskellPackages.purescript; this skips building/installing PureScript as a Haskell library
You can install Pulp via npm install pulp - the binary will be installed to node_modules/.bin/pulp
The sample code doesn't compile because you haven't downloaded the dependencies via Bower. You can install them via bower install purescript-prelude purescript-console.
But node_modules/.bin/pulp init will give you a Bower file and you can run bower install to give you a basic project. You can then do node_modules/.bin/pulp run to execute it using node.js, but you'll probably want pulp browserify --to example.js to get a file you can put in a <script> tag in HTML.

Error importing the Levenshtein package in Racket

I am trying to use the Levenshtein package in Racket.
However, even using the "require" command, I still have problems:
#lang racket
(require levenshtein)
>> standard-module-name-resolver: collection not found
for module path: levenshtein
collection: "levenshtein"
in collection directories:
/home/pedro/.racket/6.6/collects
/usr/share/racket/collects
... [156 additional linked and package directories] in: levenshtein
no packages suggestions are available .
I have already used other packages before, with (require racket/trace) or (require rackunit).
Why this package does not work? What should I do?
The packages racket/trace and rackunit are included in the distribution.
The package levenshtein needs to be installed first. An easy way to do this:
1) Open DrRacket
2) In the menu choose "Package Manager..."
3) Choose the tab "Available from catalog"
4) Find your package and install it

coq Hello World example (with opam) can't find libraries

I was following a coq HelloWorld tutorial (code below), and couldn't get the program to compile. I followed the installation steps and installed opam install coq:io:system. My opam installation is at the default location ~/.opam. But still, I got an error about
Toplevel input, characters 53-67:
Error: The reference System.effects was not found in the current environment.
This is with either emacs/proofgeneral or coqide (8.4pl6, ubuntu 14.04). Does any one know how to fix the issue?
Here's the code which I copied into a file called hello_world.v and loaded into emacs/coqide:
Require Import Coq.Lists.List.
Require Import Io.All.
Require Import Io.System.All.
Require Import ListString.All.
Import ListNotations.
Import C.Notations.
(** The classic Hello World program. *)
Definition hello_world (argv : list LString.t) : C.t System.effects unit :=
System.log (LString.s "Hello world!").
-- Update ---
#gtzinos, I followed the readme in https://github.com/clarus/coq-hello-world. This time there was no complaint about System.effects, but there was a new error about Extraction.launch not found. I tried:
git clone https://github.com/clarus/coq-hello-world.git
cd coq-hello-world
./configure.sh && make
and got:
"coqc" -q -R src HelloWorld src/Main
File "/.../coq-hello-world/src/Main.v", line 32, characters 19-36:
Error: The reference Extraction.launch was not found in the current
environment.
I tried also to make in the extraction folder, but without success. Any pointers?
New versions of the coq:io and coq:io:system libraries were just released. Run:
opam update
opam upgrade
to make sure you have coq:io:system in version at least 2.3.0. Now Extraction.launch should be available. System.effects has been replaced by System.effect.