Commit graph

371 commits

Author SHA1 Message Date
kleines Filmröllchen 008b46d06e Documentation: Specify that no new code should contain C-style casts
Let's move towards a C-style-cast-free code base.
2022-05-29 20:36:16 +01:00
EWouters 59598ded15 Documentation: Add ninja command to example
This is needed for the next command to work.
2022-05-25 23:50:57 +01:00
Nathan Wallace 0c0a760aad Meta+Documentation: Bump required QEMU version
This commit bumps the required QEMU version to 6.2 and updates the
version checking logic in Meta/run.sh to support checking against
major and minor version numbers instead of checking against the major
version only
2022-05-24 06:30:57 -04:00
Andrew Kaster ca42da23c2 Meta+Userland: Add jakt as an optional Lagom Tool
We can now use ENABLE_JAKT to pull jakt as a host tool and use it to
pre-process .jakt files into .cpp files for use in serenity applications
2022-05-23 23:05:45 +02:00
Timon Kruiper cc7723b6c4 Meta: Add option to disable Kernel Address Sanitizer
By default we enable the Kernel Undefined Behavior Sanitizer, which
checks for undefined behavior at runtime. However, sometimes a developer
might want to turn that off, so now there is a easy way to do that.
2022-05-21 20:23:32 +01:00
Daniel Bertalan 124bcd743b Documentation: Only install the x86 and AArch64 qemu backends on Arch
The qemu-emulators-full package installs qemu backends for *all*
supported architectures, but we only need x86 and AArch64.

This decreases the installed size of dependencies by 800 MiB.
2022-05-20 09:51:15 +01:00
DexesTTP b37379d489 Meta: Move LibWeb's CMake generation script to its own file
This patch has no functional changes, but prepares the CMake script to
be able to handle LibWeb on Lagom.
2022-05-13 09:59:02 +02:00
Sam Atkins f64a164392 Documentation: Correct and update IDL documentation
- Delete the part about removing `[Exposed=Window]` since that's not
  necessary and we may want that information there to generate the
  Window object.
- Mention adding `#import`s.
- Outline the requirements for the implementation class.
- Mention the non-Event wrapper factories that need to know about
  certain types.

I tend to refer to this document every time I add an IDL type so it's
helpful if it's comprehensive.
2022-05-11 20:16:10 +02:00
networkException 45d78f6435 Documentation: Update the required packages for arch based systems
Since qemu 7 the Arch Linux repository is using a different naming
system for the various required packages. This patch updates the
required dependencies for running serenity.

See https://archlinux.org/news/qemu-700-changes-split-package-setup/
2022-05-09 17:18:25 +02:00
kleines Filmröllchen 53d3d2daaa Documentation: Document how the event loop works & what it does
This was long overdue; as of writing this I saw another question about
something that seems obvious to me who spent a bunch of time with the
system.
2022-05-03 23:04:11 +02:00
Andrew Kaster 5120b39d0e Meta+Userland: Add ENABLE_USERSPACE_COVERAGE_COLLECTION CMake option
This option sets -fprofile-instr-generate -fcoverage-mapping for Clang
builds only on almost all of Userland. Loader and LibTimeZone are
exempt. This can be used for generating code coverage reports, or even
PGO in the future.
2022-05-02 01:46:18 +02:00
python-69 bfb4f070ba Documentation: Fix Typo in TransferringFiles.md
Changed typo in command from Meta/serenity.run to Meta/serenity.sh run
2022-05-01 18:11:07 +02:00
djwisdom 0083fb629b Base+Documentation: Add UsingFontEditor markdown file
Applied all document rewordings as stated for in the PRs
conversation section.
2022-04-30 19:13:17 +02:00
kleines Filmröllchen 0a14732aa8 Documentation: Add more clangd configuration options
This should make clangd work very well. I totally forgot to add this...
2022-04-26 22:47:27 +02:00
Adam Patterson 452334ab6e Documentation: Add EmacsConfiguration.md for emacs editor support
Emacs takes a little work to get working with Serenity.
2022-04-26 22:43:50 +02:00
Simon Wanner 206d6ece55 LibGfx: Move other font-related files to LibGfx/Font/ 2022-04-09 23:48:18 +02:00
Brandon Doornbos 36b6356ce5 Documentation: Add instructions for building images without root
I could not find the fuse2fs or equivalent packages for the other
distros, so it is represented separately for each distro that does
have it.
2022-04-04 12:49:32 +02:00
Andreas Kling 8f1ba8db4f Documentation: Clarify text about virtual/override/final 2022-04-04 12:44:44 +02:00
djwisdom 64564a54d4 Base: Add to documentation 4th method of transferring files
Update documentation with focus on enabling openssh
in SerenityOS and on the proper usage of sftp client to
transfer files.
2022-04-02 19:36:24 -07:00
Idan Horowitz 852ae6c195 Meta: Switch to clang-format-14 as the standard formatter
Now that clang-format-14 ubuntu packages are available, it's time to
finally upgrade our clang-format version. This version brings with it
a bunch of useful features with const-placement being the most notable.
These will be enabled in the following commits.
2022-04-01 21:24:45 +01:00
Idan Horowitz 916e093d4a Documentation: Add Kernel/Userland quick switch to CLion configuration 2022-04-01 17:39:15 +01:00
kleines Filmröllchen 684c39bc19 Documentation: Update GML information and manpage links in FileFormats 2022-03-31 22:13:49 -07:00
Tim Schumacher bf502ae3b0 CMake: Allow building fuzzing targets without libFuzzer or OSS-Fuzz 2022-03-31 22:11:04 -07:00
Tim Schumacher e3519b8e5c Meta: Rename Fuzzer flags to ENABLE_FUZZERS_{LIBFUZZER,OSSFUZZ} 2022-03-31 22:11:04 -07:00
Brian Gianforcaro 95b295971d Everywhere: Move tests to /home/anon/Tests 2022-03-20 22:20:59 +01:00
Andreas Kling 8ed07c8434 Documentation: Add some notes about LibWeb's new paint tree 2022-03-11 00:21:49 +01:00
Jonathan Marler 97c0a8c063 Toolchain: Move nix script from Documentation into Toolchain
Moves the nix script to setup the build environment from Documentation
into the Toolchain as a callable script.  I also modified the script
to accept a "pkgs" argument to make it easy to override the nixpkgs
version from the command-line when calling the script.
2022-03-08 23:31:45 +01:00
dotjpg3141 24a98b888a Documentation: Improve VS Code settings
- Set commit message length to 72 according to CONTRIBUTING.md
  - Format trailing new lines according to check-newlines-at-eof.py
2022-03-07 11:01:27 +01:00
KikooDX 1eb451b8ce Documentation: Add texinfo as a dependency for Alpine Linux 2022-03-01 19:00:19 -08:00
Itamar 935d023967 Userland: Rename WindowServerConnection=>ConnectionToWindowServer
This was done with CLion's automatic rename feature.
2022-02-25 22:35:12 +01:00
Itamar 3a71748e5d Userland: Rename IPC ClientConnection => ConnectionFromClient
This was done with CLion's automatic rename feature and with:
find . -name ClientConnection.h
    | rename 's/ClientConnection\.h/ConnectionFromClient.h/'

find . -name ClientConnection.cpp
    | rename 's/ClientConnection\.cpp/ConnectionFromClient.cpp/'
2022-02-25 22:35:12 +01:00
Andreas Kling 52651f41b0 Documentation: Start writing about "LibWeb: From loading to painting"
This document is meant to cover every significant step in the journey
from giving a page URL to LibWeb, and pixels showing up on screen.

It's by no means complete, but I wrote a fair chunk already, so I'll
commit at this stage and we can expand on it in-tree.
2022-02-24 18:45:37 +01:00
JT b426623f9d Documentation: Add sudo apt update step to build instructions
This adds the necessary `sudo apt update` to the build instructions
after adding the GCC 11 respository.
2022-02-22 13:10:17 +00:00
isakBSD c50ea8c1dd Documentation: Add texinfo as a dependency for Fedora 2022-02-19 18:27:21 +00:00
Debdut Chakraborty 7527b52efc Documentation: Add Userland/ to qtcreator include path 2022-02-19 11:39:08 +01:00
Isak Holmstrom 8ad9f49de3 Documentation: Change/add two pkgs in the FreeBSD instructions 2022-02-17 09:26:56 +00:00
Max Desiatov 4b85866746 Documentation: Add Rosetta/Homebrew macOS note
This should prevent a build issue caused by a potential
conflicting zstd installation on M1 Mac.

This was manifested in a linker error when building
the GNU toolchain:

```
Undefined symbols for architecture arm64:
[gcc/build]   "_ZSTD_compress", referenced from:
```
2022-02-16 11:29:31 -05:00
czapek1337 6cdb41ccab Documentation: Add information about the limine-image target 2022-02-14 11:52:07 +01:00
Gaven Rendell 78ef608a6b Documentation: Add coreutils dep to Alpine Linux build instructions
`build-image-qemu.sh` depends on GNU's version of `du`:

43d706a29e/Meta/build-image-qemu.sh (L47-L48)

Alpine Linux doesn't use that version by default.
2022-02-11 23:24:25 +00:00
electrikmilk ebfd296016 Documentation: Small fixes to transferring files documentation 2022-02-06 23:50:20 +00:00
Idan Horowitz 18b98f8c28 AK: Convert the try_make<T> factory function to use ErrorOr
This allows more ergonomic memory allocation failure related error
checking using the TRY macro.
2022-02-03 23:33:20 +01:00
Idan Horowitz a65bbbdb71 Kernel: Convert try_make_ref_counted to use ErrorOr
This allows more ergonomic memory allocation failure related error
checking using the TRY macro.
2022-02-03 23:33:20 +01:00
Rummskartoffel 2560d0b9ad Documentation: Update reference to obsolete config option 2022-02-03 14:57:46 +01:00
sin-ack f1c00bb439 Documentation: Add FAQ entry about running the system 2022-02-02 21:40:28 +01:00
Pankaj Raghav d93ffe3cf8 Documentation: Update BareMetalInstallation's storage support section
NVMe drive has been tested on a BareMetal HW :^) . Update the
BareMetalInstallation instruction to reflect the same.
2022-02-02 18:26:59 +01:00
Sergei Reznikov a9a1d0afb4 Documentation: Document setting UUID for VDI image 2022-01-28 19:46:52 +00:00
Daniel Bertalan 4055c393fc Toolchain: Add support for building the userland with the mold linker
This commit adds support for building the SerenityOS userland with the
new [mold linker].

This is not enabled by default yet; to link using mold, run the
`Toolchain/BuildMold.sh` script to build the latest release of mold, and
set the `ENABLE_MOLD_LINKER` CMake variable to ON. This option relies on
toolchain support that has been added just recently, so you might need
to rebuild your toolchain for mold to work.

[mold linker]: https://github.com/rui314/mold
2022-01-24 10:41:47 +00:00
Gurkirat Singh ecf53105b0 Documentation: Replace deprecated osxfuse with macfuse 2022-01-24 05:43:36 +00:00
Dmitry Petrov 19c2b96b0c Documentation: Update qt creator guide to have up to date paths 2022-01-17 11:18:19 +01:00
flyingwombat921 ed271aa7c5 Documentation: Swap 'Right' and 'Wrong' code practice 2022-01-16 15:16:44 -08:00
kleines Filmröllchen 49011e2030 Documentation: Explain the array-like types and their differences
It's not at all obvious how we need three different array-like types.
This change to the Patterns documentation attempts to explain why they
exist, how they differ (mostly in allocation behavior) and what their
use cases are. This builds on #11844 which fixates and tests the
hereby-described allocation behavior of FixedArray.
2022-01-16 11:14:26 +01:00
Rummskartoffel 5fe619de99 Documentation: Update names of RefPtr helper functions
This seems to have been missed when these functions were renamed.
2022-01-15 21:33:04 +01:00
kleines Filmröllchen 60ace37713 Documentation: Add a method for 7zip and other archive tools
Some archive tools can open ext2 images like an archive, which is very
convenient for people that already have such tools like 7zip.

This also contains information for WSL users on where to find the
_disk_image in Explorer.
2022-01-10 21:18:07 +01:00
Brandon f43b69f8e2 Documentation: Document how to transfer files from QEMU to the host
Document how to transfer files from QEMU to the host
2022-01-10 10:31:54 +01:00
Maciej b3e47f0bd5 Documentation: Update glyph/x-fonteditor format description 2022-01-09 00:18:46 +01:00
Sam Atkins e8c71605b9 Documentation: Document string formatting format 2022-01-08 06:18:04 -08:00
mjz19910 10ec98dd38 Everywhere: Fix spelling mistakes 2022-01-07 15:44:42 +01:00
Andrew Kaster c62c10caf0 Meta+CI+Documentation: Bump host gcc requirement up to gcc 11
Bump macOS CI version to macOS 11 while we're here.
2022-01-07 11:02:30 +01:00
mjz19910 3102d8e160 Everywhere: Fix many spelling errors 2022-01-07 10:56:59 +01:00
tuftedocelot 6dee1e91be Meta+Documentation: Don't rebuild disk image for every run on OpenBSD 2021-12-29 03:46:56 -08:00
kleines Filmröllchen f650efc76f Documentation: Elaborate on GRUB image flashing and video-less debugging
This should help others to not run into the same roadblocks with
bare-metal that I ran into.
2021-12-29 03:45:59 -08:00
Conor Byrne 7c6fc79c23 Documentation: Recommend using Xcode's command line tools on macOS 2021-12-27 23:26:25 +01:00
Ali Mohammad Pur f20e0036bd Meta: Add a cmake flag for building for compiler explorer
We don't need to build tests/binaries for CE.
2021-12-22 20:49:28 +03:30
alexmajor 35e5cbe3b3 Documentation: Update VSCode configuration
Remove note about CMake Tools as version 1.9.0 has shipped and no longer
needed. Update details for files to latest versions and allow easier
copy and paste into an empty file.
2021-12-21 22:09:06 +01:00
Andreas Kling 13680ae038 Kernel: Build with -O2 by default
We used to build with -Os in order to fit within a certain size, but
there isn't really a good reason for that kind of restriction.

Switching to -O2 yields a significant improvement in throughput,
for example `test-js` is roughly 20% faster on my machine. :^)
2021-12-16 22:48:16 +01:00
Astraeus- 9090dea1e2 Documentation: Fix spelling error
"SourceLocatin" -> "SourceLocation"
2021-12-14 15:05:16 +00:00
Sam Atkins 3a44b8111b Documentation: Update instructions for using the Clang toolchain
The note that `Meta/serenity.sh` is incompatible with Clang is no longer
true.
2021-12-02 14:34:45 -08:00
Brian Gianforcaro 60ba0e67fe Documentation: Document the new TRY/MUST and serenity_main patterns :^)
We have some new patterns, lets document them for future contributors.
2021-11-30 23:39:32 -08:00
Thi Doãn 7b2bd79855 Documentation: Remove outdated instruction
As of qemu 6.0.0, it should already have the entitlement to access the
Hypervior.framework by default, so re-codesigning the binary is
no-longer necessary.

8a74ce618b
2021-11-25 01:10:19 -08:00
Ben Wiederhake 66c06e8efb Documentation: Document which file formats exist
I intentionally don't document the format specifics, to prevent this
file from becoming outdated. Hence, only a list with pointers to where
to find details.
2021-11-21 00:31:00 +00:00
Jelle Raaijmakers 8744086781 Toolchain: Add Qemu build dependencies to Dockerfile
Also add `libsdl2-dev` as a required dependency and reorder the
list of packages passed to `apt-get`.
2021-11-20 21:16:51 +00:00
Ben Wiederhake f2ce751a32 Documentation: Update Debian dependency list
Apparently, qemu-system-* changed its name.

On Debian/Ubuntu, genext2fs does not make a difference: The only user of
this command, Meta/build-image-qemu.sh, runs as root anyway, and tries
to do 'mount _disk_image mnt/' first. Debian/Ubuntu always have drivers
for ext2 available, so this command has no good reason to fail, and
trying to use genext2fs might only obscure any problems that mount
encountered.

Finally, Debian Bullseye (released 2021-08-14) contains gcc-10, so the
instructions on how to upgrade are now obsolete.
2021-11-11 12:47:39 +00:00
Hendiadyoin1 1bbdce7e81 Documentation: Update and simplify VSCode Task recommendation
With these you'll only need 3 tasks to cover lagom and all of normal
build and launch with just 3 Tasks and two option menus.
2021-11-06 00:45:45 +01:00
Ben Wiederhake 5e9cf47627 Documentation: Recommend a comment style 2021-11-05 21:07:35 +01:00
Nicolas Danelon b233cdde77 Documentation: Update BuildInstructionsMacOS.md
- gcc@10 is not available for M1, using gcc 11.
- the path to qemu is now dynamic
2021-11-02 12:24:39 +01:00
Jelle Raaijmakers 0909bbfe38 Documentation: Update required Qemu dev packages
Without `libspice-server-dev`, Qemu will build without SPICE support.
2021-11-02 11:08:17 +01:00
Ben Wiederhake 3d855a801b SystemServer: Rename 'BootModes' config option to 'SystemModes' 2021-10-25 23:38:28 +02:00
Ben Wiederhake 8d13f6ddce Kernel+SystemServer: Change bootmode to system_mode
'bootmode' now only controls which set of services are started by
SystemServer, so it is more appropriate to rename it to system_mode, and
no longer validate it in the Kernel.
2021-10-25 23:38:28 +02:00
Ben Wiederhake 09432a8241 Kernel: Separate panic behavior from bootmode
Bootmode used to control panic behavior and SystemServer.
This patch factors panic behavior control into a separate flag.
2021-10-25 23:38:28 +02:00
Ben Wiederhake 542a88a7be Kernel: Separate framebuffers from bootmode
Bootmode used to control framebuffers, panic behavior, and SystemServer.
This patch factors framebuffer control into a separate flag.
Note that the combination 'bootmode=self-test fbdev=on' leads to
unexpected behavior, which can only be fixed in a later commit.
2021-10-25 23:38:28 +02:00
Nico Weber ef1d247d79 Documentation: Tweak RunningOnRaspberryPi a bit 2021-10-21 20:01:34 +01:00
Tom 1d4919bb81 Meta: Document anon user's password 2021-10-20 18:07:24 +02:00
Marcin Undak d045181375 Documentation: Add RunningOnRaspberryPi page
This is a first draft targeted for existing developers.
2021-10-16 00:36:51 +01:00
mjz19910 8ea79c05db Documentation: Fix spelling error
A spelling error caused an invalid file to be referenced,
change the summary value so it mentions to the correct file.
2021-10-11 22:52:12 +01:00
Ben Wiederhake 9df8c31cdc Documentation: Fix broken empty links
The intention seems to be to enable links like:
https://github.com/SerenityOS/serenity/blob/master/Documentation/CodingStyle.md#east-const
However, this has never worked, and is also not how the syntax works.
Because there seems to be no demand for the intended feature (nobody
since 2019 fixed it), this patch removes it.

Found by markdown-checker.
2021-10-10 15:18:55 -07:00
Tim Schumacher 98e878ab3b Documentation: Fix one more path for GRUB netbooting 2021-10-07 23:00:14 +02:00
Tim Schumacher 9f56cf0698 Documentation: Install pxelinux into the root of TFTP
pxelinux doesn't appear to allow switching to the parent directory, and
absolute paths don't seem to work as expected either.
2021-10-07 23:00:14 +02:00
Tim Schumacher 2dcde51a74 Documentation: Update NetworkBoot to include Prekernel 2021-10-07 23:00:14 +02:00
Patrick Wilmes b00218715a Documentation: Added unzip to arch install list
After setting up the toochain on manjaro linux (new install) the build
of the toolchain failed as unzip was not found. The unzip package is
listed in the documentation for debian (apt) but is was missing for arch
linux.
2021-10-04 18:30:41 +01:00
Sam Atkins 02a369a0a3 Documentation: Add documentation for adding IDL files
There are several steps involved, which are not at all obvious unless
you already know them. So now they're written down. :^)
2021-10-04 15:32:27 +01:00
Nico Weber cd7ec294db Documentation: Fix grammar-o in ProcFSIndexing.md 2021-10-01 01:06:40 +01:00
Nico Weber e6a97f1b7b Documentation: Add texinfo to build instructions
`Meta/serenity.sh rebuild-toolchain aarch64` failed with the gdb build
complaining about missing `makeinfo` without this.
2021-09-30 02:56:21 +00:00
Brian Gianforcaro afb09e84db Documentation: Add AK::SourceLocation pattern to Patterns.md
Document the emergent pattern of using `SourceLocation` for capture
file, line, function name information when calling an API.
2021-09-28 10:57:00 +02:00
Brian Gianforcaro f71f1d66d6 Documentation: Add operator"" sv pattern to Patterns.md 2021-09-28 10:57:00 +02:00
Edward Palmer 2f01d34b99 Documentation: Add build file copy instruction 2021-09-27 16:30:38 +02:00
Tobias Christiansen f6ffa09437 Meta: Add section to CLion Configuration Docs about including headers 2021-09-19 22:57:58 +02:00
Liav A 3f5a6be69f Documentation: Add the new supported RTL8168 variants to the list 2021-09-18 17:49:24 +03:00
Andrew Kaster a78f967b93 Documentation: Recommend setting PREFIX_PATH instead of INSTALL_PREFIX
This was straight up the wrong CMake variable to set. We care about
where the project will find Lagom, not where it wants to install its own
binaries to.
2021-09-16 15:47:13 +00:00
Andrew Kaster 9ec02e7137 Documentation: Update CLionConfiguration for SuperBuild
Extra configure options may need passed to CLion in order for it not to
choke on the new CMake setup. In particular, it's now a very bad idea to
pass CMAKE_CXX_COMPILER and CMAKE_C_COMPILER to the target build.
2021-09-15 19:04:52 +04:30
Andrew Kaster a488041d54 Documentation: Document new SuperBuild build infrastructure
Add additional clarification for the CMake cache, and add missing extra
targets as well.
2021-09-15 19:04:52 +04:30