From owner-freebsd-current@freebsd.org Mon Feb 12 15:27:30 2018 Return-Path: Delivered-To: freebsd-current@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6EDB3F009DE for ; Mon, 12 Feb 2018 15:27:30 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-it0-x233.google.com (mail-it0-x233.google.com [IPv6:2607:f8b0:4001:c0b::233]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 05919798BA for ; Mon, 12 Feb 2018 15:27:29 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-it0-x233.google.com with SMTP id c80so6904670itb.4 for ; Mon, 12 Feb 2018 07:27:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:from:date:message-id:subject:to; bh=x0amZjqTDafe+3Gpl9Vu/r19Jkx+5gyM8iMRyFdrrGs=; b=eq3yowcZDsQxXjlVnAQqVwuj2kSFWevo5RN8XLAxpMMtGQs+eIVPDxNL0NMZ/vm9PE k0mfY87mjB75g6V8x8iEk/tVnyFTs2Etms6ipJQV9Rk4+FOL2IeeJ/LM+BljPxo/6JTB 3QHbMbIC2VGwHm4cyZRYwgcrijeOUzPSfjuCu8bQoEz3uVSoDvkNXDSmwXkgRo7SIBta ngNTD5oySF1lfOg4ChVEB9tRm1mV6f6YDwhz9KVRrUymyd7AF//iyBlDGqdzd78DJfys 4WNGkXLxN1zXh6Y4Y76cvglAfaG3NtOCaNpOc86aqbNw4++6quEvMpa3o4KEsF/o2kvS LXDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:from:date:message-id:subject :to; bh=x0amZjqTDafe+3Gpl9Vu/r19Jkx+5gyM8iMRyFdrrGs=; b=ipCIoAljkB5MMyeRbWjjT6ZzvNVdMSSwfm4t5CiEn1VELYSOfu+4eGwPVWB4R+nA9q gzmEEyiS8Iwt+xvAL9xehvaG11IWInfdKVznJErmcluvqZT+EZ22eBRMPtpZUk5hHcna sR7QdRS4YIyXlOSChy5wF/XwHQSp92kJGnYsAI4WC4yrmOl/7mE5gi8aEWWTOM9gvi8q EvJiBssMEG5K8o2cP/MgU4eMas2y7q16NI7f11VHp3UvrhHCxw4v6gEnaALV4Z+IDiDZ awSZXlmwCoj+p9r3gWZtSE+fFGOJP1suGd2U+nSPsx93RJ7w/2UiK5tbLMyFwmVBe86p Nn+w== X-Gm-Message-State: APf1xPAC+5vxFmCNXHOlociE4Bw0S02h3427R+1SwH1Vf0q8OPULyng/ RzcgtwaPQcOobxbMPn7jpMtq5BxpWR5RYljeR9acH+1X X-Google-Smtp-Source: AH8x226Nzy/B+mLkI+x1RcTXzDA+2ajB7JR+UOREVJYYTTcEQ9kFEMOaV451ShYaEJbeuHh1Lfc+rlFE++L1QfVTEII= X-Received: by 10.36.250.193 with SMTP id v184mr5358360ith.64.1518449248744; Mon, 12 Feb 2018 07:27:28 -0800 (PST) MIME-Version: 1.0 Sender: wlosh@bsdimp.com Received: by 10.79.201.67 with HTTP; Mon, 12 Feb 2018 07:27:27 -0800 (PST) X-Originating-IP: [50.253.99.174] From: Warner Losh Date: Mon, 12 Feb 2018 08:27:27 -0700 X-Google-Sender-Auth: Nb7CdAJJgidAGHJswPdYYa73SOA Message-ID: Subject: LUA boot loader coming very soon To: FreeBSD Current Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Feb 2018 15:27:30 -0000 Greetings, As you may know, the Lua (http://www.lua.org) boot loader has been in the works for some time. It started out life as a GSoC in 2014 by Pedro Souza mentored by Wojciech A. Koszek. Rui Paulo created a svn project branch to try to integrate it. I rebased that effort into a github branch which Pedro Arthur fixed up. Over the past year, I've been cleaning up the boot loader for other reasons, and found the time was ripe to start integrating this into the tree. However, those integration efforts have taken a while as my day-job work on the boot loader took priority. In the mean time, Ed Maste and the FreeBSD Foundation funded Zakary Nafziger to enhance the original GSoC Lua scripts to bring it closer to parity with the evolution of the FORTH menu system since the GSoC project started. I'm pleased to announce that all these threads of development have converged and I'll be pushing the FreeBSD Lua Loader later today. This loader uses Lua as its scripting language instead of FORTH. While co-existance is planned, the timeline for it is looking to be a few weeks and I didn't want to delay pushing this into the tree for that. To try the loader, you'll need to build WITHOUT_FORTH=yes and WITH_LOADER_LUA=yes. Fortunately, you needn't do a full world to do this, you can do it in src/stand and install the result (be sure to have the options for both the build and the install). This will replace your current /boot/loader that is scripted with FORTH to one that's scripted with Lua. It will install the lua scripts in /boot/lua. The boot is scripted with /boot/lua/loader.lua instead of /boot/loader.rc. You are strongly advised to create a backup copy of /boot/loader before testing (eg cp /boot/loader /boot/loader_forth), since you'll need to boot that from boot2 if something goes wrong. I've tested it extensively, though, with userboot.so and it's test program, so all the initial kinks of finding the lua scripts, etc have been worked out. While it's possible to build all the /boot/loader variants with Lua, I've just tested a BIOS booting /boot/loader both with and without menus enabled. I've not tested any of the other variants and the instructions for testing some of them may be rather tedious (especially UEFI, if you want a simple path to back out). Since there's not been full convergence testing, you'll almost certainly find bumps in this system. Also, all the build-system APIs are likely not yet final. I put MFC after a month on the commit. Due to the heroic (dare I say almost crazy) work of Kyle Evans on merging all the revs from -current to 11, I'm planning a MFC to 11 after the co-existence issues are hammered out. In 11, FORTH will be the default, and Lua will be built by default, but users will have to do something to use it. 12, both FORTH and Lua will be built and installed, with Lua as default (barring unforeseen complications). Once the co-existence stuff goes in, I imagine we'll make the switch to Lua by default shortly after that. In 13, FORTH will be removed unless there's a really really compelling case made to keep it. So please give it a spin and give me any feedback, documentation updates and/or bug fixes. I'm especially interested in reviews from people that have embedded Lua in other projects or experts in Lua that can improve the robustness of the menu code. Warner