Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
MirageOS 3.0 (2017) (mirage.io)
58 points by Brajeshwar on Feb 11, 2022 | hide | past | favorite | 26 comments


Please note that this release announcement is from 2017. I'd suggest adding that to the title.

There have been several releases since, including the first 4.0.0-beta just yesterday https://mirage.io/blog/announcing-mirage-40-beta-release

EDIT: submitted the current one here https://mirage.io/blog/announcing-mirage-40-beta-release



Oh! I thought I was submitting that. Now, I'm no longer sure what I submitted. My apologies.


There’s a good episode [0] on Jane Street’s Signals and Threads podcast in which the creator of MirageOS talks a fair bit about the inspiration behind and origins of it:

[0]: https://open.spotify.com/episode/2glWu176Bt5h0NLD5MgaAB?si=u...



Thought this was an update for MirageOS for TI graphing calculators at first.


I wasted many of my high school math classes designing Mario levels thanks to Mirage OS.


The website wouldn't load for me, and I thought it was the TI-83 MirageOS (which has been supplanted by Doors CS, and IDK if the entire B&W TI calculator scene is dead).


I too got a little excited about a new MirageOS release for my TI-84


I was wondering if someone wrote a successor to MASOS[0]? Alas, no.

[0]https://reverb.com/item/35356522-ensoniq-mirage-disk-library...


Returning error 500 for me.


Here is the archived version https://archive.is/p54lm


200 ok for me, now.

TFA also links to release notes: https://github.com/mirage/mirage/releases/tag/v3.0.0


But you have to use OCaml... really? :-)


Tell me what would you prefer and I'll tell you why it's inferior to OCaml.


Sure, I'll play your game, but with a twist. I'd like to crawl a webpage for links to zip files, extract the CSVs inside them, do some basic data processing on them to calculate some stats, then post that data to an API hosted on AWS using amazon's SigV4 authentication scheme - all of this without writing temp files to disk since that would tank performance.

I choose Python, you can have OCaml. Race?

In all seriousness, I quite enjoyed OCaml in university and a quick search shows it has all the libraries needed for this task (which is actually just the next thing in my work queue). It's a great language, but "give me a language and I'll tell you why it's inferior" is not a good attitude. There are always pros and cons and every use case has different priorities.


I would like a Common Lisp Unikernel.


I had my first encounter with CL yesterday and it made me cry. :(

I was trying to install Nyxt browser on FreeBSD.

The Makefile uses sbcl to find a certain value:

    ifeq ($(LISP), sbcl)
        SBCL_FLAGS=--dynamic-space-size $(shell sbcl --noinform --no-userinit --non-interactive --eval '(prin1 (max 3072 (/ (sb-ext:dynamic-space-size) 1024 1024)))' --quit)
    endif
The problem starts here:

    sbcl --noinform --no-userinit --non-interactive --eval <expression omitted>  --quit
Despite the "--noinform --no-userinit --non-interactive" CLI options, sbcl prints out a little banner message:

    % sbcl --noinform --quit
    ;;; loading #P"/usr/local/lib/sbcl/asdf/asdf.lisp"
That ";;; loading ..." message gets into the SBCL_FLAGS variable and causes a shell syntax error when Make tries to run the resulting command (that it builds with that messed up variable.)

Now this alone, although annoying, is not enough to make me cry. I'm a tough old bird who's been around the block. I know where my towel is.

What made me cry is that I can't find any information about >;;; loading #P"/usr/local/lib/sbcl/asdf/asdf.lisp"< !

SBCL and ASDF are both ancient and venerable, there is a metric shit-ton of documentation around them, going back to before I was born. However, without a greybeard around to mentor me, it's effectively not a learning cure but a learning cliff. And yeah, I could open a bug, or join a mailing list or IRC channel, etc. But I "don't have time for that", I just want to run a goddammed browser, not grok the ancient mysteries of SBCL/ASDF.

BTW, I'm not posting this to complain, I hoping someone will pipe up with some useful information about how to quash that little message (piping stderr to /dev/null loses the message, but also the value that we're trying to get from sbcl in the first place.)

(P.S. Hard-coding the value in the makefile let it continue, but then it spews a huge bunch of info about how it's compiling Lisp, cool, but then the build fails with an obscure link error or something. So it goes...)


It's a bit weird that it would load asdf despite --no-userinit. Maybe there's something in your system init. In that case adding --no-sysinit in the command line might help.


Ah, bless you kind and noble stranger! Adding that did indeed suppress the message. Thank you.


I think you will need to provide a bit more information on your setup. The FreeBSD ports system may have configured SBCL in a non-standard way.

As the sibling post points out, the Makefile line should work, it does work for me on NetBSD.


Adding `--no-sysinit` suppressed the message and allowed make to proceed.

The build then hangs on not finding lfp.h header file (which is part of libfixposix which is in FreeBSD pkg repo but without the header files.

    <...>/common-lisp/nyxt/_build/iolib/src/syscalls/ffi-types-unix__grovel.c:6:10: fatal error: 'lfp.h' file not found
    #include <lfp.h>
             ^~~~~~~
    1 error generated.
It's been too long, can I just download the header(s) and put them somewhere (where the compiler will find them)?

- - - -

FWIW, at the start of sbcl compiling Nyxt this warning is printed:

> WARNING: You are using ASDF version 3.3.1 (probably from (require "asdf") or loaded by quicklisp) and have an older version of ASDF (and older than 2.27 at that) registered at #P"/usr/local/lib/common-lisp/asdf/asdf.asd". Having an ASDF installed and registered is the normal way of configuring ASDF to upgrade itself, and having an old version registered is a configuration error. ASDF will ignore this configured system rather than downgrade itself. In the future, you may want to either: (a) upgrade this configured ASDF to a newer version, (b) install a newer ASDF and register it in front of the former in your configuration, or (c) uninstall or unregister this and any other old version of ASDF from your configuration. Note that the older ASDF might be registered implicitly through configuration inherited from your system installation, in which case you might have to specify :ignore-inherited-configuration in your in your ~/.config/common-lisp/source-registry.conf or other source-registry configuration file, environment variable or lisp parameter. Indeed, a likely offender is an obsolete version of the cl-asdf debian or ubuntu package, that you might want to upgrade (if a recent enough version is available) or else remove altogether (since most implementations ship with a recent asdf); if you lack the system administration rights to upgrade or remove this package, then you might indeed want to either install and register a more recent version, or use :ignore-inherited-configuration to avoid registering the old one. Please consult ASDF documentation and/or experts.

But when I look in /usr/local/lib/common-lisp/asdf/asdf.asd it has:

    (defsystem "asdf"
      :author ("Daniel Barlow")
      :maintainer ("Robert Goldman")
      :licence "MIT"
      :description "Another System Definition Facility"
      :long-description "ASDF builds Common Lisp software organized into defined systems."
      :version "3.3.4.7" ;; to be automatically updated by make bump-version
      ...
So I don't know why it thinks there's "an older version of ASDF (and older than 2.27 at that)" registered there, nor why it thinks I'm using 3.3.1.


Looks like it's trying to use pkg-config to find the necessary flags for the library: https://github.com/sionescu/iolib/blob/master/src/syscalls/f...

The proper solution would be to install it somewhere and configure pkg-config to find it, but you could just try putting the headers in /usr/local/include and see if it finds them.

I think your system package manager has installed your SBCL/asdf in some weird way. It would be best to just uninstall it all and build SBCL from sources yourself (it has asdf bundled with it). The binary releases for FreeBSD on sbcl.org seem to be ancient versions.


> uninstall it all and build SBCL from sources yourself

Thanks, I may well try that. I've always said that I maintain an open bank of neurons for learning Lisp someday. Maybe that day is today. :)


You might want to use the SBCL you already have to build SBCL from source, then uninstall the FreeBSD package, then install the one built from source.


That is a feature.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: