Commit Graph

383 Commits

Author SHA1 Message Date
ConorB 3b39a6d3af Add clangd language server support (#739)
* Initial clangd support
Tidy up languageserver.ts
Add CompilerCommand option

* Codemirror tooltip newline handling

* Force github login through redirects instead of popup window

* Gracefully exit LS when scratch unloads

* Break scratch language out to api, move language server integration to new hook

* Fix broken import

* Fix languageServer.ts import warnings
(and rename languageserver.ts to languageServer.ts)

* Format on Alt-Shift-F

* Add default, site-wide .clang-format

* Allow source to reference context definitions

* Remove overzealous IIFEs

* Clean up yaml imports, useLanguageServer state

* Remove webpack yaml-specific config

* Fix default-clang-format.yaml loading

* Add editor option to enable / disable language server

* Change language server setting text

* Add ability to select small language server, version bump

* EditorSettings clean

* EditorSettings 2: Electric Boogaloo (sponsored by tailwind)

* Fix tooltip appearance

* Remove alignment settings from default-clang-format.yaml

* Remove references to preferSmallLanguageServer

---------

Co-authored-by: ConorBobbleHat <c.github@firstpartners.net>
Co-authored-by: Mark Street <streetster@gmail.com>
2023-06-04 14:15:27 +09:00
Mark Street 28ba8199ae make score 'tick' white rather than theme-dependent (#777) 2023-06-03 20:19:06 +09:00
Mark Street d87b29d66f remove unnecessary <hr> on new scratch page (#775)
* remove unnecessary <hr> on new scratch page

* also remove .rule css as its unused
2023-06-03 09:45:02 +01:00
ConorB 030cdce94a Fix switching diff algorithms (#769)
* Fix diff mode option

* (almost) all the types!

---------

Co-authored-by: ConorBobbleHat <c.github@firstpartners.net>
2023-05-21 02:54:35 +09:00
Ethan Roseman acb921332b Migrate to metadata api from head.tsx / manually setting title (#749)
* Migrate to metadata api from head.tsx / manually setting title

* Pair programming sesh with the hamster

More title / og fixes
selection css fix with codemirror
2023-05-10 14:12:59 +09:00
Ethan Roseman 796a5f4746 Updates, problems panel bugfix (#745)
* Backend updates, mypy fixes

* new migration (oops), some fixes

* Frontend updates

* cleanup

* Prevent problems panel from starting open if there are no problems

(fixes #703)

* update again

* oopz

* stylelint

* Update checkout version

* Fix test

* Fix test - device.ts still being used on the server :/

* fix cod
2023-05-08 23:56:45 +09:00
EllipticEllipsis 033a1924b1 Tiebreak family sorting by score using Last Modified (#741)
Tiebreak family sort by score using Last Modified
Also reverse sort of Last Modified to have most recent first
2023-05-07 20:13:41 +09:00
EllipticEllipsis 05ae62073f Remove $s (allow comments after function labels) (#736) 2023-04-18 11:59:22 +01:00
LLONSIT c2dc1def14 Add IDO 5.3 Assembler (#733)
* Add MIPS Pro 7.4.4

* update

* Add ido5.3 assembler

* Add an assembly test
2023-04-13 03:33:19 +09:00
sozud d61a6ea952 Initial Saturn support (#728)
* Saturn support

* linter issues

* Fix black formatting issues

* Try fixing ci

* Try 3.10.0

* Try 3.9

* Update asm-differ hash

---------

Co-authored-by: sozud <sozud@users.noreply.github.com>
2023-04-09 13:27:01 +09:00
Ethan Roseman 635b77b1f8 Hide projects feature (#730) 2023-04-08 20:05:29 +09:00
LLONSIT d751b6b1d3 MIPS Pro 7.4.4 (#723)
* Add MIPS Pro 7.4.4

* update
2023-04-04 20:08:04 +09:00
devwizard 9ea0a51368 Add GCC 4.4.0 (#725) 2023-04-04 20:07:49 +09:00
Alex Bates 24eb9e04eb fix #711 (#714)
* fix #711

I hate this

* remove unneeded useRouter import
2023-03-28 13:27:10 +09:00
ConorB 4003446137 Switch from @shopify/web-worker to postMessage for useCompareExtension (#717)
* Switch from @shopify/web-worker to postMessage for useCompareExtension

* Type safety

* make formatting consistent

---------

Co-authored-by: ConorBobbleHat <c.github@firstpartners.net>
2023-03-27 10:07:15 +09:00
LLONSIT 538d7117f9 5.3 C++ (#706)
* 5.3 c++

* black

* tmp

* Update sandbox.py

* mount /tmp as bindmout

* Update sandbox.py
2023-03-22 11:08:55 +09:00
Alex Bates d81d131a43 Update dependencies (#705)
* misc changes

* remove yarn.lock

* update poetry lockfile

* fix env variables in browser

---------

Co-authored-by: Ethan Roseman <ethteck@gmail.com>
2023-03-20 00:33:01 +09:00
Fruityloops f13990daf2 Add clang 8.0.0 and Super Mario 3D World + Bowser's Fury preset (#704) 2023-03-18 23:40:31 +09:00
LLONSIT b0e2604e4b Adding QEMU_IRIX with IDO6.0 (sample) (#693)
* Adding a Wave Race 64 Preset

* Update compilers.py

Adding an AeroGauge JP Kiosk Demo preset

* Update compilers.py

* Adding ido6.0

* irix binfmt

* adding qemu-irix

* updating url

* Update ci.yml

* Update ci.yml

ah

* Update ci.yml

* Update ci.yml

* updating

* Update ci.yml

* Testing binfmt (again)

* Binfmt test

* Update ci.yml

* Update ci.yml

* ido6.0 package

* Update download.py

* Update ci.yml

* Update ci.yml

* Update ci.yml

* Update ci.yml

* again

* Update compilers.py

* commit

* Update compilers.py

* a

* docker

* fix

* other commit

* aaa

* update

* commit

* oops

* systemd

* systemd commit

* a

* ff

* other commit

* Update download.py

* Update ci.yml

* Update ci.yml

* Update ci.yml

* Update ci.yml

* Update ci.yml

* Update compiler_wrapper.py

* Update Dockerfile

* Update ci.yml

* updating

* update

* binfmt

* finishing

* oops

* ah

* finishing

* Another test (final maybe?)

* final commit 100% real no fake

* another commit

* ?

* a

* is this the final commit?

* more tests

* Update compilers.py

* checking if ido_root exists

* updating QEMU_IRIX env

* Update ci.yml

* Update compiler_wrapper.py

* Update Dockerfile

* Update ci.yml

* Update ci.yml

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* Update ci.yml

* test

* testing

* test

* final test

* black?

* update

* closing

* impl

* oops

* black

* update

* update

* fix black problem

* oops

* ooops

* Making more simple

* cleaning

* Update compilers.py

* Update ci.yml

* Update Dockerfile

* flag

* Remove QEMU_IRIX var

* delete qemu-user line
2023-03-11 21:20:01 +09:00
Mc-muffin 382daa3567 Add new PS2 compilers (#698)
* Set correct architecture for PS2 assembler

* Add PS2's EE architecture to diff.py

* Add more PS2 compilers
2023-03-11 21:18:24 +09:00
Luciano Ciccariello 8a5de1d2f0 Add PSY-Q 3.5 and PSY-Q 3.6 compilers for PlayStation 1 (#651)
* Download PSY-Q 3.x compilers

* Add PSY-Q 3.3 and PSY-Q 3.6 PlayStation 1 compilers

* Remove gcc2.6.3-mipsel for good

* Actually install compilers

* Clean-up psyq-msdos folder after downloading it

* Map /proc to allow dosemu2 to run

* Allow to compile with PSY-Q 3.6

* Remove debugging stuff

* Add PSY-Q 3.5 and remove 3.3

* Let ASPSX to be quiet

* Completely replace PSY-Q 3.3 with 3.5

* Modify Castlevania preset

* Add migration from gcc2.6.3-mipsel to psyq3.6

* clean-up

* Typo

* Install DOSEMU in the CI

* Group ENABLE_PS1_SUPPORT set-up

* fix migration script

* Unset the HOME directory globally

* New line

* undo more auto-formatting

* Remove unnecessary comment

* fix

* More autoformatting shenanigans

* Try to fix CI pipeline

* Fix download script

* lint

* lint

* Fix dosemu setup

* Speed-up PSYQ MSDOS compiler

* debugging stuff for the tests

this commit will be reverted

* testing sandbox thingie

* Revert "debugging stuff for the tests"

This reverts commit 6d026b9214.

* Trimming down what Sandbox mounts

* Mount all /dev but read only
2023-02-24 21:40:31 +09:00
Alex Bates e03b357405 dynamically render scratch pages (#688) 2023-02-23 09:36:14 +09:00
Ethan Roseman d02588f54a Dep updates (#682)
* Dep updates

* trying to fix issue
2023-02-16 23:10:42 +09:00
Alex Bates e275eabb11 fix problems panel not scrolling far enough (#676) 2023-02-10 14:37:42 +09:00
Alex Bates 8d3131795b remove api.getCached (#677) 2023-02-10 14:36:15 +09:00
Eidan Garcia 319d435154 Added Margin top to 'Create Scratch' button (#675)
Slapped a `className="mt-2"` to the "Create scratch" AsyncButton.
2023-02-07 13:03:54 +09:00
triph 5ec67ba5dc Add PS2 EE GCC 2.9 and 3.2 compilers (#661)
* Add PS2 EE GCC 2.9-990721 and 3.2-001003-1 compilers

* Add PS2 compilers to download script

* Hash download script for CI compiler cache
2023-01-26 13:20:49 +09:00
Anghelo Carvajal 37ea60b962 Add EGCS 1.1.2-4 compiler (#658)
* Add EGCS1124 to compilers.py

* add to allcompilers

* add download link

* 4
2023-01-17 12:03:17 +09:00
LLONSIT 114d4325d2 Add IDO5.3 Pascal (#657)
* adding and AeroGauge preset

* Update backend/coreapp/compilers.py

Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com>

* Update compilers.py

* IDO5.3 pascal

* Version bump

* Changing str order

* updating

* Another version bump

* cache

* Updating

* update download.py

Co-authored-by: LLONSIT <LLONSIT@gmail.com>
Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com>
Co-authored-by: Ethan Roseman <ethteck@gmail.com>
2023-01-14 13:35:03 +09:00
Ethan Roseman 6d4b9b1b0a A few things (#656)
* A few things:
Make logs more brief by hiding the PATH from compile commands
Hopefully prevent the frontend server from making tons of anonymous profiles
Add a scroll bar to the problems window
Restore the old look of ScoreBadge

* black
2023-01-10 22:04:57 +09:00
Alex Bates c501603582 Add family page back in tab form (#649)
* GhostButton: don't use <button> if not clickable

* change matched score text to "MATCH"

* add family tab to scratch editor

* use '?' for null userlinks

* fix issue where matched functions are sorted to the bottom of the list instead of the top

* fix loading spinner size

* grey out scratches worse than current

* show raw score value on hover only
2023-01-07 22:14:32 +09:00
Alex Bates 31fc40c12c disable compilation problem wrapping
Fixes a bug reported by @DavidSM54 where IDO's problem `---^` arrows wrapped onto the next line, if it was too long, and was therefore not useful.

Link to report on Discord: https://discord.com/channels/897066363951128586/1060319113781719184/1060319116730318938
2023-01-05 00:10:57 +00:00
Alex Bates ceac0a0b20 fix scratch page render failure when parent scratch is unclaimed 2023-01-04 16:19:13 +00:00
Alex Bates ac3b0ad163 disable dark reader for app directory
See #557 for more information
2023-01-04 12:27:59 +00:00
Alex Bates c33a3af4f5 fix new scratch form aborting submit by reloading
The default behavior of <form> when there is a <button> inside (through AsyncButon) is for the form to be submitted, and as we provided no override it effectively just refreshed the page. This aborts the actual new scratch creation request!
2023-01-04 12:21:20 +00:00
Alex Bates 4cf3e416e5 Use Next.js 13 app directory & Tailwind CSS (#626)
- Use Next.js 13 app directory for all routes except projects
- Add Tailwind (resolves #619) and use it for most components
- New footer
- Adjust navbar (logotype, buttons moved to right)
- Improve the styling of the search box
- New /settings/account page
- /credits grabs contributors list for this repo from GitHub's API
- Resolve #634
- New welcome page header with scrolling platform icons
2023-01-03 12:41:05 +00:00
Alex Bates 5459c556ca Add xmas hat to frog.svg (#637) 2022-12-25 12:10:42 +00:00
Anghelo Carvajal 8c9ccc8483 Checkbox for disabling pseudo instructions for MIPS (#635)
Adds a new checkbox for disabling pseudo instructions on MIPS scratches
by passing the `-Mno-aliases` flag to `objdump`. This is disabled by
default.

![image](https://user-images.githubusercontent.com/7416381/209376892-47209728-6791-49ad-89c8-19abe7903ecf.png)

### Why is this useful?

Because GAS likes using the same pseudo instruction for multiple
instructions, which sometimes leads to confusion of "why this doesn't
match if it is the same instruction". Complains about this usually
happen with the `li` pseudo instruction.

Example ("both are `li`s, why it doesn't match?!?!?"):

![image](https://user-images.githubusercontent.com/7416381/209378149-b89c339b-2d29-4fb4-a0ff-0f17a2957ff2.png)
Disabling pseudos ("oh, they actually are different instructions"):

![image](https://user-images.githubusercontent.com/7416381/209378326-2bdb6544-a78c-418e-b69d-e7c727ca0b1f.png)

### Disadvantages

Some pseudos are clearer as pseudos than their actual raw instruction;
like for example the `nop`, which gets disassembled as `sll, zero, zero,
0x0`. `move` is also an example of this (even if the underlying
instruction changes depending on the assembler).
There doesn't seem to be any option in `objdump` to only allow some
pseudos.

`asm-differ` seems to have custom logic for handling `nop`s which gets
lost when disabling them, this can be seen in this screenshot:

![image](https://user-images.githubusercontent.com/7416381/209380469-cd14e671-4fd6-4a2b-aefe-a2dbd21646c6.png)
A workaround for this could be made in the `asm-differ` repo.


### Other

I also allowed passing the other objdump flags to PS1 and PS2.
2022-12-25 14:02:43 +09:00
Alex Bates 04a5a32c07 Upgrade to Next.js 13 (#618)
Resolves #610.
2022-12-19 23:11:57 +09:00
ConorB 44c0ecd6cc Move logic of useCompareExtension to a Web Worker (#605)
Closes #545.
2022-12-17 17:08:56 +00:00
Ethan Roseman 9651b7dcf2 A few issues (#603)
Fixes #312 - removes login event from plausible
Fixes #249 - adds the course db models
Fixes #583 - allow viewing target asm even when the scratch doesn't
initially compile

Update frontend & backend deps
2022-12-14 23:40:41 +09:00
Alex Bates 290c3217f7 disable next-pwa in .env (#604) 2022-12-14 23:04:23 +09:00
Ethan Roseman acf47167b3 update everything (#599) 2022-12-08 22:48:08 +09:00
Alex Bates 49f3f7ae80 Unregister all service workers (#598)
- use stretch instead of old-spec fill-available
- unregister service workers on load
2022-12-08 22:00:00 +09:00
EllipticEllipsis 453f55ed9c Add IRIX as a platform (#594)
Also cleaned up the flags a bit. Possibly the Pascal one should be
renamed to match, but I didn't want to fiddle with all the names again.

Going to try to stop agonising over the logo now!

Co-authored-by: pixel-stuck <mathmcclintic@gmail.com>
2022-12-07 15:47:55 +09:00
Elliptic Ellipsis dedd7077f6 Remove flag names in diff checkboxes 2022-11-15 13:24:09 +00:00
Elliptic Ellipsis 8d26e38808 Move diff_flags to its own functions, add algorithm 2022-11-15 00:21:38 +00:00
Elliptic Ellipsis 43f9806ed8 Add checkbox for accessing show_rodata_refs 2022-11-14 03:33:08 +00:00
EllipticEllipsis f7754296da Round percentages between 99.99 and 100 down (#584)
Addresses #582
2022-11-08 00:47:03 +09:00
Mark Street cb09d59d20 Add PSYQ4.5 compiler (gcc 2.91.66) (#581)
also throwing in the Space Station Silicon Valley preset :)
2022-11-05 20:14:59 +09:00