summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-01-19LibJS+LibTimeZone+LibUnicode: Indicate whether a time zone is in DSTTimothy Flynn
Return whether the time zone is in DST during the provided time from TimeZone::get_time_zone_offset,
2022-01-19LibJS+LibTimeZone: Begin handling DST when computing time zone offsetsTimothy Flynn
This also updates some expectations in a Temporal time zone offset test that is using a time stamp which is in DST for a few time zones.
2022-01-19LibTimeZone: Parse and generate DST rule links for each ZONE entryTimothy Flynn
Each ZONE entry contains a RULES segment with one of the following: * A DST rule name, which links the ZONE to a RULE entry holding the DST rules to apply. * A static offset to be applied to the STDOFF offset. This implicitly means that the time zone is in DST during that time frame. * A "-" string, meaning no offset is applied to the STDOFF offset, and the time zone is in standard time during that time frame.
2022-01-19LibTimeZone: Begin parsing and generating DaylightSavings rulesTimothy Flynn
2022-01-19AK: Add helper to convert an epoch time in seconds to a yearTimothy Flynn
2022-01-19AK: Put an empty new line between function definitions in AK::TimeTimothy Flynn
There was over 110 lines without a single line break, let's give our eyes a break.
2022-01-19LibJS: Implement Function.prototype.toString() according to the specLinus Groh
That's an old yak :^) No, past me, AST nodes do not need to learn to stringify themselves. This is now massively simplified by using the [[SourceText]] internal slot. Also updates a bunch of tests that are incorrect due to the old implementation not being spec compliant, and add plenty more.
2022-01-19LibJS: Pass source text to ECMAScriptFunctionObject::create()Linus Groh
2022-01-19LibJS: Let class_definition_evaluation() return a ESFnObject*, not ValueLinus Groh
No need to hide this very specific Object type in a generic Value.
2022-01-19LibJS: Capture source text of FunctionNode and ClassExpressionLinus Groh
2022-01-19LibJS: Set Token's m_offset to the value's start indexLinus Groh
This makes much more sense than the current way of setting it to the Lexer's m_position after consuming the full value.
2022-01-19Kernel/PCI: Don't try to enumerate 255 functions on the host bridgeLiav A
There can only be a limited number of functions (only 8). Also, consider the start bus of the PCI domain when trying to enumerate other host bridges on bus 0, device 0, functions 1-7 (function 0 is the main host bridge).
2022-01-19Kernel/PCI: Start enumeration in specified start bus of the PCI domainLiav A
Some devices, like the Intel Volume Management Device, might have bus numbering restrictions (so numbers can be from 224 to 225, for example).
2022-01-19Kernel/PCI: Don't hardcode Address domain to 0 when enumerating devicesLiav A
2022-01-19Kernel/PCI: Don't cast a domain number to u16Liav A
Found by Tom (tomuta) during a debug session of these changes.
2022-01-19LibJS: Add missing definition of AsyncFunction.prototype.constructorLinus Groh
We also forgot to allocate an AsyncFunctionConstructor and assign it to m_async_function_constructor during GlobalObject initialization, whoops!
2022-01-19LibJS: Remove duplicate definition of AsyncGeneratorFunction.prototypeLinus Groh
2022-01-19LibSoftGPU: Reduce number of samplers to 2Stephan Unverwerth
OpenGL mandates at least 2 texture units when multitexturing is supported. This keeps our vertices lean and gives a nice speed improvement in glquake. Until we support shaders this should be enough.
2022-01-19LibGL+LibSoftGPU: Support generation of multiple texture coordinatesStephan Unverwerth
2022-01-19LibGL: Also track active texture unit indexStephan Unverwerth
In addition to tracking a pointer to the active texture unit we also track its index in the array.
2022-01-19LibGL: Track multiple current texture coordinates in GLContextStephan Unverwerth
Previously we only had a single current texture coordinate, set by the glTexCoord family of functions. Since we now can have multiple texture coordinates we track a vector of current texture coordinates and set the requested one in glMultiTexCoord(). glTexCoord() Always sets the first texture coordinate.
2022-01-19LibGL: Handle multiple texture coordinates in client stateStephan Unverwerth
This now tracks one vertex attribute pointer per texture unit and calls glMultiTexCoord() to set the texture coordinates for the correct texture unit.
2022-01-19LibGL+LibSoftGPU: Add multiple texture coordinates to vertex structStephan Unverwerth
We now have one set of texture coordinates per texture unit. Texture coordinate generation and texture coordinate assignment is currently only stubbed. This will be rectified in another commit.
2022-01-19LibGL: Add stubs for multitexturing and announce GL_ARB_multitextureStephan Unverwerth
This makes glquake recognize multitexture support and choose the multitexture rendering path.
2022-01-19LibGL: Implement glActiveTextureARB()Stephan Unverwerth
This is the equivalent of glActiveTexture() before it got promoted to the OpenGL core specification. It is needed by glquake to enable the multitexturing render path.
2022-01-19LibGL: Generate GL extension string dynamically during constructionStephan Unverwerth
LibGL will now generate the GL extension string in the constructor and refer to it later on when the string is queried via glGetString(). Currently we only check whether the device supports non-power-of-two textures and add GL_ARB_texture_non_power_of_two to the supported extensions in that case.
2022-01-19LibSoftGPU: Announce NPOT texture support via DeviceInfo structStephan Unverwerth
2022-01-19HackStudio: Change ProjectBuilder dependency declaration logicItamar
Previously when generating the HackStudio CMake build file, we used all dependency libraries that are specified in target_link_libraries commands as the dependencies of a library. The recent addition of LibCryptSHA2 broke things because that library is not declared with serenity_lib like most other libraries (it uses special linking properties). This means that we don't declare it in the CMake file we generate. To fix this, we now filter the dependencies and only include libraries that we define in the build CMake file.
2022-01-19AK: Yield while waiting for another thread to create a strong refIdan Horowitz
2022-01-19AK: Yield while waiting for another thread to initialize a SingletonIdan Horowitz
2022-01-19AK: Fix erroneous move operators for SinglyLinkedListLucas CHOLLET
This patch provides a proper implementation of the move operator and delete the move assignment operator. Those operators were introduced in #11888
2022-01-18Base: Add Cypriot Syllabary to font Katica Regular 10Lady Gegga
10800-1083F https://www.unicode.org/charts/PDF/U10800.pdf
2022-01-18Kernel: Don't populate the ACPI SysFS directory with a disabled ACPIIdan Horowitz
This would cause a nullptr dereference on ACPI::Parser::the().
2022-01-18Kernel: Create the time page region before initializing the timersIdan Horowitz
We were unconditionally trying to update it in the interrupt, which would depend on the timer interrupt not being received too soon after the timers are initialized (before the time page was initialized), which was the case when using HPET timers via the ACPI tables, but not when using the PIT when ACPI was disabled.
2022-01-18LibCrypo: Simplify mixed-sign bitwise_orNico Weber
No behavior change.
2022-01-18LibCrypto: Remove some now-unused (and incorrect) methodsNico Weber
Removes the UnsignedBigInteger overloads of SignedBigInteger::binary_{and,or,xor}(). They're now unused, and they also didn't work when *this was negative.
2022-01-18LibCrypto+LibJS: Better bitwise binary_xor binopNico Weber
We went through some trouble to make & and | work right. Reimplement ^ in terms of & and | to make ^ work right as well. This is less fast than a direct implementation, but let's get things working first.
2022-01-18LibCrypto+LibJS: Better bigint bitwise_or binopNico Weber
Similar to the bitwise_and change, but we have to be careful to sign-extend two's complement numbers only up to the highest set bit in the positive number.
2022-01-18LibCrypto+LibJS: Better bigint bitwise_and binopNico Weber
Bitwise and is defined in terms of two's complement, so some converting needs to happen for SignedBigInteger's sign/magnitude representation to work out. UnsignedBigInteger::bitwise_not() is repurposed to convert all high-order zero bits to ones up to a limit, for the two's complement conversion to work. Fixes test262/test/language/expressions/bitwise-and/bigint.js.
2022-01-18LibJS+LibCrypto: Fix SignedBitInteger::bitwise_not and use it in LibJSNico Weber
Bitwise operators are defined on two's complement, but SignedBitInteger uses sign-magnitude. Correctly convert between the two. Let LibJS delegate to SignedBitInteger for bitwise_not, like it does for all other bitwise_ operations on bigints. No behavior change (LibJS is now the only client of SignedBitInteger::bitwise_not()).
2022-01-18LibCrypto: Add Formatter<SignedBigInteger>Nico Weber
Useful for seeing SignedBigInteger values in test failure messages.
2022-01-18AK: Remove now-unused AK::UnicodeUtils methodsTimothy Flynn
2022-01-18FontEditor: Retrieve code point abbreviations from LibUnicodeTimothy Flynn
Rather than using a hard-coded list from AK::UnicodeUtils, LibUnicode contains the up-to-date official names and contains abbreviations for more control code points.
2022-01-18LibUnicode: Generate code point abbreviationsTimothy Flynn
2022-01-18LibJS: Implement UTF-16 surrogate pair concatenation without iterationTimothy Flynn
Performance of string concatenation regressed in a57e2f9. That commit iterates over the LHS string to find the last code unit, to check if it is a high surrogate. Instead, first look at the 3rd-to-last byte in the UTF-8 encoded string to check if it is a 3-byte code point; then decode just those bytes to check if we have a high surrogate. Similarly, check the first 3 bytes of the RHS string to check if we have a low surrogate.
2022-01-18Kernel: Add individual struct definitions for NVMeSubmissionPankaj Raghav
Only a generic struct definition was present for NVMeSubmission. To improve type safety and clarity, added an union of NVMeSubmission structs that are applicable to the command being submitted.
2022-01-18Kernel: Fix m_ready_timeout calculation in NVMePankaj Raghav
The CAP.TO is 0 based. Even though I don't see that mentioned in the spec explicitly, all major OSs such as Linux, FreeBSD add 1 to the CAP.TO while calculating the timeout.
2022-01-18Kernel: Remove delay during NVMe reset and start controllerPankaj Raghav
IO::delay was added as a lazy alternative to looping with a timeout error if the condition was not satisfied. Now that we have the wait_for_ready function, remove the delay in the reset and start controller function.
2022-01-18Kernel: Add UNMAP_AFTER_INIT to NVMe member functionsPankaj Raghav
NVMeController, NVMeQueue and NVMeNameSpace had functions which are not used after init. So add them to UNMAP_AFTER_INIT section.
2022-01-18disasm: Don't fail when trying to disassemble empty filesRummskartoffel
Given an empty file, disasm would try to create a zero-size memory mapping of that file, which would fail with EINVAL.