00:07 colomon joined
rudi_s Hi. Just noticed the following error message when perl6 fails to open a file with open 'foo': "Failed to open file: no such file or directory". This message is not really helpful as it's not telling me which file it couldn't open. Is there a reason why the filename is not reported? 00:11
Looking at the code: src/io/syncfile.c:414 it seems to be no problem to just extend the line to also print fname as well.
Something like MVM_exception_throw_adhoc(tc, "Failed to open file %s: %s", fname, uv_strerror(req.result)); - untested. 00:12
(Might a bit problematic with non-ascii filenames though.) 00:13
Oh, and btw. just noticed, in line 407, is the %d for "Invalid open mode: %d" correct? Shouldn't this be a %s as fmode is a char * const. 00:14
TimToady yeah, looks pretty LTA to me... 00:15
rudi_s LTA? 00:17
TimToady Less Than Awesome 00:18
rudi_s Ah.
TimToady sorry, a meme that's more current in #perl6 than here...
rudi_s np ;-) 00:19
TimToady and not surprising, often the earliest things that were implemented in moarvm are the roughest, since things have to get bootstrapped based on very primitive...er...primitives... 00:20
rudi_s Just compiling the VM, is there a reason why it's not built with -Wall? Noticed quite a few warnings with -Wall .. 00:23
japhb rudi_s: Because not all of the warnings have been cleaned up. Volunteers have helped to reduce it considerably, but as yet I don't think anyone's made it build completely clean. 00:28
rudi_s Would patches which cleanup -Wall warnings but provide no new features be accepted? 00:29
japhb (Some people like having the annoyance of every possible warning, in order to convince them to keep it clean, but if you're starting warnings-heavy instead of warnings-clean, it's easy for people to just start ignoring the noise. So we don't do that.)
rudi_s Btw. regarding the %d vs. %s, it might be a good idea to use __attribute__((format(printf,2,3))) in a few places.
japhb rudi_s: Yes, that's quite likely, as long as you do them a chunk at a time, and not some gigantic 3000 line patch.
(Plus, remember we want to be clean on VC++, clang, gcc, ...) 00:30
00:31 colomon joined
rudi_s Good to know. Might send a few patches when I have some time. - Never used VC++, does it support stuff like PRIX32 when printing uint32 and similar? 00:32
00:45 colomon joined 01:45 colomon joined
rudi_s Is there a mailing list where I can submit the patches? 02:11
TimToady we generally use pull requests on github 02:15
02:19 colomon joined 02:22 vendethiel joined 02:35 colomon joined 02:38 colomon joined 03:17 colomon joined 05:57 brrt joined 06:00 vendethiel joined 06:49 FROGGS joined 06:52 Ven joined 06:55 kjs_ joined 06:59 Ven joined 07:30 Ven joined 07:32 brrt joined 07:40 zakharyas joined 08:15 kjs_ joined 08:39 rurban_ joined
rudi_s I see. I don't like github very much. 11:44
nwc10 you could send git-am ready patches to [email@hidden.address] 11:45
er,
[email@hidden.address]
brrt yes, we do accept patches :-) 12:06
may i ask why you don't like github?
jnthn The other perfectly fine workflow is to clone from github, push the repo somewhere online you *do* like, push commits to branches there, and then they can be dealt with as remotes 12:17
nwc10 oooh, I'd not tried that :-) 12:18
jnthn Which works faster than patches
Well, for me it does
brrt agrees with jnthn
you can make some really funky repo structures with remotes :-)
jnthn With regard to __attribute__((format(printf,2,3))) there is no VS equivalent afaik 12:29
timotimo that can be #ifdef'd, though?
jnthn But also it's not clear how useful it is
timotimo do i understand it correctly that that will give error messages if the ... attributes for a call don't align with printf semantics?
jnthn I'm not even sure what the darn arguments mean at first guess.
timotimo first argument means where the format string is, i bet 12:30
because our first arg is always tc
jnthn So there's as much chance of screwing up the attribute as there is of screwing up the printf, so far as I can see.
timotimo The parameter string-index specifies which argument is the format string argument (starting from 1), while first-to-check is the number of the first argument to check against the format string.
damn you, C, for not having named arguments! 12:31
jnthn Oh, but it's on the callee, not the caller
So I guess it kinda could be useful diagnostics.
timotimo of course
you can have attributes on callsites? 12:32
jnthn No idea :P
Ah, apparently there is some way in newer MSVC
timotimo is that "newer than we target"? 12:33
jnthn Well, guess I'm open to it; we don't have very many vararg things.
Yes, but again, #if :)
timotimo thank you, rudi_s, for bringing this up :)
jnthn is happy to introduce things that stand a chance of catching real bugs, but very wary of many things that are more ceremony and about "looking like high quality code" then actually helping 12:34
That one seems to alnd on the side of "actually helps" 12:35
*land
timotimo well, rudi_s already found two cases of wrong format strings 12:43
jnthn *nod* 12:44
rudi_s brrt: Central places for everything isn't well fitted to a DVCS IMHO. 13:19
japhb: Good idea. Give me a sec.
brrt i agree. on the other hand, federation is really hard to maintain 13:23
doable? yes definitely. but no (VC) money goes to it
timotimo i wouldn't mind if we had a public mirror for all perl6 related repos on github 13:25
we do have a beefy server now ...
brrt agrees
and is also not in a position to build said mirrors 13:26
timotimo someoneā„¢ would just have to build a little thingie that keeps things up to date
rudi_s brrt, japhb: git://git.informatik.uni-erlangen.de/he29heri/moarvm/ 13:32
Repository with patches. I'v split them into "easy" and maybe problematic patches where I remove calls to functions. It should be correct, but somebody should check that. 13:33
brrt aye, i'll check it out :-) 13:34
thanks for taking the time :-)
rudi_s np, it's just trivial cleanup.
jnthn
.oO( you need to fetch it before you checkout it :P )
rudi_s ;D
brrt yes, you do :-) 13:35
rudi_s Btw. it might be useful to add -Wformat to catch future problems with format issues. Otherwise the __attribute__((format())) is not that useful.
brrt any idea if __attribute__((format())) works with clang?
i'm forced / stuck on os x for the time being
otherwise i've nothing to base on 13:36
rudi_s AFAIK yes. But haven't tested it.
clang.llvm.org/docs/AttributeRefere...gnu-format <- looks like yes. 13:37
brrt (good lord the slowness of clang it never ceases to amaze me)
excellent
jnthn kicked off a build/test on MSVC
rudi_s I haven't tested it with MSVC, if it supports the format attribute the patch should be adapted.
Regarding the last patch, I'm not sure if special characters in the file name are a problem (like "\r" or such). If you have an escape function for that in the code-base, it might be a good idea to use it instead. 13:39
[Coke] clang seems fast enough on os x, but then, I don't have much to compare it too here. 13:41
brrt what is the zu field? 13:42
well, that's the thing isn't it... i'm sure jnthn fields non-parallel nmake is plenty fast too :-P
(the %zu format specifier, never seen that before) 13:43
nwc10 brrt: I assume that you can get gcc via macports 13:44
jnthn: I can test on clang (I think) but I'd prefer to have about 15 minutes to take it all the way to a spectest 13:45
brrt should probably get gcc then
jnthn nwc10: Go for it, I've got a Rakudo build/spectest running here 13:46
NQP looks fine on MSVC with the rudi_s++ patches
nwc10 I've got to "spectesting master/master/nom with clang"
which I'd not done before
jnthn
.oO( Does running "make specktest" bring home the bacon? )
13:48
nwc10 you have a pun track mind
brrt my, what many variables have been removed 13:50
jnthn spectest looks good 13:55
nwc10 jnthn: I get to the end of the spectest
t/spec/S17-lowlevel/lock.rakudo.moar failed during the spectest run, but happens to pass when run interactively
brrt jnthn, i have S32-list/squish.rakudo.moar TODO passing
nwc10 the clang build is very chatty
brrt but i assume that to be unrelated?
nwc10 but was without the changes
t/spec/S32-list/squish.rakudo.moar (Wstat: 0 Tests: 36 Failed: 0) TODO passed: 16, 18
me too!
brrt anyway, looks good to me 13:56
can't believe we had so many unused variables
shall i push, or wait until others have results? 13:57
jnthn brrt: Yes, I saw that TODO pass also
brrt perhaps a fix in rakudo?
nwc10 my results are in 13:58
jnthn brrt: Lemme finish glancing through the patches themselves
brrt np
nwc10 I admit that I've not looked into the patches (or the commit messages) 13:59
jnthn Seems fine overall 14:02
I'd be a bit more inclined to just toss the unused functions in 712b5582c0a than comment them 14:03
brrt yeah, me too 14:05
i can rebase that to a delete, but i don't think it's worth it 14:06
what is more of these functions i can believe that 'one day' they'll be usefull
dalek arVM: fd011ba | (Simon Ruderich)++ | src/moar.h:
moar.h: mark MVM_vm_set_exec_name as MVM_NO_RETURN

Also fixes a compiler warning for main().
14:07
brrt sorry dalek! 14:08
14:08 dalek joined
[Coke] in general, if we're not using them, I'd remove them. maybe open an issue to track that they were removed and what commit hash if someone wants to try to retrieve them later. unused code is a maintenance issue. 14:08
timotimo jnthn: do you think it'd be all right if the eventloop thread would get a signal the event loop can wait for to handle the gc synchronisation stuff?
brrt in general i agree. but this is serialization stuff. it's not unthinkable that one day we'd need a read_int64 and a read_int32 14:09
and nobody is going to find these functions if we bury them in history
jnthn [Coke], brrt: Actually they are about identical to some functions in serialization.c that are used 14:10
So you can find a similar one to steal easy enough :)
timotimo: There's probably an even better way 14:11
timotimo: In that the GC understands threads that are unable to join in, so we really need to clear/set that each time around the event loop, and I think there is a way to arrange for that to happen. 14:12
timotimo that sounds good 14:14
jnthn That whole area needs a re-visit at some point soonish 14:15
timotimo brrt: is there a good reason why reading 64bit and 32bit ints would be superior to varints?
perhaps if we know that the higher bits are very likely to be set or something
jnthn Some bits of it were very much "make this work so we can figure out the Perl 6 level pieces"
timotimo ah, sure 14:16
i should start the weekly
rudi_s brrt: %zu is the specifier for size_t. 14:17
timotimo oh, good to know
14:23 cygx joined
cygx o/ 14:24
any thoughts on irclog.perlgeek.de/moarvm/2015-03-27#i_10352051 ?
nwc10 IIRC %zu is C99, but I've no idea how many really grumpy C89 only C compilers remain (of interest)
brrt i have no idea btw :-) 14:25
\o cygx
rudi_s nwc10: It is.
cygx Does MSVC support the 'z' modifier nowadays? IIRC, it did not in the past...
rudi_s If not, the patches need an update and a few more casts.
nwc10 given jnthn's build completed, I infer that *his* MVSC (at least) is happy with it 14:26
cygx nwc10: just because it builds does not mean it works as intended
brrt cygx - the memorization can be implemented in a simpler way, iirc 14:27
i have implemented that a once looong time ago, without moarvm changes
let me see if i can dig up the commit
nwc10 cygx: that's a good point. 14:28
if the code path is never exercised by a test, problems won't be spotted, because it has to go wrong at runtime.
timotimo cygx: i'd love for us to have bytecode loading from memory :) 14:29
brrt can't find it :-(
but anyway, it's a good feature, that's for sure 14:30
cygx Microsoft's C runtime shipped on my machine apparently does not understand %zu 14:32
apparently, it should be spelled %Iu in MS land 14:33
brrt that's lame 15:06
15:20 synopsebot joined 16:41 kjs_ joined 17:26 colomon joined 17:47 kjs_ joined 17:48 ShimmerFairy joined 17:58 kjs_ joined 17:59 FROGGS joined 18:01 kjs_ joined 18:13 brrt joined 19:18 rurban_ joined 19:44 kjs_ joined 19:47 brrt joined
rudi_s I guess it's time a for a new macro ... 19:52
If you tell me how I should call it, I can update my patch. 19:53
FROGGS marco?
rudi_s %zu vs. %Iu for size_t.
brrt hmm, somethng like SIZE_T_PRINTF_FORMAT_SPECIFIER :-P 19:56
FROGGS sorry, marco already was my suggestion :S
ahh, it is about sprintf
brrt or may PRIszt like PRIx32 etc 19:57
jnthn Prefix any macros we add with MVM_
brrt nryyrt yry
.. that's what i was about to say
:-)
jnthn MVM_FORMAT_SIZE_T or so
brrt for what it's worth, apparantly git federation isn't hard at all 19:58
brrt should get his own server
btw, i've sadly lost the patches to fakexecutable perl6, but i know nwc10 was also working on it 19:59
FROGGS there is also stuff in the execname branches... though I dunno how useful that is
brrt rudi_s - is your server down perchance? 20:00
i can't fetch from here
rudi_s brrt: Should work fine. 20:17
brrt should be git://git.informatik.uni-erā€‹langen.de/he29heri/moarvm/ right 20:18
rudi_s Yeah. 20:19
brrt hmm 20:47
must've typoed 20:50
now it works
for those interested, I have nearly finished my hague grant application: docs.google.com/document/d/18Uofes...sp=sharing 21:03
it needs a better description of benefits, for one thing
timotimo yay, bart gets monies! 21:19
brrt free money!
many hacking! 21:20
timotimo i'm glad to see you possibly get sponsored
brrt i hope it'll work out 21:22
21:26 kjs_ joined
jnthn brrt: Taking a look :) 21:27
brrt thanks
jnthn "These deliverables are not ordered chronologically." 21:30
Is there any way they could be? :)
"Moreover because each part is independent even very simple optimizations across fragment boundaries are impossible or very hard." 21:31
That'd benefit from a comma or two :)
brrt looks at it
jnthn After the Moreover and the independent
brrt added :-) 21:32
dynasm is just about the densest C code I have ever seen 21:33
and it's author thinks nothing of goto-ing into an else {} block 21:34
timotimo i thought dynasm was lua 21:35
shows how much i know :P
i thought it's lua code that generates c code, that is
jnthn "Moreover because each part is independent even very simple optimizations across fragment boundaries are impossible or very hard."
oops
"I will report on my work using my blog as I have done last year" 21:36
I'd add "during GSoC" to the end there maybe
brrt ah yes
jnthn "Worhtington"...who's that guy? :P 21:37
timotimo tingtong? 21:38
brrt damnit i'm a misspelling fool 21:39
better this way.. right :-)
jnthn "many talks at perl conferences" may want Perl capitalized :)
There's a "perl6" that could be "Perl 6" in the benefits section, but you said you're still working on that... :) 21:40
brrt yes
of course one of the benefits is 'this is a lot of fun for me' but i don't think that is really convincing to TPF 21:41
jnthn aye :) 21:42
timotimo it might be taken as a sign for "i'll finish this for sure" 21:44
brrt that is true 21:46
[Coke] I would recommend not adding that as a reason. :P 21:47
jnthn I'd expand on higher performance a bit 21:48
It's "less CPU instructions to execute, producing greater speed and using less memory." 21:49
brrt right
timotimo i was idly wondering if our jit (or spesh) stage would benefit from loop unrolling at all 21:50
jnthn "This will help make Perl 6's performance more competitive."
timotimo also, when/how do we emit gc sync points in tight loops?
jnthn timotimo: At the moment, probably all over the palace, but we only need to emit them on back branches. 21:51
brrt jnthn: you're going to forgive me for plagiarizing that
right :-)
jnthn brrt: Apparently :)
timotimo can back branches be determined just by comparing bb index?
brrt no 21:52
that is indeed a bit harder a problem than it looks
but
back branches are always non-successor branches 21:53
timotimo for something as simple as deciding where to put GC sync points, probably not as terrible to not always be right
brrt (loop detection is a thing of its own, btw :-))
no but it also used e.g. for register allocation
timotimo i'm not going to fall into the trap of saying "how hard could it be" :P
we don't do smart register allocation yet anyway
at least not after the mast compiler is through 21:54
brrt read the book: www.amazon.co.uk/Compilers-Principl...pilers+aho :-P
jnthn timotimo: I think brrt is talking about CPU register allocation :)
timotimo oh, fair enough
brrt yeah, i am :-)
jnthn The mast compiler makes a pretty good effort.
timotimo wow, expensive book
brrt iirc global register allocation has combinatorial difficulty problems 21:55
timotimo but probably also expansive
yeah
i remember that part; same thing as graph coloring, no?
brrt iirc, yes 21:57
(the hardcover one sells for 168 euro :-o)
timotimo ugh
is it out of print or something? 21:58
brrt i guess so 21:59
timotimo d'oh, not much progress on the weekly yet
and it's almost midnight
brrt oh, good luck on that :-) 22:00
brrt is going to sleep for now
jnthn 'night, brrt
timotimo gnite brrt! 22:01
brrt 'night all
timotimo man, i'm looking forward to that
jnthn Sleep? :) 22:02
timotimo nah, the jit after brrt's pleased with it :) 22:03
jnthn ah :) 22:04
rudi_s Pushed a few more patches to fix warnings to git://git.informatik.uni-erlangen.de/he29heri/moarvm/ 23:11
23:45 dalek joined