github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
Set by moderator on 21 August 2013.
00:33 BenGoldberg joined 01:26 FROGGS_ joined
JimmyZ Good morning 02:50
04:24 grondilu joined
dalek arVM: 907d08d | (Gerhard R)++ | build/ (2 files):
Re-introduce quiet builds and NOISY make option.

Hopefully more portable now.
05:20
05:51 ggoebel2 joined
dalek arVM: 7fb4143 | (Gerhard R)++ | build/ (2 files):
Only suppress stderr in quiet build mode
06:10
arVM/readline: 19eea1b | jimmy++ | 3rdparty/linenoise/linenoise. (2 files):
keep it as the original one
06:15
06:25 JimmyZ_ joined 06:33 yoleaux joined 07:58 crab2313 joined
jnthn Short backlog is short :) 08:27
JimmyZ_ :P 08:29
timotimo please use types like uint8_t/int8_t instead of "short". it's more portable! 08:55
jnthn Only to compilers that support it :P 08:59
There's MVMint8 etc also :) 09:00
Which is what should be consistently used in stuff we "own"
moritz jnthn: I think timotimo meant "uint8_t backlog is uint8_t" :-) 09:04
jnthn wait, short isn't 8-bit either :P
oh! 09:05
duh :)
jnthn drinks the coffee faster
09:07 donaldh joined
nwc10 opinion, so please ignore. I think that the code would be clearer to newcomers if it uses the C99 standard names, such as uint_8_t (etc), and probes for and defines them if the system isn't C99 enough. Which is a bit cheeky, but a "think of 10 years hence" compromise 09:16
er, uint8_t. I cna't type
10:07 not_gerd joined
not_gerd o/ 10:08
personally, I'd just stick code.google.com/p/msinttypes/ in platform/win32 and assume everything else comes with stdint.h/inttypes.h 10:09
dalek arVM/dll: cd79a93 | (Gerhard R)++ | / (3 files):
Start logic for shared libs as well as various cleanups
10:11
not_gerd I'd like to introduce 2 macros MVM_PUBLIC and MVM_PRIVATE that control which symbols get exported when creating a shared lib 10:12
I'd also like to annotate all our files which #define MVM_SOURCE 10:14
this would switch between dllimport/dllexport and allow us to hide declarations from library users 10:15
thoughts? 10:16
jnthn What's the semantics of something *not* marked public or private?
not_gerd see gcc.gnu.org/wiki/Visibility?action=...amp;rev=14 10:17
not exported on MSVC, exported on linux etc
10:17 JimmyZ_ joined
not_gerd ideally, everything should be annotated 10:17
(everything extern, that is)
either it's part of our API, or its not 10:18
jnthn *nod*
I'm fine with doing that. It's a good discipline to get it in earlier rather than later.
Please also put a document about this in docs/ 10:19
Saying what they are for, that `static` things don't need marking, etc.
not_gerd what about annotating sources with MVM_SOURCE?
the other common approach would be passing something like -DMVM_DLL_BUILD when creating object files intended for the shared lib 10:20
jnthn It feels a bit boiler-platey... 10:21
not_gerd alternatively, we should split up moarvm.h 10:22
lib users probably don't want to pull in all our crap by default (apr/libuv, libatomic_ops,...)
JimmyZ_ +1 to split moarvm.h
jnthn No, true. moarvm.h wasn't intended to be an "I'm embedding stuff" header file. 10:27
dalek arVM/dll: d01c00b | (Gerhard R)++ | src/moarvm.h:
Add MVM_PUBLIC/MVM_PRIVATE with dummy condition for now
10:42
JimmyZ jnthn: Any objection to merge linenoise branch? 11:52
not_gerd we need to decide if we really want to automatically link against readline if available 12:04
GNU Readline is GPL, not LGPL
jnthn That's only a problem for distribution, I guess? 12:05
not_gerd jnthn: correct
binary packages linked against readline would have to be GPL
(which is no problem as Artistic2 allows re-licensing)
jnthn JimmyZ: I'm happy iff linenoise code is off in a separate repo... I can create a fork under the MoarVM account if you want that.
JimmyZ jnthn: please fork
not_gerd jnthn: github.com/MoarVM/MoarVM/blob/read...re.pl#L480 12:06
JimmyZ or don't link readline unless --with-realine 12:07
not_gerd: it will be a good idea change to with-readline? 12:08
;)
12:11 jnap joined
jnthn JimmyZ: Fork from...? 12:12
JimmyZ jnthn: github.com/antirez/linenoise 12:13
jnthn JimmyZ: github.com/MoarVM/linenoise 12:14
JimmyZ jnthn: thanks
jnthn You (and everyone with MoarVM team) shuld have access
JimmyZ yes ,I see 12 watches 12:15
:P
jnthn At least we know what time it is, then :P 12:16
tadzik that made me think of an alternative to Irish Bar Watch. A Hacker's Would always display a datetime of a latest commit. If the watch is getting late, you should commit more :)
dalek arVM/readline: 569b23f | (Gerhard R)++ | build/ (2 files):
Add /nologo to nmake invocation
13:06
MoarVM/readline: 7bd2129 | (Gerhard R)++ | / (3 files):
MoarVM/readline: Take byte order from Perl's %Config.
diakopter bah
13:07 dalek joined
timotimo oh my 13:07
dalek arVM/dll: 9d2e819 | (Gerhard R)++ | build/config.h.in:
Do NOT put MVM_SHARED into config.h

We want to support both static and dynamic libs with the same headers.
13:21
nwc10 not_gerd: I like that plan. Work on the assumption that every other (sane) platform has those headers, and only put more effort in if one turns up which does not 13:24
not_gerd nwc10: it would be trivial to add 3rdparty/msinttypes and wire it up in build/setup.pm 13:26
nwc10 which makes it sound like a good plan 13:27
not_gerd jnthn: any thoughts on that (replacing MVMint with standard types)? 13:35
13:37 gshank joined
jnthn Mostly that my muscle memory will have me typing the wrong ones for a while :P 13:37
But that's not a good reason not to do it. 13:38
What are the floating point ones called, though? 13:39
The *nice* thing about how we have things today is that the convention is MVM[what Perl 6 calls the type].
Which is probably the best argument for keeping things as they are.
not_gerd jnthn: there are no standard floating point types 13:40
if float/double are not 32/64, you're out of luck anyway
jnthn True...
That means we end up with a different convention for writing int and floating point types... Joy.
not_gerd there's float_t and double_t if you want fast floating point types as least as precise as float/double
but no fixed types 13:41
nwc10 these days I think that you will be hard pressed to find a platform where double is not a 64 bit IEEE float
but someone will find you one, just to be annoying
not_gerd we *could* keep the MVM* names as alias for the standard types 13:43
13:44 jnap joined
JimmyZ github.com/MoarVM/MoarVM/tree/readlineintfh 13:44
needs some helps to merg it
merge
an updated linenoise github.com/MoarVM/linenoise 13:45
i.e: create submodule :) 13:47
and not_gerd++ # NOISY 13:48
dalek arVM/dll: febefc7 | (Gerhard R)++ | src/moarvm.h:
Simplify MVM_PUBLIC/MVM_PRIVATE logic.

If we go ahead with this factoring, MVM_BUILD_SHARED and MVM_SHARED need to be passed as compiler flags.
The former will be added by Configure.pl, the latter must be specified by library users.
Note that not supplying MVM_SHARED when using the dynamic lib should work in principle, but comes with a performance penalty on Win32.
13:50
arVM/readlineintfh: 15c2b0f | (Gerhard R)++ | build/auto.pm:
Auto-detect readline
13:52
arVM/readlineintfh: 6de9acd | (Gerhard R)++ | / (4 files):
Wire up MVM_HAS_READLINE and --no-readline
arVM/readlineintfh: d62a540 | (Gerhard R)++ | Configure.pl:
Clarified implications of not using --no-readline
arVM/readlineintfh: 47654ba | (Gerhard R)++ | / (12 files):
added readlineint_fh op
not_gerd someone needs to go through all headers and add MVM_PUBLIC/MVM_PRIVATE annotations 13:53
that someone also needs to gifure out what our API actually is ;) 13:54
*figure
JimmyZ not_gerd: could you help me to add submodule linenoise and merge to master?
not_gerd JimmyZ: based on readlineintfh? 13:56
JimmyZ not_gerd: yes
jnthn Do we want it as a submodule, or just clone it into a subdirectory? 13:57
I guess submodule lets us track the revision better...
JimmyZ yeah
not_gerd anyone knows if there's a difference in what URL (git: vs http:) I use for adding the submodule? 13:59
tadzik yes, there is
people behind restrictive firewalls may have troubles with git 14:00
JimmyZ not_gerd: git needs password
tadzik git:
no, it does not
JimmyZ oh
tadzik http, on the other hand, is slower
JimmyZ oh ,git://
not_gerd so, https it is...
JimmyZ I thought git@ :P 14:01
tadzik that's ssh :) 14:02
not_gerd JimmyZ: readlineintfh is already up to date 14:06
or did we get the go-ahead for merging readlineintfh into master?
JimmyZ not_gerd: I can't follow you ... 14:07
not_gerd JimmyZ: is readlineintfh ready to be merged? 14:08
JimmyZ not_gerd: yes
not_gerd it does contain my readline auto-detection
JimmyZ not_gerd: yes
not_gerd makes a test build 14:09
moritz jnthn: star's "make install" fails with "error:imcc:loadlib directive could not find library `perl6_group' in file 'modules/rakudo-debugger/perl6-debug.pir' line 1 14:18
"
jnthn moritz: Have you got latest version? I fixed that last night...
moritz jnthn: iirc you fixed the usage of perl6_group in the Makefile 14:19
jnthn Yes...
moritz jnthn: but this is from generated .pir code
jnthn Oh, does star's make install not do that?
moritz perl6-debug.pir
JimmyZ not_gerd: btw, please remove example.c in linenoise
jnthn How does star build it?
JimmyZ not_gerd: otherwise it'll be linked
not_gerd JimmyZ: will do 14:20
JimmyZ not_gerd: thanks
not_gerd the Makefile should be removed as well 14:21
JimmyZ not_gerd: yes
not_gerd k
moritz jnthn: oh, it has it's own makefile rule, which still contains perl6_group. So I can fix it myself :-)
diakopter jnthn: is it intended that the new repr bless not be able to call HLL code? 14:22
jnthn diakopter: ?
diakopter TimToady's commit
jnthn bless is just a method
diakopter I thought it was saying there'd be a new repr op
jnthn No
diakopter that confused me 14:23
jnthn It needs to invoke the correct BUILD methods, for one :) 14:24
not_gerd incoming
dalek arVM: 15c2b0f | (Gerhard R)++ | build/auto.pm:
Auto-detect readline
14:25
arVM: 6de9acd | (Gerhard R)++ | / (4 files):
Wire up MVM_HAS_READLINE and --no-readline
arVM: d62a540 | (Gerhard R)++ | Configure.pl:
Clarified implications of not using --no-readline
arVM: 47654ba | (Gerhard R)++ | / (12 files):
added readlineint_fh op
arVM: 5ab4714 | (Gerhard R)++ | / (2 files):
Add linenoise as submodule

Change defaults of GNU Readline usage from auto-detection to on-demand
JimmyZ oh my dalek
you should sleep 1s each post 14:26
oh, redis is using jemalloc 14:28
14:36 benabik joined
diakopter I wish no gpl were the default 14:37
not_gerd diakopter: that would be even easier because we could get rid of the auto-detection 14:39
it's a question of -Oend-user vs -Opackager/embedder
diakopter imho, the primary use case *by far* will be the Rakudo::Star package installed from CPAN that auto-builds/installs MoarVM/NQP and installs them into the p5 lib tree 14:40
JimmyZ so +1 to get rid of the auto-detection, and I'm sorry to request it ;)
not_gerd if it's consensus, I can do it 14:41
I'll refuse to add it back in, though ;) 14:42
diakopter contrary to what others believe, I still assert that nearly all initial Perl 6 users will still come from die-hard p5 users
JimmyZ anyone see people.freebsd.org/~jasone/jemalloc...malloc.pdf ?
diakopter I don't understand why that would get rid of the auto-detection
JimmyZ: yes
there are bunches of papers on it and related since then
not_gerd diakopter: we don't need auto-detection if we only trigger on explicit --with-readline
if someone adds that flag, he'd better have that lib 14:43
JimmyZ he should know what means to add that flag :)
not_gerd we *could* double-check that we can include readline/readline.h 14:44
but personally I believe a compilation failure with 'could not include...' is good enough as far as usability goes 14:45
JimmyZ we didn't include readline.h ,just declare readline() and link to readline.lib
diakopter oh 14:46
not_gerd any reason *why* we do not include readline/readline.h?
diakopter the gpl thing
oh, you mean #include
duh
not_gerd so we can build without having the -devel package installed?
benabik deadline is GPL, not LGPL? 14:47
JimmyZ not_gerd: I think because we only need readline()
benabik *readline
not_gerd benabik: yes, somewhat famously so
benabik That's... mildly ridiculous.
JimmyZ not_gerd: we can build if there is a readline.a
or readline.lib
I think 14:48
benabik So that's why I have libedit instead.
not_gerd benabik: it's consistent if you believe non-free software is evil
benabik By default. I think I replaced it with readline.
diakopter calling non-free software evil is like saying companies shouldn't sell any products 14:49
JimmyZ I'm not sure whether we can link to readline.so or not 14:50
benabik not_gerd: I can understand RMS's / GNU's stance on these matters and still think it's ridiculous to not use the LGPL for libraries.
not_gerd diakopter: it's logically sound to see non-free software as vendor lock-in that should be illegal
of course it would change the marketplace
no change for programmers working in-house
diakopter illegal!??! 14:51
benabik JimmyZ: The exception for linking is the primary difference between LGPL and GPL.
not_gerd diakopter: it's a distortion of free markets 14:52
diakopter selling things should be illegal?
JimmyZ benabik: yes
not_gerd I can't pay the programmer of my choice to work on software I 'own'
benabik Heh. GNU's "you shouldn't use the LGPL" page explicitly calls out readline.
not_gerd the state can make such things illegal
(not that I'm arguing for that, mind you;))
diakopter the state should outlaw selling?
not_gerd I'm just saying that the GNU mindset *is* consistent 14:53
diakopter: just selling software without right to modification
JimmyZ anyway, we have linenoise , link to readline or not, is the business company thing, out of area
my area
not_gerd diakopter: the point is moot, anyway 14:55
I don't see anything like that happening in my lifetime
probably never
JimmyZ me neither 14:56
diakopter not_gerd: who says that should be illegal? is their argument "people are too stupid to read the contract where it says they can't modify the software, and so will be disappointed later, so we should outlaw certain types of contracts"
if someone wants software without restriction, just make it yourself
not_gerd diakopter: the final goal would be getting rid of non-free software completely (except for art/entertainment) 14:57
jnthn diakopter: There's plenty of consumer protection law that essentially boils down to that. At lesat, in Europe. :)
diakopter it's a distortion of free markets to make certain contracts illegal
not_gerd if my livelihood depends on a piece of software, I should be allowed to pay whoever I want to fix it
that's the basic idea behind GNU worded in a more consumer-centric way
diakopter not_gerd: the state is not responsible for anyone's livelihood
not_gerd not_gerd: the state is responsible for setting the boundaries of the market 14:58
note to self: don't send notes to self 14:59
diakopter jnthn: I sincerely doubt that consumer protection laws boil down to that
not_gerd I know, car analogies and all that: there's been research about making motors black boxes that only the vendor can replace as a whole 15:01
if you think about software like that, it's natural to demand to be able to use the mechanic of your choice
diakopter "livelihood depends on" - there's an important distinction here
not_gerd diakopter: I believe RMS made an explicit exception for art and entertainment 15:02
diakopter if you depend on redistributing someone else's property that you are licensing the use of... then you are dependent on the software's owner
but if you depend on simply USING the software in-house, you can modify it however you want
yes, you can pay someone to fix it
just don't redistribute it
it's not yours.. you are *licensed* to use it because that's all you agreed to 15:03
not_gerd diakopter: I can't pay anyone except the person who holds the source code 15:04
as I said, vendor lock-in
of course there are middle grounds
diakopter I thought we were talking about gpl software
that's open-soure
*open-source
not_gerd: why wouldn't you hold the source code? 15:05
decompilers exist 15:06
they work
not_gerd so go ahead and decompile MS Office to fix some bug ;)
anyway, these are all philosophical mind games 15:07
diakopter so you think software compiled entirely to hardware should be illegal?
er, not *you* I guess you said
not_gerd diakopter: me? or RMS?
diakopter there's a huge difference between RMS et al. claiming that companies SHOULDN'T sell non-open-source software and claiming it should be CRIMINALIZED 15:08
I've never heard of those people actually paying lobbyists to try to get it criminalized 15:09
"people who try to sell non-open-source software should be put in jail" 15:10
illegal bits
"distributing machine code without source code should be illegal"
distributing chips without layout drawings should be illegal? 15:11
selling hardware without complete manufacturing specs should be illegal?
that's the insane direct conclusion. 15:12
not_gerd diakopter: the difference is that the chip vendor cannot change it's software once it's converted to hardware
diakopter how does that make it different?
say it's an FPGA
not_gerd it's all about not having to go to the vendor when trying to fix stuff 15:13
if the vendor can't fix stuff himself, it's more of a gray area
diakopter but that's the essential part of it you pointed out
no, but we're talking about "copying"
but they can fix stuff by releasing a new version 15:14
same with software
15:14 colomon joined
not_gerd but in case of hardware, you'd need manufacturing devices, in case of software only a compiler 15:14
diakopter doesn't matter that the manufacturing device is free 15:15
not_gerd one of the lock-ins is more artificial than the other
of course, 3d printers may change the game yet again
I'd be curious to see what RMS has to say on that issue
it sets hardware on the same fooring as software
*footing or flooring 15:16
diakopter I don't think there will ever be 20nm 3d printers .. of less complexity/expense than 20nm chip plants
ok, within my lifetime anyway
JimmyZ what? from GPL to 3D printer? 15:17
not_gerd ;)
diakopter: see also www.linuxtoday.com/infrastructure/1...200505NWLF # RMS on free hardware
diakopter my point is that you can rebuild your car from toyota with sufficient technology, just like you can decompile MS Offie with suffiient technology
JimmyZ you're out of topic ;) 15:18
not_gerd diakopter: sure, but hardware is protected by patents
software by patents and copyright both
diakopter only for reselling 15:19
15:19 crab2313 joined
diakopter you can remake whatever you want in your basement 15:20
JimmyZ So there will be free hardware by the 3D printer coming? 15:22
not_gerd if the FSF is consistent, they should argue for that
diakopter so.. by RMS' argument in that article, he's okay with selling MS Office compiled to microcode, because it's difficult to copy
JimmyZ we should create FHF
not_gerd I don't think so 15:23
making copy protection illegal for application software would be consistent with GNU philosophy 15:24
getting rid of 'artificial' vendor lock-in is the whole point
diakopter he's saying he's okay with people not distributing HDL chip designs when selling chips 15:25
so here's my MS Office chip, and you don't get the HDL designs
not_gerd but MS office could work without being printed to a chip
thus artificial
diakopter intel processors can work without being printed to a chiop
people write chip simulators every day 15:26
not_gerd but if you buy an intel chip, you'r not being 'artificially' prevented from fixing bugs with it
if there ever were a 3d-printable intel chip, the sure 15:27
diakopter why not? if you had the high level designs, you could simulate it
so you're being prevented from fixing it just because you don't have the design in a language you can grok
not_gerd but simulating it doesn't help the end-user that is prevented from doing his work by a bug in the chip design
he never will be able to fix that bug hinself 15:28
*himself
anyway, I don't know how to express this any more clearly
diakopter but again, that's because he doesn't have the chip manufacturing plant
I'm not seeking clarity; I'm clearly demonstrating the absurdity of their arguments 15:29
not_gerd I don't find the end-user/consumer protection angle ridiculous, som we might have to agree to disagree ;) 15:30
it just bugs me when people claim that the idea behind GNU is totally ridiculous
RMS might be, but I think the free software ideals are logically sound 15:31
diakopter no one claims that intel selling their high level designs and access to their manufacturing plants with their chips wouldn't decrease lock-in
it's not ridiculous in that sense 15:33
not_gerd the question is, could an arbitrary end user start manufacturing chips (or pay someone a reasonable amount to do so) if intel made its design public
the answer is no, so the FSF doesn't care about it
diakopter right, so selling MS Office compiled to microcode is okay, by that argument. 15:34
not_gerd no, because it add artificial barriers
*adds
diakopter er, selling a *new product* that couldn't already run on a general purpose microprocessor
TimToady "I get no respect: I went to the fights, and a hockey game broke out." --Rodney Dangerfield
not_gerd ;) 15:35
diakopter it doesn't add artificial barriers if the software isn't already for sale in an emulator, like a general purpose cpu 15:36
TimToady is tired of licensing discussions in general
not_gerd anyway, perhaps more on topic: I should change the defaults for --no-readline / --with-readline ?
diakopter I retract my knee-jerk opinion on that :) 15:37
JimmyZ not_gerd: +1 to --with-readline
diakopter (people aren't going to be redistributing moarvm/perl6 starting with the default build from cpan) 15:38
(until they are)
not_gerd needs to go buy turtle food 15:39
diakopter needs to go earn turtle food
jnthn
.oO( The turtle food got all the way down )
TimToady that's a lot of food
diakopter turtles are good food 15:40
oh, he meant food *for* turtles
JimmyZ ... 15:41
jnthn diakopter: I...assumed so :P
diakopter commutivity&
JimmyZ so anyone vote for --no-readline / --with-readline 15:42
?
jnthn --use-readline maybe makes sense? 15:43
JimmyZ yes
TimToady only designs languages, not *real* interfaces... 15:44
JimmyZ .tell not_gerd please change the defaults to linenoise unless --use-readline ;) 15:47
yoleaux JimmyZ: I'll pass your message to not_gerd.
jnthn fwiw, I'm happy enough if we auto-detect by default, and --use-readline[=1] means "always try to use it" and --use-readline=0 means "certainly don't try to use it" 15:49
JimmyZ happy drinking :P 15:50
or --use-readline means "always try to use it" and nothing means "certainly don't try to use it" 15:52
15:53 woolfy left
JimmyZ .tell not_gerd please see backlog 15:54
yoleaux JimmyZ: I'll pass your message to not_gerd.
15:55 benabik joined 15:58 benabik_ joined 16:16 woolfy joined, woolfy left
JimmyZ Good night 16:29
17:29 BenGoldberg joined
BenGoldberg So, how long until we can play with MoarVM with an IRC evalbot? 17:46
diakopter :) 17:47
17:48 jnap joined 17:54 not_gerd joined
not_gerd so, on to the next controversial subject: header re-organization 17:57
yoleaux 15:47Z <JimmyZ> not_gerd: please change the defaults to linenoise unless --use-readline ;)
15:54Z <JimmyZ> not_gerd: please see backlog
not_gerd [x] done 17:58
I'm thinking something along these lines: gist.github.com/gerdr/990ebfa6ef040b31b5bb
jnthn BenGoldberg: Probably when NQP runs nicely on it :) 18:01
BenGoldberg So, not until it self-hosts? 18:02
Err, self-hosts NQP?
diakopter not_gerd: something will generate the public header file? 18:03
not_gerd diakopter: could be done, sure 18:04
diakopter just need to detect that marker and backslash-line-endings 18:05
(and follow includes, I guess)
jnthn BenGoldberg: Right
BenGoldberg: Well, self hosts NQP better than crashing before it even reaches the parser :) 18:06
Which is the current state of the self-host :)
not_gerd diakopter: but the API documentation needs to be kept manually anyway 18:07
(hey, why not auto-generate that as well ;))
as long as the actual .c file includes all headers that have declarations, we should get a warning if we ever get out of sync 18:08
18:13 lizmat joined 18:20 woolfy joined 18:26 jnap joined
not_gerd MacOS, my nemesis 18:37
I don't think linking readline as `-framework readline` works 18:38
dalek arVM: 8f3607a | (Gerhard R)++ | / (2 files):
Allow different flags for linking system and user libs
18:53
18:57 donaldh joined
jnthn not_gerd: The noisy thing seems to have an issue on Solairs; if you have a moment, please could you take a look at Andy Dougherty's mail on perl6-compiler? 19:27
You can probably make more sense of it than me :)
not_gerd jnthn: looking 19:28
sent mail via google groups 19:40
might be a good idea if I join that group 19:41
dalek arVM: 8928bcb | (Gerhard R)++ | build/setup.pm:
Add space after -o to make Solaris happy
19:48
arVM/dll: 5c9d2e7 | (Gerhard R)++ | build/setup.pm:
Add space after -o to make Solaris happy
19:49
not_gerd good night o/ 19:57
19:58 not_gerd left
jnthn Oops. Build busted on Windows. :( 20:21
compiling src\\io\\fileops.obj
NMAKE : fatal error U1077: 'cl' : return code '0x2'
Stop.
...where's the darn error... :/ 20:22
jnthn gets it with NOISY=1
ah, I had to grab the submodule. We may want to automate that... 20:24
diakopter yah
20:35 lizmat joined 20:51 woolfy joined 20:55 lizmat joined
dalek arVM: 266a334 | jnthn++ | src/ (3 files):
The first clarg should be the program name.
21:12
jnthn my $x := '-e'; 21:15
if nqp::substr($x, 0, 2) eq '--' { say('oops');
}
...says oops :( 21:16
diakopter jnthn: we've mentioned that on the channel here a whole lotta times 21:23
21:23 woolfy left
diakopter jnthn: I don't see why you'd need to root prog_string in that patch 21:24
jnthn diakopter: um, me either... :) 21:27
diakopter: Yes, I'm debugging now
->graphs in the result of the substring operation is 1, not 2
diakopter uh oh
jnthn So the string equality check bails out immediately.
diakopter but... with success!?
seems like NUM_GRAPHS needs to be compared in eq 21:28
if it's not already
jnthn oh, wait... 21:30
NUM_GRAPHS must be doing more than I think...
yeah 21:31
OK, so it doesn't bail out there after all 21:32
We go on into MVM_string_equal_at(tc, a, b, 0)
And make it into MVM_string_substrings_equal_nocheck
diakopter hopes what I said the other day holds true (algorithmically sound but slight impl error(s)) 21:34
jnthn return result ? result - 1 : 1; 21:35
result ends up being 2
What does teh 2 mean?
diakopter result was 3?
oh, result 21:36
heh
jnthn no, result is 2
Meaning we return 1
diakopter trying to remember
i'll look at the code
result == 1 means didn't match 21:38
jnthn ok, and 2 means did match, but they shouldn't have matched
diakopter at line 113 2 means matched
... but at 227... 21:39
not sure yet
masak: jnthn's debugging my solution to that leaf compare problem thing you mentioned 21:41
jnthn s/debugging/struggling to debug/
diakopter .. maybe i should do it.... 21:42
I was hoping it would fix itself by some other means :)
jnthn descend_sized does return?!
diakopter yah setting result should be the last thing needed 21:43
rest of state is on the c stack
jnthn So here's the bit that confuses me 21:44
if (memcmp(st->member, c->string->body.member + c->string_idx, \\
wehave * sizeof(size))) { \\
*result = 1; \\
return; \\
} \\
That is, if they compare the same, set the result to 1 21:45
and return
If that doesn't happen we reach the end of compare_descend and do
*result = 2;
diakopter memcmp returns 0 if they compare the same
jnthn oh, yes
duh :)
diakopter however
it might not should be returning
jnthn: oh, I see the problem 21:48
er, no I don't 21:49
jnthn: the only thing I can think of at this second is that this is wrong somehow: "st->needed -= tocompare" 21:51
jnthn What's slightly odd is the MVM_STRING_TYPE_ROPE path is never taken in compare_descend even though we clearly have a rope...
diakopter whehhhh
that can't be right 21:52
jnthn: wait
why do you think we have a rope
i thought we were flattening everything everywhere 21:53
jnthn No
I think we have a rope because substr returns one :)
diakopter right, I just thought we were flattening everything everywhere
jnthn Also because one of the input strings has num_strands = 1, and flags = 2.
diakopter k 21:54
jnthn No, I think we discussed doing that, but aren't actually doing it.
diakopter oh hm
jnthn Feel free to put that in place, though. 22:00
well, I did it here and it helps... 22:09
diakopter :S 22:10
dalek arVM: 0fcc23d | jnthn++ | src/strings/ops.c:
Always flatten ropes for now; avoids bugs.
diakopter probably to diagnose it, I'd replace memcmp with something that printf a bunch of stuff 22:11
dalek arVM: 52d8110 | jnthn++ | nqp-cc/nqp-src/NQP.nqp:
Remove classname stage; was copy-paste from JVM.
22:12
jnthn Well, that gets us to the next segfault. 22:15
diakopter \\\\\\\\\\\\\\o///////
jnthn Which doesn't seem to be GC related
diakopter <- grew some arms
jnthn oh, I see... 22:18
diakopter now what :) 22:19
jnthn Arg handling fail in bootstrap 22:22
*bootstrap.c
diakopter o_O
but.. bootstrap is before everything 22:23
oh, probably new_type
jnthn new_type
Used at the start of parse
diakopter \\o/
jnthn We get further now
To an NYI opcode
diakopter \\o/ for guessing correctly
which one
FROGGS O.o
jnthn scobjcount
diakopter wee-uhd 22:24
dalek arVM: 014ee8d | jnthn++ | src/6model/bootstrap.c:
Missing check_arity calls.

Needed because that triggers flattening.
22:25
jnthn It's used in NQP::World.
dalek arVM: 3b82437 | jnthn++ | nqp-cc/t/moar/clargs.t:
Sync clargs test with progname reality.
22:26
jnthn wtf, adding MVM_string_flatten(tc, result); in join breaks tests... 22:27
uh, no...hmm
Removing it leaves them busted
wtf.
ah, we hit various missing SC ops 22:31
22:32 grondilu joined
diakopter jnthn: oh, I've doe a bunch alread y 22:32
locally
go to sleep they'll be done when you wake up :) 22:33
jnthn oh, ok
grondilu doesn't have linenoise:
src/io/fileops.c:13:23: fatal error: linenoise.h: No such file or directory
jnthn That will get nqp.moarvm further :)
diakopter or at least lots of progress :)
jnthn lemme push the one I did
dalek arVM: 026f778 | jnthn++ | src/core/interp.c:
Implement scobjcount op.
22:34
jnthn Next one it hits is scsetobj. The signature in oplist looks wrong actually...
0x02 scsetobj w(obj) r(obj) r(int64)
It's called as
nqp::scsetobj($!sc, $idx, $obj);
diakopter heh ok
jnthn So should be r(obj) r(int64) r(obj)
scsetcode is similarly
diakopter one of them returns one of hte args needlessly.. is that intended? 22:35
("yay for chaining/fluency"?)
jnthn "one of them"?
diakopter one of the nyi op's sigs
(as impl in the jvm)
jnthn yeah, it shoudln't needlessly do that... 22:36
Oh, on the JVM they always needlessly do that as it's a stack machine
diakopter ok
jnthn In MoarVM we don't need to
diakopter I feel like I've learned this before :)
jnthn We have the "use this arg as the result" flag (which you probably even implemented way back :))
So QASTOperationsMAST may need tweaking 22:37
diakopter *blinks*
jnthn after these changes
diakopter ah, ok
jnthn OK, well, there's another little bit of progress, anyways... 22:40
diakopter jnthn++ :D
btw when it was looping in interactive(), it memory leaked and asploded quickly
TimToady &[<]++ 22:41
diakopter doesn't recognize that idioma
TimToady I'm giving karma to &[<]
which stands for progress 22:42
1 < 2 < 3 < 4...
diakopter so how do you reverse the direction of a [ ] 22:43
TimToady which direction are you referring to?
flussence r: say [R<] 4,3,2,1
FROGGS [R<] ?
dalek arVM: cb09baa | (Gerhard R)++ | build/ (2 files):
Makefile bikeshedding - in particular don't hide compiler output
22:44
arVM: b09b271 | (Gerhard R)++ | src/core/validation.c:
Add missing initializer for local variable.

I'm assuming zero-initialization is correct here.
FROGGS ENOCAMELIA
flussence whoops, wrong channel.
jnthn 'night, #moarvm 22:49
diakopter o/
TimToady yes, we do 22:50
along with the details of channel hopping :) 22:58