Commit graph

409 commits

Author SHA1 Message Date
Linus Groh ea11a84332 Documentation: Start documenting LibWeb code style & patterns 2023-03-14 11:31:57 +01:00
Daniel Bertalan b668000e44 Meta+Documentation: Allow cross-debugging x86_64 Serenity on M1 Macs
While there is no native GDB on Apple Silicon, a cross-debugger that
supports x86-64 does exist.
2023-03-13 17:02:56 +01:00
Daniel Bertalan 59ba94a2d2 Documentation: Add a note about running on Apple Silicon 2023-03-13 17:02:56 +01:00
Andrew Kaster e32267c902 Documentation: Add query-driver to clangd arguments in NvimConfiguration 2023-03-13 08:00:09 -06:00
Andrew Kaster ad5db213ca Documentation: Update VS Code docs for tone, add query-driver directions 2023-03-13 08:00:09 -06:00
Nico Weber 3cff36b7ab Meta+CMake: Remove "image" ninja target in favor of "qemu-image"
"image" was an alias for "qemu-image".

I want to add an `image` userland utility, which clashes with that
shortname.

So remove the existing "image" target. It was just an alias for
"qemu-image".

If you use serenity.sh to build, nothing changes. This only affects you
if you run ninja manually -- you now have to say `ninja qemu-image` to
build the disk image.
2023-03-12 01:48:56 +00:00
Andrew Kaster 8f8e04677d Documentation: Reorganize Lagom README and update fuzzer documentation
Add some prose to the introduction of Lagom about how we use it. Also,
move the section on including Lagom in other projects above the fuzzer
documentation.

Remove the explicit cmake commands from the Fuzzer documentation, as the
script should be the source of truth.
2023-03-10 03:48:41 -07:00
nipos 1fec1741b9 Documentation: Add Ladybird build instructions for OpenIndiana 2023-03-04 21:34:54 -07:00
Andreas Kling 66c04b98f1 Documentation: Add HIG document about writing UI text
This first cut only deals with capitalization.
2023-03-04 00:29:38 +01:00
Yedaya Katsman 82470e9266 Documentation: Fix Ladybird debug instructions
The current Meta/serenity.sh script only accepts the `gdb` subcommand,
not `debug`.
2023-02-14 19:38:29 +01:00
Ollrogge 64b1d4dc8b Documentation: Add formatting section to nvim documenation 2023-02-04 15:47:24 -07:00
Liav A ed67a877a3 Kernel+SystemServer+Base: Introduce the RAMFS filesystem
This filesystem is based on the code of the long-lived TmpFS. It differs
from that filesystem in one keypoint - its root inode doesn't have a
sticky bit on it.

Therefore, we mount it on /dev, to ensure only root can modify files on
that directory. In addition to that, /tmp is mounted directly in the
SystemServer main (start) code, so it's no longer specified in the fstab
file. We ensure that /tmp has a sticky bit and has the value 0777 for
root directory permissions, which is certainly a special case when using
RAM-backed (and in general other) filesystems.

Because of these 2 changes, it's no longer needed to maintain the TmpFS
filesystem, hence it's removed (renamed to RAMFS), because the RAMFS
represents the purpose of this filesystem in a much better way - it
relies on being backed by RAM "storage", and therefore it's easy to
conclude it's temporary and volatile, so its content is gone on either
system shutdown or unmounting of the filesystem.
2023-02-04 15:32:45 -07:00
Andrew Kaster fa637e29d2 Documentation: Reorganize Ladybird build docs to put easy path first
Instead of explaining custom build directories first and then following
that up with a an explainer that Meta/serenity.sh is the easiest way to
get the browser up and running to try it out was not very ergonmic.

Also reorganize some of the per-distro documentation to put the compiler
requirements front and center.
2023-02-04 12:30:36 +01:00
Simon Haegler 5220afcf73 Documentation: Add troubleshooting note regarding KVM GDB 2023-02-02 02:02:23 -07:00
Nico Weber 407d882eee Documentation: Rename WebServer_localhost to .jpg
It took me way too long to figure out why PNGImageDecoderPlugin
couldn't load WebServer_localhost.png -- turns out it's a jpeg file.
2023-02-01 13:40:37 +00:00
Tim Schumacher 8464da1439 AK: Move Stream and SeekableStream from LibCore
`Stream` will be qualified as `AK::Stream` until we remove the
`Core::Stream` namespace. `IODevice` now reuses the `SeekMode` that is
defined by `SeekableStream`, since defining its own would require us to
qualify it with `AK::SeekMode` everywhere.
2023-01-29 19:16:44 -07:00
Tim Schumacher 1971bff314 Documentation: Document the "Fallible Constructor" pattern 2023-01-26 20:24:16 +00:00
Tim Schumacher 03c3d7edbc Documentation: Note that MUST does not replace error propagation 2023-01-26 20:23:08 +00:00
kleines Filmröllchen 4d9b4e1381 Documentation: Add a link list
The link list tries to collect all links from the website, BenW's link
list <https://benwiederhake.github.io/serenity-fixmes/index.html#links>
and the unofficial wiki <https://wiki.serenityos.net/links.html> into
one sorted and expanded list, so that hopefully noone has difficulty
searching for serenity pages in the future :^)
2023-01-24 19:51:13 +00:00
Liav A 29a46f400d Documentation: Remove references to the removed NE2000 driver 2023-01-08 21:51:59 +01:00
Liav A 73525ef31d Documentation: Update the BareMetalInstallation document
Update it to reflect the current status of the bare metal situation now.
2023-01-08 21:51:59 +01:00
Thomas Symalla b8ec5c4470 Documentation: Fix typo in CLionConfiguration.md 2023-01-08 20:39:59 +01:00
Liav A c1d3c1e0cb Documentation: Remove references to the removed RTL8139 driver 2023-01-07 11:37:57 -07:00
Linus Groh 8750e1d080 Documentation: Add section about curly braces to CodingStyle.md 2023-01-06 19:52:06 +01:00
Børlaag fb3e890bd9 Documentation: Update VirtualBox docs memory section 2023-01-06 11:08:58 -07:00
Børlaag 2ec4322772 Documentation: Update VMWare docs memory section 2023-01-06 11:08:58 -07:00
Liav A 0f7cc468b2 Kernel: Make i8042 controller initialization sequence more robust
The setting of scan code set sequence is removed, as it's buggy and
could lead the controller to fail immediately when doing self-test
afterwards. We will restore it when we understand how to do so safely.

Allow the user to determine a preferred detection path with a new kernel
command line argument. The defualt option is to check i8042 presence
with an ACPI check and if necessary - an "aggressive" test to determine
i8042 existence in the system.
Also, keep the i8042 controller pointer on the stack, so don't assign
m_i8042_controller member pointer if it does not exist.
2023-01-06 11:09:56 +01:00
Ben Wiederhake 6c85088952 Documentation: Update QtCreator setup instructions
The biggest difference is that -m32 is no longer important, and in fact
breaks every 64-bit setup.

Also, defining ENABLE_UNICODE_DATA, ENABLE_COMPILETIME_FORMAT_CHECK, and
__SSE__ makes some code "visible" in the #ifdef sense, which improves
syntax highlighting.
2023-01-05 13:20:54 +01:00
Taj Morton f2253d11e5 Documentation: Add how to update build to use SerenityOS-provided CMake 2023-01-04 09:02:13 +00:00
kleines Filmröllchen b36d09bab0 Documentation: Document fix for missing /etc/mtab
/etc/mtab is identical to /proc/self/mounts, but it does not exist under
many circumstances, e.g. chroot'ed or in WSL. The fact that many
userspace programs rely on this file existing and the user needing to
create symlinks manually has been a long-standing issue (there's pretty
old forum posts on Debian and Arch Linux forums about it), but it's not
fixed upstream. This short mention should save people some time.
2023-01-03 18:02:16 +01:00
Vetrox 2afe9f574e Documentation: Add Neovim configuration documentation 2023-01-03 17:59:08 +01:00
Liav A 8c9128f36d Documentation: Remove i686 support 2022-12-28 11:53:41 +01:00
Nico Weber 7aa9413b53 Documentation: Fix a few typos 2022-12-27 15:58:39 -08:00
Andrew Kaster e79e7dc3b9 Documentation: Move Ladybird BuildInstructions to Documentation
Update Ladybird/README.md at the same time to reflect its new monorepo
status.
2022-12-25 07:58:58 -07:00
0xxFF c4bc889346 Documentation: Adjust default TARGET to x86_64 in the documentation 2022-12-19 09:00:34 -05:00
Andrew Kaster 75495a5d65 Documentation: Explain CMake 3.25.x requirement 2022-12-17 22:21:43 -07:00
Andrew Kaster 75f7a164a6 Documentation: Clarify that clang can be used as a host compiler 2022-12-17 22:21:43 -07:00
Gurkirat Singh c2597c3856 Documentation: Add libssl-dev in the debian / ubuntu requirements
In the fresh and minimal installations dev package are often
stripped. This commit will install the libssl dev packages
required in `Utilities/cmcurl/CMakeLists.txt:608`.
2022-12-16 01:03:23 -07:00
Andrew Kaster 77a22268c6 Documentation: Describe extra clang tools built alongside BuildClang.sh
Also rephrase some of the information on updated clang-format binaries
2022-12-10 03:00:24 -07:00
Liav A 968e1a6efc Documentation: Add a note on paths in the kernel development guidelines
Add a note on hardcoded paths so everyone know that this is not an
appropriate thing to do when writing kernel code.
2022-12-09 22:59:50 -07:00
Linus Groh 57dc179b1f Everywhere: Rename to_{string => deprecated_string}() where applicable
This will make it easier to support both string types at the same time
while we convert code, and tracking down remaining uses.

One big exception is Value::to_string() in LibJS, where the name is
dictated by the ToString AO.
2022-12-06 08:54:33 +01:00
Linus Groh 6e19ab2bbc AK+Everywhere: Rename String to DeprecatedString
We have a new, improved string type coming up in AK (OOM aware, no null
state), and while it's going to use UTF-8, the name UTF8String is a
mouthful - so let's free up the String name by renaming the existing
class.
Making the old one have an annoying name will hopefully also help with
quick adoption :^)
2022-12-06 08:54:33 +01:00
Agustin Gianni bf522d3bb3 Documentation: Fix typo in AdvancedBuildInstructions.md
Fixes a small typo where the word `are` was missing.
2022-12-05 11:08:19 +00:00
Liav A bef9ad4e44 Meta: Update all references of clang-format-14 to clang-format-15
Also, we add a section that describes how to get an updated clang-format
with multiple possible options to do that.
2022-12-04 09:13:24 -07:00
Andreas Oppebøen eb44a90e62 Documentation: Recommend CLion code style settings over manual steps
Changing the naming conventions one-by-one was tedious and error-prone.
A settings file is likely to be more forward compatible than a
screenshot. The settings file was made by repeating the manual steps
provided in the documentation, and exporting the file in CLion.
2022-12-03 23:54:48 +00:00
Linus Groh 8639d8bc21 Meta: Switch to clang-format-15 as the standard formatter
The two major changes noticeable on the SerenityOS codebase are:
- Much improved support for const placement, clang-format-14 ignored
  our east-const configuration in various places
- Different formatting for requires clauses, now breaking them onto
  their own line, which helps with readability a bit

Current versions of CLion also ship LLVM 15, so the built-in formatting
now matches CI formatting again :^)
2022-12-03 23:52:23 +00:00
sno2 36f6e09f7e Documentation: Update WSL QEMU Installation Requirements
As Evil stated in the Discord, WSL users must install the DLL
libraries with their QEMU Installation or else they will receive
obscure errors about the syntax of the Meta/run.sh file as shown in
SerenityOS#14033.
2022-12-03 16:04:38 -07:00
Liav A 71536e91c5 Documentation: Add a document about TmpFS 2022-11-25 14:43:28 -07:00
Liav A 9e7d099678 Documentation: Add guidelines document for kernel development 2022-11-25 22:34:32 +01:00
Filiph Sandström 02baa1b005 Documentation: Give collapsed sections consistent headers 2022-11-03 06:58:19 +00:00