From: Josh Burdick <jburdick@gradient.cis.upenn.edu>
To: caml-list@inria.fr
Subject: [Caml-list] language-based permissions?
Date: Mon, 08 Dec 2003 00:12:23 -0500 [thread overview]
Message-ID: <3FD40837.20203@gradient.cis.upenn.edu> (raw)
I noticed that as of OCaml 3.05, there was a new option,
"-nostdlib". It seems superficially like with this, and the
"-nopervasives" option, you could do language-based security (as in the
MMM web browser of yore, Java, and Perl's Safe module, among many others.)
In the attached three files, it seems like "foo.ml" should only be
allowed to see, and use, the primitives in "fileworld.ml" (which aren't
much; this is a toy example.) If "foo.ml" tries to use anything else
(as in the commented-out "print_string" line), it gets "Unbound value"
errors in compiling, and can't.
My question: could "foo.ml" call other primitives somehow, even
though they're not linked in? Using the preprocessor, or "external"
functions", maybe? (Assuming that you don't use the "-unsafe" option,
of course...)
Thanks,
Josh Burdick
jburdick@gradient.cis.upenn.edu
==> fileworld.ml <==
open Pervasives
let (+) = (+)
let print_int = print_int
==> foo.ml <==
open Fileworld
let _ =
(* print_string "test\n" *)
print_int (2+2)
==> makescript.sh <==
#!/bin/bash
ocamlc -c fileworld.ml
# now, this should only allow primitives in fileworld.ml to be used...
ocamlc -c -nopervasives -nostdlib foo.ml
# to build the final object, need to allow Pervasives to be linked in
ocamlc fileworld.cmo foo.cmo
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
next reply other threads:[~2003-12-08 5:12 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-12-08 5:12 Josh Burdick [this message]
2003-12-08 5:39 ` Nicolas Cannasse
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3FD40837.20203@gradient.cis.upenn.edu \
--to=jburdick@gradient.cis.upenn.edu \
--cc=caml-list@inria.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox