Commit graph

584 commits

Author SHA1 Message Date
kleines Filmröllchen 63de4d3ada Documentation: Expand package manager FAQ with pkg info
Explain a bit about what pkg is and what it isn't, and clarify that
while Serenity kinda-sorta has the beginnings of a "package manager",
it's not exactly like a typical Linux package manager with binary
software.
2024-01-06 05:01:35 -07:00
Ali Mohammad Pur 5e1499d104 Everywhere: Rename {Deprecated => Byte}String
This commit un-deprecates DeprecatedString, and repurposes it as a byte
string.
As the null state has already been removed, there are no other
particularly hairy blockers in repurposing this type as a byte string
(what it _really_ is).

This commit is auto-generated:
  $ xs=$(ack -l \bDeprecatedString\b\|deprecated_string AK Userland \
    Meta Ports Ladybird Tests Kernel)
  $ perl -pie 's/\bDeprecatedString\b/ByteString/g;
    s/deprecated_string/byte_string/g' $xs
  $ clang-format --style=file -i \
    $(git diff --name-only | grep \.cpp\|\.h)
  $ gn format $(git ls-files '*.gn' '*.gni')
2023-12-17 18:25:10 +03:30
Sönke Holz ec06c47c06 Documentation: Correct IPC socket path in Browser/ProcessArchitecture.md 2023-12-09 08:37:32 +00:00
Andrew Kaster 08cacea7d5 Documentation: Begin document on execution and navigation in LibWeb 2023-12-04 12:01:25 -07:00
networkException b95e7772e7 Documentation: Improve nix related commands
This patch fixes `nix develop` commands not using proper paths, uses
the serenity root directory as an assumption for all commands and
adds variants of nix commands to use a custom entry point, for example
a shell.
2023-12-04 08:03:29 +00:00
Timothy Flynn 08572d45b8 Documentation: Change macOS Ladybird command to launch in the foreground
Also add flags to direct stdout/stderr to the terminal, and show how to
pass arguments to the browser.
2023-11-17 19:14:53 +01:00
Valtteri Koskivuori 427ca284f1 Documentation: Update Helix editor documentation
Helix 23.10 made breaking changes to the way lsp configuration works, so
update documentation to reflect the new structure.
2023-11-15 06:49:48 -05:00
Timothy Flynn bbdd624d50 Ladybird: Do not require Qt6 Multimedia if PulseAudio is available
If PulseAudio is available, the Qt6 audio plugin will never be used. So
let's remove it from the build.

Note that on macOS, the Qt6 audio plugin will be used if the Qt chrome
is enabled. Otherwise, Audio Unit will be used for the AppKit chrome.
2023-11-04 08:36:34 -04:00
Andrew Kaster 49d21619d4 CMake: Use a helper file to find GL and EGL in a platform agnostic way
Also add a flag to turn off accelerated graphics entirely.
2023-10-31 02:32:58 -06:00
Andrew Kaster 4dbb73b360 Meta+Documentation+Ladybird: Update places that use ladybird filename
Fallout from 01feae24b2

These places referred to the filename "ladybird" directly, but we
changed the OUTPUT_NAME of ladybird to "Ladybird".
2023-10-27 07:11:35 +02:00
Dan Klishch 8b49bdb724 Meta+Documentation: Restore links to LibJS website
This partially reverts dacf7265 and 67ca5d65.
2023-10-27 07:08:57 +02:00
Emanuele Torre f92f571019 Documentation: SerenityOS' => SerenityOS's in Patterns.md
This is the only instance of `*OS's` in the repo that does not use `s`
after the apostrophe.
Generally, the saxon genitive for singular nouns is always written as
`'s` even if they end in `s`.
2023-10-26 15:45:50 -06:00
Timothy Flynn 1682e46df9 Ladybird+Meta: Make the AppKit chrome the default on macOS
The Qt chrome is still available and may be enabled with CMake.
2023-10-26 11:00:56 +02:00
Tim Schumacher b91d03c2b8 Meta: Don't pass ^C through the serial console on CI
`-serial mon:stdio` passes through all kinds of key combinations,
`-serial stdio` doesn't. This probably isn't something that we want
while running tests or CI, so switch to the non-passing variant.

aarch64 actually failed to run due to this, since it already had
`-serial stdio` in its arguments, causing a conflict. This is why that
entry is now gone entirely.
2023-10-24 13:45:55 +02:00
Tim Schumacher acc0fb7a47 Meta: Manually redirect CI serial output to stdout
`-nographic` additionally reconfigures the Terminal, which clears the
previous scrollback and (ocasionally) breaks line wrapping. This is
probably not something that we want, so only ask for the redirection
behavior.
2023-10-24 11:27:20 +02:00
Andrew Duerig 67ca5d6572 Meta: Update libjs.dev links to test262.fyi 2023-10-24 07:32:19 +02:00
Tim Ledbetter d054116012 Documentation: Replace TRY() example in Patterns.md
The `Menubar::add_menu()` call used in the previous code snippet no
longer returns `ErrorOr`, which defeats the purpose of the example.
2023-09-29 14:05:46 +01:00
Daniel Bertalan 715f452233 Documentation: Hide Meta/serenity.sh rebuild-toolchain
Unless a new toolchain update has been merged, users should not need to
rebuild their toolchain. Yet, the first thing they see in the build
documentation is to run `Meta/serenity.sh rebuild-toolchain`, which
might incorrectly lead them to use it whenever they encounter an error.
This is a waste of time and causes frustration.

Move any mentions of this option to `Troubleshooting.md` and add a note
to `BuildInstructions.md` about the toolchain build being a one-time
endeavor.
2023-09-18 11:13:23 -06:00
Andrew Kaster f9f5c5a3a9 Documentation: Add prerequisites for Android build 2023-09-17 19:22:29 -06:00
nipos 2c9bf5b935 Documentation: Add Ladybird build instructions for Haiku 2023-09-17 13:38:12 -06:00
Andrew Kaster 78ebeb6a5a Ladybird/Android: Move gradle files to Ladybird/Android directory
And add documentation for how to use the thing
2023-09-15 14:18:52 -06:00
Ali Caglayan 0347d04289 Ladybird: Add ladybird.nix to nix flake in Toolchain/
Add another dev shell to `Toolchain/flake.nix` called `ladybird.nix`
that pulls in the dependencies for building Ladybird.

Also update the documentation to mention building with a flake.
2023-09-09 11:22:00 -06:00
James Williams 6ab11e5f44 Documentation: Correct link to flake.nix in BuildInstructionsOther.md 2023-09-09 08:35:05 -06:00
falkdavid 4a83771a75 Documentation: Fix ladybird executable path 2023-09-06 21:09:13 +02:00
Andrew Kaster 3216cc34a6 Documentation: Remove outdated Android build docs
We'll add new docs once the new build has been tested by enough folks
:^)
2023-09-03 11:38:51 +02:00
Ali Caglayan f46b393d2d Toolchain: Add Toolchain/nix-profiles/ to .gitignore
Let users save their nix develop derivation in a profile by ignoring
this specific folder. It encourages the following workflow:

```
nix develop Toolchain/ --profile Toolchain/nix-profiles/dev
```

Which stops the dev enviornment being collected in the nix store. Later
devs can come back and do:

```
nix develop Toolchain/nix-profiles/dev
```

To continue where they left off, without having to download everything
from nixpkgs again.
2023-09-01 11:52:04 +02:00
Ali Caglayan 47e0ea8e42 Toolchain: Add nix flake
Add a nix flake to `Toolchain/` that wraps the existing nix derivation
`Toolchain/serenity.nix`. This also comes with a lockfile making the nix
developer enviornment setup more reproducible.

We also update the documentation for "other builds" to mention the
flake.
2023-09-01 11:52:04 +02:00
Timothy Flynn 5d7e73adfe Meta: Add and document convenient method to build non-Qt Ladybird chrome
This lets us switch between the AppKit and Qt chromes more easily.
2023-08-27 19:02:36 -04:00
Daniel Bertalan 075ce53d14 AK: Fix Clang 18 -Wdeprecated-literal-operator warning
The proper syntax for defining user-defined literals does not require a
space between the `operator""` token and the operator name:

> error: identifier 'sv' preceded by whitespace in a literal operator
>        declaration is deprecated
2023-08-19 11:07:12 +02:00
kleines Filmröllchen 096cecb95e Everywhere: Add RISC-V 64 target to the build system
This is a minimal set of changes to allow `serenity.sh build riscv64` to
successfully generate the build environment and start building. This
includes some, but not all, assembly stubs that will be needed later on;
they are currently empty.
2023-08-18 08:37:43 -06:00
Federico Zotti d250f8fc3e Documentation: Add dependencies for alpine linux
- Add qemu-audio-pa for the audio driver
- Change qemu i386 with x86_64
- Mention fuse2fs for building.
2023-08-18 15:54:39 +02:00
Maxim Solovyov 55edfe5c3c Documentation: Remove qemu-system-x86 from explicit dependencies on Arch
The qemu-system-x86 package is a dependency of the qemu-desktop package
both on Arch and Manjaro Linux so there is no need to install it
explicitly.
2023-08-18 10:20:25 +02:00
Andreas Kling 5300896095 LibGUI: Remove Menubar::try_add_menu()
And fall back to the infallible add_menu().
2023-08-14 14:57:54 +02:00
Daniel Bertalan 44365074fe CMake: Add UNDEFINED_BEHAVIOR_IS_FATAL configure option
This is mainly intended for use on CI, as UBSan instrumentation results
in a serious load and execution time penalty there. See the previous
commit for more details.

With this enabled, the size of LibWeb, built for x86-64 with Clang 17 as
of 0b91d36a is reduced as follows:

      FILE SIZE        VM SIZE
   --------------  --------------
     +18% +2.99Mi  [ = ]       0    .debug_info
     +14%  +758Ki  [ = ]       0    .debug_addr
    +2.6% +7.92Ki  [ = ]       0    .debug_abbrev
    +129% +2.66Ki  [ = ]       0    [Unmapped]
    -0.2%    -208  -0.2%    -208    .plt
    -0.2%    -312  -0.2%    -312    .rela.plt
    -0.1%    -336  -0.1%    -336    .dynsym
    -0.0%    -647  -0.0%    -513    [8 Others]
    -0.1% -1.14Ki  -0.1% -1.14Ki    .dynstr
   -20.1% -53.5Ki -20.1% -53.5Ki    .eh_frame_hdr
    -7.2% -56.8Ki  [ = ]       0    .debug_str_offsets
    -7.1%  -156Ki  [ = ]       0    .debug_str
   -15.0%  -160Ki  [ = ]       0    .symtab
   -63.6%  -245Ki -63.6%  -245Ki    .relr.dyn
   -25.4%  -357Ki -25.4%  -357Ki    .eh_frame
   -27.7% -1.09Mi  [ = ]       0    .strtab
   -59.3% -10.0Mi  [ = ]       0    .debug_rnglists
   -41.3% -11.0Mi  [ = ]       0    .debug_line
   -70.0% -12.0Mi -70.0% -12.0Mi    .rodata
   -65.2% -15.1Mi -65.2% -15.1Mi    .data
   -53.0% -15.7Mi -53.0% -15.7Mi    .text
   -41.7% -62.1Mi -57.7% -43.4Mi    TOTAL
2023-08-13 05:14:07 +02:00
Liav A b096f39e92 Documentation: Update the kernel development guide on FixedStringBuffer
The following changes take effect:
1. Annotate FixedStringBuffer => `FixedStringBuffer` in many places.
2. Remove non-existing helpers for FixedStringBuffers. I added them
previously but even then they were removed in a following fixup so these
references were never valid. Therefore let's just put a vague reference
to the fact that we have some helpers for this class in the Kernel, and
let people to figure out quickly by themselves for this topic.
3. Put a sentence to explain that FixedStringBuffer objects are not only
being used in syscall handling code, but also for storing actual data in
both the Thread and Process classes as well.
2023-08-12 11:46:38 -06:00
Andrew Kaster 68953f798b CMake: Add option to disable network downloads altogether
This is useful for fully offline builds, and some distribution platforms
2023-08-10 20:10:05 -06:00
Andrew Kaster 1d78e07f6b Meta: Promote SERENITY_CACHE_DIR to a real option
We've had it as a secret option for long enough, let's make it more
visible.
2023-08-10 20:10:05 -06:00
Liav A 1f88109d78 Documentation/Kernel: Explain why and when to use FixedCharBuffers 2023-08-09 21:06:54 -06:00
Dennis 2c17742811 Documentation: Add instructions to disable OpenSSL legacy renegotiation
In distributions with newer versions of OpenSSL, when you run
Meta/serenity.sh rebuild-toolchain you'll get curl: (35)
error:0A000152:SSL routines::unsafe legacy renegotiation
disabled. This is because OpenSSL was compiled with legacy
renegotiation disabled by default. I've added instructions
to Documentation/BuildInstructions.md to solve this issue.
2023-08-07 11:14:34 -06:00
Andreas Kling ddbe6bd7b4 Userland: Rename Core::Object to Core::EventReceiver
This is a more precise description of what this class actually does.
2023-08-06 20:39:51 +02:00
Sam Atkins f9ad5a450c Documentation: Fix typo in Spice documentation filename 2023-07-31 20:01:56 +01:00
ronak69 39e58f8954 Documentation: Add links of all docs that aren't mentioned anywhere 2023-07-31 19:59:33 +01:00
MacDue 2ecafddd1c Documentation: Add a rough guide on setting up SPICE on Ubuntu
Only covers Ubuntu for now (since that's what I use), thought it might
be good to put this somewhere, since I had to search around for the
setup.
2023-07-18 21:59:14 +01:00
David Gow e84def4890 Documentation: Add qt6-multimedia-devel on openSUSE for Ladybird
The documentation for building Ladybird gives a list of packages to
install under openSUSE, but is missing the Qt6 Multimedia development
package, qt6-multimedia-devel.

Include it.
2023-07-09 08:06:13 +01:00
Timothy Flynn 388d455575 Meta: Switch to clang-format-16 as the standard formatter
This includes a few new options to the .clang-format configuration file
to A) adhere to option changes within clang-format 16 (namely the option
AlignTrailingComments), and B) enforce existing style guide rules with
new clang-format rules.
2023-07-08 10:32:56 +01:00
Sebastian Zaha 59c862cab9 Documentation: Debugging Ladybird in CLion 2023-07-08 06:09:18 +02:00
volovikariel 0498f8dabe Ladybird: Add ccache as a build requirement
As ccache is nice to have when rebuilding Ladybird, adding it to the
build instructions may improve the experience for newcomers.
2023-07-06 13:28:19 +02:00
volovikariel 7cd8c3f708 Ladybird: Replace gcc-12 requirement with g++-12
The build instructions include build-essential,
which installs gcc and g++.
However, build-essential's currently stable version (v12.9) depends on
a version of g++ < 12, thus, Ladybird doesn't build.
2023-07-06 13:28:19 +02:00
MacDue dfcd7b3ca5 Ladybird: Replace forward/back/reload SVGs with TVGs
Doing this removes the qt6-svg dependency and allows our rasterizer to
be used for these little icons (and happens to be a fair bit smaller
than the old SVGs).
2023-07-03 23:54:51 +02:00
Timothy Flynn 421aa8da1e Meta: Document that clang-15 is required, and update the compiler checks
We require clang-15 for consteval.
2023-06-21 06:49:47 -04:00
Timothy Flynn a34e369252 Ladybird+LibWeb+WebContent: Create a platform plugin for playing audio
This creates (and installs upon WebContent startup) a platform plugin to
play audio data.

On Serenity, we use AudioServer to play audio over IPC. Unfortunately,
AudioServer is currently coupled with Serenity's audio devices, and thus
cannot be used in Ladybird on Lagom. Instead, we use a Qt audio device
to play the audio, which requires the Qt multimedia package.

While we use Qt to play the audio, note that we can still use LibAudio
to decode the audio data and retrieve samples - we simply send Qt the
raw PCM signals.
2023-06-13 06:14:01 +02:00
Jelle Raaijmakers 5ff80b60cf Meta: Rename BuildIt.sh to BuildGNU.sh
Bring it in line with `Toolchain/BuildClang.sh`.
2023-06-12 16:22:55 -07:00
Caoimhe 9ed9a95c15 Documentation: Add instructions for configuring the Helix editor 2023-06-03 12:20:40 +02:00
Sam Atkins 7c95117d93
Documentation: Add qt6-qtsvg-devel to Ladybird dependencies for Fedora 2023-05-31 15:56:47 +01:00
Caoimhe b0eff23a46 Documentation: Add note about testing UART on the Raspberry Pi 4B 2023-05-26 08:29:26 -06:00
kuchikuu ce764c340a Documentation: Add Qt6 SVG module to Ladybird build deps on Arch
Qt6 SVG is required to successfully compile Ladybird.

Without this package, a compilation error occurs:
Failed to find required Qt component "Svg".
2023-05-25 04:52:36 -06:00
Jelle Raaijmakers a0a860fa07 Documentation: Configure cache dir in CMake settings for CLion
Without this, CMake would err out on a missing `/CLDR/version.txt`.
2023-05-24 12:57:01 +02:00
Daniel Bertalan 4202bb597b Meta+Documentation: Require Xcode 14.3 or Clang 14 for the host compiler
There have been multiple reports of Xcode 14.0 (based on upstream LLVM
14) segfaulting when compiling `LibCore/Process.cpp`. Let's require
Xcode 14.3, which is a known good version based on LLVM 15.

Note that Xcode 14.3 requires macOS Ventura, so users of Monterey or
older are expected to get Homebrew Clang instead.

Homebrew Clang 13 also suffers from the same crash. Although I have not
tested on Linux, the backtrace points to the middle-end, so x86_64 is
also likely to be affected. LLVM 14 was released 14 months ago, so it's
not an unreasonable requirement.
2023-05-24 01:20:02 -06:00
thankyouverycool 024360e604 Documentation: Add section on Ellipses to Text.md 2023-05-23 05:59:49 +02:00
Daniel Bertalan 07918b79b7 Toolchain+Ports: Update GCC to 13.1.0
This is a mostly straight-forward rebase of our patches on top of
13.1.0. The spec files needed a change, as GCC no longer supports STABS
debug information, but we were building GCC with support for it.

Highlights of this release include static `operator()`, The Equality
Operator You Are Looking For and extended `constexpr` support.
2023-05-15 07:00:29 +02:00
martinfalisse f7c27556fa Documentation: Homogenize Ladybird build instructions
Change the file name so that it is similar to the other build
instructions and may be easier to find :^).
2023-05-08 20:53:25 -06:00
Kenneth Myhra 11a89a9d6e Documentation: Add libslirp-dev as a required dependency for QEMU
After the update to QEMU 8.0 libslirp-dev is a required dependency.
2023-05-08 09:30:09 +02:00
Pankaj Raghav 53d47c6614 Documentation: Update information regarding MSIx for NVMe :^)
Now we support MSIx for NVMe. Retain the information about using
nvme_poll until MSIx is tested on a Bare metal system.
2023-05-07 21:16:41 +02:00
Ben Wiederhake ee47c0275e Everywhere: Run spellcheck on all documentation 2023-05-07 01:05:09 +02:00
Annie Song cbdb5f926c Documentation: Correct some typos found in kernel markdown files 2023-05-06 08:01:26 +01:00
Andreas Kling 74d34134ff Documentation: Add Qt6 SVG module to Ladybird build deps on Ubuntu 2023-05-05 17:12:43 +02:00
Raphaël Jakse f99a5e10a3 Documentation: Add dependencies for openSUSE 2023-04-27 21:43:09 +02:00
Emanuele Torre bb045b3c70 Documentation: Fix markdown syntax
Use regular ascii backticks instead of U+00B4 (acute accent).
2023-04-25 01:58:05 -06:00
Tim Schumacher 50f42407f6 Documentation: Add build dependencies for SerenityOS :^) 2023-04-14 19:00:46 +02:00
Linus Groh 259a84b7b6 Documentation: Document preference for SCREAMING_CASE constants 2023-04-13 15:57:30 +02:00
Nico Weber f56b897622 Everywhere: Fix a few typos
Some even user-visible!
2023-04-12 19:37:35 +02:00
Liav A 7ca71959e1 Documentation: Remove unnecessary answer to non-asked question in FAQ
By this point of time, we already have x86-64 support and have removed
i686 support too.

Since we are not the only OS project to remove 32-bit support entirely
and 64-bit computing is the norm for modern personal computers, there's
no need to explain this as it's obvious "why we are 64-bit only".
2023-04-12 14:48:49 +02:00
Ben Wiederhake 2344666725 Documentation+Ports: Be upfront about dependencies
Yes, these can be 'discovered' incrementally, but it's usually nicer to
be upfront instead of making the user play trial-and-error.
2023-04-08 15:20:33 -07:00
Andrew Kaster 840afbb55f Documentation: Add instructions for debugging Ladybird with Xcode 2023-03-28 09:18:50 +01:00
Jelle Raaijmakers dd8fa73da1 Kernel: Add support for Intel HDA
This is an implementation that tries to follow the spec as closely as
possible, and works with Qemu's Intel HDA and some bare metal HDA
controllers out there. Compiling with `INTEL_HDA_DEBUG=on` will provide
a lot of detailed information that could help us getting this to work
on more bare metal controllers as well :^)

Output format is limited to `i16` samples for now.
2023-03-25 21:27:03 +01:00
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
John Diamond 63c459b6c1 Documentation: Update macOS build dependencies to gcc-12
Since commit bc2ebcadc serenity requires gcc version 12 or later to
build, so let's update the homebrew package version to match that.
2022-11-02 16:58:43 +00:00
Gunnar Beutner 2ef1e7e634 Meta: Add configuration file for YouCompleteMe
YouCompleteMe is a plugin for Vim which provides code-completion
functionality. This change adds a configuration file which makes
YouCompleteMe aware of which compile flags to use with clangd.
2022-10-27 20:52:39 +01:00
Linus Groh bc2ebcadc0 Everywhere: Require version >= 12 for GCC host compiler
So far we've gotten away with using GCC 11 for Lagom and to compile the
toolchain, but via #15795 we discovered a compiler bug that has been
fixed in the latest version but would error the build with CI's GCC 11.
Time for an upgrade :^)

We already use ubuntu-22.04 images in most places, so this is pretty
straightforward. The only exception is Idan's self-hosted runner, which
uses Ubuntu Focal. LibJS should build fine with GCC 11, still.
2022-10-25 23:15:51 +01:00
kleines Filmröllchen 2d4591dad4 Documentation: Add FAQ regarding MP3 patents 2022-10-15 22:50:33 +02:00
leeight 1d058ffd72 Documentation: Update VSCodeConfiguration.md
Because x86-64 is the default target, so update the related
documentations.

74018be739
2022-10-13 17:44:49 +02:00
Liav A a1d1f7566f Documentation: Add initial document about the Kernel graphics subsystem 2022-10-12 15:00:53 +01:00
Kenneth Myhra 7ea987456a Documentation: Update CLion Configuration to use the x86-64 target
Since the default target is x86-64 after PR #15441 was merged, then let
us update the CLion Configuration accordingly.
2022-10-12 00:09:51 +02:00
Andrew Kaster a74251ca91 Documentation: Update AddNewIDLFile for GC and Exposed changes 2022-10-09 10:14:57 +02:00
Peter Elliott 37f527be9c Documentation: Change references to uid based sockets to sids 2022-10-03 11:11:29 +02:00
Liav A f46cc90f82 Documentation: Add a document about the Kernel IOWindow concept 2022-09-23 17:22:15 +01:00
Linus Groh edfef8e2f5 Everywhere: Rename WrapperGenerator to BindingsGenerator
This code generator no longer creates JS wrappers for platform objects
in the old sense, instead they're JS objects internally themselves.
Most of what we generate now are prototypes - which can be seen as
bindings for the internal C++ methods implementing getters, setters, and
methods - as well as object constructors, i.e. bindings for the internal
create_with_global_object() method.

Also tweak the naming of various CMake glue code existing around this.
2022-09-21 23:06:08 +01:00
Tim Schumacher 1b25c38b8b Everywhere: Fully remove the separate LibM directory 2022-09-16 16:09:19 +00:00
Brian Gianforcaro d0a1775369 Everywhere: Fix a variety of typos
Spelling fixes found by `codespell`.
2022-09-14 04:46:49 +00:00
Arun Nanduri e268316865 Documentation: Amend comment describing use of "virtual" and "final" 2022-09-06 19:15:54 +00:00
Andreas Kling 6f433c8656 LibWeb+LibJS: Make the EventTarget hierarchy (incl. DOM) GC-allocated
This is a monster patch that turns all EventTargets into GC-allocated
PlatformObjects. Their C++ wrapper classes are removed, and the LibJS
garbage collector is now responsible for their lifetimes.

There's a fair amount of hacks and band-aids in this patch, and we'll
have a lot of cleanup to do after this.
2022-09-06 00:27:09 +02:00
Andreas Kling 7c3db526b0 LibWeb: Make DOM::Event and all its subclasses GC-allocated 2022-09-06 00:27:09 +02:00
Andreas Kling 12042f0757 LibWeb: Make CSSRule and all its subclasses GC-allocated 2022-09-06 00:27:09 +02:00
kleines Filmröllchen c91511b883 Meta+Tests: Allow running FLAC spec tests
The FLAC "spec tests", or rather the test suite by xiph that exercises
weird FLAC features and edge cases, can be found at
https://github.com/ietf-wg-cellar/flac-test-files and is a good
challenge for our FLAC decoder to become more spec compliant. Running
these tests is similar to LibWasm spec tests, you need to pass
INCLUDE_FLAC_SPEC_TESTS to CMake.

As of integrating these tests, 23 out of 63 fail. :yakplus:
2022-09-02 23:54:50 +01:00
Brian Gianforcaro 56c1e71a37 Documentation: Remove execute bit from image file 2022-08-24 07:29:13 +00:00
Skye Sprung 8026d8926c Documentation: Change spelling error in CLionConfiguration.md
Change "want exclude" to "want to exclude"
2022-08-22 08:48:29 +01:00
Roberto Bampi 78bc84c2d8 Docs: Update CLion configuration for WSL
In CLion on Windows subsystem for linux (WSL) we need to set up a
CLion toolchain so that the IDE can find the correct CMake.
2022-08-19 18:10:47 +01:00
Lucas CHOLLET ac7b0e69e5 Base: Launch WebContent at session start-up 2022-08-14 21:52:35 +01:00
Sam Atkins 5fbcda950b Documentation: Add missing step when creating a new IDL type
If you use your new IDL class as a type in an IDL file without doing
this, you'll get confusing error messages.
2022-08-14 11:30:40 +02:00
Liav A 6164729d06 Everywhere: Get rid of the fbdev kernel boot argument remainders 2022-08-14 01:03:23 +01:00
Riyyi 77f0a66d2f Documentation: Add clang-format variant to EmacsConfiguration.md
Add a variant of auto formatting using clang-format that doesn't use
additional packages. It works by adding a buffer-local hook to
`'before-save` for all C++ project files.
2022-08-08 16:36:23 -04:00