Skip to content

Setting up the Flix compiler project

Jakob Schneider edited this page Mar 28, 2023 · 32 revisions

Here's how to set up the the Flix compiler project.

  1. Set up ssh and gpg keys
  2. Clone my own fork
  3. Create a branch called main with git branch main
  4. Check out main with git checkout main
  5. Delete master locally git branch -D master
  6. Set up Flix as remote git remote add -t master -m master upstream git@github.com:flix/flix.git
  7. Fetch and update branches git fetch --prune --all
  8. Set the correct upstream git branch --set-upstream-to=upstream/HEAD main
  9. Pull latest changes git pull

Remember to set signingKey, email, and name in the global git settings with git config --global user.<key> <value>

In short summary:

$ git clone git@github.com:jaschdoc/flix.git
$ git branch main
$ git checkout main
$ git branch -D master
$ git remote add -t master -m master upstream git@github.com:flix/flix.git
$ git fetch --prune -all
$ git branch --set-upstream-to=upstream/HEAD main
$ git pull

My IntelliJ font settings are:

  • Editor > Font > Size: 22.0
  • Editor > File Types > Add Flix (Description: Flix, Line Comment: //, Block Comment start: /*, Block Comment end */) - Check support boxes and add keywords below. Also add *.flix to file name patterns.
  • Add lib jars to library instead of using Gradle

Here's a list of the Flix keywords (may be out of date) for IntelliJ highlighting

1

->
<=>
=>
???
BigInt
Bool
Char
Float32
Float64
Int16
Int32
Int64
Int8
Nil
ReifiedType
Static
String
Unit
alias
and
as
case
catch
checked_cast
checked_ecast
class
def
deref
do
eff
else
enum
f32
f64
false
ff
for
forA
forM
force
foreach
from
get
i16
i32
i64
i8
if
ii
import
inject
inline
instance
into
law
lawful
lazy
let
match
mod
namespace
new
not
null
or
override
par
project
pub
query
ref
region
rem
resume
select
set
solve
static
true
try
type
typematch
unchecked_cast
use
where
with
without
yield

2

3

IO
Impure
NonDet
Pure
Read
Type
Write
ef
ef1
ef2

4

@Test
@test
discard

Clone this wiki locally