| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
| |
Fixes acid3 test 57
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
We already need a camel -> kebab converter anyway.
Unfortunately this also changes JS binding names, so it's a breaking
change. Oh well.
|
| |
|
|
|
|
| |
they fit into 8 and 64 bits respectively
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* switch from float64 -> float32; other browsers use 32-bit floats too
* specify integer size as 32-bit
* use NetworkBitmap for background-image value (currently just an
invalid dummy value)
* remove "none" property & value types
CSSValue's payload is always one word (plus another for the type tag).
CSSValues keeps its size, but no longer has to heap-alloc + refcount
word-sized CSSValues.
(On 32-bit systems, CSSValues might actually be larger than before,
but I expect it's still a net benefit with the removal of refcounting
and the switch to 32-bit floats.)
|
| |
|
|
|
|
| |
less work for memset
|
| |
|
|
|
|
|
|
|
| |
The fds must be read before the other buffer resumes execution.
Also, for some reason, CMSG_SPACE/CMSG_LEN are inconsistent in their
size with controllen on BSDs...
|
| |
|
|
|
|
| |
sourcehut sets inline-block on it, and that broke [] placement...
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
One less unsafe/error prone construct. Refcounting the page as seq is
unfortunate, but still miles better than zero-filling a non-refcounted
array. (Plus it works better for base64 decoding.)
The len field is still necessary, because old runtime doesn't support
setLenUninit. Oh well, it's one wasted word, not the end of the world.
As for the chunks, it looks like the allocator still uses small ones for
the seq, so we're good.
|
| |
|
| |
|
|
|
|
|
|
| |
The goal is to get "SmallChunk" pages from the allocator.
I think I stole the idea from faststreams, but the overhead might be
different with raw pointers...
|
|
|
|
|
|
|
|
| |
Moves sendfd/recvfd out of C, and fixes some of its flaws too.
The main one is that now all file descriptors are sent together.
Also, I've decided to remove the ServerSocket after all; it's easy to
add it back if it's ever needed again.
|
|
|
|
| |
to mark nilable ref objects
|
| |
|
| |
|
|
|
|
| |
this should be all of them
|
|
|
|
|
|
|
| |
ok, now it works like in w3m. (mostly, barring CSS limitations...)
we'll see how this works out
Also adds/fixes some select and option DOM APIs.
|
|
|
|
|
|
|
|
|
| |
Regular select is now rendered as flex, and does not wrap.
This gets rid of the pointless whitespace before/after options.
multiple still looks weird, but maybe a bit less?
Probably we should just render it with pseudo-checkboxes, and drop the
special mode from select.nim.
|
|
|
|
|
|
|
|
|
|
|
| |
Now we just pass through a socket created in pager.
This removes the need for a socket directory, and strengthens the buffer
sandbox slightly.
I've kept the ServerSocket code, because I want to add some form of RPC
and communication between separate instances in the future. However,
I don't expect this to be handled outside the main process, so I've
removed the Capsicum-specific connectat/bindat code.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
safeClose was originally added to prevent this bug:
let fd = doSomething() # allocates fd on 0, e.g. by opening a socket
let ps = newPosixStream(fd)
...
discard dup2(ps.fd, STDIN_FILENO)
ps.sclose() # stdin is now closed, despite the opposite intention.
With safeClose called on fds that could be stdin, the goal was that
stdin/stdout/stderr would never be allocated as a different file,
but it was still error-prone. Enter moveFd:
ps.moveFd(STDIN_FILENO)
If ps is already stdin, this does nothing. If not, it dup2's ps to
stdin, closes ps.fd, and sets it to stdin.
|
|
|
|
| |
we always do 2 passes
|
| |
|
|
|
|
| |
better than nothing
|
| |
|
| |
|
|
|
|
|
| |
Just to replace what QJS-NG has, because I don't want to expose a
nanosecond precision clock.
|
|
|
|
| |
welp. bufreader chokes on 0-sized packets...
|
| |
|
|
|
|
| |
starting to run out of test case names
|
|
|
|
| |
it's still not quite there yet T_T
|
| |
|
| |
|
|
|
|
|
|
|
| |
This way, you can C-p and edit searches again.
It is somewhat unfortunate that two entries are saved too, but the
alternatives are more complex and not necessarily better.
|
| |
|
|
|
|
|
| |
contentType is the network type; t may be different depending on the
extension.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, each message (load, resume, passFd, etc.) would open a new
connection to loader's UNIX socket, and assumed the loader was dead
when the loader did not respond (ECONNREFUSED).
As it turns out, this model was hopelessly broken: POSIX does not
specify when a UNIX socket can refuse connections, so while it happened
to work on Linux (which just blocks if it can't accept right now),
FreeBSD would randomly refuse connections whenever its listen queue was
full.
Instead, we now take a socketpair() from the loader in addClient, and
pass on one half to the client (the other half stays in loader); this is
the control stream, and all messages from the specific client are sent
through it. If a message includes a new stream (e.g. lcLoad), then it
sends a new socketpair through the control stream.
Aside from not being completely broken (and being marginally more
efficient), this arrangement has several other benefits: it removes the
need for authentication, almost removes the need for sockdir (now only
buffers use it), and will make it easier to add async message processing
in the future.
|
| |
|
|
|
|
| |
@media (grid: 1) works again.
|
|
|
|
| |
Fixes acid3 test 21
|