Re: UNIVERSAL_ARCHFLAGS

2020-02-09 Thread Mihir Luthra
> Why would a universal library be incompatible with building for a single > arch? What is the actual failing command? > > I went through the old travis builds again. it was because I added arch flags to a variable named `CFLAFS` which being a typo never got added to CFLAGS. The issue is now

Re: UNIVERSAL_ARCHFLAGS

2020-02-09 Thread Mihir Luthra
Hi, Creating a static library from fat object files works fine as long as > there's an index. That means using the -s option with ar, or running > ranlib after creation. The usual command is "ar crs .a *.o". > > I was making a static lib that can be used by both darwintracelib1.0 and pextlib1.0.

UNIVERSAL_ARCHFLAGS

2020-02-08 Thread Mihir Luthra
Hi, There is something I am not able to understand in base. Looking into aclocal.m4, based on the version of macOS, supported archs are being determined. Based on them -arch flags are constructed. For example, if using macos 10.13, UNIVERSAL_ARCHFLAGS= -arch x86_64 -arch i386. Would adding

Re: right way to add a library to src/

2020-02-07 Thread Mihir Luthra
> Without taking a closer look, I think there is only one other file that is > shared between darwintrace and pextlib. Unfortunately, there is no good > solution > to this in the current structure. What it currently does is to copy the > *.c file > around during compilation, but I think this is a

Re: GSOC mentor candidates

2020-01-29 Thread Mihir Luthra
Hi, > In order to apply for GSOC we need to publish an up-to-date idea list. > > MacPorts base make a significant (80%?) portion of the ideas list, so > it would be nice if we could make it clear as soon as possible whether > we have ideally two mentors willing to mentor base projects. > >

right way to add a library to src/

2020-01-16 Thread Mihir Luthra
Hi, I was trying to add some code to a new directory in macports-base/src/ dir such that I can use it in both porttrace.tcl(as a tcl cmd) and darwintrace.c. Basically it is a library that needs to be dynamically generated(because it uses `__attribute__((constructor))`) I see 2 choices: 1) To

gcc/g++ failures after xcode11 update

2019-09-23 Thread Mihir Luthra
Hi, After the xcode update, there have been many question on stackoverflow regarding gcc and g++ linking fails. Any ideas on what can be done? https://stackoverflow.com/questions/58072318/cannot-link-any-c-program-with-gcc-on-mac-mojave

Re: Feedback request regarding speed optimisations in trace mode

2019-06-22 Thread Mihir Luthra
Hi, > > With modern macOS and modern hardware there are performance effects that > you can't control, perhaps most significantly thermal throttling, but > also background jobs like Time Machine backups and iCloud sync. > > You need to apply a little bit of statistical theory. Standard error >

Re: Feedback request regarding speed optimisations in trace mode

2019-06-14 Thread Mihir Luthra
Hi, > > Not necessary to stick to 10 runs, just because I said so. It can be > even 3 or 5 runs. Whichever you feel seem to be good enough to give > some insights. E.g., you might feel that after 3 runs you are getting > constant time and not much difference, in another case you might get > all

Re: Feedback request regarding speed optimisations in trace mode

2019-06-13 Thread Mihir Luthra
Hi, > I would like to see the time for each run (if 10 runs, then 10 columns > i.e., xx_run1, xx_run2, ...), rather than only average of them. > > Collect as much as insights we could, maybe we find some pattern or > something that might help us (not sure what though). Since I have a > feeling,

Re: sqlite3 database in macports

2019-06-13 Thread Mihir Luthra
Hi, > > The database lives on disk in ${portdbpath}/registry/registry.db. It has > to, or we wouldn't have the D in ACID [1]. > > Probably then it should make a huge difference in hdd or fusion drives. All tests I made were on ssd. Also I tried connecting an external hdd, but when I tried

sqlite3 database in macports

2019-06-11 Thread Mihir Luthra
hi, i just wanted to ask a small question. Is the sqlite3 database used in macports in memory? I don't have a nice knowledge about databases. The main question concerning me is the time taken by darwintrace calls to tracelib and querying of registry. This may make a lot of difference if called on

Fwd: Feedback request regarding speed optimisations in trace mode

2019-06-09 Thread Mihir Luthra
Hi, > This is certainly an improvement. How does it compare with running the > same builds without trace mode? The ideal scenario would of course be to > have trace mode incur only a barely noticeable performance penalty. > Kindly check out this link. I made the comparisons again for those

Re: Feedback request regarding speed optimisations in trace mode

2019-06-09 Thread Mihir Luthra
Hi jan, > How exactly were these numbers obtained? Is it one run? > An average of ten runs? All following a complete distclean? > Is it the "real" time as reported by time(1) or somethin else? > What are the other times reported by time(1), as in > > $ time sleep 5 > 0m05.01s real

Re: Speed up trace mode

2019-06-08 Thread Mihir Luthra
> > Hi Clemens, I have added a readme to the repository with the latest updates.[1] I have attempted to explain the code the best I could. The code functions correctly in the macports-base for the 57 ports that I tested.[2] The speed improvements are decent as per me. In real I don’t know the

Feedback request regarding speed optimisations in trace mode

2019-06-06 Thread Mihir Luthra
Hi everyone, I have been working on trace mode optimisation project. I have added the functionalities to improve the speed. [1] I tested it on some ports, and it works stably. Here are some comparisons I made on my machine: In Original Code Port gettext (+ deps :ncurses, libiconv, gperf) : 13

openssl source install with trace mode bugged

2019-06-03 Thread Mihir Luthra
Hi, I noticed that on a “new" MacPorts installation, if we try to install openssl with flags -st, it will fail. Problematic lines in main.log with debug on are :- :info:configure darwintrace[30583:0x10fc915c0]: posix_spawn(/opt/original-base/var/macports/sip-workaround/502/usr/bin/perl5.18) =

Re: Speed up trace mode

2019-06-02 Thread Mihir Luthra
Hi, I have implemented the points that we discussed till now in macports-base. You can find the updated macports-base in my forked repository. https://github.com/MihirLuthra/macports-base I also have made many modifications to library to optimise it for use in base. I haven’t updated in the

Re: Speed up trace mode

2019-05-29 Thread Mihir Luthra
Hi Clemens, The library seems to be working good now in the macports-base. Although I wanted to know till what extent should I let the data be shared? Like just among a single phase? or all the phases of a port installation can share common trace mode data? Sandbox gets set after every phase, so

Re: Speed up trace mode

2019-05-25 Thread Mihir Luthra
Hi Clemens, Probably I solved some issues from before. One general reason I found was that my file descriptor was getting closed by some process. I handled that by checking in close.c that the fd getting closed is not referencing my files. This has made some errors to vanish. Installation of some

Re: Speed up trace mode

2019-05-21 Thread Mihir Luthra
Hi, I have made many improvements to existing code.[1] As for the latest details, in test file [2], where I have created 4 threads and inputted 18,228 strings as arguments, it took 0.44 seconds for both insert and search 18228 threads at the same time and 3.5 MB memory (which is 4 times less as

Re: Speed up trace mode

2019-05-15 Thread Mihir Luthra
also check folder symbolic links inside the MacPorts prefix > against the database of ports. > > This would require intertwining the path lookup with path normalization. > Keep that in mind for later, but don't do it now. > > Got it. Will do once this shared memory functionality

Re: Speed up trace mode (GSoC Project)

2019-05-05 Thread Mihir Luthra
> > > > > From what I understand from the stackoverflow post you're right that > cmxpchg16b will not give a consistent view of the 16 bytes of memory > across multiple NUMA nodes. However, maybe two 4 byte values right next > to each other would be sufficient for your use case and could then be >

Re: Speed up trace mode (GSoC Project)

2019-05-01 Thread Mihir Luthra
Hi Clemens, For making my implementation of shared memory data structure more space efficient, I was trying to implement a stack which stores offsets to unused locations in the shared memory file. But as stack is being shared it also needs to be edited in a lock free way. While editing stack I

Re: Speed up trace mode (GSoC Project)

2019-04-28 Thread Mihir Luthra
Hi Clemens, > What's your current progress? Do you have some code already? > I made a complete offset based ctrie implementation in which any process can insert and search on basis of a shared memory. Kindly provide me with your views on it :) All main code is in [1]. The header file contains

Re: Speed up trace mode (GSoC Project)

2019-04-24 Thread Mihir Luthra
Hi, Sorry for the late response. What's your current progress? Do you have some code already? > Currently I am done with a basic Ctrie implementation as suggested in the arXiv paper that is capable of inserting and searching paths. The implementation is still with pointers which I will convert

Re: Speed up trace mode (GSoC Project)

2019-04-21 Thread Mihir Luthra
Hi, Thanks for the tips. ^_^ This is almost the same way as in the arXiv paper you shared with me. As we are dealing with paths, I saw implementing the above hash function would make the search faster as this happens quite a few times that files with same name have same path length from the root.

Re: Speed up trace mode (GSoC Project)

2019-04-16 Thread Mihir Luthra
Hi Clemens, Kindly provide your suggestions for this. In the path search Ctrie data structure, I categorised the paths with the hash function working like: If I input a path /test/files/abc.h for check Here we have open to abc.h, the hash function simply makes it “12:abc.h" where 12 is the

Re: Speed up trace mode (GSoC Project)

2019-04-12 Thread Mihir Luthra
Hi, I needed some advise regarding ctrie implementation. I was constructing the trie data structure which has to be operated from the address space mapped by mmap(2). In place of “array of next nodes”, I am using “array of offsets”. the void * returned from calling mmap(2), I would type cast it

Re: Feedback Request for final GSoC Proposal [Speed Up Trace Mode]

2019-04-09 Thread Mihir Luthra
Hi, Sorry for re-mailing. I know it's almost the last moment. But if possible, please provide any possible feedback. https://docs.google.com/document/d/14eSXwZ6N1vRcBudaJWlwO5G17dY5B1nHgfhh52tSnv0/edit# Regards, Mihir

Feedback Request for final GSoC Proposal [Speed Up Trace Mode]

2019-04-08 Thread Mihir Luthra
Hi everyone, Kindly check my final proposal and provide any possible feedback. https://docs.google.com/document/d/14eSXwZ6N1vRcBudaJWlwO5G17dY5B1nHgfhh52tSnv0/edit# Regards, Mihir

Re: Speed up trace mode (GSoC Project)

2019-04-08 Thread Mihir Luthra
On Tue, Apr 9, 2019 at 1:59 AM Clemens Lang wrote: > Hi, > > On Sun, Apr 07, 2019 at 01:03:12AM +0530, Mihir Luthra wrote: > > > Can you pastebin a main.log of a build that fails like this? > > > > https://pastebin.com/FVdp4WTw > > The problematic line

Re: GSoC 2019 - trace mode improvements

2019-04-07 Thread Mihir Luthra
> > > read [1] and related thread and probably I am too late to contribute > through > GSoC. So I give up. > > > /davide > > [1] > https://lists.macports.org/pipermail/macports-dev/2019-April/040495.html Hi ,

Re: Speed up trace mode (GSoC Project)

2019-04-07 Thread Mihir Luthra
> That's unfortunately not the same, since while you're swapping the > second value, a different thread could swap the first for a different > value again. > I get your point. Generally what comes to the mind in such circumstances is blocking the other thread some way like mostly by spin locks.

Re: Speed up trace mode (GSoC Project)

2019-04-07 Thread Mihir Luthra
Hi, I was trying to test the code by making changes but I am stuck with one issue. If I install from git and set it up I always receive this error message. [1] 1) I tried `make` on base code taken as it is from git without checking out to latest version, it showed this error. 2) I tried `make`

Re: Speed up trace mode (GSoC Project)

2019-04-05 Thread Mihir Luthra
Hi Clemens, I see you're getting the hang of the difficulties of the project now :) > That’s really encouraging for me to know that you think so ^_^ > You have the right ideas to solve the problem. Do keep in mind though > that CAS will only work up to a word size or a double word size at

Re: Speed up trace mode (GSoC Project)

2019-04-04 Thread Mihir Luthra
Hi, I have made the memory expansion idea precise and filtered out bugs from the one I sent previously. Please check the pdf in the attachment. Regards, Mihir MemoryExpansion.pdf Description: Adobe PDF document

Re: Speed up trace mode (GSoC Project)

2019-04-04 Thread Mihir Luthra
Hi Clemens, I had some points in mind about mapping more memory when we run out of memory, which I wanted to discuss with you. Also you are right, this project is not at all short. I realise now, many conditions need to be taken care of while doing tasks. Each process shared 2 types of memory.

Enabled commenting on GSoC Proposal

2019-04-02 Thread Mihir Luthra
> > > Mihir, > > The proposal is view-only. You might need to give comment-access for > us to leave feedback on the draft. > > Done

Re: macports-dev Digest, Vol 152, Issue 1

2019-04-01 Thread Mihir Luthra
> > > > Note that kevent(2) is a multi-purpose API. The call you refer to as (1) > is not actually the mainloop of tracelib run. Rather, the call a little > further down is: > > keventstatus = kevent(kq, NULL, 0, res_kevents, MAX_SOCKETS, NULL)) > > This will also return for new connections to

Re: Speed up trace mode (GSoC Project)

2019-03-31 Thread Mihir Luthra
Hi Clemens, I was wondering if the trace mode optimisation project would be sufficient for entire summer? Because maximum effort is about understanding the code which needs to be done before gsoc starts. After that maybe the shared memory concept can be achieved within a month. Maybe testing that

Re: Speed up trace mode (GSoC Project)

2019-03-31 Thread Mihir Luthra
Hi there, @Mojca Miklavec As I told you before, I will be documenting trace mode alongside with understanding it, I have been working on that https://docs.google.com/document/d/15cVbH6f6hBr9HryJEHUZEbRsToN1BAjY8My-oRstO9A/edit#heading=h.oby3p7ljhsu Sorry I told you I will get it done by the

Re: Speed up trace mode (GSoC Project)

2019-03-31 Thread Mihir Luthra
Hi, I need help understanding *static* *int* TracelibRunCmd(Tcl_Interp *in), it has blown my mind, I am totally new with these kevents. I have been trying to understand that from a while now. Till what I understand, the thread responsible for creating server eventually calls tracelib run and

Re: Speed up trace mode (GSoC Project)

2019-03-28 Thread Mihir Luthra
Hi there, I had a question. Before the build, dependencies are checked. Enabling trace mode hides incompatible versions of the current software being installed or the versions installed by other package managers and more such. The injected darwintrace.dylib will replace file operations if needed

Re: Speed up trace mode (GSoC Project)

2019-03-27 Thread Mihir Luthra
On Wed, Mar 27, 2019 at 10:22 PM Mojca Miklavec wrote: > Dear Mihir, > > On Wed, 27 Mar 2019 at 17:25, Mihir Luthra wrote: > > > > Hi, > > > > I have shared my draft application from the GSoC dashboard. > > Please provide me with feedbacks. :) >

Re: Speed up trace mode (GSoC Project)

2019-03-27 Thread Mihir Luthra
Hi, I have shared my draft application from the GSoC dashboard. Please provide me with feedbacks. :) Also, should I share the link to document here as well? Regards, Mihir

Re: Speed up trace mode Project GSoC

2019-03-27 Thread Mihir Luthra
re lock free primitives. ^_^. Regards, Mihir On Tue, Mar 26, 2019 at 1:19 AM Clemens Lang wrote: > Hi, > > On Wed, Mar 20, 2019 at 09:06:11PM +0530, Mihir Luthra wrote: > > I am not a master in dealing with low-level system stuff, but as I > > have worked pretty much with unix

Re: Speed up trace mode (GSoC Project)

2019-03-25 Thread Mihir Luthra
Thanks for the helpful information ^_^. Wiki seems to be a the right place to put all this information and later (if possible), maybe some quick links on the main website to these wiki pages would be helpful. For now I guess you are right, will put anything I document on wiki. Regards, Mihir

Re: Speed up trace mode (GSoC Project)

2019-03-24 Thread Mihir Luthra
? On Sun, Mar 24, 2019 at 12:22 AM Mihir Luthra <1999mihir.lut...@gmail.com> wrote: > Hi, > > I wanted to contribute to the MacPorts documentation. > The guide says that it currently is in docboook format with work in > progress to change it to adoc. > Actua

Speed up trace mode (GSoC Project)

2019-03-23 Thread Mihir Luthra
Hi, I wanted to contribute to the MacPorts documentation. The guide says that it currently is in docboook format with work in progress to change it to adoc. Actually I got a bit confused with this. Where exactly should I add a file in order to create a new section? Like currently there are 7

made a pull request(GSoC)

2019-03-22 Thread Mihir Luthra
hey everyone, I was checking porttrace.tcl code. In the code tracelib is being used both as a command and a variable name. While loading darwintrace library through DYLD_INSERT_LIBRARIES, tracelib is used as a variable for storing darwintrace library path. I renamed that tracelib variable to

Regarding GSoC

2019-03-22 Thread Mihir Luthra
Thanks for the helpful response ^_^ Directly altering the code in the base, maybe I am not that much ready I guess. I think making a small introduction in the documentation for newcomers to MacPorts community to get a really easy high level understanding on how the MacPorts code flows to get

Regarding GSoC

2019-03-22 Thread Mihir Luthra
Hi there, @Mojca Miklavec I have been working on getting a good understanding of MacPorts base. My project would be trace mode optimisation. I feel I have come quite far in understanding the trace mode working in code. I have made plans on what I will do for the project and have started to

Re: GSoC Application

2019-03-21 Thread Mihir Luthra
s Any improvements or suggestion? On Thu, Mar 21, 2019 at 2:09 PM Mojca Miklavec wrote: > Dear Mihir, > > (CC-ing another student with a similar question and no particular > project proposal yet.) > > Welcome to the MacPorts community! > > On Thu, 21 Mar 2019 at 08:20, Mihir Lut

GSoC Application

2019-03-21 Thread Mihir Luthra
Hi everyone, I had a few questions What all should I work upon before applying and Will a mentor be assigned to me or do I need to discuss with the mentor and then submit proposal with mentor name mentioned?