Commit Graph

19031 Commits

Author SHA1 Message Date
Philip Monk
2713083386
libsigsegv: disable stack vma check
This patches libsigsegv to not check the stack vma on Linux, since that
involves reading procfs, and we make very heavy use of sigsegv.  This
eliminates most of urbit's performance discrepancy between Linux and
MacOS.  These are the benchmarks used; note this is a local MBP vs a
cloud Linux server, and the MBP is almost certainly faster hardware.

We take two benchmarks, one of which decrements 10 million times and the
other simply allocates 125MB of memory.  These are the results:

cpu-heavy ==  =/ n 10.000.000 |-(?~(n n $(n (dec n))))
mem-heavy == =a (bex 1.000.000.008)

macos, cpu-heavy: 6 seconds
macos, mem-heavy: 1 second

linux-before, cpu-heavy: 30 seconds
linux-before, mem-heavy: 160 seconds

linux-after, cpu-heavy 9 seconds
linux-after, mem-heavy 1.3 seconds

This represents a 3x speedup for the cpu-heavy operation and a 120x
speedup for the memory-heavy operation.

This check was used to try to distinguish stack overflow from other
forms of segmentation fault.  In the comments in src/handler-unix.c, it
describes three heuristics it uses, depending on what's available from
the OS.  In the linux-i386 case, all three are availble, so we simply
disable the slow one.  This correctly recognizes stack overflow if you
simply alloca(10000000000).
2020-06-26 11:15:01 -07:00
Philip Monk
f238bbfde0
Merge branch 'philip/mem' (#3041)
* philip/mem:
  vere: bump version to 0.10.6
  ci: add travis as trusted user
  jets: use appropriate macro
  noun: add -C to control memo cache size
  jets: restore fond/play/peek hooks
  jam: add commented-out functionality to count size of atom
  jets: cap memo cache and remove peek, play, and fond jets
  noun: add functions to count size of noun

Signed-off-by: Philip Monk <phil@pcmonk.me>
2020-06-24 19:23:15 -07:00
Philip Monk
cbb80e9e7d
vere: bump version to 0.10.6 2020-06-24 19:09:03 -07:00
Philip Monk
627df6d41f
ci: add travis as trusted user 2020-06-24 18:36:40 -07:00
Philip Monk
f9d02263ee
jets: use appropriate macro 2020-06-24 17:11:46 -07:00
Philip Monk
361e41e78d
noun: add -C to control memo cache size 2020-06-24 17:08:50 -07:00
Philip Monk
71fa03457c
jets: restore fond/play/peek hooks 2020-06-24 13:42:51 -07:00
Philip Monk
6c3b7aeef5
jam: add commented-out functionality to count size of atom
This is a convenient way to count memory usage of noun by simplying
running `(jam 1.337 noun-1 noun-2 ... ~)`.  This should
be a hint, but for debugging this is sufficient.
2020-06-22 19:29:00 -07:00
Philip Monk
fa6748a7e1
jets: cap memo cache and remove peek, play, and fond jets
With these changes, about 90% less memory and 15% less time is needed to
compile hoon.hoon.  The produced noun is within 3% of the same size,
which suggests this results in little if any duplication.

These are three of the four most commonly hit +ut jets.  The other is
+nest, which cannot be un-memoized without taking much longer to compile
(it didn't finish in my test).  These four jets combined for 2.3 million
out of the 2.4 million cache entries, the other +ut jets combine for
less than 100k, and literal ~+ accounted for about 50k entries.

This also caps the memo cache at 50k entries.  Even with these jets not
memoized, the memo cache grows to 357k entries and 122 MB.  Capping at
50k entries has no effect on time and reduces memory usage of the hash
table to about 25MB.  Entries are reclaimed with the clock algorithm,
which seems to be sufficient for this use.
2020-06-22 19:29:00 -07:00
Philip Monk
d8aed4d4af
noun: add functions to count size of noun
Adds a few functions to count the size of nouns in the current road.
Since this marks the nouns (high bit of refcount), you need to
"discount" them immediately after to unmark them.  Parallel functions
exist for the counting the size of a hashtable.

It would nice to hook this up to a hint, but these are useful to have
available to run in the debugger or by inserting callsites as necessary.
It's also possible to hook them up to the +jam jet gated on a special
value.
2020-06-22 19:29:00 -07:00
Isaac Visintainer
4fded00005 release: urbit-os-v1.0.23 2020-06-18 17:51:16 -06:00
Matilde Park
506c8996d6 interface/config: fix production build 2020-06-18 18:04:30 -04:00
matildepark
97f188aefc
Merge pull request #3025 from urbit/feat/spa
Landscape: Single-page application rearchitecture
2020-06-18 14:05:10 -04:00
matildepark
bef3ea46a0
Merge pull request #3027 from urbit/lf/soto-fix
soto: run +on-load migration once
2020-06-18 13:11:19 -04:00
Liam Fitzgerald
0ac7a75896 soto: run +on-load migration once 2020-06-18 21:47:44 +10:00
Matilde Park
08b4a47589 publish, links: restore full height 2020-06-17 19:13:34 -04:00
Matilde Park
1cc4067622 sh/build-interface: amend for SPA 2020-06-17 17:42:23 -04:00
Matilde Park
35edce597b interface/CONTRIBUTING: amend for SPA / webpack 2020-06-17 17:41:12 -04:00
Matilde Park
c781d5deb1 solid: update pill 2020-06-17 17:30:41 -04:00
Matilde Park
a65edb52cd Merge branch 'master' into feat/spa 2020-06-17 17:12:13 -04:00
matildepark
69dbd1f2f6
Merge pull request #3024 from urbit/la/hood-spa
spa: fixes for ota
2020-06-17 17:08:04 -04:00
Logan Allen
08e1abb139 hood + apps: fix OTA process for feat/SPA 2020-06-17 15:51:13 -04:00
Logan Allen
eaf523e3c2 hood: add version %6 for %file-server upgrade 2020-06-17 14:27:30 -04:00
Matilde Park
304438009e chat: equally size both code + s3 buttons 2020-06-17 13:09:07 -04:00
matildepark
c1e9db8f85
Merge pull request #2997 from urbit/lf/ios-spa-fixes
various-js: improve scrolling experience on iOS
2020-06-17 12:57:27 -04:00
Matilde Park
2fdbdccae1 Merge branch 'feat/spa' into lf/ios-spa-fixes 2020-06-17 12:56:51 -04:00
matildepark
d5d25140f1
Merge pull request #3023 from urbit/lf/chat-max-backlog
chat: qol fixes
2020-06-17 11:14:28 -04:00
Liam Fitzgerald
81a9b0d08e chat: prevent reflow from image loading
Sets a static height on inline images in chat to prevent loss of scroll
position.

Fixes #2883
2020-06-17 16:10:46 +10:00
Liam Fitzgerald
77731f6ca0 chat: scroll on code overflow
Adds a scroll container if code is posted and the code will overflow the
width of the page.

Fixes #2829
2020-06-17 16:08:32 +10:00
Liam Fitzgerald
a2970ce929 chat: cap maximum backlog size at 1000
Caps maximum unread backlog that chat will fetch at 1000 messages.
2020-06-17 15:24:22 +10:00
Matilde Park
5757fd8f5d chat, publish: Filter unreads for current group
Fixes #2897.
2020-06-16 22:27:51 -04:00
Philip Monk
0859e95061
release: urbit-os-v1.0.22 2020-06-15 20:32:37 -07:00
Philip Monk
1acd8fe6d6
Merge branch 'ixv/fix-chat-hook' (#3020)
* origin/ixv/fix-chat-hook:
  chat-hook: pull on store path when removing

Signed-off-by: Philip Monk <phil@pcmonk.me>
2020-06-15 19:58:29 -07:00
Philip Monk
4e3aace970
Merge branch 'jb/aes-siv-fix' (#3013)
* origin/jb/aes-siv-fix:
  tests: updates aes-siv regression test comment
  pill: updates solid
  zuse: propagates fix to aes-128-siv and aes-192-siv as well
  Revert "test: disable aes-siv jets to demonstrate test failure"
  pill: updates solid
  zuse: fixes bug in aes-256-siv iv calculation (+s2vc:aes:crypto)
  test: disable aes-siv jets to demonstrate test failure
  test: add test case for aes-256-siv jet mismatch, observed in the wild

Signed-off-by: Philip Monk <phil@pcmonk.me>
2020-06-15 19:57:01 -07:00
Philip Monk
58f9823d92
Merge branch 'philip/mure' (#3011)
* philip/mure:
  arvo: +mure is taken
  arvo: compile hoon/arvo in separate roads

Signed-off-by: Philip Monk <phil@pcmonk.me>
2020-06-15 19:56:37 -07:00
Philip Monk
9410b4f66d
arvo: +mure is taken 2020-06-15 19:34:30 -07:00
Isaac Visintainer
f0d36f6a52 chat-hook: pull on store path when removing 2020-06-15 16:01:46 -06:00
Matilde Park
34dcc9f971 chat, links, publish: join upon api instantiation 2020-06-15 15:19:00 -04:00
Matilde Park
ef00dc71e4 group-filter: close modal on navigation 2020-06-15 12:45:02 -04:00
matildepark
b4a72db844
Merge pull request #3007 from urbit/la/spa-tile-fixes
landscape-js: make clock and weather load data properly
2020-06-15 12:20:20 -04:00
Joe Bryan
6d56a95837 tests: updates aes-siv regression test comment 2020-06-12 23:26:10 -07:00
Joe Bryan
23547500c0 pill: updates solid 2020-06-12 22:45:02 -07:00
Joe Bryan
faa4956969 zuse: propagates fix to aes-128-siv and aes-192-siv as well 2020-06-12 22:21:19 -07:00
Joe Bryan
3bf0c232d8 Revert "test: disable aes-siv jets to demonstrate test failure"
This reverts commit bb45a47de4.
2020-06-12 21:53:44 -07:00
Joe Bryan
a223a4faa5 pill: updates solid 2020-06-12 21:53:25 -07:00
Joe Bryan
0ddeb6526b zuse: fixes bug in aes-256-siv iv calculation (+s2vc:aes:crypto) 2020-06-12 21:34:04 -07:00
Joe Bryan
bb45a47de4 test: disable aes-siv jets to demonstrate test failure 2020-06-12 21:28:32 -07:00
Joe Bryan
2d66e596cd test: add test case for aes-256-siv jet mismatch, observed in the wild 2020-06-12 21:26:48 -07:00
Philip Monk
4e466214e3
arvo: compile hoon/arvo in separate roads
Adds +mure to run a trap in a separate road.  This should eventually be
just a hint.

Vega was running inside a mule, but since +load was called within vega,
the new kernel was all run within the same mule, so it didn't actually
get to reclaim the space after hoon compiled.

We verified this with printfs in u3m_fall.  On the test ship (from
mainnet) which had 800MB used, vega was taking interior free space from
950MB to 450 over the course of compiling hoon, then each vane would go
from about 450 to 350 and then back to 450 once it finished (which
proves they were correctly isolated).  With this change, after hoon
compiles the free space goes back up to 950MB.  This gives us a lot more
space to compile OTAs.

We had to slightly refactor the logic for doubly-recompiling hoon, since
+mure as written produces a ?(!! _trap), and you can't find faces in the
result of the trap.  We could bake mure, but that's rather awkward.  I
wonder if there's a way to fix this as a wet gate.
2020-06-12 20:51:23 -07:00
Logan Allen
3d3ab7e178 weather: better error printing 2020-06-11 20:15:32 -04:00