profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/leecannon/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Lee Cannon leecannon United Kingdom

leecannon/zig-x86_64 9

Support for x86_64 specific instructions (e.g. TLB flush), registers (e.g. control registers), and structures (e.g. page tables)

leecannon/zig-bitjuggle 4

Various "bit juggling" helpers and functionality

leecannon/zig-xbeam 2

A very partial re-implementation of the rust crate crossbeam.

leecannon/zig 1

General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.

leecannon/zig-pc_keyboard 1

PS/2 Keyboard Decoder

leecannon/acpica 0

The ACPI Component Architecture (ACPICA) project provides an open-source operating system-independent implementation of the Advanced Configuration and Power Interface specification (ACPI). For detailed project information and downloads, go to https://www.acpica.org. For ACPICA contributor and source code licensing information, go to

leecannon/hints 0

Window picker with hints for Awesome

leecannon/known-folders 0

Provides access to well-known folders across several operating systems

leecannon/sokol 0

minimal cross-platform standalone C headers

leecannon/sokol-zig 0

Zig bindings for the sokol headers (https://github.com/floooh/sokol)

issue openedziglang/zig

LTO ignores linker script KEEP directives

A linker script with a section containing a KEEP directive and with a symbol exported into that section is not present in the binary if LTO is enabled.

in linker script:

.stivale2hdr ALIGN(4K) : {
    KEEP(*(.stivale2hdr))
} :rodata

in root zig file:

pub export const header linksection(".stivale2hdr") = // struct initalization here

If want_lto is set to false or null then the binary will contain the stivale2hdr section

created time in 12 hours

push eventleecannon/zig

Michael Dusan

commit sha cc4d38ed574690e0b212fc47431324325edc7921

ci linux: bump qemu-6.1.0.1 closes #8653

view details

Andrew Kelley

commit sha 418105589a2723ca372596e5893e0e1e030efe87

stage2: prepare for building freestanding libc Extracts lib/std/special/c_stage1.zig from lib/std/special/c.zig. When the self-hosted compiler is further along, all the logic from c_stage1.zig will be migrated back c.zig and then c_stage1.zig will be deleted. Until then we have a simpler implementation of c.zig that only uses features already implemented in self-hosted. So far it only contains memcpy and memset, with slightly different (arguably more correct!) implementations that are compatible with self-hosted. Additionally, this commit improves the LLVM backend: * use the more efficient and convenient fnInfo() when lowering function type info. * fix incremental compilation not deleting all basic blocks of a function. * hook up calling conventions * hook up the following function attributes: - noredzone, nounwind, uwtable, minsize, optsize, sanitize_thread

view details

Andrew Kelley

commit sha f215d98043ef948a996ac036609f4b71fa9c3c13

stage2: LLVM backend: improved naming and exporting Introduce an explicit decl_map for *Decl to LLVMValueRef. Doc comment reproduced here: Ideally we would use `llvm_module.getNamedFunction` to go from *Decl to LLVM function, but that has some downsides: * we have to compute the fully qualified name every time we want to do the lookup * for externally linked functions, the name is not fully qualified, but when a Decl goes from exported to not exported and vice-versa, we would use the wrong version of the name and incorrectly get function not found in the llvm module. * it works for functions not all globals. Therefore, this table keeps track of the mapping. Non-exported functions now use fully-qualified symbol names. `Module.Decl.getFullyQualifiedName` now returns a sentinel-terminated slice which is useful to pass to LLVMAddFunction. Instead of using aliases for all external symbols, now the LLVM backend takes advantage of LLVMSetValueName to rename functions that become exported. Aliases are still used for the second and remaining exports. freeDecl is now handled properly in the LLVM backend, deleting the LLVMValueRef corresponding to the Decl being deleted. The linker backends for ELF, COFF, Mach-O, and Wasm had to be updated to forward the freeDecl call to the LLVM backend.

view details

Andrew Kelley

commit sha ef7fa76001f873824b0f64dfc2172ed2f304c348

stage2: enable building freestanding libc with LLVM backend * LLVM backend: respect `sub_path` just like the other stage2 backends do. * Compilation has some new logic to only emit work queue jobs for building stuff when it believes itself to be capable. The linker backends no longer have duplicate logic; instead they respect the optional bit on the respective asset.

view details

Josh Soref

commit sha 664941bf14cad3e62b453f83153ca4b65606707b

Spelling corrections (#9833) Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>

view details

joachimschmidt557

commit sha 8f58e2d77951cdb046e365394c5f02c9b3a93a4f

stage2 codegen: move bit definitions to src/arch

view details

Martin Wickham

commit sha 1e7009a9d982faa466517063452ed7d299b66966

Fix error references across inline and comptime functions

view details

Stephen Gregoratto

commit sha a032fd01e88be2c6e8d0cfb0ccd3d9859c9dffdc

Resolve scope IDs using IPv6 sockets On certain systems (Solaris), resolving the scope id from an interface name can only be done on AF_INET-domain sockets. While we're here, simplify the test while we're here, since there's only one address. Also note that the loopback interface name is not stable across OSs. BSDs and Solaris use `lo0` whilst Linux uses `l0`.

view details

Stephen Gregoratto

commit sha 87fd502fb68f8f488e6eba6b1f7d70902d6bfe5a

Initial bringup of the Solaris/Illumos port

view details

Andrew Kelley

commit sha 42aa1ea115eca3dcc704eddf020ce87271a41174

stage2: implement `@memset` and `@memcpy` builtins

view details

xackus

commit sha 15f55b2805541276f491d255f60f501c8cbd1191

os.flock: FreeBSD can return EOPNOTSUPP

view details

Andrew Kelley

commit sha 04366576ea4be4959b596ebff7041d17e18d08d8

stage2: implement `@sizeOf` for non-packed structs

view details

Andrew Kelley

commit sha 1f2f9f05c254374044d8c30cce6f299d7a18da72

stage2: implement zirCoerceResultPtr and remove Module.simplePtrType and Module.ptrType in favor of `Type.ptr`.

view details

push time in 12 hours

startedjibsen/tinf

started time in 13 hours

startedvinc/moros

started time in a day

issue commentziglang/zig

Publish Zig .gitignore to `github/gitignore`

As @g-w1 says on the PR only zig-cache and zig-out should be present

el10savio

comment created time in a day

push eventleecannon/zls

pyxel

commit sha 03f70be32a8bba7d16eb894a97779c7525a5ddfc

refactor: update ast with addrspace changes

view details

push time in 2 days

push eventleecannon/zig

Jakub Konka

commit sha 819ef521042e7e21db4ab5dd7a0dbe180bd31c57

macho: merge linkWithZld with flush

view details

Jakub Konka

commit sha b20b6d7da9b63783a4f481fd0a4b48a47843abc8

macho: move bit adding rpaths to common codepath

view details

Jakub Konka

commit sha 4c90c1ff63883c2bb8d2baa40e952674daba6814

Merge remote-tracking branch 'origin/master' into zld-incr

view details

Jakub Konka

commit sha a51edc978f90fa3b96e4b1d4886030848f97a7b0

macho: converge populateMetadata with populateMissingMetadata

view details

Jakub Konka

commit sha 52f9b283a77e79f64d3a3b9faf31a07fe350fd8a

macho: fix writeSymbolTable() function After merging `populateMetadata` with `populateMissingMetadata`, it is imperative we clear the number of symbols in `writeSymbolTable`. However, this is hopefully just a temp measure until the convergence of incremental with traditional is complete.

view details

Jakub Konka

commit sha c6ea181e75cc6822edbaceccb11bc3a39484d116

macho: dedup setting entry point logic

view details

Jakub Konka

commit sha 69f42817745a13fc3cc69896cb628a7028696a88

macho: memorize if dyld_stub_binder was already resolved

view details

Jakub Konka

commit sha 8b795fe2ac17466d0bc9de7b494f0cf076d7c46d

macho: parse input files and libs in incremental This converges parsing of linker line in incremental; however, still doesn't save the parsing state between updates.

view details

Jakub Konka

commit sha 790633a2a09164db5985d1c8302a60d3809e5002

macho: use common codepath for resolving dyld_stub_binder

view details

Jakub Konka

commit sha 8167456c58270fe9586ac93dbd6a6ee1a8ae7915

macho: resolve undefs in incremental properly Instead of assuming that every undef extern symbol comes from libSystem, actually perform the check!

view details

Jakub Konka

commit sha 30247fbb6a46231154f051119228829c6a0dfd90

macho: remove redundant writeStubHelperCommon codepath

view details

Jakub Konka

commit sha 153e2317748cff7d59d2709f72fe8b22c14f2a7b

macho: track unresolved externs globally this way we share state between incremental and traditional paths.

view details

Jakub Konka

commit sha 792fd9c4a362f44f900007562504bfaceffbcc82

macho: extract logic for creating and tracking atoms into fn

view details

Jakub Konka

commit sha 2d10c52b3cfac9516f5548b04528bb7c31a0a6e7

macho: create an explicit symbol and atom for dyld entry in __data This way, we will be able to refer to that atom dynamically via relocations rather than requiring hardcoded addressing upfront.

view details

Jakub Konka

commit sha d63d8ae1c00c240ac20836f1b54bff0093edcb61

macho: create __stub_helper preamble atom with relocations to `dyld_private` and `__dyld_stub_binder` symbols making the routine properly dynamic (i.e., making it possible to call the routine before VM allocation takes place).

view details

Jakub Konka

commit sha d61d85abd2b998fea438e7317568537f927fa6a1

macho: implement aarch64 prong of createStubHelperAtom

view details

Jakub Konka

commit sha ea499203fe22dd3cd40753c020794790f32b91be

macho: incrementally write dyld_private and stub_helper atoms By incrementally I mean using the incremental linker machinery and concepts. Currently, lots of repetition but already highlighted a potential problem with resolving relocations for symbols that weren't seen yet but wanting to write the atom to file (before seeing the relevant atoms).

view details

Jakub Konka

commit sha 799c5bb9551dafd76f9d1fce7d3f5a01ac55da83

macho: add routine for creating a dynamic stub_helper atom With this routine, we are now able to freely shift stub_helper section in memory and in file since the VM addressing is now dynamically dependent on the positioning of `__stub_helper` preamble and other sections generated by the linker.

view details

Jakub Konka

commit sha 9e7b2fb894cf4021ec188fbb64b11d750f4354fa

macho: add routine for creating lazy pointer for stub

view details

Jakub Konka

commit sha 876071b50b1d23a59b3d3e5acedf4161029f5f2b

macho: fix writing stubs (on x86_64 only) and lazy ptrs

view details

push time in 3 days

push eventleecannon/zig-libgit2

Lee Cannon

commit sha dcb8e192fdbb798a6bda36b9062b8401b2cb7416

Update TODO

view details

push time in 4 days

startedrr-debugger/rr

started time in 4 days

issue commentziglang/zig

ability to annotate functions which allocate resources, with a way to deallocate the returned resources

The problem with that is they have to work essentially like a state capturing lambda.

Just one issue with this is var data = pass try allocator.alloc(u8, 10); what if by the time the obligation is run the allocator pointer is invalid?

andrewrk

comment created time in 4 days

startedcoilhq/tigerbeetle

started time in 5 days

PR opened ominitay/zigvale

Make pointers const

None of these pointers need to be non-const.

This allows tags to be const instead of requiring var:

export const header linksection(".stivale2hdr") = zigvale.Header{
    // Other stuff here
    .tags = &unmap_null_tag.tag,
};

const unmap_null_tag = zigvale.Header.UnmapNullTag{};
+47 -47

0 comment

1 changed file

pr created time in 6 days

create barnchleecannon/zigvale

branch : const_ptr

created branch time in 6 days

PR opened ominitay/zigvale

Fix text mode tag

The enum contains textmode but TextModeTag uses text_mode

+1 -1

0 comment

1 changed file

pr created time in 6 days

create barnchleecannon/zigvale

branch : fix_text_mode

created branch time in 6 days

fork leecannon/zigvale

A Zig implementation of the stivale2 boot protocol

fork in 6 days

startedtuhdo/os01

started time in 7 days

push eventleecannon/zls

Lee Cannon

commit sha 2ffd93280e9853b16a0a6baa29e349d71fd756d0

remove deleted keywords

view details

Lee Cannon

commit sha fbdc07d4b1d0f4dc0999eab7d1386f8412806162

make tests pass

view details

Auguste Rame

commit sha e472fca3be6335f16032b48e40ca0d5ffda6ab0a

Merge pull request #385 from leecannon/update_to_master Update to master

view details

Sashiri

commit sha fed1c4c2c6a65ef383773569371622b6d3e0fcda

usingnamespace semantics update + Ast changes adjustments

view details

Sashiri

commit sha 6c3996696786512c3f053d0ff20e987360d8860e

Update zinput

view details

Auguste Rame

commit sha c5414796a49dd5115a3ec398ed6ce6363ac6a8c8

Merge pull request #392 from Sashiri/master Usingnamespace semantics update

view details

push time in 10 days

startedsharkdp/hyperfine

started time in 11 days

startedcatdevnull/awesome-zig

started time in 12 days

issue commentziglang/zig

Proposal: Forbid inferred error return set on `pub fn`

How would that apply to something like const lib_test = b.addTest("src/lib.zig");, does it count as a sub-package or not?

I'm not sure about the distinction between application and non-application code, seems rather arbitrary.

MasterQ32

comment created time in 13 days

startedcoilhq/viewstamped-replication-made-famous

started time in 14 days

startedkanaka/mal

started time in 15 days

push eventleecannon/zig-libgit2

Lee Cannon

commit sha 4d585e5066c0273cfc2c12b6d1c78bd33b508f86

cherrypick.h completed

view details

push time in 19 days

startedmarlersoft/zigwin32

started time in 19 days

push eventleecannon/zig-libgit2

Lee Cannon

commit sha 7ef457525f00cebd7ea7ddf71d90aafca7f2eb08

checkout.h completed

view details

push time in 21 days

push eventleecannon/zig-libgit2

Lee Cannon

commit sha 339ace448d5b608ed923142fdffa4047a028e99a

branch.h completed

view details

push time in 21 days

push eventleecannon/zig-libgit2

Lee Cannon

commit sha a6b9fd7425020a63cb507eb163e77b77958c7bf3

move blob functions behind version check

view details

push time in 21 days

push eventleecannon/zig-libgit2

Lee Cannon

commit sha 534b3f9928990b6187e8f7f25f1e0939b01e2bf8

blob.h completed

view details

push time in 21 days

push eventleecannon/zig-libgit2

Lee Cannon

commit sha aa9216df76511bd522b9fa7ea0a8ed8512b779af

update to zig master

view details

push time in 22 days