Parrot 3.0.0 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Goals: Fix ipv6-related failures
Set by moderator on 10 February 2011.
plobsing my naive statistics would suggest we use something like a Normal CDF centered around the GC threshold for triggering the collection. did I mention I don't know much stats? 00:05
00:14 vmspb left
nwellnhof why not simply run a GC with a certain probability? 00:21
Tene nwellnhof: what's the probability that will be best for all possible programs?
nwellnhof for debugging the best probability would be 1, but that's too slow. 00:22
bacek_at_work (158.26 - 88.26) / 158.26 * 100 00:25
aloha 44.2310122583091
nwellnhof the problem with a random approach is to reproduce failures. we'd need a random seed that's dumped somehow in case of errors. 00:26
plobsing you're already in a "looking for errors" mode. dumping that seed to stderr, or creating a file in $CWD isn't too much of a stretch 00:28
nwellnhof and dump the hash seed as well 00:30
00:35 kid51 is now known as kid51_at_dinner
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#9598) fulltest) at 3_0_0-941-g8601021 - Ubuntu 10.10 i386 (g++-4.5) 00:42
cotto_work: dukeleto: there is a Community section in NEWS - I think the GCI info for parrot can go there 00:43
01:02 cotto joined
cotto ~~ 01:05
01:07 cognominal joined, nwellnhof left
mikehh hey cotto 01:09
cotto hi mikehh 01:19
01:19 cotto left 01:28 dmalcolm left 01:30 cotto joined 01:32 Themeruta joined 01:33 NotFound left
bacek_at_work (1671 - 1243) / 1671 * 100 01:38
aloha 25.6134051466188
bacek_at_work (1725 - 1271) / 1725 * 100 01:41
aloha 26.3188405797101
bacek_at_work (33 - 20) / 33 * 100 01:46
aloha 39.3939393939394
bacek_at_work 0.48 * 545 01:47
aloha 261.6
01:48 rdesfo left
bacek_at_work 261 / 1271 * 100 01:49
aloha 20.5350118017309
bacek_at_work nice. 20% of rakudo spectest spent in startup...
01:51 kid51_at_dinner left 02:05 contingencyplan joined, contingencyplan left, contingencyplan joined
whiteknight what are those numbers? 02:15
plobsing bacek_at_work: how much is that different before/after? 02:18
also how much of rakudo spectest is spent parsing? or is that part of startup? 02:19
cotto bacek_at_work, ping 02:44
bacek_at_work plobsing, 0.48 is rakudo startup time. It's not dominated by GC 02:45
cotto, pong
plobsing, /usr/bin/time ./perl6 -e ''
cotto bacek_at_work, what if after the 3.1 release we merged in gen_gc, but made gc_ms2 the default in 3.2 and 3.3 unless Parrot was configured to use gen_gc? 02:46
bacek_at_work cotto, how HLL's can use it than? There is no way (afaik) to switch GC
alternative - made it compile time selectable. Via Configure.pl 02:47
cotto that's what I was thinking
bacek_at_work wfm
cotto ok
I'll bring it up at #ps and see if anyone can think of something better, but I'm glad it satisfies your concerns. 02:48
plobsing I also think Configure.pl-time is the best option. The costs required to make gen_gc work would otherwise be applied to ms2 equally. 02:54
02:55 whiteknight left
dalek rrot/gen_gc2: 36211cc | bacek++ | include/parrot/settings.h:
Wrap defining of PARROT_GC_DEFAULT_TYPE under ifndef to make it overridable
03:14
rrot/gen_gc2: 5f22a84 | bacek++ | include/parrot/gc_api.h:
Remove TMS GC. It doesn't exist anymore. GC MS2 is TriColour.
rrot/gen_gc2: ad15628 | bacek++ | src/gc/api.c:
Rework initialization of GC
bacek_at_work cotto, Configure.pl --ccflags="-DPARROT_GC_DEFAULT_TYE=MS2" should work now. 03:15
afk
cotto bacek, thanks 03:16
plobsing ah. if we're just setting default, in stead of availability, it might be better to put that as a flag on pbc2c 03:18
or exe or whatever that's called
03:33 hudnix left 03:35 hudnix joined
cotto plobsing, do you have an estimation of how much overhead having a pluggable gc costs us? 03:43
plobsing not off the top of my head. chromatic mentioned some numbers at one point. I think it was between 5 and 10 percent (of what I do not know). 03:51
but the cost I am refering to is the dissabled optimizations currently required to make gen_gc work 03:52
cotto That sounds like what I remember.
04:04 bacek joined
bacek ~~ 04:13
dukeleto ~~ 04:17
cotto has anyone trolled #ps for news items? 04:21
dukeleto cotto: i haven't 04:22
cotto: but i will add GCI to community now
04:27 drake1 joined
drake1 hello 04:28
how far is the i/o system of parrot?
the one compatible with stdio 04:29
cotto drake1, what would you like to do? 04:33
dalek rrot: f180827 | cotto++ | NEWS:
bulk up NEWS a little
drake1 to fwrite and fread, fopen and fclose
and fseek
bacek drake1, it's all implemented. 04:34
drake1 in rakudo too?
bacek drake1, of course. 04:36
dukeleto drake1: yep, all that is well-tested and implemented
drake1: but asynchronous I/O is not there yet
drake1 by the way, is list context simmd optimized? -bacek: where are the documentation / example files? 04:37
dukeleto: meaning concurrent freads aren't possible? 04:38
bacek drake1, for rakudo? In Perl6 spec. For parrot - best example is t/pmc/filehandle.t
drake1 for rakudo, yes
thanks
dukeleto drake1: src/io/*.c 04:39
bacek dukeleto, wrong answer :). src/pmc/filehandle.pmc
dalek rrot: 483f6ec | dukeleto++ | NEWS:
[doc] Beef up NEWS
drake1 i only want to know the: open, close, print, <> equivalents
dukeleto drake1: our object (PMC) api is in filehandle.pmc, but OS-specific stuff is in src/io/*.c 04:40
drake1 use filehandle; ok
bacek drake1, check perlcabal.org/syn
dukeleto drake1: in which language? From C, PIR, NQP, Perl 6 ?
bacek S32 IO
dukeleto drake1: what are you trying to do?
dukeleto added some beef stew to NEWS 04:41
drake1 dukelto: some parallel redirection
the language is uinspecified 04:42
unspecified*
the stream itself is plain ascii 04:44
bacek drake1, still not clear in which language you are trying to implement it :) 04:45
drake1 in perl6
dukeleto drake1: we can help you with implementing it in Rakudo Perl 6, but you may also want to ask these questions on #perl6 on freenode 04:47
drake1: are you wanting to do this in Rakudo?
drake1: Rakudo is Perl 6 on Parrot
drake1: but there are other Perl 6 implementations
drake1 dukeleto: how is the SSE support in Rakudo? 04:48
dukeleto drake1: Rakudo doesn't know about SSE 04:49
dalek rrot/gen_gc2: ecd3869 | bacek++ | config/gen/makefiles/root.in:
Inline alloc_resources compilation. It's always required anyway.
rrot/gen_gc2: e0a4faf | bacek++ | / (4 files):
Change auto::gc step to do something useful: actually switch GC in compile time
drake1 but perl is the qualified language
dukeleto drake1: there is no custom ASM in Parrot, so that is essentially up to the compiler, as far as I know
drake1 the C compiler? 04:50
dukeleto drake1: yes
drake1 (C isn't qualified)
plobsing wonders if Lorito should try to make SSE/CUDA/etc easier (not specify API, just make it possible)
dukeleto drake1: Parrot strives for portability, so we don't generally do asm
plobsing: not a bad idea 04:51
plobsing: CUDA is very interesting
plobsing: i think we can get at it through NCI to an already existing C library
drake1 dukelto: like C is a lot more compatible
dukeleto drake1: oh, don't we know it.
drake1 dukelto: yes, sure
should be easy to redirect some calls 04:52
dalek rrot/gen_gc2: ef3e968 | bacek++ | config/auto/gc.pm:
Set gc_flag to empty string to use "default" GC.
plobsing drake1: if you want full SSE support from something already implemented, look at parrot-linear-algebra. it uses BLAS (an optimized linear algebra package).
cotto plobsing, it's interesting to think about how we could make that possible.
plobsing cotto: exactly. I'm not sure we can, but we should think about that. 04:53
drake1 plobsing: perfect
dukeleto plobsing: i think it just comes down to having good FFI/NCI support from M0
drake1 I was thinking that ( a * b, a * c, a * d) in perl could utilize the whole set of ALUs 04:54
dukeleto drake1: what is your interest in Parrot? are you doing scientific computing stuff? 04:55
plobsing drake1: what are you doing that has the ALU as the bottleneck?
drake1 dukelto: just how good you do 04:56
plobsing: matrix operations in regular perl
bacek msg whiteknight (numbers) It was timing of "make spectest" and "./ops2c --core" on master vs gen_gc2.
aloha OK. I'll deliver the message.
cotto Trying to find submission deadlines for conferences makes me crabby. 04:57
dukeleto drake1: what are you using? Math::MatrixReal ?
plobsing Perl typically uses too much memory to worry about such things. Perl 6 allows for implementations to get close enough to worry about things like that in special cases, but none of the implementations are there yet.
dukeleto cotto: which confs?
cotto Linuxfest NW in this case.
dukeleto cotto: i think we should build a system that notifies everyone
drake1 dukeleto: just regular list context
dukeleto drake1: have you tried Math::GSL::Matrix ? 04:58
drake1 no
dukeleto drake1: search.cpan.org/dist/Math-GSL/lib/M.../Matrix.pm 04:59
plobsing in my opinion, we'll likely see a P6DL. far easier to swap out complicated hot paths to native code than to build an optimizer that handles the general case as well as existing C compilers.
drake1 im more curious about the core object
dukeleto drake1: it is a wrapper to the GNU Scientific Library, which is C
drake1 ok
dukeleto drake1: matrix math will be much faster for large matrices, and memory use will be much less
drake1 than regular perl? 05:00
dukeleto drake1: yes.
drake1: i wrote Math::GSL :)
drake1 i code yacc, and could probably come up with something faster
dukeleto drake1: i would like to hook up Parrot to GSL sometime soon, but haven't found the tuits 05:01
drake1 for math only
ok... does rakudo specify a binary interface too?
bacek
.oO( Where is our branching guide? )
05:02
cotto docs/project/git_workflow.pod?
dukeleto github.com/parrot/parrot/blob/mast...rkflow.pod 05:03
bacek: that links to our branch merge guide
drake1: what do you mean by "binary interface" ? can you make rakudo binaries?
drake1: the answer to that is "yes" and they are called fakecutables 05:04
drake1: because they just embed parrot bytecode into a C array
drake1 dukeleto: like how to link in some binary objects
dukeleto: and call from within rakudo -
dukeleto drake1: such as calling functions from C librarys?
plobsing drake1: check out NativeCall (Zavolaj)
drake1 yes
thanks 05:05
plobsing it is a million times more awesome than XS
dukeleto drake1: it is called NCI (Native Call Interface), we use libffi for that stuff, if it is on the system
bacek dukeleto, I don't like "username/foo" naming. It implies Bus Number equals to 1
drake1 dukeleto: from the parrot site?
cotto It does encourage the idea that a person owns a branch.
plobsing I agree with bacek on the username naming.
dukeleto bacek: you don't have to follow it. It is a suggestion, but I like it for say "this is my personal branch", but then I invite people to hack on it
plobsing cotto: that's equivalent to saying it implies ONE person owns a branch. which is a stones throw away from discouraging collaboration. 05:06
dukeleto i like the fact that *just by the branch name*, i know who created it and who the likely goto person is for it
yes, we moved to git to discourage collaboration...
cotto plobsing, I'm agreeing with you. 05:07
plobsing dukeleto: well, if I don't have to share my commits with anyone else (because I can keep them local), why should I? ;)
dukeleto but, for instance, i want everyone to hack on the 'lorito' branch, so i didn't call it 'leto/lorito'
Tene dukeleto: you could also check the commit log to find out who to contact about a branch
dukeleto Tene: yes. That takes time and effort.
drake1 (might be the zavo* branch) 05:08
Tene 'k
bacek dukeleto, lets rephrase git_workflow than. To something like "Name your branch as username/foo if it's your little playground for some crazy ideas. Name is just foo if you want more attention" 05:09
dukeleto bacek: if you are volunteering to change it, then i am +1 ;)
bacek dukeleto, no problems. In which one of my first three languages? 05:10
plobsing drake1: github.com/jnthn/zavolaj
bacek :)
drake1 thanks
plobsing drake1: you can probably also get it through whatever rakudo is calling their package system these days. ask on #perl6@freenode for details. 05:11
cotto bacek, very rude Russian. That way most of us won't know.
You can even say that it's very polite Russian and trick us.
drake1 plobsing: ok
bacek cotto, it will bring almost same flame was as of README.ru. "No-no-no. This is not rude enough. You should use more shits and fucks" 05:13
s/was/war/
(216 - 141) /216 * 100 05:14
aloha 34.7222222222222
bacek aloha, aloha?
aloha bacek: aloha is simple Bot::BasicBot::Pluggable hosted on github.com/bacek/aloha
plobsing aloha, ahola? 05:15
aloha plobsing: No clue. Sorry.
cotto aloha, git workflow is github.com/parrot/parrot/blob/mast...rkflow.pod 05:16
aloha cotto: Okay.
plobsing aloha: ahola is ahola/kecab/moc.buhtig//:sptth no detsoh elbaggulP::toBcisaB::toB elpmis
aloha plobsing: Okay.
plobsing :D
bacek LOL :)
dukeleto aloha, git workflow ? 05:17
aloha dukeleto: No clue. Sorry.
dukeleto sad little bot
plobsing aloha, ahola? 05:18
aloha plobsing: ahola is ahola/kecab/moc.buhtig//:sptth no detsoh elbaggulP::toBcisaB::toB elpmis
plobsing only remembers useless information
bacek should add trimming of questions
cotto aloha, git workflow?
aloha cotto: git workflow is github.com/parrot/parrot/blob/mast...rkflow.pod
cotto space
dukeleto ah, the space before the ?
that is a bug that needs fixin'
bacek msg bacek_at_work Don't forget to fix trimming of questions in aloha.
aloha OK. I'll deliver the message.
bacek dukeleto, feel free to fix it :) 05:20
dukeleto, github.com/bacek/aloha/blob/master...Infobot.pm
drake1 what hashes do rakudo use? 05:21
err parrot
bacek drake1, NIH implementation
drake1 hmm
ok
just wrote on in asm for standard directory trees :-) 05:22
dukeleto bacek: your delegation powers are useless against me!
msg bacek_at_work please fix infobot whitespace trimming : github.com/bacek/aloha/blob/master...Infobot.pm (The Beer is in the mail) 05:23
aloha OK. I'll deliver the message.
cotto The National Institute of Health has an excellent hash implementation.
bacek dukeleto, congratulations! You just volunteered to fix aloha! :)
drake1 the specific hash of choice
dukeleto bacek: do i have a commit bit? 05:24
bacek cotto, they probably just fix consequences of using it
cotto That's the CDC.
bacek dukeleto, yes. For a long-long time. Like 5 minutes already.
drake1 how many extern libs do parrot need? 05:25
plobsing drake1: need? or can use to provide more functionality (that most people want)? 05:26
drake1 the stdio range of libc?
plobsing: in the minimal case 05:27
plobsing drake1: (simplification) Parrot targets POSIX (of which stdio is a part)
drake1 oh. that's not much 05:28
plobsing of course, you'll probably want libicu (fairly sure Rakudo *requires* this) and libffi.
drake1 just wrote the new fopen man: www.gangsterfreak.com/fopen.c
cotto What was wrong with the old one? 05:30
drake1 the macro tokens were wicked and the stream implementation unspecified 05:32
dukeleto bacek: who wrote this code? ;)
bacek dukeleto, Infobot.pm? Not me. I just copied it from Bot::BasicBot
plobsing drake1: 'F.open'??? 05:33
dukeleto bacek: i read the source and I have decided to let someone else figure that ou
out, rather
drake1 plobsing: with pronounciation keys
dukeleto drake1: parrot needs at least perl 5.8, make and a decent C compiler, and then detects everyting else and enables features if your system supports them 05:34
bacek dukeleto, line 93
dukeleto drake1: perl is just for the build system
bacek just chomp $body
drake1 dukeleto: alright. can you share a list of extern references?
dukeleto bacek: why would that work? 05:35
drake1: what do you mean? I don't quite get your question
bacek: feel free to fix it, my brain is in other places
cotto drake1, the README should document that
If not, let us know and we'll fix it.
drake1 dukeleto: like a list of undefined symbold before the system link ie. ( nm $(OBJ) | grep '[[:space:]]U[[:space:]] 05:36
plobsing drake1: build it and check 05:39
drake1 i also try the README
plobsing: yeah
plobsing drake1: might also want to ldd to get an overview 05:40
drake1 nm accounts for that too 05:41
cotto What kind of segments will M0 bytecode need? 05:55
dalek rrot/gen_gc2_smart_ops2c: 01bcdf1 | bacek++ | / (2 files):
Add Op.need_write_barrier. Alos switch test to use Parrot's Test::More instead of NQP builtin
05:58
rrot/gen_gc2_smart_ops2c: bb45335 | bacek++ | t/compilers/opsc/03-past.t:
Add failing test for setting need_write_barrier.
rrot/gen_gc2_smart_ops2c: 0dcf6ef | bacek++ | compilers/opsc/src/Ops/Op.pm:
Implement Ops::Op.need_write_barrier
rrot/gen_gc2_smart_ops2c: 29ff1a6 | bacek++ | / (2 files):
Insert Write Barrier into op when needed
rrot/gen_gc2_smart_ops2c: e6865f0 | bacek++ | compilers/opsc/src/Ops/Compiler/Actions.pm:
Fix missing comma
06:06
06:09 rurban_ joined
bacek meh... semicolon 06:09
drake1 pretty sad the new convention is that read and write are the standard in out functions. does parrot use fwrite and fread instead? 06:10
06:12 rurban left
plobsing new? don't they predate their f- counterparts? 06:12
06:12 rurban_ is now known as rurban
drake1 no 06:12
they are the original
from C implementations
my implementation does a #define read(fd,buf,size) fread(buf,1,size,_fp+fd) alike POSIX read write 06:15
plobsing your implementation? are you writting an OS? 06:16
drake1 no. that's long ago
just the read / write POSIX functions 06:17
only linux they seem to be the parent functions which slow down the entire stream capability 06:18
s/only/on
plobsing what evidence do you have of this? 06:20
drake1 and what kind of parent would not allow the stream to consist of cache line compatible atomic items?
plobsing: several C books
sorear the standard in out functions are fread and fwrite 06:26
plobsing somehow I find it hard to beleive that basing fread() on read() (which is little more than a wrapper for a syscall) makes it slower. the most costly thing in read() is the syscall.
drake1 yes
sorear if you don't beleive me, try to find "write" in flash-gordon.me.uk/ansi.c.txt 06:27
also, go find any Intel manual and look at the timings for INT
system calls are expensive, so there is userspace code which batches requests 06:28
mindlessly replacing fread with read will make your code a LOT slower
in addition to making it not work on non-Unix platforms 06:29
plobsing well yes. but basing fread() on read() does not inherently make it slower.
drake1 but muc worse for asynchronous interleaved streams 06:30
much
sorear You are not being very understandable. 06:31
plobsing read() means "I'm know how to handle buffering (or lack thereof) myself." If you fail to do so, that's your own damned fault. There is nothing fundamentally superior about fread().
other than the portability aluded to above 06:32
drake1 suppose you have two process, each producing items of size s; non interleaved packing would require only one atomic item to be sent at a time, which slows down the transmission plan 06:33
plobsing OK you've lost me. You'll have to elaborate. For example, why do you go out of your way to define variable s and then never mention it again? 06:39
drake1 since it's the object size argument
plobsing OK, and that matters how?
drake1 it's the whole basis for an object oriented protocol 06:40
plobsing OK, then there is a lot of implicit subtext which you are not making clear. at no point prior to this were you talking OO. 06:41
drake1 implementation defined of course
no POSIX requirement 06:42
only telling it's the only true parent for an objected oriented platform 06:47
sorear What's your preferred language? 06:48
drake1 english
for code
and drawings 06:49
then translated by obscure m4 tokens to assembly or C 06:50
sorear I mean natural languages.
plobsing fread() is merely implemented in terms of whatever platform primitives are available for that functionality. there is nothing magical about it. nothing (besides complexity and reinventing the wheel) stops anyone from implementing different code that accomplishes the same effect. 06:51
drake1 sorear: that depends
bacek aloha, 216 / 2
aloha bacek: 108
bacek 134 - 108
aloha 26
sorear drake1: your English argument skills are making a very bad impression
cotto +1 06:52
bacek hmm... I have to shave another 26 seconds from compiling rakudo's core.pm to make GMS twice faster than MS2
cotto bacek, sounds like a fun game
KaeseEs bacek: what do you think the low hanging fruit wrt. speeding up gms is? 06:53
bacek cotto, indeed :)
KaeseEs, I already captured few of them
06:53 contingencyplan left
KaeseEs well, the remaining fruit :v 06:53
drake1 soear: you mean you don't likw the answers? 06:54
dalek rrot/gen_gc2_smart_ops2c: ffc751c | bacek++ | src/ops/core_ops.c:
Rebootstrap ops
sorear drake1: no, I mean I can't tell what you're trying to say.
rrot/gen_gc2_smart_ops2c: b760e35 | bacek++ | include/parrot/context.h:
Re-enable direct access to registers. We have write barriers inside ops now
rrot/gen_gc2_smart_ops2c: 9e325f8 | bacek++ | src/call/context_accessors.c:
Remove Write Barrier from pcc_set_pc. We don't change anything GC related in it.
rrot/gen_gc2_smart_ops2c: 039db7d | bacek++ | src/call/context_accessors.c:
Remove WB from set_constants. We are not marking them in CallContext.mark anyway.
rrot/gen_gc2_smart_ops2c: a861ec0 | bacek++ | include/parrot/context.h:
Reenable direct access to CallContext to get stuff out in optimized builds. Didn't test debug build and it can be broken
plobsing drake1: more like we're (or at least I'm) having trouble understanding the answers.
bacek plobsing, you'll be happy after my latest commit to gen_gc2_smart_ops2c :) 06:55
plobsing bacek: I saw that. Very happy indeed.
nopaste "bacek" at 192.168.1.3 pasted "plobsing++ test for md5sum" (10 lines) at nopaste.snit.ch/32179 06:56
drake1 was that a sharp bang?
plobsing bacek: and there was much rejoicing 06:57
cotto bacek++
bacek 124 seconds for core.pm 06:59
16 seconds to go...
hmm.
cotto ! 07:00
bacek KaeseEs, low-hanging fruit for GenGC is profiling. Any benchmark will be helpful
KaeseEs ah-ha 07:01
bacek yay... segfault... 07:04
07:05 cosimo_ left
drake1 however, the POSIX read write has hole support, which could transmit in variable size, it still doesn't grid the in/out. 07:08
plobsing bacek: looks like your new ops2c WB code only handles cases where inout arg is last 07:09
convention has most comming first 07:10
bacek no
t/compilers/opsc/03-past.t
last 3 tests
plobsing Parrot_add_p_p_p() (in ffc75) needs WB but doesn't have one. that could explain the segfault. 07:11
bacek yes.
but...
How I can miss it?... 07:12
plobsing++ 07:13
dalek rrot/gen_gc2_smart_ops2c: 4148c46 | bacek++ | / (2 files):
Fix calculating write barriers for ops. plobsing++
07:20
plobsing and your segfault? 07:21
dalek rrot/gen_gc2_smart_ops2c: 77b7aba | bacek++ | src/ops/core_ops.c:
Rebootstrap ops
07:22
bacek rebuilding with rebootstrapped ops
drake1 i think i want to embed some parrot machine in a webserver, where do i start? 07:30
bacek drake1, google mod_parrot
drake1 ok. thanks
bacek or read include/parrot/ember.h
embed.h
drake1 nice 07:31
bacek plobsing, md5 test up from 1.02 to 1.10 seconds. Still faster than maser with 1.20
cotto It's been a while since mod_parrot worked. If you go that route, prepare for some hacking.
drake1 and -lparrot in $(LDFLAGS) ? 07:32
mod_parrot is apache, right?
cotto yes
drake1 i have some other system
cotto it's for apache
bacek plobsing, any ideas where to get more speed?
cotto then prepare for more hacking
drake1 for complete parrot integration with document objects etc. rather than plain files 07:33
bacek lost 3 second on "core.pm benchmark"... :-/ 07:34
(216 - 127) /216 * 100 07:35
aloha 41.2037037037037
cotto drake1, the dom is a client-side thing. are you talking about parrot on the server or in the browser? 07:37
drake1 yes
in this server
where the document object model is implemented in another format 07:38
one object could be written in rakudo and executed server size, another one could wait to be executed on the client side... that model 07:41
s/size/side
07:42 theory left
bacek 126 - 108 07:44
aloha 18
drake1 parrot runs without pthreads, right? 07:46
07:47 mtk left
drake1 stupid question 07:51
07:53 mtk joined 08:05 fperrad joined 08:21 lucian joined 08:22 lucian left
bacek oookey. 2 seconds. 16 to go. 08:36
dalek rrot/gen_gc2_smart_ops2c: af2e687 | bacek++ | src/gc/fixed_allocator. (2 files):
Add accessors to PoolAllocator memory boundaries
rrot/gen_gc2_smart_ops2c: 8862fbb | bacek++ | src/gc/gc_private.h:
Add accessors to get memory boundaries from GC Subsystem.
rrot/gen_gc2_smart_ops2c: 8801f0c | bacek++ | src/gc/system.c:
Pass interp to boundaries-getting functions
rrot/gen_gc2_smart_ops2c: 199dfb3 | bacek++ | src/gc/system.c:
Integrate with GC_Sys to get memory boundaries.
rrot/gen_gc2_smart_ops2c: a6bc49b | bacek++ | src/gc/gc_gms.c:
Expose memory boundaries from GMS
bacek 0.70 * 544 08:37
aloha 380.8
bacek 1983 - 0.70 * 544
aloha 1602.2 08:38
bacek 2758 - 0.70 * 544
aloha 2377.2
bacek (2377 - 1602) / 2377 * 100
aloha 32.6041228439209
bacek (216 - 126) /216 * 100 08:56
aloha 41.6666666666667
bacek out of ideas how to make GenGC faster... 08:59
drake1 *action* moves a page pointer 09:01
dalek Heuristic branch merge: pushed 18 commits to parrot/gen_gc2 by bacek 09:07
Heuristic branch merge: pushed 27 commits to parrot/gen_gc2 by bacek 09:46
09:46 arnsholt left 09:48 fperrad left 09:49 fperrad joined
bacek fperrad, ping 09:55
09:56 p6eval left, p6eval joined
drake1 how much larger is a perl6 image with eval capability? 09:57
moritz there's one with eval?
fperrad pong, bacek
bacek drake1, about 14M afaik
drake1 ok
bacek fperrad, can you test Lua on gen_gc2 branch? I tested it on my box, but want confirmation that I didn't brake it 09:58
fperrad, and does Lua have any "standard" benchmarks? So we can test Lua-on-parrot vs Lua-on-Lua? 09:59
tadzik there is a spectest 10:00
fperrad bacek, ok I'll do a test with gen_gc2 10:02
bacek fperrad, I suspect lua will need few write barriers 10:04
most likely in lua_function.pmc
But I don't understand code in it at all.. :(
hmm. Not luafunction.pmc. 10:05
luatable.pmc I think 10:06
drake1 if you always want to use a /usr/bin translator - in a separate process - how to adjust the framework? 10:09
for eval 10:10
fperrad bacek, have you seen github.com/fperrad/lua/tree/master/t/shootout
bacek fperrad, looking 10:11
fperrad, yes. It was what I'm looking for! Great, thanks. 10:12
drake1 that's a perl6 question 10:15
tadzik drake1: I don't understand the question 10:16
fperrad bacek, have you seen nopaste.snit.ch/30777 : a tentative of rewrite LuaFunction without multi inheritance 10:17
drake1 if you don't want the translator ( from x to parrot ) embedded in the same process image
bacek fperrad, yes. But it's not related to GenGC. 10:18
fperrad, anyway, I don't think it's worthwhile to put any effort to rewrite it without multiple inheritance for now.
fperrad, I hope we'll have 6model incorporated into parrot core. And than properly reimplement multiple inheritance based on it. 10:19
fperrad, luaio is failing. Looks like due error string change. 10:29
# file.rm: stat failed: No such file or directory
# doesn't match '^file.rm: No such file or directory'
meh.... 10:31
libos.t
fperrad bacek, try: 10:32
$ ./setup.pir update
bacek fperrad, ah, ok 10:33
drake1 eval `env_pop time`, might be to dirty
at least the girls insist in perl 10:34
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#9646) fulltest) at 3_0_0-943-g483f6ec - Ubuntu 10.10 i386 (g++-4.5) 10:35
gonna start cutting the release
Please do not commit to master in the interim
bacek mikehh++ # Hooray!
moritz ++mikehh 10:36
tadzik read that as: "Hooray! I'll be permitted to merge gen_gc2 soon!" :)
bacek tadzik, it will not be enabled by default. 10:37
jnthn bacek: I suspect in Rakudo's --gen-parrot we'll configure Parrot with gen_gc by default
mikehh gonna call it Budgerigar - a small Australian parrot - also known as Budgie
tadzik wouldn't it? I thought that would be the one enabled by default, with a possible fallback to gc_ms2
bacek jnthn, it's doable now :)
tadzik, "Deprecation Policy" 10:38
tadzik ah, misread the email
bacek fperrad, Lua test passed with parrot's debug build. Will retest with optimized.
tadzik The default for
non-release builds would be the generational gc,
bacek tadzik, yes. 10:39
tadzik bleh 10:40
bacek fperrad, why t/shootout is disabled? 10:42
fperrad, t/libregex segfaulted... Sigh. 10:43
fperrad bacek, t/shootout is disabled because some tests consumes all the memory 10:46
bacek fperrad, ouch...
fperrad, we need some GC expert.
OH, WAIT 10:47
:)
fperrad bacek, only LuaTable PMC uses mem_allocate,
the critical section in rehash() is protected by Parrot_block/unblock_GC_mark
bacek fperrad, we need PARROT_GC_WRITE_BARRIER to play nicely with GenGC. 10:48
drake1 capital aid slash cops, call for the junk; might solve the gc
bacek fperrad, ok. I can reliably crash luaregex.t. We'll look at it tomorrow. 10:51
fperrad bacek, ok, good night 10:52
bacek fperrad, night 10:53
fperrad, can I have commit bit to Lua? 10:57
fperrad bacek, done 11:00
bacek fperrad, thanks
nopaste "bacek" at 192.168.1.3 pasted "prove t/shoutout.t" (32 lines) at nopaste.snit.ch/32247 11:01
bacek fperrad, looks like it works. Freaking slow however... 11:02
dalek a: ef33938 | bacek++ | t/shootout.t:
Specify 'binary' encoding for loaded files.

Fix loading of mandelbrot test data.
11:07
drake1 might be too hard to look at the surface, instead of through everything 11:09
moderator Parrot 3.0.0 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Goals: Fix ipv6-related failures | Help testing/fixing Lua on gen_gc2 branch 11:16
mikehh ok - anyone know how to handle git_describe 11:22
moritz waht about it?
mikehh how do you update it to 3.1.0 rather than 3.0.0
moritz have you tagged the release yet? 11:23
after you did, and reconfigure parrot, it should be fixed automatically
drake1 i give up. it's all to complicated. good luck guys. take care
11:23 drake1 left
mikehh 'k thanks moritz 11:24
moritz was drake1 a conversation bot?
reading some of the last lines ... I got the impression it was too bizarre to be produced by a human :-) 11:25
tadzik (: 11:29
11:37 arnsholt joined 11:51 bacek left
dalek rrot: 154ab50 | mikehh++ | / (3 files):
increment version number to 3.1.0
12:58
rrot: 72ed55c | mikehh++ | docs/p (2 files):
change history and release docs
rrot: e524519 | mikehh++ | / (3 files):
update NEWS, CREDITS and ChangeLog
rrot: 59be83a | mikehh++ | / (2 files):
update core ops
ttbot Parrot 72ed55c9 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/12982 13:00
Parrot e524519c i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/12981
Parrot e524519c i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/13006
Parrot e524519c i386-freebsd-64int make error tt.taptinder.org/cmdinfo/13029 13:04
13:13 darbelo joined 13:14 nwellnhof joined
nwellnhof ~ 13:14
13:17 Coke left, Coke joined
mikehh phew taptinder had me worried there - it's ok now 13:19
pk - you can commit away 13:20
ok
13:40 whiteknight joined
dalek rrot-test: f2e185c | Whiteknight++ | tap_harness/ (3 files):
several fixes/rewrites
13:45
rrot-test: 0735120 | Whiteknight++ | tap_harness/ (6 files):
rename files for consistency
rrot-test: 770d2e4 | Whiteknight++ | / (4 files):
fixes so the tap harness lib builds and runs
rrot-test: 13c88ab | Whiteknight++ | .gitignore:
tap_harness temporaries in .gitignore
rrot-test: 0cbc0bf | Whiteknight++ | tap_harness/ (2 files):
+support for PIR test files
rrot-test: 2a19b9e | Whiteknight++ | tap_harness/ (3 files):
change the way we handle max filename length. Add in an option to spawn subcommands for the tests, instead of compiling and executing them in-place. A few other changes.
rrot-test: 0f2d38c | Whiteknight++ | tap_harness/Harness.nqp:
Add a function to insert a new test loader. Give access to load in tests to a new loader by name. Cleanup initialization code. After we run, immediately reset the harness to be able to run more tests. showing test results clears the output, otherwise we aggregate subsequent runs
rrot-test: 85ad970 | Whiteknight++ | tap_harness/ (3 files):
calculate max_file_name at once after the fact. Fix the way we load files from a dir, and add in the option to recurse directories
rrot-test: 95543c0 | Whiteknight++ | tap_harness/Loader.nqp:
refactor test to see whether a file is a valid test file. Now we can subclass just that portion
rrot-test: 6c20b48 | Whiteknight++ | tap_harness/Harness.nqp:
refactor test to see whether a file is a valid test file. Now we can subclass just that portion
rrot-test: 8d3f65e | Whiteknight++ | tap_harness/Harness.nqp:
add option to specify line length
rrot-test: c056875 | Whiteknight++ | / (3 files):
refactor some of the console outputting stuff to a separate class
rrot-test: 681b1fd | Whiteknight++ | tap_harness/Output.nqp:
add the outputter file
whiteknight ...
...where's the rest of it? damnit dalek
Coke notes his taptinder client is sitting idle. 13:47
dalek rrot-linear-algebra: 1ae0670 | Whiteknight++ | setup.nqp:
fix PLA setup.nqp to not use nqp-setting. This avoids the method conflicts we were seeing, and allows us to submit smoke reports again
13:48
whiteknight and there it is
good morning, #parrot
Coke tt.taptinder.org/buildstatus/parrot/master/4 13:49
did those get reported here? (the c++ build failures?)
(wow, my client machine has been busy.) 13:50
(oh, they were errors in main job also...) 13:51
mikehh how do you get the files to ftp-osl.osuosl.org - I ssh'ed in and tried using the scp as in the Release Manager guide and it asks for a password 13:52
moritz somebody needs to give you an account, I think 13:53
mikehh I got one I think - it allowed me to get in using ssh using parrot as user name
moritz then use the same for scp 13:54
mikehh it called up my keyring to get in
moritz scp parrot-3.1.0.tar.gz parrot@host:/path/to/store
mikehh but scp asks for a password which I don't have 13:55
moritz even if you use the same username as for ssh?
mikehh aye
moritz that's weird then
because scp uses ssh under the hood 13:56
mikehh let me try again
Coke if you can ssh in with no password, you should be able to scp also, no problem.
14:00 lucian joined
Coke msg bacek gen_gc2 branch fails more partcl tests than master. 14:02
aloha OK. I'll deliver the message.
Coke (a lot more) 14:04
msg bacek t/cmd_if.t segfaults. t/cmd_expr.t has a parsefail somewhere. (this is in partcl-nqp)
aloha OK. I'll deliver the message.
mikehh Coke: nope - as soon as I use scp is asks for a password. when I ssh in it goes to my Ubuntu keyring, but it does not for scp, just asks for password 14:08
14:09 rurban_ joined
moritz mikehh: try sftp 14:10
14:11 rurban left 14:12 rurban_ is now known as rurban 14:14 plobsing left
whiteknight in NQP, if I have two methods foo(*@args) and foo(@args), will MMD correctly dispatch between them? 14:22
PerlJam doubts it 14:23
(but then I don't really know :)
moritz does NQP even have multi dispatch? 14:24
arnsholt If it's NQP-rx, it won't work 14:25
whiteknight okay
I wont try it, then
arnsholt A sub in -rx just generates a PIR .sub, and last time I checked Parrot's :multi stuff wasn't exposed either
(Although that last might have changed)
mikehh moritz: thanks, that seems to work 14:26
moritz hm, at least multi subs seem to be implemented
Coke I thought nqp-rx had multi, yes. 14:33
ugh. partcl-old was never updated to deal with CodeString going away.
whiteknight ouch 14:34
14:34 M_o_C joined
jnthn whiteknight: In new NQP, I could implement that arity handling. 14:43
whiteknight: Didn't yet. But it's very possible.
PerlJam jnthn: are you teasing him? :)
jnthn Would I? ;-) 14:44
cotto ~~ 14:54
whiteknight, how do you feel about my idea of making the default gc a configure-time option? 14:55
mikehh hi cotto 14:56
cotto good morning, mikehh 14:57
moritz to me that sounds like overkill
how long is it going to be maintained?
cotto 3.3 according to our policy
14:57 bluescreen joined
mikehh ok Release is progressing - files uploaded, downloaded and sha256sum ok 14:57
for some reason I could not get in with shh/scp - I used sftp which was ok 14:59
nwellnhof maybe access is limited to sftp?
14:59 plobsing joined
mikehh ssh was ok but scp failed (asked for password) 14:59
ok now to do the announcements 15:00
cotto mikehh, that's wacky but I'm glad you got around it. 15:01
Coke can you rename a repository on github? 15:04
or do you fork-then-delete?
cotto works
15:04 Andy joined
whiteknight msg cotto I'm less unhappy about that. I am still very frustrated to be in this kind of position, however. The temporary fix doesn't address the larger issue 15:08
aloha OK. I'll deliver the message.
15:10 M_o_C left 15:19 rdesfo joined
cotto_work ~~ 15:23
15:30 M_o_C joined
whiteknight cotto_work: I just msg'd you under "cotto" 15:30
cotto_work No worries. I backscroll and blink on cotto. 15:31
15:31 M_o_C left
moritz Coke: renamng works 15:32
though all references to the old one will stop working
15:35 sri left
cotto_work whiteknight: how would you articulate the larger issue? 15:35
15:35 Themeruta is now known as NotFound 15:39 sri joined
plobsing msg bacek the largest problem I can see from the md5sum test is now that FixedIntegerArray getting unecessary (AKAICT) WBs. It isn't exactly a dominating cost. Perhaps, if we find a case where this would make a significant difference, a manual_wb flag in pmc2c would help. 15:41
aloha OK. I'll deliver the message.
15:41 sri left 15:42 sri joined 15:51 bluescreen left
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#9675) fulltest) at 3_1_0 - Ubuntu 10.10 i386 (g++-4.5) 15:54
git_describe just says RELEASE_3_1_0 is that right? I suppose no commits after the tag 15:55
cotto_work If it's the release, that sounds accurate. 15:56
mikehh The test was on the devel version
anyway I have to go to a doctor's appointment - will complete the announcements etc when I get back 15:57
cotto_work wfm
mikehh still haven't figgured out a decent quote yet 15:58
moritz mikehh++ # release
mikehh my tuits are all gone :-} 15:59
15:59 contingencyplan joined
cotto_work mikehh: don't let that hold up the release. 15:59
16:02 plobsing left
whiteknight mikehh: you don't need a quote or anything fancy 16:07
16:08 benabik joined
whiteknight does NQP-rx have constructors that I can pass arguments to? 16:08
benabik Good morning, #parrot 16:09
cotto_work hio benabik 16:11
whiteknight looking at the code for P6protoobject, I'm guessing the answer is "no" 16:15
cotto_work That's what I'd guess from looking at the nqp-rx test suite. 16:16
jnthn Pretty sure the ansewr is no.
*answer
16:17 plobsing joined, Patterner left 16:18 Psyche^ joined, Psyche^ is now known as Patterner
whiteknight what is the Perl6ism for constructors, CREATE? 16:19
it seems like that would be trivially easy to add to P6protoobject
jnthn CREATE isn't for constructors
whiteknight so what is for constructors?
jnthn It's just for the actual allocation of the object
Depends. Either BUILD or a custom new. moritz++ has an excellent blog post on those. 16:20
I'm looking at putting some of that into new nqp, but you could probably backport it.
cotto_work whiteknight: you could look at what opsc does.
jnthn I've mostly been structuring things in such a way that when there's a new that does the Right Thing, it'll be easy to just delete my special one. 16:21
And rely on the default one
whiteknight do you happen to have a link to moritz' blog? or that post in particular? 16:24
jnthn whiteknight: perlgeek.de/blog-en/perl-6/ is the blog 16:26
hmm, struggling to find the post... 16:27
whiteknight: aha
perlgeek.de/blog-en/perl-6/object-c...ation.html
arnsholt My solution to the custom constructor problem in nqp-rx was just a class method that did it for me, FWIW 16:29
jnthn When I started writing ClassHOW yesterday I got to the point of "gah, I really need to fix construction" :) 16:30
arnsholt Cool. When do you think would be a good time to move from old nqp to new nqp, BTW? 16:35
Now?
16:37 theory joined
jnthn arnsholt: Depends. It's obviously got a lot of code in it that's newer and thus less mature than that in nqp-rx, and is still being quite actively developed in some areas. On the other hand, if you're interesting in implementing a language with OO features, things are much nicer in nqp since you've got all the meta-programming bits to hand. 16:39
arnsholt: There's much more in common than is different though. You may well find that your nqp-rx code just works already without changes in nqp. For grammars and action classes this will be the common case. 16:40
And if it doesn't work, I'll be curious to hear about it. :) 16:41
arnsholt I'll certainly do that 16:42
jnthn I expect a lot of kinks to be ironed out in the next 1-2 weeks as I start re-working Rakudo to run on top of it all :) 16:43
arnsholt Of course, I don't need much in the way of OO (Prolog may be many things, but OO ain't one of them) but I would like to check out the new and shiny NQP
jnthn *nod*
Should be some memory improvements too, fwiw. There'll be even more in the pipeline.
Cursor is already rather lighter, for example. 16:44
arnsholt That is something I want, OTOH 16:45
jnthn :)
arnsholt In my testsuite, I suspect that parsing the code takes up more than it needs to
It's also possible I could improve the grammar as well, mind 16:46
jnthn Cursors are malloc-free now, and entail anything from 1 to 3 garbage collectable objects less.
Match objects are in for a similar treatment when I get around to it.
Or somebody else gets around to it, if I'm lucky. :)
arnsholt Kewl
16:58 lucian left 17:03 benabik left 17:05 lucian joined 17:07 ttbot left, rdesfo left, ttbot joined 17:16 nwellnhof left, plobsing left 17:17 dmalcolm joined 17:20 lucian left 17:22 lucian joined 17:23 ambs joined
dukeleto ~~ 17:25
17:33 lucian_ joined 17:36 bacek joined 17:37 lucian left 17:53 bacek left
dalek TT #2014 created by doughera++: t/tools/mk_language_shell.t might use an old installed parrot 17:55
TT #2014: trac.parrot.org/parrot/ticket/2014
18:04 dmalcolm left
Coke sees that his taptinder is tinding. 18:12
cotto_work mikehh: ping 18:13
18:13 bacek joined
dalek rrot: 968cc50 | cotto++ | NEWS:
add Daniel Kang to list of gci students in NEWS
18:15
cotto_work msg mikehh One of the gci students was missed in NEWS. I added him.
aloha OK. I'll deliver the message.
Coke ... isn't the release already cut? 18:21
cotto_work It's in process.
Coke k. 18:26
18:26 plobsing joined
dukeleto ~~ 18:38
cotto_work: the list of GCI students in the NEWS were grand prize winners 18:39
cotto_work: i don't think Kang got the grand prize, but he was a parrot student?
dalek website: mikehh++ | Parrot 3.1.0 "Budgerigar" Released! 18:43
website: www.parrot.org/news/2011/Parrot-3.1.0
cotto_work dukeleto: he's on the list in that blog post and he contributed as jumpyshoes
at #7
github.com/parrot/parrot/commit/6c1531e4 18:44
whiteknight mikehh++ 18:45
dukeleto cotto_work: works for me 18:46
cotto_work: nice catch
is the release tagged yet?
mikehh cotto - I already released the files to the site and just hadn't announced
cotto_work too late for the release announcement, though
dukeleto cotto_work: we can edit the release announcement 18:47
cotto_work: at least our blog post about it
mikehh: have you sent out release announcement emails?
cotto_work mikehh: can you update the email announcement?
mikehh I am about to
cotto_work great
mikehh I had to go to the doc, bunch of vampires, they took my blud 18:48
whiteknight BLUD! 18:50
cotto_work release seems to be out. Let's break some stuff. 18:51
dukeleto cotto_work: are you updating the blog post re: student name? 18:52
cotto_work or maybe wait until mikehh says so
dukeleto: I can
mikehh I am doing it now 18:54
cotto_work done
18:54 gerd joined
cotto_work mikehh: ^ 18:54
dukeleto typo in our release announcement: allow implementation of try .. catch construcs in C extensions. 19:02
"construcs"
A repository for a new NQP version which has a new object model is 19:03
created at github.com/perl6/nqp
the tense is a bit wonky in that sentence
19:03 jan joined
mikehh dukeleto: just copied it from NEWS :-} 19:04
dukeleto mikehh: yes, NEWS needs to be spell/grammar checked :) 19:08
mikehh who all do I send the email to - parrot-dev@lists.parrot.org, parrot-users@lists.parrot.org, but what are the addresses of the other lists - perl6-language, perl6-announce, perl5-porters 19:09
dukeleto: never got around to that ;-{
dukeleto mikehh: that list should be in the release manager guide somewhere 19:10
cotto_work mikehh: it's important
dukeleto mikehh: if it isn't, please add
mikehh I am sure I had them somewhere but can't find them
dukeleto: just the lists, not their addresses
let me send it to parrot, I can send to the others later 19:13
gerd it is: ...@perl.org 19:15
whiteknight mikehh: is this your first release?
...of parrot?
cotto_work second, apparently
mikehh I submitted that from a different computer, and I don't have all the backups from that one 19:23
ok - how do you set the release to be the one you download 19:24
PerlJam mikehh: you mean the tarball? 19:26
(or zip file)
mikehh if I go to downloads, on parrot.org, click on downloads, developer release and it is pointing to 3.0.0 19:27
whiteknight a drupal admin might need to change that
cotto_work I can fix that.
jnthn mikehh++ # quote win
mikehh jnthn: ;-}
19:28 dmalcolm joined
cotto_work done 19:29
mikehh cotto_work: can you also upload the latest make html files
cotto_work mikehh: sure. Do you have a tarball somewhere? 19:30
mikehh just run make html in the latest #parrot and replace them on docs.parrot.org 19:31
dukeleto we need to automate some of that stuff 19:34
mikehh dukeleto: I'll look into it 19:35
got to work with kid51 to sort out removing make docs and more gtml cleanup
html 19:36
cotto_work done
dukeleto: +1. it's annoying and pretty amenable to scripting 19:37
19:41 nwellnhof joined
nwellnhof ~ 19:41
mikehh bah, just noticed another error in the announcement - subversion is mentioned - the perils of copy pasting. fixing
Coke cotto_work: did you update docs.parrot.org ? 19:43
(someone keeps changing one of the symlinks that doesn't need to be changed. 19:45
oh, it was cotto, since everyone is forced to login. ;)
19:45 darbelo left
Coke cotto_work: latest should always point to devel. 19:48
msg cotto_work: latest should always point to devel on docs.parrot.org
aloha OK. I'll deliver the message.
atrodo dukeleto> ping 19:50
cotto_work ~~ 19:59
20:00 benabik joined 20:01 zby_home joined
cotto_work Coke: ok 20:01
dukeleto atrodo: pong
atrodo dukeleto> Do you know what the state of security is in parrot? 20:02
dukeleto> After I pinged you, i wondered why i thought you would know that
dukeleto atrodo: it is very poor 20:03
atrodo dukeleto> That's what I was afraid of
dukeleto atrodo: i do know about it, because PL/Parrot needs various security features that Parrot doesn't currently have
cotto_work e.g.? 20:04
atrodo dukeleto> Ah, yes, that's why I was thinking you would know
dukeleto Disabling groups of opcodes, not requiring the 1st ever created interp to be passed to Parrot_new to create more interps, disabling loading of bytecode, many things 20:05
NotFound dukeleto: what's the problem with Parrot_new ?
dukeleto Being able to say "this PIR can create network connections, but it can't have filesystem access" 20:06
NotFound: you have to pass the 1st ever created interp to it to create more interps
NotFound: i have trusted and untrusted interps in PL/Parrot, but they mingle and that is bad for security
NotFound dukeleto: that's a feature, not a problem ;)
dukeleto NotFound: no, it is not a security feature, it is a security problem waiting to happen
each interp should know nothing about any other interp, unless you want it to 20:07
NotFound dukeleto: so the problem is that you want completely separated interpreters? 20:08
mj41 msg bacek gen_gc2 is online, see tt.taptinder.org/ ... will look on ttbot tomorrow 20:09
aloha OK. I'll deliver the message.
cotto_work It'll probably be merged tomorrow. 20:10
dukeleto NotFound: yes. 20:16
MERGE BABY MERGE
NotFound dukeleto: I think there are several internals that must be changed to be able to do that. 20:17
dukeleto NotFound: yep.
mikehh #ps in 10 20:20
20:20 tcurtis joined 20:38 donaldh joined
Coke interpreters should have a hierarchy of parent interps. 20:39
(back to the main interp)
dukeleto Coke: no. 20:42
Coke fine. "should be able to" 20:44
dukeleto Coke: sure. 20:45
Coke but if you want to create a new interp, it seems reasonable that you have to pass in the original interp at least once.
dukeleto Coke: the security professional in me screams bloody murder at the implications of that
Coke: i am fine with it being optional, such that passing in old interps reuses some junk and provides memory savings, but there should be a way to create totally standalone interps 20:46
cotto_work dukeleto: +1
Coke that might be a problem with our /implementation/, but I don't think it's a problem with child interpreters per se. 20:54
whiteknight it is certainly a problem with our current implementation 20:55
Coke hurls: www.tcl.tk/man/tcl8.5/TclCmd/interp.htm for what tcl needs for support. 20:56
whiteknight and by "our current implementation", I mean "our current threads system implementation
'"
atrodo So if we rip out threads, problem solved?
whiteknight basically...yes 20:57
that's one of the big reasons why I wanted to rip them out
but no, having a system which barely works for even trivial toy programs and causes other serious design problems is better than not having it
21:00 perlite left 21:01 perlite joined 21:05 vmspb joined 21:23 benabik left 21:24 benabik joined 21:25 Andy left
Tene whiteknight: I'm the only person that I've actually seen object to ripping out threads, so i can't speak for anyone else, but I can speak for myself. 21:30
dalek p/match-nom: 6314c26 | moritz++ | src/Regex/Match.pir:
first shot at moving Regex::Match to 6model. Does not even compile yet
p/match-nom: a5a8a85 | moritz++ | src/Regex/Match.pir:
fix stupid thinko
p/match-nom: a66d699 | moritz++ | src/Regex/Cursor.pir:
fix new_match
21:31 benabik_ joined, whiteknight left
Tene whiteknight: I don't have a clear, well-supported reason to keep the current threads impl. My hesitation is a vague discomfort with feeling like we're "moving backwards", and a vague fear that ripping it out would make adding a good threads system somehow less likely to happen, or more difficult, etc. 21:31
Oh, ENOWHITEKNIGHT 21:32
aloha: msg whiteknight I don't have a clear, well-supported reason to keep the current threads impl. My hesitation is a vague discomfort with feeling like we're "moving backwards", and a vague fear that ripping it out would make adding a good threads system somehow less likely to happen, or more difficult, etc. I don't feel confident that I'd actually know if that's the case. If you can reassure me about these points, I'd support ... 21:33
aloha Tene: OK. I'll deliver the message.
Tene ... ripping out threads.
bah, close enough
21:35 benabik left, benabik_ is now known as benabik, ambs left
cotto_work msg cotto You should look at PyCon for your conf todo list. 21:39
aloha OK. I'll deliver the message.
dalek p/match-nom: b863609 | moritz++ | src/Regex/Cursor.pir:
remove 3-arg setattribute from Regex::Cursor.MATCH
21:40
21:42 donaldh left 21:43 fperrad left 21:50 donaldh joined
dalek p/match-nom: edbb70c | moritz++ | src/Regex/Cursor.pir:
get rid of some boxing
22:05
rrot: ce8e12d | cotto++ | api.yaml:
remove "fast-tracked" from api.yaml. A better solution was found at #ps
rrot: 5cc4b35 | cotto++ | api.yaml:
deprecations are eligible in 3.4, not 3.3
22:06
22:06 KaeseEs left 22:09 rurban_ joined
tadzik is there anyone interested in bringing Close back to life? 22:10
nwellnhof Tene: the current thread implementation simply doesn't work and has a bus number of zero, so i don't see why we should keep it. from what i've seen it suffers from the same problems than perl5 threads. what i'd like to see is a shared everything approach that leaves as much as possible to HLLs. 22:11
lucian_ tadzik: i'm sort of interested in someone else doing that :)
nwellnhof: so to use those threads for each HLL to build their own?
benabik What is Close?
22:12 rurban left
tadzik benabik: a C-like lang for Parrot 22:12
close?
aloha: close?
aloha tadzik: No clue. Sorry.
22:12 rurban_ is now known as rurban
cotto_work tadzik: It's not C, but it's close. 22:12
dukeleto tadzik: yes, i would try to help
tadzik aloha: close is code.google.com/p/close/
aloha tadzik: Okay.
22:12 KaeseEs joined
tadzik close? 22:12
cotto_work er, benabik
dukeleto tadzik: was that Austin_Hastings HLL?
cotto_work yup
dukeleto we should check on Austin Hastings. I haven't seen him around for a long time.
lucian_ tadzik: i would certainly want to help testing it for building pynie
tadzik I don't remember, I was a toddler back then :) 22:13
nwellnhof lucian_: imo parrot should provide some synchronization primitives and leave the rest to HLLs.
lucian_ nwellnhof: that does sound ideal, yes
tadzik dukeleto: I hope I can bring it back to "it compiles" stage, but I'm afraid I'll be lacking some compiler kata to make it usable
benabik Sounds interesting, but grad school is using most of my tuits. 22:14
lucian_ nwellnhof: although many languages have share-nothing micro-threads, which could be built on top
nwellnhof HLLs are probably very different in that regard, so it doesn't make sense to go for a one-size-fits-all solution. 22:15
mikehh must sleep, check for anything else later
lucian_ nwellnhof: i'm not sure, but of course that's secondary. thread & sync primitives are vital to do much else 22:16
nwellnhof but cloning interpreters is definitely the wrong idea, imo 22:17
lucian_ nwellnhof: probably, yes 22:18
dukeleto tadzik: as always, ask peeps on parrot-dev or in here when you hit a wall, and we will unhit your head on the wall, if we can 22:20
tadzik dukeleto: so what about this web interface? 22:21
dukeleto tadzik: make it happen :)
tadzik: something that says "give me the URL to your git project" and then run something that checks for deprecations in the code and then gives a summary of what to do 22:22
tadzik: something like an HTML validator for HTML
tadzik: except it says "you are using dep'ed feature X, here is a link to the wiki page that explains what to do"
www.parrot.org/files/parrot_cla.pdf is a 404 22:23
not good.
cotto_work dukeleto: there's a different and much wackier link that works. 22:24
dalek p/match-nom: 205e5e1 | jonathan++ | src/Regex/Match.pir:
A little more unboxing. :-)
tadzik whoa, whoa
nwellnhof dukeleto: that deprecation checker sounds a bit ambitious
tadzik first, the deprecations need to define something that can be checked against a code: a regex, or something 22:25
nwellnhof i don't think we can offer much more than a regex
22:25 donaldh left
dukeleto something is better than nothing 22:26
tadzik so asuumint we do, we need to fill our api.yaml with regexes, then we can think bout a validator
...stupid lag
cotto_work dukeleto: links on www.parrot.org/foundation fixed
not sure what changed
dukeleto tadzik: sure, you can start by adding a regex field to api.yaml
cotto_work: thanks, it might have been from drupal upgrades that OSUOSL did
cotto_work likely as anything 22:27
nwellnhof dukeleto, tadzik: the regex would have to be per language. like .pir or .c
tadzik yeah
dukeleto nwellnhof, tadzik : each regex could say which file extensions it applies to 22:28
nwellnhof but that should work for simple cases
dukeleto gets his nom on
tadzik so like "regex" : { "pir" : "foobar", "c" : "foo_bar(" }
cotto_work >nothing
tadzik s/json/yaml/
plobsing and then there are less straightforward deprecations for which no regex exists 22:32
cotto_work like write barriers 22:33
plobsing that's a good example
I wouldn't be surprised if detecting that was equivalent to the halting problem
cotto_work You might be able to use something like CIL, but good luck.
nwellnhof but a regex works for a typical case like C funtion "foo" or PIR construct "bar" is deprecated 22:34
cotto_work sure
it's a good starting point 22:35
The impossibility of a perfect solution doesn't excuse us from finding a minimally imperfect one. 22:36
22:39 lucian_ left 22:40 lucian joined, kid51 joined 22:43 zby_home left 22:47 donaldh joined
dalek p/match-nom: 6db30e4 | moritz++ | src/ (2 files):
add hacky NQPCapture
22:47
Tene nwellnhof: Your comment doesn't actually address what I was saying there. 23:05
23:07 benabik_ joined
nwellnhof Tene: yeah, i was mostly braindumping 23:07
dalek p/match-nom: 866ea1f | jonathan++ | src/pmc/rakudoobject.pmc:
Make a few more v-tables overridable (e.g. ones that NQPCapture needs to override). Gets us a bit further with Match on 6model.
23:08
Tene nwellnhof: I thought so, just checking that I wasn't misunderstanding. 23:09
23:10 kid51 left
dukeleto ~~ 23:12
cotto_work dukeleto: I'm thinking about M0's binary format. Would we need any segments other than directory, bytecode, variables table (constants in current pbc) and metadata? 23:15
dukeleto cotto_work: i can't really say right now, but that sounds reasonable 23:16
23:17 benabik left, benabik_ is now known as benabik 23:28 jsut_ joined
dalek p/match-nom: a484ca8 | jonathan++ | src/Regex/Match.pir:
Fix up some attribute accesses in Match to be done the 6model way.
23:30
23:33 jsut left 23:35 nwellnhof left, plobsing left 23:46 donaldh left
jnthn Hmm. Does $P0[2] = $P1 always call the set_pmc_keyed and never set_pmc_keyed_int? 23:51
cotto_work jnthn: set_pmc_keyed_int is only called when it's explicitly dispatched from set_pmc_keyed 23:52
jnthn eww
cotto_work yeah
jnthn wtf. :/
Somehow, if you get that key, then stringify it and try to print that string it gives...a segfault. 23:53
Coke wishes he had someone at ubuntu he could complain to about stuff. ;)
jnthn Keys don't tend to leak into PIR-land. Apart from I just managed to do so and...explosion.
jnthn wonders if Object.pmc has a workaround for this... 23:54
cotto_work: ooc, do you expect the current behavior to change? 23:55
cotto_work jnthn: possibly with the move to PIRATE, but definitely not before then. 23:56
cotto_work decommutes
jnthn immediately gets suspicious that we may have been storing positional things in captures by stringifying the integer key or some such... 23:57
Since Capture.pmc doesn't do any re-dispatch in set_pmc_keyed